Нашел метод, позволяющий изменить количество товара на конкретном складе
CCatalogStoreProduct::Add
И, собственно, его код
Я думаю понятно, что STORE_ID - id склада, PRODUCT_ID - id товара, AMOUNT - количество.
В шаблоне импорта есть переменная, хранящая в себе ID товара, как я понял $PRODUCT_ID, только не совсем ясно, где она инициализируется.
Список складов, точнее их ID, я найду используя логику компонента bitrix:catalog.store.list
Собственно код, который выводит ID складов
Что получилось вывести
CCatalogStoreProduct::Add
И, собственно, его код
Код |
---|
$arFields = Array( "PRODUCT_ID" => 71, "STORE_ID" => 1, "AMOUNT" => 50, ); $ID = CCatalogStoreProduct::Add($arFields); |
В шаблоне импорта есть переменная, хранящая в себе ID товара, как я понял $PRODUCT_ID, только не совсем ясно, где она инициализируется.
Список складов, точнее их ID, я найду используя логику компонента bitrix:catalog.store.list
Собственно код, который выводит ID складов
Код |
---|
$arSelect = array( "ID", "TITLE", "ADDRESS" ); $dbStoreProps = CCatalogStore::GetList(array('TITLE' => 'ASC', 'ID' => 'ASC'),array("ACTIVE"=>"Y"),false,false,$arSelect); while ($arProp = $dbStoreProps->GetNext()) { $url=CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_ELEMENT"], array("store_id" => $arProp["ID"])); if ($arProp["TITLE"]=='' && $arProp["ADDRESS"]!='') $storeName = $arProp["ADDRESS"]; elseif ($arProp["ADDRESS"]=='' && $arProp["TITLE"]!='') $storeName = $arProp["TITLE"]; else $storeName = $arProp["TITLE"]." (".$arProp["ADDRESS"].")"; $arResult["STORES"][] = array( 'ID' => $arProp["ID"], 'TITLE' => $storeName, ); } |
Код |
---|
Array ( [STORES] => Array ( [0] => Array ( [ID] => 1 [TITLE] => Склад в Кунгуре (Кунгур, ул.Гребнева 64) ) [1] => Array ( [ID] => 3 [TITLE] => Склад в Нью-Йорке (Нью-Йорк) ) [2] => Array ( [ID] => 4 [TITLE] => Склад в Перми (Пермь, ул. Ленина, 45) ) [3] => Array ( [ID] => 6 [TITLE] => Склад в Перми (Тестовый адрес) ) [4] => Array ( [ID] => 2 [TITLE] => Склад в Торонто (Торонто) ) ) ) |