В связи с тем что при оформлении заказа есть необходимость из-за специфики задач пришлось кастомизировать новый компонент sale.order.ajax.
Необходимо чтобы заказ разбивался на несколько подзаказов по дням недели на которые он задан.
Использую механизм установки флага отложенные а в последующем формирование нужного состава заказа и так пока не кончатся положенные товары.
В принципе проходясь циклом все проходит более менее корректно. Заказы формируются, но есть одно но. Существует условие, что если заказ меньше 500 рублей стоимость доставки составит 100 рублей.
Так вот проблема у первого из нескольких служба доставки заполнена корректно у последующих же указано без доставки.
методом изучения полученно, что в методе initDelivery(Shipment $shipment)
Первый раз в
имеет следующую структуру
В последующих разах этот массив становится пустым.
Понять в различии $shipment очень сложно. Ибо это невероятно огромные объекты, и в принципе видны различии в месте где указаны службы доставок но почему такое происходит, данные то не меняются. Или есть методы которые позволят заново инициализировать данный объект корректно, к сожалению тут бы документации по методам было бы неплохо быть, но вот приходится только вручную копать.
Буду признателен любым мыслям.
Необходимо чтобы заказ разбивался на несколько подзаказов по дням недели на которые он задан.
Использую механизм установки флага отложенные а в последующем формирование нужного состава заказа и так пока не кончатся положенные товары.
В принципе проходясь циклом все проходит более менее корректно. Заказы формируются, но есть одно но. Существует условие, что если заказ меньше 500 рублей стоимость доставки составит 100 рублей.
Так вот проблема у первого из нескольких служба доставки заполнена корректно у последующих же указано без доставки.
методом изучения полученно, что в методе initDelivery(Shipment $shipment)
Первый раз в
Код |
---|
$this->arDeliveryServiceAll = Delivery\Services\Manager::getRestrictedObjectsList($shipment); |
Код |
---|
Array ( [3] => Bitrix\Sale\Delivery\Services\Configurable Object ( [id:protected] => 3 [name:protected] => Курьером 100р [code:protected] => 3 [sort:protected] => 100 [logotip:protected] => 0 [parentId:protected] => 0 [currency:protected] => RUB [active:protected] => 1 [description:protected] => Настраиваемая служба доставки для совместимости со старыми службами доставки. [config:protected] => Array ( [MAIN] => Array ( [CURRENCY] => RUB [PRICE] => 100 [PERIOD] => Array ( [FROM] => 0 [TO] => 0 [TYPE] => D ) ) ) [restricted:protected] => [trackingClass:protected] => [extraServices:protected] => Bitrix\Sale\Delivery\ExtraServices\Manager Object ( [items:protected] => Array ( ) [isClone:protected] => ) [trackingParams:protected] => Array ( ) [allowEditShipment:protected] => Y [isClone:protected] => ) ) |
Понять в различии $shipment очень сложно. Ибо это невероятно огромные объекты, и в принципе видны различии в месте где указаны службы доставок но почему такое происходит, данные то не меняются. Или есть методы которые позволят заново инициализировать данный объект корректно, к сожалению тут бы документации по методам было бы неплохо быть, но вот приходится только вручную копать.
Буду признателен любым мыслям.