Cu modulul API de comerț, puteți prelua toate metodele de expediere disponibile ale unei comenzi cu o solicitare GET activată {{host}}/jsonapi/checkout/{{cart_uuid}}/shipping-methods
. Rezultatul este cam asa:
{
"tip": "opțiune-rata-livrare",
"id": "3--implicit",
„atribute”: {
"shipping_method_id": "3",
„serviciu”: {
"id": "implicit",
"label": "Ridicare de la locație"
},
"cantitatea originala": {
„număr”: „0”,
"currency_code": "CZK",
"formatat": "0,00Â KÄ"
},
"Cantitate": {
„număr”: „0”,
"currency_code": "CZK",
"formatat": "0,00Â KÄ"
},
"Descriere": "",
„date_livrare”: nul
}
},
Aș dori să adaug un câmp personalizat la fiecare metodă de expediere.
Ca urmare a acest tutorial, am încercat să creez un câmp calculat, ca acesta:
funcția custom_module_entity_base_field_info(EntityTypeInterface $entity_type) {
if ($entity_type->id() === 'commerce_shipment') { // am încercat și 'shipping_rate_option'
$fields['tooltip'] = BaseFieldDefinition::create('șir')
->setLabel(t('tooltip'))
->setReadOnly(TRUE)
->setComputed(TRUE)
->setClass(FieldTooltip::class);
returnează $câmpuri;
}
}
Și clasa mea este
/**
* Clasa FieldTooltip.
*/
clasa FieldTooltip extinde FieldItemList {
utilizați ComputedItemListTrait;
/**
* {@inheritdoc}
*/
funcția protejată computeValue() {
$this->list[0] = $this->createItem(0, 'tooltip text');
}
}
Nu a făcut nimic.
De asemenea, am încercat să creez un normalizator, dar nici asta nu a adus nicio schimbare.
Există vreo modalitate de a adăuga un câmp la acest răspuns?