Skip to content

Competitor Price Tracking by Platform: The Complete Guide

Published on August 25, 2026 by Niccolò

The Platform Decides How Reliably You Can Read a Price

A competitor's product page is public. What that page actually hands you depends almost entirely on the platform behind it, and the differences are written down by the platforms themselves.

On one platform, every store answers the same documented JSON endpoint with every variant priced in cents. On another, variant data vanishes from the initial HTML once a product passes thirty variations, by default. On a third, the selected variant's price does not exist in the page until the browser asks a second time. On a marketplace the question stops being technical: the number is on the screen, and whether you may read it programmatically is governed by an agreement rather than by markup.

Almost nothing written about competitor price monitoring is organised this way. The search results are organised by tool, because a vendor cannot comfortably lead with "our extraction behaves differently on WooCommerce than on Shopify" while promising on the same page to work on any site. The platform documentation has no such problem, and it is public. This guide is the map: where the market actually is, what each platform exposes, and where the constraint stops being code. The general mechanics of tracking competitor prices are covered separately.

The Share Trackers Disagree, and Both Are Right

Before the mechanics, the market. Ask which platforms your competitors are likely to be on and the two most-quoted trackers give you opposite answers about the same industry.

PlatformW3Techs: share of sites with a detected ecommerce systemECDB: "Usage Share 2025"
WooCommerce48.5%4.9%
Shopify31.2%23.4%
Adobe Commerce / Magento1.5%8.4%

Sources and dates, which are the whole point: W3Techs, surveyed 7 August 2026, and ECDB, metric labelled "Usage Share 2025", retrieved August 2026.

The two are not measuring the same thing. W3Techs counts websites, and its methodology says so plainly: it surveys the technologies of websites rather than of individual pages, consolidating subdomains, updated daily. In that sample a one-product hobby store weighs exactly as much as a store doing $50 million a year, which inflates whichever platform owns the longest tail. ECDB weights by commercial scale instead, describing its data as based on billions of transactions, which inflates whichever platform is concentrated in larger merchants.

So WooCommerce leads by roughly 1.6 to 1 when you count stores, and trails Shopify by nearly 5 to 1 when you weight by commerce. Magento is either a 1.5% rounding error or an 8.4% force depending on which question you asked. Both numbers are defensible. Neither belongs in a roundup without saying which one it is, which is why every roundup quotes a different figure.

One more W3Techs figure is worth carrying: 83.1% of the websites in that sample run no detected ecommerce system at all, so the percentages above describe a share of the remaining sixth. And none of it describes your category. The useful version of this exercise counts the platforms in your own list of real competitors, which usually looks nothing like either table.

What Changes, Platform by Platform

Here is the comparison the rest of this guide expands, with the share column taken from the W3Techs cut above because it is the figure with a dated primary source and a published methodology.

PlatformShare (W3Techs, August 2026)Typical merchantHow price data reaches the pageRead difficulty
WooCommerce48.5%Micro to mid, self-hosted, plugin-heavyServer-rendered HTML plus data-product_variations JSON on the add-to-cart form; public Store APIEasy for simple products, breaks past 30 variations
Shopify31.2%Small to enterpriseLiquid HTML, /products/{handle}.js JSON, optional JSON-LD, tokenless Storefront GraphQLEasiest and most uniform
PrestaShop2.9%Small, EU-heavyServer-rendered plus a JS product-update endpointModerate
Adobe Commerce / Magento1.5%Mid to enterprise, heavily customisedtext/x-magento-init JSON blocks, configurable-product option matrix, GraphQL price_rangeHardest, almost no two stores render alike
BigCommerce0.6%Mid-marketStencil Handlebars HTML, window.BCData global, variant price via a second requestModerate, base price static, variant price resolved live
Marketplacesnot in this datasetanyNo public product-price API without a seller, partner or affiliate agreementHardest, for contractual rather than technical reasons

The final column is my editorial assessment from building extraction against these platforms, not a measured statistic. Everything in the fourth column comes from the platform's own documentation, cited below.

Shopify: One Documented Endpoint, and a Ceiling at 250 Variants

Shopify is the easiest platform to read because it gives every store the same contract. The Ajax Product API answers GET /{locale}/products/{product-handle}.js with the full product as JSON, including a variants array carrying an available boolean per variant, and monetary values expressed in cents, so 12900 means $129.00 (Shopify, platform documentation). A merchant can change themes every quarter and that endpoint answers identically: the theme changes the HTML, not the API.

The ceiling is documented in the same place, and it is the kind of detail nobody writes down: "The JSON of the product can contain a maximum of 250 variants in the variants array." Past that point, the endpoint stops being a complete picture of the product, and a tracker built on it alone silently reports on a subset.

