Нашел метод, позволяющий изменить количество товара на конкретном складе
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] => Склад в Торонто (Торонто) ) ) ) |