How live Australia Post rates reach your checkout
A live rate is the end of a chain, and a break anywhere in it shows up as no shipping options. The customer enters an address. WooCommerce checks your shipping zones from the top of the list down and uses the first one that matches. That zone's shipping methods run, including the Australia Post method. The plugin works out the parcels from each product's weight and dimensions and your box settings. It asks Australia Post for prices using your origin postcode, the destination and those parcels. Whatever comes back is cached and shown. Diagnosing missing rates is a matter of finding which link failed, and every section below is one of them.
Every product needs a weight and dimensions: every one
AusPost cannot quote on a parcel it cannot measure. If a single item in the cart has no weight, the rate request fails for the whole cart, not just that item. This is the most common cause by a distance, and it usually appears after someone adds a product in a hurry or imports a catalogue that did not carry the weight column.
Weight units and parcel limits that silently reject a cart
Check the weight unit under WooCommerce > Settings > Products before anything else. A store set to kilograms with weights typed as grams describes a 500-gram product as half a tonne, and Australia Post simply returns nothing. Then check the parcel limits: standard domestic parcels are limited to 22 kg and 105 cm on the longest side, so a product bigger or heavier than that will never get a parcel rate however the plugin is configured. Those items need a separate method, such as a freight rate or another carrier, assigned through a shipping class, so the rest of the catalogue keeps its live rates.
Shipping zones that do not actually contain your customer
A zone covering Australia will not match a customer whose state is blank or whose postcode falls outside the ranges you entered. WooCommerce then falls through to whatever your catch-all zone offers, which is often nothing at all. Checking which zone a given address resolves to is the fastest way to confirm or eliminate this.
API keys, MyPost Business, and eParcel are not interchangeable
A retail AusPost account, a MyPost Business account and an eParcel contract expose different rate sets through different credentials, and a key issued for one will not return rates for another. Stores frequently have a key that works for the account type they used to have.
Box packing: what the plugin thinks it is shipping
Without box packing configured, many setups quote each item as its own parcel, which produces either absurd prices or no result at all for a large cart. With it configured badly, oversized items silently fail to fit any defined box and return nothing. This is the cause most often mistaken for a broken API.
Caching a rate response you did not mean to keep
Shipping rates are cached, sensibly, because the API is slow. The side effect is that a fix appears not to have worked, or an old failure keeps being served long after the cause was corrected. Any real diagnosis has to clear that cache between attempts, or you are testing yesterday.
When AusPost is simply refusing the request
Rate limits during a sale, a genuine outage, or a request for a destination the account is not contracted to serve will all return nothing. The right response is a sensible fallback rate so customers can still check out, rather than a checkout that offers no shipping at all and loses the order.
How to check why your Australia Post rates are missing
You can narrow it down yourself in about ten minutes. Turn on shipping debug mode under WooCommerce > Settings > Shipping > Shipping options; it shows which zone an address matched and bypasses the rate cache, so you are testing the current setup. Switch it off again afterwards. Put one simple product with a known weight and size in the cart and try a metro postcode such as 3000. If that works, add products one at a time until the rates disappear, and the last one added has the problem. Then look under WooCommerce > Status > Logs for the shipping plugin's own log, which usually records the error message Australia Post sent back. If none of that explains it, send us the log and we will take it from there.
Live rates, a rate table or a hybrid: which model fits your store?
Live rates are accurate but depend on a remote service and on every product being measured. A weight-band table built from Australia Post's own price guide never fails at checkout, but needs updating when prices change. Most of the stores we set up end up with a hybrid: free shipping above a cart value you choose, live AusPost rates below it, a fallback flat rate if the API does not respond, and a freight rate for the handful of items too big for a parcel. The right mix depends on how varied your products are and what your margins can absorb on the odd expensive parcel. Once rates work, ongoing website maintenance keeps the store's plugins updated and backed up.