Quick overview
Youtube Video: https://youtu.be/Qi8pijyCnLc
This weekly workflow pulls product inventory and recent sales data from Shopify, identifies in-stock variants with low or no sales activity, and writes a detailed SKU aging report plus a roll-up summary to Google Sheets, then posts a top-level dead stock summary to Slack.
How it works
- Runs every week on a schedule.
- Fetches all Shopify products, expands them into individual variants, and keeps only active variants with inventory on hand.
- Retrieves unit costs for those variants from the Shopify Inventory Items API and applies a fallback cost when no cost is available.
- Pulls Shopify orders from the configured lookback window, aggregates units sold per variant for the 30/60/90-day buckets, and calculates days since last sale.
- Merges sales with current inventory to compute days in stock and capital locked, then filters to SKUs idle for at least the configured threshold.
- Assigns each SKU to an aging tier, calculates a recommended clearance price and projected recovery/write-off risk, and sorts results by locked capital.
- Appends the SKU-level report and weekly summary to Google Sheets and posts a formatted summary (including the top 10 SKUs by locked capital) to a Slack channel.
Setup
- Connect your Shopify OAuth2 credentials and confirm the shop domain and Admin API version values in the workflow configuration.
- Connect Google Sheets using a Service Account, grant it access to the target spreadsheet, and update the spreadsheet ID and sheet tabs used for the SKU report and weekly summary.
- Connect your Slack credential and set the target Slack channel ID in the workflow configuration.
- Review and adjust the thresholds (lookback days, bucket cutoffs, discounts, sell-through assumptions, and cost fallback ratio) to match your inventory policy before activating the workflow.