> For the complete documentation index, see [llms.txt](https://ae-docs.keywordrush.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ae-docs.keywordrush.com/storefronts/adding-products.md).

# Adding products

A storefront is just a list of URLs. When you save it — or paste URLs into the Storefront block — Affiliate Egg reads each one and stores the product data. There are two kinds of URL you can add, plus one habit that keeps everything reliable.

## The two URL types

**A single product** — the most common, and the most reliable. Paste the plain product-page URL:

```
https://www.adorama.com/canon-eos-r50-mirrorless-camera-18-45-mm/p/car50k
```

**A whole category or listing** — pull several products from a category, listing, or search-results page at once:

```
[import limit=6]https://www.adorama.com/l/Photography/Cameras/Panasonic~Mirrorless-Cameras
```

`limit=6` sets how many products to take from that page.

You can mix both, from different shops, in a single storefront — that's how you build a comparison list. For the same product from several retailers, add one direct URL per shop:

```
https://www.adorama.com/canon-eos-r50-mirrorless-camera-18-45-mm/p/car50k
https://www.target.com/p/canon-eos-r50-rf-s18-45mm-f4-5-6-3mm-is-stm-kit/-/A-88661030
https://www.usa.canon.com/shop/p/eos-r50-rf-s18-45mm-f4-5-6-3-is-stm-lens-kit
```

## Category imports refresh themselves

The two URL types behave differently over time, and it's worth knowing which you're choosing.

A **direct product URL** always points at the same product. When Affiliate Egg re-reads it, only the details change — price and availability — never *which* product it is.

A **category or listing URL** is re-read differently: Affiliate Egg fetches the page again and rebuilds the product set from whatever it lists *now*. This happens on its own schedule — the **Category & listing update interval** in **Affiliate Egg → Settings** (45 days by default). It keeps the list current — new arrivals appear, discontinued items drop off — but it also means the exact products in your storefront can shift over time. That's the trade-off: a listing stays fresh on its own, at the cost of being less predictable than a hand-picked set of URLs.

Want a fixed, curated list that never changes on its own? You have two options: set the **Category & listing update interval** to `0` (never refresh listings), or skip category URLs and add the products you want as direct URLs.

## Use plain URLs, not affiliate links

Add the **clean product URL** — the link you'd see in your browser's address bar on the product page. Don't paste an affiliate or tracking link.

Affiliate Egg applies your affiliate links separately, in one place. When you save a storefront, each shop's domain appears in the **Deeplink** tab, where you set your affiliate link once for the whole domain. See [Deeplink settings](/affiliate-links/deeplink.md). Adding clean URLs keeps this tidy — and lets you switch affiliate networks later without touching your products.

## Direct URLs are the most reliable

Reach for **direct product URLs** whenever you can:

* They read the exact product you want, every time.
* They make far fewer requests to the shop — which means fewer blocks.

Category and listing pages are convenient for adding a lot at once, but they're more fragile: some shops render their listings with JavaScript, or push back on heavier browsing. If an `[import]` comes back empty or partial, fall back to direct product URLs. See [When a shop blocks access](/getting-data-reliably/blocking.md).

And go easy — adding a huge batch in one sitting is the quickest way to get temporarily blocked. Add in reasonable chunks.
