Với mô-đun api thương mại, bạn có thể tìm nạp tất cả các phương thức giao hàng có sẵn của một đơn đặt hàng với yêu cầu GET trên {{host}}/jsonapi/checkout/{{cart_uuid}}/shipping-methods
. Kết quả là một cái gì đó như thế này:
{
"type": "tùy chọn tỷ lệ vận chuyển",
"id": "3--mặc định",
"thuộc tính": {
"shipping_method_id": "3",
"dịch vụ": {
"id": "mặc định",
"label": "Nhận tại địa điểm"
},
"số tiền ban đầu": {
"số": "0",
"currency_code": "CZK",
"formatted": "0,00Â KÄ"
},
"số lượng": {
"số": "0",
"currency_code": "CZK",
"formatted": "0,00Â KÄ"
},
"sự miêu tả": "",
"ngày_giao_hàng": null
}
},
Tôi muốn thêm một trường tùy chỉnh cho từng phương thức giao hàng.
Tiếp theo cái này hướng dẫn, tôi đã cố gắng tạo một trường được tính toán, như thế này:
chức năng custom_module_entity_base_field_info(EntityTypeInterface $entity_type) {
if ($entity_type->id() === 'commerce_shipment') { // cũng đã thử 'shipping_rate_option'
$fields['tooltip'] = BaseFieldDefinition::create('string')
->setLabel(t('chú giải công cụ'))
->setReadOnly(TRUE)
-> setComputing (TRUE)
->setClass(FieldTooltip::class);
trả lại các trường $;
}
}
Và lớp học của tôi là
/**
* Chú giải trường công cụ lớp.
*/
lớp FieldTooltip mở rộng FieldItemList {
sử dụng ComputingItemListTrait;
/**
* {@inheritdoc}
*/
chức năng được bảo vệ computeValue() {
$this->list[0] = $this->createItem(0, 'văn bản chú giải công cụ');
}
}
Nó không làm gì cả.
Cũng đã cố gắng tạo một trình chuẩn hóa, nhưng điều đó cũng không thay đổi được gì.
Có cách nào để thêm trường vào phản hồi này không?