หากคุณเลือก Priority Mail International และทำการประมาณการไปยังแคนาดาค่าธรรมเนียมการจัดการจะเป็นตัวเลือกสำหรับการจัดส่ง
การหลีกเลี่ยงคือการยกเลิกการเลือก "Priority Mail International"
หากคุณเลือก Priority Mail International และทำการประมาณการไปยังแคนาดาค่าธรรมเนียมการจัดการจะเป็นตัวเลือกสำหรับการจัดส่ง
การหลีกเลี่ยงคือการยกเลิกการเลือก "Priority Mail International"
คำตอบ:
แก้ไข: โปรดจำไว้ว่าวีโอไอพีแก้ไขปัญหานี้ด้วยแพตช์ 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 หลักในแหล่งส่งสินค้า
แก้ไขปัญหา 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;
หวังว่าจะช่วยคนได้
แม้ว่าโพสต์ดั้งเดิมจะเกี่ยวกับ 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