verbb / postie

A Craft Commerce shipping calculator plugin.
Other
12 stars 18 forks source link

Additional USPS Shipping Methods #15

Closed keyurshah closed 4 years ago

keyurshah commented 5 years ago

Description

The shipping methods for USPS Priority Mail are all configured as 1-Day. But shipping methods can actually be 2-Day and 3-Day as well. A list of possible combinations is shown here

here's the usps response for a package that's 2 Day Priority Mail

<?xml version="1.0" encoding="UTF-8"?>
<RateV4Response>
   <Package ID="1">
      <ZipOrigination>94538</ZipOrigination>
      <ZipDestination>10018</ZipDestination>
      <Pounds>1.98416035</Pounds>
      <Ounces>0</Ounces>
      <Size>REGULAR</Size>
      <Machinable>TRUE</Machinable>
      <Zone>8</Zone>
      <Postage CLASSID="3">
         <MailService>Priority Mail Express 1-Day&amp;lt;sup&amp;gt;&amp;#8482;&amp;lt;/sup&amp;gt;</MailService>
         <Rate>45.55</Rate>
      </Postage>
      <Postage CLASSID="2">
         <MailService>Priority Mail Express 1-Day&amp;lt;sup&amp;gt;&amp;#8482;&amp;lt;/sup&amp;gt; Hold For Pickup</MailService>
         <Rate>45.55</Rate>
      </Postage>
      <Postage CLASSID="13">
         <MailService>Priority Mail Express 1-Day&amp;lt;sup&amp;gt;&amp;#8482;&amp;lt;/sup&amp;gt; Flat Rate Envelope</MailService>
         <Rate>25.50</Rate>
      </Postage>
      <Postage CLASSID="27">
         <MailService>Priority Mail Express 1-Day&amp;lt;sup&amp;gt;&amp;#8482;&amp;lt;/sup&amp;gt; Flat Rate Envelope Hold For Pickup</MailService>
         <Rate>25.50</Rate>
      </Postage>
      <Postage CLASSID="30">
         <MailService>Priority Mail Express 1-Day&amp;lt;sup&amp;gt;&amp;#8482;&amp;lt;/sup&amp;gt; Legal Flat Rate Envelope</MailService>
         <Rate>25.70</Rate>
      </Postage>
      <Postage CLASSID="31">
         <MailService>Priority Mail Express 1-Day&amp;lt;sup&amp;gt;&amp;#8482;&amp;lt;/sup&amp;gt; Legal Flat Rate Envelope Hold For Pickup</MailService>
         <Rate>25.70</Rate>
      </Postage>
      <Postage CLASSID="62">
         <MailService>Priority Mail Express 1-Day&amp;lt;sup&amp;gt;&amp;#8482;&amp;lt;/sup&amp;gt; Padded Flat Rate Envelope</MailService>
         <Rate>26.20</Rate>
      </Postage>
      <Postage CLASSID="63">
         <MailService>Priority Mail Express 1-Day&amp;lt;sup&amp;gt;&amp;#8482;&amp;lt;/sup&amp;gt; Padded Flat Rate Envelope Hold For Pickup</MailService>
         <Rate>26.20</Rate>
      </Postage>
      <Postage CLASSID="1">
         <MailService>Priority Mail 2-Day&amp;lt;sup&amp;gt;&amp;#8482;&amp;lt;/sup&amp;gt;</MailService>
         <Rate>14.20</Rate>
      </Postage>
      <Postage CLASSID="22">
         <MailService>Priority Mail 2-Day&amp;lt;sup&amp;gt;&amp;#8482;&amp;lt;/sup&amp;gt; Large Flat Rate Box</MailService>
         <Rate>19.95</Rate>
      </Postage>
      <Postage CLASSID="17">
         <MailService>Priority Mail 2-Day&amp;lt;sup&amp;gt;&amp;#8482;&amp;lt;/sup&amp;gt; Medium Flat Rate Box</MailService>
         <Rate>14.35</Rate>
      </Postage>
      <Postage CLASSID="28">
         <MailService>Priority Mail 2-Day&amp;lt;sup&amp;gt;&amp;#8482;&amp;lt;/sup&amp;gt; Small Flat Rate Box</MailService>
         <Rate>7.90</Rate>
      </Postage>
      <Postage CLASSID="16">
         <MailService>Priority Mail 2-Day&amp;lt;sup&amp;gt;&amp;#8482;&amp;lt;/sup&amp;gt; Flat Rate Envelope</MailService>
         <Rate>7.35</Rate>
      </Postage>
      <Postage CLASSID="44">
         <MailService>Priority Mail 2-Day&amp;lt;sup&amp;gt;&amp;#8482;&amp;lt;/sup&amp;gt; Legal Flat Rate Envelope</MailService>
         <Rate>7.65</Rate>
      </Postage>
      <Postage CLASSID="29">
         <MailService>Priority Mail 2-Day&amp;lt;sup&amp;gt;&amp;#8482;&amp;lt;/sup&amp;gt; Padded Flat Rate Envelope</MailService>
         <Rate>8.00</Rate>
      </Postage>
      <Postage CLASSID="38">
         <MailService>Priority Mail 2-Day&amp;lt;sup&amp;gt;&amp;#8482;&amp;lt;/sup&amp;gt; Gift Card Flat Rate Envelope</MailService>
         <Rate>7.35</Rate>
      </Postage>
      <Postage CLASSID="42">
         <MailService>Priority Mail 2-Day&amp;lt;sup&amp;gt;&amp;#8482;&amp;lt;/sup&amp;gt; Small Flat Rate Envelope</MailService>
         <Rate>7.35</Rate>
      </Postage>
      <Postage CLASSID="40">
         <MailService>Priority Mail 2-Day&amp;lt;sup&amp;gt;&amp;#8482;&amp;lt;/sup&amp;gt; Window Flat Rate Envelope</MailService>
         <Rate>7.35</Rate>
      </Postage>
      <Postage CLASSID="4">
         <MailService>USPS Retail Ground&amp;lt;sup&amp;gt;&amp;#174;&amp;lt;/sup&amp;gt;</MailService>
         <Rate>12.98</Rate>
      </Postage>
      <Postage CLASSID="6">
         <MailService>Media Mail Parcel</MailService>
         <Rate>3.27</Rate>
      </Postage>
      <Postage CLASSID="7">
         <MailService>Library Mail Parcel</MailService>
         <Rate>3.10</Rate>
      </Postage>
   </Package>
</RateV4Response>

Steps to reproduce

  1. Enable Postie for USPS and enable all shipping methods
  2. Check the rate results for zip code 94538 to zip code 10018
  3. No Priority Mail 2-Day methods are displayed

Additional info

Thanks!

AugustMiller commented 5 years ago

I've issued a PR to add 2- and 3-day options in the current scheme, but I wonder if it isn't worth a longer look to see if we can't match up the CLASSIDs that USPS sends back. Seems like a more stable method for comparing against local options… Particularly when the names are customizable!

keyurshah commented 5 years ago

that PR looks good!

engram-design commented 4 years ago

Added in 2.1.0. Thanks @AugustMiller. Keeping it simple for the moment.