Big Post Freight Shipping Module for Zen Cart 1.5.8
====================================================
Version 1.0.0 - PHP 7.4 and PHP 8 compatible - AU domestic

Live freight quotes from the Big Post system (api.bigpost.com.au):
Home Delivery (HDS), Business Delivery and Depot Collection, from
carriers including Hunter Express, Allied Express, Northline, TNT,
Couriers Please, Aramex, Hi Trans and more. Quotes only - jobs are
booked and despatched in your Big Post portal as usual.

REQUIREMENTS
- A Big Post account and an API token created at
  app.bigpost.com.au > My API Tokens
- Big Post Integration T&Cs signed with Big Post

FILES (no core files touched)
  includes/modules/shipping/bigpost.php
  includes/languages/english/modules/shipping/bigpost.php

INSTALL
1. Upload the includes folder to your store root.
2. Admin > Modules > Shipping Modules > "Freight Delivery"
   (code bigpost) > Install.
3. Paste your API token, set Pickup Suburb + Pickup Postcode
   (the suburb must be a real suburb for that postcode).
4. Pick which options to offer (HDS home / BUSINESS / DEPOT),
   set Weight Format (gms/kgs) and GST Tax Class.
5. Enable Debug Logging, run a test cart with a real suburb +
   postcode, check quotes and the PHP error log, then turn
   debug off.

HOW IT WORKS
- The customer's suburb (city field) + postcode is resolved to a
  Big Post locality via their suburb search; if the typed suburb
  doesn't match, the first suburb for that postcode is used so
  quotes still appear.
- The nearest Big Post depot is found automatically and Depot
  Collection quotes show the depot suburb in the label.
- By default only the CHEAPEST carrier per delivery option is
  shown (summarised - recommended). Set List Every Carrier = Yes
  to show all carrier quotes, and Show Carrier Name = Yes to
  append carrier names to labels.
- Prices from Big Post are GST inclusive; with a GST tax class
  set, the module strips GST so Zen Cart re-adds it.

FAILURE SAFETY
Any API failure (or invalid token) can never break checkout: the
module shows your Cost on Error flat rate, or hides itself when
Hide on Error = Yes or Cost on Error = 0, with a 5-minute backoff
so a down API never slows checkout.

IMPORTANT SETTINGS FOR FREIGHT
- Require Product Dimensions defaults to YES: freight quotes on
  guessed dimensions are risky, so quotes are hidden if any cart
  item lacks dimensions. Set product length/width/height (cm) on
  every freight product.
- Item Type defaults to 0 (Carton). If you ship skids/pallets,
  confirm the correct item type number with Big Post.

UNINSTALL
Admin > Modules > Shipping Modules > Remove Module, then delete
the two files. SQL fallback:
  DELETE FROM configuration
  WHERE configuration_key LIKE 'MODULE\_SHIPPING\_BIGPOST\_%';
