Перейти к содержимому


Фотография
- - - - -

Вопрос по настройке скидок - как же они все таки работают?

скидки

  • Закрытая тема Тема закрыта
Сообщений в теме: 4

#1 Михаил

Михаил

Отправлено 01 November 2015 - 06:28

Добрый день.

 

Значит потребовалось мне по заказу клиента настроить систему скидок. Т.е. задача стояла так:

1. Необходимо сделать на сайте несколько групп пользователей: зарегистрированные и любимыеклиенты

2. Для каждой группы пользователей есть по 2 скидки. Для зарегистрированных для товара из категории А скидка -5%, а для категории Б -10%. Для любимыхклиентов -10% и -15% соответственно.

 

Вроде все просто и все можно сделать. Но полез я настраивать и огорчился. Не работает ничего и логику работы я не могу понять. Поэтому прошу помощи.

Инструкцию по настройке читал, там ничего не написано, только общее описание что за что отвечает. Версия Joomla: 3.4.5 JBZoo: 2.2.2 Pro rev2997 Zoo: 3.3.9

 

1. Группа зарегистрированные есть. Создал группу любимыеклиенты и создал уровень доступа Clients.

2. Перешел в раздел Коммерция JBZoo, далее в Модификаторы цены товара.

3. Создал элемент "ПРоизвольное значение".

4. В нем указываю: уровень доступа - зарегистрированный. Выбираю категорию А. Указываю скидку -5%.

