Kokudankokuya — the sellable unit rides on the size, not on the product
A store we wrote for fragrance retail. One decision holds it together: the scent stays a single heading in the record while sizes become separately sellable units. Because price and stock are tracked on the size, adding one never means opening another heading in the catalogue. Beside the category tree, scent family and note open a second way to move through the range, and one perfume can hang off several notes, so the same record surfaces from different intents. The catalogue never called for a separate search or cache layer; the store sits on Laravel and MySQL. Boundary: no customer history, no booking, no service record.
Read the case study →