Когда добавить пользовательские данные для цитирования?
-
16-10-2019 - |
Вопрос
У меня есть код, который передается через URL (сродни исходным кодам Google), который я хочу добавить в цитату и заказ. У меня уже есть функция, которая запускает на мероприятии controller_front_init_routers
Это добавляет данные в сеанс, чтобы вытащить позже, и я добавил поле как в таблицах цитаты, так и в таблицах заказа. Тем не менее, я не могу добавить данные в цитату в этот момент, так как цитата не существует в этом случае. Какое событие будет лучшим временем, чтобы добавить мой код в цитату?
Решение
В зависимости от того, нужно ли вам принять содержимое тележки во внимание, мое предложение состоит в том, чтобы поместить ваши пользовательские данные в цитату, используя либо sales_quote_collect_totals_before
или же checkout_quote_init
мероприятие.
Тогда вы можете наблюдать sales_convert_quote_to_order
событие и передайте свои данные из цитаты на заказ.
Другие советы
Полагаю checkout_quote_init
подходит для наблюдения всякий раз, когда инициализируется цитата.
Другие кандидаты - осмотрите наличие имущества в цитате из сессии на любом из этих событий - если оно не существует, добавьте его:
Корзина добавить - checkout_cart_product_add_after
Обновление тележки - checkout_cart_update_items_after
Пункт удалить - sales_quote_remove_item
Вы, скорее всего, хотите рассмотреть Другие точки входа, хотя - например, когда загружается цитата, потому что зарегистрированный клиент вошел в систему - цитата объединяется с предметами, которые они могут или не могли добавить в свою гостевую корзину.
Вход для клиентов - customer_login
Перед слиянием гостевой тележки - sales_quote_merge_before
Больше чтения:
Вы захотите прочитать эту статью Magento.se о том, как сохранить эту информацию из цитирования в заказ: