订购后删除产品

时间:2013-08-15 20:58:12

标签: magento product

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

有些想法可以解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

Here's the link了解如何设置观察者(您需要为此创建自己的模块)。

您要监听的事件是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";
}
?>

答案 1 :(得分:0)

您可以使用magento的事件/观察者方法在下订单后执行某些操作。

您可以使用此活动sales_order_place_after

只需创建一个模块来监听magento observer / event。

在/ 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
      }

   }