Magento多商店电子邮件模板

时间:2012-08-15 09:55:36

标签: magento

我有一个带有共享电子邮件模板的多线程设置(商店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),但我想这只是因为您从“创建帐户”屏幕中选择了发送商店。

我确实知道该帐户被标记为由管理员而非商店B创建,而不是当人们通过商店B注册时。我可以想象这可能会导致问题,但我仍然喜欢找到一种方法:

  1. 通过管理员
  2. 为Shop B创建一个帐户
  3. 以商店B风格
  4. 发送密码提醒

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

1 个答案:

答案 0 :(得分:0)

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

这是我为之奋斗的模块:

等\ 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'));
    }
  }
}

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