- Fix USPS rates not factoring in correct pricing for multiple boxes.
- Fix when updating services, shipping category conditions would be lost.
- All providers now round box dimensions and weights to 2 decimal places.
- Improve project config storage for settings. Postie will now no longer save (some) settings for disabled providers.
- Fix DHL Express throwing errors due to invalid weight/dimensions.
- Fix in-memory caching not working correctly for providers. This meant potentially multiple requests for a single page request were being performed.
- Add support for FedEx Freight.
- Allow providers connection check to be run from cron, or similar means.
- Fix potential error with AusPost International.
- Fix USPS not logging error messages correctly for domestic shipments.
- Fix USPS rates not reporting back correctly when using potentially invalid postcodes.
- Fix testing connection only using saved values, not values as you change them.
- Fix UPS connection testing for some non-US based accounts.
- Ensure Postie isn’t shown in the CP sidebar menu when
allowAdminChanges = false
.
- Fix error when calculating rates for Australia Post, New Zealand Post and Sendle.
- Add weight and dimension unit settings for each provider. Some providers (UPS) rely on units being set for the appropriate account's region.
- Fix potential error with Australia Post.
- Fix an error with UPS when using negotiated rates.
- Ensure FedEx formats dimension and weight units correctly.
- Fix error introduced in 2.4.1 when saving settings form the control panel.
- Fix potential migration issue if no providers were configured.
- Add Sendle shipping provider.
- Add Interparcel shipping provider.
- Add New Zealand Post shipping provider.
- Add Bring shipping provider.
- Add Royal Mail shipping provider.
- Add PostNL shipping provider.
- Add Colissimo shipping provider.
- Add new 4D bin-packing algorithm to more accurately pack your boxes.
- Add ability to define box dimensions and weights for each provider, so you can better split order items into boxes.
- Add "Packing Method" setting for all providers.
- Add "Pack items individually" packing method, allowing all line items and quantities to be boxes individually.
- Add "Pack items into boxes" packing method, allowing provider-supplied boxes, or user-created ones.
- Add "Pack items into a single box" packing method - a slightly improved version of the box-packing algorithm in pre 2.4.0. This ensures a non-breaking change to box-packing behaviour to date.
- Add
EVENT_BEFORE_PACK_ORDER
andEVENT_AFTER_PACK_ORDER
events to all providers, allowing modification of the box-packing logic. - Add "Restrict Shipping Methods" setting for all providers. This allows opt-out of restricting to certain shipping services, and always use whatever is returned by the provider. This is particularly beneficial for some providers where services can't always be determined.
- Add
weightUnit
anddimensionUnit
to each provider for consistent use with boxes. These should always be provided in grams. - Add
supportsDynamicServices()
to providers whose list of services isn’t statically defined. - Add
getMaxPackageWeight()
to providers, to define what their maximum package weight is. - Add
getIsInternational()
to providers, to return whether an order is considered domestic or international. - Add provider setup instructions on connecting to the respective APIs.
- Add ability for providers to define their own default boxes of dimensions and types that cannot be deleted, but still toggled enabled/disabled.
- Add letter rates to Australia Post (domestic and international). Now fetches rates for letters, for applicable products, and as defined in the new box definitions.
- Add some additional missing satchel rates for Australia Post.
- Add “Residential Address” setting for UPS.
- Add “Include Insurance” setting for UPS.
- Add “Residential Address” setting for Fedex.
- Add “Include Insurance” setting for Fedex.
- Add “Fedex One Rate” setting for Fedex.
- Add “Additional Options” to Canada Post.
- Add
SinglePackageProvider
class for providers to extend from, if the API doesn't support sending multiple packages in one request. This class will fetch the first box, and add each subsequent (cached) response for all other boxes that are identical. - Add support for all providers to use env variables in their settings.
- Add API connection testing for all providers, allowing you to troubleshoot API credentials before getting to shipping.
- Add
supportsConnection()
,checkConnection()
andgetIsConnected()
methods to providers. - Add testing classes for addresses and packages. Can be freely used to fetch a range of different values for testing responses.
- Postie now requires PHP 7.1+.
- Multiple packages are now possible for Australia Post, DHL Express and TNT Australia. This not only improves a "too large to ship" response, but should provide more accurate pricing overall. Previously, Postie bundled all items in a single package, which would often go over maximum dimensions/weights.
- Existing providers now use the "Pack items into a single box" box packing algorithm. This is essentially the same as previous versions to prevent a breaking change.
- Tidied up the shipping methods table for providers.
- Some internal cleanup with providers (may affect custom providers). Refer to the updated docs.
- Provide field instructions for a number of provider settings.
- Visually highlight provider API instructions.
- Fix settings sidebar overflow in some cases.
- Removed
Provider::getPackageDimensions()
. - Removed
Provider::getDimensions()
. - Removed
Provider::getSplitBoxWeights()
.
- Add some additional Fedex rates for international distribution.
- Update
jeremy-dunn/php-fedex-api-wrapper
to 4.0.
- Fix UPS using Canadian origin address not working correctly.
- Fix package dimensions not calculating correctly in some instances.
- Add
shipDate
andshipTime
for DHL Express. - Add
modifyPayload
event to allow modifying the payload before it’s sent to providers to fetch rates.
- Add missing Fedex UK Domestic services.
- Add Pickup Type option for UPS. You may want to change this to “Customer Counter” for more accurate UPS results, but do test this for your own needs. The default is left as-is (“Daily Pickup”) so as not to be a breaking change.
- Add option to UPS to configure whether signatures are required.
- Fix defining provider settings in both the control panel and config files.
- Change Fedex package units to imperial (lb/in) to ensure proper rates are fetched.
- Fix Fedex/UPS/USPS maximum package weights calculating incorrectly.
- Add DHL Express.
- Add handling for Fedex/UPS/USPS for maximum package weights, splitting into multiple packages.
- Add
displayFlashErrors
config setting. Allows errors from the provider APIs to be shown in checkout templates. - Allow orders created in the control panel to bypass the
manualFetchRates
config setting, so they can pick a shipping method. - Add
EVENT_MODIFY_VARIANT_QUERY
to modify the variants used to check weight and dimensions for in Postie's settings.
- Fixed an error when viewing an order in the control panel, that used Postie-provided shipping method. (thanks @keyurshah).
- Now requires Commerce 3.2+ and Craft 3.5+.
- Fixed error with Commerce 3.2.
- Ensure the lowest amount is always used for Fedex amounts.
- Fix USPS error when a postcode isn’t set on the shipping address.
- Fix UPS error for carts that have no shipping country selected.
- Fix UPS throwing an error when the recipient address is from non-US countries.
- Fix error in UPS provider related to SurePost.
- Fix UPS SurePost exception preventing additional rates from being fetched. (thanks @Mosnar).
- Add special-case for completed orders, and fetching non-live-rate shipping methods. This allows the correct use of
order.shippingMethod.name
. Please note that calling this for completed orders will report all Postie-provided shipping method costs as 0. As such, use the shipping costs recorded on the order (order.totalShippingCost()
). - Fix errors for console or queue requests.
- Provide local cache for Australia Post countries API call (when the resource is offline).
- Ensure we check for cached rates when manualFetchRates is turned on. Otherwise, the shipping method won't save on cart, or persist on page load.
- Remove duplicate cakephp/utility composer package. (thanks @codebycliff).
- Fix saving shipping method settings not working.
- Added
manualFetchRates
config option, to allow you to manage manually fetching rates on-demand. Read the docs for more info.
- Greatly improve caching mechanism for initial requests to providers. This should result in faster rates-fetching.
- Provider function
getSignature
is now public.
- Fix logging error
Call to undefined method setFileLogging()
.
- Add support for UPS “Sure Post”.
- File logging now checks if the overall Craft app uses file logging.
- Log files now only include
GET
andPOST
additional variables.
- Canada Post - Fix incorrect URL for live requests.
- Fix styling issues for provider markup settings.
- Add
ShippingMethod::EVENT_MODIFY_SHIPPING_RULE
. See docs.
- Add TNT Australia provider.
- Add 2- and 3-day Priority options to USPS. (thanks @AugustMiller).
- Add
Order
object toModifyRatesEvent
. (thanks @AugustMiller). - Add
beforeFetchRates
event.
- Update FedEx for Ground Transit Time. FedEx handles the delivery date for Ground different than Express. For Ground, they use
TransitTime
. (thanks @keyurshah).
- Fix provider icon error for custom provider.
- Fix USPS/UPS handles, incorrectly being set as
uSPS
anduPS
. - Fix incorrect caching of rates for multiple providers.
- Fix zero-based rates not being shown to pick during checkout.
- Fix AusPost and Canada post error handling.
- Remove provider settings from shipping method requests, particularly for XHR.
- Fix debug statements occurring for non-site requests.
- Add support for Commerce 3.
- Add more UPS services, and change the way UPS services match.
- Fix provider settings not being populated on shipping methods and rules. Meant markup rates weren't working correctly.
- Add
modifyRates
providing access to the raw response from a provider and the extracted shipping rates. See docs. - All shipping rates now have additional options available on the shipping rule. See docs.
- Add negotiated rate support for UPS.
- Fix error with store location state for UPS.
- Add
delayFetchRates
,manualFetchRates
andfetchRatesPostValue
.
- Improve in-memory caching.
- Fix memory issues in certain cases when fetching rates.
- Tweak state handling for Fedex.
- Remove leftover debugging.
- Fix return type incompatibility causing errors.
- Fix dimensions API issue with Canada Post.
- Improve response error handling for Canada Post.
- Fix lack of formatting handling for Canada Post zip codes.
- Swap XML parser for Canada Post.
- Fix missing shipping description.
- Fix some error messages themselves throwing errors.
- Craft 3/Commerce 2 support.
- Add Canada Post provider.
- Add Fastway provider.
- Add initial TNT provider. Please contact us with API account details to finalise!
- Add
displayDebug
config setting. - Add
displayErrors
config setting. - Add
enableCaching
config setting. - Add
enabled
config setting for each provider. - Add provider icons, and CP UI improvements.
- Updated provider functions for easier/clearer extendability. See docs.
- Updated cache mechanism for better performance.
- Australia Post now fetches shipping rates in a single API call.
- Removed
originAddress
config setting in favour of Commerce'sStore Location
. - Provider handles in config file are now required to be provided in camel case.
- Add config setting to disable cache.
- Add UPS Provider.
- Fedex - Add config setting
disableCache
for test endpoint (not default when using DevMode). - Fedex - fix services from pre1.0.1 causing issues.
- Add management of shipping category conditions for shipping methods.
- Initial release.