Deploy stack su Proxmox / deploy (push) Failing after 3s
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
1.8 KiB
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). RoutePOST /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/paymentinizializza la payment session Stripe e restituisce ilclient_secret;POST /shop/cart/completecompleta 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.mdaggiornato con l'elenco route shop.