From Supplier PDFs to Product Data: Where AI Needs a Second Check

Illustrated infographic summarizing: From Supplier PDFs to Product Data: Where AI Needs a Second Check

By Greg Nowak. Updated 7 October 2026.

A supplier PDF can give you a perfectly plausible price for the wrong product. Or the right product with a price per box, while your shop sells individual items. The extraction looks tidy; the catalogue update still needs work.

AI is useful for interpreting awkward layouts and inconsistent descriptions. Before its output reaches your store or product information system, you need to check coverage, product identity and what the values mean. For business owners, operations leads and agency teams, the practical question is: which records can proceed, and which decisions need a person?

Start with the import you actually need

Agree whether this batch creates products, updates existing ones or does both. List the fields it may change. A supplier price update should not casually overwrite descriptions your team has already edited.

Choose one supplier format and a representative sample for the first run. Include difficult records: missing identifiers, pack prices, repeated SKUs and variations. Agree who approves commercial questions and who owns the destination mapping. This keeps technical cleanup from becoming an endless exchange of spreadsheets.

Check that the whole file is accounted for

OpenAI’s Responses API processes PDFs and spreadsheets differently. For vision-capable models, PDF input includes extracted text and page images. Spreadsheet file inputs use an augmentation process that parses up to the first 1,000 rows per sheet, with summaries and header metadata. These are limits of that input route, described in the official file-input documentation.

For complete workbook ingestion, read relevant sheets and rows in Python before using AI to interpret unclear content. Record the filename, version, sheet or page, and source record location. Explain exclusions such as headings, totals and discontinued products.

For PDFs, track page coverage and product completeness separately. A processed page may still contain a missed product. Check extracted records against visible tables or available supplier totals, and inspect dense layouts. Never treat a successful API response as evidence that the catalogue is complete.

Require evidence alongside extracted values

Use a consistent extraction schema: supplier, supplier identifier, description, raw price, currency, selling unit, pack quantity and source location. Keep raw wording alongside proposed values. Where information is missing, allow an explicit unknown rather than encouraging the model to fill every field.

OpenAI Structured Outputs can enforce a response schema, but the documentation warns that outputs can still contain mistakes. Your application must also handle refusals and incomplete responses before treating a record as extracted.

Verify critical values against the source, including any page reference supplied by the model. Review ambiguous evidence before approving a record; a confident-looking answer cannot settle an unclear selling unit.

Supplier data: what can proceed and what needs a decision
Checkpoint Proceed when Hold when
Coverage Relevant records are accounted for Pages, rows or products may be missing
Product match An approved identifier maps to the intended SKU The key is blank, unmatched or unexpectedly duplicated
Price and units Currency, pack basis and measurement meaning are confirmed A conversion requires an assumption
Change approval Only agreed fields change under documented rules A change exceeds an agreed review threshold
Import test Destination records match the approved export Rows fail, fields disappear or unexpected products appear

Match the product before changing its data

Store identifiers as text. Leading zeros and punctuation may matter. If product codes are unique only within a supplier, use supplier plus identifier as the matching key. Reject blank and null keys before joining; pandas can match null keys to each other.

For implementation, retain incoming records with how="left", expose matches with indicator=True, and enforce the expected relationship with validate="one_to_one" or validate="many_to_one". The latter requires unique keys in the right-hand lookup. These controls are documented in pandas.merge.

Investigate duplicates instead of silently dropping them. Similar names can help a reviewer find a candidate, but require an approved mapping before updating an existing SKU.

Settle pack prices, units and commercial rules

If a supplier lists EUR 48 for a box of 12, EUR 4 per item is a possible conversion only after confirming that your catalogue sells those items individually. Keep purchase cost separate from retail price, and confirm tax treatment, minimum order quantity and the price’s effective date.

Measurements need definitions too. Product weight, shipping weight and pack weight are different fields. Confirm meaning and source unit before converting. Document decimal separators, rounding, attribute vocabulary and any currency conversion rule. Preserve raw and normalized values so a reviewer can follow the calculation.

Compare proposed updates with current catalogue values. Use agreed thresholds to flag unusual changes, and hold conflicting supplier prices for a commercial decision. A numeric value that passes formatting checks may still be unsuitable to publish.

Make the exception report usable

Each held record should show the source location, original value, proposed value, failed check and decision needed. Assign an owner: the catalogue lead might resolve attributes, while purchasing confirms pack quantities and prices.

Account for every incoming product as approved, held or deliberately excluded. Preserve links where one source product creates several destination rows. Record-level reconciliation matters as much as matching totals. Save reusable corrections as rules; keep one-off judgments attached to their records.

Test the destination, then expand the batch

Export approved records only. For WooCommerce, follow its CSV importer guide: use UTF-8 CSV, check column mappings, give variations unique SKUs and consistent parent references, and test a small import on staging before a large batch.

Include an existing-product update and variations where relevant. Inspect failed or skipped rows, then open the products and compare prices, attributes and relationships with the approved data. In WooCommerce 11.1 and later, qualifying unmatched variation rows can be created during an update import, so test the behavior on your installed version. Before production, back up the store and agree how to reverse the changes.

Scope a first supplier-data workflow

Greg can help define the acceptance rules and build a Python/OpenAI workflow with traceable extraction, SKU matching, an exception report and a tested export. A representative supplier file and a catalogue export are useful starting points. Get in touch with Greg to discuss the first batch, the destination and the decisions your team needs to retain.

Related on GrN.dk

Need help with this kind of work?

Discuss your supplier-data workflow with Greg Get in touch with Greg.

Sources

Latest articles

Let’s Encrypt moves to 64-day certificates in February 2027. Check that renewal, validation, deployment and alerts work across the services you’re responsible for.

Website slowing down during campaigns? Find where requests queue across HTTP/2, NGINX, Apache and PHP-FPM, then test whether a targeted change helps.

When a customer requests access to their personal data, AI can help bring together material from WordPress and Microsoft 365. Here’s how to keep track of data sources, responsibilities and checks.

Put supplier matching, duplicate checks, arithmetic validation, and exception review into your AI invoice workflow before records reach your accounting system.

A small Drupal fix can affect unrelated live settings. Review the full configuration import, resolve environment differences and rehearse deployment and recovery.

An ingredient change may mean a menu needs updating, even when the recipe’s modification date stays the same. Here is how AI can help with review and approval in WordPress.

Check whether AI crawlers can reach your service and product content. Compare response HTML with rendered pages, then identify practical CMS and rendering fixes.

Improve site search for customers who use everyday language. See where synonyms, semantic retrieval and behavioural signals help, while keeping product codes reliable.

Follow customer data through n8n, OpenAI and your CRM. Check who can access retained copies, what redaction hides and whether deletion works before scaling.

When checkout fails, your operations provider needs concrete evidence to work with. See how AI, dmesg and journalctl can gather the evidence into a useful incident ticket.