1

我显然不希望有人为我写这个,但有人可以给我一个半详细的文件解释和方法来做这样简单的事情吗???

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

这是手头的任务:

  1. 将一个名为 license_keys 的新表添加到数据库中,其中包含以下字段:customer_id、transaction_id、license_key 和 transaction_notes

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

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

  4. 然后应该可以看到此信息:在管理系统中 b. 在发送给客户的收据上 c. 在结帐页面上

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

4

1 回答 1

3

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

在您的观察者中,获取刚刚下达的订单对象,查找您的许可证密钥产品,生成密钥,进行插入,可能会联系您的 API 或对其进行排队(小心处理缓慢或无响应的远程系统)。

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

于 2012-10-18T12:13:32.813 回答