Ensure shipping is applied only once per order when logging WooCommerce orders into Google Sheets using Make, even when an order has multiple products.
What is the problem?
I’m using an iterator in create one row per product in Google Sheets. So if one person ordered three items, each item gets a row with their dedicated pricing.
But shipping is a flat charge per order. Since each product creates a new row, the shipping value gets added to the price of every item.
Example
Product A = price + Shipping charge
Product B = price + Shipping charge
Product C = price + Shipping charge
Instead of:
Product A = price + Shipping charge
Product B = price
Product C = price
This inflates the total shipping amount and messes up overall calculations.
What have you tried so far?
Workflow: Woocommerce > Iterator (To seperate line items) > Google Sheets
The formula that I applied is shown in the screenshot. I dont see shipping costs mentioned in the iterator so I pulled them from the Woocommerce module.
Use the IF function. If bundle order position = 1, use product cost plus shipping; otherwise, use only the product price. So always 1st position will be product+ shipping.
Add shipping as a separate position in Google Sheets. I can say this as someone with 8+ years of experience in eCommerce - this is the only correct approach if you want to have accurate data. Trust me. You will be able to do much more with your data when shipping is stored separately.
Thank you for the advice. I agree with the second point. However, we have about 22 columns which is already hard to manage and we cannot reduce any of them. Adding a shipping column will only increase the workflow and we dont really need any kind of data on the shipping cost except the amount we charged, be it seperately or totaled into the product price. The EOD goal is to achieve the total number that we got paid for xyz order.
Also the formula didnt seem to work. This is what I added. I hop I am doing it right? (Non-IT person here)
I mean a separate position so row, not a column Sorry if that was not clear.
So in most cases, you don’t have to do anything with your columns.
Let’s say you have a basic table like this - you simply add a new row for shipping:
Order ID
Product
Price
12345
Product A
9.99
12345
Product B
4.99
12345
Shipping
5.99
9876
Product A
9.99
With this approach, you know precisely how much you earn per product.
Don’t worry! This error is very common.
You used an unencoded =, and Make does not treat it as an operator.
Try changing it to {{=}} - it should turn green, and your function should work.