Задать вопрос
  • Как получить выбранную систему доставки из заказа?

    Suntechnic
    @Suntechnic Автор вопроса
    Эх... как обычно. Сам спросил - сам отвечаю:
    Я не верно понимал как службы доставки назначаются заказу. Точнее я думал что заказу так или иначе назначается какая-то одна конкретная служба. Однако это не так - к заказу добавляются отгрузки. Причем их может быть сколько угодно. Отгрузкам уже соответствую службы доставки.

    Т.е. если мы хотим понять есть ли у заказа наша служба доставки, мы должны проверить есть ли у заказа хотя бы одна отгрузка основанная на нашей службе:
    foreach($order->getShipmentCollection() as $shipment) { // перебираем отгрузки
                $delivery = $shipment->getDelivery(); // получаем систему доставки
                if (get_class($delivery) == 'Класс\Хендлера') { // эта наша система?
                    // тут какой-то код, который нам нужно выполнить если есть наша СД
                }
            }
    Ответ написан
    Комментировать