Я пытаюсь создать продукт с двумя пользовательскими текстовыми полями: длина и ширина. Когда пользователь вводит длину и ширину, цену необходимо рассчитать по пользовательской формуле.
Я пытаюсь найти правильное событие для подключения наблюдателя - кто-нибудь знает, что это может быть?
Вот что я знаю и попробовал
1) в текстовом поле настраиваемого поля в представлении продукта есть событие onchange, к которому я еще не придумал, как подключиться через событие наблюдателя - "opConfig.reloadPrice ()
2) Если я построю наблюдателя на событии sales_quote_add_item, то я могу изменить цену по формуле, когда она будет добавлена в корзину. С этим методом мне все еще нужен способ изменить его в представлении продукта, прежде чем он будет добавлен в корзину.
3) Я также пробовал событие catalog_product_get_final_price, но, похоже, оно срабатывает только при загрузке страницы продукта, поэтому после добавления длины или ширины продукта оно не запускается повторно.
Благодарим за любую идею!
источник
Ответы:
Я использовал для этого варианта использования
sales_quote_collect_totals_before
:На стороне клиента, вы можете просто использовать несколько строк JS, чтобы обновить цену?
источник
catalog_product_get_final_price
является правильным событием на стороне сервера, оно запускается не только при загрузке страницы продукта, но и при добавлении продукта в корзину. В этом случае у вас есть все выбранные пользовательские опции, доступные с:(См. Также: есть ли способ, когда пользователь может установить желаемую цену на заказ больше нуля и перейти в корзину для любого продукта? )
Пересчет цены на странице продукта - еще одна тема, для которой требуется JavaScript.
reloadPrice
это правильная функция для подключения, я бы расширил ее так:источник