Magento结账挂钩

时间:2012-10-18 10:20:18

标签: magento

我显然不希望有人为我写这个,但有人可以给我一个半详细的文件说明和做一些像这样简单的方法???

我一直试图解决这个问题2天。这里的想法只是我们的一些产品应该在结账时创建一个简单的许可证密钥,并将该密钥发送到第三方系统。

这是手头的任务:

  1. 使用以下字段将新表添加到名为license_keys的数据库中:customer_id,transaction_id,license_key和transaction_notes

  2. 配置名为is_licensed_product的产品时添加新复选框。

  3. 如果此复选框=是,则: 一个。在结账时,magento会以这种格式生成一个随机的字母数字键######## - ########其中#是大写字母或数字。 湾这是为每个订单项生成的。 C。这与transaction_id等一起存储在licence_keys数据库表中。 d。对远程服务器进行API调用:test.com/recieve?key=12345&email={email}&transaction_id={transaction_id}&customer_id={customer_id}&license_key={license_key} 即对于每个lineitem,将调用此API,以便在那里发送每个单独的许可证。

  4. 此信息应该可见: 一个。在管理系统中 湾在发送给客户的收据上 C。在结帐页面

  5. a)生成许可证密钥时,b)进行API调用时,以及c)收到API响应时,所有这些信息也应放入数组并放入transaction_notes中db。

1 个答案:

答案 0 :(得分:3)

有许多很多方法可以做到这一点。观察者很可能会在sales_order_place_after [link]上有用,您可以用它来进行一些后期处理。

在您的观察者中,抓住刚刚放置的订单对象,查找许可证密钥产品,生成密钥,执行插入操作,可能会触及您的API或对其进行排队(请小心处理缓慢或非响应远程系统)。

有关使用此事件执行销售规则使用的某些后处理的核心示例,请参阅Mage_SalesRule_Model_Observer::sales_order_afterPlace() [link]