2016-04-22 5 views
1

Wir fragen uns, ob in Hotcakes 1.10.3, wenn die Versandmethode Lookup erkennen kann, wenn eine Adresse eingegeben ist ein P.O. Box vor Rückgabe der verfügbaren Versandarten.Können FedEx-Versandmethoden unterdrückt werden, wenn eine Adresse einen P.O. Box in heißen Kuchen?

Warum wir fragen - unser Kunde verwendet in erster Linie FedEx, um Versanddokumente zuzustellen, möchte jedoch die USPS-Versandmethoden standardmäßig verwenden, wenn ein Kunde eine P.O. Box, da FedEx nicht an P.O. Boxen.

Ich habe ein paar Postfachadressen ausprobiert, und in unserem aktuellen Build werden FedEx-Raten immer noch zurückgegeben. Gibt es eine Möglichkeit, FedEx davon abzuhalten, zurückzukehren, wenn ein P.O. Box wird als Adresse in Checkout eingegeben?

Vielen Dank.

Antwort

0

Haftungsausschluss: Ich arbeite für Hotcakes.

Ich schaute dies in unserer Code-Basis und es war interessant zu sehen, dass wir einfach die Adresse vom Kunden eingegeben in der Kasse und übergeben sie direkt an den Versanddienstleister (z. B. FedEx). In meinen Tests, die FedEx speziell verwenden, geben sie Preise von ihrem eigenen Webservice zurück, unabhängig davon, ob die Adresse ein P.O. Box oder nicht. Sie scheinen nicht selbst darauf zu achten. Ich habe die anderen integrierten Live-Rate-Anbieter für diese Antwort nicht überprüft.

Um diese Problemumgehung zu umgehen, können Sie dies selbst erkennen und verhindern, dass dies in Ihrem custom viewset passiert. Sie sollten sich jedoch darüber im Klaren sein, dass dies wirklich bedeutet, dass Sie alle Anwendungsfälle testen müssen, die für Ihre Zielkunden auf Ihrer Website erwartet werden.

Suchen Sie in Ihrem Viewset die Checkout.js-Datei im Ordner Scripts.

In dieser Datei sollten Sie nach der folgenden Methode suchen und eine Überprüfung durchführen, um festzustellen, ob das Feld Adresse 1 ein P.O. Box oder nicht. Wenn dies der Fall ist, entfernen Sie die FedEx-Preise aus der Liste der Versandanbieter, die die Preise erhalten haben. Dies verhindert, dass Ihr Kunde nicht unterstützte Tarife auswählt.

  • RefreshShippingRates

Ein Beispiel dieser Kontrolle in diesem JS-Datei könnte wie folgt aussehen:

var address1Value = $('#shippingaddress').val() 
if (address1Value.substring(0, 4) == "P.O.") { 
    // iterate through each rate to see if it needs to be removed 
}