Help CenterGitHub
ERPNext
Integration Guide

ERPNext + atoship

Ship your ERPNext Sales Orders without ever leaving ERPNext — compare live rates from all major carriers, buy a label, bulk-ship, and track. The tracking number is written straight back onto the order.

How it works

atoship for ERPNextis a Frappe app that installs into your own ERPNext site. It adds shipping directly to your Sales Orders — the same order you already sell against. atoship is a thin client: all rating, carrier routing, and label generation run on atoship's API, and only real, name-brand carriers are ever shown — never backend aggregators.

1

Submit a Sales Order

Your normal ERPNext selling flow — no changes

2

Ship it with atoship

Compare carrier rates and buy a label

3

Tracking writes back

Tracking number + carrier written onto the Sales Order

The atoship Ship Queue inside ERPNext — every order in one table with live rates, ship-from, weight and one-click Ship

The Ship Queue (/app/atoship-ship) — ship every order from one table.

Live carrier rates on an ERPNext Sales Order — compare and buy a label right in the form

Live rates on a Sales Order — compare and buy right in the form.

Installation

Self-hosted, installed via git. atoship for ERPNext is a Frappe app you install from GitHub with bench— there is no marketplace "connect your store" step. It works on any self-hosted ERPNext, and on Frappe Cloud via a private/custom app.

Step 1 — Install the app

From your bench directory, pull the app from GitHub, install it onto your site, and run migrations:

bench get-app https://github.com/atoship/atoship-for-erpnext
bench --site your-site install-app atoship_shipping
bench --site your-site migrate

Replace your-site with your ERPNext site name. The repo is public and MIT-licensed: https://github.com/atoship/atoship-for-erpnext.

Step 2 — Add your API key

In ERPNext, open Atoship Settings, paste your atoship API key, and click Test Connection. Use a live key (ak_live_…) to buy real labels, or a test key (ak_test_…) to dry-run the flow without spending. You can create a key from your atoship dashboard.

Step 3 — Set your defaults

Still in Atoship Settings, set your default Ship-From Address, a default box / package weight, and your preferred label format. These become the starting point for every order — you can still override the ship-from, weight, and size on any individual shipment.

Where you ship

Once installed, atoship shows up in three places inside ERPNext — pick whichever fits how you work.

1 · The Sales Order form

A Ship with atoshipbutton on the order: fetch live rates, pick one, and buy the label. After it's bought you get Print Label, Update Tracking, and Track Package right there. Rates are cached, so re-opening the order is instant.

2 · The Sales Order list

Select several orders, then Actions → Ship with atoship to bulk-buy their labels in one go. An Open Ship Queue button takes you to the full workbench.

3 · The Ship Queue /app/atoship-ship

A native page that is your full fulfillment workbench: every submitted, unshipped order in one table, each row with its own ship-from, editable weight and size, and an auto-fetched rate you can switch. Toggle signature or insurance, then Shipin one click — or select many and buy them all from a sticky bulk bar. Shipped rows show tracking plus Print and Cancel (void + refund).

What gets synced

ERPNext → atoship

  • Sales Order number & date
  • Customer name & email
  • Shipping address
  • Items with quantity
  • Package weight & box size (per row)
  • Currency & order totals

atoship → ERPNext

  • Tracking number & carrier + service
  • Label PDF (for printing / reprinting)
  • Live tracking status on the order
  • Void + refund state when a label is cancelled

Tracking is written straight back onto the Sales Order, so your team and customer records stay in ERPNext — no separate shipping tool to reconcile.

What you get

Multi-carrier rate compare

Live rates from all major carriers side by side, cheapest first — for a single order or across the queue.

One-click & bulk buy

Buy a single label from the order, or select many and buy them all from the sticky bulk bar in the Ship Queue.

Signature & insurance

Require a delivery signature or add shipment insurance per order — priced and applied at purchase.

Void & refund

Cancel an unused label right from the order or queue — atoship voids it with the carrier and refunds your wallet.

Tracking writeback

The tracking number, carrier, and label are written straight onto the Sales Order — nothing to copy by hand.

Discounted rates, no monthly fee

Discounted carrier rates with no per-label monthly fee — you simply pay for labels from your atoship wallet.

Parcel shipping only. Freight / LTL is out of scope.

Requirements

  • ERPNext v15+ (self-hosted or Frappe Cloud)
  • Shell / bench access to install the app via git
  • An atoship account with a funded wallet
  • An atoship API key (ak_live_…; use ak_test_… to dry-run)
  • A default Ship-From address (US origin)

Troubleshooting

Test Connection fails

Double-check the API key in Atoship Settings — a live key starts with ak_live_and a test key with ak_test_. Your ERPNext server also has to be able to reach atoship's API over HTTPS.

No rates show up for an order

Rates are pulled live, so a missing/invalid shipping address, a missing Ship-From, or a zero weight will return nothing. Set a package weight and size on the row and make sure the ship-from is complete.

Only some carriers appear

atoship only ever shows real, name-brand carriers — not backend aggregators. Which of them return a rate depends on the destination, service, and package; international lanes in particular vary by carrier.

Buy failed / no tracking written

Tracking is written back only after a label is bought successfully. If a purchase fails (for example an insufficient wallet balance), no tracking is written — top up your atoship wallet and retry from the order or Ship Queue.

The app or Ship Queue doesn't appear after install

Make sure install-app atoship_shipping andmigrate both completed, then clear cache and reload (bench --site your-site clear-cache). The Ship Queue lives at /app/atoship-ship.

Install
A Frappe app for ERPNext v15+. Install from git with bench.
bench get-app \
  https://github.com/atoship/atoship-for-erpnext
bench --site your-site \
  install-app atoship_shipping
bench --site your-site migrate
View on GitHub

Public repo · MIT · ERPNext v15+

At a glance
PlatformERPNext v15+
TypeFrappe app (git)
Authatoship API key
Ship fromSales Order · Ship Queue
License
MIT
Need an API key?
Create one in your dashboard, paste it into Atoship Settings, and start shipping.
atoship © 2026