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 A0A1R00

4

2 に答える 2

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-digitsrequired-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 (74 行目)

$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 に答える
0

この投稿をチェックしてください: http://www.magentocommerce.com/boards/viewthread/235224/#t363765

最初のコード スニペットでは、OP の要件により、米国外への発送が許可されていないことに注意してください。彼は、国際配送を許可する直後にフォローアップ コードを投稿しました。

于 2012-05-08T14:31:23.310 に答える