How to upload COGS and custom order expenses by CSV?

Use a CSV file to update the saved COGS and Custom Order Expense for individual orders. This is useful when your supplier sends you an invoice or spreadsheet with costs for each order.

This upload changes saved order costs. It does not update the product or variant prices on the Manual COGS page.

Before uploading

  1. Select the store whose orders you want to update. Uploads must be made for one store at a time.
  2. Confirm that the orders are already synced into Profit Calc. This upload updates existing orders; it does not create or import orders.
  3. Check that product COGS are enabled for analytics. On Manual COGS, check Include in Analytics where that control is shown. Open Other COGS Settings and enable Database COGS so supported reports can use saved order costs. If you also use supplier integrations, review their cost-selection settings before enabling overlapping costs.
  4. Check the Manual COGS Currencies and Custom Order Expense Currencies sections in Currency Settings. Enter each amount in the input currency configured for that cost. The CSV has no currency column.
  5. Open CSV COGS Upload and download the template.

Prepare your file

Keep exactly these three column names, with the same spelling and capitalization:

Order COGS Custom Order Expense
1001 12.50 4.25
1002 0 3.00
1003 15.00
  • Order: The Shopify order number. Use one row per order. Do not include both 1001 and #1001; those refer to the same order.
  • COGS: The saved product-cost total for that order.
  • Custom Order Expense: The saved custom expense total for that order.

Use numbers without currency symbols and a decimal point for fractional amounts. Keep all three columns even if you are updating only one cost field. Supply at least one cost value for each order row. Do not add extra columns.

Blank and zero have different meanings. Leave a cost cell blank to keep its existing saved value. Enter 0 to replace that field with zero. In the example above, order 1002 receives zero COGS, while order 1003 keeps its existing Custom Order Expense.

Upload and check the results

  1. Select your CSV on the upload page and choose Upload Your CSV File.
  2. Keep the selected store unchanged while the upload runs. Large files are sent in batches automatically.
  3. Wait for the final result summary and choose Download results to see each row's status and reason.
Status Meaning What to do
Updated The row's update was confirmed. Check a sample in Edit Orders.
Failed The row reported a failure. Read its reason and correct the problem before retrying.
Skipped A blank row was ignored. No update was made for that row.
Unconfirmed Profit Calc did not receive complete confirmation. The row may have updated. Check its saved values before retrying.
Not attempted The row was not processed, for example because the upload stopped. Resolve the stopping issue before uploading those rows again.

A file-validation error, such as a missing column or duplicate order number, must be corrected before the file can be uploaded.

My upload completed, but the report shows another amount

First check the saved amounts on Edit Orders. Then open Order Breakdown and use the information icon beside the order's COGS to inspect the calculation.

The saved value and the final report amount can differ because of refund or edit settings, currency conversion, VAT treatment, supplier cost-selection rules or separately calculated expenses. A confirmed upload means the saved update succeeded; it does not mean every report will display that raw number unchanged.

If you need uploaded costs to remain final through refunds and order edits, contact support through the in-app chat to confirm the appropriate setup for your store. Do not assume that uploading a CSV enables this behavior automatically.

For the saved-cost setting, see How does Database COGS Sync work?.

Still need help? Contact Us Contact Us