1C-Битрикс: Массовое изменение цен товаров.
- 18 октября, 2022
- 3:36 пп
- Нет комментариев
Периодически в техподдержку поступают вопросы вида:
Как поднять цены на все товары? Через наценки не получается
Обычно такие запросы приходят перед праздниками или после роста курса валют.
Через наценки действительно не получится в несколько кликов поднять цены сразу на весь каталог.
Если товаров на сайте много, а поднять цены надо, то выручить может API.
Предупреждение:
Прежде чем пользоваться скриптом из данной статьи, убедитесь, что у вас есть резервная копия сайта или файл экспорта каталога, чтобы в случае непредвиденных обстоятельств можно было вернуть цены обратно!
Рассмотрим простейший пример каталога без торговых предложений.
Есть 5 товаров в каталоге, в колонке справа видно цену этих товаров.
Перед нами встала задача поднять цену на эти товары на 30%.
Первым делом, собираем нужную нам информацию.
Смотрим ID инфоблока, в котором хранятся товары. Это можно сделать разными способами, один из самых простых:
ID нашего инфоблока – 4.
Теперь надо выяснить ID типа цены и код валюты.
Открываем карточку товара и смотрим, в каком типе цены мы храним цену, а так же какая валюта используется:
После этого переходим на страницу «Рабочий стол – Магазин – Настройки — Типы цен» и находим ID нашего типа цены:
D нашего типа цены – 1.
Валюта RUB
Переходим непосредственно к скрипту.
Скрипт нужно скопировать и вставить на странице «Рабочий стол — Настройки — Инструменты — Командная PHP-строка». Сам скрипт расположен чуть ниже в статье.
Не запускайте код сразу!
Сначала нужно внести данные, которые мы получили.
Cmodule::IncludeModule("catalog");
$db_res = CPrice::GetList(
array(),
array(
"ELEMENT_IBLOCK_ID" => 4, //ID инфоблока с товарами
"CATALOG_GROUP_ID" => 1, //ID типа цены
"CURRENCY" => "RUB" // Валюта
)
);
while($ar_res = $db_res->Fetch()){
$UpdatedPrice = $ar_res["PRICE"] * 1.3; // Здесь мы меняем цену
CPrice::Update($ar_res["ID"], Array("PRICE" => $UpdatedPrice)
);}
Я выполнил этот код и цены обновились на все товары на 30%:
На этом всё!
Данный код можно использовать как в чистом виде, если у вас простой каталог, либо как заготовку для доработки.
Код не подойдет тем, у кого, например, используется 2 валюты в каталоге.
Рассмотрю варианты по доработке статьи и скрипта, оставляйте в комментариях пожелания.