Features · Operations
Run the store from one admin, with every change on the record
Orders, stock, shipping, refunds and staff, handled from the admin compiled into the GoCommerce binary. Every stock movement lands in a ledger that reconciles, and every change says who made it.
- 12 carrier options, four of them Indian
- 11 kinds of stock movement, all on a ledger
- 15 health checks in gocommerce doctor
Orders
-
Order timeline
Each order has a timeline of its events and changes, internal notes, and a log of every email and SMS sent — with a button to resend.
core/orders.go · Timeline -
Order edits
Add, remove or change lines; stock moves with them and the balance owed either way is reported. Contact details, address and shipments can be corrected too. Line edits stop once anything has shipped, been refunded or returned.
PUT /api/admin/orders/{id}/lines -
Unpaid orders cancel themselves
Every five minutes, orders still unpaid past their window (24 hours by default) are cancelled and their stock released. Staff can run the sweep on demand.
core/orders.go · SweepUnpaid -
ReturnsPartial
Record returns per line on shipped orders, capped at what shipped, with a restock decision and location for each; refunds are a separate step. Missing: exchange orders and customer-requested returns.
core/returns.go -
Order importPartial
Load order history from CSV in the store’s own layout or Shopify’s export, with a dry run. It never moves stock and fires events only when asked. Missing: mapping columns from any file.
core/transfer.go · ImportOrders
Stock and shipping
-
Stock across locations
Stock is held per variant per location, and one order can draw from several. Transfers move stock between locations; a picking sheet groups work by SKU and location.
core/inventory.go · core/locations.go -
A ledger that reconciles
Every stock change — reserve, commit, release, restock, transfer and more — is written to an append-only ledger that gocommerce doctor checks against the balances.
core/movements.go -
Shipping in several parcels
An order ships in any number of parcels by line and quantity, each through its own carrier: manual, Shiprocket, Delhivery, NimbusPost, India Post, Shippo, ShipStation, Easyship, Shippit, USPS, Onfleet or Veeqo.
core/fulfillment.go · ext/fulfill-*/ -
Low-stock report and stock import
A report of variants running low, and CSV stock import that also reads Shopify’s inventory file.
GET /api/admin/inventory/low-stock -
BackordersPartial
A variant can keep selling past zero and ship in parts as stock arrives. Missing: a separate backorder status and partial payment.
core/inventory.go
Money
-
Refunds through the gatewayPartial
Staff refund any amount up to what remains, through the gateway that took the payment, each recorded with the gateway’s id. Missing: cash-on-delivery refunds through the engine, and RevenueCat refunds.
core/payments.go · Refund -
Record payments by handPartial
Mark an order paid with a reference for cash or bank transfer, or record a failed payment. Missing: manual refund records.
POST /api/admin/orders/{id}/mark-paid -
Payouts and reports
Collected, refunded and net per payment method; sales and top products; saved custom SQL reports that run read-only.
core/reports_payouts.go · core/custom_reports.go
Customers and staff
-
Customer groups and price lists
Group customers and give each group its own prices, with dates, priority, channel and quantity breaks.
core/pricing.go -
Roles and rightsPartial
Four roles — owner, manager, staff, vendor — whose rights and names you can change, over 48 core rights plus those modules add; invitations and session revocation. Missing: creating roles beyond the four.
core/rights.go · core/roles.go -
Scoped API keys
Keys carry a role and pass the same rights checks as a person. Only owners mint them; revoked keys stay on the record.
core/api_keys.go -
Audit trail
Who changed what, with before and after values, and a history for products, categories, discounts, tax rates and locations.
core/audit.go -
Notifications you control
Edit every email and SMS template in the admin; every message is logged and can be resent. Email through Resend or SendGrid, SMS through Twilio or MSG91.
core/notify_templates.go
Not in GoCommerce yet
What a larger operation may expect and will not find in GoCommerce today.
- Order approvalsNo approval step before an order is accepted.
- Draft ordersAn order placed by staff is a real order at once.
- Per-channel permissionsStaff rights apply to the whole store.
- Manual price overridesStaff cannot set one line’s price by hand.
- Authorise-then-captureGateway payments settle on the provider’s success webhook.
- Gift cards and store creditNo balances of any kind.
- Single sign-onStaff sign in with email and password.
- A translated adminThe admin is in English; storefront content can be translated.
- Click-and-collectNo pickup option at checkout.
FAQ
Questions about operations
Can staff edit an order after it is placed?
Yes, until anything has shipped, been refunded or returned: lines can be added, removed or changed, stock moves to match, and the admin reports what is owed either way. Contact details and the address can be corrected at any time.
How do I know stock figures are right?
Every movement is written to a ledger, and gocommerce doctor checks the ledger against the balances — from the command line, the admin or the API. A mismatch is reported, not hidden.
Which Indian carriers are supported?
Shiprocket, Delhivery, NimbusPost and India Post, each a module. SMS goes through MSG91 using pre-registered DLT templates, as India requires.
Can different staff see different things?
By role: owner, manager, staff and vendor, each with rights you can adjust. A vendor login sees only that seller’s records. Splitting access by channel is not built yet.
Read the code behind every tile
Each file named on this page is in the GoCommerce repository, MIT licensed. Run it and check.