Заполнить остаток товаров на складе из доступного остатка - разработка и поддержка сайтов BUSSOL
г.Брянск, Пн-Пт 9:00 – 18:00, Сб 10:00 – 17:00

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

Автор:

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

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

После включения складского учета необходимо заполнить остаток товаров по складам. Тем более, если работает выгрузка товаров из 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 / Хранение сессий в базе данных Битрикс / Получить данные о заказе в Битрикс

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

Адаптивное ютуб видео на сайте
В этом уроке я покажу вам один из способов адаптировать видео, размещенное на сайте с помощью тега iframe, например, видео с хостинга Ютуб.