USPS 1.9.1.1 Posta prioritaria internazionale non funzionante


15

Se selezioni Priority Mail International e fai un preventivo in Canada, la commissione di gestione viene visualizzata come opzione da selezionare per la spedizione.

La soluzione è deselezionare "Priority Mail International"

Risposte:


13

EDIT: tieni presente che Magento ha risolto il problema con la patch SUPEE-6237 il 18 giugno 2015. Probabilmente è più semplice installare la patch a questo punto per risolvere il problema.

Ho avuto un problema a causa del quale la tariffa si presentava a $ 0,00 senza il nome del metodo. Il problema sembra coincidere con la variazione del tasso USPS al 31 maggio 2015:

31 maggio 2015 USPS Web Tools implementerà modifiche e funzionalità aggiuntive alle API del servizio postale degli Stati Uniti. Le seguenti modifiche possono influire in particolare sui sistemi di spedizione:

  • Codice postale di origine richiesto per Priority Mail International in Canada
  • Servizi speciali modificati
  • ID servizio modificati
  • Classi di posta disponibili modificate per i servizi di restituzione della merce

La prima posta prioritaria internazionale causata restituisce il seguente errore:

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

La soluzione era copiare il file: app/code/core/Mage/Usa/Model/Shipping/Carrier/Usps.phpinapp/code/local/Mage/Usa/Model/Shipping/Carrier/Usps.php

Ho quindi inserito il seguente codice nella riga 394:

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

Ciò ha risolto il problema per me.

Modifica: funzionerà solo se il codice postale di 5 cifre è stato inserito nell'origine di spedizione.


Non mi rendevo conto che si trattava di un requisito di rappresentante, ma l'OP ha una domanda di follow-up qui che ha detto che non poteva inserire un commento alla tua risposta: magento.stackexchange.com/questions/69946/…
Mike

1
Cordiali saluti, durante la modifica del file Usps.php, ho inserito il codice dopo "$ package-> addChild ('Girth', $ girth);" e prima della parentesi graffa di chiusura. Questo è nella sezione internazionale dell '"altro".
Rob Mangiafico,

+ Questo ha risolto il problema per me Magento 1.9.1
Jason McCreary,

Posso ricevere assistenza sulla posta USPS Media -> magento.stackexchange.com/q/227667/57334
zus,

2

patch SUPEE-6237 problema risolto per me. le modifiche in SUPEE-6237 sono:

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

e

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;

spero che questo aiuti qualcuno.


0

Anche se il post originale riguardava Magento v1.9, volevo pubblicarlo per altri che stanno riscontrando lo stesso problema con Magento v2, poiché esiste ancora.

La correzione richiede l'aggiunta delle seguenti righe proprio prima della riga $api = 'IntlRateV2';nel file vendor/magento/module-usps/Model/Carrier.php.

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

Puoi vedere la richiesta pull su questo problema di magento2 qui: https://github.com/magento/magento2/pull/8041

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.