Кто-нибудь может дать мне пример того, как использовать extension_attributes
в Magento2?
Кто-нибудь может дать мне пример того, как использовать extension_attributes
в Magento2?
Ответы:
Предположим, мы создаем дату доставки заказа, когда клиент выбирает доставку, а затем клиент может выбрать дату доставки. Таким образом, вы можете создать атрибут расширения для \ Magento \ Checkout \ Api \ Data \ ShippingInformationInterface следующим образом
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Api/etc/extension_attributes.xsd">
<extension_attributes for="Magento\Checkout\Api\Data\ShippingInformationInterface">
<attribute code="delivery_date" type="string"/>
</extension_attributes>
</config>
Так что теперь вы можете получить доступ к этому значению при использовании \ Magento \ Checkout \ Api \ Data \ ShippingInformationInterface as di.
Таким образом, в этом случае Magento \ Checkout \ Model \ ShippingInformationManagement этот класс использует \ Magento \ Checkout \ Api \ Data \ ShippingInformationInterface в качестве параметров для метода saveAddressInformation. Таким образом, вы можете получить доступ следующим образом:
$extAttributes = $addressInformation->getExtensionAttributes();
$deliveryDate = $extAttributes->getDeliveryDate();
Для более подробной информации (Официальная документация Magento 2)
Вот пример:
Выбрать значение атрибутов расширения
[Обновить]
Вы можете установить extension_attributes методом setExtensionAttributes . Следующий класс является примером: Нажмите здесь
extension_attributes
работы? Например, всегда ли мне нужно добавлять плагин afterLoad
для клиентов, если я хочу иметь пользовательский атрибут для клиентов? Мне кажется, это немного над головой ...