Второй вариант скидок – скидки на всю сумму заказа. Для таких скидок «Стоимость [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
Инструкция по переходу на новый модуль [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]);")) {