USPS 1.9.1.1 Priority Mail International Broken


15

Priority Mail Internationalを選択してカナダへの見積もりを行うと、配送料を選択するオプションとして手数料が発生します。

回避策は、「Priority Mail International」の選択を解除することです

回答:


13

編集:Magentoは2015年6月18日にSUPEE-6237パッチでこの問題を解決したことを覚えておいてください。おそらくこの時点でパッチをインストールするだけで問題を解決できます。

メソッド名なしでレートが0.00ドルと表示される問題がありました。この問題は、2015年5月31日のUSPSレートの変更と一致するようです。

2015年5月31日USPS Webツールは、米国郵政公社APIの変更と追加機能を実装します。以下の変更は、特に出荷システムに影響を与える可能性があります。

  • カナダへの優先郵便インターナショナルに必要なオリジン郵便番号
  • 変更された特別サービス
  • 変更されたサービスID
  • Merchandise Return Servicesで利用可能な変更済みメールクラス

最初に発生したPriority Mail Internationalは、次のエラーを返します。

<ServiceErrors>
    <ServiceError>
        <Id>50050</Id>
        <Description>The Origin ZIP Code and the Destination Postal Code is required for Priority Mail International when mailing to Canada.</Description>
    </ServiceError>
</ServiceErrors>

ソリューションは、ファイルをコピーすることでした:app/code/core/Mage/Usa/Model/Shipping/Carrier/Usps.phpapp/code/local/Mage/Usa/Model/Shipping/Carrier/Usps.php

次に、次のコードを行394に挿入しました。

if($r->getDestCountryId()=='CA'){
    $package->addChild('OriginZip', $r->getOrigPostal());
}

これで問題が解決しました。

編集:これは、出荷元に5桁の郵便番号が入力されている場合にのみ機能します。


私はそれが担当者の要件の事だった実現しませんでしたが、OPは、彼は、彼はあなたの答えにコメントを入れていない可能性があるということを、ここで疑問のフォローアップがあります。magento.stackexchange.com/questions/69946/...を
マイク・

1
参考までに、Usps.phpファイルを編集するとき、「$ package-> addChild( 'Girth'、$ girth);」の後にコードを配置しました 閉じ中括弧の前。これは「その他」の国際セクションにあります。
ロブマンジャフィコ

+これにより、Magento 1.9.1
Jason McCreary

私はUSPSメディアメールについてのヘルプを表示することができます- > magento.stackexchange.com/q/227667/57334
ZUS

2

パッチSUPEE-6237は私のための問題を修正しました。SUPEE-6237の変更点は次のとおりです。

app/code/core/Mage/Usa/Model/Shipping/Carrier/Abstract.php
@@ -442,6 +442,17 @@ abstract class Mage_Usa_Model_Shipping_Carrier_Abstract extends Mage_Shipping_Mo
     }

     /**
+     * Check is Canada
+     *
+     * @param string $countryId
+     * @return boolean
+     */
+    protected function _isCanada($countryId)
+    {
+        return $countryId == 'CA';
+    }
+
+    /**
      * Check whether girth is allowed for the carrier
      *
      * @param null|string $countyDest

そして

app/code/core/Mage/Usa/Model/Shipping/Carrier/Usps.php
@@ -392,7 +392,10 @@ class Mage_Usa_Model_Shipping_Carrier_Usps
             $package->addChild('Height', $height);
             $package->addChild('Girth', $girth);

-
+            if ($this->_isCanada($r->getDestCountryId())) {
+                //only 5 chars available
+                $package->addChild('OriginZip', substr($r->getOrigPostal(), 0, 5));
+            }
             $api = 'IntlRateV2';
         }
         $request = $xml->asXML();
@@ -477,6 +480,9 @@ class Mage_Usa_Model_Shipping_Carrier_Usps
                      else {
                         if (is_object($xml->Package) && is_object($xml->Package->Service)) {
                             foreach ($xml->Package->Service as $service) {
+                                if ($service->ServiceErrors->count()) {
+                                    continue;
+                                }
                                 $serviceName = $this->_filterServiceName((string)$service->SvcDescription);
                                 $serviceCode = 'INT_' . (string)$service->attributes()->ID;
                                 $serviceCodeToActualNameMap[$serviceCode] = $serviceName;

これが誰かを助けることを願っています。


0

元の投稿はMagento v1.9についてでしたが、Magento v2で同じ問題が発生している他の人には、これがまだ存在するため、これを投稿したかったのです。

この修正は、右の行の前に次の行を追加する必要が$api = 'IntlRateV2';ファイルにvendor/magento/module-usps/Model/Carrier.php

$package->addChild('OriginZip', $r->getOrigPostal());
$package->addChild('AcceptanceDateTime', date('c'));
$package->addChild('DestinationPostalCode', $r->getDestPostal());

:あなたはここで、このmagento2問題について、プルリクエストを見ることができます https://github.com/magento/magento2/pull/8041

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.