> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wisepim.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Onboard a supplier catalog end to end

> Turn a supplier CSV, XML feed, or bare website into classified, researched, sellable products in your own structure, without retyping a single spec.

A new supplier sends you 4,000 products in whatever shape they happen to keep them: a spreadsheet with mystery column names, an XML feed, a BMEcat file, or nothing at all except a website. None of it matches your categories, half the specs are missing, and the descriptions are written for someone else's shop. Retyping is not an option and importing it raw just moves the mess into your catalog.

The fix is an order of operations: decide how the data gets in, make sure the slots it should land in already exist, bring in a small capped batch, then fill facts before words. Budget about 90 minutes for your first supplier, and far less for every one after - the setup is reusable. Moving your *own* catalog off an old platform rather than taking on a supplier's range? That is [migrate your catalog](/en/guides/migrate-your-catalog).

<Info>
  **Before you start:** get whatever the supplier can give you - a file, a feed URL, or just their catalog URL, and know which of their categories you actually intend to sell. See [importing products](/en/essentials/importing-products) for what each format needs.
</Info>

<Tip>
  **What you'll get:** the supplier's range in your own category and attribute structure, with verified identifiers and specs, content written in your voice, and a repeatable setup for their next update.
</Tip>

## Pick your intake route

Choose by what the supplier can hand over, not by what you are used to. Ask for the most structured thing they have, then take the highest route in this table they can actually deliver - every row below the first costs you more setup, and the ones near the bottom carry less of the supplier's own structure with them.

<img className="block dark:hidden" src="https://mintcdn.com/swiftsyncai/LYMgNvsF8BhVzDAs/images/marketing-screenshots/feed-hub/feed-hub-import-light-branded.webp?fit=max&auto=format&n=LYMgNvsF8BhVzDAs&q=85&s=186f119c2682b1dd1e8e9c585dac68ec" alt="WISEPIM Feed Hub XML import with field auto-mapping" width="2400" height="1445" data-path="images/marketing-screenshots/feed-hub/feed-hub-import-light-branded.webp" />

<img className="hidden dark:block" src="https://mintcdn.com/swiftsyncai/LYMgNvsF8BhVzDAs/images/marketing-screenshots/feed-hub/feed-hub-import-dark-branded.webp?fit=max&auto=format&n=LYMgNvsF8BhVzDAs&q=85&s=3ea23bceb1702d901e9318640816a457" alt="WISEPIM Feed Hub XML import with field auto-mapping" width="2400" height="1445" data-path="images/marketing-screenshots/feed-hub/feed-hub-import-dark-branded.webp" />

| What the supplier can give you      | Route                                                     | What you set up, and what you get                                      |
| ----------------------------------- | --------------------------------------------------------- | ---------------------------------------------------------------------- |
| A supported distributor account     | A direct [integration](/en/essentials/integrations)       | Credentials once, no files ever - the supplier's own update cadence    |
| A BMEcat file                       | [Feed Hub](/en/essentials/feed-hub) → **XML Import**      | Almost nothing: the catalog carries its own ETIM classes and features  |
| XML, RSS, Atom, or a zipped catalog | [Feed Hub](/en/essentials/feed-hub) → **XML Import**      | AI-proposed field mapping, saved as an Import Profile you can schedule |
| A CSV or Excel file                 | [CSV or Excel import](/en/essentials/importing-products)  | A column mapping you save as a template and reuse on every future file |
| A public website and nothing else   | [Web scraping import](/en/essentials/web-scraping-import) | A seed URL and caps; AI extracts each product page, so preview first   |

<Steps>
  <Step title="Rule out a zero-file route before you touch a file">
    If your supplier is [TechData](/en/integrations/techdata), or delivers through [WebshopImporter](/en/integrations/webshopimporter), which is also how the [Shots](/en/integrations/suppliers/Shots) feed arrives - connect the integration and none of the rest of this section applies.
  </Step>

  <Step title="Open the route you picked from the right place">
    File and scrape routes start on the [Products](/en/essentials/managing-products) page: click **Import** in the toolbar and choose the source. Feed routes start in [Feed Hub](/en/essentials/feed-hub) under **XML Import**, where you paste the URL or upload the file.
  </Step>

  <Step title="Check the count the importer reports back">
    Every route shows you what it found before it commits: the row count and detected delimiter for a CSV, the item count and XPaths for a feed, the matched URL count and one extracted sample for a scrape. Compare it to the number of products you expect. A mismatch here is cheap; the same mismatch after 4,000 products land is not.
  </Step>

  <Step title="Spend your review on the low-confidence rows only">
    For a feed, AI proposes a mapping per field with a confidence chip - accept the confident ones and read the rest. For a CSV, auto-mapping does the same from your column names. A wrong guess you wave through is what quietly fills the wrong attribute on every product.
  </Step>

  <Step title="Save the setup before you run it again">
    Save a CSV mapping as an **import template** and a feed mapping as an **Import Profile**. This is the step that makes the supplier's *next* file a five-minute job instead of a repeat of today, and an Import Profile can be scheduled to pull updates on its own.
  </Step>
