1

我想为字母数字的加拿大邮政编码范围添加税率。当我尝试添加税率时,它给了我无效的邮政编码错误。如何为税率添加字母数字邮政编码范围?

下面给出示例。

国家/地区邮政编码率邮政编码是范围范围从范围到默认值 CA 12.5 1 A0A1A0 A0A1C0
CA 65 1 A0A1E0 A0A1E0
CA 12.5 1 A0A1G0 A0A1K0
CA 65 1 A0A1L0 A0A1M0
CA 12.5 1 A0A1N0 A0A1P0
CA 65 1 A0A1R0

4

2 回答 2

0

看看这篇文章: http: //www.magentocommerce.com/boards/viewthread/235224/#t363765

请注意,由于 OP 的要求,第一个代码段不允许在美国境外发货。他在之后发布了后续代码,允许国际运输。

于 2012-05-08T14:31:23.310 回答
0

首先,这是一种丑陋的做法,正确的做法是编写一个覆盖此功能的模块。
到 app/code/core/Mage/Adminhtml/Block/Tax/Rate/Form.php
找到上面的:(对我来说它从第 155 行开始)

    $fieldset->addField('zip_from', 'text',
        array(
            'name' => 'zip_from',
            'label' => Mage::helper('tax')->__('Range From'),
            'value' => $rateObject->getZipFrom(),
            'required' => true,
            'class' => 'validate-digits'
        )
    );

    $fieldset->addField('zip_to', 'text',
        array(
            'name' => 'zip_to',
            'label' => Mage::helper('tax')->__('Range To'),
            'value' => $rateObject->getZipTo(),
            'required' => true,
            'class' => 'validate-digits'
        )
    );

validate-digits更改为required-entry,因此变为:

    $fieldset->addField('zip_from', 'text',
        array(
            'name' => 'zip_from',
            'label' => Mage::helper('tax')->__('Range From'),
            'value' => $rateObject->getZipFrom(),
            'required' => true,
            'class' => 'required-entry'
        )
    );

    $fieldset->addField('zip_to', 'text',
        array(
            'name' => 'zip_to',
            'label' => Mage::helper('tax')->__('Range To'),
            'value' => $rateObject->getZipTo(),
            'required' => true,
            'class' => 'required-entry'
        )
    );

注意:邮政编码限制为10 个字符长(如所述)
app/code/code/Mage/Tax/Model/Calculation/Rate.php (line74)

$zipFrom = (strlen($this->getZipFrom()) > 10) ? substr($this->getZipFrom(), 0, 10) : $this->getZipFrom();
$zipTo   = (strlen($this->getZipTo()) > 10) ? substr($this->getZipTo(), 0, 10) : $this->getZipTo();
于 2012-05-08T14:02:56.533 回答