All works
Case Study — E-commerce

True Wear

Built · not public

A streetwear store written from scratch in PHP and vanilla JavaScript — no Shopify, no WooCommerce, no framework. Catalogue, per-size stock, cart, orders and an admin panel, all in one codebase with nothing to license and nothing to update every month.

Client
Streetwear retailer
Scope
Design, build, admin
Year
2026
Delivery
Handed over, offline
truewear.rs — local build
TrueWear homepage, full page Scroll inside the frame

The brief

The client was selling premium streetwear out of Instagram DMs. Stock, sizes and prices lived in chat threads, and every sale stalled on the same two questions: is this piece original, and which size will actually fit me.

The store is built to answer both before anyone has to ask. Authenticity is stated where the money decision happens, and sizing is a calculator rather than a chart nobody reads.

Under the hood it is PHP on MySQL with PDO prepared statements, and vanilla JavaScript on the front end. Stock is tracked per size, not per product, so a sold-out large is unbuyable while the medium stays on sale — and the cart refuses to exceed what is actually on the shelf.

  • Size calculatorHeight, weight and build return one recommended size — no size chart.
  • Per-size stockFive sizes tracked separately, with the cart capped at real availability.
  • Live filteringCategory, brand, price range and sorting — no page reload.
  • Reviews tied to productsRatings stored per item and surfaced on both the product and the homepage.
  • Orders and adminEvery order stored with its line items, managed from a built-in panel.
  • Restock listEmail signup for sizes and limited colours that sold out.

Inside the build

01

Size anxiety, handled in three fields

Returns on fitted streetwear are almost always a sizing problem. Instead of a chart, the store asks for height, weight and build, and returns one size with a plain-language reason — tuned to how this particular cut runs, not to generic tables.

Size calculator
02

A catalogue that filters in place

Categories, brands, a price slider and sorting all narrow the grid without a page load, and the counters at the top stay in sync. Sale items render the original price struck through next to the current one, so the discount reads at a glance.

Product grid with filters
03

Product pages built to answer objections

Thumbnail gallery, size selector that reflects real stock, quantity stepper, and a trust row — free delivery, returns, cash on delivery — directly under the buy button. Customer reviews with dates and ratings load below, critical ones included.

Product page
04

An admin panel the owner can actually run

Products, orders and reviews in one dashboard, with totals for revenue and order count on top. Stock is edited per size from the product table, images are managed per product, and new items go live without touching a single line of code.

Admin panel dashboard

Screens

On the phone

Mobile home

Home

Mobile product

Product

Mobile cart

Cart

Stack

PHP MySQL JavaScript HTML5 CSS3