A standalone integration that connects ERPNext with Unicommerce Uniware.
Unicommerce Uniware is a multichannel order and inventory platform, giving sellers a single console for every marketplace they sell on, their own storefront, and the warehouses that serve them. Running it alongside ERPNext means the same catalogue, inventory, and orders are maintained in two places.
Unicommerce for ERPNext removes that duplication. It brings catalogue, inventory, order, invoice, fulfillment, cancellation, and return workflows into ERPNext, and publishes catalogue and stock updates back to every connected channel. Unicommerce identifiers are preserved on the relevant transactions, so records in both systems remain traceable to one another.
| Workflow | Direction | What the app does |
|---|---|---|
| Item catalogue | ERPNext → Unicommerce | Uploads selected Items as SKUs and updates existing ones. Items missing during an order import are created in ERPNext. |
| Inventory | ERPNext → Unicommerce | Pushes whole-number stock from mapped Warehouses to Unicommerce facilities. |
| Sales orders | Unicommerce → ERPNext | Imports new and date-range historical orders from enabled channels, creating the customers and items they need. |
| Invoices and fulfillment | Two-way | Imports completed invoices, or generates invoices and shipping labels from ERPNext. |
| Delivery notes | Unicommerce → ERPNext | Optionally creates Delivery Notes when shipments are processed. |
| Status, cancellations, returns | Unicommerce → ERPNext | Updates order and package status, handles full and partial cancellations, and drafts Credit Notes for RTO and customer returns. |
| Shipment manifests | ERPNext → Unicommerce | Creates and closes manifests, marks packages dispatched, and attaches the manifest PDF. |
| Goods receipt (GRN) | ERPNext → Unicommerce | Optionally uploads Material Transfer Stock Entries through the Auto GRN API, with batch attributes. |
Synchronization runs as background jobs. Every request, failure, and retry is recorded in Ecommerce Integration Log.
-
Frappe Framework: A full-stack web application framework written in Python and JavaScript, providing the database layer, background job queue, and REST API this integration runs on.
-
ERPNext: The accounting, stock, and selling modules that Unicommerce orders, invoices, and shipments are written into.
-
Ecommerce Core: The shared item mapping, integration log, and inventory utilities used across Aerele's ecommerce integrations.
| Component | Version |
|---|---|
| Python | 3.14 |
| Frappe Framework | v16 to v17 (develop) |
| ERPNext | v16 to v17 (develop) |
| Ecommerce Core | develop |
From an existing bench with Frappe Framework and ERPNext:
bench get-app ecommerce_core https://github.com/aerele/ecommerce-core.git --branch develop
bench get-app unicommerce https://github.com/aerele/unicommerce.git --branch develop
bench --site <site-name> install-app ecommerce_core
bench --site <site-name> install-app unicommerceInstall ecommerce_core first, as unicommerce depends on it.
Complete the ERPNext setup wizard and confirm that the scheduler and background workers are running, then work through the Unicommerce workspace in order.
1. Connect
In Unicommerce Settings, select Enable Unicommerce and enter your
Unicommerce site hostname without https://, along with your username, password,
and client ID. Set the default Customer Group and the Sales Order and Sales
Invoice naming series, then save. The access token, refresh token, and expiry are
populated on a successful connection. If they are not, verify the credentials and
ask Unicommerce whether your server IP requires allowlisting.
2. Map warehouses
Add one Warehouse Mapping row per Unicommerce facility, mapping the facility
code to an ERPNext Warehouse and setting the Return Warehouse used for credit
notes along with the Company and Dispatch Addresses. Mappings must be one to one.
Quantities are sent as whole numbers to the DEFAULT shelf.
3. Add channels
Create a Unicommerce Channel for each channel ID you want to import, with its Company, Warehouse, Customer Group, Cost Center, tax and charge accounts, payment settings, and naming series. Only enabled channels are imported, so enable a channel once its accounting defaults are complete.
4. Enable the workflows you need
| To do this | Enable |
|---|---|
| Upload items | Upload new items to Unicommerce, a Default Item Group, and Sync Item with Unicommerce on each Item |
| Push stock | Inventory sync, with a frequency and enabled warehouse mappings |
| Let Unicommerce fulfill | Only Sync Completed Orders |
| Fulfill from ERPNext | Only Sync Completed Orders left disabled, so orders arrive unbilled. Invoices and labels are then generated from a Sales Order or Pick List, and dispatched on a Shipment Manifest. |
| Import Delivery Notes | Import Delivery Notes from Unicommerce on Shipment |
| Upload GRNs | Use Stock Entry for GRN, the vendor code, and each batch group's attributes |
Field mappings and illustrated workflows are documented in the integration guide.
- Last Order Sync and Last Inventory Sync in Unicommerce Settings confirm that the scheduler is active.
- Ecommerce Integration Log holds request payloads, failures, and retries.
- Orders, inventory, and delivery notes are checked every five minutes. Item uploads and status updates run hourly. Both the scheduler and the long worker queue must be running.
- Do not change an ERPNext Item Code once it has been mapped, as Unicommerce SKU codes are immutable.
bench --site <site-name> set-config developer_mode 1
bench --site <site-name> migrate
bench --site <site-name> run-tests --app unicommerceRun the repository checks before opening a pull request:
cd apps/unicommerce
pre-commit install
pre-commit run --all-filesIssues and pull requests are welcome. Please keep pull requests focused, add
tests for changed behaviour, and target the develop branch.
GNU General Public License v3.0


