Initial scaffold: Shopify recesso (withdrawal) compliance app
- Remix (TypeScript) + Polaris, official Shopify app template - Prisma multi-tenant schema (Settings, ExclusionRule, WithdrawalRequest, AuditLog, WebhookEvent) on Postgres - Mandatory GDPR compliance webhooks (data_request, redact, shop/redact) + HMAC handlers - API version pinned 2026-04, scopes read_orders/read_products - Fly deploy config; two-env strategy (custom now, public later) - Dev setup: shopify.web.toml + Vite allowedHosts for tunnels - Docs: PLAN.md, ANALISI-REQUISITI-LEGALI.md (Art. 54-bis compliance) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Mv83a29B4eFv5ixoj6PoE1
This commit is contained in:
58
ANALISI-REQUISITI-LEGALI.md
Normal file
58
ANALISI-REQUISITI-LEGALI.md
Normal file
@@ -0,0 +1,58 @@
|
||||
# Analisi requisiti legali — funzione di recesso (Art. 54-bis Cod. Consumo)
|
||||
### Verifica del brief Gemini contro fonti primarie/secondarie
|
||||
|
||||
> **Verdetto:** SUFFICIENTE-CON-INTEGRAZIONI. Impianto operativo corretto, ma base giuridica
|
||||
> errata e lacune sostanziali. Questo documento è la base legale verificata su cui costruire la
|
||||
> matrice requisiti dell'app.
|
||||
>
|
||||
> **Avviso metodologico:** EUR-Lex (testo diretto Dir. 2023/2673 e 2011/83) **non parsabile** dai
|
||||
> tool. Fonti usate: testo Art. 54-bis (Brocardi/Normattiva) + commentari (Stefanelli, CMS,
|
||||
> Studio MP, PMI.it). Voci "⚠ da verificare" = da confermare su testo UE primario.
|
||||
|
||||
---
|
||||
|
||||
## 1. Inquadramento corretto (3 correzioni critiche vs Gemini)
|
||||
|
||||
| Tema | Gemini | Realtà verificata |
|
||||
|---|---|---|
|
||||
| Norma UE | "Art. 11a Dir. 2011/83" | **FALSO.** L'art. 11a non esiste in questo contesto. La funzione deriva da Dir. (UE) 2023/2673 (nuovi artt. ~16 bis–16 septies, divieto interfacce manipolative ~16 sexies). ⚠ numero esatto da confermare su EUR-Lex |
|
||||
| Origine/ambito UE | e-commerce beni | Dir. 2023/2673 nasce per **servizi finanziari a distanza** (abroga Dir. 2002/65/CE). A livello UE il pulsante sarebbe limitato ai servizi finanziari |
|
||||
| Recepimento IT | D.Lgs 209/2025 → Art. 54-bis | **VERO e decisivo.** Italia colloca la funzione all'**Art. 54-bis** nella sezione generale sul recesso a distanza → **si applica a TUTTI i contratti B2C online (beni, servizi, contenuto digitale)**. Pharma coperto. In vigore per contratti conclusi **dal 19/6/2026** |
|
||||
|
||||
## 2. Verifica punto-per-punto del brief Gemini
|
||||
|
||||
| # | Affermazione Gemini | Esito | Correzione |
|
||||
|---|---|---|---|
|
||||
| 1 | Pulsante visibile, no PDF/email/PEC; label "Recedi dal contratto qui" | **IMPRECISO** | Label statutaria: **"recedere dal contratto qui"**. MA il pulsante è **AGGIUNTIVO**: non abolisce modulo tipo Allegato I-B né dichiarazione via email. "No PDF/email" errato |
|
||||
| 2 | Accesso guest via Order ID + email | **IMPRECISO** | **Buona prassi, non obbligo.** Legge impone solo "facilmente accessibile" (imporre login rischia di violarlo) |
|
||||
| 3 | Dati: nome+cognome, dati ordine, mezzo elettronico, testo dichiarazione | **VERO** | Art. 54-bis: (a) nome, (b) info che identificano il contratto, (c) mezzo elettronico per la conferma |
|
||||
| 4 | Conferma finale esplicita (doppio check) | **VERO in sostanza** | Serve **"funzione di conferma"** etichettata **"conferma recesso"**: pulsante dedicato a 2 step, **non checkbox**. Vietati pre-flag/dark pattern |
|
||||
| 5 | Ricevuta supporto durevole, testo + timestamp ricezione | **QUASI VERO** | Correzione: data/ora di **TRASMISSIONE** (fissa il momento dell'esercizio), non "ricezione" |
|
||||
| 6 | 14 gg da consegna bene / stipula servizio | **VERO con precisazioni** | Beni: da consegna (ultimo bene se lotti); servizi: da conclusione; contenuto digitale/serv. finanziari: decorrenze proprie |
|
||||
| 7 | Rimborso 14 gg; trattenibile fino a beni/prova spedizione | **VERO ma INCOMPLETO** | Manca: rimborso include **spese consegna standard**; **costi reso** a carico consumatore solo se informato; consumatore risponde **diminuzione di valore** |
|
||||
| 8 | 14gg → 12 mesi+14gg; AGCM pratica scorretta | **IMPRECISO (2 meccanismi confusi)** | (i) proroga **12 mesi+14gg** = Art. 53, per **omessa informazione** (aggancio al pulsante solo indiretto via Art. 49); (ii) pulsante non conforme = **pratica scorretta Art. 27**, €5.000–€10.000.000 / 4% fatturato, AGCM. La formula "12 mesi+14gg" in sé è corretta |
|
||||
| 9 | Eccezioni Art. 59: su misura, deteriorabili, sigillati igiene | **VERO** | Numerazione IT corretta (Art. 59). Pharma: sigillati igiene/salute, farmaci, deperibili — centrale |
|
||||
|
||||
## 3. Requisiti MANCANTI / INSUFFICIENTI in Gemini (la parte critica)
|
||||
|
||||
| Requisito | Cosa dice la legge | Impatto app |
|
||||
|---|---|---|
|
||||
| **Divieto dark pattern + "non più onerosa della conclusione"** | Vietate interfacce manipolative; recesso non più difficile della conclusione; procedure interne anti-manipolazione | Flusso recesso ≤ passaggi/attriti del checkout; niente pop-up dissuasivi, pre-flag, retention nudge. **Vincolante** |
|
||||
| **Etichette esatte** | "recedere dal contratto qui" (avvio); "conferma recesso" (step 2) | Stringhe hardcoded conformi; no label ambigue ("Gestisci ordine") |
|
||||
| **Contenuto avviso supporto durevole** | Contenuto dichiarazione + data/ora di trasmissione, su supporto durevole | Template email/PDF conservabile + valore probatorio |
|
||||
| **Pulsante AGGIUNTIVO non sostitutivo** | Restano modulo tipo Allegato I-B + qualsiasi dichiarazione esplicita | Non disabilitare/nascondere gli altri canali |
|
||||
| **Obblighi info Art. 49** | Informare sull'**ubicazione della funzione** nell'interfaccia | Aggiornare pagine legali/checkout; omissione → proroga 12 mesi (Art. 53) |
|
||||
| **Distinzione beni/servizi/digitale** | Decorrenze ed esclusioni diverse | Logica condizionale per tipo prodotto |
|
||||
| **Disponibilità continuativa** | Funzione attiva per tutto il periodo, per ogni contratto | Legata a **ogni singolo ordine**, attiva tutta la finestra |
|
||||
| **Rimborso completo** | Spese consegna standard incluse; costi reso su consumatore se informato; diminuzione valore | Schermata informa su chi paga il reso; calcolo rimborso corretto |
|
||||
| **Ambito B2C / multi-interfaccia** | Solo B2C; qualsiasi interfaccia online; segue il contratto anche per merchant estero verso consumatore IT | Escludere ordini B2B; coprire sito+app |
|
||||
| **Lingua** | Coerente con lingua del contratto/offerta | Localizzazione etichette + ricevuta |
|
||||
| **Onere probatorio** | Professionista deve dimostrare data/ora e contenuto | **Log immutabile/audit trail** server, non solo email |
|
||||
| **Esclusioni Art. 59 pharma** | Sigillati igiene/salute aperti, farmaci, deperibili | Mapping SKU→ammissibilità; no recesso "cieco" su tutto |
|
||||
|
||||
## 4. Punti aperti da confermare su fonte primaria (prima del go-live)
|
||||
|
||||
1. ⚠ Numero esatto degli articoli UE (16 bis–16 septies / 16 sexies) sul testo EUR-Lex Dir. 2023/2673.
|
||||
2. ⚠ Inquadramento sanzionatorio definitivo (Art. 27 vs Artt. 62-66 Cod. Cons.) e importi post-Omnibus.
|
||||
3. Testo integrale Art. 54-bis da Normattiva (non solo Brocardi) per etichette e dati esatti.
|
||||
4. Verifica cosa Shopify copre nativamente (regole reso/cancellazione UE) vs gap reali.
|
||||
Reference in New Issue
Block a user