USPS 1.9.1.1 Surat Prioritas Internasional Rusak


15

Jika Anda memilih Priority Mail International dan melakukan perkiraan ke Kanada, Biaya penanganan muncul sebagai opsi untuk memilih pengiriman.

Cara mengatasinya adalah untuk membatalkan pilihan "Priority Mail International"

Jawaban:


13

EDIT: Perlu diingat Magento menyelesaikan masalah ini dengan tambalan SUPEE-6237 pada 18 Juni 2015. Mungkin saja lebih mudah untuk menginstal tambalan pada titik ini untuk menyelesaikan masalah.

Saya punya masalah di mana nilai tukar ditampilkan sebagai $ 0,00 tanpa nama metode. Masalahnya tampaknya bertepatan dengan perubahan tarif USPS pada 31 Mei 2015:

31 Mei 2015 USPS Web Tools akan menerapkan modifikasi dan fitur tambahan ke API Layanan Pos AS. Perubahan berikut ini dapat berdampak pada sistem pengiriman:

  • Kode ZIP Asal diperlukan untuk Priority Mail International ke Kanada
  • Layanan khusus yang dimodifikasi
  • ID layanan yang dimodifikasi
  • Modifikasi kelas surat yang tersedia untuk Layanan Pengembalian Barang Dagangan

Internasional pertama yang disebabkan mail Internasional mengembalikan kesalahan berikut:

<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>

Solusinya adalah menyalin file: app/code/core/Mage/Usa/Model/Shipping/Carrier/Usps.phpkeapp/code/local/Mage/Usa/Model/Shipping/Carrier/Usps.php

Saya kemudian memasukkan kode berikut ke baris 394:

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

Ini memperbaiki masalah bagi saya.

Sunting: Ini hanya akan berfungsi jika Anda memasukkan kode pos 5 digit di tempat pengiriman.


Saya tidak menyadari bahwa itu adalah persyaratan persyaratan perwakilan, tetapi OP memiliki pertanyaan lanjutan di sini bahwa dia mengatakan dia tidak dapat memberikan komentar atas jawaban Anda: magento.stackexchange.com/questions/69946/…
Mike

1
FYI, ketika mengedit file Usps.php, saya menempatkan kode setelah "$ package-> addChild ('Girth', $ girth);" dan sebelum braket keriting penutupan. Ini ada di bagian Internasional "lain".
Rob Mangiafico

+ Ini menyelesaikan masalah bagi saya Magento 1.9.1
Jason McCreary

Bisakah saya mendapatkan bantuan tentang surat media USPS -> magento.stackexchange.com/q/227667/57334
zus

2

menambal SUPEE-6237 masalah tetap bagi saya. perubahan dalam SUPEE-6237 adalah:

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

dan

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;

semoga ini membantu seseorang.


0

Meskipun posting asli tentang Magento v1.9, saya ingin memposting ini untuk orang lain yang mengalami masalah yang sama dengan Magento v2, karena masih ada.

Perbaikan memerlukan penambahan baris berikut tepat sebelum baris $api = 'IntlRateV2';dalam file vendor/magento/module-usps/Model/Carrier.php.

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

Anda dapat melihat permintaan tarik tentang masalah magento2 ini di sini: https://github.com/magento/magento2/pull/8041

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.