The Scenario
You're a merchandiser at an e-commerce company. Your buying team has 25 supplier URLs — category pages from distributors you're evaluating for Q3 inventory. The purchase order review is next Tuesday and the category manager wants a flat product table: name, SKU, price, and stock status for every product across all 25 pages, so she can compare suppliers side by side.
You got the task yesterday. There are 25 URLs and you have no idea how many products are on each page.
The bad version:
- Open supplier page 1, count the products (there are 47), start copying names into your sheet one by one
- Get to item 12 before realizing you forgot to record the stock status column, go back to item 1 and start again
- Open supplier page 2, discover the layout is completely different and your copy-paste rhythm is now useless
The category manager does not want a partial table. And you were not hired to spend two days transcribing product names from supplier websites — you were hired to evaluate suppliers. Right now you're doing neither.
The Easy Way: One Prompt in SheetXAI
SheetXAI is an AI agent inside your Google Sheet. It reads your supplier URL list and uses its built-in ScrapeGraph AI integration to run SmartCrawler on each category page, then writes every product as a new row in a separate sheet.
Paste this into the SheetXAI sidebar:
Use ScrapeGraph AI SmartCrawler on each URL in column A to extract all product names, SKUs, prices, and stock statuses, then write every product as a new row starting in a new sheet called Products
What You Get
- A new Products sheet appears with one row per product extracted across all 25 supplier pages
- Each row contains the source URL (so you know which supplier it came from), product name, SKU, price, and stock status
- Products from pages where the crawler found no structured listing are grouped in a separate section with a note, so you can spot problem URLs without hunting
What If the Data Is Not Quite Ready
Prices are formatted inconsistently across suppliers
Normalize all values in the Price column: convert formats like "USD 12.50", "$12", and "12,50" to a plain number with two decimal places; write the cleaned values back to the Price column
Some category pages are paginated and only show 20 products per page
For supplier URLs in column A where the product count in the Products sheet is exactly 20, flag those rows in column B with "possibly paginated" so you know which supplier pages may be incomplete
SKUs from different suppliers overlap and need a supplier prefix
Prepend the supplier name (extracted from the domain of column A) to each SKU value in the SKU column of the Products sheet to create unique identifiers across suppliers
Full pipeline: crawl all pages, normalize prices, deduplicate by SKU, flag low stock
Crawl all 25 supplier category pages using ScrapeGraph AI SmartCrawler; write all products to a new sheet called Products with columns: Source URL, Supplier Name, Product Name, SKU, Price (normalized to two-decimal numeric), Stock Status; remove duplicate SKUs keeping the row with the lower price; flag any row where Stock Status contains "out" or "unavailable" in a new column called Stock Alert
One prompt replaces two days of transcription work.
Try It
If you have supplier category URLs in a sheet and a purchase order review coming up, Get the 7-day free trial of SheetXAI and run ScrapeGraph AI SmartCrawler across all of them at once. For related work, see how to dedup and normalize scraped output or apply a consistent schema across a URL batch.
