From ChatGPT (note sometimes it gets it wrong - hallunicates)
That’s a perfect and insightful question — and it fits a very interesting niche business model that’s often called “sales agency” or “commission-based representation.”
ERPNext can handle your case quite well, but it needs a few custom configurations because, by default, ERPNext assumes you are the seller of goods, not just an intermediary. Let’s break it down carefully.
Your Business Model
You:
-
Don’t own or deliver products.
-
Don’t invoice end customers.
-
Act as a sales intermediary.
-
Earn commissions from vendors based on actual sales.
So ERPNext must track:
-
Vendors (the companies you represent)
-
Their buyers (as “buyers,” not your real customers)
-
Orders and deliveries (for tracking, not accounting)
-
Commission calculations and your service invoices
How ERPNext Can Be Configured
1. Represented Vendors → Your “Customers”
Treat each vendor (the brand or manufacturer you represent) as your Customer in ERPNext.
Why? Because you ultimately invoice them for your commission.
You can even create a Customer Group = “Represented Vendors” to keep them organized.
2. Buyers → “End Customers” Linked to Vendors
Treat the actual product buyers as Contacts or Linked Buyers under each represented vendor.
You have several options:
This way, you can track who bought what, without them being true customers in your accounting.
3. Products → Vendor Products
You can import each vendor’s catalog into ERPNext:
-
Create Item Group per Vendor (e.g. “Sony Products,” “Bosch Tools”).
-
You don’t need to manage stock — just uncheck “Maintain Stock” on each item.
That lets you record orders without inventory implications.
4. Orders and Deliveries → Track as “Sales Orders” & “Delivery Notes”
You can record vendor-side transactions purely for tracking:
-
Sales Order: Represents the buyer’s order to the vendor.
-
Delivery Note / Invoice (Vendor’s): You can record the vendor’s invoice data (invoice no., amount, buyer, etc.) in ERPNext via a custom doctype like “Vendor Sale Record.”
That document will be the base for your commission calculation.
5. Commission Calculation
ERPNext already supports Sales Partner Commission, but that’s usually from your sales invoices.
In your case, you need a reverse version:
- You’re the Sales Partner, and the vendor’s sales define your commission.
So:
-
You can use the Sales Partner doctype to define commission rates (by item, quantity, or value).
-
Then create a custom script or report that:
-
Reads vendor invoice data (from your custom doctype),
-
Calculates your commission,
-
Creates a Sales Invoice (your invoice to the vendor).
This is straightforward with a Server Script or Custom App.
6. Your Commission Invoice
Finally, you issue a Sales Invoice in ERPNext to the represented vendor:
-
Item: “Sales Commission for [Month/Buyer/Product]”
-
Based on your calculated totals
-
Standard accounting applies here (you can track income by vendor)
Example Flow
| Step |
Real-world Action |
ERPNext Equivalent |
| Buyer orders product from Vendor |
Record as Sales Order (tracking only) |
“Sales Order” with custom field “Buyer” |
| Vendor delivers goods |
Record vendor’s Delivery Note or Invoice |
Custom Doctype “Vendor Invoice” |
| Commission due to you |
Commission Calculation Report |
Custom script/report |
| You invoice vendor |
ERPNext Sales Invoice |
Normal invoice |
Optional Automation
-
Custom Script: Automatically generate commission invoices monthly.
-
Report: Total vendor sales, total commissions due.
-
Dashboard: Sales by represented vendor, top buyers, commission trends.
Summary
| Feature |
ERPNext Support |
Notes |
| Vendor management |
 |
Use as “Customers” |
| Buyer tracking |
 |
As Contacts or custom doctype |
| Product catalog |
 |
No stock needed |
| Order/delivery tracking |
 |
Non-accounting entries |
| Commission calculation |
Custom script/report |
Straightforward to automate |
| Commission invoicing |
 |
Standard ERPNext feature |
Bottom Line
ERPNext can handle your entire process cleanly with light customization, without hacking the core.
If you want, I can show you a practical prototype configuration — step-by-step — that fits exactly your case (e.g., doctypes, custom fields, and naming setup).
Would you like me to outline that next?