PixelfarbenHome

From practice

Projects running in production

A selection of work from recent years. Where clients are not named, that is deliberate — the technical details still hold.

Jewellery & manufacturing

Three sales channels in a single Shopware installation, plus a stockist finder fed weekly from a supplier list — including resolving addresses into coordinates.

Situation

The manufacturer runs a consumer store, an ordering channel for trade partners and an international presence — technically all one installation. The stockist finder was maintained by hand: someone entered new outlets one by one, and address changes usually surfaced only when a customer complained.

Solution

The import now runs as a dedicated module in the administration. An uploaded stockist list is reconciled through a stable identifier per record: known entries are updated, new ones created, and coordinates are recalculated only where an address actually changed. The upload runs weekly without anyone touching individual records. In parallel the installation was moved from 6.7.9 to 6.7.12.

Sales channels in one installation
3
Stockist records reconciled
around 870
Weekly maintenance effort
one upload

Plastics processing

A configurator that prices sheets by dimension — and a shipping calculator that accounts for the carriers' girth rule on long, awkward cuts.

Situation

The assortment consists of sheets that exist in no fixed size. Customers enter dimensions, material thickness and finishing options, and the price follows from that. Shopware's standard product grid cannot express this. Shipping added a second problem: a long, narrow cut weighs little but exceeds carrier size limits, so weight-based calculation kept producing shipping costs that were too low.

Solution

The configurator derives the price from area, material thickness and the chosen finishing steps. The shipping calculator additionally checks girth and switches to the bulky-goods tariff when it is exceeded, instead of relying on weight alone. Both run inside the checkout, with no detour through customer service. The installation was moved to 6.6.10 in parallel, tested beforehand on a staging copy.

Pricing
by dimension, not by variant
Shipping cost
includes girth check
Service enquiries
no longer needed as standard

Wholesale

A search that finds nearly 9,200 variants despite typos — plus an internal application covering a delivery workflow of forms, reminders and PDFs.

Situation

The catalogue holds around 2,400 products with just over 9,100 variants. The default search failed to find items that demonstrably existed in the store as soon as one letter in the query was wrong or a name was spelled slightly differently. Separately, delivery dates were being agreed through spreadsheets and email — with the usual result that replies got lost.

Solution

OpenSearch now powers the search, with typo tolerance and filters across the variant properties. The internal process became a dedicated Symfony application: customers receive a form to confirm their date, the system follows up on a staged schedule, and each case ends in a PDF for the record. The alternative would have been licensing a standard workflow platform.

Products indexed
around 2,400
Variants indexed
around 9,200
Scheduling
a form instead of an email chain

Culture & events

A compromised online shop serving a planted phishing page — cleaned, secured, and then rebuilt onto a structure with a considerably smaller attack surface.

Situation

The shop was intermittently serving visitors a foreign sign-in page. Several planted access paths sat on the server, letting attackers return at any time. Between system files and legitimate content it was not obvious at first glance what belonged there and what did not.

Solution

The scope came first: which files had changed, which access paths existed, when the incident began. Clean-up followed, along with rotating every credential and closing the routes that had been used. For the content that needed no shop functionality, a lean custom solution with a clearly bounded interface took its place — a considerably smaller attack surface than the previous setup.

Phishing delivery
stopped
Planted access paths
removed
Attack surface
reduced through rebuild

Let us talk about your project

An extension, an upgrade, or a store that has become slow: describe the situation briefly and you will get an honest assessment.