moovix

1C-Битрикс: Массовое изменение цен товаров.

Moovix » Блог » 1C-Битрикс: Массовое изменение цен товаров.
Периодически в техподдержку поступают вопросы вида: Как поднять цены на все товары? Через наценки не получается Обычно такие запросы приходят перед праздниками или после роста курса валют. Через наценки действительно не получится в несколько кликов поднять цены сразу на весь каталог. Если товаров на сайте много, а поднять цены надо, то выручить может API.

Периодически в техподдержку поступают вопросы вида:
Как поднять цены на все товары? Через наценки не получается

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Moovix » Блог » 1C-Битрикс: Массовое изменение цен товаров.

Есть вопрос? мы онлайн

Есть проект? Заполните бриф.

top