Case study · Commerce
Thinkware Store — US & Canada.
Two official storefronts for the same brand, running on one data contract. The work is keeping catalogue, support, pricing, and checkout consistent across both markets while the product range keeps moving.
- Client
- Thinkware
- Scope
- Commerce data & markets
- Status
- Ongoing
- Stack
- WooCommerce · US/CA
Context
Dash-cam buyers compare on specifications, compatibility, and installation. The catalogue carries those details across many SKUs, bundles, and generations. Support repeats the same compatibility and setup answers in both markets.
Canadian buyers need local pricing, tax, shipping, and spelling. The catalogue overlaps with the US but is not identical. Two storefronts drift quickly when there is no shared structure underneath.
The brief
- Make catalogue attributes consistent enough to retrieve and compare.
- Turn repeated support answers into a reusable macro library.
- Keep pricing, tax, and checkout correct in both markets.
- Run both storefronts on one data contract, not two copies.
- Keep releases and integrations stable as the catalogue changes.
What I did
Data contract
One product model with market-specific fields: price, tax, availability, and copy.
Catalog structure
Attribute coverage, naming, and bundle relationships across the range.
Support data
Reusable answers for compatibility, installation, and firmware questions.
Multi-market operations
Regional pricing, catalogue parity checks, checkout, and release support.
What shipped
- A structured catalogue layer that supports retrieval and comparison.
- A Canadian storefront sharing structure with the US catalogue.
- Market-specific pricing, tax, and checkout configuration.
- Catalogue checks that catch drift between the two markets.
- A support macro library built from real product questions.
This is the unglamorous layer AI depends on. No model fixes a catalogue where the same product has three names and no attributes.
Next
Support triage and catalogue enrichment are the natural next workflows on this data. Both start with an eval set, not a prompt.