2011-03-09 47 views
0

我想知道当添加一个符合他/她的兴趣的新产品时,通知用户的最佳方式是什么?如何在Magento中添加产品时通知?

我觉得一个cron运行(每小时例如以上)至少2次天

我也能想象到那种实现事件系统,而是一个可能会非常棘手。你有什么反馈意见吗?

感谢

回答

0

您需要添加一个value属性为“从日期设置为产品新”,这样将出现在新产品的RSS提要。制作新的事件系统没有意义。这是实现这种事情的简单方法。

+0

我不想使用RSS提要。管理员会在给定的类别中添加一个产品,并附带一些属性,并且我正在寻找一种方法来通知(通过电子邮件)我的客户,当这些产品符合他们的兴趣时。 – 2011-03-09 23:19:44

0

您可以创建一个与INSERT脚本同时运行的脚本,该脚本在数据库中搜索名为say“Notify”的表并搜索表中的循环,并查找注册说类别“牙签”的所有人并发送一个质量所以你需要设置变量来捕捉($ users)用户和一个类别($ category = mysql_real_escape_string('$ _ POST ['category'))。 ]);然后设置一个SELECT语句从表“Kitchen_Goods”WHERE category = $ category中取出,然后设置$ rows变量,以便您可以将用户名和email_address列设置为变量,然后将所有电子邮件结果之间有一个逗号,然后将该变量作为收件人回显您的邮件()函数中的字段。这是一个圆满的,不完整的方式。

或者你可以使用简单的100倍的RSS。

0

你没有说明你如何节省客户的兴趣,所以我会把这个魔法降级到魔法,直到你说不对。这样做的一个好方法是将事件挂接到Magento中的catalog_product_save_after事件。每当您保存产品时,此功能都会启动。创建一个如下所示的观察者:

public function observeProductSave($event) { 
    $product = $event['product']; 
    $customers = $this->getMatchingCustomerInterests($product); 
    foreach($customers as $customer) { 
     //send email to that customer 
    } 
} 

public function getMatchingCustomerInterests($product) { 
    // here you'll need to use your mechanism for saving 
    // customer interests to grab an array/collection of 
    // customers to send the emails to. 
} 

很明显,这段代码并不是100%完整的,但这就是它的要点。您可能需要添加一个设施,以确保客户不会多次通知产品。

希望有帮助!

谢谢, 乔

+0

好的,谢谢你的回答,但你能告诉我应该在哪里创建这个观察者?我是否需要扩展任何类并覆盖此方法? – 2011-03-11 11:08:05

1

在你想发送邮件给客户接不下去了RSS或cron的只是用所谓的“catalog_product_save_after”事件在你的config.xml中的新产品增加时间的时间文件并调用一个函数,该函数只写这样

public function sendMailToNotifiedCustomerOk($observer){ 

     $product = $observer->getProduct(); //get the current product 
     echo "<pre>"; print_r($product); echo "</pre>";exit; 

} 

,当你点击保存按钮,此功能将执行并显示你喜欢

[_isObjectNew:protected] => 1 
一个标志值

仅当添加新产品时,此值为1。

如果要更新或编辑产品,那么这个值是

[_isObjectNew:protected] => 

所以它是零(0)

,你可以这样写

if($product->_isObjectNew) 
{ 
//send email to your friends 
}