measuredcode

Ukraine · Croatia

Built for a client · WooCommerce

Savchook

Online bookstore for a publisher of books on Ukrainian art and history, in Ukrainian and English. We have developed and run it since 2016.

Since 2016

developed and run

2 languages

one install

3 integrations

LiqPay · Nova Poshta · Checkbox

← For agenciesAll the work

Savchook homepage on desktop
Savchook homepage on a phone

The catalogue

A publisher’s catalogue, not a generic shop.

Every title carries the record a library or a collector looks for: binding, format, page count, paper, weight, series, year, print run and ISBN, with PDF sample pages to read before buying.

Beside the books the store sells wooden postcards, canvas panels, gift certificates, T-shirts and bags, and sets such as a book with a vinyl record. All of it goes through one cart and one checkout.

Savchook product page with book specifications
Product page: the full printed record
Savchook category page
Books, decorative goods and accessories

Problems we solved

Delivery that never breaks checkout

Nova Poshta’s branch list is refreshed every night. If the carrier’s API fails halfway, the sync stops without deleting a single branch, so customers still choose from the last good list.

Totals that add up

The delivery fee depends on the parcel’s weight and the payment method adds a commission. Both are calculated in one place and covered by automated tests.

Order emails sent from the admin

When staff resent an order email, there was no customer cart and the page crashed. Totals are now read from the order itself, and tests cover the case.

Hosting at a quarter of the cost

The store moved from one DigitalOcean server to two Hetzner servers: the shop in Docker behind Caddy, the database on a private network. The monthly bill fell to about a quarter.

Timeline

  • 2016The store comes to us for development, and it has stayed with us since.
  • 2017–2018Delivery pricing rebuilt: rates by parcel weight, Nova Poshta options and the checkout logic around them.
  • 2019Checkbox integration: fiscal receipts are generated online, with no hardware cash register.
  • 2022English version released, on the same install and the same catalogue.
  • 2025–2026Speed and reliability: automated tests and CI, release by release deploys, a delivery sync that survives API failures, and the move to Hetzner in Docker.
  • Sep 2026Homepage redesign, with better Core Web Vitals.

How it is run

  • Every change goes through a branch, a pull request, automated tests and a tagged release.
  • Changes reach staging before production.
  • WordPress, WooCommerce and plugins are updated on a schedule, security fixes first.
  • Two language versions on one install: Ukrainian and English.

Stack

  • WordPress
  • WooCommerce
  • PHP 8.2
  • MySQL 8
  • Docker
  • Caddy
  • GitHub Actions

Open the store →

Working on a store?

Tell us about it: a design, a problem or just an idea. We’ll talk it through.

Discuss a project