Автор Тема: Баг расчета скидки на товар с наценкой  (Прочитано 123 раз)

25 Июня 2016, 14:55:55
  • Новичок
  • *
  • Сообщений: 15
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
    • Интернет магазин детской одежды из мембранных тканей
Доброго времени суток. У меня преста 1.6.1.5. На днях обнаружил вот такой баг.
Формирую комбинацию для товара. На один из товаров ставлю наценку, в поле наценка. В разделе комбинации выставляю этот товар по умолчанию.. В разделе цена присваиваю скидку, вместо базовой цены вписываю свою цену и ставлю размер скидки. В итоге при выборе товаров товар у меня отражается с неправильной ценой. Если наценку ставлю 0 - баг исчезает. 

Размер скидки считается не от заданной вручную цены, а от цены опта.
Вот пример http://e.beezy.com.ua/kollekciya-standart/72-komplekt-zimnij-beezy-acitve-na-malchika.html#/34-razmer_odezhdy-104/98-cvet_odezhdy-016

Если переключиться на размер 110 - то все будет хорошо

Где посмотреть и как исправить?
25 Июня 2016, 17:29:17
Ответ #1
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 85953
  • Репутация: +25399/-0
  • Сообщество PrestaShop
    • Просмотр профиля
В чем баг? Скидку вычитает, цену показывает. Если считает не так как вам нужно, создайте другое правило или установите модуль Расширенные скидки (модуль продается на оф. сайте).
25 Июня 2016, 17:35:47
Ответ #2
  • Новичок
  • *
  • Сообщений: 15
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
    • Интернет магазин детской одежды из мембранных тканей
В чем баг? Скидку вычитает, цену показывает. Если считает не так как вам нужно, создайте другое правило или установите модуль Расширенные скидки (модуль продается на оф. сайте).

Скидку вычитает не от той цены! В этом и баг. И если наценки нет - скидку считает правильно, если наценка равна ненулевому значению - то сразу считает неправильно
25 Июня 2016, 17:59:57
Ответ #3
  • Фрилансер
  • *
  • Сообщений: 235
  • Репутация: +2/-0
    • Просмотр профиля
Скидку вычитает не от той цены! В этом и баг. И если наценки нет - скидку считает правильно, если наценка равна ненулевому значению - то сразу считает неправильно
Вы ошибаетесь, нет такого бага в prestashop. Не возможно применять одновременно скидку и наценку. У вас не правильно созданны правила ценнообразования.
Товару задают базовую цену. От нее можно задать наценку или же скидку для комбинации, не от оптовой цены, а от продажной. 
25 Июня 2016, 18:18:43
Ответ #4
  • Новичок
  • *
  • Сообщений: 15
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
    • Интернет магазин детской одежды из мембранных тканей
Скидку вычитает не от той цены! В этом и баг. И если наценки нет - скидку считает правильно, если наценка равна ненулевому значению - то сразу считает неправильно
Вы ошибаетесь, нет такого бага в prestashop. Не возможно применять одновременно скидку и наценку. У вас не правильно созданны правила ценнообразования.
Товару задают базовую цену. От нее можно задать наценку или же скидку для комбинации, не от оптовой цены, а от продажной.

Я прикрепил ссылку специально для того чтобы можно было посмотреть, что если товар указан не по умолчанию - все работает чики пики, а когда товару присваивается значение в комбинациях по умолчанию - считает неправильно!!!
25 Июня 2016, 19:38:17
Ответ #5
  • Ветеран
  • *****
  • Сообщений: 2169
  • Репутация: +49/-4
  • Сообщество PrestaShop
    • Просмотр профиля
Ты не путаешь? Раньше было наоборот, когда нет комбинации по умолчанию, то считает не правильно. Не раз об этом писали.
25 Июня 2016, 19:44:21
Ответ #6
  • Новичок
  • *
  • Сообщений: 15
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
    • Интернет магазин детской одежды из мембранных тканей
Ты не путаешь? Раньше было наоборот, когда нет комбинации по умолчанию, то считает не правильно. Не раз об этом писали.

