我想知道在添加符合他/她兴趣的新产品时通知用户的最佳方式是什么?
我认为一个cron每天至少运行2次(或更多,例如每小时)
我还可以设想实现一种事件系统,但这可能很棘手。
你有任何反馈吗?
由于
答案 0 :(得分: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
}
答案 1 :(得分:0)
您需要在“将产品设置为新日期”属性中添加一个值,以便显示在新产品RSS Feed中。制作新的活动系统没有意义。这是实现此类事情的简单方法。
答案 2 :(得分:0)
您可以创建一个与INSERT脚本同时运行的脚本,该脚本搜索数据库中名为“Notify”的表并搜索遍历表格并找到所有注册了类别“Toothpicks”并发送大量电子邮件的人最后找到每个用户
所以你需要设置变量来捕获($ users)中的用户和一个类别($ category = mysql_real_escape_string('$ _ POST ['category']);.然后设置一个SELECT语句从表“Kitchen_Goods”中取出WHERE category = $ category。然后设置$ rows变量,这样你就可以拉出username和email_address列并将它们设置为变量。然后将所有电子邮件结果连接起来,让它们之间有一个逗号,然后回显变量作为mail()函数中的recipients字段。这是一个完整的,不完整的方式。
或者你可以使用更容易100倍的RSS。
答案 3 :(得分: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%完整,但这是它的要点。您可能希望添加一个工具,以确保客户不会多次收到有关产品的通知。
希望有所帮助!
谢谢, 乔