USPS 1.9.1.1 จดหมายสำคัญต่างประเทศแตกหัก


15

หากคุณเลือก Priority Mail International และทำการประมาณการไปยังแคนาดาค่าธรรมเนียมการจัดการจะเป็นตัวเลือกสำหรับการจัดส่ง

การหลีกเลี่ยงคือการยกเลิกการเลือก "Priority Mail International"

คำตอบ:


13

แก้ไข: โปรดจำไว้ว่าวีโอไอพีแก้ไขปัญหานี้ด้วยแพตช์ SUPEE-6237 ของพวกเขาในวันที่ 18 มิถุนายน 2015 อาจเป็นเรื่องง่ายกว่าที่จะติดตั้งแพทช์ในตอนนี้เพื่อแก้ไขปัญหา

ฉันมีปัญหาที่อัตราการแสดงเป็น $ 0.00 โดยไม่มีชื่อวิธี ปัญหาดูเหมือนว่าจะสอดคล้องกับการเปลี่ยนแปลงของอัตรา USPS ณ วันที่ 31 พฤษภาคม 2015:

31 พฤษภาคม 2558 USPS Web Tools จะนำการแก้ไขและคุณสมบัติเพิ่มเติมไปใช้กับ US Postal Service API การเปลี่ยนแปลงต่อไปนี้อาจกระทบระบบการจัดส่งโดยเฉพาะ:

  • ต้องการรหัสไปรษณีย์ต้นทางสำหรับจดหมายสำคัญระหว่างประเทศไปยังแคนาดา
  • ดัดแปลงบริการพิเศษ
  • แก้ไข ID บริการ
  • แก้ไขคลาสอีเมลที่มีอยู่สำหรับบริการส่งคืนสินค้า

การจัดลำดับความสำคัญของจดหมายระหว่างประเทศครั้งแรกทำให้เกิดข้อผิดพลาดต่อไปนี้:

<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.phpไปapp/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/ …
Mike

1
FYI เมื่อแก้ไขไฟล์ Usps.php ฉันวางโค้ดไว้หลัง "$ package-> addChild ('Girth', $ girth);" และก่อนที่จะปิดวงเล็บหยิก นี่คือในส่วนระหว่างประเทศของ "อื่น ๆ "
Rob Mangiafico

+ วิธีนี้แก้ไขปัญหาให้กับฉัน Magento 1.9.1
Jason McCreary

ฉันสามารถรับความช่วยเหลือเกี่ยวกับ USPS Media mail ได้หรือไม่ -> magento.stackexchange.com/q/227667/57334
18:00

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.