Two other routes exist and both come with conditions. JSON-LD is produced by the structured_data Liquid filter, which emits a schema.org Product for a product with no variants and a ProductGroup once variants exist (Shopify, platform documentation). That filter is applied by whoever built the theme, so plenty of Shopify stores emit no product JSON-LD at all. The Storefront GraphQL API allows tokenless access covering essential features such as products, collections and carts, capped at a query complexity of 1,000, with a token required for tags, metaobjects, menus and customer data (Shopify, platform documentation).

The practical consequences for a watch list are in the Shopify competitor price tracking guide.

WooCommerce: Public by Design, Until the Thirty-First Variation

WooCommerce is open at the front end and closed at the back. Its Store API is public deliberately, and the documentation states the reason: "The store products API provides public product data so it can be rendered on the client side" (WooCommerce, platform documentation). Each product carries a prices object with currency_minor_unit, price, regular_price, sale_price and price_range. The admin REST API, by contrast, requires a Consumer Key and Consumer Secret (WooCommerce, platform documentation). Reading a competitor's storefront and reading their catalogue are not the same act.

In the page itself, a variable product's add-to-cart template emits variation data as data-product_variations, and that payload is filterable by any plugin through woocommerce_available_variation. Self-hosting plus a filter hook is why WooCommerce variation JSON is the least predictable of the five platforms here.

Then there is the cliff, and it is the single most useful number in this guide. By default, WooCommerce inlines variation data only for products with 30 or fewer variations. Above that threshold the data loads by AJAX after the shopper has selected every attribute, so data-product_variations is simply absent from the initial HTML response. The limit is adjustable through the woocommerce_ajax_variation_threshold filter (WooCommerce, platform documentation).

Read that as a warning about your own data. A tracker that reads only the first HTML response misses variant prices on every WooCommerce product with 31 or more variations, reports the parent range instead, and never errors. That is the platform default rather than a tracker bug, and it explains a lot of "why does my monitor show one price for a product with forty options" complaints. Why no plugin inside your own store can fix it is covered in the WooCommerce competitor price tracking guide.

BigCommerce: The Variant Price Is a Second Request

BigCommerce Stencil themes are server-rendered Handlebars, so the headline price arrives in plain HTML with no rendering required. Themes also expose an inline window.BCData object carrying product_attributes and an instock property, visible in BigCommerce's own Cornerstone theme repository (Cornerstone issue tracker). Treat that object as a convention rather than a stable public API: no first-party documentation page formally enumerates its schema, and themes rename or strip it.

The variant price is the part that is not in the page. When a shopper selects an option, the storefront calls utils.api.productAttributes.optionChange(productId, params, callback), documented as firing when the customer selects a product option for the current cart item (BigCommerce, platform documentation). That price is computed on the server, so a monitor reading static HTML never triggers the call and records the default variant's price for every variant, correctly formatted and quietly wrong. The BigCommerce competitor price tracking guide covers the customer-group and bulk-tier prices that sit even further out of reach.

Magento: Five Places the Price Can Live

Magento is the hardest of the four, not because it hides anything but because it offers too many answers. Adobe's frontend framework initialises JavaScript components through x-magento-init, described as a mechanism that "allows you to call a JS component on an HTML element without direct access to the element" (Adobe, platform documentation). The useful consequence is that per-variant prices are serialised into the page source on the server, so a headless browser is usually unnecessary.

The payload holding the configurable-product option and price matrix is the configurable-product component's JSON config, commonly keyed spConfig. Adobe documents the x-magento-init mechanism but not that object by name, so treat the key as an observed convention rather than a contract.

Magento also exposes GraphQL, where a product's price_range returns minimum_price and maximum_price, each with regular_price, final_price and discount (Adobe, platform documentation). Whether a merchant leaves /graphql reachable is a per-store configuration decision, so it is a route worth checking rather than one to plan around.

Add server-rendered HTML, JSON-LD and the price-box markup and you have five candidate locations for one number, on a platform whose enterprise merchants routinely customise all of them. There is no per-store contract equivalent to Shopify's .js endpoint, which is why the Magento competitor price tracking guide is the longest in the series.

Marketplaces: The Constraint Is Contractual, Not Technical

Everything above is a question of where the number sits. Marketplaces change the question. On an own-brand store the platform decides how hard the price is to read; on a marketplace the platform decides whether you may read it programmatically at all, and the usual answer is only through an approved seller, partner or affiliate relationship.

The scale makes this unavoidable rather than optional. Amazon reports third-party seller unit mix as a percentage of worldwide paid units, and it has barely moved for six quarters.

QuarterThird-party share of worldwide paid units
Q1 202561%
Q2 202562%
Q3 202562%
Q4 202561%
Q1 202660%
Q2 202661%

Third-party sellers accounted for 61% of worldwide paid units in Q2 2026, and third-party seller services revenue reached $46.8 billion in the quarter, up 16% year over year (Amazon, July 2026). Note the metric: units, not sales. Amazon's small business report uses a different one, stating that independent sellers "today account for more than 60% of sales in Amazon's store" (Amazon, 2025 full year). The flatness across those six quarters is the finding. Competing against independent sellers on the largest marketplace is structural, not a trend you can wait out.

