Удалим одну из доставок если была расчитана другая.
Для этого подключим обработчик в файле init.php
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
/*start del delivery*/ $eventManager->addEventHandler("sale", "onSaleDeliveryServiceCalculate", Array("MyModule", "OnSaleDeliveryCalculateHandler")); class MyModule { public static function OnSaleDeliveryCalculateHandler(\Bitrix\Main\Event $event) { $baseResult = $event->getParameter('RESULT'); $shipment = $event->getParameter('SHIPMENT'); // Получаем ID доставок $DHL = 130; // DHL $Delivery = 137; // Delivery // Получаем ID доставки $deliveryId = $shipment->getDeliveryId(); $deliveryPrice = $baseResult->getDeliveryPrice($deliveryId); // Проверяем условия и удаляем доставку if ($deliveryId === $DHL && $deliveryPrice == 0 ) { //file_put_contents($_SERVER['DOCUMENT_ROOT'].'/local/log-delivery-disabled.txt', print_r($deliveryId, true), FILE_APPEND); $shipment->disallowDelivery(); } $event->addResult( new EventResult( EventResult::SUCCESS, array('RESULT' => $baseResult, 'SHIPMENT' => $shipment) ) ); $res = [ "id" => $deliveryId, "price" => $deliveryPrice, ]; //file_put_contents($_SERVER['DOCUMENT_ROOT'].'/local/log-delivery-id.txt', print_r($res, true), FILE_APPEND); //file_put_contents($_SERVER['DOCUMENT_ROOT'].'/local/log-shipment.txt', print_r($shipment, true), FILE_APPEND); //file_put_contents($_SERVER['DOCUMENT_ROOT'].'/local/log-res.txt', print_r($baseResult, true), FILE_APPEND); } } /*end del delivery*/ |