</Steps>

## Adopt your standards before the products land

This is the step everyone does last and should do first. Classification decides which attribute slots exist on a product - and everything downstream, from research to enrichment to a wholesale feed, can only fill slots that already exist.

<img className="block dark:hidden" src="https://mintcdn.com/swiftsyncai/LYMgNvsF8BhVzDAs/images/marketing-screenshots/classification/classification-light-branded.webp?fit=max&auto=format&n=LYMgNvsF8BhVzDAs&q=85&s=065a4a57aa968deef785decced18ad79" alt="WISEPIM classification hub with the imported ETIM release, adopted classes and the browsable ETIM class catalog" width="2400" height="1445" data-path="images/marketing-screenshots/classification/classification-light-branded.webp" />

<img className="hidden dark:block" src="https://mintcdn.com/swiftsyncai/LYMgNvsF8BhVzDAs/images/marketing-screenshots/classification/classification-dark-branded.webp?fit=max&auto=format&n=LYMgNvsF8BhVzDAs&q=85&s=740418af7144d2c2b1bd3a3d42204ce8" alt="WISEPIM classification hub with the imported ETIM release, adopted classes and the browsable ETIM class catalog" width="2400" height="1445" data-path="images/marketing-screenshots/classification/classification-dark-branded.webp" />

<Steps>
  <Step title="Find the classes this supplier's range belongs to">
    Go to **Products → [Classification](/en/products/classification)** and search the **ETIM classes** tab by name, code, or trade synonym. Click **View class** before you adopt anything: the feature table is the honest answer to "which attributes will these products need to carry?"
  </Step>

  <Step title="Adopt the classes you need">
    Click **Adopt class**. WISEPIM builds a ready-to-use [product family](/en/products/product-families) from the standard, with one attribute per feature, its value lists, and its prescribed units - products assigned to that family get the attributes immediately.
  </Step>

  <Step title="Bring in the categories too">
    On the **GS1 GPC** tab, drill to the bricks you sell and click **Add as category**. The full parent path is created with them, so imported products land in the right place in your tree instead of in a duplicate one next to it.
  </Step>

  <Step title="Link the families you already have">
    If you already have families and attributes, open the **Mapping review** tab, click **Run mapping**, then use **Select safe matches** to bulk-adopt the high-confidence proposals and hand-review the fuzzy and AI tiers. Your corrections are remembered, so the next supplier's range needs less review than this one.

    <img className="block dark:hidden" src="https://mintcdn.com/swiftsyncai/LYMgNvsF8BhVzDAs/images/marketing-screenshots/classification/classification-mapping-light-branded.webp?fit=max&auto=format&n=LYMgNvsF8BhVzDAs&q=85&s=1086a473f15b0c1f497cf213c236942b" alt="WISEPIM ETIM mapping review queue with tiered suggestions, confidence scores and adopt or dismiss actions" width="2400" height="1445" data-path="images/marketing-screenshots/classification/classification-mapping-light-branded.webp" />

    <img className="hidden dark:block" src="https://mintcdn.com/swiftsyncai/LYMgNvsF8BhVzDAs/images/marketing-screenshots/classification/classification-mapping-dark-branded.webp?fit=max&auto=format&n=LYMgNvsF8BhVzDAs&q=85&s=f785fed0365a1fca6d3570e58ccb14ea" alt="WISEPIM ETIM mapping review queue with tiered suggestions, confidence scores and adopt or dismiss actions" width="2400" height="1445" data-path="images/marketing-screenshots/classification/classification-mapping-dark-branded.webp" />
  </Step>

  <Step title="Switch on auto-classification for imports">
    In **Settings → [Import by Scraping](/en/settings/import-by-scraping)**, the **Classification** section files incoming products into your adopted ETIM classes and GPC categories as they land. Turn it on before the import, not after: it costs no credits, and it runs ahead of the enrichment chain so the family is already there when enrichment looks for attributes to fill.
  </Step>
</Steps>

## Import a capped first batch, enriched on arrival

Never point a fresh supplier feed at your whole catalog with enrichment switched on. Cap it, look at the result, then scale.

