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.