Вот есть сущность Product, в ней хранится товар, его цена, артикул и при желании доп. поля, такие как размер, цвет.
У меня на сайте продавец создаёт товар, и указывает цену поставщика, но на сайте нужно покупателям выводить цена с процент, причём у каждого товара может быть свой процент
поэтому я у товара добавил ещё 2 поля, ПРОЦЕНТ, ЦЕНА С ПРОЦЕНТОМ, и сделал рулзу которая срабатывает при создании товара с действием ЦЕНА С ПРОЦЕНТОМ = ПРОЦЕНТ*ЦЕНА
вроде всё отлично - вывожу цену нужную для покупателя, теперь начинается самое интересное, оформление заказа
покупатель добавляет в корзину 1 товар, носки - в кол-ве 10 штук
автоматом создаётся новый заказ со статусом SHOPPING CARTS, в котором есть сущность LINE ITEM
в ней появляется новая строчка, носки, с такими значениями как, Unit price, Quantity, Total - ПРАВИЛЬНО ЛИ Я ПОНИМАЮ что это некая рулза которая срабатывает при добавлении в корзину, и приравнивает Unit price c ценой из сущности товар, а далее умножает её на quantity и вставляет в Total. А в сущности ORDER поле Order total - это тоже рулза которая подсчитывает сумму всех Total всех Line Item из заказо со статусом Shopping carts?
Если я всё правильно понимаю, что в моём случае нужно сделать
1) В сущности Line item добавить Unit price (для покупателя), Total (для покупателя)
2) Создать рулзу с эвентом, при создании нового заказа со статусом Shopping carts, Unit Price=ЦЕНА С ПРОЦЕНТОМ, Total (для покупателя) = Quantity * Unit Price
3) Т.к. у меня оригинальный магазин, в корзину можно добавлять только один товар, поэтому последнее это добавить в сущность Order - Total order (для покупателя) и приравнивать её с Total (для покупателя)
Комментарии
Возможно в далее написаном будут некоторые неточности в формулировках, но это точно работает.
В рулсах для коммерца есть хитрый евент,
его наименование(на англ.) поначалу ввело меня в заблуждение,
там что-то про добавление товара в корзину,
а на самом деле при просмотре покупателем товара.
Короче, задача была такая:
сделать на сайте выбор пользователем региона(области, города России).
И показывать пользователю цену для выбранного региона.
Добавил справочник(словарь таксономии) с регионами и коэффициентами изменения цены для региона.
Добавил рулс - который пересчитывал цену для региона.
Пользователь выбирал свой регион, и цены в каталогах товаров выводились для его региона.
Все.. Остальное (расчет стоимости корзины и т.п.) происходило стандартно.
После расчета цены для региона она как-то хитро кэшируется, так что
расчет цены производиться только один раз, далее(и во вьюсах) она "подтягивается" из кэша.
Точно не помню, но помоему после изменения базовой цены или коэффициента надо было чистить кэш.
вы наверно имеете ввиду Product pricing rules модуль, он да, создаёт такую рулзу которая отбрабатывает при просмотре Product display/Product