【问题标题】:Magento Multi-store E-mail TemplatesMagento 多商店电子邮件模板
【发布时间】:2023-04-02 23:02:01
【问题描述】:

我有一个带有共享电子邮件模板的多商店设置(商店 A 和 B)。在这些模板中,我引用了区别于 A 和 B 的自定义变量。

Shop A ==\                           /==> Custom Var (version A)
          >==>  E-mail Template X ==<
Shop B ==/                           \==> Custom Var (version B)

这很好用,除了 1 个问题:当我通过管理员为商店 B 创建帐户时,我无法获得商店 B 的密码提醒。向此用户发送新密码将始终发送为商店 A .

请注意,发送的欢迎邮件正确的 (B),但我猜只是因为您从创建帐户屏幕中选择了发送商店。

我确实意识到该帐户被标记为由管理员而不是 Shop B 创建,而不是通过 Shop B 注册时。我可以想象这可能会导致问题,但是,我真的想找到一种方法:

  1. 通过管理员为 Shop B 创建一个帐户
  2. Shop B式发送密码提醒

编辑:以下问题是相关的,即谈论将用户与管理员的商店相关联:How can I change a customer store_id in Magento or set the "created_from" attribute when creating a new customer

【问题讨论】:

    标签: magento


    【解决方案1】:

    默认情况下,似乎无法从链接到特定商店的管理员创建帐户。不过,我确实找到了一种方法,通过收听 adminhtml_customer_prepare_save 并滥用帐户创建表单中的“发送自”。

    这是我为它准备的一个模块:

    etc\config.xml:

    <config>
      <modules>
        <Company_AccountPerStore>
          <version>1.0</version>
        </Company_AccountPerStore>
      </modules>
      <global>
        <models>
          <accountperstore>
            <class>Company_AccountPerStore_Model</class>
          </accountperstore>
        </models>
      </global>
      <adminhtml>
        <events>
          <adminhtml_customer_prepare_save>
            <observers>
              <accountperstore_observer>
                <class>Company_AccountPerStore_Model_Observer</class>
                <method>customerPrepareSave</method>
              </accountperstore_observer>
            </observers>
          </adminhtml_customer_prepare_save>
        </events>
      </adminhtml>
    </config>
    

    模型\Observer.php:

    class Company_AccountPerStore_Model_Observer extends Varien_Object
    {
      public function customerPrepareSave($observer)
      {
        $customer = $observer->getEvent()->getCustomer();
    
        if (!$customer->hasStoreId() && $customer->hasData('sendemail_store_id')) {
          $customer->setStoreId($customer->getData('sendemail_store_id'));
        }
      }
    }
    

    请注意,您将无法再检测到该帐户是由管理员创建的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-24
      • 2011-04-10
      • 1970-01-01
      • 1970-01-01
      • 2011-06-15
      相关资源
      最近更新 更多