Shopify storefront guide

Shopify storefront data extraction: products and variants

A platform field guide to Shopify merchant storefronts, product and variant records, source paths, currency context and API access boundaries.

A Shopify merchant uses its own storefront

Illustrative URL patterns

A Shopify merchant can use a custom domain or a myshopify.com address. Shopify's own shopify.com domain is its platform website, while merchant storefronts use their own domains. A product handle is the readable path segment after /products/; a collection handle identifies a merchant-organized group under /collections/. Shopify documents custom and myshopify.com domains, plus handle fields in its product and collection models.

Scroll to compare →

Illustrative Shopify merchant URL patterns
URL patternWhat it representsWhy it matters
https://shopify.com/Shopify's platform websiteNot a merchant product catalog
https://merchant.example/Reserved placeholder for a merchant storefrontMerchant host and market provide context
https://merchant.example/products/item-handleIllustrative product path with a readable handleA product path can group multiple variants
https://merchant.example/collections/group-handleIllustrative merchant-curated collection pathCollection membership is merchandising context
https://shop-name.myshopify.com/Example of a Shopify-assigned merchant domainDistinct from Shopify's platform website

The .example URLs are reserved documentation placeholders, not tested endpoints. Merchants may use different themes and storefront experiences, so path and field behavior varies by storefront.

Map Shopify product, variant and observation fields

Shopify documents products and their variants as related catalog records. The datawebot result schema includes a defined subset of that model; Shopify's wider GraphQL fields should not be read as fields in this result.

Scroll to compare →

Map Shopify product, variant and observation fields
Record layerFields in the datawebot resultHow to interpret
ProductProduct ID, title, product URL, vendor, product type, HTML description and image URLs.The source handle is used to form the product URL; it is not returned as a separate field. Vendor, type and description can be null.
VariantVariant ID and title, SKU, named option values, price and currency, compare-at price and availability.SKU and compare-at price can be null. Availability is true, false or unknown; it is not an inventory count.
Observation provenanceStorefront ID, source URL, retrieval timestamp and schema version.Keep source and time with downstream comparisons; the same product can have different source and market observations.
WarningsWarnings can report a 250-variant limit, missing availability or a shortened description.A warning marks a coverage or mapping limit; do not fill missing values from another product or merchant.

A Shopify product, variant and collection answer different questions

A product handle identifies a product path, a variant represents an option combination, and a collection is a merchant-organized group. Keep the source URL, selected option and collection context separate when interpreting a storefront result.

Scroll to compare →

A Shopify product, variant and collection answer different questions
Shopify record or pathUseful source meaningComparison boundary
Product: /products/{handle}A merchant product page can describe one product and its reported variants.A readable handle is a path label, not proof of a permanent ID or a one-variant record.
Variant option combinationNamed options such as size or color describe a specific version of a product.Keep variant ID, SKU and each option value together; similar titles do not establish identical variants.
Collection: /collections/{handle}A merchant-created grouping can organize products by category, season or promotion.Membership is merchandising context; it does not establish the merchant's full catalog or private inventory.
Selected variant in a URLA storefront link may include a selected option in its query string.The datawebot product result includes the product's reported variant set; the selected query parameter does not narrow that result to one option.

Keep currency and completeness with each Shopify observation

Shopify’s Ajax Product API uses locale-aware URLs and returns monetary fields in the customer’s presentment currency. The current datawebot Shopify product flow is configured for reviewed US/USD storefronts, verifies currency, and permits up to 25 source-page visits per run. These flow limits are separate from Shopify’s API response ceiling.

Scroll to compare →

Keep currency and completeness with each Shopify observation
Signal or limitWhat Shopify or the product result reportsDo not infer
Price and currencyVariant price and optional compare-at price carry a currency; Shopify documents Ajax money in presentment currency.That amounts from different currencies, locales, stores or dates are directly comparable.
Variant availabilityA source-reported boolean can be true, false or unknown in the normalized result.The number of units in stock, availability in another market or a future restock.
Variants per product responseShopify's Ajax product JSON can contain at most 250 variants; the result can warn when that limit is reached.That a 250-entry response contains every variant the merchant configured.
Run completenessA Shopify data run allows at most 25 page visits, including currency verification.That a bounded run reached every collection, product or private inventory record.

Choose a Shopify data path by storefront and owner

Shopify documents different routes for public theme data, buyer-facing storefront experiences and merchant-authorized operations. Platform documentation describes how those routes work; each merchant's own terms and robots directives remain tied to its storefront domain.

Scroll to compare →

Choose a Shopify data path by storefront and owner
Data pathWhat Shopify documentsBoundary to preserve
Theme Ajax APIUnauthenticated JSON for Shopify-hosted themes, including a locale-aware product endpoint.Shopify says the Ajax API is not for custom storefronts and remains subject to abuse-prevention measures.
Storefront APIA buyer-facing API with tokenless access for basic data and token-based access for additional features and scopes.Documented API availability does not establish that a specific merchant has granted a particular app access.
Admin APIAn app authenticates on behalf of a merchant and receives the data allowed by granted scopes.Merchant-owned catalog, customer or inventory operations are not public storefront fields.
Merchant site rulesTerms and robots directives belong to the specific storefront domain and its operator.Shopify's API documentation is not a blanket permission to collect or reuse every merchant's content.

Content reviewed 2026-10-07.