2

顧客にいくつかのカスタム変数を追加しましたが、それらを電子メールテンプレートで使用したいと思います。

インストーラーでcustomerに変数を追加した例を次に示します。

$setup->addAttribute('customer', 'companyname', array(
    'input'         => 'text',
    'type'          => 'varchar',
    'label'         => 'Company name',
    'visible'       => 1,
    'required'      => 1,
    'user_defined' => 1,
));

$setup->addAttributeToGroup(
 $entityTypeId,
 $attributeSetId,
 $attributeGroupId,
 'companyname',
 '999'  //sort_order
);

$oAttribute = Mage::getSingleton('eav/config')->getAttribute('customer', 'companyname');
$oAttribute->setData('used_in_forms', array('adminhtml_customer','customer_account_create'));
$oAttribute->save();

この変数をメールテンプレートで使用しようとしています。

{{var order.getCustomer().getCompanyname()}}

しかし、それは表示されていません。それを機能させる方法は?

4

1 に答える 1

3

私は以下のようなコードで同様のタスクを実行しました:

$setup->addAttribute('customer', 'attr_name', array(
    'type'      => 'int',
    'input'     => 'select',
    'label'     => 'Attr label',
    'global'    => 1,
    'visible'   => 1,
    'required'  => 1,
    'default'   => '0',
    'user_defined'      => 1,
    'visible_on_front'  => 1,
));
if (version_compare(Mage::getVersion(), '1.6.0', '<='))
{
      $customer = Mage::getModel('customer/customer');
      $attrSetId = $customer->getResource()->getEntityType()->getDefaultAttributeSetId();
      $setup->addAttributeToSet('customer', $attrSetId, 'General', 'attr_name');
}
if (version_compare(Mage::getVersion(), '1.4.2', '>='))
{
    Mage::getSingleton('eav/config')
        ->getAttribute('customer', 'attr_name')
        ->setData('used_in_forms', array('customer_account_create'))
        ->save();
}

次に、「新規注文」メール内で(今すぐ)テストし、{{var order.getCustomer().getAttrName()}}正しい値を取得しました。
それを試してみてください、それはあなたに役立つかもしれません。

于 2012-07-25T09:22:34.597 に答える