Задать вопрос
@xuxubla

Почему метод CSaleBasket::Add затирает сведения о доставке?

Импортирую заказы с другого сайта - дело не самое благодарное, так как товаров нет в магазине некоторых уже. Что касается добавления самого заказа:
CModule::IncludeModule('iblock');
CModule::IncludeModule('sale');
$arFields = array(
   "LID" => "s1",
   "PERSON_TYPE_ID" => 1,
   "PAYED" => "N",
   "CANCELED" => "N",
   "STATUS_ID" => "N",
   "PRICE" => 800.00,
   "CURRENCY" => "RUB",
   "USER_ID" => 1,
   "PAY_SYSTEM_ID" => 1,
   "PRICE_DELIVERY" => 500.00,
   "USER_DESCRIPTION" => "Пробный заказ"
)
$ORDER_ID = CSaleOrder::Add($arFields);

Такая штука добавляет доставку. Но как только добавляю к данному заказу товар:
$arFields = array(
    "PRODUCT_ID" => 1,
    "PRICE" => 300.00,
    "CURRENCY" => "RUB",
    "QUANTITY" => 1,
    "ORDER_ID" => $ORDER_ID,
    "LID" => "s1",
    "NAME" => "Чемодан кожаный",
  );
CSaleBasket::Add($arFields);

Исчезает стоимость доставки и сумма всего заказа, остается лишь стоимость товаров.
Решил все это обновить функцией Update:
$arFields = array(
   "PAYED" => "N",
   "CANCELED" => "N",
   "STATUS_ID" => "N",
   "PRICE" => 800.00,
   "CURRENCY" => "RUB",
   "USER_ID" => 1,
   "PAY_SYSTEM_ID" => 1,
   "DELIVERY_ID" => 1,
   "PRICE_DELIVERY" => 500.00,
);
$ORDER_ID = CSaleOrder::Update($ORDER_ID, $arFields);

Сумма общая добавляется, а вот суммы доставки так и нет. В чем может быть дело?
  • Вопрос задан
  • 2122 просмотра
Подписаться 1 Оценить Комментировать
Решения вопроса 1
@xuxubla Автор вопроса
Решено. Не нужно сразу привязывать товар к заказу. Сначала просто в корзину, а затем CSaleBasket::OrderBasket.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы