Правила ценообразования каталога - Magento 1.3 Sales Tactics Cookbook

[16 июля 2019 г.]    Российская сборка Magento 2.52.2
Magento 2: модули и услуги
magereport.com: составление перечня необходимых для установки заплаток SUPEE
#1 Переводчик
  • Группа: Пользователь
  • Сообщений: 48
  • Регистрация: 11.08.2010

17.08.2010 11:51

СОЗДАНИЕ ПРАВИЛА ЦЕНООБРАЗОВАНИЯ КАТАЛОГА

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

Подготовка
Вы, возможно,за хотите, чтобы ваше правило ценообразования каталога применялось только к конкретным товарам. В нашем примере, мы хотим, чтобы правило применялось только к кофейной продукции. Для всей нашей кофейной продукции использовался набор свойств coffee-by-pound (кофе-по-фунтам). Мы будем фильтровать наши товары по этому набору свойств, так что правило ценообразования каталога будет влиять только на кофейную продукцию.
Перед тем, как создать правило ценообразования каталога, вы должны решить – на какие товары будет влиять это правило. Затем, вы должны определить, что общего есть у этих товаров. Они все имеют одинаковый набор свойств? Их названия начинаются с одной и той же буквы? Относятся они к одной категории? Изучите и запишите критерии, которые будут использоваться при фильтрации товаров для вашего правила ценообразования каталога.

Как это сделать ...
1. Войдите во внутренний интерфейс вашего сайта или Панель управления.
2. Выберите Promotions → Catalog Price Rules (Рекламные акции→Правила ценообразования каталога).
3. Нажмите на кнопку Add New Rule (Добавить новое правило). Отобразится страница New Rule (Новое правило) и появится вкладка Rule Information (Информация о правиле). На этой странице вы должны ввести основную информацию о правиле:

Изображение

4. Введите Rule Name (Название правила). Ваши клиенты никогда не увидят его. Это потому, что только администратор сайта (вы) может определить правило в списке. Сделайте название описательным, чтобы по имени вы видели, что правило делает.
5. Введите Description (Описание). Лучше всего описать простым языком критерии и эффект правила. Хотя оно не будет видно вашим покупателям, вам оно, возможно, потребуется, как напоминание, когда вы вернетесь к этому правилу.
6. В поле Status (Статус) определите, будет ли правило Active (Активно) или Inactive (Неактивно). Позднее можно будет ввести даты вступления в силу для этого правила. Для того, чтобы правило вступило в силу, оно должно быть Active (Активно) и иметь дату вступления в силу.
7. Выберите Customer Group(s) (Группа(ы) клиентов), к которым это правило будет применяться. Чтобы выделить несколько групп, используйте Ctrl+левая кнопка мыши.
8. Введите даты в поля From Date (С даты) и To Date (По дату). Если оставить поле пустым, то правило будет действовать, пока вы не выключите его, сделав его Inactive (Неактивно). Если у вас нет причин оставить поле пустым, то вв едите даты. Поведение Magento с пустыми полями дат иногда неустойчиво, и безопаснее указать даты.
9. Priority (Приоритет) определяет, как это правило будет работать по отнлшению к другим правилам ценообразования каталога. Если к одному товару применяются несколько правил, то то правило, у которго приоритет (номер меньше), вступит в силу первым. Затем, вступит в силу, правило, которое следующее по приоритету и т.д.. Это означает, что вам нужно следить за всеми правилами ценообразования каталога, которые вступили в силу.
10. Выберите вкладку Conditions (Условия).

Изображение

Вот где вы войдете в фильтр, который определяет, на какие товары влияет это правило.
Если вы хотите, чтобы правило, влияло на каждый товар в вашем каталоге, то просто оставьте вкладку пустой и перейдите на вкладку Actions (Действия).


11. Вы хотите, чтобы правило влияло на товары, которые отвечают всем или некоторым критериям? Например, если вы ставите на продажу только товары, сделанные компанией Wacky Widget Company, то вашим условием будет:
ALL (ВСЕ) эти условия TRUE (ВЫПОЛНЕНЫ):
Производителем является компания Wacky Widget Company
Но если вы ставите на продажу товары, сделанные компаниями Wacky Widget Company и Worldwide Widgets, то вашим условием будет:
ANY (ЛЮБОЕ) из этих условий TRUE (ВЫПОЛНЕНО):
Производителем является компания Wacky Widget Company
Производителем является компания Worldwide Widgets
В выпадающем списке выберите ALL (ВСЕ) или ANY (ЛЮБЫЕ). Если вы выберете ALL (ВСЕ), то это означает, что правило будет влиять только на те товары, которые отвечают всем условиям. Если вы выберете ANY (ЛЮБЫЕ), то это означает, что правило будет влиять только на те товары, которые соответствуют одному из условий.

Изображение

12. Выберите TRUE (ВЫПОЛНЕНЫ) или FALSE (НЕВЫПОЛНЕНЫ).
13. Если вы хотите, чтобы это были все товары, которые соответствуют условиям, таким как, например, - все товары, стоимость которых превышает 100$, то выберите TRUE (ВЫПОЛНЕНЫ).
14. Если вы хотите, чтобы это были все товары, которые не соответствуют условиям, например, товары не являющиеся кофейной продукцией, то выберите FALSE (НЕВЫПОЛНЕНЫ).
15. Нажмите на зеленый знак плюс добавить условие:

Изображение

16. В выпадающем меню появляется там, где вы будете выбирать тип условия:

Изображение

17. Если вы выберете Conditions Combination (Комбинация условий), то создадутся вложенные условия, например:

Изображение

18. Вложенные условия, такие как в римере, могут становиться сложнее.
19. В этом примере мы выберем свойство, по которому мы будем искать. Помните, мы ищем для все товары, которые не являются кофейной продукцией. В нашем магазине, мы используем набор свойств coffee-by-pound (кофе-по-фунтам) для всей нашей кофейной продукции. Таким образом, мы будем выбирать Attribute Set (Набор свойств) из выпадающего списка:

Изображение

20. Выберите, хотите ли вы, чтобы набор свойств соответствовал (is), или не соответствовал (is not) определенному значению:

Изображение

В нашем примере мы ищем все товары, которые не являются кофейной продукцией, поэтому мы выбираем – не соответствует (is not).
21. Нажмите на пунктирную линию:

Изображение

, а затем в выпадающем списке выберите значение для свойства:

Изображение

22. Если вы хотите добавить еще одно условие, то нажмите зеленый знак плюс.
23. Результатом является полное условие, которое будет применять это правило только к товарам, которые мы хотим:

Изображение

Давайте теперь выберем действие:
1. Выберите вкладку Actions (Действия).
2. В выпадающем меню Apply (Применить) выберите тип скидки:

Изображение

3. Чтобы предложить, например, процентную скидку "15 процентов из первоначальной цены", выберите By percentage of the original price (В процентах, вычитаемых из первоначальной цены).
4. Чтобы предложить скидку в долларах, как например, " 10$ от первоначальной цены", выберите By Fixed Amount (В виде фиксированной суммы).
5. Чтобы предложить товар по цене в процентах от его первоначальной стоимости, например, "70 процентов от первоначальной цены", выберите To Percentage of the original price (В процентах от первоначальной цены).
6. Чтобы предложить товары по фиксированной цене в долларах, таких, как "Весь кофе всего по 8,99$ за фунт", выберите To Fixed Amount (В виде фиксированной суммы).
7. В поле Discount amount (Сумма скидки) введите либо сумму скидки, либо сниженную цену.

В зависимости о того, что вы выбрали это в поле Apply (Применить), введите в поле Discount amount (Сумма скидки) следующие данные:

В процентах, вычитаемых из первоначальной цены – Первоначальная сумма минус процент.
В виде фиксированной суммы - Первоначальная сумма минус сумма в долларах.
В процентах от первоначальной цены -
Процентах от первоначальной цены, который нужно оплатить.
Фиксированная сумма
Новая цена продажи.

8. Если вы выберите Yes (Да) в поле Stop further rules processing (Остановка дальнейшей обработки правил), то никакие другие правила ценообразования каталога не будут применяться к этим товарам.
9. Сохраните правило.
10. Вернитесь на страницу правил ценообразования каталога и нажмите на кнопку Apply Rules (Применить правила). Если вы не сделаете этого, то изменения не будут распространяться на ваш каталог.

Как это работает ...
Правило ценообразования каталога – это по сути условие поиска, по которому применяется скидка. Оно просматривает ваш каталог продукции (то есть, весь веб-сайт Magento) на предмет наличия товаров, которые отвечают условиям, которые вы указали, а затем применяет скидку, которую вы указали.

Дополнительная информация ...
Правило ценообразования каталога особенно полезно для применения скидки к товарам, которые имеют нечто общее: одну категорию, одно свойство, одого производителя, и так далее. Но иногда, вы можете захотеть применить скидки к группе товаров, которые не имеют ничего общего. Например, у вас есть товары, которые начинают устаревать, или они просто не продаюся. В этом случае, можно создать такое свойство, как "deeply_discounted" (сильно уцененные). Сделать свойство с выбором Yes/ No (да / нет). Для товаров, которые вы хотите поставить на продажу, присвойте значение Yes(Да). Затем создайте правило ценообразования каталога, которое применяет скидку к товарам, где deeply_discounted установлен как Да. Далее в этой главе мы рассмотрим, как создавать категории распродажи товаров по сниженным ценам.


#2 Art
  • Спамер
  • Группа: Заблокирован
  • Сообщений: 59
  • Регистрация: 11.08.2010

17.08.2010 13:41

Не знаю правильно ли писать здесь, но напишу.

Есть одна малозаметная ошибка (по крайней мере в версии 1.4.0.1).

Суть в следующем:
Предположим, вы создали правило для группы товаров и установили приоритет - '0' (приоритет по умолчанию), действие - скидка от первоначальной цены в процентах (скажем 20%).

Для другой группы товаров вы установил тот же приоритет и то же действие (скажем 15%).

В случае, если есть товары, присутствующие и в той и в другой группе, логично ожидать, что процент скидки просуммируется и применится к данным товарам (в нашем случае 35%).

Но, нет. Невзирая на то, что приоритеты операций одинаковые, Magento сначала применит одно правило, а потом другое, но уже к результату первого расчета. В результате скидка будет составлять уже не 35%, а меньше. Размер окончательной скидки зависит от того, какое правило применилось первым.

Надеюсь данная информация кому-то поможет.

#3 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8995
  • Регистрация: 20.02.2010

17.08.2010 15:03

Здесь писать правильно, если комментарии соответствуют теме главы.
Где писать нельзя - там комментарии отключены.

#4 Art
  • Спамер
  • Группа: Заблокирован
  • Сообщений: 59
  • Регистрация: 11.08.2010

19.08.2010 13:03

Хорошо.
Тогда продолжу писать про особенности применения Правил ценообразования каталога.

Есть еще одна ошибка (не побоюсь этого слова).

Суть в следующем:
Предположим у вас есть товар, для которого применяется 3 правила, у всех одинаковый приоритет.
Для двух из этих правил вы выставили опцию "Stop further rules processing" - Yes.
Внимание, вопрос. Какие правила применятся к данному товару при пересчете?
Наиболее логичный варант - применить все три, а вот правила с меньшим приоритетом уже не применять (т.е. если у наших правил приоритет - 0, то правила с приоритетом - 1 и выше не применять).

Но, нет. В результате вычислений Magento применит либо одно, либо два правила, В первом случае одно из тех, которые помечены как "Stop further rules processing" - Yes, во втором добавится еще непомеченное.
Предсказать заранее результат невозможно и он будет изменяться (или не будет, как повезет) при каждом пересчете правил ценообразования каталога.
Данное замечание, опять же для версии 1.4.0.1

#5 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8995
  • Регистрация: 20.02.2010

19.08.2010 16:38

В результате применения каких конкретно законов логики вы решили, что нарушение условия "Stop further rules processing" является наиболее логичным вариантом?

#6 Art
  • Спамер
  • Группа: Заблокирован
  • Сообщений: 59
  • Регистрация: 11.08.2010

19.08.2010 17:29

Просмотр сообщенияДмитрий Федюк (19.08.2010 16:38) писал:

В результате применения каких конкретно законов логики вы решили, что нарушение условия "Stop further rules processing" является наиболее логичным вариантом?


Все просто. Если операции имеют одинаковый приоритет, то они должны либо обе выполниться, либо нет, иначе само ценообразование является непрозрачным, да и понятие приоритета нивелируется. Нарушения условия, в моем варианте решения не происходит, поскольку блокируются операции имеющие более низкий приоритет, в противном случае, одна операция блокирует другую с равным приоритетом.

Да и вообще, я описал 2 ошибки, которые приводят к малопредсказуемому варианту расчета цены товара, при том, что при каждом последующем пересчете цена произвольно меняется, при одних и тех же правилах.

У себя я уже все поправил, и скидка расчитывается от цены товара и правила применяются как я описал выше (целый день на это потратил). Теперь я, по крайней мере, могу дать сотрудникам инструкцию как и в какой последовательности применять правила и какого конкретно результата ожидать.


Но, я готов выслушать и Ваше мнение, ну вот, например, моделируем ситуацию.

Есть товар ZYX цена 850руб, к нему применяются следующие правила:

№1 - скидка 20% от цены, приоритет - 0, Stop further rules processing - 0;
№2 - скидка 5% от цены, приоритет - 0, Stop further rules processing - 1;
№3 - скидка 15% от цены, приоритет - 0, Stop further rules processing - 1;
№4 - скидка 10% от цены, приоритет - 1, Stop further rules processing - 0;

Какие правила и в какой последовательности применить?

#7 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8995
  • Регистрация: 20.02.2010

19.08.2010 19:29

В какой предметной области возникает необходимость ставить 3-м правилам из 4 одинаковый приоритет?

#8 Art
  • Спамер
  • Группа: Заблокирован
  • Сообщений: 59
  • Регистрация: 11.08.2010

20.08.2010 11:38

В области продажи товаров и услуг через интернет, в случае, если система это позволяет.
А уж что продается - зубные щетки или турбореактивные двигатели - какая разница?

Ценовое правило применяется к некоему множеству товаров. В случае применения пескольких правил для одного магазина, возможно их пересечение (множеств). При этом, возможно, что приоритет задан одинаковый.

Ну, вот, например.

Есть некий магазин, который торгует всякой вячиной. У владельца магазина дедушка работает сторожем на гуталиновой фабрике (у него этого гуталина - завались :mellow: ) и шлет внучку по одной посылке в день, после смены. Внучек решает жестко демпинговать рынок. Создает следующее ценовое правило:

№1
Условие : Производитель - ДЕД;
Действие : Скидка 50% от первоначальной цены (первначальная цена - средняя по рынку);
Приоритет : 0 (Демпингуем, себестоимость нулевая, пусть применяется всегда);
Stop further rules processing : NO (По тем же причинам, что и Приоритет);
Начало : Сегодня;
Конец : Не установлен (Внучек - оптимист)


И вот однажды Дед прислал Внучку контейнер гуталина (совсем оборзел, старый хрыч, рабочие по пол-года зарплату не получают, а он ворует без зазрения совести). У Внучка - проблемы, склады и квартира забиты гуталином, жена ушла к другу, перекантоваться. И Внучек решает устроить распродажу - создает категорию "Распродажи", помещает туда гуталин и еще чего-нибудь, что на складе завалялось и создает следующее правило:

№2
Условие : Категория - Распродажи;
Действие : Скидка 20% от первоначальной цены;
Приоритет : 0 (Жену хочет);
Stop further rules processing : Yes (То, что на складе завалялось дешевле продавать уже нельзя);
Начало : Сегодня;
Конец : Не установлен (Пока все не продастся)

Внимание, вопрос! Какие цены на гуталин будет наблюдать Внучек при каждом пересчете правил?

А если без юмора, то раз можно задавать для разных правил один приоритет, то система должна вести себя по крайней мере предсказуемо. Ну а уж если она ведет себя непредсказуемо, то это ошибка. И предметная область тут, по моему как-то не важна, форум-то посвящен Magento, а не применению Magento в такой-то предметной области.

#9 Art
  • Спамер
  • Группа: Заблокирован
  • Сообщений: 59
  • Регистрация: 11.08.2010

20.08.2010 16:46

Хм.... Еще одна ошибка в расчете Правил каталога.

