Evidence

What I fixed

Five cases from live operation. Always in the same order: what was wrong, what I built and what could be measured afterwards. Where I do not name the client, it is because I do not have their consent — the numbers are real.

356 items reported “in stock, ships today” with zero stock on hand an online shop with 12,000 products · client not named

A feed that lied about stock

Live

Problem: The shop was sending goods to a price comparison site that were not in stock. Customers ordered, the shop cancelled and its rating fell. The “export in-stock only” switch was on — the filter had two leaks you could not see any other way than by comparing the feed against real stock.

Solution: A watchdog that pulls the feed every hour, compares it against real stock and fixes what it finds. It only ever corrects in one direction, so it can never turn zero into stock.

Result: 356 false items disappeared from the feed. On its first live run the watchdog found another frozen item that had appeared 15 minutes after a manual fix — which is exactly why a one-off cleanup is not enough.

PythonPrice comparisonPrestaShopAutomation
65 → 88 median content score of a product page (out of 100) an online shop with 12,000 products · client not named

Pages nobody had time to write

Live

Problem: Thousands of products with no description, no parameters and no image text. By hand it would take months no shop has a person for — and it dragged the content score down across the whole catalogue.

Solution: Descriptions, parameter tables and image text filled in straight from data the shop already holds. Every value written must have a traceable source, otherwise nothing is written at all. Text written by a human stays untouched.

Result: Across 1,313 pages the median content score rose from 65 to 88 — without a single description written by hand and without anything being overwritten blindly.

PythonSEOPrestaShopContent
18 of 93 pages carried a photo of a completely different product an online shop with 12,000 products · client not named

A photo of somebody else's product

Live

Problem: Automatic photo matching from an external catalogue looked like it searched by barcode. In reality it was ordinary full-text search, which returns the nearest other product for an unknown code — and that looks like a match.

Solution: Every candidate from an external catalogue now has to pass a check: either the model code from our title is found on the candidate, or the candidate carries our barcode. If neither holds, the page stays without a photo.

Result: Eighteen of 93 pages had the wrong product photo — a dehumidifier had a photo of Christmas lights. After the fix a foreign photo cannot reach a page, and a duplicate photo is recognised by the image, not by file size.

PythonData checksImages
24/7 answers on availability, price and delivery outside working hours an online shop with 12,000 products · client not named

An assistant that answers from the catalogue

Live

Problem: Customers ask about availability, price or delivery in the evening and at weekends. By the time the answer arrives in the morning, the order has gone elsewhere. An ordinary chatbot only reads the text on the site, so it knows nothing about a specific product.

Solution: An assistant that answers from the real catalogue and stock, not from the text on the page. Price and availability come from the database, not from the model, and anything that cannot be backed by data never reaches the answer. When a human is needed, the conversation is handed over.

Result: Orders that came after a conversation with the assistant can be matched to specific carts — so they are measured, not guessed.

AIPythonPrestaShopMeasurement

Harmony Home

Live

Problem: A cleaning company paid for a domain and hosting for years but had no website at all. For Google it effectively did not exist, so new customers had no way to find it.

Solution: A site with five separate service pages, so each is found by whoever is looking for that one thing. Plus traffic measurement and cookie consent by the book.

Result: 18 visits from Google in the first ten days out of 62 impressions — so almost one in three people who saw it clicked. Average position 4. Google indexed all five pages.

WordPressSEOConsent Mode v2Copy
Open live

Apps and tools I build outside client work live in the Lab (in Slovak).

Send me your shop's address.

Tell me a few lines about what you need. Within a few hours you'll have a reply and a suggested next step — no commitment, plain language.

Get in touch