Migrare Shopify Scripts la Functions: ghid complet înainte de 30 iunie 2026
Ultima actualizare: 16 iunie 2026 | Surse: shopify.dev/docs — migrating from Scripts↗, shopify.dev/changelog — Scripts deprecated↗, help.shopify.com — transitioning to Functions↗
Ai Scripts active în magazinul tău Shopify Plus. Ai 14 zile. Acest ghid îți dă exact ce trebuie: cele două date critice, ce înlocuiește ce, cum migrezi fără downtime și ce poți face pe planul tău.
Dacă ai ajuns aici din articolul nostru despre Shopify Editions Summer 2026, știi deja contextul: sunset-ul Scripts nu e o „noutate de vară" — e un deadline dur care coincide cu fereastra.
TL;DR — două date critice, nu una, și ce înseamnă fiecare pentru tine
- 15 aprilie 2026: Nu mai poți crea, edita sau publica Scripts noi. Scripts deja publicate continuă să ruleze.
- 30 iunie 2026: Toate Scripts existente încetează complet să se execute. Checkout-ul tău nu va mai aplica logica din Scripts.
Majoritatea articolelor menționează doar 30 iunie. Dar freeze-ul din 15 aprilie a schimbat deja situația: dacă ai descoperit o eroare într-un Script după 15 aprilie, nu o poți repara. Singura cale e migrarea la Shopify Functions.
Surse: shopify.dev/changelog — Scripts deprecated↗ · changelog.shopify.com — Scripts can no longer be edited↗.
Timeline dual:freeze (15 aprilie 2026) vs sunset (30 iunie 2026)
Ce s-a întâmplat pe 15 aprilie:nu mai creezi/editezi/publici Scripts noi
Citat oficial: „April 15, 2026 — Editing and publishing new Shopify Scripts will no longer be possible."
Consecință practică: Script Editor e efectiv read-only. Poți vedea codul existent, dar nu poți salva modificări.
Sursa: shopify.dev/changelog — Scripts deprecated↗.
Ce se întâmplă pe 30 iunie:Scripts existente încetează complet să ruleze
Citat oficial: „Shopify Scripts will be sunset on June 30, 2026. All existing Shopify Scripts will stop functioning after this date."
Ce înseamnă în practică: discounturile complexe, metodele de transport custom și regulile de plată care rulau prin Scripts pur și simplu nu se vor mai aplica. Nu vei primi o eroare vizibilă — checkout-ul va funcționa, dar fără logica ta de business. Clienții vor cumpăra la preț întreg, cu transport incorect, cu metode de plată neconfigurate.
Sursa: shopify.dev/docs — migrating from Scripts↗.
Context:deadline-ul a fost amânat de două ori (de ce nu mizezi pe o a treia)
Istoric: inițial 13 august 2024, extins la 28 august 2025, apoi la 30 iunie 2026. Fiecare amânare a venit cu luni de avans. La 16 iunie 2026, cu 14 zile rămase și cu freeze-ul deja activ, nu există niciun indiciu oficial de o nouă amânare. Termen oficial curent: 30 iunie 2026.
Sursa: shopify.dev/changelog — support for Scripts will end on August 13, 2024↗ (publicat 13 februarie 2023, cu update din octombrie 2023).
Pe ce plan ești? any-plan vs Plus-only (distincția care decide calea ta)
Asta e distincția pe care majoritatea ghidurilor o ratează:
Orice plan:instalezi public apps cu Functions din App Store
Dacă ești pe un plan Shopify standard (Basic, Shopify, Advanced), poți instala aplicații publice din Shopify App Store care conțin Functions. Nu poți construi propriile Functions — dar poți folosi cele construite de alții.
Doar Shopify Plus:rulezi custom apps cu Function APIs (construite cu CLI)
Citat oficial: „Only stores on a Shopify Plus plan can use custom apps that contain Shopify Function APIs."
Asta înseamnă: dacă ai Scripts active, ești deja pe Plus (Script Editor era disponibil doar pe Plus). Dar dacă ai clienți pe planuri mai mici care beneficiau indirect de logica ta, ei vor trebui să treacă pe aplicații publice din App Store.
Surse: shopify.dev/docs — migrating from Scripts, Functions availability↗ · help.shopify.com — Script Editor↗.
Pasul 0:rulează Shopify Scripts customizations report
Înainte de a scrie o linie de cod, trebuie să știi ce ai.
Unde îl găsești (Apps > Script Editor > banner „Replace Shopify Scripts")
Accesează admin-ul magazinului. Navighează la Apps > Script Editor. Vei vedea un banner în partea de sus: „Replace Shopify Scripts". Dă click pe el. Acesta generează raportul de diagnostic.
Ce listează (Payment gateways, Shipping, Product discounts) și ce recomandă
Raportul afișează toate Scripts active, grupate pe categorii:
- Payment gateways — Scripts care filtrează/ascund metode de plată
- Shipping — Scripts care modifică rate sau metode de transport
- Product discounts — Scripts care aplică reduceri la linia de produs
Pentru fiecare Script, raportul afișează: nume, descriere, link la codul sursă și recomandări de aplicații publice compatibile sau tutoriale Functions.
Sursa: help.shopify.com — transitioning to Functions↗.
Tabel de mapare 1:1 — Script → Function API
Line item scripts → Discounts + Cart Transform + Cart and Checkout Validation API
Line item scripts acopereau cea mai largă gamă de operații (reduceri, transformări de coș, validări). Echivalentul în Functions se împarte pe trei API-uri:
| Operație Script | Function API echivalent |
|---|---|
| Aplicare reducere pe linie | Discounts API |
| Transformare coș (bundle, merge) | Cart Transform API |
| Validare coș/checkout | Cart and Checkout Validation API |
Shipping scripts → Delivery Customization API + Discounts API
| Operație Script | Function API echivalent |
|---|---|
| Ascundere/redenumire metode transport | Delivery Customization API |
| Reducere cost transport | Discounts API |
Payment scripts → Payment Customization API
| Operație Script | Function API echivalent |
|---|---|
| Ascundere/redenumire/reordonare metode de plată | Payment Customization API |
Sursa: shopify.dev/docs — migrating from Scripts, Function APIs mapping↗.
Mapare la nivel de metodă (pentru developeri)
change_line_price / split / reject → Discount Function (cu echivalentele exacte)
| Metodă Script | Echivalent Function |
|---|---|
change_line_price | Discount Function — OrderDiscountCandidateValue / ProductDiscountCandidateValue |
split | Discount Function — câmpul opțional quantity în ProductDiscountCandidateTarget |
reject | Discount Function — operația enteredDiscountCodesReject |
Capcana:change_properties NU are echivalent direct
change_properties (care modifica proprietățile custom ale unei linii de produs) nu are un echivalent 1:1 în Shopify Functions. Alternativa: folosești applyAttributeChange într-o checkout UI extension.
Asta e una dintre cele mai frecvente surprize la migrare. Dacă ai Scripts care setau proprietăți custom pe line items (ex: mesaje de gravură, personalizări), trebuie să reconstruiești logica într-o UI extension, nu într-o Function.
Sursa: shopify.dev/docs/api/functions — migrate from line item scripts↗.
Migrare fără downtime:passthrough script + customer tag TESTER
Strategia oficială Shopify garantează zero întreruperi în producție. Iată fluxul:
Pasul 1:preview link cu draft „Output.cart = Input.cart"
- Creezi un Script passthrough (dacă l-ai creat înainte de 15 aprilie) — cod minimal care nu modifică nimic:
Output.cart = Input.cart. Salvezi ca draft (nu publici). - Generezi un preview link din Script Editor.
- Acest preview link îți permite să testezi checkout-ul fără Scriptul original activ.
Pasul 2:testezi în producție pe tag-ul TESTER, apoi finalizezi
- În Function-ul tău nou, adaugi logica de targeting: verifici dacă customer-ul are tag-ul
TESTER. - Deploy-ezi Function-ul. Funcționează în paralel cu Scriptul existent — dar aplică logica doar pentru clienții cu tag-ul
TESTER. - Testezi manual câteva comenzi cu un cont de test care are tag-ul.
- Când ești satisfăcut, elimini codul de test (tag check), faci deploy final și dezactivezi Scriptul original.
Sursa: shopify.dev/docs — migrating from Scripts, Step 1 - Step 2↗.
Workflow CLI:shopify app dev și shopify app deploy (necesită dev store)
Construirea și deploymentul Functions se face cu Shopify CLI. Comenzile esențiale:
# Inițializare app
shopify app init
# Dezvoltare locală (tunnel + preview)
shopify app dev
# Deploy în producție
shopify app deploy
Ghidul oficial presupune familiaritate cu crearea de Shopify Functions folosind CLI. Necesită un development store pentru testare.
Sursa: shopify.dev/docs — migrating from Scripts, Requirements + pașii de deploy↗.
Capcane avansate:nu migra către un API deja deprecated
Vechile Product/Order/Shipping Discount APIs (depreciate din 2025-04, înlocuiește-le înainte de 2026-04)
Eroarea clasică: migrezi de la Scripts la un Function API care e și el pe cale de sunset.
Vechile Product Discount, Order Discount și Shipping Discount Function APIs au fost depreciate începând cu API version 2025-04 și înlocuite de noul Discount Function API unificat. Trecerea trebuie făcută înainte de API version 2026-04.
Dacă migrezi acum, migrează direct la noul API unificat. Nu pierde timp construind pe API-uri depreciate.
Sursa: shopify.dev/changelog — deprecation Product/Order/Shipping Discount APIs↗ (21 mai 2025).
Limite practice:max 25 delivery + max 25 payment customization functions; review B2B la Payment
Limitele operaționale curente:
- Maxim 25 delivery customization functions active per magazin
- Maxim 25 payment customization functions active per magazin
- Review requirement la Payment Customization este doar pentru comenzi B2B
Dacă ai un magazin complex cu zeci de reguli, trebuie să le consolidezi în mai puține Functions.
Surse: shopify.dev/docs/api/functions — delivery-customization↗ · shopify.dev/docs/api/functions — payment-customization↗.
De ce contează pe termen lung:Functions = WebAssembly durabil vs Scripts = EOL
Aceasta nu e doar o migrare forțată — e o schimbare arhitecturală fundamentală:
- Scripts = Ruby interpretat, rulat într-un sandbox izolat, cu acces complet la obiectul cart. Limbaj dinamic, greu de optimizat la scară.
- Functions = WebAssembly compilat, rulat pe infrastructura edge Shopify. Input GraphQL, output JSON declarativ. Deterministic, sandboxed, scalabil.
Functions nu sunt un „patch" — sunt arhitectura de viitor a Shopify pentru logica de business. Cine migrează acum investește în cod durabil. Cine amână investește în cod mort.
Detalii complete despre arhitectura Wasm, limitele oficiale și miturile demontate: Shopify Functions vs Scripts: arhitectura WebAssembly explicată corect.
Pentru optimizarea performanței Liquid la care se leagă direct această migrare, consultă ghidul nostru de optimizare viteză Shopify.
FAQ.PROTOCOL
