Skip to content

Sample work · Shop & Commerce

Price lists from PDF and CSV as import for Shopify and WooCommerce

Two supplier price lists, one as PDF and one as CSV, were assigned to a shop's items. Safe matches go into the import file, uncertain ones into a review list instead of the shop.

Sample work (demo), not a client job. Built as a trial task with invented example data; the check figures below come from the automatic test run and are not polished.

What was built

  • Tables read from PDF, CSV with old character encoding properly adopted
  • Assignment via item number and description; ambiguous items go to a review list
  • Import files only with changed items, prices rounded according to fixed rules

Download shopify-import.csv Download preisliste-shopimport-demo.zip

Scanned price lists without a text layer require text recognition beforehand. Writing is done to import files; directly into a live shop requires its access.

How it was checked

Automatic test run on 2026-10-31, taken from the log (test data invented, figures measured):

  • PDF price list (17 rows, 2 pages, pdfplumber) + CSV (13 rows, cp1252, without EAN) against 26 shop items: 21 assigned (21/21 safe correct, 0 false), 3 in the review list (all 2 ambiguous included), 6 not found
  • Import only changed: 12/12 target items in Shopify and WooCommerce CSV

Limits

What this sample does not cover, so nobody expects more:

  • PDF only with text layer: scanned price lists (image PDF) need OCR beforehand (see sample 'ocr'); tables without lines or with merged cells need once adapted per supplier …
  • Fuzzy assignment via description is an assumption: what is not unambiguous ends up in the review list and needs ONE-TIME approval by the shop operator; the approval is handled in this …
  • If a supplier brand does not exist in the shop, a fuzzy search is performed across all items; synonyms (power strip/socket strip, switchable/with switch) are not recognized by rapidfuzz - they go into the …
  • Output are import CSVs (Shopify classic columns; Shopify also accepts the new template 'URL handle/SKU/Price'); writing directly to the live shop requires its API access (Shopify admin token …
  • Only items without variants or a separate SKU per variant; tiered prices, unit of measure conversion (PU 10 -> pieces) and currencies other than EUR are not built in
  • Pure purchase price changes without a new selling price are reported, but not imported (cost per item then remains old) - switchable, disabled in this sample

Something like this for your business?

Describe briefly what you need. You get a fixed price before I start; nothing happens without your yes.

To the workshop