Михаил Базаров Разработка на 1С-Битрикс Михаил Базаров

Массово: применить наценку ко всем товарам каталога с пересчетом от базовой.

Внимание! Все сообщения на форуме проходят модерацию. Ваше сообщение появится после проверки.
Массово: применить наценку ко всем товарам каталога с пересчетом от базовой.

Рассмотрим как, в магазине работающем на 1С-битрикс, массово применить наценку на все товары каталога. Устанавливать будем для не базовой цены. При каждом обновлении базовой цены (например при обновлении товаров импортом), наша цена будет пересчитываться согласно наценке.
Цитата
Константин Синильников написал:
Цитата
Михаил Базаров пишет:
можно сделать обработчик в init.php срабатывающий на событие добавление элемента OnAfterIBlockElementAdd
А есть код такого обработчика?

Примерно так (сделал не проверяя, возможны ошибки - но должно сработать):
Скрытый текст
а возможно ли установить наценку не процент а допустим плюс 100 р на весь товар
Цитата
Guest написал:
а возможно ли установить наценку не процент а допустим плюс 100 р на весь товар
Именно через наценки, думаю, не получится
Но можно, просто изменить цену, пробежавшись по всем товарам циклом и этим же методом ( CPrice::Update)  обновить цены.
Эта заметка поможет
https://bazarow.ru/blog-note/6554/
Там цена копируется из свойства- вам, вместо получения свойства, достаточно просто получать текущую цену (любую), прибавлять к ней 100 и сохранять в любую другую цену (или эту же)
Здравствуйте, подскажите, а как применить этот скрипт и для торговых предожений?

спасибо
В принципе, точно так же- должно сработать. Просто, указывайте ID инфоблока с ТП
Добрый день!
Подскажите, а как сделать, если мне нужно для определенного типа цены применить наценку не на все товары, а только для определенного раздела.
Например есть у меня тип цены «ИП Пупкин» и раздел «Тапки». Вот для товаров этого раздела и применить для типа цены «ИП Пупкин» наценку - 100% ?
Можно в фильтре отобрать товары только нужного раздела

Код
$getElementId = CIBlockElement::GetList(
    Array("ID" => "ASC"),
    Array(
          "IBLOCK_ID" => $IBLOCK_ID,
          'SECTION_ID' => 33 // ID нужного раздела
),
    false, false,
    Array('ID')
);
Добрый день! Спасибо за ваш блог!

Сделала наценку на все товары, но возникла проблема: при обновлении цен и остатков (с помощью стандартного модуля обмена), затирается у всех товаров новая цена с наценкой. Цена из 1С передается только одна, и на сайте она базовая.

Как можно запретить 1C это делать? Вот такой код в unit не работает:
Код
                
unset($arFields['EXTRA_ID']);
Можно на стороне 1С вообще убрать выгрузку цен, оставить только сами товары и остатки.
Спасибо за рекомендацию, так не получится, цена нужна именно из 1С, на основе нее формируется другая цена. К тому же стандартный модуль обмена не позволяет это сделать, а дополнительный поставить нет технической возможности (нет подходящей версии под нашу редакцию)
Форма ответов
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
Загрузить файлы
 

Блог-note Заметки по 1С-Битрикс