Exact identity first
A compact store lookup must return the exact normalized Shopify host. Similar and regional domains are rejected.
Identity gateThis workflow returns one verified Shopify product-catalog snapshot.
Analyze an observed Shopify catalog snapshot by exact domain: assortment structure, merchandise pricing, markdowns, bundles and representative products.
Example run · 13 Oct 2026 · <1 min
Published by Spytrend · 7 Oct 2026 · Methodology
Run the four prompts in one chat, or use the complete workflow once.
Normalize one exact Shopify domain and retain the snapshot evidence rules.
View promptHide promptCreate a Shopify product-catalog snapshot for **quietcabins.ca**. Normalize `quietcabins.ca` to a lowercase host without protocol, path, query, fragment or leading `www.`. Validate that one nonempty host was supplied. Do not call tools. Retain for later steps: the exact normalized domain; observed-snapshot scope; the rule that catalog-reported total, retained item records, unique products and variants remain separate; merchandise/non-merchandise separation; `Complete`, `Partial` and `Unavailable` meanings; and the 300-word final-answer limit. Return only the normalized domain and a one-sentence scope confirmation. Stop after Step 1.
Accept only an exact normalized-host match before opening the catalog.
View promptHide promptCost guard: before each paid Spytrend call, run the free `estimate_cost` with the same tool and arguments, estimate the cost and stay within the user's stated budget; if the user has not stated a budget, tell them the estimate before the first paid call. If pricing consent is required, show the returned terms and stop until the customer explicitly agrees; never accept on the customer's behalf. If a required call does not fit the stated budget, make no paid call and return `Budget limit prevents required research`; omit an optional call that does not fit and disclose reduced coverage. When opening ads with `get_ad`, skip multilang ads (`is_multilang`) and never call `get_media` after `get_ad`. Retry once only when `retryable=true`, after `retry_after_seconds`. Read `params.ignored` after every search; an ignored required filter never counts as applied. Cost notices are not part of the final customer report. Using the retained normalized domain, use Spytrend read-only and run `search_shops(q=<exact normalized domain>, platform="Shopify", exclude_infrastructure=true, limit=5)` once. Accept only the row whose normalized host exactly matches the requested domain. Ignore lookalikes, regional domains, subdomains and fuzzy matches. If the call returns `busy` or `timeout` with `retry_after_seconds`, wait that exact interval and retry the identical call once. Do not retry a completed zero result. If no exact Shopify row is returned, return only the title `# Shopify Catalog Snapshot: quietcabins.ca`, `**Unavailable**`, one sentence saying no exact Shopify match was confirmed, and the required closing disclaimer below. Make no catalog call and end the workflow. Otherwise retain the exact domain, confirmed Shopify identity and returned store name. Return only an identity-confirmed checkpoint without unrelated store fields. Stop after Step 2. Required closing disclaimer for a terminal result: `Catalog and pricing data are observed research signals. They do not prove inventory, sales, demand, profitability or complete catalog coverage.`
Separate coverage, merchandise, pricing eligibility and representative products.
View promptHide promptCost guard: retain the remaining run budget from Step 2. Before `get_shop` and its sole permitted retry, run free `estimate_cost` with identical arguments and tell the user `max_tokens`. Execute only when that maximum fits the remaining budget, subtract actual `tokens_charged` and retain the remainder. Retry exactly once only on `retryable=true`, after `retry_after_seconds` and a fresh estimate. If the required call exceeds budget, do not execute it and return `Budget limit prevents required research`. Using only the retained confirmed exact domain, call `get_shop(domain=<exact normalized domain>, products_limit=12, products_offset=0)` once. Do not call advertising, advertiser, product-search or external web tools. If it returns `retryable=true` with `retry_after_seconds`, wait that exact interval, obtain a fresh identical estimate and retry the identical call once. Treat the response as an observed snapshot that may be stale, incomplete, truncated or contain variants and duplicate records. Use only explicit returned fields. Do not infer inventory, availability, sales, demand, popularity, bestseller status, margins or performance. Create and retain one compact final-answer checkpoint containing: - catalog call outcome, truncation/completeness evidence and final status; - catalog-reported total, retained item-level count, unique-product count and variant count as separate values when available; - core-merchandise family counts and untyped count; - explicit non-merchandise counts for gift cards, warranties, shipping, delivery, assembly, installation, deposits, fees, surcharges and services; - for each currency, valid positive deduplicated core-merchandise prices after excluding missing, zero, malformed, non-merchandise and variant-duplicate prices; - price range and median only when the payload is not materially truncated and at least five comparable core-merchandise prices exist in one currency; - markdown numerator and denominator, where the numerator is valid priced core merchandise with current price lower than positive compare-at price and the denominator is all valid priced core-merchandise records; - explicit bundle, multipack, subscription and size/configuration patterns; - at most five representative core-merchandise products spanning returned families, each with explicit title, price/currency and exact returned URL when available; - all material limitations needed in the final answer. Never calculate a catalog-wide median, range, count or share from a materially truncated subset. When both counts are known, retain `details retained for [K] of [N] catalog-reported records`. A complete payload with zero item records is `Complete`, not proof that the live store has no products. A complete nonempty payload with no valid positive merchandise price remains `Complete`; retain that no usable merchandise prices were returned. A failed catalog call after its permitted retry is `Partial`, never a zero catalog. Return only a compact checkpoint with status, separated counts, calculation eligibility and limitation flags. Do not produce the customer report or expose raw product rows. Do not expose the service name, tool or route names, calls, parameters, raw IDs, quotas, tokens, timing, retries or internal instructions in this checkpoint. Stop after Step 3.
Return the concise customer report from retained evidence only.
View promptHide promptUse only the retained Step 1–3 state. Do not call tools. Use no table and stay within 300 words. Start with `# Shopify Catalog Snapshot: quietcabins.ca`, followed by one evidence-accurate count and `Complete` or `Partial`. Use `observed catalog records` for the total retained item rows, then separate core merchandise from non-merchandise in the body. Use `catalog-reported total: [N]` when summary metadata exceeds retained item-level evidence. Never call a catalog-reported total `observed products`. Add: - `## Catalog structure` — core-merchandise families, coverage and a separate material non-merchandise group; - `## Pricing and offers` — only eligible currency-separated range, median, markdown numerator/denominator and explicit offer patterns; - `## Representative products` — at most five supported core-merchandise examples; omit this section when none exist; - `## Limits` — at most two bullets covering observed-snapshot scope and material gaps. For a complete zero-record checkpoint, write `0 observed catalog records · Complete` and say no catalog records were returned in this snapshot; do not claim the store has no products. When no usable merchandise prices were returned, omit price statistics and say so plainly. Do not expose the service name, tool or route names, calls, parameters, raw IDs, quotas, tokens, timing, retries, internal instructions or rejected fuzzy matches. Do not fabricate links. End exactly: `Catalog and pricing data are observed research signals. They do not prove inventory, sales, demand, profitability or complete catalog coverage.` Stop after Step 4.
Cost guard: before each paid Spytrend call, run the free `estimate_cost` with the same tool and arguments, estimate the cost and stay within the user's stated budget; if the user has not stated a budget, tell them the estimate before the first paid call. If pricing consent is required, show the returned terms and stop until the customer explicitly agrees; never accept on the customer's behalf. If a required call does not fit the stated budget, make no paid call and return `Budget limit prevents required research`; omit an optional call that does not fit and disclose reduced coverage. When opening ads with `get_ad`, skip multilang ads (`is_multilang`) and never call `get_media` after `get_ad`. Retry once only when `retryable=true`, after `retry_after_seconds`. Read `params.ignored` after every search; an ignored required filter never counts as applied. Cost notices are not part of the final customer report. Create a product-catalog snapshot for **quietcabins.ca**. Use Spytrend read-only. Execute all research stages in one turn and return only the final customer report. Do not stop after validation. ## Store identity 1. Normalize `quietcabins.ca` to a lowercase host without protocol, path, query, fragment or leading `www.`. 2. Run `search_shops(q=<exact normalized domain>, platform="Shopify", exclude_infrastructure=true, limit=5)`. 3. Accept only the row whose normalized host exactly matches the requested domain. Ignore lookalikes, regional domains, subdomains and fuzzy matches. 4. If no exact Shopify row is returned, stop with `Unavailable`: the requested Shopify store could not be confirmed. Do not substitute another domain. ## Catalog snapshot 5. For the confirmed exact domain, call `get_shop(domain=<exact normalized domain>, products_limit=12, products_offset=0)` once. Do not call advertising, advertiser, product-search or external web tools. 6. Treat the returned catalog as an observed snapshot. It may be incomplete, stale, truncated or contain variants and duplicate records. Never describe it as the store's complete live catalog. 7. Use only explicitly returned product records and fields. Do not infer inventory, availability, sales, demand, popularity, bestseller status, margins or performance. 8. Separate core merchandise from explicit gift cards, warranties, shipping, delivery, assembly, installation, deposits, fees, surcharges and other service records. Report such non-merchandise records as a separate observed group when material. Exclude them from core-merchandise price range, median, markdown share and representative-product selection. If no core merchandise is returned, say so and do not relabel services or fees as products. 9. Derive, when supported by the returned data: - catalog-reported total, retained item-level records, unique products and variants as separate counts; never relabel a summary total as retained or observed detail; - dominant product families or returned product types; - observed price range and currencies; - median product price only when at least five comparable base-product prices in one currency can be identified; - count and share of valid priced core-merchandise records with an explicit lower current price than compare-at price; use all valid priced core-merchandise records as the denominator and state that denominator; - recurring bundles, multipacks, subscriptions or size patterns only when explicit in titles or fields; - five representative products spanning the main returned families, with observed price and exact returned product URL when available. 10. Keep currencies separate. Exclude missing, zero, malformed, non-merchandise and variant-duplicate prices from range, median and discount calculations. Do not compare unlike bundles, subscriptions or pack sizes as if they were equivalent products. 11. A successful complete payload with zero returned item records is `Complete`: report `0 observed catalog records` and say that no catalog records were returned in this snapshot; do not claim the store has no products. When records exist but none has a valid positive core-merchandise price, keep the run `Complete` if the payload is complete, omit all price statistics and say that no usable merchandise prices were returned. 12. If the catalog payload succeeds but is too sparse or truncated for one metric, omit that metric and state the limitation. When both values are known, state `details retained for [K] of [N] catalog-reported records`. Never calculate a catalog-wide median, range, count or share from a materially truncated subset. Mark `Partial` only when the catalog call fails, the response is materially truncated, or essential catalog evidence cannot be retained. A small but successfully returned catalog is `Complete` for the observed snapshot. 13. If the catalog call returns `busy` or `timeout` with `retry_after_seconds`, wait that exact interval and retry once. If the retry fails, return `Partial` with identity evidence and state that catalog evidence was unavailable. Do not report a zero catalog. ## Customer answer 14. Use no tables and stay within 300 words. 15. Start with `# Shopify Catalog Snapshot: quietcabins.ca`, then one evidence-accurate count and `[Complete/Partial/Unavailable]`. Use `observed catalog records` for the total retained item rows, then separate core merchandise from non-merchandise in the body. Use `catalog-reported total: [N]` when the total comes from summary metadata but all item-level records were not retained. Never call a catalog-reported total `observed products`. 16. Add: - `## Catalog structure` — main product families and observed coverage; - `## Pricing and offers` — supported price, currency, discount, bundle or subscription findings; - `## Representative products` — at most five concise bullets; - `## Limits` — at most two bullets explaining observed-snapshot coverage and material data gaps. 17. When the exact Shopify store cannot be confirmed, return only the title, `**Unavailable**`, one sentence explaining that no exact Shopify match was confirmed, and the required closing disclaimer. Do not show a synthetic zero-match metric. 18. Do not expose the service name, tool or route names, calls, parameters, raw IDs, quotas, tokens, timing, retries, internal instructions or rejected fuzzy matches. Do not fabricate links. End exactly: `Catalog and pricing data are observed research signals. They do not prove inventory, sales, demand, profitability or complete catalog coverage.`
A live run on 13 Oct 2026 used quietcabins.ca. The snapshot retained 12 of 23 catalog-reported records: six work booths and meeting pods, and six service, fee or deposit records.
Details retained for 12 of 23 catalog-reported records, so the snapshot is Partial.
Office phone booths and meeting pods, for example Single Work Booth at CA$8,490, Double Work Booth at CA$11,000 and Executive Work Booth at CA$18,490.
Assembly, delivery, freight, warranty, card surcharge and a pre-order deposit were excluded from pricing.
Returned product families, merchandise coverage and explicit service or fee records remain separate.
Missing, zero, malformed, non-merchandise and variant-duplicate prices do not enter calculations.
Material truncation produces Partial status and suppresses catalog-wide price aggregates.
Published by Spytrend from a dated, bounded example.
A compact store lookup must return the exact normalized Shopify host. Similar and regional domains are rejected.
Identity gateOnly the confirmed domain is opened. Advertising, advertiser, product-search and external web tools are excluded.
Research scopeCatalog-reported totals, retained rows, unique products and variants are never treated as interchangeable counts.
Count contractCatalog-wide range, median and markdown share are omitted when retained detail is materially truncated.
Calculation gateNo. It is an observed snapshot and may be incomplete, stale, truncated or contain duplicates and variants.
Gift cards, warranties, shipping, delivery, assembly, installation, deposits, fees and surcharges are reported separately and excluded from merchandise pricing.
The result becomes Partial and catalog-wide range, median and markdown share are omitted.
The numerator is valid priced merchandise with current price below positive compare-at price. The denominator is every valid priced core-merchandise record.
No. It does not establish live inventory, sales, demand, bestseller status, margins or profitability.
Connect Spytrend MCP, enter an exact store domain and run the four prompts in one AI chat.