Answer the question
In order to leave comments, you need to log in
BITRIX exchange of orders, goods crookedly fall into the order from 1C?
I will answer myself))
UDP1. The problem is that the site has 2 product catalogs for different sites. Catalogs use the same product XML_ID.
in file \bitrix\modules\sale\general\order_loader.php
method
function prepareProduct4Basket($itemID, $arItem, $orderId, $orderInfo)
{
$arFields = array();
$products = array();
$productType = array();
$arIBlockElement = array();
if(CModule::IncludeModule("iblock"))
{
$dbIBlockElement = CIBlockElement::GetList(array(), array("XML_ID" => $itemID, "ACTIVE" => "Y", "CHECK_PERMISSIONS" => "Y"), false, false, array("ID", "IBLOCK_ID", "XML_ID", "NAME", "DETAIL_PAGE_URL"));
while($arElement = $dbIBlockElement->Fetch())
if(empty($arFields))
{
$arFields = array(
"ORDER_ID" => $orderId,
"PRICE" => $arItem["PRICE"],
"CURRENCY" => $orderInfo["CURRENCY"],
"QUANTITY" => $arItem["QUANTITY"],
"LID" => $orderInfo["LID"],
"DELAY" => "N",
"CAN_BUY" => "Y",
"NAME" => $arItem["NAME"],
"MODULE" => "1c_exchange",
"PRODUCT_PROVIDER_CLASS" => false,
"CATALOG_XML_ID" => "1c_exchange",
"PRODUCT_XML_ID" => $itemID,
"IGNORE_CALLBACK_FUNC" => "Y",
"VAT_RATE" => $arItem["VAT_RATE"],
"DISCOUNT_PRICE" => $arItem["DISCOUNT_PRICE"],
"CUSTOM_PRICE" => "Y",
);
$loader = new CSaleOrderLoader; //любой другой CSaleOrderLoaderModify, например
class CSaleOrderLoaderModify extends CSaleOrderLoader
{
function prepareProduct4Basket($itemID, $arItem, $orderId, $orderInfo)
{
...
// меняем его как нам нужно
//например указываем IBLOCK_ID или вообще дописываем в orders.xml новые поля и берем от туда BLOCK_ID
$dbIBlockElement = CIBlockElement::GetList(array(), array("XML_ID" => $itemID,"IBLOCK_ID"=>$XML_BLOCK_ID, "ACTIVE" => "Y",
...
}
}
<Товар>
<Ид>Ц0000007725</Ид>
<ИдКаталога>aspro_mshop_catalog_s2</ИдКаталога>
<БазоваяЕдиница Код="796" НаименованиеПолное="Штука" МеждународноеСокращение="PCE">шт</БазоваяЕдиница>
<Единица>
<Ид>796</Ид>
<НаименованиеКраткое>шт</НаименованиеКраткое>
<Код>796</Код>
<НаименованиеПолное>Штука</НаименованиеПолное>
</Единица>
<Коэффициент>1</Коэффициент>
<ЦенаЗаЕдиницу>133</ЦенаЗаЕдиницу>
<Количество>24</Количество>
<Сумма>3192</Сумма>
<Налоги>
<Налог>
<Наименование>НДС</Наименование>
<УчтеноВСумме>true</УчтеноВСумме>
<Сумма>532</Сумма>
<Ставка>20</Ставка>
</Налог>
</Налоги>
<ЗначенияРеквизитов>
<ЗначениеРеквизита>
<Наименование>ВидНоменклатуры</Наименование>
<Значение>Товар</Значение>
</ЗначениеРеквизита>
<ЗначениеРеквизита>
<Наименование>ТипНоменклатуры</Наименование>
<Значение>Товар</Значение>
</ЗначениеРеквизита>
<ЗначениеРеквизита>
<Наименование>СвойствоКорзины#CATALOG.XML_ID</Наименование>
<Значение>aspro_mshop_catalog_s2</Значение>
</ЗначениеРеквизита>
<ЗначениеРеквизита>
<Наименование>СвойствоКорзины#PRODUCT.XML_ID</Наименование>
<Значение>Ц0000007725</Значение>
</ЗначениеРеквизита>
<ЗначениеРеквизита>
<Наименование>CATALOG.XML_ID</Наименование>
<Значение>aspro_mshop_catalog_s2</Значение>
</ЗначениеРеквизита>
<ЗначениеРеквизита>
<Наименование>PRODUCT.XML_ID</Наименование>
<Значение>Ц0000007725</Значение>
</ЗначениеРеквизита>
</ЗначенияРеквизитов>
</Товар>
<Товар>
<Ид>Ц0000027053</Ид>
<ИдКаталога>aspro_mshop_catalog_s2</ИдКаталога>
<БазоваяЕдиница Код="796" НаименованиеПолное="Штука" МеждународноеСокращение="PCE">шт</БазоваяЕдиница>
<Единица>
<Ид>796</Ид>
<НаименованиеКраткое>шт</НаименованиеКраткое>
<Код>796</Код>
<НаименованиеПолное>Штука</НаименованиеПолное>
</Единица>
<Коэффициент>1</Коэффициент>
<Скидки>
<Скидка>
<Наименование>Скидка на товар</Наименование>
<Сумма>13.2</Сумма>
<УчтеноВСумме>true</УчтеноВСумме>
</Скидка>
</Скидки>
<ЦенаЗаЕдиницу>66</ЦенаЗаЕдиницу>
<Количество>1</Количество>
<Сумма>52.8</Сумма>
<Налоги>
<Налог>
<Наименование>НДС</Наименование>
<УчтеноВСумме>true</УчтеноВСумме>
<Сумма>8.8</Сумма>
<Ставка>20</Ставка>
</Налог>
</Налоги>
<ЗначенияРеквизитов>
<ЗначениеРеквизита>
<Наименование>ВидНоменклатуры</Наименование>
<Значение>Товар</Значение>
</ЗначениеРеквизита>
<ЗначениеРеквизита>
<Наименование>ТипНоменклатуры</Наименование>
<Значение>Товар</Значение>
</ЗначениеРеквизита>
<ЗначениеРеквизита>
<Наименование>СвойствоКорзины#CATALOG.XML_ID</Наименование>
<Значение>aspro_mshop_catalog_s2</Значение>
</ЗначениеРеквизита>
<ЗначениеРеквизита>
<Наименование>СвойствоКорзины#PRODUCT.XML_ID</Наименование>
<Значение>Ц0000027053</Значение>
</ЗначениеРеквизита>
<ЗначениеРеквизита>
<Наименование>CATALOG.XML_ID</Наименование>
<Значение>aspro_mshop_catalog_s2</Значение>
</ЗначениеРеквизита>
<ЗначениеРеквизита>
<Наименование>PRODUCT.XML_ID</Наименование>
<Значение>Ц0000027053</Значение>
</ЗначениеРеквизита>
</ЗначенияРеквизитов>
</Товар>
Answer the question
In order to leave comments, you need to log in
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question