Product import
Bulk-create and update products, variants, prices and media.
// Growth · Data
Custom import and export for Shopware in any CSV, XML or JSON format — mapped to your fields, validated and scheduled.
// What you get
Bulk-create and update products, variants, prices and media.
Read supplier and manufacturer feeds in their format, automatically.
Keep stock and prices current from ERP or supplier data.
Export orders to ERP, fulfilment or accounting in the right format.
Map any source columns to Shopware fields, with transformations.
Bad rows caught and logged so imports never corrupt your catalogue.
// Why it matters
Standard importers rarely match real supplier feeds and custom formats. Codewerk Solutions builds tailored import and export for Shopware — reading any CSV, XML or JSON, mapping it to your fields with the transformations you need, validating every row, and running on a schedule. Bad data is caught before it reaches your live catalogue.
The result is a hands-off data pipeline between your suppliers, ERP and shop — saving hours of manual work every week and keeping your catalogue accurate.
// In detail
What we actually do under the hood — so you can judge the work, not just the promise.
Imports run as queued jobs, not as a cron script that 'usually works'. Each row becomes a message, a worker processes it, failures retry with backoff, and every job is idempotent so a re-run updates instead of duplicating. CSV, XML, JSON, EDI and direct database or API sources are all supported.
One API request per product turns a 100,000-item import into a 28-hour job. We use bulk payloads in batches of 50–200 (measured on staging with your data), and defer reindexing to the end so the import does not become an outage.
Validation before writing: required fields, data types, price sanity checks and duplicate detection. A malformed row is rejected with a readable error, not silently written as a €0.00 product. Every run is logged so you can answer why article 4711 did not arrive.
// Process
Validated, queued, idempotent — and re-runnable without fear.
What the source actually contains — not what the documentation claims.
Every target field gets one source of truth. Ambiguities resolved in writing.
Types, required fields, price sanity and duplicates checked before a single write.
Full run on staging against a production copy. Errors reported per row, readably.
Batched writes via the sync API, reindexing deferred to the end.
Scheduled runs with alerting on failure — and on absence, which is the dangerous one.
// FAQ
Yes — via its API, a database view, or a file drop, depending on what your ERP offers. We build a middleware service that owns the mapping, the retries and the audit log so the shop and the ERP never disagree.
Nothing bad. Failed messages retry, a poison message goes to a dead-letter queue instead of blocking everything, and because jobs are idempotent you can safely re-run the whole import.
From nightly to near real-time. Stock and prices usually run every few minutes via events; the full catalogue runs nightly. We alert on a missing run, because a silent import that stopped three weeks ago is worse than one that fails loudly.
If your file is a clean CSV with one row per product and columns that already match Shopware fields, yes — use it and keep your money. A custom import earns its cost when the source is an XML feed with nested variants, when customer prices come from the ERP, when one supplier ships units in pieces and the next in boxes, or when it has to run unattended every night.
Written naively, over a day — one API call per product is what turns an import into an outage. Batched properly, with reindexing deferred to the end, the same catalogue lands in a fraction of that. The honest answer is that we measure it on staging against a copy of your data, because variant count and media weigh far more than the row count.
The import rejects the run instead of writing nonsense, and you get an alert. That is the whole point of validating before writing: a renamed column becomes a readable error, not five thousand products at zero euros. Nobody can stop a supplier from changing a feed, but the pipeline can refuse to guess what they meant.
Partly. Formats, units, encodings, decimal separators and inconsistent naming can all be normalised in the mapping, and duplicates can be detected. What no import can do is create data that is not there: if the feed has no weight, no EAN and a two-word description, you get a product with no weight, no EAN and two words. That gap is a conversation with purchasing, not a technical problem.
Send a short brief — we reply within one business day.