5. Проверяю. Не работает. Точнее работает для товара категории А. А вот все товары в подкатегориях А1, А2 и т.д. без скидки. Конфуз :( Ну думаю ладно. Это не сложно для 20 подкатегорий прописать скидку.

6. Повторяю пункты 3 и 4, только указываю уровень доступа - Clients и скидку -10% для категории А.

7. Проверяю. Второй конфуз. Скидка 5%, а не 10%. Думаю ну приехали. Поэксперементировал с уровнями пользователями, переносами пользователей в разные группы, уровни. Срабатывает скидка для уровня "Зарегистрированный" и все. Любые другие не срабатывают.

 

Отсюда вопросы:

1. Так как все таки работает скидка в отношении групп пользователя? Почему не срабатывает для разных групп отличных от Public и Registred ?

2. Как работает элемент в отношении категорий и подкатегорий? Неужели надо указывать абсолютно все категории на сайте чтобы получить скидки допустим для 9 из 10 доступных на сайте категорий? Я не верю, что это не предусмотрели.

3. Интересный момент. Если на товар, на конкретный товар стоит скидка, например -10%. И если срабатывает скидка на группу, допустим поставил -50%. То отображается в каталоге скидка -55%. ??? Как почему?

4. Когда добавляешь новый элемент "Произвольное значение". Заполняешь все поля, указываешь категорию и жмешь сохранить. И оп! Категория сбрасывается "На главную". Еще раз указываешь и сохраняешь и нормально. Почему так?

 

Никаких модификация ядра не производилось. Если что менял то только по выводу шаблонов и все это дело выносил в сам шаблон сайта.

 

UPDATE.

1. Выкладываю скриншот настройки скидки. 

2. Если в вопросе с группами пользователя разобрался. Т.е. схема работы иерархическая. Если группа пользователя является подгруппой допустим Register, то скидки по странной формуле наложатся и от группы Register и от группы пользователя. Причем по странной формуле, я даже не знаю как это по другому назвать. При скидках 10% и 50%, в сумме получается 55%. При скидках 5% и 10% получается 14,5% общая. Почему ???

3. Ну а главный вопрос по категориям на которые сработают скидки остается открытым. Тут как ситуация обратная, скидки срабатывают только в плоскости одной категории исключая подкатегории, например если смотреть по скрину, то данная настройка сработает для товара лежащего в категории "Канцелярия", а уже для товара из "Батарейки" все мимо :(. Где это можно поправить? У меня не получилось найти.

Прикрепленные изображения

  • 2015-11-02_1-06-16.jpg

Сообщение отредактировал Михаил: 01 November 2015 - 16:13

  • 0

#2 SmetDenis

SmetDenis

Отправлено 02 November 2015 - 13:11

В силу оптимизации и структуры Zoo, скидка не распространяется на подкатегории компонента.

Если есть несколько элементов, которые удовлетворяют условиям, то они сработают друг за другом

(Цена -5% -5%, не путать с Цена -10%)

 

2. Как работает элемент в отношении категорий и подкатегорий? Неужели надо указывать абсолютно все категории на сайте чтобы получить скидки допустим для 9 из 10 доступных на сайте категорий? Я не верю, что это не предусмотрели.
 

Предусмотрели, но не в стандартном элементе а с помощью API и функции getRate()

http://forum.jbzoo.c...ki-v-jbzoo-220/

 

По моему опыту, у каждого сайта свои правила скидки. Практически на 10 сайтов, должно быть 7 уникальных решений.

Поэтому в этих 7 из 10 случаев правильный вариант - сделать собственный элемент скидки, где все условия будут в рамках одной функции getRate (см. ссылку). Для этого не нужно быть программистом, достаточно знать арифметику и не ошибиться в PHP синтаксисе.

 

 

3. Интересный момент. Если на товар, на конкретный товар стоит скидка, например -10%. И если срабатывает скидка на группу, допустим поставил -50%. То отображается в каталоге скидка -55%. Как почему?
 

 

Потому что 1000р. - 50% - 10% = 500р. - 10% = 450 р.

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

 

4. Когда добавляешь новый элемент "Произвольное значение". Заполняешь все поля, указываешь категорию и жмешь сохранить. И оп! Категория сбрасывается "На главную". Еще раз указываешь и сохраняешь и нормально. Почему так?

Потому что у вас не правильно настроен web-сервер - http://jbzoo.ru/docs/max-input-vars


  • 1
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#3 Михаил

Михаил

Отправлено 04 November 2015 - 11:39

Денис, спасибо за ответ.

Встречные вопросы.

 

 

Если есть несколько элементов, которые удовлетворяют условиям, то они сработают друг за другом

(Цена -5% -5%, не путать с Цена -10%)

1. А можно эту логику поправить? Чтобы скидки суммировались и потом уже применялись к цене?

 

 

 

Предусмотрели, но не в стандартном элементе а с помощью API и функции getRate()

http://forum.jbzoo.c...ki-v-jbzoo-220/

2. Ага. Ясно, в коробке никак но через свой элемент. Надо тогда углубиться в этот вопрос. Например, как получить список категорий к которым будет применена скидка?

 

 

 

 

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

3. А хотелось бы узнать, как все таки можно сделать так, чтобы суммировались. Или это какое то глобальное ограничение? Рассказ о причинах, скорее всего бы разрешил много вопросов по этой части.

 

 

 

 

Потому что у вас не правильно настроен web-сервер - http://jbzoo.ru/docs/max-input-vars

4. Ага. Спасибо. Настрою правильно тогда.


  • 0

#4 SmetDenis

SmetDenis

Отправлено 05 November 2015 - 12:26

1. А можно эту логику поправить? Чтобы скидки суммировались и потом уже применялись к цене?

Нет, не получится.

Если кратко о причине - конечная цена вычисляется из массы параметров, которые грубо говоря раскиданы по всему сайту (расширения, элементы, материалы, свойства из JBPrice) + для скорости работы цена вычисляется постепенно а не в конце работы скрипта.

Если посмотреть на это глобальнее, то увидите, то подобный подход дает больше маневра для масштабирования.
 

Например, как получить список категорий к которым будет применена скидка?

Зависит от того как они у вас хранятся, если это одна из опций, то работа с ней ведется через объект $this->config
 

Рассказ о причинах, скорее всего бы разрешил много вопросов по этой части.

Рассказ о причинах и внутреннем устройстве вас только запутает.
Если хотите, то можете на свой страх и риск изменить логику. Начните с изучения этой функции (далее по дочерним)
media\zoo\applications\jbuniversal\framework\classes\cart\jbvariantlist.php getTotal()
  • 1
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#5 Михаил

Михаил

Отправлено 05 November 2015 - 13:59

Спасибо Денис!


  • 0





Темы с аналогичным тегами скидки

Click to return to top of page in style!