Perfect Blue · Online shop for video games and accessories

Sales modules and database optimisation for a video game shop

For Perfect Blue, a WooCommerce shop with several thousand products, I wrote a plugin with sales modules, including a release calendar, lists of price drops and new arrivals, and bestsellers based on real sales. I also audited the shop’s performance and cleaned up its database.

Home page of the website: Perfect Blue
sales modules in one plugin
6
automated tests before every deployment
162
rows searched when sorting product lists
15.5M → 7K

01 · Task

Task

Perfect Blue sells games and accessories for consoles. The shop has several thousand products, and its traffic depends on new releases and pre-orders. Ready-made WooCommerce plugins could not do what the client expected. The shop needed lists of new releases, titles back in stock and price drops calculated from the actual reduction rather than from a crossed-out price, both on the home page and on separate pages, with tabs for each platform as in the client’s mock-up. Speed was a separate issue. With several hundred thousand entries in the order tables, the shop responded slowly to logged-in customers.

02 · Solution

Solution

I wrote a plugin in which every module is a separate part that can be switched off:

  • Release calendar: a monthly grid and a list of upcoming titles, built from the release dates stored with the products.
  • Price drops and items back in stock: the plugin adds its own timestamps to products. A timestamp is created when the price really drops or an item comes back in stock, so the lists show what actually happened.
  • New arrivals and bestsellers: bestsellers come from orders placed in the last 30 days, split by platform, with a separate tab for pre-orders.
  • Sorting: sold-out products move to the end of every list, also after filtering.
  • Settings: the client changes the section names, the order of the tabs and the limits without my help.

I developed the modules in a test environment, with automated tests and code quality checks on every change, and before the code went to the live shop, it passed a separate security audit. The performance audit ran in parallel. I reduced the amount of data loaded every time a page opens and sped up the sorting of product lists, so the shop now searches a few thousand rows instead of more than ten million. With the cache settings I chose, the prices in the modules are always up to date and the shop does not rebuild hundreds of product cards on every visit.

03 · Result

Result

The home page and the other pages of the shop show new releases, price drops, items back in stock and bestsellers without any lists maintained by hand. Sorting product lists searches a few thousand rows instead of more than ten million. Further fixes and modules reach the shop the same way: first the test environment, then the live shop.

We have been working with onenet for a long time. We can no longer imagine our company operating without the professional support, day to day and in crisis situations, that keeps the website running without interruption. We sincerely recommend them. PerfectBlue.pl
D C (PerfectBlue.pl) Google review

My translation of a review posted in Polish on Google. I do not run my own checks on whether the reviews are genuine.

Screenshots

Gallery of subpages

1 / 2
The releases page, with a monthly calendar showing the number of titles on each day and, below it, a day-by-day list of releases.
The back-in-stock page, with tabs for each platform and a product grid with discount badges.

I reply within 24 hours

Free quote

Tell me what needs to be built or fixed. I answer every enquiry myself and do the work myself.