How it works
Follow these 4 simple steps to start automatically updating Shopify inventory from CSV files on your FTP server
Fetch CSV File
Fetch CSV File
Loop
Loop
Custom Code (SKU Lookup)
Custom Code (SKU Lookup)
Set Inventory Level
Set Inventory Level
Make it your own
Customize this workflow even further:
Send completion reports
Add steps after the loop ends to count successful updates, list any SKUs that weren't found, and send a summary email or Slack message showing how many products were updated and any errors encountered.
Archive processed files
Enable the "move_file" option in the FTP trigger settings to automatically move CSV files to an "archive" or "processed" folder after they're imported, preventing duplicate processing and maintaining a history of imports.
Handle inventory adjustments instead of sets
Modify the workflow to retrieve current inventory levels first, calculate the difference between CSV and current quantity, and use "adjust" instead of "set" to create an audit trail of inventory changes rather than absolute updates.
Support multiple locations
Add a "Location" column to your CSV and modify the custom code to map location names to IDs, enabling a single CSV to update inventory across multiple warehouses or retail locations.
Frequently asked questions
What happens if a SKU in the CSV doesn't exist in Shopify?
The custom code step logs that the SKU wasn't found and stops processing that row without updating anything. The workflow continues to the next CSV row. Check your MESA logs to see which SKUs failed to match if you suspect missing products.
Can I use this to update inventory at multiple locations?
This workflow updates inventory at a single location specified in the "Set Inventory Level" step. To update multiple locations, either run separate workflows configured for each location, or add a "Location" column to your CSV and modify the logic to use that value instead of a hardcoded location ID.
Does this workflow adjust inventory or set it to an absolute value?
The workflow uses Shopify's "set" endpoint, which sets inventory to the exact quantity from the CSV regardless of the current value. If your CSV says "10" and Shopify currently shows "15," it will change to "10." This ensures your CSV is always the source of truth but doesn't create an adjustment audit trail.
What is a template?
MESA templates are fully pre-configured workflows built and vetted by Shopify Experts. Unlike competitor templates that provide basic scaffolds requiring extensive setup, MESA templates come with all data variables properly mapped, required fields configured, and steps ready to activate. You can turn them on immediately and start automating.
Can I customize a template?
Absolutely! While our templates work out-of-the-box, every step can be personalized to match your exact business requirements. Add conditional logic, integrate additional apps, or build more sophisticated workflows. MESA's templates provide a solid foundation that you can expand as needed.
Are templates free?
Yes! Our entire library of expert-built, production-ready templates is free to use. Unlike platforms that charge for premium templates or provide only basic scaffolds, MESA gives you access to hundreds of fully-configured, vetted workflows at no additional cost.
Ready to start automatically updating Shopify inventory from CSV files on your FTP server?
Join thousands who've automated their work and saved an average of 3.5 hours every week.
Start with this template — It's free7-day free trial • 13 min setup • Cancel anytime