magento "X купил" рассчитывать на сделки - PullRequest
1 голос
/ 25 апреля 2011

Мне удалось изменить некоторый код magento для реализации нашего собственного стороннего шлюза, но у меня возникают проблемы с неправильным подсчетом «покупок» по сделке, когда кто-то делает заказ, счет увеличивается непосредственно при запуске saveOrderAction (достраница «Успех» или «Ошибка» - при ошибке счет снова возвращается, что верно, но я не хочу, чтобы он увеличивался до страницы успеха), на этом этапе заказ сохраняется как «обработка» в системе

код, которого у меня нет, в основном таков: в «saveOrderAction» у меня есть условие, которое проверяет выбранный способ оплаты,

, если это наша третья сторона, она перенаправляет на стороннюю страницу, затем я передаю некоторыепараметры от сторонней страницы обратно в magento к «successAction» или «failAction» (в зависимости от случая),

, затем соответственно сохраните заказ, установите его состояние как завершенное и т. д. ...

я хочу увеличить количество покупок только после успешной оплаты, если кто-то может дать мне пониманиелогики того, как «купленный» реализован в magento

Я знаю, что это происходит в функции saveOrder () в модели mage \ checkout \ model \ type \ onepage.php:

$service = Mage::getModel('sales/service_quote', $this->getQuote());
$service->submitAll(); 

но я не могу понять, где в submitAll это происходит ... Я предполагаю, что сначала я не должен сохранять заказ, или, возможно, установить его в другом состоянии, где он не учитывается или я не знаючто?

любая помощь / предложение будет принята с благодарностью!спасибо:)

1 Ответ

0 голосов
/ 25 апреля 2011

Один из способов сделать это, который может спасти некоторые проблемы, - добавить наблюдателя к событию, которое соответствует вашим потребностям. В частности, есть несколько событий для Mage_Sales_Model_Order_Payment, которые могут быть подходящими:

sales_order_payment_save_after
sales_order_payment_capture
sales_order_payment_pay
... several more ...

Если вы посмотрите на эти события, вы можете обнаружить, что одно из них является разумным временем для добавления к вашему проданному счету. Точно так же на этом объекте есть события для отмены или возврата заказов, которые можно использовать для уменьшения продаж по мере необходимости.

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

В любом случае, дайте мне знать, было ли это полезно или у вас все еще есть тот же вопрос. Надеюсь, это поможет!

Спасибо, Джо

...