Телеграм: @camouf_ru Почта: mihail@bazarow.ru

Установить остатки товара на складе из доступных остатков.

Просмотров: 4890

Задача, заполнить остатки товаров, в 1С-Битрикс, из параметра "Доступное количество".

Для этого достаточно воспользоваться методами CIBlockElement::GetList и CCatalogStoreProduct::Add


CModule::IncludeModule('iblock');
Cmodule::IncludeModule('catalog');
$addProps = CIBlockElement::GetList(
        Array("ID" => "ASC"),
        Array("IBLOCK_ID" => 7),
        false,
        false,
        Array(
            'ID',
            'CATALOG_QUANTITY',
        )
);
while ($ar_fields = $addProps->Fetch()) {
    $arFields = Array(
        "PRODUCT_ID" => $ar_fields['ID'],
        "STORE_ID" => 1,
        "AMOUNT" => (int)$ar_fields['CATALOG_QUANTITY']
    );
    $ID = CCatalogStoreProduct::UpdateFromForm($arFields);
}

Пояснения:

  • Подключили модули инфоблока и каталога
  • С помощью CIBlockElement::GetList - получили ID и количество доступного товара из инфоблока ID-7
  • В цикле, прошлись по всем элементам и обновили количества остатка на складе с ID=1, методом CCatalogStoreProduct::UpdateFromForm
Артём 26.08.2022
как сделать что бы при обновлении остатка (доступного) перезаписывалось по данному коду остаток на складе
Михаил Базаров 27.08.2022
Цитата
Артём написал:
как сделать что бы при обновлении остатка (доступного) перезаписывалось по данному коду остаток на складе

Можно сделать обработчик события с OnAfterIBlockElementUpdate
В init.php
Код
AddEventHandler("iblock", "OnAfterIBlockElementUpdate", Array("UpdateAmounts", "OnAfterIBlockElementUpdateHandler"));
class UpdateAmounts
{
    function OnAfterIBlockElementUpdateHandler(&$arFields)
    {
       Получаем товар по его arFields['ID'] и делаем с ним что хотим
    }
}


Если не критична скорость обновления, можно повесить этот скрипт на cron что бы отрабатывал с каким-то периодом.

Записная книжка разработчика

Примерно с 2013-го года пишу заметки по разработке сайтов на Битрикс.
Вы можете задавать уточняющие вопросы в комментариях- отвечаю или дополняю заметки по возможности.

Вывести разделы инфоблока в которых находится элемент Битрикс Просмотров: 16018 Если нужно в карточке товара или новости, вывести структуру разделов в котором находится э... Вывести все разделы в которых находится элемент инфоблока Просмотров: 13027 Если нужно вывести все разделы, со всей доступной информацией о них, внутри элемента инфоб... Добавить свойство в административную форму заказа Просмотров: 2809 Задача, кастомизировать административную форму заказа: добавить свойство заказа в шапку фо... Получить и вывести пользовательские свойства склада в 1С-Битрикс Просмотров: 1322 Задача: вывести пользовательские свойства в подробном описании склада. При этом, есть и мн... Регистрация пользователя в определенную группу сайта на Битрикс Просмотров: 22094 Достаточно часто требуется регистрировать пользователя в определенную группу, в зависимост... Показать только один тип цены в каталоге Битрикс Просмотров: 13742 Достаточно часто, при создании сайта на битрикс, можно столкнуться с такой проблемой: на с... Информация о заказах и содержимое корзины текущего пользователя. Просмотров: 11776 В процессе разработки сайта могут понадобиться рецепты приведенные ниже. Использовать можн... Картинка торгового предложения вместо иконки цвета, в выборе SKU Просмотров: 270 Задача: вместо не информативных иконок цветов нужно вывести детальную картинку торгового п... Данные о заказе текущего пользователя Просмотров: 12901 Иногда нужно получить данные о заказе текущего пользователя. Не через компонент, а непосре... Вывести имя пользователя добавившего элемент инфоблока в Битрикс Просмотров: 16040 Иногда, необходимо вывести имя пользователя добавившего элемент инфоблока. Например, автор... Минимальная сумма заказа в корзине и оформлении заказа в 1С-Битрикс Просмотров: 8484 В этой заметке добавим возможность установки минимальной суммы заказа, в новом шаблоне кор... Сортировка элементов по индексу сортировки значений типа список Просмотров: 10545 Внутри любого компонента есть заранее заложенные поля для сортировки элементов. МОжно сорт... Увидеть файл заказов который передаст Битрикс в 1С Просмотров: 23306 Для диагностики обмена заказов, интернет-магазина на 1С Битрикс с 1С Управление Торговлей,... Открытие мобильного приложения Apache Cordova по ссылке Просмотров: 683 Достаточно часто нужно реализовывать открытие мобильного приложения по ссылке. Например: п... Пункты меню из разделов инфоблока Битрикс Просмотров: 90688 В принципе это стандартная возможность системы управления битрикс, но почему-то часто спра... Фиксированная корзина с обновлением, без перезагрузки страницы. Просмотров: 17499 Иногда нужно сделать так, чтобы корзина в интернет магазине, созданном на Битрикс, была по... Вывести товары из того же раздела в карточке товара Просмотров: 17947 Немножко топорный, но все же вполне действенный способ по выводу внутри подробной карточки... Ajax форма обратной связи, реализация в битрикс Просмотров: 7577 Иногда, на сайте требуется создать форму обратной связи, которая будет писать все данные в... Как вывести картинки к разделам на базе _ext меню Просмотров: 7085 Просто для эстетической красоты, нужно вывести в меню разделов сайта картинки или иконки. ... Denwer c PHP 7.1.8 и MYSQL 5.7 оптимизированный для Битрикс Просмотров: 29517 В последнее время, все чаще приходиться работать на Windows, хотя и не люблю эту ОС- с точ...