Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Службы доставки => Автоматизированные

00 голосов
4
Добрый день.
делаю свой обработчик службы доставки.
используя документацию.

мне нужно, чтобы стоимость доставки, зависела от стоимости заказанного товара. Вот вопрос - как мне получить эту смтоимость и вставить в обработчик?
спросил 03 Окт, 13 от KaCnEp (160 баллов)

4 Ответы

00 голосов
Если от суммы заказа, то это просто, в массиве $arOrder для автоматизированного обработчика передается сумма, что указано в документации.

пример:
Код
$delivery_cost = $arOrder['PRICE']*0.3;


P.S. Если найдете как передать обработчику всю информацию по находящимся в корзине товарам — дайте знать.
ответил 16 Окт, 13 от Lej (140 баллов)
00 голосов
проблему решили так, с тех. поддержкой:


Код

$dbBasketItems = CSaleBasket::GetList(array("NAME" => "ASC","ID" => "ASC"), array("FUSER_ID" => CSaleBasket::GetBasketUserID(),"LID" => SITE_ID,"ORDER_ID" => "NULL"),
        false,false,array("ID", "CALLBACK_FUNC", "MODULE", "PRODUCT_ID", "QUANTITY", "DELAY", "CAN_BUY", "PRICE", "WEIGHT"));
        $price_sum = 0;
        while ($arItems = $dbBasketItems->Fetch()){
            if (strlen($arItems["CALLBACK_FUNC"]) > 0){
                $arItems = CSaleBasket::GetByID($arItems["ID"]);
            }
            $price_sum = $price_sum + $arItems["QUANTITY"]*$arItems["PRICE"];
        }
//$price_sum - сумма итоговая
ответил 17 Янв, 14 от KaCnEp (160 баллов)
00 голосов
Точно такая же задача, но код не подошел.
CSaleBasket::GetBasketUserID() возвращает данные по текущему пользователю.
При оформлении заказа всё работает как надо и стоимость доставки записывается в заказ.
Но как только администратор пытается "Произвести автоматический пересчет параметров заказа" или "пересчитать" стоимость доставки она обнуляется. Т.к. CSaleBasket::GetBasketUserID() даёт ID админа, а не покупателя.
Как в delivery_simple.php например в функции Calculate получить ID заказа или хотя бы ID покупателя.
ответил 05 Май, 14 от Ravy (180 баллов)
00 голосов
Вопрос сложноват?
ответил 31 Авг, 14 от Ravy (180 баллов)