<img className="block dark:hidden" src="https://mintcdn.com/swiftsyncai/1lnT9zU1TikUb-Ar/images/marketing-screenshots/settings/settings-import-by-scraping-light-branded.webp?fit=max&auto=format&n=1lnT9zU1TikUb-Ar&q=85&s=12f7dec18087142659b5ad6b8c2e0774" alt="WISEPIM import by scraping settings chaining web research and Bulk Enrich onto every product the scraper and browser extension bring in" width="2400" height="1445" data-path="images/marketing-screenshots/settings/settings-import-by-scraping-light-branded.webp" />

<img className="hidden dark:block" src="https://mintcdn.com/swiftsyncai/1lnT9zU1TikUb-Ar/images/marketing-screenshots/settings/settings-import-by-scraping-dark-branded.webp?fit=max&auto=format&n=1lnT9zU1TikUb-Ar&q=85&s=20a4dc924477b77d854abf8e5c16a59f" alt="WISEPIM import by scraping settings chaining web research and Bulk Enrich onto every product the scraper and browser extension bring in" width="2400" height="1445" data-path="images/marketing-screenshots/settings/settings-import-by-scraping-dark-branded.webp" />

<Steps>
  <Step title="Take only the categories you sell">
    Suppliers ship their whole range. Add import filters in **Settings → [Import](/en/settings/import)** so only the products you actually carry come in. These are project-wide defaults that apply to every import anyone on your team runs, so set them before the first batch rather than deleting products afterwards.
  </Step>

  <Step title="Decide what runs automatically after the import">
    For scraped imports, turn on the enrichment chain in [Import by Scraping settings](/en/settings/import-by-scraping): web research first so verified facts land before anything is written, then [Bulk Enrich](/en/ai/bulk-enrich) for the fields you pick. For file and platform imports, use an **After Import** [automation trigger](/en/automations/triggers) instead, optionally filtered to that one import source.
  </Step>

  <Step title="Cap the first run hard">
    Set low **Max products** and **Max listing pages** limits on a scrape, or import a trimmed file. The chain runs on every product an import brings in, so a misconfigured chain on 2,000 products is an expensive way to learn.
  </Step>

  <Step title="Read the batch before you widen it">
    Open a few of the imported products by hand. Check that the family and category are right, the attributes landed where you expected, and the generated text is usable. Fix the configuration, then run the full import - everything you correct now is a correction you do not repeat 4,000 times.
  </Step>
</Steps>

## Fill the facts, then the words, then the structure

Supplier data is thin on specs and thick on someone else's marketing copy. Research first: writing on top of verified facts is a different quality of output than writing on top of a guess.

<img className="block dark:hidden" src="https://mintcdn.com/swiftsyncai/ZX2PMkwlzd0qyBuW/images/marketing-screenshots/products/products-enrich-web-research-light-transparent.webp?fit=max&auto=format&n=ZX2PMkwlzd0qyBuW&q=85&s=75dbdb47942c99e3c5fc0363c5ac53f8" alt="Enriching products with AI, web research in WISEPIM" width="1972" height="1736" data-path="images/marketing-screenshots/products/products-enrich-web-research-light-transparent.webp" />

<img className="hidden dark:block" src="https://mintcdn.com/swiftsyncai/ZX2PMkwlzd0qyBuW/images/marketing-screenshots/products/products-enrich-web-research-dark-transparent.webp?fit=max&auto=format&n=ZX2PMkwlzd0qyBuW&q=85&s=91a71a25dd03ba39a66ae414f0e28f93" alt="Enriching products with AI, web research in WISEPIM" width="1972" height="1736" data-path="images/marketing-screenshots/products/products-enrich-web-research-dark-transparent.webp" />

<Steps>
  <Step title="Run web research on the strongest identifier">
    Filter to the batch, click **Enrich with AI** in the Products toolbar, and start [Web Research](/en/ai/web-research). EAN/GTIN is the most accurate identifier because it is globally unique; fall back to Brand + MPN or Brand + Name when the supplier gave you no barcodes. Test the settings on a single product from its edit page first if you are unsure.
  </Step>

  <Step title="Let it fill the identifiers the supplier left out">
    Research can discover missing EAN, UPC, MPN, and model numbers. Identifiers follow stricter rules than other fields: they only ever land in empty fields, every value is checksum-validated, and a value that conflicts with yours is flagged instead of overwriting it.
  </Step>

  <Step title="Write the fields a supplier feed is worst at">
    From the same **Enrich with AI** modal, run [Bulk Enrich](/en/ai/bulk-enrich) on descriptions, titles, and SEO meta to replace inherited copy with your own. Run it after research, not before, so the writing is built on the facts you just verified. Reach for [Auto-Fill](/en/ai/auto-fill) instead when you only want to fill gaps and keep what is already there.
  </Step>

  <Step title="Give the flat rows a structure">
    Supplier files list every size and color as its own row. Select the ones that belong together, click **Bulk Edit**, and use [Group as Variants](/en/essentials/bulk-editing/group-as-variants) to attach them to one parent, so channels get a single configurable listing instead of twenty look-alikes. The CSV importer's nested-data step can link them during the import itself next time.
  </Step>

  <Step title="Verify the batch as a batch">
    Every product remembers where it first came from, and that record never changes. Open **Filters → Advanced filters** on the [Products page](/en/products/filtering-products) and filter on **Import Source** to isolate exactly this supplier's products, then read the quality scores and the **Presets** counts across that set alone.
  </Step>
