Hi everyone,
I’m building a Make scenario for a Shopify local delivery MVP.
Context:
We sell wine boxes through Shopify, but delivery is handled directly by us to selected villas/accommodations in Piemonte, Italy.
In the Shopify cart, we save delivery information as order/cart attributes. When the order is created, these attributes arrive in Shopify order details.
The attributes include:
- wineholiday_order_type
- villa_name
- villa_id
- partner_id
- partner_name
- delivery_area
- full_address
- accommodation_address
- checkout_address1
- checkout_city
- checkout_postcode
- checkout_province
- checkout_country
- delivery_date
- delivery_window
- customer_phone
Operational rule:
- AREA_A = AM1 — 10:00–11:30
- AREA_B = AM2 — 11:30–13:00
- each area/window/date has max 3 delivery slots
I need Make to do this when a Shopify order is created:
- Watch new Shopify orders.
- Read the Shopify order attributes / note_attributes.
- Extract villa_id, partner_id, delivery_area, delivery_date and delivery_window.
- Normalize delivery_window into AM1 or AM2.
- Build a slot_key like:
YYYY-MM-DD|AREA_A|AM1 - Search a Google Sheet tab called Slot_Availability for that slot_key.
- If the slot exists and available slots are not full, write the order into Orders_Log.
- If required fields are missing, area/window is inconsistent, or the slot is full, write a row into Errors_Log and optionally send an internal alert.
- Ideally update the used_slots count in Slot_Availability.
My Google Sheet has these tabs:
- Orders_Log
- Slot_Availability
- Errors_Log
- Config
Questions:
- What is the best Make module sequence for this scenario?
- Should I use Shopify “Watch Orders” or another Shopify trigger?
- In Make, are Shopify order attributes available as a mapped array? What is the best way to extract each attribute by key?
- For checking slot capacity, is Google Sheets “Search Rows” + “Update Row” reliable enough for a small MVP?
- Is there a better way to avoid race conditions if two orders arrive for the same slot close together?
- Would you recommend storing the normalized fields directly into Google Sheets as separate columns rather than keeping the raw attributes JSON?
I’m trying to keep the MVP simple and reliable before building anything more complex.
Thank you!