4

如果库存不可用,我正在尝试创建“通知我”功能。

在管理面板上搜索时,我只能发现用户应该sign up / log in收到有关库存可用性的通知。

但我只想让用户(来宾)只输入他/她的电子邮件地址以获得通知。

我该怎么做?

请给建议..

编辑

我有这个链接,它给了我一个开始的方法。

到目前为止,我所做的是在我的模板文件中添加以下代码,该代码正在创建一个用于重定向的 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();

我应该如何禁用此保存调用并添加我自己的小覆盖,其中包含一个用于输入电子邮件地址的文本框?

4

5 回答 5

4

Magento 具有开箱即用的“产品有货时通知我”功能。它可以在管理面板中进行配置:系统/配置/目录/产品警报和产品警报运行设置。

你是对的,它只适用于注册客户。为了使其适用于来宾用户,需要进行一些编码。我会说您需要执行以下步骤:

  1. 向表中添加emailproduct_alert_stock
  2. 创建扩展Mage_ProductAlert_AddController::stockAction(). 您的方法必须将客人的电子邮件设置为productalert/stock模型。
  3. 创建订阅表单并确保它向您的新控制器/操作提交数据。
  4. 更新(覆盖)Mage_ProductAlert_Model_Observer::_processStock()方法以使其尊重“客户”没有 ID 但有电子邮件的情况。

当您进行测试时,我建议您安装SMTP Pro 电子邮件扩展程序mailcatcher以简化测试过程。

于 2013-11-26T10:29:20.740 回答
2

我们已经这样做了(http://www.alfresia.co.uk/sorrento-side-table.html/)。在这里,我们最终创建了一个自定义模块,因为当我们这样做时,这个 magento 不支持来宾用户的任何产品警报系统(我不知道现在是否支持)。

我们首先创建了一个文本框,该文本框将出现在产品缺货的产品页面上。我们将此信息保存在我们的一个自定义表中,其中我们的架构是 {id, email, product_sku, status}(状态有三个值 Awaiting Stock、In Stock 和 Already Notified)。

然后,我们编写了一个与事件挂钩的观察者cataloginventory_stock_item_save_after,这有助于我们获取已重新入库的产品 sku,并将我们自定义表中的所有条目更新为 In Stock 状态并向用户发送邮件。

我们就是这样做的,肯定会有更清洁的方法来做到这一点。

于 2013-11-24T16:43:45.427 回答
0

你可以使用插件。MagentoCommerce 有大量的插件/扩展,它们的作用相同

免费版 - http://www.magentocommerce.com/magento-connect/product-out-of-stock-subscription-1350.html

于 2013-11-25T08:27:40.397 回答
0

我也有类似的要求,并安装了“ http://www.magentocommerce.com/magento-connect/product-out-of-stock-subscription-1350.html ”这个插件。好吧,这个插件可以完成这项工作,但他们已经覆盖了完整的产品视图页面模板,而不是简单地添加一个新块。通过这种方式,您在产品视图页面开发上的自定义开发可能会反映在前端。

否则这个插件肯定可以完成这项工作。

于 2013-11-29T07:01:27.483 回答
0

这个http://www.magentocommerce.com/magento-connect/product-out-of-stock-subscription-1350.html插件非常好,但是它会破坏可配置的产品类型,并且它完全覆盖了使您的系统的产品控制器容易受到未来升级的影响。我认为观察者应该关注产品重新有货的事件并应该更新用户。

于 2013-11-29T09:57:56.883 回答