# Project Log — Madalice Shoe Customizer

Chronological log of the project. Version numbers refer to the plugin
([plugin/shoe-customizer/CHANGELOG.md](plugin/shoe-customizer/CHANGELOG.md) is the authoritative
per-release changelog); this file is the higher-level project narrative + relocation record.

## 2026-07-25 — Relocated to its own repo (`projects/madalice`)

Moved the whole project out of the Evolution repo — it's a standalone WooCommerce plugin for
corporatekicks.com.au, not an Evolution feature. Created this fresh repo (single initial commit);
prior per-commit history stays on the evolution `shoe-customizer` branch. Consolidated the two
divergent Playwright harnesses into `tests/sc-addtocart-test.mjs` (kept the newer `browser-tools`
copy) and dropped the stale in-tree one. Added [AUDIT.md](AUDIT.md) + this log.

## 2026-07-25 — v0.4.1 — Phase 1b fix

Paid options / size runs wouldn't save: the "Re-sync zones from seed" form was nested inside the
main Save form (invalid HTML), so its hidden `sc_resync_zones` action leaked into Save and clicking
**Save shoe** fired the re-sync handler instead. Re-sync form made a sibling wired via HTML5
`form=`; Save now saves.

Also (POC): prototyped paid option groups in the browser compositor (palette flat-price + colour
picker) to de-risk the storefront option UI.

## 2026-07-24 — v0.4.0 — Phase 1b (options + size runs + logo upload)

Three storefront features in one release (Shane: "all three together"):
- **Priced option groups** — swatch/radio/select/text add-ons with `+A$` deltas, required flag,
  one visibility rule per group; live running price.
- **Size-run grid** — quantity per size → line quantity; **2-pair MOQ**, server-enforced.
- **Logo upload** — PNG/JPG ≤5 MB, drag-to-move + corner-scale within a defined print area.
- New secured upload endpoint (`SC_Upload`); cart/order re-validates + re-prices server-side;
  editing chrome drawn on a separate canvas so it never bakes into the mockup. No schema change
  (`sc_db_version` stays `1`). Decisions locked in [docs/PHASE_1B_SCOPE.md](docs/PHASE_1B_SCOPE.md).

## 2026-07-24 — Phase 3 → v0.3.3 (cart / order integration)

- v0.3.0 — WooCommerce cart/order integration: design JSON + mockup on the line item, server-side
  price.
- v0.3.1 — allow add-to-cart for priceless "build your own" products.
- v0.3.2 — customizer becomes the **only** buy path for shoe products.
- v0.3.3 — fix "Design" cart/order summary always showing "All white".

## 2026-07-24 — Phase 2 (frontend engine)

`[shoe_customizer]` shortcode + live canvas, consuming the REST config unchanged from the proven
POC compositor.

## 2026-07-24 — Deploy tooling

`build.sh` (version-aware zip), read-only `smoke-test.sh`, and the deploy runbook
([plugin/DEPLOY.md](plugin/DEPLOY.md)) — three paths (zip upload / rsync / CI).

## 2026-07-24 — Phase 1 → v0.1.0 (data model + admin builder)

Deployable WP/WooCommerce plugin: 8-table `wp_sc_*` schema (dbDelta), no-code admin builder,
config REST endpoints, idempotent seed importer for all 5 shoes.

## 2026-07-24 — Phase 0 (POC)

Runtime multiply-tint compositor proven on real reverse-engineered zone slices, then extended to
**multi-shoe** with a "Pick a shoe" step across 5 models (AF1, Samba, Dunk Low, Advantage, Court
Vision). Render path proven end-to-end on real assets — everything after is conventional plugin
work on top.
