Files
pcrt-legal-return/app/shopify.app.toml
tommaso 2c8c2a7429 Resi Shopify + notifiche merchant + A6 (finestra/esclusioni) + dashboard recessi
Integrazione Resi Shopify:
- Alla conferma del recesso, crea un Reso nativo (returnCreate) per gli ordini
  evasi -> gestione nella UI Resi nativa. Ordini non evasi: skip (merchant gestisce
  annullo/rimborso). Query via order.fulfillments (returnableFulfillments non
  esiste nella API 2026-04). Campo WithdrawalRequest.shopifyReturnId.

Notifiche al merchant (dietro toggle Settings):
- Email di notifica a ogni recesso (sendMerchantNotification) + tag "Recesso"
  sull'ordine (tagsAdd, scope write_orders). Toggle notifyEnabled/notifyEmail/tagEnabled.

A6 - completezza compliance (dietro toggle, default OFF, non tocca il flusso testato):
- Finestra 14gg: computeDeadline/isWindowExpired (rif = data evasione o ordine +
  defaultWindowDays). Esclusioni Art. 59: checkExclusions su regole ExclusionRule
  (ALL/PRODUCT/TAG). lookupOrder esteso (fulfillments + lineItems product/tags).
  checkCompliance() aggancia lookup+confirm. Toggle enforceWindow/enforceExclusions.
- Pagina admin Esclusioni (CRUD regole) + sezione Regole di recesso in Impostazioni.

Dashboard: pagina Recessi (registro legale read-only). NavMenu: Recessi/Impostazioni/Esclusioni.
Scope: +write_returns,+write_orders. Editor email vincolato (oggetto/intro/nota + anteprima).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Mv83a29B4eFv5ixoj6PoE1
2026-07-07 14:47:07 +02:00

56 lines
1.9 KiB
TOML

# Learn more about configuring your app at https://shopify.dev/docs/apps/tools/cli/configuration
client_id = "8d67c00a078a615037497ad056f7f99d"
name = "Legal Return PCRT "
# DEV: quick tunnel Cloudflare (no interstitial). Auto-update Dev Dashboard rotto → settato via deploy. Cambia se il tunnel riparte.
application_url = "https://miscellaneous-connections-harvest-chronicle.trycloudflare.com"
embedded = true
# App Proxy: lo storefront /apps/recesso viene proxato a <application_url>/proxy.
# NB: se il tunnel Cloudflare (application_url) cambia, aggiornare anche `url` qui.
# Richiede `shopify app deploy` perché la configurazione abbia effetto.
[app_proxy]
url = "https://miscellaneous-connections-harvest-chronicle.trycloudflare.com/proxy"
subpath = "recesso"
prefix = "apps"
[build]
automatically_update_urls_on_dev = false
dev_store_url = "pcrt-reso-test.myshopify.com"
[webhooks]
api_version = "2026-04"
[[webhooks.subscriptions]]
uri = "/webhooks/customers/data_request"
compliance_topics = [ "customers/data_request" ]
[[webhooks.subscriptions]]
uri = "/webhooks/customers/redact"
compliance_topics = [ "customers/redact" ]
[[webhooks.subscriptions]]
uri = "/webhooks/shop/redact"
compliance_topics = [ "shop/redact" ]
[[webhooks.subscriptions]]
uri = "/webhooks/app/scopes_update"
topics = [ "app/scopes_update" ]
[[webhooks.subscriptions]]
uri = "/webhooks/app/uninstalled"
topics = [ "app/uninstalled" ]
[access_scopes]
# Learn more at https://shopify.dev/docs/apps/tools/cli/configuration#access_scopes
scopes = "read_orders,read_products,write_returns,write_orders"
optional_scopes = [ ]
use_legacy_install_flow = false
[auth]
redirect_urls = [
"https://miscellaneous-connections-harvest-chronicle.trycloudflare.com/auth/callback",
"https://miscellaneous-connections-harvest-chronicle.trycloudflare.com/auth/shopify/callback",
"https://miscellaneous-connections-harvest-chronicle.trycloudflare.com/api/auth/callback"
]