Была поставлена задача - быстро изменить (изменять) количество товара (QANTITY) в каталоге на сайте CMS Битрикс
Решается она просто тремя способами :
И так с первым способом всё понятно, обнако делать его лучше через пункт меню "Магазин", в инфоблоках в экспорте может не быть поля QANTITY
Второй способ - написать скрипт изменения количества и разместить его в публичной части сайта, я сделал это в папке /tools/, скрипт назвал quant.php, для его запуска достаточно набрать в адресной строке браузера - vash-site.ru/tools/quant.php. После перехода на страницу увидите информацию о текущем положении с количеством, перезагрузив страницу скрипт обновит все значения количества (QANTITY) в выбранном инфоблоке
CModule::IncludeModule('iblock');
$arFilter = array(
'IBLOCK_ID' => 20,//Номер инфоблока
);
$res = CIBlockElement::GetList(false, $arFilter, array('IBLOCK_ID','ID'));
while($el = $res->GetNext()){
$ID = $el['ID'];
$ar_res = CCatalogProduct::GetByID($ID);
$newq = new CCatalogProduct;
$newq -> Update($ID, array('QUANTITY' => '10000'));//количество
if($newq){ echo "У элемента с ID ".$ID." количество стало - ".$ar_res["QUANTITY"]." , все OK!";
}else{
echo "FAIL!";
}}
Третий способ подойдет для нового каталога, при ручном заполнении которого иногда забывают прописать количество, в итоге товар недоступен к покупке, хотя цена есть. Чтобы этого не случилось нужно добавить в файл /bitrix/php_interface/init.php следующий скрипт:
AddEventHandler("sale", "OnProductAdd", "OnProductAdd");
function OnProductAdd(&$ID,$Fields)
{
$res=Array("QUANTITY"=>"10000");
CCatalogProduct::Update($ID,$res);
}