Shipping charge duplicating across rows when using iterator (WooCommerce → Make → Google Sheets)

:bullseye: What is your goal?

Ensure shipping is applied only once per order when logging WooCommerce orders into Google Sheets using Make, even when an order has multiple products.

:thinking: 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.

:test_tube: 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.

:camera_with_flash: Screenshots: scenario setup, module configuration, errors

Hello,

You have at least two approaches:

  1. 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.

  2. 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.

Have a nice day,
Michal

I agree with michal, you definitely want the shipping cost to be it’s own column in Google Sheets, then let Google sheets handle the math.

Is shipping cost always going to be a flat rate? or does it change based on product/destination?

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)

Hello,

I mean a separate position so row, not a column :slight_smile: 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.

Have a nice day,
Michal

Hello, thank you, this worked like wonders! I got what I wanted :slight_smile:

Also, new row is not advisable for us due to reasons I wont bore you with :sweat_smile:

Thanks again!

Thanks for the update!

Awesome it solved your issue!

Understand :slight_smile: Have a nice day!