</Steps>

## How to tell it worked

| Signal                                   | Where to look                                                                                           | When it moves                                                                                                              |
| ---------------------------------------- | ------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- |
| The right products arrived               | Filter by **Import Source** and compare the count to what the importer previewed                        | When the import finishes - seconds to minutes for a file, longer for a large crawl                                         |
| Products carry the standard's attributes | The **ETIM** tab on a product, with its conformance score and per-feature checklist                     | As soon as the product has a family linked to an ETIM class                                                                |
| Facts were found, not invented           | The **Web Research** tab on a product's edit page, with its sources listed                              | When the research run completes in the [Process Tracker](/en/other-features/process-tracker)                               |
| Identifier gaps closed                   | The EAN/GTIN and MPN fields, plus any conflicts flagged rather than overwritten                         | After research - empty fields only, every value checksum-validated                                                         |
| The batch is sellable                    | [Data Quality](/en/analytics/data-quality) scores and the **Presets** counts, filtered to this supplier | Once enrichment finishes; force a refresh with [Recalculate Data Quality](/en/essentials/bulk-editing/recalculate-quality) |

## When it doesn't work

<AccordionGroup>
  <Accordion icon="circle-alert" title="The scrape preview matched zero products, or far too few">
    The seed URL or the pattern is off. For category mode paste the listing page, not a single product; for sitemap mode paste a real product URL so the pattern can be learned. Adjust the product URL pattern override and preview again - see [web scraping import](/en/essentials/web-scraping-import).
  </Accordion>

  <Accordion icon="circle-alert" title="The supplier's site blocks the crawler">
    Some shops sit behind bot protection, and WISEPIM names the service doing the blocking rather than failing vaguely. The documented way through is the browser extension: install it, choose the project it imports into, click **Connect this browser**, then open the supplier's product pages yourself. Same extraction, on sites the crawler cannot reach - see [web scraping import](/en/essentials/web-scraping-import).
  </Accordion>

  <Accordion icon="circle-alert" title="Web research found nothing for a lot of products">
    Usually the identifier is wrong, or the product is too new or too niche to have public data. Try a different identifier type: if EAN returns nothing, Brand + Name or model number often does. See [Web Research](/en/ai/web-research).
  </Accordion>

  <Accordion icon="circle-alert" title="Fewer products imported than the supplier's file contains">
    Check your import filters first - they are project-wide defaults in [Import settings](/en/settings/import). Then check your validation mode, which decides whether rows with errors are skipped. Distributor feeds can have their own rules too: [TechData](/en/integrations/techdata) only imports an article that has both a price line and a stock line.
  </Accordion>

  <Accordion icon="circle-alert" title="The BMEcat imported, but the ETIM features look off">
    The catalog most likely declares an ETIM release you have not installed. WISEPIM warns you and applies the features against your newest installed release instead, which is usually close but not identical. If your partner needs an exact match, import the declared release from [Classification](/en/products/classification) first, then re-run the import.
  </Accordion>
</AccordionGroup>

## Related

<CardGroup cols={2}>
  <Card title="Classification (ETIM & GS1 GPC)" icon="network" href="/en/products/classification">
    Adopt the classes and categories that give imported products their attribute slots.
  </Card>

  <Card title="Feed Hub" icon="rss" href="/en/essentials/feed-hub">
    XML, RSS, and BMEcat import with AI mapping and reusable import profiles.
  </Card>

  <Card title="Build a pipeline that runs itself" icon="workflow" href="/en/guides/automate-your-enrichment-pipeline">
    Promote this manual sequence into an automation once it works.
  </Card>

  <Card title="Migrate platforms without losing data" icon="arrow-right-left" href="/en/guides/migrate-your-catalog">
    The same middle-layer approach, applied to replatforming instead of a supplier.
  </Card>
</CardGroup>
