The Entire Iherb Supplements Catalog, Captured End-to-End in 3 Days
Scraping supplement products from iHerb.com with full details, including descriptions and packaging variations.
Learn More
We build and run the crawler; you receive data. Output comes as CSV, JSON, JSONL, XLSX or a Google Sheet, or as an API endpoint if your systems prefer to pull. Files land on S3, Google Cloud Storage, SFTP, a webhook or in an inbox.
Cadence is set per project: daily for price and size availability, weekly or monthly for a full catalogue refresh. Each market is a separate pass with its own locale path and currency, and rows are stamped so EUR, USD and PLN values never mix in one column. The schema is agreed before the first run and then held stable, so your imports keep working when the storefront theme changes.
Extraction runs once per market, because price, availability and even option labels are market-dependent. A standard Scotch & Soda dataset carries:
The metafield block is the part no public endpoint returns. products.json and /products/{handle}.js hand back the commerce object only, while style_number, color_number, season_code, markdown_status and store_type sit inside the theme's embedded PDP payload and have to be parsed out of the rendered document.
A single export describes the shop today. In fashion the value sits in the deltas, and a Shopify storefront makes them observable if you keep collecting on a schedule.
Size-level stock moves first. available flips per variant, so runs at a fixed cadence show which sizes sold through earliest, how long a size stayed out before a restock, and which styles never carried a full size run at all. Price history behaves differently per market: the EU and US storefronts mark down on their own timing, so the same style number can be at full price in one market while already carrying markdown_status in another.
Disappearance matters as much as change. A style can drop out of /collections/all/products.json while its product page still resolves, get retagged ARCHIVE or NOTONLINE, or move from a retail collection into Outlet. Products also leave the sitemap tree, which is split at 1,000 URLs per file with from and to product-ID parameters, so diffing sitemap_products_1.xml between runs is a cheap first signal that the catalogue shifted.
We keep history instead of overwriting it. Every run is stored with its timestamp, which gives you first-seen and last-seen dates per variant, discrete price change events, and the season code a style was introduced under.
Scotch & Soda is the Amsterdam Couture label, now owned by Bluestar Alliance and operated under licence by United Legwear. The retail side was rebuilt on Shopify after 2023, and the Salesforce Commerce Cloud stack it used before that is gone. The legacy domain scotch-soda.com still answers, but it 301-redirects path-preserving to www.scotchandsoda.com, so an old Demandware deep link such as /nl/nl/about-us.html survives as a path and then resolves to no content.
There is no single catalogue behind the brand. Each region is a separate Shopify storefront with its own product set and its own handles. www.scotchandsoda.com defaults to localization=US, cart_currency=USD and content-language en-US. scotch-soda.eu defaults to localization=NL, cart_currency=EUR and content-language en-NL, and it is the European and Dutch shop. scotch-soda.co.uk sends visitors on to scotch-soda.eu with a 302, and scotch-soda.com.au resolves to a third Shopify store.
The two main storefronts do not share URLs. On scotch-soda.eu a product URL is usually the bare style number, /products/177640 or /products/182363, and occasionally a supplier code such as u9b01804t_v611. On the US store the same garment is a descriptive slug ending in style number, colour code and colour name, /products/slim-fit-oxford-button-down-shirt-165339-0217-combo-a. Any cross-market comparison therefore has to join on the style number, never on the handle.
Get a QuoteDevelopers
Customers worldwide
Pages extracted
Hours saved for our clients
€199 / one-time
setup fee - included
€169 / mo
setup fee €499
€229 / mo
setup fee €499
€349 / mo
setup fee €499
€549 / mo
setup fee €799
Price monitoring in the Netherlands is the usual starting point. The brand sits in the mid-premium denim and shirting bracket, and its End of Season & Outlet activity moves faster than a manual weekly check can follow. custom.markdown_status and custom.store_type let you tell a permanent outlet line apart from a retail line that is temporarily reduced, which compare_at_price alone will not do.
Wholesalers, marketplaces and multi-brand retailers use the feed for assortment work: which styles the label publishes per market, which colourways exist for a style, and which sizes are genuinely sellable rather than merely listed. Because every colourway is its own Shopify product, with Color as a single-value option and Size carrying the variants, colour breadth only becomes visible after the separate handles are grouped back onto the shared style number.
Brand, licensing and competitor teams use it to see how the label is presented on the EU, US and Australian stores at the same moment, collaborations such as Royal Delft x Scotch & Soda included. Repricing engines, EAN-keyed product masters and marketplace listing tools consume the same rows, since the EAN-13 barcode joins cleanly to GS1-based catalogues.
Scraping supplement products from iHerb.com with full details, including descriptions and packaging variations.
Learn More
Daily scraping of lowest prices for 150K products on Allegro.pl to support marketplace pricing and margin optimization.
Learn More
Regular monitoring of Ralph Lauren clothing, footwear, and accessories sold across Amazon subdomains: AE, DE, ES, FR, IT, NL, PL, UK.
Learn MoreLearn how to use web scraping to solve data problems for your organization
If you sell online, run a marketplace, or advise e-commerce clients, you already know why eBay matters: it’s one of the few places where big retailers compete side by side with thousands of small merchants and private sellers.
E-commerce teams do not just need “some” competitor data anymore. They need a continuous stream of real prices, discounts, stock levels, reviews, and seller behavior from the platforms that actually shape their markets.
Amazon provides valuable information gathered in one place: products, reviews, ratings, exclusive offers, news, etc. So scraping data from Amazon will help solve the problems of the time-consuming process of extracting data from e-commerce.
ScrapeIt is a managed scraping agency. We absorb the parts that make fashion sites tedious: Shopify Markets locale paths, long hreflang trees, colourway grouping, metafields that exist only in rendered HTML, and Cloudflare in front of Shopify, which answers modest single-IP bursts with a 429 that persists for minutes. You get a maintained pipeline and clean rows rather than a script to babysit. When the storefront changes, the fix happens on our side.
We collect only publicly published catalogue pages: titles, prices, sizes, stock flags and images that any visitor can see without an account. No login, no personal data, no checkout. www.scotchandsoda.com ships Shopify's agentic robots.txt, which leaves catalogue HTML crawlable while explicitly forbidding automated checkout, and disallows paths such as /cart.js and /recommendations/products along with sort_by and multi-filter crawl traps. We respect those directives. We are not affiliated with Scotch & Soda, Bluestar Alliance or United Legwear, and we are not lawyers, so treat your own use of the data as a question for your legal team.
There is no documented commercial API. What exists are the standard Shopify JSON surfaces, and they are not login-gated: /products/{handle}.js and .json, /collections/{handle}/products.json, and /search/suggest.json for predictive search. They are limited in practice. The collection endpoint hard-caps limit at 250 and silently returns 250 if you ask for 251, the .js endpoint reports prices as integer minor units while products.json returns decimal strings, and neither exposes the merchandising metafields. For style_number, season_code, markdown_status or store_type the rendered product page is the only source, which is why we deliver a normalised feed instead of pointing you at an endpoint.
scotch-soda.eu, not the .com. The .com defaults to a US market and prices in USD, and scotch-soda.com now redirects there as well. scotch-soda.eu uses Shopify Markets locale prefixes such as /nl, /de and /fr plus country pairs like /nl-be, /de-at and /en-pl, each with its own sitemap tree, and a single product page emits dozens of hreflang alternates including x-default. Currency follows the market rather than the domain: the same variant returns EUR on /nl and PLN on /en-pl, with localization and cart_currency switching to match. We set the market per crawl, so a Dutch feed stays in EUR.
No. Variant-level price and stock are server-rendered into the ProductGroup JSON-LD, so availability per size is readable without a session, and collection pages expose the same view through Shopify Search & Discovery parameters such as filter.v.option.size and filter.v.availability. The interactive extras are third-party apps and hold no catalogue data: the wishlist is a Swym Relay integration tied to a shopper account, and the Orbe geolocation modal only offers to move a visitor to their regional store, which a crawler has to decline so it stays on the market you asked for.
Cloudflare sits in front of Shopify here, and modest bursts from a single IP produce a 429 that lasts minutes and carries over to other paths and to the brand's other domains; www.scotchandsoda.com can also answer with a verification interstitial instead of the document. We therefore pace requests rather than push them, which keeps daily price and stock runs routine and makes a full catalogue rebuild a scheduled job. Pricing depends on markets, field depth and frequency, so we quote per project after a short scope call and a sample file.
Step 1 - Make a Request
You share your needs, expectations, and desired timeframe. We’ll suggest the best solution based on your request and budget.
Step 2 - Configuring Custom Web Crawlers
Our specialists configure the crawlers and extract a sample dataset for your review before proceeding with the full-scale extraction.
Step 3 - Collect and Deliver
Once you approve the sample, we launch the project and start full data collection. We gather, filter, and structure the data for easy use, delivering it on time in your preferred format.
Step 4 - Maintain and Support
Our team manages ongoing processes, monitors website changes, and supports all data extraction cycles. We can also help integrate data into your systems or create dashboards to simplify analysis.
Scrapeit Sp. z o.o.
10/208 Legionowa str., 15-099, Bialystok, Poland
NIP: 5423457175
REGON: 523384582