не путаю, версию престы указал ссылку для демонстрации прикрепил
25 Июня 2016, 19:54:33
Ответ #7
  • Ветеран
  • *****
  • Сообщений: 13147
  • Репутация: +14553/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Что такое "Оптовоя цена"? Где вы ее устнавливаете?
25 Июня 2016, 20:01:15
Ответ #8
  • Ветеран
  • *****
  • Сообщений: 32991
  • Репутация: +26759/-0
    • Просмотр профиля
Цитировать
Размер скидки считается не от заданной вручную цены, а от цены опта.
Это может быть только когда установлены модули для скидок. В базовой версии скидка расчитывается от Розничной цены.
25 Июня 2016, 20:05:19
Ответ #9
  • Ветеран
  • *****
  • Сообщений: 32991
  • Репутация: +26759/-0
    • Просмотр профиля
Что такое "Оптовоя цена"? Где вы ее устнавливаете?
В комбинациях можно указать "Оптовая цена", она заменяет оптовую цену в карточке товара в таблице оптовых цен.
25 Июня 2016, 20:10:45
Ответ #10
  • Ветеран
  • *****
  • Сообщений: 13147
  • Репутация: +14553/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Что такое "Оптовоя цена"? Где вы ее устнавливаете?
В комбинациях можно указать "Оптовая цена", она заменяет оптовую цену в карточке товара в таблице оптовых цен.
У вас перевод не точный. У меня английсткая версия и поле называется "Wholesale price", что соотвествует Закупочной цены в табе Цены.
Также в подсказке написано - "Overrides the wholesale price from the "Prices" tab".
Т.е. это не оптовая цена, а цена по которой товар был куплен.
От нее никаких скидок не может быть. Это цена для админа магазина.

Расчет финальной цены происходит так:
Цена продажи товара - 100руб.
Скидка 20 руб
Цена в комбинации не указана
Закупочная (оптовая) цена в комбинации указана - 50 руб.
Влияние на цену в комбинации повышении 10 руб.
Расчет цены - 100+10=110руб - 20руб=90 руб.
Так у меня считает цены в prestashop 1.6.1.5
Комбинация по умолчанию указанна.
Всего 6 комбинаций и у всех разное значение во влиянии на цену.
25 Июня 2016, 20:15:58
Ответ #11
  • Новичок
  • *
  • Сообщений: 15
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
    • Интернет магазин детской одежды из мембранных тканей
Проблема в том, что если товар стоит не по умолчанию - все работает правильно, и если у товара нет наценки (например на больший рост одежды мы делаем наценку к розничной цене на ххх - то тоже все работает

А как только ставишь товар с наценкой не равной 0 - то сразу скидка считается от этой оптовой цены., да это цена для админа
23 Сентября 2016, 15:44:36
Ответ #12
  • Новичок
  • *
  • Сообщений: 2
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
у меня такая же проблема, версия престы 1.6.1.6

 разделе комбинации выставляю комбинацию товара по умолчанию. В разделе цена присваиваю скидку для этой комбинации, вместо базовой цены вписываю свою цену и ставлю размер скидки. В итоге на странице товара при выборе данной комбинации отображается неправильная итоговая цена. Скидка отнимается дважды. По другим комбинациям работает все правильно.

help
24 Сентября 2016, 11:50:31
Ответ #13
  • Ветеран
  • *****
  • Сообщений: 2169
  • Репутация: +49/-4
  • Сообщество PrestaShop
    • Просмотр профиля
Потому что у тебя 2 скидки, в разделе цена ставишь и еще в комбинации. Удали одну скидку. 
24 Сентября 2016, 12:17:16
Ответ #14
  • Новичок
  • *
  • Сообщений: 2
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Скидка была указана одна, только в разделе "специальная цена". В комбинации не было.

Разобрался в чем была проблема. В файле класса Product.php нашел блок   
/ Affect reference before returning cache /
if (isset($specific_price['price']) && $specific_price['price'] > 0) {
      // $specific_price['price'] = self::$_prices[$cache_id];
}
в нем закомментировал строку // которая обновляла переменную $specific_price на цену из кеша после загрузки страницы, в итоге скидка отнималась дважды именно по комбинации по умолчанию (комбинация которая загружается при загрузке страницы товара)
не знаю зачем это условие было добавлено в классы, но для меня оно лишнее.