Приветствую! Столкнулся с такой проблемой:
Редактирую заказ через API D7: необходимо добавить товар в корзину заказа.
Ниже приведён фрагмент кода, который добавляет товар в корзину заказа:
После выполнения кода товар действительно попадает в корзину со всеми назначенными свойствами и сохраняется в заказе. Но при просмотре заказа через админ.панель товары (см. скриншот) помечаются зачёркнутыми и при наведении на название возникает надпись "Товар не активен".
Подскажите, в чём может быть проблема и как её можно решить?
Редактирую заказ через API D7: необходимо добавить товар в корзину заказа.
Ниже приведён фрагмент кода, который добавляет товар в корзину заказа:
Код |
---|
<?php // Данные для примера $orderId = 100; $catalogId = 457; $quantity = 1; $price = 100; // Загружаем заказ и получаем его корзину $orderBx = Sale\Order::loadByAccountNumber($orderId); $basketBx = $orderBx->getBasket(); // Добавляем товар в корзину заказа $ProductAdd = $basketBx->createItem('catalog', $catalogId); // Так как товар добавляется "пустым" (практически без свойств), то подгрузим свойства из БД $iblock = CIBlockElement::GetByID($catalogId)->GetNext(); $cprice = CPrice::GetList(array(),array("PRODUCT_ID" => $catalogId))->GetNext(); $ccatalog_res = CCatalogProduct::GetByID($catalogId); $measure = CCatalogMeasure::getList(array(),array("ID" => $ccatalog_res['MEASURE']))->GetNext(); $dimensions = serialize(array( "WIDTH" => $ccatalog_res["WIDTH"], "HEIGHT" => $ccatalog_res["HEIGHT"], "LENGTH" => $ccatalog_res["LENGTH"] )); // Заполним поля товара $ProductAdd->setFields(array( 'NAME' => $iblock['NAME'], 'DETAIL_PAGE_URL' => $iblock['DETAIL_PAGE_URL'], 'PRODUCT_ID' => $catalogId, 'PRODUCT_PRICE_ID' => $cprice['ID'], 'QUANTITY' => $quantity, 'CURRENCY' => Bitrix\Currency\CurrencyManager::getBaseCurrency(), 'LID' => Bitrix\Main\Context::getCurrent()->getSite(), 'PRICE' => $price, 'BASE_PRICE' => $price, 'CUSTOM_PRICE' => 'Y', 'WEIGHT' => $ccatalog_res['WEIGHT'], 'DIMENSIONS' => $dimensions, 'NOTES' => $cprice['CATALOG_GROUP_NAME'], 'MEASURE_CODE' => $measure['CODE'], 'MEASURE_NAME' => $measure['SYMBOL'], 'CATALOG_XML_ID' => 'aspro_mshop_catalog_s1', 'PRODUCT_XML_ID' => $catalogId, 'PRODUCT_PROVIDER_CLASS' => 'CCatalogProductProvider', 'DELAY' => 'N', 'CAN_BUY' => 'Y', 'IGNORE_CALLBACK_FUNC' => 'Y' )); // Сохраним товар $ProductAdd->save(); // Сохраним корзину $basketBx->save(); ?> |
После выполнения кода товар действительно попадает в корзину со всеми назначенными свойствами и сохраняется в заказе. Но при просмотре заказа через админ.панель товары (см. скриншот) помечаются зачёркнутыми и при наведении на название возникает надпись "Товар не активен".
Подскажите, в чём может быть проблема и как её можно решить?