Подскажите, почему у сохраненного заказа и у товаров в заказе цена 0 рублей?
Прилагаюскриншот
Прилагаю
Код |
---|
<? require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php"); Bitrix\Main\Loader::includeModule('sale'); Bitrix\Main\Loader::includeModule('catalog'); $basket = Bitrix\Sale\Basket::create(SITE_ID); $arData = [ "order" => [ "currency" => "RUR", "fake" => false, "id" => 12345, "paymentType" => "PREPAID", "paymentMethod" => "YANDEX", "delivery" => [ "price" => 300 ], "items" => [ [ "offerId" => "17190", "offerName" => "Медиаплеер Xiaomi Mi Box S International Version", "count" => 3, "price" => 5150 ], [ "offerId" => "1616109", "offerName" => "Робот-пылесос Xiaomi Mi Robot Vacuum-Mop (Vacuum Cleaner 1C)", "count" => 2, "price" => 15845 ] ] ] ]; foreach($arData['order']['items'] as $item){ $basketItem = $basket->createItem("catalog", $item['offerId']); $basketItem->setField('PRODUCT_ID', $item['offerId']); $basketItem->setField('NAME', $item['offerName']); $basketItem->setField('PRICE', $item['price']); $basketItem->setField('CURRENCY', 'RUB'); $basketItem->setField('QUANTITY', $item['count']); } $order = Bitrix\Sale\Order::create(SITE_ID, 100072); $order->setPersonTypeId(1); $order->setBasket($basket); $shipmentCollection = $order->getShipmentCollection(); $shipment = $shipmentCollection->createItem( Bitrix\Sale\Delivery\Services\Manager::getObjectById(1) ); $shipmentItemCollection = $shipment->getShipmentItemCollection(); foreach($basket as $basketItem) { $item = $shipmentItemCollection->createItem($basketItem); $item->setQuantity($basketItem->getQuantity()); } $paymentCollection = $order->getPaymentCollection(); $payment = $paymentCollection->createItem( Bitrix\Sale\PaySystem\Manager::getObjectById(1) ); $res = $order->getShipmentCollection()->calculateDelivery(); // здесь $order->getPrice() равен 0 $payment->setField("SUM", $order->getPrice()); $payment->setField("CURRENCY", $order->getCurrency()); $order->doFinalAction(true); $result = $order->save(); if(!$result->isSuccess()) { $result->getErrors(); } $orderId = $order->getId(); echo $orderId; ?> |