The official route to that data has narrowed. Amazon's Product Advertising API 5.0 is deprecated in favour of the Creators API, and calls to the old endpoints return a migration notice (Amazon Associates, platform documentation). The Creators API requires an Amazon Associates account that has been reviewed and received final acceptance, and is available only to associates who have referred qualified sales. If you do not have that relationship, you do not have that route.

One shortcut in tool marketing deserves correcting here. Amazon's robots.txt does not explicitly disallow the base product detail paths under User-agent: *; what it disallows are sub-paths such as /dp/shipping/, /dp/e-mail-friend/ and /gp/product/rate-this-item. Do not read that as permission. A robots.txt file is a crawler directive, not a licence, and Amazon's Conditions of Use are a separate agreement that governs automated access and changes over time. Read the current version before pointing anything at a marketplace at scale. If the question is really about your own listings, the Amazon repricing and Buy Box guide is the more useful page.

The other two large marketplaces are similar in shape and worse in disclosure. Walmart publishes no marketplace seller count in its developer portal, marketplace site or press releases, and its developer documentation addresses sellers and solution providers rather than anyone wanting prices (Walmart, platform documentation). What Walmart does state officially is growth: US third-party marketplace grew nearly 50% year over year, its fastest pace in years (Walmart, Q1 FY2027 earnings call, quarter ended April 2026). Separately, Marketplace Pulse estimates roughly 200,000 active sellers (Marketplace Pulse, June 2026). Two different claims from two different kinds of source. Merging them is how a made-up statistic gets born.

eBay does not report an active-seller count either, so use the numbers it does publish: 2.6 billion live listings and 136 million active buyers as of 30 June 2026 (eBay, June 2026). Access is gated much as Amazon's is. The Buy APIs, including Browse, are Limited Release, restricted to developers and applications that provide the most value to eBay, with acceptance based on the proposed business model and a formal agreement (eBay, platform documentation).

Build versus buy looks different once you accept that part of your watch list sits behind agreements rather than behind parsers, which is the argument laid out in web scraping versus a price monitoring API.

Prices Move Faster Than the Check You Scheduled

The mechanics only matter because the numbers underneath them move. The European Commission's e-commerce sector inquiry, published in 2017 after collecting evidence from around 1,900 companies, found that a majority of retailers track the online prices of competitors and that two thirds of those use automatic software that adjusts their own prices in response (European Commission, May 2017). Cavallo's 2018 study of US multi-channel retailers measured the result: price changes roughly doubled in frequency, from about 15% of prices changing per month in 2008 to 2010 to about 30% in 2014 to 2017 (NBER, October 2018).

Both predate 2024, and both probably understate where things sit now, given that ecommerce reached 16.9% of total US retail sales in the first quarter of 2026, at $326.7 billion adjusted (US Census Bureau, May 2026). A market where a third of prices change monthly, and two thirds of the people changing them are running software, is not one a weekly manual check keeps up with. How to tier the checks you do make is covered in how often you should check competitor prices.

Auditing a Mixed Watch List

The four platform guides all end with similar practical advice, so here is only what changes when your competitors are spread across platforms.

Before adding a URL to any monitor, spend two minutes identifying the platform and naming the failure mode you expect from it. Shopify: check whether the product exceeds 250 variants. WooCommerce: count the variations, and treat anything past 30 as a page whose variant prices are not in the HTML. BigCommerce: assume the headline number is the default variant until proven otherwise. Magento: decide whether the headline is a configurable minimum before you record a single point. Marketplace: decide whether you have a legitimate route to the data at the scale you want it.

What Respot Does With a Mixed Watch List

Respot reads public product URLs, which is the right architecture here, because a competitor's price never lives inside your store. You paste a product URL and it detects the product details automatically, then tracks price and stock per variation rather than only at parent-product level, which is precisely where the platform differences above cause damage. Extraction is browser-free and works across many platforms, so one watch list can hold Shopify, WooCommerce, BigCommerce, Magento and marketplace listings together.

Alerts fire on price change and on stock change, and the check cadence is adaptive rather than an interval you set by hand, with floors of two hours on Starter, one hour on Pro and thirty minutes on Agency. The free plan covers 5 trackers with 7 days of price history and no credit card, enough to test five contested URLs across four platforms and see which parse cleanly. Paid plans run from 100 trackers to 2,000, with longer history at each step.

Start With the Five Pages You Understand Least

The decision this guide asks you to make is not which tool to buy. It is which of your competitors you are currently measuring wrong.

Take your five most contested competitor URLs, open each one, and name the platform and the specific reason its price might not be what it looks like. A WooCommerce product with 60 variations, a BigCommerce product with priced options, a Magento configurable parent and a marketplace listing you cannot legitimately query are four different problems, and only one is solved by checking more often.

Do that audit and the rest is ordinary work. Skip it and you will build six months of tidy price history describing something other than what your competitors charge. Start tracking your competitors once you know what each page is telling you.