Онлайн-руководство разработчика NetCat
Модуль «Поиск по сайту» 12.2.1Начало работы с модулем 12.2.2Язык запросов 12.2.3Способы хранения индекса 12.2.4Интерфейс модуля в панели управления сайтом 12.2.5Области индексирования 12.2.6Области HTML-страниц 12.2.7Области поиска на сайте 12.2.8Индексирование по расписанию, запуск индексирования в фоновом режиме 12.2.9Правила индексирования 12.2.10Постановка задачи переиндексирования в очередь 12.2.11Интеграция модуля в макеты дизайна сайта 12.2.12Простая форма поиска 12.2.13Расширенная форма поиска 12.2.14Вывод результатов поиска 12.2.15Стилизация списка подсказок 12.2.16Расширенные настройки 12.2.17Разработка расширений модуля 12.2.18Обзор архитектуры модуля 12.2.19Обработчики документов различных типов 12.2.20Текстовые фильтры 12.2.21Анализаторы текста 12.2.22Корректировщики запросов 12.2.23Подключение других поисковых систем 12.2.24Решение проблем с поиском 12.2.25Решение проблем с индексированием 12.2.26Справочник API

Скидки на всю сумму заказа

Второй вариант скидок – скидки на всю сумму заказа. Для таких скидок «Стоимость [TotalPrice]» означает стоимость всех товаров в корзине (с учетом примененных товарных скидок), а [Qty] – количество различных наименований товаров в магазине.

Пример: скидка 10% при покупке товаров на общую сумму более 1000

Условие: [TotalPrice] > 1000
Преобразование: [TotalPrice] (умножить) 0.9

Если компоненты товаров в вашем магазине содержат дополнительные поля, то вы можете в квадратных скобках указать их название. Тогда в качестве условия будет выступать сумма по данному полю по всем товарам (пример см. в разделе «Наценки»).

При наличии нескольких удовлетворяющих условиям скидок на сумму заказа, они будут применяться одна за другой в порядке убывания их приоритета до тех пор, пока не будет достигнуто одно из условий:

  • у скидки установлен флаг «Дальнейшие скидки не применяются»;

  • сумма заказа меньше суммы минимальных цен товаров;

  • применены все возможные для данного товара скидки.

Скидки в зависимости от суммы предыдущих покупок пользователя

Вы можете использовать псевдо-переменную [PrevOrdersSum] в поле «Условие» для того, чтобы задавать скидку в зависимости от суммы всех завершенных заказов данного пользователя. Данное условие может быть применено как к отдельным товарам, так и к корзине в целом.

Пример: скидка 5% покупателям, купившим товаров на сумму более 100000

Условие: [PrevOrdersSum] > 100000
Преобразование: [TotalPrice] (умножить) 0.95

Для того, чтобы срабатывало условие [PrevOrdersSum] необходимо указать в параметре PREV_ORDERS_SUM_STATUS_ID в настройках модуля «Интернет-магазин» идентификаторы соответствующих статусов в списке Статусы заказов (ShopOrderStatus). 

Комментарии 3

А когда ставишь скидку на каждый товар [TotalPrice] - 100 руб. Вычитает 100 руб из всей стоимости корзины. Получается если купить 2 товара по 1000 - 2000-100 руб = 1900, а если купить 2 раза по одному то на каждый будет скидка 100 руб. Бред! у неткета тестировщики есть вооще?
   
amigo 29 мая 2014, 16:48:30
Начиная с версии 5.3 в систему внедрён абсолютно новый модуль интернет-магазина, в нём есть весьма гибкая [URL='http://netcat.ru/developers/docs/module-netshop/discounts/']система выдачи скидок[/URL]. Рекомендуем вам, по возможности, обновиться до текущей версии.

Инструкция по переходу на новый модуль [URL='http://netcat.ru/developers/docs/module-netshop/upgrade/']есть здесь[/URL].
   
Если кому-то нужно исправить описанную выше башу в старой версии магазина, то в

/netcat/modules/netshop/nc_mod_netshop.class.php

строка 623

if ($new_value = @eval("return $row$discount[FunctionDestination] $discount[FunctionOperator] $discount[cFunction];")) {

заменяется на

if ($new_value = @eval("return $row$discount[FunctionDestination] $discount[FunctionOperator] ($discount[cFunction] * $row[Qty]);")) {
   
Описание проекта