TDI Bridge — Vendor Pricing ⇄ NetSuite Inventory (Cost + Sale + UPC + Discontinued)

A simple “middle bridge” that takes two messy sources and produces a safe, reviewable import: updated cost, sale price, UPC verify/overwrite, and discontinued candidates — plus a grouped exceptions list before anything is imported.
Goal: fast updates without touching the wrong records Outputs: import-ready CSV + exceptions Safety gate: blocks CSV if critical errors exist
Presenter Notes (for you): keep it crisp — “what it is”, “what it outputs”, “what it prevents”, then stop talking.
  • 30-second framing: “We’re building a bridge sheet so updates are fast, consistent, and safe — then we import.”
  • What to emphasize: it prevents mismatched UPCs / duplicates / wrong item overwrites, and it flags discontinued candidates.
  • What NOT to over-explain: formulas, edge-case parsing, or every matching nuance — show the exceptions panel and let it speak.
  • Cool factor: “Drag-and-drop field mapping” makes it feel like a tool, not a spreadsheet wrestling match.
  • Close it out: “If this looks right, we run the import. If not, we fix the exceptions first.”

Simple Concept (what Cliff is aiming for)

G-wiz summary: We take the vendor’s updated pricing list and your NetSuite inventory export, then we “meet in the middle.” The middle (Bridge) does three things: (1) matches items, (2) computes the new numbers, (3) flags anything weird before import.

Matching rules (ranked)

  1. Exact: Vendor Style # matches NetSuite Item / Name exactly
  2. Variant: Vendor Style # matches the NetSuite item suffix after “:” (e.g., 330059:330059-R-080)
  3. Review-only: Style Name loosely appears in Display Name (flag; don’t auto-import)

Bridge output columns (what the import needs)

  • Internal ID (anchor for NetSuite import)
  • New Cost (Wholesale less 5% OR vendor “5% off wholesale”)
  • New Sale Price (MAP if used; otherwise MSRP)
  • UPC Action (keep / overwrite / missing)
  • DiscontinuedCandidate (safe flag — not an automatic closeout)
  • Notes (why it was flagged)
Shared for evaluation and discussion. The workflow, mapping logic, and validation checks shown here reflect the implementation approach used to generate safe import files.

Paste NetSuite Inventory Export

Paste as CSV or TSV. Include headers if possible. Recommended columns: Internal ID, Name/Item, Display Name, UPC Code.
NetSuite rows: 0 Detected columns: —

Paste Vendor Pricing Sheet

Paste as CSV or TSV. Recommended columns: Style #, WHLS, 5 % off wholesale, MSRP, MAP. UPC is optional.
Vendor rows: 0 Detected columns: —

Field Matching (Drag + Drop Mapping)

This is where we avoid “column guessing.” Drag detected columns into the targets. You can keep this very simple in the meeting: “We map once, then we run.”

Detected Columns (drag these)

NetSuite columns
Vendor columns
System helpers
Demo uses these defaults:
  • New Cost = 5% off WHLS if missing
  • Sale Price = MAP else MSRP
  • DiscontinuedCandidate = NetSuite item missing in vendor list

Targets (drop here)

Tip: If a column name is messy, the mapping still works because it’s based on what you drop, not what it’s called.

Bridge Results

Matches OK: 0 Warnings: 0 Critical errors: 0 Mode: Demo

Import Preview (first 25 rows)

Internal IDNew CostNew Sale PriceUPC ActionDiscontinuedCandidateNotes

Exceptions (grouped)

No Match
Multiple Matches
UPC Issues
Discontinued Candidates
Review-only Matches
Other Notes
Safety gate: CSV download stays disabled if critical errors exist (duplicates, missing Internal ID, ambiguous matches). In Demo Mode, download is disabled even if everything looks perfect.