USPS 1.9.1.1 Priority Mail International损坏


15

如果您选择Priority Mail International并估算到加拿大,则将收取处理费,作为选择寄送的一种选择。

解决方法是取消选择“ Priority Mail International”

Answers:


13

编辑:请记住,Magento于2015年6月18日通过其SUPEE-6237补丁解决了此问题。此时安装补丁可能更容易解决问题。

我有一个问题,其中的汇率显示为$ 0.00,而没有方法名称。该问题似乎与2015年5月31日的USPS费率变化同时发生:

2015年5月31日,USPS Web工具将对美国邮政服务API实施修改和附加功能。以下更改可能会特别影响运输系统:

  • 优先邮件国际到加拿大需要的原始邮政编码
  • 修改后的特殊服务
  • 修改后的服务ID
  • 修改了退货服务的可用邮件类别

第一个导致Priority国际邮件返回以下错误:

<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);”之后。并且在右花括号之前。这是在“其他”的“国际”部分中。
Rob Mangiafico

+这为我解决了Magento 1.9.1的问题
Jason McCreary 2015年

我能否获得有关USPS Media邮件的帮助-> 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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.