Я створюю новий спосіб доставки, і мені потрібно додати новий стовпець, щоб замовити тарифи на доставку. Дані надходять із налаштованих методів доставки, наприклад, опис методу. Або якесь поле введення, де клієнт може додати інформацію (дані, ймовірно, будуть збережені в котируванні та пізніше в порядку).
Мабуть, найпростіша частина всіх - це шаблон реалізації за допомогою
Magento_Checkout/web/template/shipping.html
Просто це потрібно
<div data-bind="text: method.description"></div>
Проблема в тому, що я не можу зрозуміти, як додати користувацькі дані. Додавати це недостатньо:
public function collectRates(RateRequest $request)
{
if (!$this->isActive()) return false;
$method = $this->rateMethodFactory->create();
$method->setData('carrier', $this->getCarrierCode());
$method->setData('carrier_title', $this->getConfigData('title'));
$method->setData('method_title', $this->getConfigData('title'));
$method->setData('method', $this->getCarrierCode());
$method->setPrice($this->_price);
$method->setData('cost', $this->_price);
// custom
$method->setData('description', $this->getConfigData('description'));
$result = $this->rateResultFactory->create();
$result->append($method);
return $result;
}
Дані для html надходять від js rate (), яка отримує дані з API:
<route url="/V1/carts/:cartId/shipping-methods" method="GET">
<service class="Magento\Quote\Api\ShippingMethodManagementInterface" method="getList"/>
<resources>
<resource ref="Magento_Cart::manage" />
</resources>
</route>
Після цього є багато кроків, коли щось насправді збирається. я знайшов
Magento \ Цитата \ Модель \ Кошик \ ДоставкаМетодКонвертор модельToDataObject ()
це виглядало найбільш перспективно, але якщо я спробую додати до нього свій атрибут, нічого не станеться.
Отже, моє запитання: чи дійсно є спосіб додати нові дані до тарифів на доставку? У М1 це було можливо. Було б божевільно, якби M2 це було неможливо.
Є багато причин, чому це має бути можливим. Наприклад, якщо я хотів отримати метод магазину з декількома магазинами, що падають, або щось подібне.