PrestaShop - цена товара со скидкой, глюкодром сцена 25

archive view archive save

prestashop-logo_1.jpg Клиент: Баг сомнительного содержания. Цена указана со скидкой, но при добавлении в корзину - полная стоимость. Поддержка: Не вижу проблем, в корзине скидка учтена. Клиент: Вы попробуйте штук 10 добавить.

ОК, давайте щас попробуем...

  1. Баг сомнительного содержания
  2. Правило скидки 1
  3. Правило скидки 2
  4. Правила скидки на все товары
  5. Эпилог

Баг сомнительного содержания

Значит, есть страница товара в магазе на движке PrestaShop 1.6, в настройках (товара) которого:

ЦЕНЫ -> ПО ЦЕНЕ ТОВАРА
 
Оптовая цена        $0.49
Розничная цена      $0.570000
Налоговые правила   Без налогов
 
ЦЕНЫ -> СПЕЦИАЛЬНЫЕ ЦЕНЫ
 
Установлено 4 правила:
 
№ правила     Влияние (скидка)    от (количество)
1)            $0.15 (Вкл. НДС)    1
2)            1 %                 10
3)            3 %                 20
4)            5 %                 50
 
Остальные параметры для всех правил:
  Правило             -
  Комбинация          Все комбинации
  Валюта              Всех валют
  Страна              Все страны
  Группа              Всех групп
  Клиент              Все покупатели
  Фиксированная цена  -
  (без НДС)
  Период              Неограниченно
 
КОМБИНАЦИИ (варианты товара)
 
Пара атрибут - значение     Влияние на цену
Рога - без копыт            $0.00
Рога - с копытами           $0.10

Товара Рога - без копыт нет в наличии, остались только Рога - с копытами, что добавляет 10 центов к Розничная цена и в итоге = $0.67 за штуку.

Отдельно от настроек товара функцией по API ПрибацБанка проверяется текущий курс доллара, который равен: 36,920741 UAH (1 цент = 0,36920741).

Розничная цена товара Рога - с копытами без скидки в UAH: 0,36920741 * 67 = 24,74 (24,73689647)

Теперь разбираемся почему, если штук 10 добавить, как заявляет Клиент - полная стоимость...

Правило скидки 1

Условия скидки согласно Правило скидки 1:

  • от (количество)   1
  • Скидка в центах  $0.15
  • Скидка в UAH:    0,36920741 * 15 = 5,54 (5,53811115)

На странице товара цена за штуку:

  • Базовая цена    24,74 UAH
  • Скидка             -5,54 UAH
  • Итоговая цена  19,20 UAH

Правило 1 срабатывает на число товаров до 10 (т.е. на 9 штук):

19,20 UAH * 9 = 172,8 UAH (172,79 в корзине)

Разница в 1-у копейку получилась из-за округления цены в большую сторону фронтенд-скриптом:

var our_price_display = parseFloat(our_price_display).toFixed(2);

А корзина выдала более точную итоговую цену.

Правило скидки 2

Условия скидки согласно Правило скидки 2:

  • от (количество)         10
  • Скидка в ПРОцентах  1%

Правило 2 срабатывает на число товаров ОТ 10 ДО 20 штук, соответственно Правило 1 уже не применяется:

Базовая цена за 10 штук: 24,73689647 * 10 = 247,3689647

Вычисляем скидку в 1% от заказа Рога - с копытами 10 штук: 247,3689647 / 100 = 2,473689647

Вычисляем итоговую стоимость со скидкой: 247,3689647 - 2,473689647 = 244,90 (244,895275053)

Получилось дороже (244,90), чем при заказе до 10 штук (172,79).

Аналогично по оставшимся правилам от 20 и 50 штук вычисляем скидку в 3% и 5% соответственно.

Правила скидки на все товары

Материал наверно будет не полным если не упомянуть про скидку применяему сразу на все товары каталога или на отдельную их категорию, например на период нового года или какого-то иного знакового события - возможно, что Баг сомнительного содержания спрятался именно там...

Ведь можно умом тронуться, если предположим нужно установить скидку сразу на все товары и делать это отдельно в настройках каждого товара!

Установить скидку сразу на все товары или на отдельную их категорию можно следующим образом

  • Меню - Ценовые правила - Ценовые правила каталога, Добавить - Ценовые правила каталога можно установить правило скидки на весь каталог:
    • Валюта
    • Страна
    • Группа (посетитель / гость)
    • От количества
    • Цена без НДС или Оставить базовую цену
    • Дата С и По
    • Тип скидки (итого / процент)
    • Снижение с учётом или без учёта налогов
  • Там же добавив Группа условий - Добавить новую группу условий можно уточнить условия скидки по таким критериям как:
    • Категория
    • Производитель
    • Поставщик
    • Атрибуты
    • Характеристики

В англорептилоидном варианте данный пункт меню может называться Price Rules - Catalog Price Rules - Add new.

По-идее массовая скидка на все товары каталога должна перекрывать правила скидок в настройках каждого отдельного товара.

Эпилог

В действительности всё не так, как на самом деле.

Баг сомнительного содержания по факту оказался неправильно используемой фичей.

Всё в порядке, скидки на Рога - с копытами вычисляются так, как определено управляющим магазина в настройках товара!

И тут вспомнился анекдот:

  • сисьадмин: в отпуске на море, ему звонит заказчик и просит пароль от сервера, а тот ему и отвечает z@еб@ли вы меня.
  • заказчик: я понимаю, что ты отдыхаешь, но зачем же так резко?!
  • сисьадмин: да я пароль от сервера ж говорю - z@еб@ли вы меня по русским кнопкам, при английской раскладке, маленькими буквами и без пробелов.

Жаль только, что я не в отпуске и не на море!

Похожие Баги сомнительного содержания могут встречаться на говно-сайтах крупных шмаркетплейсов и торговых сетей, пользуясь которыми можно покупать существенно дешевле да ещё и с бесплатной доставкой, чем оффлайн по ценникам в магазине.


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

АХТУНГ! Все комменты гостей модерасятся модерастом.
  1. Мессаги исключительно рекламного содержания, либо содержащие только одни оценочные суждения типа "круто" ("отлично", "спасибо", "автор дебил" и т.п.) не публикуются;
  2. Злостным спамерам, пранкерам и прочей сетевой нечисти рекомендуем напрасно не тратить своего времени и удовлетворять свои больные фантазии на специализированных Интернет ресурсах!;
  3. Разумная обоснованная критика, замечания, дополнения приветствуются. Поля помеченные символом * обязательны к заполнению.


Защитный код
Обновить

Нет комментариев

Вы можете стать первым, кто добавит комментарий к этой записи.

Комментарии в блоге
Новое на форуме