更改Magento前端的标准地址格式

时间:2011-04-04 10:13:42

标签: magento

我想在客户地址页面上更改Magento的标准地址格式。我怎么能这样做?

对于那些不知道地址格式的人来说,这是我们写地址的方法。例如,法国的英文格式为:

Addressee (Natural person/Organization)
More detailed description of addressee (optional)
Housenumber + Streetname
Postal code + uppercase town
Country (if other than France)

美国的地址格式为:

Name of address
Street number and name
Name of town, State abbreviation + ZIP code
(typical handwritten format)

你可以read more at wikipedia。非常感谢。

4 个答案:

答案 0 :(得分:30)

似乎不再使用config.xml文件(或者只是将默认值加载到数据库中)。

转到:

  

系统 - >配置 - >客户 - >客户配置,然后向下滚动到地址模板。

您可以找到与XML文件中相同的代码。

答案 1 :(得分:11)

一般来说,地址格式包含在app / code / core / Mage / Customer / config.xml中,寻找一些这样的标记:

...

<default>
  <customer>
    <address_formats> 
     <text><![CDATA[{{depend prefix}}{{var prefix}} {{/depend}}{{var firstname}} {{depend middlename}}{{var middlename}} {{/depend}}{{var lastname}}{{depend suffix}} {{var suffix}}{{/depend}}
{{depend company}}{{var company}}{{/depend}}
{{if street1}}{{var street1}}
{{/if}}
{{depend street2}}{{var street2}}{{/depend}}
{{depend street3}}{{var street3}}{{/depend}}
{{depend street4}}{{var street4}}{{/depend}}
{{if city}}{{var city}},  {{/if}}{{if region}}{{var region}}, {{/if}}{{if postcode}}{{var postcode}}{{/if}}
{{var country}}
T: {{var telephone}}
{{depend fax}}F: {{var fax}}{{/depend}}}]]></text>
    </address_templates>
  </customer>
</default>

...

答案 2 :(得分:4)

Magento渲染地址,因为它在magento admin配置中定义。您可以通过更改地址模板来管理地址格式。

转到系统/配置/客户配置/地址模板/ Html / 根据您的要求编辑内容。

同样,您可以编辑PDF模板以更改地址的pdf视图。

答案 3 :(得分:4)

我创建了基于县定义多地址格式的模块:

以下是创建它的简单方法。

为插入更新'directory_country_format'表创建管理模块。

在你的模块中重写Mage_Customer_Block_Address_Renderer_Default类。

覆盖以下功能

public function getFormat(Mage_Customer_Model_Address_Abstract $address=null)
{
    $countryFormat = is_null($address) ? parent::getFormat($address) :       
     $address->getCountryModel()->getFormat($this->getType()->getCode());
     if (is_object($countryFormat)) {
          $cFormat = $countryFormat->getFormat();
      }

    $format = $countryFormat ?   
    (!empty($cFormat)?$cFormat:$this->getType()->getDefaultFormat()) : 
    $this->getType()->getDefaultFormat();
    return $format;
}

以下是我的模块,可帮助您根据客户所在国家/地区定义地址格式。

http://magentosolution.com/index.php/2014/08/27/magento-address-formats-base-of-country/