magento“X buy”指望交易

时间:2011-04-25 15:10:27

标签: php magento mage

我设法修改一些magento的代码来实现我们自己的第三方网关, 但我对这笔交易的错误“买入”计数有疑问 当有人执行订单时,计数在saveOrderAction运行时直接增加(在成功或失败页面之前 - 失败时计数再次减少,这是正确的 - 但我不希望它在成功页面之前增加) 在此阶段,订单在系统中保存为“处理”

我基本没有的代码是: 在“saveOrderAction”中我有条件检查所选的付款方式,

如果是我们的第三方,它会重定向到第三方页面, 然后我将一些参数从第三方页面传回magento到'successAction'或'failureAction'(无论哪种情况),

然后相应地保存订单,将其状态设置为完成,依此类推......

我想要做的只是在付款成功后增加“买入”数量,如果有人能让我了解“购买”如何在magento中实施的逻辑

我知道这发生在模型mage \ checkout \ model \ type \ onepage.php中的函数saveOrder()中:

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

但是我无法弄清楚它在哪里发生了...... 我假设可能一开始我不应该保存订单,或者可能将其设置在不计数或不知道是什么的不同状态?

任何帮助/建议将不胜感激! 谢谢:))

1 个答案:

答案 0 :(得分:0)

这样做的一种方法是,可以省去一些麻烦,就是将一个Observer添加到符合您需求的事件中。特别是,Mage_Sales_Model_Order_Payment有几个可能适合的事件:

sales_order_payment_save_after
sales_order_payment_capture
sales_order_payment_pay
... several more ...

如果你看一下这些事件,你可能会发现其中一个是合理的时间来增加你的销售数量。同样,该对象上有用于取消或退款订单的事件,您可以根据需要减少销售额。

我通常避免为此类行为挂钩控制器操作,因为我无法保证Magento将始终以我假设的方式使用该操作。

无论如何,请告诉我这是否有用或者您是否仍有相同的问题。希望有所帮助!

谢谢, 乔