USPS 1.9.1.1 Öncelikli Posta Uluslararası Bozuk


15

Priority Mail International'ı seçer ve Kanada'ya bir tahmin yaparsanız, taşıma ücreti nakliye için seçilecek bir seçenek olarak gelir.

Geçici çözüm "Priority Mail International" seçimini kaldırmaktır

Yanıtlar:


13

EDIT: Magento 18 Haziran 2015 tarihinde SUPEE-6237 yama ile bu sorunu çözdü unutmayın. Bu sorunu çözmek için muhtemelen bu noktada yama yüklemek daha kolaydır.

Oranın yöntem adı olmadan 0,00 $ olarak gösterdiği bir sorun yaşadım. Sorun, 31 Mayıs 2015'ten itibaren USPS oran değişikliğine denk geliyor:

31 Mayıs 2015 USPS Web Araçları, ABD Posta Hizmeti API'larında değişiklikler ve ek özellikler uygulayacak. Aşağıdaki değişiklikler özellikle nakliye sistemlerini etkileyebilir:

  • Kanada'ya Priority Mail International için başlangıç ​​Posta Kodu gerekir
  • Değiştirilmiş özel hizmetler
  • Değiştirilmiş hizmet kimlikleri
  • Mal İade Hizmetleri için kullanılabilir posta sınıfları değiştirildi

İlk neden olan Priority mail international aşağıdaki hatayı döndürür:

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

Çözüm dosyasını kopyalamak oldu: app/code/core/Mage/Usa/Model/Shipping/Carrier/Usps.phphiçapp/code/local/Mage/Usa/Model/Shipping/Carrier/Usps.php

Daha sonra 394 satırına aşağıdaki kodu ekledim:

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

Bu benim için sorunu düzeltti.

Düzenle: Bu yalnızca 5 haneli posta kodunuzu gönderim bedelinde girdiyseniz çalışır.


Temsilci gereksinimi bir şey olduğunu fark etmedim, ancak OP'nin cevabınıza bir yorum yapamayacağını söyledi bir takip sorusu var: magento.stackexchange.com/questions/69946/…
Mike

1
FYI, Usps.php dosyasını düzenlerken, kodu "$ package-> addChild ('Girth', $ girth);" ve kapanış kıvırcık braketinden önce. Bu "else" nin Uluslararası bölümünde.
Rob Mangiafico

+ Bu benim için sorunu çözdü Magento 1.9.1
Jason McCreary

USPS Medya postası hakkında yardım alabilir miyim -> magento.stackexchange.com/q/227667/57334
zus

2

düzeltme eki SUPEE-6237 benim için sorun düzeltildi. SUPEE-6237'deki değişiklikler şunlardır:

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

ve

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;

umarım bu birisine yardım eder.


0

Orijinal yazı Magento v1.9 ile ilgili olsa da, bunu hala var olduğu için Magento v2 ile aynı sorunu yaşayan diğerleri için göndermek istiyorum.

Düzeltme için $api = 'IntlRateV2';, dosyadaki satırın hemen önüne aşağıdaki satırların eklenmesi gerekir vendor/magento/module-usps/Model/Carrier.php.

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

Bu magento2 sorunu hakkında çekme isteğini burada görebilirsiniz: https://github.com/magento/magento2/pull/8041

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.