1

用户订单完成后,我需要以编程方式删除订购的产品。

一些想法在什么时候我可以解决这个问题?

4

2 回答 2

0

下订单后,您可以使用 magento 的事件/观察者方法来做某事。

你可以使用这个事件sales_order_place_after

只需创建一个模块来监听 magento 观察者/事件。

在您的 /app/code/local/{namespace}/{yourmodule}/etc/config.xml 中:

<config>
        ...
        <frontend>
            ...
            <events>
                <sales_order_place_after>
                    <observers>
                        <unique_event_name>
                            <class>{{modulename}}/observer</class>
                            <method>your function name</method>
                        </unique_event_name>
                    </observers>
                </sales_order_place_after>
            </events>
            ...
        </frontend>
        ...
    </config>

然后在 /app/code/local/{namespace}/{yourmodule}/Model/Observer.php 创建一个 Observer 类

    class <namespace>_<modulename>_Model_Observer
   {
      public function your function name(Varien_Event_Observer $obs)
      {
           $items =  $observer->getEvent()->getOrder()->getAllItems(); // you can get order item and then put delete function
      }

   }
于 2013-08-16T06:09:52.930 回答
0

这是如何设置观察者的链接(您需要为此创建自己的模块)。

您要监听的事件是sales_order_place_after,当您为其声明观察者时,您的代码将在任何订单下达后被调用。

您可以将此代码添加到您的观察者

删除产品在 magento 中使用以下代码。

此代码将有助于删除产品

<?php
Mage::register("isSecureArea", 1);
$product_id = 2; //use your own product id
try{
    Mage::getModel("catalog/product")->load( $product_id  )->delete();
}catch(Exception $e){
    echo "Delete failed";
}
?>
于 2013-08-16T04:15:18.750 回答