Six ways to load products
Each method creates catalog rows with a title and a product URL, usually the page on your own store. Some also bring the identifiers that make competitor matching exact.
- One at a time. A title and URL, plus an optional barcode, brand and MPN. Barcodes of 8, 12, 13 or 14 digits are stored as a 14-digit GTIN; a wrong check digit is refused.
- A pasted list of URLs. Up to 1,000 product URLs, one per line. The products appear straight away with a name made from the URL, and the real names are read from each page in the background. Invalid URLs are skipped and listed.
- CSV file. Two required columns, name and url, plus optional barcode, brand, MPN and cost columns. The next section lists the header names.
- Google Merchant Center feed. Give the feed's URL, or upload the file (XML or CSV, up to 25 MB). Pricebeeper reads the id, title, link, gtin, brand, mpn, identifier_exists and cost_of_goods_sold fields.
- Shopify store. Enter the store's address. Pricebeeper reads its public product data; no app or login is needed.
- WooCommerce store. Enter the shop's address. Pricebeeper reads the public WooCommerce Store API, with the product sitemap as a fallback.
| Method | Barcode, brand, MPN | Unit cost | How it runs |
|---|---|---|---|
| Manual entry | Yes, typed in | Set per product | Immediately |
| URL list | Read from the page when matching starts | No | Immediately; names fill in afterwards |
| CSV file | Yes, from columns | Yes, from a cost column | Immediately |
| Merchant Center feed | Yes, from feed fields | Yes, from cost_of_goods_sold | Immediately |
| Shopify store address | Read from the store when matching starts | No | Background job |
| WooCommerce store address | Brand from the Store API; barcode read from the page later | No | Background job |
| Shopify app | Yes, from the Shopify admin | Yes, from Shopify | Background sync plus webhooks |
CSV and feed columns
A CSV needs a name column and a url column. Header names match in any case, so Name, URL and url all work. Rows without a URL are skipped.
- Barcode: a column called gtin, ean, upc or barcode (checked in that order). Values are read as text, so leading zeros in the file are kept.
- Brand and mpn columns, kept as they are.
- Unit cost: a column called cost, cost_price or unit_cost. Repricing uses it for margin floors.
A barcode with the wrong length or check digit, or a cost that isn't a non-negative amount, is left out and named in the import's warning; the rest of the row still imports. Where a cell lists several barcodes, the first valid one is kept.
Merchant Center feeds work the same way. cost_of_goods_sold is read with or without its currency code ("23.00 USD" or "23.00"). Items marked identifier_exists = no, the flag Google uses for custom goods, keep their brand but drop the GTIN and MPN, so they are never matched by a barcode they don't have.
Importing a Shopify or WooCommerce store
Store imports read the public catalog any visitor can browse, so nothing needs installing. They run as background jobs and the import page counts the products found so far. If an import stops short, its warning says why (too many products, a store that stopped answering, an incomplete sitemap) and the products that arrived are kept.
For Shopify, Pricebeeper reads the store's public product list 250 products at a time. Shopify only lists the first 25,000 products that way, so beyond that, or when a store has switched the list off, it reads the store's product sitemaps instead. The import stops at 50,000 products and says so; add the rest with a CSV. Each Shopify product is one catalog row, whatever its number of variants.
For WooCommerce, Pricebeeper reads the Store API (public since WooCommerce 6.4) 100 products at a time. It asks for every stock status, so a shop that hides sold-out items still imports them. One row per parent product; variations are never counted. The brand comes across when the shop sets one.
Some WordPress security plugins and firewalls block the Store API. Pricebeeper then reads the product sitemaps (WordPress core, Yoast, Rank Math or AIOSEO) and fills in names from the pages over the next few minutes. The warning tells the shop owner which address to allow for a fuller import.
Store imports by address don't bring barcodes in. When you attach a product without a GTIN to a region on a paid plan, Pricebeeper reads the barcode, brand and MPN from the product's own page before matching: the Shopify storefront data for the variant the page shows, or the page's structured data (JSON-LD, microdata or meta tags) for WooCommerce and other shops. The Shopify app goes further and copies barcodes and unit costs from your Shopify admin.
Jobs, duplicates and rate limits
Every import checks your catalog before writing. Rows that already exist are counted and skipped, and the job reports attempted, created and skipped numbers.
- CSV files and URL lists skip any URL already in your catalog, and repeats inside the same file.
- Merchant Center feeds skip items whose feed id you imported before.
- Shopify and WooCommerce imports skip products by the store's own product id first, then by URL, so a product you added by hand isn't created twice.
One store import runs per account at a time. Starting a second while the first is still reading is refused with an "import already running" message that points at the running job. An import that makes no progress for 45 minutes is marked failed so you can start it again.
Each account can run 20 imports an hour. Bulk uploads of pinned competitor pages and the Shopify app's re-sync draw on the same budget, which teammates in your account share. No import calls a paid data source: prices arrive once you monitor a product.
From catalog to monitored products
The products page filters by monitored and not monitored, with a count for each, so a 10,000-product catalog stays manageable.
Filter to products that aren't monitored
Search or scroll, then select the products you want tracked.
Attach them to a region
Choose a country or a state or province. One product in one region is one slot, and products already attached to that region are left alone.
Pricebeeper fills your remaining slots
If the selection is bigger than the slots you have left, as many as fit are attached, oldest catalog entries first, and the page says "250 of 400 attached. Upgrade to monitor the rest". Through the API the same call answers with a 207 status and lists the skipped products.
Matching starts
Each new slot is queued for matching: GTIN barcode first, then brand and title. Exact product matching explains the rest.
A region your plan has no room for is refused before anything is attached. Starter and Plus track in 2 regions, and each US state or Canadian province counts as one. Regional price tracking covers how regions and slots add up, and slot-based pricing covers packs when you need more room.
Where importing stops
- Magento, BigCommerce and PrestaShop have no direct connection. Export a CSV or point Pricebeeper at your Merchant Center feed instead.
- Store imports by address are one-off. Run them again to pick up new products; only the Shopify app follows product changes, through Shopify's webhooks.
- One store import reads up to 50,000 products. Larger catalogs need a CSV for the rest.
- When a store import falls back to sitemaps, missing names are read from the product pages for up to 2,000 products per import; the others keep a name made from the URL until you edit it.
- Store imports by address don't bring unit costs. Use a CSV, a feed or the Shopify app if you plan to use margin floors in repricing.
How imports feed the rest of Pricebeeper
Barcodes from an import drive competitor price monitoring on Starter and up, because a GTIN match leads to the sellers of the exact item. Unit costs let repricing on Growth, Pro, Business and Custom keep suggestions above a minimum margin.
Imports can also be scripted. API keys can upload CSV files and feeds, start store imports, poll their status and attach products to regions, as described under API and integrations.
Questions people ask
Is there a limit on how many products I can import?
No. The catalog is unlimited on every plan, Free included. A single Shopify or WooCommerce import reads up to 50,000 products, a pasted list takes 1,000 URLs, and you can run 20 imports an hour. Only the products you attach to a region use slots, and slots are what the plan limits.
Which columns does a CSV import need?
Two: name and url, in any letter case. Optional columns add a barcode (gtin, ean, upc or barcode), brand, mpn and a unit cost (cost, cost_price or unit_cost). Invalid barcodes and costs are skipped and listed in the import's warning, while the rest of each row still imports.
Do product variants count as separate products?
No. A Shopify product or a WooCommerce parent product is one row in your catalog, however many sizes or colors it has. It uses one slot for each region you monitor it in. The Shopify app stores the variants under the product so repricing can write to the right one.
Can I import products from Magento, BigCommerce or PrestaShop?
Not with a direct connection. Export your products as a CSV with name, url and barcode columns, or give Pricebeeper the URL of a Google Merchant Center feed from your store. Both keep barcodes and unit costs, and re-importing the same file later adds only new products.
What happens if I import the same file twice?
Nothing is duplicated. CSV rows and URL lists are skipped when the URL is already in your catalog, and feed items when their feed id is. The import summary shows how many were skipped. Unit costs in the file are refreshed on the products that were already there.
Related features
- 01Shopify appPricebeeper inside your Shopify admin: catalog sync, alerts, repricing writes and a plan on your Shopify bill.
- 02Barcode and exact product matchingMatch each product to its Google Shopping product and Amazon ASIN by barcode, then track the sellers of that item.
- 03Slot-based pricingPay for the products you monitor in each region. Catalog size and variants are never counted.
- 04Regional price trackingTrack competitor prices by country, US state, Canadian province or German state, one slot per product and region.
- 05RepricingRules turn competitor prices into suggested prices within your limits; you approve, and your store is updated.
- 06API and integrationsA REST API on every plan, CSV exports, Slack and signed webhooks, and an MCP endpoint for AI agents.
How Pricebeeper compares
- 01Pricebeeper vs PricefyPricefy updates prices twice a day and is cheaper past 3,000 products. Pricebeeper tracks by state and starts at $39.
- 02Pricebeeper vs PrisyncPrisync tracks the URLs you give it 3 times a day. Pricebeeper finds the sellers for you, by country or state.
- 03Pricebeeper vs AI Dynamic Pricing by IntelisIntelis ties Shopify repricing to Google Shopping and counts variants. Pricebeeper counts products and tracks states.
- 04Pricebeeper vs PriceOtusPriceOtus re-reads competitor URLs up to 4 times a day from $39. Pricebeeper finds the sellers, by country or state.
Last reviewed