Files
iti-technology/prompts/13-api-proxy-shop.md
Lorenzo SanesiandClaude Opus 5.5 b83ce039fb
Deploy stack su Proxmox / deploy (push) Failing after 3s
Piattaforma ITI TECHNOLOGY: monorepo, Medusa, API, sito, area riservata e deploy
Monorepo npm con apps/public (Angular SSR), apps/private (Angular SPA),
apps/api (Fastify), packages/shared e packages/styles; Medusa 2.21 in medusa/;
infrastruttura Docker (Postgres PostGIS+pgvector, Redis, Caddy, backup) e
workflow Gitea Actions per il deploy via SSH a ogni push su master.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018jQyT6dR9czzGwqb7FkG6u
2026-10-20 09:30:48 +02:00

1.8 KiB

13 — API: proxy shop (catalogo, carrello, checkout)

Leggi CLAUDE.md.

Obiettivo

Esporre al frontend le operazioni e-commerce passando sempre da Fastify.

Cosa fare

  • Catalogo (pubblico): GET /shop/products (paginazione, categoria, ricerca), GET /shop/products/:handle, GET /shop/categories. Cache in memoria breve (es. 60s) per le liste.
  • Prezzi: se la richiesta ha un utente autenticato installatore approvato, il calcolo prezzi deve usare il suo customer (price list riservata); altrimenti prezzi standard.
  • Carrello: id carrello in cookie cart_id (httpOnly). Route POST /shop/cart, GET /shop/cart, POST /shop/cart/items, PATCH /shop/cart/items/:id, DELETE /shop/cart/items/:id, POST /shop/cart/address, GET /shop/cart/shipping-options, POST /shop/cart/shipping.
  • Se l'utente è loggato, il carrello viene associato al suo customer (/internal/carts/:id/customer); se fa login con un carrello guest già aperto, il carrello viene associato.
  • Checkout guest: obbligatoria solo l'email.
  • Pagamento: POST /shop/cart/payment inizializza la payment session Stripe e restituisce il client_secret; POST /shop/cart/complete completa il carrello dopo la conferma Stripe lato client e restituisce l'ordine. Verifica nella documentazione Medusa v2 la sequenza esatta (payment collection → payment session → complete).
  • Il frontend non riceve mai chiavi o id interni Medusa non necessari.

Criteri di accettazione

  • Flusso completo testabile da file .http: crea carrello → aggiungi prodotto → indirizzo → spedizione → pagamento (carta test Stripe) → ordine creato.
  • Stesso flusso con utente installatore mostra i prezzi riservati.
  • Carrello guest associato correttamente al login.
  • CLAUDE.md aggiornato con l'elenco route shop.