Read each feed as it is
Suppliers send different columns, units and names for the same thing. Start by inventorying what each feed really holds — not what its documentation says — and how often it changes.
Normalise into one schema
Map each supplier's fields and units onto one set of definitions, so a product has one record instead of one per supplier. On Shopflooring, our own storefront, twenty-plus supplier price lists were normalised this way.
Match on identifiers first
Exact identifiers beat fuzzy matching: 2,257 supplier photos were matched to products on exact SKU. Fuzzy matches are suggestions for a person to confirm, never automatic merges.
Keep it running
Feeds change, so ingestion is a pipeline that reruns, not a one-off import. The result on Shopflooring is a catalogue of 118,651 rows, 117,873 of them live, with search usable across all of it — and it paid off again at replatform time, when over 23,000 old URLs could redirect straight to the same product.