Andrea redesign 1: Step 4 Guanza handoff¶
Historical Step 4 record, including the separately authorized sample import. Do not replay its production import commands as part of a frontend release. See the redesign story and verified cutover for the final collection title and deployed status.
Date: 2026-09-24 (America/Bogota). Branch: jm/andrea-redesign-1.
Step 4 introduces the Guanza collection selector and the first collection browsing routes. This handoff records the catalog audit, the authorized one-time production sample import, and the local implementation contract. The storefront redesign itself was not deployed.
Catalog audit and authorized sample import¶
A read-only VPS audit on 2026-09-24 found the GUANZA collection with Medusa
handle guanza and six published products, and Piezas Intervenidas with handle
piezas-únicas and zero assigned products. The local database previously had
zero collections. The collection definitions map the first identity to the
public Orígenes route while preserving the Medusa identity; this is a
presentation mapping, not a production relabeling.
Justin authorized four sample products in Piezas Intervenidas for review. The opt-in
seed and media scripts ran successfully on the VPS. The four published
Muestra products have one demo-only inventory unit each:
| Handle | Display name | Provisional COP price |
|---|---|---|
muestra-oso-azul |
Muestra · Oso azul | 80,000 |
muestra-manos-corazon |
Muestra · Manos corazón | 65,000 |
muestra-figura-multicolor |
Muestra · Figura multicolor | 95,000 |
muestra-figura-rosa |
Muestra · Figura rosa | 75,000 |
Product image thumbnails were checked, and all four Garage media URLs returned HTTP 200. The sample descriptions and metadata identify their provisional prices and availability as requiring Andrea's review. No broad catalog reset was run.
The backend Dockerfile, Compose configuration, seed/media scripts, and source
assets are tracked in this repository. For this one-time import, the required
container scripts/assets were staged transiently on the VPS; the storefront
redesign and a rebuilt backend image were not deployed. A future opt-in import
from the tracked source requires an explicitly reviewed production operation
that builds and starts the matching Medusa image, then runs both scripts. From
/opt/andreaweb/current, the commands are:
docker compose --env-file /opt/andreaweb/shared/production.env \
-f compose.prod.yaml build medusa
docker compose --env-file /opt/andreaweb/shared/production.env \
-f compose.prod.yaml up -d medusa
docker compose --env-file /opt/andreaweb/shared/production.env \
-f compose.prod.yaml exec -T medusa \
npx medusa exec ./src/scripts/seed-sample-piezas.js
docker compose --env-file /opt/andreaweb/shared/production.env \
-f compose.prod.yaml exec -T medusa \
npx medusa exec ./src/scripts/import-sample-piezas-media.js
These are opt-in maintenance commands, not part of a normal release. Removing the demo products later is a deliberate Medusa Admin action after Andrea's review; do not run a broad catalog reset or repurpose the sample handles.
Route and link contract¶
Spanish is unprefixed and English begins with /en. Both use the Colombia
Medusa region (co) and COP. Guanza is the store brand; the carousel contains
the Orígenes and Piezas Intervenidas collections.
| Destination | Spanish | English |
|---|---|---|
| Collection selector | /guanza |
/en/guanza |
| Orígenes | /guanza/origenes |
/en/guanza/origenes |
| Piezas Intervenidas | /guanza/piezas |
/en/guanza/piezas |
| Product | /guanza/productos/<handle> |
/en/guanza/productos/<handle> |
| Cart | /guanza/carrito |
/en/guanza/carrito |
| Account, if exposed | /guanza/cuenta |
/en/guanza/cuenta |
Public links are generated through the storefront's localized publicLinks
builder. The storefront route matcher owns each /guanza/... and
/en/guanza/... path, while similarly prefixed unrelated paths remain outside
its scope. Old country-prefixed commerce paths are transitional; Step 4 does
not activate production redirects or change Nginx deployment configuration.
Content and asset provenance¶
The Orígenes selector uses conceptual hero artwork reused from the portfolio originals and optimized to WebP. The Piezas Intervenidas selector uses an optimized copy of Justin's supplied sample photo of the hands-and-heart sculpture. The four sample product images were optimized from his supplied JPEGs. The sample product content, recognizable-character/image rights, and collection copy still need Andrea's review and approval. Provisional prices and demo-only stock must not be presented as confirmed commercial information. Do not invent product descriptions, specifications, availability, or prices.
Boundaries and remaining work¶
The authorized sample products and their media were added to production; no broad catalog reset was run. The storefront redesign was not deployed. Step 4 adds public product-detail routes and fixes the title/gallery layout, but full localized commerce, cart/account continuity, and account readiness remain in Step 5. That step also owns route-preserving language switching and the remaining customer-facing translation. Andrea's review of sample content, image rights, and collection copy remains required before launch.
The backend build and storefront lint/build passed. The storefront test suite passed all 28 tests, including the new collection mapping and route checks. On the VPS, the seed created four sample records, a second run skipped all four existing handles, stored COP prices and thumbnails matched the definitions, and all four media URLs returned HTTP 200. Browser-level visual and cart journey testing remain for Step 6 before cutover.