Добрый день!
Давно заметили, что около половины покупателей, применяющих купон, вводят его в поле комментария на странице оформления заказа (а не в корзине в поле ввода купона). И у этого есть пара негативных моментов:
- Во первых, такие купоны менеджерам приходится потом применять вручную, а это лишняя работа (иногда, кстати, они забывают это сделать).
- Во вторых, покупатель получает автоматическое письмо с информацией о заказе без учета применения купона, что может покупателя огорчить.
Поэтому было решено анализировать поле комментария в форме оформления заказа и, в случае присутствия купона в этом поле, применять купон в процессе отправки формы. Получается, с виду, весьма изящное решение:
И вроде бы,
OnBeforeOrderAdd - Вызывается перед добавлением заказа, может быть использовано для отмены или модификации данных.
Но! Не работает так, как надо. Заказ отправляется без купона, а купон при этом применяется к новой пустой корзине покупателя.
Кроме того, рядом с добавлением купона, пробую подкладывать в заказ подарочный товар. Так:
и он подкладывается! Только не в этот заказ, а в опять же, в следующую корзину покупателя =/
Вопрос:
Какое можно использовать событие, какой метод, чтобы желаемые изменения применялись именно к создаваемому заказу, а не к последующей корзине?
Но только так, чтобы можно было анализировать при этом поле ввода комментария.
Перепробовал уже много чего, загуглился до умопомрачения.
Форумчане! Вся моя надежда только на вас )))
Давно заметили, что около половины покупателей, применяющих купон, вводят его в поле комментария на странице оформления заказа (а не в корзине в поле ввода купона). И у этого есть пара негативных моментов:
- Во первых, такие купоны менеджерам приходится потом применять вручную, а это лишняя работа (иногда, кстати, они забывают это сделать).
- Во вторых, покупатель получает автоматическое письмо с информацией о заказе без учета применения купона, что может покупателя огорчить.
Поэтому было решено анализировать поле комментария в форме оформления заказа и, в случае присутствия купона в этом поле, применять купон в процессе отправки формы. Получается, с виду, весьма изящное решение:
Код |
---|
AddEventHandler("sale", "OnBeforeOrderAdd", function(&arFields){ $coupon = 'SL-TICCF-707RF'; $CouponIsSet = strpos($arFields['USER_DESCRIPTION'], $coupon); if ($CouponIsSet === false) { $result = 0; } else { CCatalogDiscountCoupon::SetCoupon($coupon); }; } |
И вроде бы,
OnBeforeOrderAdd - Вызывается перед добавлением заказа, может быть использовано для отмены или модификации данных.
Но! Не работает так, как надо. Заказ отправляется без купона, а купон при этом применяется к новой пустой корзине покупателя.
Кроме того, рядом с добавлением купона, пробую подкладывать в заказ подарочный товар. Так:
Код |
---|
... } else { CCatalogDiscountCoupon::SetCoupon($coupon); AddAdd2BasketByProductID($gift_ID, 1, array(),array()); ... |
и он подкладывается! Только не в этот заказ, а в опять же, в следующую корзину покупателя =/
Вопрос:
Какое можно использовать событие, какой метод, чтобы желаемые изменения применялись именно к создаваемому заказу, а не к последующей корзине?
Но только так, чтобы можно было анализировать при этом поле ввода комментария.
Перепробовал уже много чего, загуглился до умопомрачения.
Форумчане! Вся моя надежда только на вас )))