WooCommerce shop with an automated catalogue
Vooma.dk
A Danish web shop with over 12,000 products on WordPress and WooCommerce. The catalogue arrives from a supplier feed, orders are forwarded automatically, and search, menu and offers are rebuilt to survive that volume.
Vooma is a Danish web shop with over 12,000 products for the home, garden and leisure, built on WordPress and WooCommerce. The catalogue comes from an external supplier's feed, and orders are forwarded automatically to that supplier, who packs and ships. There is no warehouse and no packing table.


A catalogue nobody typed
The products are not created by a person. They arrive from the supplier's feed, and stock and prices are pushed in from outside continuously. That changes what the job is: instead of editing products, the work is about receiving data whose shape you do not control, and making it behave like a shop.
So a product is only published once it actually has both stock and a price. It sounds like a detail, but it is the difference between a shop where everything can be bought and a shop full of products that fail at the basket.
When everything was on sale
The supplier's prices arrive without sale prices. WooCommerce reads an empty list of reduced products as "no filter" — and therefore showed the entire catalogue as deals. The offers page promised 12,000 bargains, none of which were.
Now only real reductions show. When there are none, the offers row disappears from the front page, the menu item removes itself, and the page says plainly that there are no offers right now. Less impressive, and considerably more true.
Search that understands what the customer means
WooCommerce's default search looks for words in titles. That works for a hundred products and breaks at twelve thousand, where titles are long, machine-translated and full of measurements and materials.
The search here is rebuilt to rank by what a customer actually means. Words describing the product weigh more than words describing something it fits. Item numbers are kept out of the index so they do not drown real words. The index takes small updates every hour and is rebuilt overnight, so search keeps up with a catalogue that never stops changing.
A menu that builds itself
With this many products, navigation is the shop. The menu is built from the category tree: departments sorted by size, empty categories skipped, and as many shown as fit — the rest gathered under "More". It is cached, so it does not cost a database query per visitor.
On a phone, unfolding anything sideways makes no sense. There the departments become chips and a drawer with an accordion.
The details that decide whether anything is bought
Sold-out products are hidden rather than shown as disappointments. Products with several variants open on the cheapest one and say there are more. The delivery estimate on a product page is that product's own, not an average. Shipping is flat — 29 kroner whether it is a screw or a sofa — and it says so where people look for it.
The shop also has a seasonal page. Coming up to Christmas, a menu item and a front-page banner appear on fixed dates and disappear again, without anyone having to remember.
Operations
The shop runs on the isolated hosting platform I operate: its own Linux user, its own PHP-FPM pool, its own database and its own certificate. The supplier sync runs on the server rather than on a developer machine, because it is push-based — the supplier calls the shop, not the other way round.
Shall we have a chat?
Tell me briefly about your task — I will get back to you with an honest take on what makes sense.