AUTOXSPARE Docs
API reference

EasyParcel

The fulfillment provider, and what is still needed to switch it on.

apps/backend/src/modules/easyparcel/ — registered as a provider of the fulfillment module. Provider identifier: easyparcel.

Built but not active. EASYPARCEL_API_KEY is unset, so the shop falls back to a flat shipping option. Nothing below is running in production yet.

The API it targets

The Individual API — form-encoded POSTs to a single endpoint with the action in the query string and the key in the body:

ActionPurpose
EPRateCheckingBulkQuote couriers for a parcel
EPSubmitOrderBulkBook a shipment
EPPayOrderBulkPay for it from account credit

Requests are application/x-www-form-urlencoded, and the API key goes in the body as api — not as a header.

There is a newer portal at developer.easyparcel.com which is an OAuth API, not this one. Which is available depends on the account type, and this module targets the Individual API. Confirm which the AUTOXSPARE account has before wiring credentials.

Credit, not invoicing

EasyParcel works from pre-funded credit. EPPayOrderBulk fails when the balance is short, and it fails at booking time — after the customer has already paid. Worth monitoring before busy periods.

Warehouse

Origin is Jitra, Kedah, set up by apps/backend/src/scripts/setup-shipping-my.ts, with a service zone covering all of Malaysia.

Shipping options return an empty list — even with a valid cart and address — unless the sales channel is linked to the stock location via linkSalesChannelsToStockLocationWorkflow. This is the single most confusing failure in the shipping setup, because nothing errors; the options are just absent. The setup script is step-wise idempotent because the first version bailed early and left the configuration half-built.

Weights

Rates are priced by weight, so the catalogue's weight data is part of this integration working:

  • 4,404 variants have weights imported from Shopify
  • 41 have none
  • 6 look wrong by a decimal — an alternator recorded at 290 kg is the clearest case

Fix both before switching on live rates, or those products will quote absurd delivery prices.

Switching it on

  1. Confirm which EasyParcel API the account has.
  2. Set EASYPARCEL_API_KEY and EASYPARCEL_ENV on the Railway service.
  3. Redeploy.
  4. Confirm the Gateway mode widget shows Shipping as LIVE rather than OFF.
  5. Place a test order to a real address and check the quoted rate is sane.

On this page