如果库存不可用,我正在尝试创建“通知我”功能。
在管理员面板上搜索时,我只能找到一个用户sign up / log in
来获取有关库存状况的通知。
但我只是想让用户(访客)只输入他/她的电子邮件地址以获得通知。
我该怎么做?
请提出建议..
修改:
我有这个link,这给了我一个开始的方法。
到目前为止,我所做的是在我的模板文件中添加了以下代码,该文件正在创建重定向的URL(以ajax方式进行,以停止页面刷新)。
<?php
$actual_link = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
$base64 = strtr(base64_encode($actual_link), '+/=', '-_,');
$postUrl = "http://$_SERVER[HTTP_HOST]/efk/productalert/add/stock/product_id/" . $simpleProduct->getId() . "/uenc/". $base64;
?>
在上面的代码中,efk
是我的项目文件夹名称。
在此之后,我转到productalert/add/stock
控制器方法即stockAction()
使用sign up / login
调用$model->save();
表单(我认为是) 。
如何禁用此保存呼叫并添加我自己的小覆盖,其中包含一个文本框以输入电子邮件地址?
答案 0 :(得分:4)
Magento开箱即用“产品有库存时通知我”功能。它可以在管理面板中配置:系统/配置/目录/产品警报和产品警报运行设置。
您是对的,它仅适用于注册客户。为了使其为访客用户工作,需要一些编码。我要说你需要做以下步骤:
email
列添加到product_alert_stock
表格Mage_ProductAlert_AddController::stockAction()
。您的方法必须将访客的电子邮件设置为productalert/stock
型号。Mage_ProductAlert_Model_Observer::_processStock()
方法,使其尊重“客户”没有身份证但有电子邮件的情况。当您进行测试时,我建议您安装SMTP Pro Email extension和mailcatcher以简化测试过程。
答案 1 :(得分:2)
我们已经完成了这项工作(http://www.alfresia.co.uk/sorrento-side-table.html/)。在这里,我们最终创建了一个自定义模块,就像我们这样做时,magento不支持访客用户的任何产品警报系统(我不知道现在是否支持)。
我们首先创建了一个文本框,该文本框将显示在产品缺货的产品页面上。我们将这些信息保存在我们的一个自定义表中,其中架构为{id,email,product_sku,status}(状态有三个值等待库存,有库存和已经通知)。
然后我们写了一个与cataloginventory_stock_item_save_after
事件挂钩的观察者,这帮助我们获得了库存中的产品sku,并更新了我们的自定义表格中的所有条目,状态为库存并发送邮件给用户。
这就是我们这样做的方式,肯定会有更清洁的方式。
答案 2 :(得分:0)
你可以使用插件。 MagentoCommerce有大量的插件/扩展程序可以做同样的事情
免费版 - http://www.magentocommerce.com/magento-connect/product-out-of-stock-subscription-1350.html
答案 3 :(得分:0)
我也有类似的要求,并且安装了“http://www.magentocommerce.com/magento-connect/product-out-of-stock-subscription-1350.html”这个插件。 那么这个插件可以完成这项任务,但是他们已经覆盖完整的产品视图页面模板,而不是简单地添加一个新块。通过这种方式,您在产品视图页面开发上的自定义开发可能会反映在前端。
否则这个插件绝对可以胜任。
答案 4 :(得分:0)
这个http://www.magentocommerce.com/magento-connect/product-out-of-stock-subscription-1350.html插件非常好,但它可以打破可配置的产品类型,它完全覆盖了产品控制器,使您的系统容易受到未来升级的影响。我认为观察者应该关注产品重新有库存的事件并且应该更新用户。