Короче, суть в следующем. При расчете окончательной скидки последовательно обрабатываются правила с учетом ID продукта, вебсайта, группы пользователей. Если к продукту применяются несколько скидок (тут уже не важны приоритеты и прочее), то скидки суммируются по определенному алгоритму. Вся информация хранится в массиве. Когда размер массива достигает тысячи элементов, расчеты сохраняются, массив обнуляется. Если при этом не произошел переход к следующему продукту, то информация о предыдущих скидках оказывается утерянной и расчет производится так, как будто никаких скидок к продукту ранее не применялось.

То есть, предположим, у нас есть 10 товаров к которым мы применяем последовательно 30% и 20%, разными правилами. Для одних товаров результат вычислений будет правильным, скажем 50%, а для других только 20%. При этом, по уже устоявшейся традиции :mellow: , на следующий день пользователь может получить уже другой результат.

Резюмируя, могу сказать следующее - без серьезной переделки данную функцию можно использовать только один раз, ну например, для категории "Распрдажи". Я уже почти полностью переписал логику расчета Правил каталога.

Админы, может стоит данную тему повесить наверх? Ведь упадет через неделю, а ошибки критические, от них цена товаров в магазине зависит, так хоть пользователи смогут ознакомиться с этими "особенностями".

#10 Art
  • Спамер
  • Группа: Заблокирован
  • Сообщений: 59
  • Регистрация: 11.08.2010

18.10.2010 13:38

Еще одна ошибка...

Суть в следующем: Если вы грузите товары через DataFlow, то к товарам,загруженым таким методом, правила применяться не будут. Чтобы применить правила необходимо открыть и сохранить каждое правило по отдельности. Это же применимо при обновлении товаров через DataFlow. В случае смены значения атрибута, новое значение не будет учитываться при применении правил каталога.

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

#11 Stanislav
  • Группа: Пользователь
  • Сообщений: 13
  • Регистрация: 03.02.2011

12.02.2011 01:03

Вопрос:

Есть настраиваемый товар с выбором размера, от которого меняется цена. Есть три категории, в которых он отображается. Мне нужно установить на этот товар скидку в 20%. Создаю категорию, допустим, "Скидка 20%", отмечаю, что товар еще и в этой категории (т.е., он уже в 4-х категориях). Создаю правило для скидки:

Если ЛЮБОЕ из этих условий ИСТИНА :
Категория равно "Скидка 20% (тут ID)"


Результат = 0 (правило применял, кэш чистил)

Что я делаю не так?

#12 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8995
  • Регистрация: 20.02.2010

12.02.2011 01:07

1) Перестройте индексы.
2) Если дефект останется - прикрепите снимок экрана настроек ценового правила

#13 Stanislav
  • Группа: Пользователь
  • Сообщений: 13
  • Регистрация: 03.02.2011

12.02.2011 01:17

Перестраивал, но не работает. Как только меняем ИСТИНУ на ЛОЖЬ — то скидки появляются сразу ко всем товарам, естественно.

Вот скрины:

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

  • Прикрепленное изображение: Untitled-1.jpg
  • Прикрепленное изображение: 0.jpg
  • Прикрепленное изображение: 2.jpg


#14 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8995
  • Регистрация: 20.02.2010

12.02.2011 01:31

Только что проверил - у меня на Magento 1.4.2.0 ценовые правила в подобной ситуации применяются верно.
Может быть, у вас влияют другие ценовые правила?
Такое возможно, например, если у предшествующего ценового правила включена опкия "Stop Further Rules Processing"

#15 Stanislav
  • Группа: Пользователь
  • Сообщений: 13
  • Регистрация: 03.02.2011

12.02.2011 01:38

Версия 1.4.2.0
Никаких ценовых правил, кроме этого, нет.

Удалил правило, создал заново — ноль эмоций.

#16 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8995
  • Регистрация: 20.02.2010

12.02.2011 01:43

На ум приходят две причины:
1) Вы что-то не учли (влиять могут многосайтовость, сложный тип товара, сторонние модули, настройки локали при разборе даты и т.п.)
2) Повреждена база

Обратитесь к специалисту - он починит.

#17 Stanislav
  • Группа: Пользователь
  • Сообщений: 13
  • Регистрация: 03.02.2011

13.03.2011 19:23

Проблема решилась добавлением всех связанных (объединенных) товаров в категорию, к которой применять правило, а не только настраиваемого (по-умолчанию в него попадал только настраиваемый товар).

Поделиться темой: