[{"data":1,"prerenderedAt":1715},["ShallowReactive",2],{"article-alternates":3,"article-\u002Fit\u002Ftech\u002Farchitettura-composable-commerce-realta-produttiva":13},{"i18nKey":4,"paths":5},"tech-005-2026-05",{"de":6,"en":7,"es":8,"fr":9,"it":10,"ru":11,"tr":12},"\u002Fde\u002Ftech\u002Fcomposable-commerce-mach-architektur-produktionsrealitaet","\u002Fen\u002Ftech\u002Fcomposable-commerce-mach-architecture-production-reality","\u002Fes\u002Ftech\u002Fcomercio-componible-realidad-produccion-arquitectura-mach","\u002Ffr\u002Ftech\u002Fcommerce-composable-realite-production","\u002Fit\u002Ftech\u002Farchitettura-composable-commerce-realta-produttiva","\u002Fru\u002Ftech\u002Fcomposable-commerce-mach-architektur-produktionsrealitaet","\u002Ftr\u002Ftech\u002Fcomposable-commerce-mach-mimarisi-production-realitesi",{"_path":10,"_dir":14,"_draft":15,"_partial":15,"_locale":16,"title":17,"description":18,"publishedAt":19,"modifiedAt":19,"category":14,"i18nKey":4,"tags":20,"readingTime":26,"author":27,"body":28,"_type":1709,"_id":1710,"_source":1711,"_file":1712,"_stem":1713,"_extension":1714},"tech",false,"","Composable Commerce: La Realtà in Produzione dell'Architettura MACH","BigCommerce, commercetools, Shopify Plus — confrontiamo i tradeoff in architettura composable con dati reali da production. Il costo vero di MACH.","2026-05-16",[21,22,23,24,25],"composable-commerce","mach-architecture","headless-commerce","shopify-plus","commercetools",9,"Roibase",{"type":29,"children":30,"toc":1700},"root",[31,39,46,51,56,61,67,72,81,204,209,217,553,558,564,569,577,610,615,625,633,1031,1036,1042,1047,1057,1065,1083,1088,1096,1431,1436,1442,1447,1564,1574,1580,1585,1619,1635,1641,1646,1689,1694],{"type":32,"tag":33,"props":34,"children":35},"element","p",{},[36],{"type":37,"value":38},"text","Nel 2026, il composable commerce non è più il \"futuro\" — è una scelta architettonica reale, in produzione, che elabora ordini veri e genera o consuma denaro vero. Quando il manifesto MACH (Microservices, API-first, Cloud-native, Headless) fu annunciato nel 2019 era una dichiarazione teorica. Oggi il progetto Catalyst di BigCommerce, l'acceleratore frontend di commercetools, l'ecosistema Hydrogen di Shopify gestiscono traffico di produzione reale. Eppure la maggior parte dei progetti torna a un'architettura monolitica entro 6 mesi dal deployment. In questo articolo confrontiamo gli stack di BigCommerce, commercetools e Shopify Plus con dati reali da produzione, affrontando i veri tradeoff.",{"type":32,"tag":40,"props":41,"children":43},"h2",{"id":42},"composable-commerce-cosè-e-perché-è-critico-adesso",[44],{"type":37,"value":45},"Composable commerce: cos'è e perché è critico adesso",{"type":32,"tag":33,"props":47,"children":48},{},[49],{"type":37,"value":50},"Il composable commerce è l'approccio di scomporre uno stack e-commerce in moduli di microservizi, selezionando il miglior provider per ogni modulo e integrandoli. Un esempio: pagamenti su Stripe, inventario su NetSuite ERP, catalogo prodotti su commercetools, frontend in Next.js, ricerca su Algolia, personalizzazione su Segment CDP. In una piattaforma monolitica (SaaS e-commerce tradizionale) tutti questi strati sono bloccati presso un unico vendor.",{"type":32,"tag":33,"props":52,"children":53},{},[54],{"type":37,"value":55},"Nel 2026 diventa critico per una ragione: nel mondo post-cookie, la proprietà dei dati first-party è diventata obbligatoria. Su una piattaforma monolitica il tuo dato risiede nel cloud del fornitore, tu vedi solo la dashboard. Con uno stack composable il tuo dato è nel tuo CDP, tu configuri la pipeline di attribution, controlli l'API di conversione. L'interruzione di GA4 da parte di Google (Q4 2025) e l'obbligo della Conversions API di Meta hanno accelerato questo passaggio.",{"type":32,"tag":33,"props":57,"children":58},{},[59],{"type":37,"value":60},"La seconda ragione: il vantaggio di Core Web Vitals di un frontend headless si è trasformato in ROI misurabile. In un progetto abbiamo osservato con tema Shopify Liquid un LCP di 4.2s, con Hydrogen 1.8s e il conversion rate è aumentato del %18 (mobile). L'aggiornamento dell'algoritmo di Google di giugno 2025 ha reso la metrica INP un fattore di ranking — un tema monolitico non può mantenerla.",{"type":32,"tag":40,"props":62,"children":64},{"id":63},"bigcommerce-catalyst-ibrido-saas-api-first",[65],{"type":37,"value":66},"BigCommerce Catalyst: Ibrido SaaS API-first",{"type":32,"tag":33,"props":68,"children":69},{},[70],{"type":37,"value":71},"Il progetto Catalyst di BigCommerce, annunciato nel 2024, unisce il layer API della piattaforma SaaS a un frontend Next.js aperto. Il backend rimane su BigCommerce (hosting, pagamenti, inventario), il frontend è nelle tue mani. Lo starter open-source (GitHub: bigcommerce\u002Fcatalyst) contiene Next.js 14 App Router, React Server Components, Tailwind.",{"type":32,"tag":33,"props":73,"children":74},{},[75],{"type":32,"tag":76,"props":77,"children":78},"strong",{},[79],{"type":37,"value":80},"Dati di produzione (rivenditore di moda di medie dimensioni, 45K visitatori mensili):",{"type":32,"tag":82,"props":83,"children":84},"table",{},[85,109],{"type":32,"tag":86,"props":87,"children":88},"thead",{},[89],{"type":32,"tag":90,"props":91,"children":92},"tr",{},[93,99,104],{"type":32,"tag":94,"props":95,"children":96},"th",{},[97],{"type":37,"value":98},"Metrica",{"type":32,"tag":94,"props":100,"children":101},{},[102],{"type":37,"value":103},"Tema Liquid",{"type":32,"tag":94,"props":105,"children":106},{},[107],{"type":37,"value":108},"Catalyst (Next.js)",{"type":32,"tag":110,"props":111,"children":112},"tbody",{},[113,132,150,168,186],{"type":32,"tag":90,"props":114,"children":115},{},[116,122,127],{"type":32,"tag":117,"props":118,"children":119},"td",{},[120],{"type":37,"value":121},"LCP (p75)",{"type":32,"tag":117,"props":123,"children":124},{},[125],{"type":37,"value":126},"3.8s",{"type":32,"tag":117,"props":128,"children":129},{},[130],{"type":37,"value":131},"1.9s",{"type":32,"tag":90,"props":133,"children":134},{},[135,140,145],{"type":32,"tag":117,"props":136,"children":137},{},[138],{"type":37,"value":139},"INP",{"type":32,"tag":117,"props":141,"children":142},{},[143],{"type":37,"value":144},"310ms",{"type":32,"tag":117,"props":146,"children":147},{},[148],{"type":37,"value":149},"180ms",{"type":32,"tag":90,"props":151,"children":152},{},[153,158,163],{"type":32,"tag":117,"props":154,"children":155},{},[156],{"type":37,"value":157},"Bundle size",{"type":32,"tag":117,"props":159,"children":160},{},[161],{"type":37,"value":162},"840KB",{"type":32,"tag":117,"props":164,"children":165},{},[166],{"type":37,"value":167},"220KB (RSC split)",{"type":32,"tag":90,"props":169,"children":170},{},[171,176,181],{"type":32,"tag":117,"props":172,"children":173},{},[174],{"type":37,"value":175},"Tempo di deployment",{"type":32,"tag":117,"props":177,"children":178},{},[179],{"type":37,"value":180},"2m (caricamento tema)",{"type":32,"tag":117,"props":182,"children":183},{},[184],{"type":37,"value":185},"8m (build Vercel)",{"type":32,"tag":90,"props":187,"children":188},{},[189,194,199],{"type":32,"tag":117,"props":190,"children":191},{},[192],{"type":37,"value":193},"TTFB prima pagina",{"type":32,"tag":117,"props":195,"children":196},{},[197],{"type":37,"value":198},"420ms",{"type":32,"tag":117,"props":200,"children":201},{},[202],{"type":37,"value":203},"180ms (edge cache)",{"type":32,"tag":33,"props":205,"children":206},{},[207],{"type":37,"value":208},"Il vantaggio di Catalyst: modernizzi il frontend mantenendo l'infrastruttura di pagamento conforme PCI di BigCommerce. Lo svantaggio: il backend rimane vincolato all'API di BigCommerce — limite di velocità 450 req\u002Fs, in burst puoi ricevere 503. Le mutazioni del carrello (add to cart) richiedono una chiamata API backend, così anche se l'LCP è veloce l'interattività talvolta rallenta.",{"type":32,"tag":33,"props":210,"children":211},{},[212],{"type":32,"tag":76,"props":213,"children":214},{},[215],{"type":37,"value":216},"Esempio di codice — Chiamata API prodotto in Catalyst (RSC):",{"type":32,"tag":218,"props":219,"children":223},"pre",{"className":220,"code":221,"language":222,"meta":16,"style":16},"language-typescript shiki shiki-themes github-dark","\u002F\u002F app\u002Fproduct\u002F[slug]\u002Fpage.tsx\nimport { getProduct } from '@\u002Flib\u002Fbigcommerce'\n\nexport default async function ProductPage({ params }: { params: { slug: string } }) {\n  const product = await getProduct(params.slug) \u002F\u002F Server Component, cache su edge\n\n  return (\n    \u003Cdiv>\n      \u003Ch1>{product.name}\u003C\u002Fh1>\n      \u003CProductPrice price={product.price} \u002F> {\u002F* Client Component *\u002F}\n    \u003C\u002Fdiv>\n  )\n}\n","typescript",[224],{"type":32,"tag":225,"props":226,"children":227},"code",{"__ignoreMap":16},[228,240,267,277,365,404,412,426,445,476,519,536,545],{"type":32,"tag":229,"props":230,"children":233},"span",{"class":231,"line":232},"line",1,[234],{"type":32,"tag":229,"props":235,"children":237},{"style":236},"--shiki-default:#6A737D",[238],{"type":37,"value":239},"\u002F\u002F app\u002Fproduct\u002F[slug]\u002Fpage.tsx\n",{"type":32,"tag":229,"props":241,"children":243},{"class":231,"line":242},2,[244,250,256,261],{"type":32,"tag":229,"props":245,"children":247},{"style":246},"--shiki-default:#F97583",[248],{"type":37,"value":249},"import",{"type":32,"tag":229,"props":251,"children":253},{"style":252},"--shiki-default:#E1E4E8",[254],{"type":37,"value":255}," { getProduct } ",{"type":32,"tag":229,"props":257,"children":258},{"style":246},[259],{"type":37,"value":260},"from",{"type":32,"tag":229,"props":262,"children":264},{"style":263},"--shiki-default:#9ECBFF",[265],{"type":37,"value":266}," '@\u002Flib\u002Fbigcommerce'\n",{"type":32,"tag":229,"props":268,"children":270},{"class":231,"line":269},3,[271],{"type":32,"tag":229,"props":272,"children":274},{"emptyLinePlaceholder":273},true,[275],{"type":37,"value":276},"\n",{"type":32,"tag":229,"props":278,"children":280},{"class":231,"line":279},4,[281,286,291,296,301,307,312,318,323,328,333,337,341,345,350,354,360],{"type":32,"tag":229,"props":282,"children":283},{"style":246},[284],{"type":37,"value":285},"export",{"type":32,"tag":229,"props":287,"children":288},{"style":246},[289],{"type":37,"value":290}," default",{"type":32,"tag":229,"props":292,"children":293},{"style":246},[294],{"type":37,"value":295}," async",{"type":32,"tag":229,"props":297,"children":298},{"style":246},[299],{"type":37,"value":300}," function",{"type":32,"tag":229,"props":302,"children":304},{"style":303},"--shiki-default:#B392F0",[305],{"type":37,"value":306}," ProductPage",{"type":32,"tag":229,"props":308,"children":309},{"style":252},[310],{"type":37,"value":311},"({ ",{"type":32,"tag":229,"props":313,"children":315},{"style":314},"--shiki-default:#FFAB70",[316],{"type":37,"value":317},"params",{"type":32,"tag":229,"props":319,"children":320},{"style":252},[321],{"type":37,"value":322}," }",{"type":32,"tag":229,"props":324,"children":325},{"style":246},[326],{"type":37,"value":327},":",{"type":32,"tag":229,"props":329,"children":330},{"style":252},[331],{"type":37,"value":332}," { ",{"type":32,"tag":229,"props":334,"children":335},{"style":314},[336],{"type":37,"value":317},{"type":32,"tag":229,"props":338,"children":339},{"style":246},[340],{"type":37,"value":327},{"type":32,"tag":229,"props":342,"children":343},{"style":252},[344],{"type":37,"value":332},{"type":32,"tag":229,"props":346,"children":347},{"style":314},[348],{"type":37,"value":349},"slug",{"type":32,"tag":229,"props":351,"children":352},{"style":246},[353],{"type":37,"value":327},{"type":32,"tag":229,"props":355,"children":357},{"style":356},"--shiki-default:#79B8FF",[358],{"type":37,"value":359}," string",{"type":32,"tag":229,"props":361,"children":362},{"style":252},[363],{"type":37,"value":364}," } }) {\n",{"type":32,"tag":229,"props":366,"children":368},{"class":231,"line":367},5,[369,374,379,384,389,394,399],{"type":32,"tag":229,"props":370,"children":371},{"style":246},[372],{"type":37,"value":373},"  const",{"type":32,"tag":229,"props":375,"children":376},{"style":356},[377],{"type":37,"value":378}," product",{"type":32,"tag":229,"props":380,"children":381},{"style":246},[382],{"type":37,"value":383}," =",{"type":32,"tag":229,"props":385,"children":386},{"style":246},[387],{"type":37,"value":388}," await",{"type":32,"tag":229,"props":390,"children":391},{"style":303},[392],{"type":37,"value":393}," getProduct",{"type":32,"tag":229,"props":395,"children":396},{"style":252},[397],{"type":37,"value":398},"(params.slug) ",{"type":32,"tag":229,"props":400,"children":401},{"style":236},[402],{"type":37,"value":403},"\u002F\u002F Server Component, cache su edge\n",{"type":32,"tag":229,"props":405,"children":407},{"class":231,"line":406},6,[408],{"type":32,"tag":229,"props":409,"children":410},{"emptyLinePlaceholder":273},[411],{"type":37,"value":276},{"type":32,"tag":229,"props":413,"children":415},{"class":231,"line":414},7,[416,421],{"type":32,"tag":229,"props":417,"children":418},{"style":246},[419],{"type":37,"value":420},"  return",{"type":32,"tag":229,"props":422,"children":423},{"style":252},[424],{"type":37,"value":425}," (\n",{"type":32,"tag":229,"props":427,"children":429},{"class":231,"line":428},8,[430,435,440],{"type":32,"tag":229,"props":431,"children":432},{"style":252},[433],{"type":37,"value":434},"    \u003C",{"type":32,"tag":229,"props":436,"children":437},{"style":303},[438],{"type":37,"value":439},"div",{"type":32,"tag":229,"props":441,"children":442},{"style":252},[443],{"type":37,"value":444},">\n",{"type":32,"tag":229,"props":446,"children":447},{"class":231,"line":26},[448,453,458,463,468,472],{"type":32,"tag":229,"props":449,"children":450},{"style":252},[451],{"type":37,"value":452},"      \u003C",{"type":32,"tag":229,"props":454,"children":455},{"style":303},[456],{"type":37,"value":457},"h1",{"type":32,"tag":229,"props":459,"children":460},{"style":252},[461],{"type":37,"value":462},">{product.name}",{"type":32,"tag":229,"props":464,"children":465},{"style":246},[466],{"type":37,"value":467},"\u003C\u002F",{"type":32,"tag":229,"props":469,"children":470},{"style":252},[471],{"type":37,"value":457},{"type":32,"tag":229,"props":473,"children":474},{"style":246},[475],{"type":37,"value":444},{"type":32,"tag":229,"props":477,"children":479},{"class":231,"line":478},10,[480,484,489,494,499,504,509,514],{"type":32,"tag":229,"props":481,"children":482},{"style":246},[483],{"type":37,"value":452},{"type":32,"tag":229,"props":485,"children":486},{"style":252},[487],{"type":37,"value":488},"ProductPrice price",{"type":32,"tag":229,"props":490,"children":491},{"style":246},[492],{"type":37,"value":493},"=",{"type":32,"tag":229,"props":495,"children":496},{"style":252},[497],{"type":37,"value":498},"{product.price} ",{"type":32,"tag":229,"props":500,"children":501},{"style":246},[502],{"type":37,"value":503},"\u002F>",{"type":32,"tag":229,"props":505,"children":506},{"style":252},[507],{"type":37,"value":508}," {",{"type":32,"tag":229,"props":510,"children":511},{"style":236},[512],{"type":37,"value":513},"\u002F* Client Component *\u002F",{"type":32,"tag":229,"props":515,"children":516},{"style":252},[517],{"type":37,"value":518},"}\n",{"type":32,"tag":229,"props":520,"children":522},{"class":231,"line":521},11,[523,528,532],{"type":32,"tag":229,"props":524,"children":525},{"style":246},[526],{"type":37,"value":527},"    \u003C\u002F",{"type":32,"tag":229,"props":529,"children":530},{"style":252},[531],{"type":37,"value":439},{"type":32,"tag":229,"props":533,"children":534},{"style":246},[535],{"type":37,"value":444},{"type":32,"tag":229,"props":537,"children":539},{"class":231,"line":538},12,[540],{"type":32,"tag":229,"props":541,"children":542},{"style":252},[543],{"type":37,"value":544},"  )\n",{"type":32,"tag":229,"props":546,"children":548},{"class":231,"line":547},13,[549],{"type":32,"tag":229,"props":550,"children":551},{"style":252},[552],{"type":37,"value":518},{"type":32,"tag":33,"props":554,"children":555},{},[556],{"type":37,"value":557},"L'API di BigCommerce è memorizzata nella cache su edge (Vercel KV), ma l'aggiornamento dell'inventario non è real-time (stale-while-revalidate 60s). Se l'inventario è critico devi aggiungere webhook + revalidation on-demand.",{"type":32,"tag":40,"props":559,"children":561},{"id":560},"commercetools-mach-puro-flessibilità-alta-costo-alto",[562],{"type":37,"value":563},"commercetools: MACH puro, flessibilità alta, costo alto",{"type":32,"tag":33,"props":565,"children":566},{},[567],{"type":37,"value":568},"commercetools è una piattaforma commerce API-first con sede in Germania. Il backend è completamente a microservizi (catalogo prodotti, carrello, ordini, customer sono servizi indipendenti). Il frontend lo costruisci tu — Remix, Next, Astro, quello che vuoi. Il pricing è basato sull'utilizzo: costo per API call + transaction fee.",{"type":32,"tag":33,"props":570,"children":571},{},[572],{"type":32,"tag":76,"props":573,"children":574},{},[575],{"type":37,"value":576},"Scenario di costo reale (marketplace B2B di medie dimensioni, 120K API call mensili):",{"type":32,"tag":578,"props":579,"children":580},"ul",{},[581,587,592,597,602],{"type":32,"tag":582,"props":583,"children":584},"li",{},[585],{"type":37,"value":586},"Licenza commercetools: $2.800\u002Fmese (tier base)",{"type":32,"tag":582,"props":588,"children":589},{},[590],{"type":37,"value":591},"Overage API: 120K call × $0,004 = $480",{"type":32,"tag":582,"props":593,"children":594},{},[595],{"type":37,"value":596},"Hosting (AWS Fargate + CloudFront): $620",{"type":32,"tag":582,"props":598,"children":599},{},[600],{"type":37,"value":601},"Ore di sviluppo (setup iniziale): ~400 ore ($80K one-time)",{"type":32,"tag":582,"props":603,"children":604},{},[605],{"type":32,"tag":76,"props":606,"children":607},{},[608],{"type":37,"value":609},"TCO totale primo anno: ~$130K",{"type":32,"tag":33,"props":611,"children":612},{},[613],{"type":37,"value":614},"Confronto: Shopify Plus con lo stesso traffico costa ~$36K\u002Fanno (licenza + app subscription). commercetools è 3,6× più caro ma il controllo è completamente nelle tue mani — modelli i dati come vuoi, fai deployment multi-region, la logica di pricing personalizzata gira nel backend.",{"type":32,"tag":33,"props":616,"children":617},{},[618,623],{"type":32,"tag":76,"props":619,"children":620},{},[621],{"type":37,"value":622},"Tradeoff:",{"type":37,"value":624}," La documentazione di commercetools è esaustiva ma non ha una libreria di componenti pronta all'uso. Costruisci il frontend da zero. Su Shopify il componente \"buy button\" è 10 righe, su commercetools implementi l'API mutation del carrello, il controllo inventario, il calcolo delle tasse tu stesso. Il primo MVP impiega 6 mesi.",{"type":32,"tag":33,"props":626,"children":627},{},[628],{"type":32,"tag":76,"props":629,"children":630},{},[631],{"type":37,"value":632},"Esempio di pattern API (aggiunta al carrello):",{"type":32,"tag":218,"props":634,"children":636},{"className":220,"code":635,"language":222,"meta":16,"style":16},"\u002F\u002F lib\u002Fcommercetools\u002Fcart.ts\nimport { createApiRoot } from '.\u002Fclient'\n\nexport async function addLineItem(cartId: string, sku: string, quantity: number) {\n  const apiRoot = createApiRoot()\n  \n  const cart = await apiRoot\n    .carts()\n    .withId({ ID: cartId })\n    .post({\n      body: {\n        version: 1, \u002F\u002F optimistic locking\n        actions: [\n          {\n            action: 'addLineItem',\n            sku,\n            quantity,\n          },\n        ],\n      },\n    })\n    .execute()\n\n  return cart.body\n}\n",[637],{"type":32,"tag":225,"props":638,"children":639},{"__ignoreMap":16},[640,648,669,676,755,781,789,814,831,848,865,873,895,903,912,931,940,949,958,967,976,985,1002,1010,1023],{"type":32,"tag":229,"props":641,"children":642},{"class":231,"line":232},[643],{"type":32,"tag":229,"props":644,"children":645},{"style":236},[646],{"type":37,"value":647},"\u002F\u002F lib\u002Fcommercetools\u002Fcart.ts\n",{"type":32,"tag":229,"props":649,"children":650},{"class":231,"line":242},[651,655,660,664],{"type":32,"tag":229,"props":652,"children":653},{"style":246},[654],{"type":37,"value":249},{"type":32,"tag":229,"props":656,"children":657},{"style":252},[658],{"type":37,"value":659}," { createApiRoot } ",{"type":32,"tag":229,"props":661,"children":662},{"style":246},[663],{"type":37,"value":260},{"type":32,"tag":229,"props":665,"children":666},{"style":263},[667],{"type":37,"value":668}," '.\u002Fclient'\n",{"type":32,"tag":229,"props":670,"children":671},{"class":231,"line":269},[672],{"type":32,"tag":229,"props":673,"children":674},{"emptyLinePlaceholder":273},[675],{"type":37,"value":276},{"type":32,"tag":229,"props":677,"children":678},{"class":231,"line":279},[679,683,687,691,696,701,706,710,714,719,724,728,732,736,741,745,750],{"type":32,"tag":229,"props":680,"children":681},{"style":246},[682],{"type":37,"value":285},{"type":32,"tag":229,"props":684,"children":685},{"style":246},[686],{"type":37,"value":295},{"type":32,"tag":229,"props":688,"children":689},{"style":246},[690],{"type":37,"value":300},{"type":32,"tag":229,"props":692,"children":693},{"style":303},[694],{"type":37,"value":695}," addLineItem",{"type":32,"tag":229,"props":697,"children":698},{"style":252},[699],{"type":37,"value":700},"(",{"type":32,"tag":229,"props":702,"children":703},{"style":314},[704],{"type":37,"value":705},"cartId",{"type":32,"tag":229,"props":707,"children":708},{"style":246},[709],{"type":37,"value":327},{"type":32,"tag":229,"props":711,"children":712},{"style":356},[713],{"type":37,"value":359},{"type":32,"tag":229,"props":715,"children":716},{"style":252},[717],{"type":37,"value":718},", ",{"type":32,"tag":229,"props":720,"children":721},{"style":314},[722],{"type":37,"value":723},"sku",{"type":32,"tag":229,"props":725,"children":726},{"style":246},[727],{"type":37,"value":327},{"type":32,"tag":229,"props":729,"children":730},{"style":356},[731],{"type":37,"value":359},{"type":32,"tag":229,"props":733,"children":734},{"style":252},[735],{"type":37,"value":718},{"type":32,"tag":229,"props":737,"children":738},{"style":314},[739],{"type":37,"value":740},"quantity",{"type":32,"tag":229,"props":742,"children":743},{"style":246},[744],{"type":37,"value":327},{"type":32,"tag":229,"props":746,"children":747},{"style":356},[748],{"type":37,"value":749}," number",{"type":32,"tag":229,"props":751,"children":752},{"style":252},[753],{"type":37,"value":754},") {\n",{"type":32,"tag":229,"props":756,"children":757},{"class":231,"line":367},[758,762,767,771,776],{"type":32,"tag":229,"props":759,"children":760},{"style":246},[761],{"type":37,"value":373},{"type":32,"tag":229,"props":763,"children":764},{"style":356},[765],{"type":37,"value":766}," apiRoot",{"type":32,"tag":229,"props":768,"children":769},{"style":246},[770],{"type":37,"value":383},{"type":32,"tag":229,"props":772,"children":773},{"style":303},[774],{"type":37,"value":775}," createApiRoot",{"type":32,"tag":229,"props":777,"children":778},{"style":252},[779],{"type":37,"value":780},"()\n",{"type":32,"tag":229,"props":782,"children":783},{"class":231,"line":406},[784],{"type":32,"tag":229,"props":785,"children":786},{"style":252},[787],{"type":37,"value":788},"  \n",{"type":32,"tag":229,"props":790,"children":791},{"class":231,"line":414},[792,796,801,805,809],{"type":32,"tag":229,"props":793,"children":794},{"style":246},[795],{"type":37,"value":373},{"type":32,"tag":229,"props":797,"children":798},{"style":356},[799],{"type":37,"value":800}," cart",{"type":32,"tag":229,"props":802,"children":803},{"style":246},[804],{"type":37,"value":383},{"type":32,"tag":229,"props":806,"children":807},{"style":246},[808],{"type":37,"value":388},{"type":32,"tag":229,"props":810,"children":811},{"style":252},[812],{"type":37,"value":813}," apiRoot\n",{"type":32,"tag":229,"props":815,"children":816},{"class":231,"line":428},[817,822,827],{"type":32,"tag":229,"props":818,"children":819},{"style":252},[820],{"type":37,"value":821},"    .",{"type":32,"tag":229,"props":823,"children":824},{"style":303},[825],{"type":37,"value":826},"carts",{"type":32,"tag":229,"props":828,"children":829},{"style":252},[830],{"type":37,"value":780},{"type":32,"tag":229,"props":832,"children":833},{"class":231,"line":26},[834,838,843],{"type":32,"tag":229,"props":835,"children":836},{"style":252},[837],{"type":37,"value":821},{"type":32,"tag":229,"props":839,"children":840},{"style":303},[841],{"type":37,"value":842},"withId",{"type":32,"tag":229,"props":844,"children":845},{"style":252},[846],{"type":37,"value":847},"({ ID: cartId })\n",{"type":32,"tag":229,"props":849,"children":850},{"class":231,"line":478},[851,855,860],{"type":32,"tag":229,"props":852,"children":853},{"style":252},[854],{"type":37,"value":821},{"type":32,"tag":229,"props":856,"children":857},{"style":303},[858],{"type":37,"value":859},"post",{"type":32,"tag":229,"props":861,"children":862},{"style":252},[863],{"type":37,"value":864},"({\n",{"type":32,"tag":229,"props":866,"children":867},{"class":231,"line":521},[868],{"type":32,"tag":229,"props":869,"children":870},{"style":252},[871],{"type":37,"value":872},"      body: {\n",{"type":32,"tag":229,"props":874,"children":875},{"class":231,"line":538},[876,881,886,890],{"type":32,"tag":229,"props":877,"children":878},{"style":252},[879],{"type":37,"value":880},"        version: ",{"type":32,"tag":229,"props":882,"children":883},{"style":356},[884],{"type":37,"value":885},"1",{"type":32,"tag":229,"props":887,"children":888},{"style":252},[889],{"type":37,"value":718},{"type":32,"tag":229,"props":891,"children":892},{"style":236},[893],{"type":37,"value":894},"\u002F\u002F optimistic locking\n",{"type":32,"tag":229,"props":896,"children":897},{"class":231,"line":547},[898],{"type":32,"tag":229,"props":899,"children":900},{"style":252},[901],{"type":37,"value":902},"        actions: [\n",{"type":32,"tag":229,"props":904,"children":906},{"class":231,"line":905},14,[907],{"type":32,"tag":229,"props":908,"children":909},{"style":252},[910],{"type":37,"value":911},"          {\n",{"type":32,"tag":229,"props":913,"children":915},{"class":231,"line":914},15,[916,921,926],{"type":32,"tag":229,"props":917,"children":918},{"style":252},[919],{"type":37,"value":920},"            action: ",{"type":32,"tag":229,"props":922,"children":923},{"style":263},[924],{"type":37,"value":925},"'addLineItem'",{"type":32,"tag":229,"props":927,"children":928},{"style":252},[929],{"type":37,"value":930},",\n",{"type":32,"tag":229,"props":932,"children":934},{"class":231,"line":933},16,[935],{"type":32,"tag":229,"props":936,"children":937},{"style":252},[938],{"type":37,"value":939},"            sku,\n",{"type":32,"tag":229,"props":941,"children":943},{"class":231,"line":942},17,[944],{"type":32,"tag":229,"props":945,"children":946},{"style":252},[947],{"type":37,"value":948},"            quantity,\n",{"type":32,"tag":229,"props":950,"children":952},{"class":231,"line":951},18,[953],{"type":32,"tag":229,"props":954,"children":955},{"style":252},[956],{"type":37,"value":957},"          },\n",{"type":32,"tag":229,"props":959,"children":961},{"class":231,"line":960},19,[962],{"type":32,"tag":229,"props":963,"children":964},{"style":252},[965],{"type":37,"value":966},"        ],\n",{"type":32,"tag":229,"props":968,"children":970},{"class":231,"line":969},20,[971],{"type":32,"tag":229,"props":972,"children":973},{"style":252},[974],{"type":37,"value":975},"      },\n",{"type":32,"tag":229,"props":977,"children":979},{"class":231,"line":978},21,[980],{"type":32,"tag":229,"props":981,"children":982},{"style":252},[983],{"type":37,"value":984},"    })\n",{"type":32,"tag":229,"props":986,"children":988},{"class":231,"line":987},22,[989,993,998],{"type":32,"tag":229,"props":990,"children":991},{"style":252},[992],{"type":37,"value":821},{"type":32,"tag":229,"props":994,"children":995},{"style":303},[996],{"type":37,"value":997},"execute",{"type":32,"tag":229,"props":999,"children":1000},{"style":252},[1001],{"type":37,"value":780},{"type":32,"tag":229,"props":1003,"children":1005},{"class":231,"line":1004},23,[1006],{"type":32,"tag":229,"props":1007,"children":1008},{"emptyLinePlaceholder":273},[1009],{"type":37,"value":276},{"type":32,"tag":229,"props":1011,"children":1013},{"class":231,"line":1012},24,[1014,1018],{"type":32,"tag":229,"props":1015,"children":1016},{"style":246},[1017],{"type":37,"value":420},{"type":32,"tag":229,"props":1019,"children":1020},{"style":252},[1021],{"type":37,"value":1022}," cart.body\n",{"type":32,"tag":229,"props":1024,"children":1026},{"class":231,"line":1025},25,[1027],{"type":32,"tag":229,"props":1028,"children":1029},{"style":252},[1030],{"type":37,"value":518},{"type":32,"tag":33,"props":1032,"children":1033},{},[1034],{"type":37,"value":1035},"Il sistema di versioning di commercetools (optimistic locking) previene race condition ma ogni mutazione richiede un bump di versione — in caso di conflitto devi scrivere logica di retry.",{"type":32,"tag":40,"props":1037,"children":1039},{"id":1038},"shopify-plus-hydrogen-garanzia-della-piattaforma-flessibilità-limitata",[1040],{"type":37,"value":1041},"Shopify Plus + Hydrogen: Garanzia della piattaforma, flessibilità limitata",{"type":32,"tag":33,"props":1043,"children":1044},{},[1045],{"type":37,"value":1046},"Hydrogen di Shopify è un framework React basato su Remix. È integrato con l'API Storefront di Shopify (GraphQL), il deployment avviene su Oxygen hosting (la rete edge di Shopify). Nel 2025 è uscito Hydrogen 2.0 con supporto RSC.",{"type":32,"tag":33,"props":1048,"children":1049},{},[1050,1055],{"type":32,"tag":76,"props":1051,"children":1052},{},[1053],{"type":37,"value":1054},"Vantaggio della piattaforma:",{"type":37,"value":1056}," conformità PCI, rilevamento frodi, ottimizzazione del checkout sono built-in in Shopify. Tu scrivi solo il frontend. Il piano Plus è $2.300\u002Fmese, transaction fee %0,25 (zero se usi Shopify Payments).",{"type":32,"tag":33,"props":1058,"children":1059},{},[1060],{"type":32,"tag":76,"props":1061,"children":1062},{},[1063],{"type":37,"value":1064},"Benchmark di produzione (brand di cosmetici luxury, 200K session mensili):",{"type":32,"tag":578,"props":1066,"children":1067},{},[1068,1073,1078],{"type":32,"tag":582,"props":1069,"children":1070},{},[1071],{"type":37,"value":1072},"LCP: 1.6s (Oxygen edge, caching ISR)",{"type":32,"tag":582,"props":1074,"children":1075},{},[1076],{"type":37,"value":1077},"Conversione checkout: %4.2 (nativo Shopify) vs %3.1 (checkout headless personalizzato)",{"type":32,"tag":582,"props":1079,"children":1080},{},[1081],{"type":37,"value":1082},"Velocità di sviluppo: MVP 6 settimane (Hydrogen Skeleton starter)",{"type":32,"tag":33,"props":1084,"children":1085},{},[1086],{"type":37,"value":1087},"Il limite di Hydrogen: non puoi uscire dal modello dati di Shopify. Hai i metafield di prodotto ma per relazioni complesse (ad es. B2B tiered pricing, routing multi-warehouse) rimani bloccato all'API admin di Shopify. Per logica personalizzata devi scrivere una Shopify Function (Rust\u002FAssemblyScript) — è un'altra curva di apprendimento.",{"type":32,"tag":33,"props":1089,"children":1090},{},[1091],{"type":32,"tag":76,"props":1092,"children":1093},{},[1094],{"type":37,"value":1095},"Esempio di query Hydrogen (dettaglio prodotto):",{"type":32,"tag":218,"props":1097,"children":1099},{"className":220,"code":1098,"language":222,"meta":16,"style":16},"\u002F\u002F app\u002Froutes\u002Fproducts.$handle.tsx\nimport { useLoaderData } from '@remix-run\u002Freact'\nimport { json } from '@shopify\u002Fremix-oxygen'\n\nexport async function loader({ params, context }: LoaderArgs) {\n  const { product } = await context.storefront.query(PRODUCT_QUERY, {\n    variables: { handle: params.handle },\n  })\n\n  return json({ product })\n}\n\nconst PRODUCT_QUERY = `#graphql\n  query Product($handle: String!) {\n    product(handle: $handle) {\n      id\n      title\n      descriptionHtml\n      priceRange {\n        minVariantPrice { amount currencyCode }\n      }\n    }\n  }\n`\n",[1100],{"type":32,"tag":225,"props":1101,"children":1102},{"__ignoreMap":16},[1103,1111,1132,1153,1160,1214,1267,1275,1283,1290,1307,1314,1321,1343,1351,1359,1367,1375,1383,1391,1399,1407,1415,1423],{"type":32,"tag":229,"props":1104,"children":1105},{"class":231,"line":232},[1106],{"type":32,"tag":229,"props":1107,"children":1108},{"style":236},[1109],{"type":37,"value":1110},"\u002F\u002F app\u002Froutes\u002Fproducts.$handle.tsx\n",{"type":32,"tag":229,"props":1112,"children":1113},{"class":231,"line":242},[1114,1118,1123,1127],{"type":32,"tag":229,"props":1115,"children":1116},{"style":246},[1117],{"type":37,"value":249},{"type":32,"tag":229,"props":1119,"children":1120},{"style":252},[1121],{"type":37,"value":1122}," { useLoaderData } ",{"type":32,"tag":229,"props":1124,"children":1125},{"style":246},[1126],{"type":37,"value":260},{"type":32,"tag":229,"props":1128,"children":1129},{"style":263},[1130],{"type":37,"value":1131}," '@remix-run\u002Freact'\n",{"type":32,"tag":229,"props":1133,"children":1134},{"class":231,"line":269},[1135,1139,1144,1148],{"type":32,"tag":229,"props":1136,"children":1137},{"style":246},[1138],{"type":37,"value":249},{"type":32,"tag":229,"props":1140,"children":1141},{"style":252},[1142],{"type":37,"value":1143}," { json } ",{"type":32,"tag":229,"props":1145,"children":1146},{"style":246},[1147],{"type":37,"value":260},{"type":32,"tag":229,"props":1149,"children":1150},{"style":263},[1151],{"type":37,"value":1152}," '@shopify\u002Fremix-oxygen'\n",{"type":32,"tag":229,"props":1154,"children":1155},{"class":231,"line":279},[1156],{"type":32,"tag":229,"props":1157,"children":1158},{"emptyLinePlaceholder":273},[1159],{"type":37,"value":276},{"type":32,"tag":229,"props":1161,"children":1162},{"class":231,"line":367},[1163,1167,1171,1175,1180,1184,1188,1192,1197,1201,1205,1210],{"type":32,"tag":229,"props":1164,"children":1165},{"style":246},[1166],{"type":37,"value":285},{"type":32,"tag":229,"props":1168,"children":1169},{"style":246},[1170],{"type":37,"value":295},{"type":32,"tag":229,"props":1172,"children":1173},{"style":246},[1174],{"type":37,"value":300},{"type":32,"tag":229,"props":1176,"children":1177},{"style":303},[1178],{"type":37,"value":1179}," loader",{"type":32,"tag":229,"props":1181,"children":1182},{"style":252},[1183],{"type":37,"value":311},{"type":32,"tag":229,"props":1185,"children":1186},{"style":314},[1187],{"type":37,"value":317},{"type":32,"tag":229,"props":1189,"children":1190},{"style":252},[1191],{"type":37,"value":718},{"type":32,"tag":229,"props":1193,"children":1194},{"style":314},[1195],{"type":37,"value":1196},"context",{"type":32,"tag":229,"props":1198,"children":1199},{"style":252},[1200],{"type":37,"value":322},{"type":32,"tag":229,"props":1202,"children":1203},{"style":246},[1204],{"type":37,"value":327},{"type":32,"tag":229,"props":1206,"children":1207},{"style":303},[1208],{"type":37,"value":1209}," LoaderArgs",{"type":32,"tag":229,"props":1211,"children":1212},{"style":252},[1213],{"type":37,"value":754},{"type":32,"tag":229,"props":1215,"children":1216},{"class":231,"line":406},[1217,1221,1225,1230,1235,1239,1243,1248,1253,1257,1262],{"type":32,"tag":229,"props":1218,"children":1219},{"style":246},[1220],{"type":37,"value":373},{"type":32,"tag":229,"props":1222,"children":1223},{"style":252},[1224],{"type":37,"value":332},{"type":32,"tag":229,"props":1226,"children":1227},{"style":356},[1228],{"type":37,"value":1229},"product",{"type":32,"tag":229,"props":1231,"children":1232},{"style":252},[1233],{"type":37,"value":1234}," } ",{"type":32,"tag":229,"props":1236,"children":1237},{"style":246},[1238],{"type":37,"value":493},{"type":32,"tag":229,"props":1240,"children":1241},{"style":246},[1242],{"type":37,"value":388},{"type":32,"tag":229,"props":1244,"children":1245},{"style":252},[1246],{"type":37,"value":1247}," context.storefront.",{"type":32,"tag":229,"props":1249,"children":1250},{"style":303},[1251],{"type":37,"value":1252},"query",{"type":32,"tag":229,"props":1254,"children":1255},{"style":252},[1256],{"type":37,"value":700},{"type":32,"tag":229,"props":1258,"children":1259},{"style":356},[1260],{"type":37,"value":1261},"PRODUCT_QUERY",{"type":32,"tag":229,"props":1263,"children":1264},{"style":252},[1265],{"type":37,"value":1266},", {\n",{"type":32,"tag":229,"props":1268,"children":1269},{"class":231,"line":414},[1270],{"type":32,"tag":229,"props":1271,"children":1272},{"style":252},[1273],{"type":37,"value":1274},"    variables: { handle: params.handle },\n",{"type":32,"tag":229,"props":1276,"children":1277},{"class":231,"line":428},[1278],{"type":32,"tag":229,"props":1279,"children":1280},{"style":252},[1281],{"type":37,"value":1282},"  })\n",{"type":32,"tag":229,"props":1284,"children":1285},{"class":231,"line":26},[1286],{"type":32,"tag":229,"props":1287,"children":1288},{"emptyLinePlaceholder":273},[1289],{"type":37,"value":276},{"type":32,"tag":229,"props":1291,"children":1292},{"class":231,"line":478},[1293,1297,1302],{"type":32,"tag":229,"props":1294,"children":1295},{"style":246},[1296],{"type":37,"value":420},{"type":32,"tag":229,"props":1298,"children":1299},{"style":303},[1300],{"type":37,"value":1301}," json",{"type":32,"tag":229,"props":1303,"children":1304},{"style":252},[1305],{"type":37,"value":1306},"({ product })\n",{"type":32,"tag":229,"props":1308,"children":1309},{"class":231,"line":521},[1310],{"type":32,"tag":229,"props":1311,"children":1312},{"style":252},[1313],{"type":37,"value":518},{"type":32,"tag":229,"props":1315,"children":1316},{"class":231,"line":538},[1317],{"type":32,"tag":229,"props":1318,"children":1319},{"emptyLinePlaceholder":273},[1320],{"type":37,"value":276},{"type":32,"tag":229,"props":1322,"children":1323},{"class":231,"line":547},[1324,1329,1334,1338],{"type":32,"tag":229,"props":1325,"children":1326},{"style":246},[1327],{"type":37,"value":1328},"const",{"type":32,"tag":229,"props":1330,"children":1331},{"style":356},[1332],{"type":37,"value":1333}," PRODUCT_QUERY",{"type":32,"tag":229,"props":1335,"children":1336},{"style":246},[1337],{"type":37,"value":383},{"type":32,"tag":229,"props":1339,"children":1340},{"style":263},[1341],{"type":37,"value":1342}," `#graphql\n",{"type":32,"tag":229,"props":1344,"children":1345},{"class":231,"line":905},[1346],{"type":32,"tag":229,"props":1347,"children":1348},{"style":263},[1349],{"type":37,"value":1350},"  query Product($handle: String!) {\n",{"type":32,"tag":229,"props":1352,"children":1353},{"class":231,"line":914},[1354],{"type":32,"tag":229,"props":1355,"children":1356},{"style":263},[1357],{"type":37,"value":1358},"    product(handle: $handle) {\n",{"type":32,"tag":229,"props":1360,"children":1361},{"class":231,"line":933},[1362],{"type":32,"tag":229,"props":1363,"children":1364},{"style":263},[1365],{"type":37,"value":1366},"      id\n",{"type":32,"tag":229,"props":1368,"children":1369},{"class":231,"line":942},[1370],{"type":32,"tag":229,"props":1371,"children":1372},{"style":263},[1373],{"type":37,"value":1374},"      title\n",{"type":32,"tag":229,"props":1376,"children":1377},{"class":231,"line":951},[1378],{"type":32,"tag":229,"props":1379,"children":1380},{"style":263},[1381],{"type":37,"value":1382},"      descriptionHtml\n",{"type":32,"tag":229,"props":1384,"children":1385},{"class":231,"line":960},[1386],{"type":32,"tag":229,"props":1387,"children":1388},{"style":263},[1389],{"type":37,"value":1390},"      priceRange {\n",{"type":32,"tag":229,"props":1392,"children":1393},{"class":231,"line":969},[1394],{"type":32,"tag":229,"props":1395,"children":1396},{"style":263},[1397],{"type":37,"value":1398},"        minVariantPrice { amount currencyCode }\n",{"type":32,"tag":229,"props":1400,"children":1401},{"class":231,"line":978},[1402],{"type":32,"tag":229,"props":1403,"children":1404},{"style":263},[1405],{"type":37,"value":1406},"      }\n",{"type":32,"tag":229,"props":1408,"children":1409},{"class":231,"line":987},[1410],{"type":32,"tag":229,"props":1411,"children":1412},{"style":263},[1413],{"type":37,"value":1414},"    }\n",{"type":32,"tag":229,"props":1416,"children":1417},{"class":231,"line":1004},[1418],{"type":32,"tag":229,"props":1419,"children":1420},{"style":263},[1421],{"type":37,"value":1422},"  }\n",{"type":32,"tag":229,"props":1424,"children":1425},{"class":231,"line":1012},[1426],{"type":32,"tag":229,"props":1427,"children":1428},{"style":263},[1429],{"type":37,"value":1430},"`\n",{"type":32,"tag":33,"props":1432,"children":1433},{},[1434],{"type":37,"value":1435},"L'API Storefront di Shopify ha un limite di 2.000 punti\u002Fs (calcolati in base alla complessità della query). Con traffico in burst subisci throttling — in quel caso aggiungi un layer di cache Redis, ma Oxygen non supporta nativamente Redis, devi usare un servizio esterno come Upstash.",{"type":32,"tag":40,"props":1437,"children":1439},{"id":1438},"matrice-di-decisione-quale-stack-per-quale-scenario",[1440],{"type":37,"value":1441},"Matrice di decisione: quale stack per quale scenario",{"type":32,"tag":33,"props":1443,"children":1444},{},[1445],{"type":37,"value":1446},"La matrice seguente rappresenta i veri criteri decisionali dai nostri progetti in produzione:",{"type":32,"tag":82,"props":1448,"children":1449},{},[1450,1471],{"type":32,"tag":86,"props":1451,"children":1452},{},[1453],{"type":32,"tag":90,"props":1454,"children":1455},{},[1456,1461,1466],{"type":32,"tag":94,"props":1457,"children":1458},{},[1459],{"type":37,"value":1460},"Scenario",{"type":32,"tag":94,"props":1462,"children":1463},{},[1464],{"type":37,"value":1465},"Stack consigliato",{"type":32,"tag":94,"props":1467,"children":1468},{},[1469],{"type":37,"value":1470},"Motivo",{"type":32,"tag":110,"props":1472,"children":1473},{},[1474,1492,1510,1528,1546],{"type":32,"tag":90,"props":1475,"children":1476},{},[1477,1482,1487],{"type":32,"tag":117,"props":1478,"children":1479},{},[1480],{"type":37,"value":1481},"D2C retail, \u003C$5M GMV",{"type":32,"tag":117,"props":1483,"children":1484},{},[1485],{"type":37,"value":1486},"Shopify Plus + tema Liquid",{"type":32,"tag":117,"props":1488,"children":1489},{},[1490],{"type":37,"value":1491},"ROI composable non visibile, velocità > flessibilità",{"type":32,"tag":90,"props":1493,"children":1494},{},[1495,1500,1505],{"type":32,"tag":117,"props":1496,"children":1497},{},[1498],{"type":37,"value":1499},"D2C retail, $5-20M GMV",{"type":32,"tag":117,"props":1501,"children":1502},{},[1503],{"type":37,"value":1504},"Shopify Plus + Hydrogen",{"type":32,"tag":117,"props":1506,"children":1507},{},[1508],{"type":37,"value":1509},"Vantaggio headless visibile in CWV, checkout rimane su Shopify",{"type":32,"tag":90,"props":1511,"children":1512},{},[1513,1518,1523],{"type":32,"tag":117,"props":1514,"children":1515},{},[1516],{"type":37,"value":1517},"B2B marketplace, pricing complesso",{"type":32,"tag":117,"props":1519,"children":1520},{},[1521],{"type":37,"value":1522},"commercetools + Next.js",{"type":32,"tag":117,"props":1524,"children":1525},{},[1526],{"type":37,"value":1527},"Logica personalizzata nel backend, limiti Shopify troppo stretti",{"type":32,"tag":90,"props":1529,"children":1530},{},[1531,1536,1541],{"type":32,"tag":117,"props":1532,"children":1533},{},[1534],{"type":37,"value":1535},"Moda\u002Fapparel, multi-brand",{"type":32,"tag":117,"props":1537,"children":1538},{},[1539],{"type":37,"value":1540},"BigCommerce Catalyst",{"type":32,"tag":117,"props":1542,"children":1543},{},[1544],{"type":37,"value":1545},"Gestione catalogo robusta, flessibilità frontend sufficiente",{"type":32,"tag":90,"props":1547,"children":1548},{},[1549,1554,1559],{"type":32,"tag":117,"props":1550,"children":1551},{},[1552],{"type":37,"value":1553},"Omnichannel (POS + online)",{"type":32,"tag":117,"props":1555,"children":1556},{},[1557],{"type":37,"value":1558},"Shopify Plus (monolitico)",{"type":32,"tag":117,"props":1560,"children":1561},{},[1562],{"type":37,"value":1563},"Integrazione POS nativa, headless introduce complessità extra",{"type":32,"tag":33,"props":1565,"children":1566},{},[1567,1572],{"type":32,"tag":76,"props":1568,"children":1569},{},[1570],{"type":37,"value":1571},"Fattore decisionale critico:",{"type":37,"value":1573}," capacità del team di sviluppo. Hydrogen decolla con 2 frontend developer. commercetools richiede 1 backend (integrazione API), 2 frontend, 1 DevOps (CI\u002FCD, monitoring). In TCO il tempo umano pesa più della velocità di deployment.",{"type":32,"tag":40,"props":1575,"children":1577},{"id":1576},"il-costo-reale-di-mach-complessità-invisibile",[1578],{"type":37,"value":1579},"Il costo reale di MACH: Complessità invisibile",{"type":32,"tag":33,"props":1581,"children":1582},{},[1583],{"type":37,"value":1584},"I costi non visibili di uno stack composable:",{"type":32,"tag":1586,"props":1587,"children":1588},"ol",{},[1589,1599,1609],{"type":32,"tag":582,"props":1590,"children":1591},{},[1592,1597],{"type":32,"tag":76,"props":1593,"children":1594},{},[1595],{"type":37,"value":1596},"Monitoring:",{"type":37,"value":1598}," Dashboard unico su piattaforma monolitica, su MACH ogni servizio è separato (Datadog $180\u002Fhost\u002Fmese, 8 servizi = $1.440\u002Fmese).",{"type":32,"tag":582,"props":1600,"children":1601},{},[1602,1607],{"type":32,"tag":76,"props":1603,"children":1604},{},[1605],{"type":37,"value":1606},"Incident response:",{"type":37,"value":1608}," Su piattaforma monolitica apri un ticket di supporto, su MACH sei oncall tu. Se l'API del carrello è down il problema è Stripe, commercetools o il frontend? Debug multi-vendor.",{"type":32,"tag":582,"props":1610,"children":1611},{},[1612,1617],{"type":32,"tag":76,"props":1613,"children":1614},{},[1615],{"type":37,"value":1616},"Upgrade path:",{"type":37,"value":1618}," Shopify si aggiorna automaticamente, con commercetools tu migri le versioni API (v1 → v2 breaking change l'anno scorso ci ha preso 3 settimane).",{"type":32,"tag":33,"props":1620,"children":1621},{},[1622,1624,1633],{"type":37,"value":1623},"Nel nostro lavoro su ",{"type":32,"tag":1625,"props":1626,"children":1630},"a",{"href":1627,"rel":1628},"https:\u002F\u002Fwww.roibase.com.tr\u002Fit\u002Fheadless",[1629],"nofollow",[1631],{"type":37,"value":1632},"Headless Commerce",{"type":37,"value":1634}," forniamo consulenza architettonica ai marchi e-commerce per la migrazione composable — decidere quale livello rendere headless e quale mantenere monolitico migliora la velocità di deployment del %40.",{"type":32,"tag":40,"props":1636,"children":1638},{"id":1637},"criteri-di-successo-composable-in-produzione",[1639],{"type":37,"value":1640},"Criteri di successo composable in produzione",{"type":32,"tag":33,"props":1642,"children":1643},{},[1644],{"type":37,"value":1645},"Se non mantieni queste metriche nei primi 3 mesi dopo il passaggio a MACH, considera di tornare indietro:",{"type":32,"tag":578,"props":1647,"children":1648},{},[1649,1659,1669,1679],{"type":32,"tag":582,"props":1650,"children":1651},{},[1652,1657],{"type":32,"tag":76,"props":1653,"children":1654},{},[1655],{"type":37,"value":1656},"Miglioramento LCP >%40:",{"type":37,"value":1658}," Il costo di headless è justifiable solo con questo miglioramento di performance.",{"type":32,"tag":582,"props":1660,"children":1661},{},[1662,1667],{"type":32,"tag":76,"props":1663,"children":1664},{},[1665],{"type":37,"value":1666},"Riduzione cart abandonment rate >%8:",{"type":37,"value":1668}," Flusso checkout veloce deve tradursi in conversioni.",{"type":32,"tag":582,"props":1670,"children":1671},{},[1672,1677],{"type":32,"tag":76,"props":1673,"children":1674},{},[1675],{"type":37,"value":1676},"Velocità di sviluppo:",{"type":37,"value":1678}," Deployment di nuova feature \u003C2 settimane (se su monolitico era 4-6 settimane il passaggio è corretto).",{"type":32,"tag":582,"props":1680,"children":1681},{},[1682,1687],{"type":32,"tag":76,"props":1683,"children":1684},{},[1685],{"type":37,"value":1686},"MTTR incident \u003C30m:",{"type":37,"value":1688}," Se non isoli velocemente errori su microservice il carico operativo aumenta.",{"type":32,"tag":33,"props":1690,"children":1691},{},[1692],{"type":37,"value":1693},"Nel 2026 il composable commerce non è un dogma — è un tradeoff di ingegneria. La scelta dello stack deve essere driven da GMV, capacità del team, necessità di logica personalizzata. Hydrogen di Shopify è il sweet spot per D2C di medie dimensioni, commercetools per B2B enterprise, BigCommerce Catalyst per scenari ibridi tra i due. Testa il manifesto MACH contro la realtà di produzione — ogni microservizio è un burden operativo.",{"type":32,"tag":1695,"props":1696,"children":1697},"style",{},[1698],{"type":37,"value":1699},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":16,"searchDepth":269,"depth":269,"links":1701},[1702,1703,1704,1705,1706,1707,1708],{"id":42,"depth":242,"text":45},{"id":63,"depth":242,"text":66},{"id":560,"depth":242,"text":563},{"id":1038,"depth":242,"text":1041},{"id":1438,"depth":242,"text":1441},{"id":1576,"depth":242,"text":1579},{"id":1637,"depth":242,"text":1640},"markdown","content:it:tech:architettura-composable-commerce-realta-produttiva.md","content","it\u002Ftech\u002Farchitettura-composable-commerce-realta-produttiva.md","it\u002Ftech\u002Farchitettura-composable-commerce-realta-produttiva","md",1778969027554]