我需要在用户订单完成后以编程方式删除已订购的产品。
有些想法可以解决这个问题吗?
答案 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
}
}