Distributor Integration

Ingram Micro and TD Synnex product, cost and stock feeds imported over SFTP into one catalogue, with every product carrying the cost and stock position of each distributor that sells it.

The problem

Your two distributors publish the same 200,000 products under different part numbers, different manufacturer spellings and completely different category codes. One ships a ZIP of comma-delimited text at a fixed-width layout; the other ships a tilde-delimited flat file with 70 columns. Somebody exports both to Excel, guesses at which “HEWLETT PACKARD ENTERPRISE” rows are the same brand as “HPE”, and quotes from a cost sheet that was accurate last Tuesday.

What Solidlio does about it

Solidlio connects to each distributor’s SFTP host, downloads and unpacks the feed, and parses it against the published file specification — 23 positional fields for the Ingram price feed, the TD SYNNEX FlatFileSpec v4.2 layout for the P&A feed. Records are matched into a single catalogue product by UPC/EAN first, then by manufacturer part number within a brand family, so the same laptop from both distributors becomes one product with two cost rows. Distributor category codes and manufacturer names are mapped to your taxonomy by a scored matcher that auto-applies only high-confidence matches and queues the rest for a human. Stock is recorded per distribution centre, not as a single number.


Capabilities

CapabilityWhat it does
SFTP feed ingestionDownloads and unpacks Ingram PRICE, ALLETA and NEWCATZ archives and the TD Synnex P&A file
Per-feed credentialsHandles Ingram’s three separate SFTP logins — price, availability and categories — as distinct connections
Cross-distributor matchingMerges the same product from both distributors by UPC/EAN, then by MPN within a brand family
Per-warehouse stockRecords quantity and ETA for each of 8 mapped Canadian distribution centres, not one aggregate number
Cost comparison in currencyConverts every distributor cost into the product’s currency before ranking, and excludes what it cannot convert
Brand mappingScores distributor manufacturer names against your brands; auto-applies at 0.95, queues the rest
Category mappingMaps distributor category codes by dominant-category inference over products that already matched; auto-applies at 0.90
Product classificationSeparates physical goods from software, services, warranties and electronic delivery
Run historyRecords every import with record counts, duration, status and error list

How it works

  1. Download and unpack — the archive is fetched with chunked concurrent reads and unpacked in-process. No unzip binary is required in the container.
  2. Parse — the file is parsed against its published specification. Malformed lines are counted and reported rather than guessed at.
  3. Match — each record is resolved to a catalogue product by UPC/EAN, then by manufacturer part number within the brand family. Unmatched records are matched against the Icecat product index; anything still unresolved becomes a draft product flagged for review rather than being dropped.
  4. Write — a DistributorStock row is upserted per product and distributor with cost, MSRP, per-warehouse quantity and availability. New catalogue products receive a distributor-agnostic platform SKU.
  5. Rank cost — the product’s lowest cost, average cost and winning distributor are recalculated in the product’s own currency.
  6. Review — unmapped categories and brands surface in the mapping screens with a scored suggestion and its source.

Operating model

Distributor integration is a platform operations capability. The catalogue it builds is shared by every tenant; the controls that build it are not.

Platform operatorMSP and client tenants
Distributor feedsConfigures credentials, runs imports, reviews run historyNo access
Category and brand mappingReviews and approves every mappingNo access
Resulting catalogueOwns the shared product, cost and stock dataConsumes it through quoting, purchasing and the storefront

There are no plan gates — nothing here is sold as a tenant entitlement.


Data integrity

  • Re-running an import does not duplicate rows.
  • Concurrent-safe. Brand and category resolution is promise-cached so parallel workers wait on the same create rather than racing it. Import lanes are sharded by manufacturer part number so two lanes cannot create the same product.
  • Cancellable. A running import checks for cancellation at each batch boundary and ends recorded as cancelled, not silently overwritten as complete.
  • Crash recovery. On start-up, any import left marked running for more than six hours is reconciled to failed, so a killed pod cannot block the next run.
  • Manual overrides survive. An administrator’s edit to a product’s cost price is not clobbered by the next import.
  • Guarded auto-mapping. Brand aliases match on whole words only and two known placeholder supplier records are permanently excluded, after a loose substring match once mapped a large block of products onto a demo manufacturer.

Integrations

Icecat — unmatched distributor records are resolved against the Icecat product index and, on a match, gain manufacturer, model name, imagery and category. Brand resolution from an Icecat match is permitted only on a GTIN match, never on a bare part number, because two manufacturers can share one.

Solidlio quoting, purchasing and storefront — consume the resulting catalogue, costs and stock directly.

Two distributors, one catalogue, one cost sheet that is current as of the last import.

See this working on a real account.

Book a walkthrough and we will run this capability against your own clients, devices and tickets.

Book a demo All features

A 30-minute walkthrough against your own workflow. No slides.