Orders5 min read
Sales per Vendor From Shopify Orders: A Monthly Supplier Statement
Turn a month of Shopify orders into a sales statement for one vendor or SKU: the Product sales preset, the Line item filter, the right date range and a pivot.
In this guide
If you sell other brands’ products on consignment, pay a maker a share of each sale, or simply want to send a supplier the numbers for their range, you need the same thing every month: every unit of their products you sold, with the price it sold for, and nothing else.
Shopify’s order export gives you whole orders. A customer who bought one item from Vendor A and two from Vendor B shows up as one order with three lines, and someone has to delete the lines that do not belong to the statement. This guide shows how to get a clean, per-vendor (or per-SKU) list straight from your orders with Columna, and how to turn it into a statement.
The building block: one row per line item
Open Templates in Columna: Order Export & Sheets, go to the Accounting tab and find the Product sales preset. Its description says what it is for: “Quantity and revenue per SKU and vendor, to see what sells.”
The preset is set to One row per line item and has these columns:
| Column | What it holds |
|---|---|
| Order | The Shopify order name, such as #1042 |
| Created at | When the order was placed |
| SKU | The variant’s SKU |
| Line item | The product title on the order |
| Vendor | The product’s vendor |
| Quantity | Units ordered on that line |
| Unit price | The original unit price, before discounts |
| Discounted total | What the line sold for after line discounts |
| Currency | The order currency |
Click Customize to make your own copy. That is where you shape it into the statement your vendor expects.
Shape the template for a statement
A few changes make the file easier to send as is.
Add Variant, if your vendor thinks in sizes or colours. The “Line item” column is the product title; Variant holds “Large / Blue” and the like. Use Add column and search for it.
Add Current quantity if refunds matter to the deal. Quantity is what the customer ordered. Current quantity is what is left on the order after items were removed or refunded. If you only pay the vendor for units that were kept, put Current quantity next to Quantity, or instead of it.
Rename the headers. Every column can be renamed, so “Discounted total” can become “Sold for” and “Line item” can become “Product”. Drag the columns into the order your vendor’s sheet uses.
Choose a file name. The File name field accepts tokens, and leaving it empty uses the default pattern. A name that includes the vendor and the month saves you renaming files later.
Consider One row per unit. If the vendor wants one row per physical item, for example to match against their own stock list, switch on One row per unit and a line with quantity 3 becomes three rows.
Save the template with a name that says what it is, such as “Vendor statement”.
Filter to one vendor or one SKU
Now go to the Orders page and pick your template. Three filters do the work.
- Date range. Choose the month you are reporting. The presets cover Last 7 days, Last 30 days, Last 90 days and Last 12 months, and you can set a start and end date for an exact calendar month.
- Status. For a statement you usually want orders that were paid. Under Status, choose the payment statuses that count for your agreement, for example Paid and Partially refunded, and leave out Payment pending or Expired ones.
- Line item filter. Open More filters, set Line item filter to Vendor, SKU or Product title, and type the value.
The Line item filter is what makes the statement clean. As the app explains under the field: “Only matching line items are exported and orders without a match are skipped.” In the example above, filtering on Vendor A exports only Vendor A’s line from that mixed order, and orders with nothing from Vendor A do not appear at all.
The match is exact, ignoring upper and lower case and spaces around the value. So “Hill Farm” matches a vendor stored as “hill farm”, but not “Hill Farm Dairy”. Check the exact vendor name on one of the products in Shopify admin before you rely on the filter.
Two more things to know:
- The Line item filter is ignored when you export selected orders. If you ticked some orders on the page, clear the selection to export the filtered list.
- Tagged with and Not tagged with are in the same menu. If wholesale or staff orders carry a tag, put it in Not tagged with to keep them out of the statement.
Then click Export, choose CSV or Excel and export.
From the file to a statement
The export is one row per line (or per unit) for that vendor in that month. Most statements need two more numbers: the totals, and your share.
In Excel or Google Sheets:
- Insert a pivot table with SKU (or Line item and Variant) as rows, and the sum of Quantity and the sum of Discounted total as values. That is units and revenue per product.
- Add a column for your agreement: for example, the vendor’s share as a percentage of Discounted total. Keep the formula in the sheet so the vendor can see how it was worked out.
- Keep the line-level tab in the same file. When a vendor asks about a particular sale, the order number is right there.
If you need one statement per vendor, run the export once per vendor with the filter changed. The saved template stays the same, so each run takes a minute.
Things to check before you send it
- Taxes and shipping are not on these lines. Discounted total is the line’s price after line discounts. Order-level shipping and taxes are not split per line in this preset; if your agreement includes them, add the relevant columns and decide how to share them.
- Discounts. Unit price is the price before discounts and Discounted total is the line after the discounts Shopify applied to it. Compare one or two discounted orders with the order page in Shopify admin to make sure the figure you pay out on is the one your agreement means.
- Currencies. The Currency column shows the order currency. If you sell in several currencies, sort or pivot by it first.
- Vendor spellings. Because the match is exact, a vendor typed two ways on different products (“Hill Farm” and “Hill-Farm”) needs two exports. Fixing the vendor field on the products in Shopify admin avoids that next month.
Make it a monthly habit
Because the template, the columns and the headers are saved in the app, the monthly routine is short: set last month’s dates, set the vendor, export. If you want the same file in a Google Sheet or on a schedule instead of a download, the Columna app page lists the delivery options and which plan they need.
The result is a statement built from your actual orders, line by line, that you and your vendor can both trace back to Shopify.