LVT Flooring Direct

A Shopify storefront for a UK luxury vinyl flooring retailer, with a room visualiser and a pack-based buying model that fixed a pricing flaw costing customers up to £40 an order.

A Shopify storefront for a UK luxury vinyl flooring retailer selling the Ambiance range: ten ranges, over ninety colourways, and a product that cannot be sold the way Shopify expects.

Flooring is advertised by the square metre but ships in packs, and a pack is rarely a whole number of metres. Shopify baskets only hold whole numbers, so a 13 square metre order quietly rounded up to 16, and on one range a single pack was billed as nearly double. I rebuilt the model so the shop advertises per square metre but transacts per pack, with the advertised rate stored in a product metafield as the single source of truth. I verified it against real checkout maths across four ranges: the worst overcharge dropped from about £40 to 3p. On top of Shopify's Horizon theme I built a custom layer of thirteen sections (around 3,000 lines of Liquid, CSS and JavaScript): a room visualiser that crossfades full scenes as you move through the swatch rail, a packs calculator that makes an unfulfillable quantity impossible to enter, a multi-profile delivery matrix validated with draft-order pricing, and a cross-range sample tray. Around twenty-five idempotent Node scripts drive the whole catalogue through Shopify's Admin GraphQL API, each reading its result back so a mistake is one flag away from being reverted. I also ran a WCAG contrast audit and derived an accessible blue for text, since neither brand blue passes against white.

Designed and built as a web developer at The Herd Agency.

  • Role: Designer and developer (client project)
  • Year: 2026
  • Category: Shopify storefront
  • Stack: Shopify, Liquid, JavaScript, GraphQL, Node

Live site

LVT Flooring Direct preview