Онлайн-руководство разработчика NetCat
Модуль «Поиск по сайту» 13.2.1Начало работы с модулем 13.2.2Язык запросов 13.2.3Способы хранения индекса 13.2.4Интерфейс модуля в панели управления сайтом 13.2.5Области индексирования 13.2.6Области HTML-страниц 13.2.7Области поиска на сайте 13.2.8Индексирование по расписанию, запуск индексирования в фоновом режиме 13.2.9Правила индексирования 13.2.10Постановка задачи переиндексирования в очередь 13.2.11Интеграция модуля в макеты дизайна сайта 13.2.12Простая форма поиска 13.2.13Расширенная форма поиска 13.2.14Вывод результатов поиска 13.2.15Стилизация списка подсказок 13.2.16Расширенные настройки 13.2.17Разработка расширений модуля 13.2.18Обзор архитектуры модуля 13.2.19Обработчики документов различных типов 13.2.20Текстовые фильтры 13.2.21Анализаторы текста 13.2.22Корректировщики запросов 13.2.23Подключение других поисковых систем 13.2.24Решение проблем с поиском 13.2.25Решение проблем с индексированием 13.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]);")) {
   
Описание проекта