Заполнить остаток товаров на складе из доступного остатка - разработка и поддержка сайтов BUSSOL
Напишите нам
Напишите нам

Заполнить остаток товаров на складе из доступного остатка

Автор:

Дата публикации:

Заполнить остаток товаров на складе из доступного остатка

После включения складского учета необходимо заполнить остаток товаров по складам. Тем более, если работает выгрузка товаров из 1С, то остатки постоянно обновляются. Следовательно нужно сделать автоматическое обновление остаток на нужном складе. Для это задачи можно использовать скрипт на CRON:


require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");

use \Bitrix\Main\Loader;

Loader::IncludeModule('iblock');
Loader::IncludeModule('catalog');

$addProps = CIBlockElement::GetList(
        Array("ID" => "ASC"),
        Array("IBLOCK_ID" => 5),
        false,
        false,
        Array(
            'ID',
            'CATALOG_QUANTITY',
        )
);
while ($ar_fields = $addProps->Fetch()) {
    $arFields = Array(
        "PRODUCT_ID" => $ar_fields['ID'],
        "STORE_ID" => 3,
        "AMOUNT" => (int)$ar_fields['CATALOG_QUANTITY']
    );
    $ID = CCatalogStoreProduct::UpdateFromForm($arFields);
}

Подключаем пролог и два модуля iblock и catalog. Первый модуль нам нужен для использования метода GetList класса CIBlockElement, чтобы выбрать все активные товары. А второй нужен для использования метода UpdateFromForm класса CCatalogStoreProduct, чтобы изменить количество товара AMOUNT с кодом PRODUCT_ID на складе с кодом STORE_ID.

Итак, после выборки товаров с помощью GetList, в цикле пробегаемся по каждому и меняем количество каждого на складе.

241027, Россия, Брянская область, поселок Путевка, улица Рослальская, дом 8, кв.121
Телефон: +7 (950) 692-91-71

После включения складского учета необходимо заполнить остаток товаров по складам. Тем более, если работает выгрузка товаров из 1С, то остатки постоянно обновляются. Следовательно нужно сделать автоматическое обновление остаток на нужном складе. Для это задачи можно использовать скрипт на CRON:


require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");

use \Bitrix\Main\Loader;

Loader::IncludeModule('iblock');
Loader::IncludeModule('catalog');

$addProps = CIBlockElement::GetList(
        Array("ID" => "ASC"),
        Array("IBLOCK_ID" => 5),
        false,
        false,
        Array(
            'ID',
            'CATALOG_QUANTITY',
        )
);
while ($ar_fields = $addProps->Fetch()) {
    $arFields = Array(
        "PRODUCT_ID" => $ar_fields['ID'],
        "STORE_ID" => 3,
        "AMOUNT" => (int)$ar_fields['CATALOG_QUANTITY']
    );
    $ID = CCatalogStoreProduct::UpdateFromForm($arFields);
}

Подключаем пролог и два модуля iblock и catalog. Первый модуль нам нужен для использования метода GetList класса CIBlockElement, чтобы выбрать все активные товары. А второй нужен для использования метода UpdateFromForm класса CCatalogStoreProduct, чтобы изменить количество товара AMOUNT с кодом PRODUCT_ID на складе с кодом STORE_ID.

Итак, после выборки товаров с помощью GetList, в цикле пробегаемся по каждому и меняем количество каждого на складе.


Другие статьи:  Обновление Битрикс до поддержки php 8.x c php 7.x / Хранение сессий в базе данных Битрикс / Получить данные о заказе в Битрикс

Похожие статьи

Подключение скриптов и стилей в 1С-Битрикс
В 1С-Битрикс файлы скриптов и стилей можно подключать через тег <link /> обычным способом. И от этого ничего не пострадает. Однако при таком способе подключения не будет возможности управлять стилями и скриптами из админки...
Как удалить брошенные корзины в Битрикс
Бывает ситуация, когда пользователь добавил товары в корзину, но по какой-то причине не оформил заказ. При этом корзина никуда не девается и продолжает висеть на сайте. В настройках можно задать время хранения брошенных корзин, но почему-то настройка не работает. Остается один выход - программное удаление брошенных корзин
Водяной знак на дополнительных фотографиях товара в 1С-Битрикс
Из коробки 1С-Битрикс идет функционал установки водяного знака на превью и детальное изображение товара. Но как быть, если водяной знак нужно установить на дополнительные фотографии, которые отображаются в слайдере товара, т.е. картинки из свойства типа ФАЙЛ?