Brendon Rice
Back to work

Case study · Northside Print & Design

Print shop, reinvented.

Visit the live sitenorthsideprint.com.au

Northside Print is a Brisbane print shop. Their website showed the products, but every price, cart and checkout lived on a rented print platform at a different address. I rebuilt all 83 priced products inside their own WooCommerce site with a custom pricing engine, then designed and built a new theme around it.

ClientNorthside Print & Design
RolePricing engine, migration, theme design and build
PlatformWordPress, WooCommerce
TimelineSeptember 2026, two weeks to staging
StatusLaunched

Drag to compare

www.northsideprint.com.au northsideprint.com.au
The old Northside Print home page
The new Northside Print home page
Before After

The old home page and the new one, at the same 1440 px desktop width.

The starting point

A website that sent customers away to buy.

The WordPress site had 96 products, but each one was only a link. Buy sent customers to a rented print platform with its own design, cart and checkout.

The brief: bring the shop home, with no change to what anything cost.

Before

www.WordPress96 products, all link-outs
shop.Rented print platformPrices, cart, checkout

After

northsideprint.com.auWooCommerce + custom pricing engineConfigure, price, upload artwork and pay on one site

Part 1 · The pricing engine

Rebuilding how a print shop prices a job.

Every size and quantity has its own price. Options add on top and change with the quantity, and rules hide options that don't apply. WooCommerce can't do that, so I built a pricing plugin with its own tables. Every job is priced on the server, so totals can't be tampered with.

Try it. This uses the real price table for Premium Business Cards, the same rows the live site uses.

Live demo

How the engine worked it out

    Total inc GST $117.37

    How the prices were proved

    Five steps. Zero guesswork.

    1. 01

      Collect

      Every price, option and rule pulled from the old admin, read-only.

    2. 02

      Model

      Pricing logic proved on the live shop and signed off.

    3. 03

      Import

      One command per product. Old addresses kept for redirects.

    4. 04

      Reconcile

      4,719 rows checked both ways. 0 differences.

    5. 05

      Test

      399 automated checks. Totals match to the cent.

    What customers and the shop get

    Live pricingInc and ex GST, emailed or saved as a PDF.
    Artwork stepName each job, drop the files, or upload later.
    Shop adminPrices, markup and rules. Bulk edits by CSV.
    No lock-inThey own the code. No licence fees.
    The artwork upload step between cart and checkout
    The artwork step. Each job gets a name, its files, and the product's templates alongside.
    The cart, showing a configured business card job
    The cart holds the job and its options. The price is worked out again on the server every time.

    Part 2 · The redesign

    A new theme, built from the mockups.

    Designed as HTML mockups for every page type, then built as a custom WordPress theme with no page builder. The client edits everything from the normal WordPress screens, and all 111 suburb pages kept their text for search.

    northsideprint.com.au
    The full new home page
    The new home page on a phone

    The whole home page, desktop and phone. Hover or scroll inside each one to move through it.

    A category page
    Category page
    The product page with the configurator
    Product page and configurator
    A suburb landing page
    One of the 111 suburb pages

    On a phone

    Every page was designed at phone width alongside desktop, including the configurator, cart and artwork upload.

    Old product page on a phone
    Before
    New product page on a phone
    After

    How it ran

    Two weeks to staging, one more to redesign.

    1. Kickoff
    2. Model signed off
    3. Engine built
    4. Catalogue in
    5. Staging live
    6. Design
    7. Theme built
    8. Live

    What it runs on

    StoreWooCommerce
    PricingCustom PHP plugin
    ThemeCustom, no builder
    PaymentsStripe
    DataCollector + verifier
    Tests399 checks
    AdminPrice tables + CSV
    HostingcPanel + staging
    Next project Foxera ↗
    Or All work