Заказать разработку

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

Автор:

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

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

После включения складского учета необходимо заполнить остаток товаров по складам. Тем более, если работает выгрузка товаров из 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 (953) 298-86-66

29 июня 2024


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

ДРУГИЕ СТАТЬИ

Возврат к списку
Участник программы мониторинга качества внедрения Gold partner INTEC

Заказать проект или работы:

Проверяем мессенджеры и почту 3 раза в день. Отвечаем в течении 24-х часов.

Заказать разработку