Я хотел бы получить список применимых способов доставки для текущей корзины, но в зависимости от выбранного профиля доставки. Я программирую собственный контроллер, который должен возвращать список доступных способов доставки и тарифов, но, очевидно, с учетом корзины и профиля доставки клиента.
Имеет модуль коммерческой доставки любой сервис или класс, который я мог бы использовать для получения этой информации? Может быть, есть какой-то другой способ получить его?
Я читал исходный код из:
Commerce_Shipping\src\Plugin\Commerce\CheckoutPane\ShippingInformation.php
Это плагин CheckoutPane, который отображает параметры доставки на странице оформления заказа. билдпанеформ
метод отображает эту форму, и эти строки кода должны дать мне список способов доставки:
общедоступная функция buildPaneForm (массив $pane_form, FormStateInterface $form_state, массив и $complete_form) {
...
$shipments = $this->order->get('shipments')->referencedEntities();
...
foreach ($shipments as $index => $shipment) {
... // все поставки
}
Но я пробовал это в своем пользовательском контроллере, и он всегда возвращает пустой массив. Я думаю, что должен быть предварительный процесс, который заполняет этот список, но я не могу его найти. Я попытался применить переход состояния, но он не работает.