Skip to main content
Shopify16 iun. 2026·15 min citire

"Migrare Shopify Scripts la Functions: ghid complet înainte de 30 iunie 2026"

Dragoș-Adrian BuhoiuDragoș-Adrian BuhoiuFondator · Arhitect Ecosisteme Digitale
"Migrare Shopify Scripts la Functions: ghid complet înainte de 30 iunie 2026"
FEATURED.IMG
"Migrare Shopify Scripts la Functions: ghid complet înainte de 30 iunie 2026"
CUPRINS
01TL;DR — două date critice, nu una, și ce înseamnă fiecare pentru tine02Timeline dual: freeze (15 aprilie 2026) vs sunset (30 iunie 2026)03Ce s-a întâmplat pe 15 aprilie: nu mai creezi/editezi/publici Scripts noi04Ce se întâmplă pe 30 iunie: Scripts existente încetează complet să ruleze05Context: deadline-ul a fost amânat de două ori (de ce nu mizezi pe o a treia)06Pe ce plan ești? any-plan vs Plus-only (distincția care decide calea ta)07Orice plan: instalezi public apps cu Functions din App Store08Doar Shopify Plus: rulezi custom apps cu Function APIs (construite cu CLI)09Pasul 0: rulează Shopify Scripts customizations report10Unde îl găsești (Apps > Script Editor > banner „Replace Shopify Scripts")11Ce listează (Payment gateways, Shipping, Product discounts) și ce recomandă12Tabel de mapare 1:1 — Script → Function API13Line item scripts → Discounts + Cart Transform + Cart and Checkout Validation API14Shipping scripts → Delivery Customization API + Discounts API15Payment scripts → Payment Customization API16Mapare la nivel de metodă (pentru developeri)17change_line_price / split / reject → Discount Function (cu echivalentele exacte)18Capcana: change_properties NU are echivalent direct19Migrare fără downtime: passthrough script + customer tag TESTER20Pasul 1: preview link cu draft „Output.cart = Input.cart"21Pasul 2: testezi în producție pe tag-ul TESTER, apoi finalizezi22Workflow CLI: shopify app dev și shopify app deploy (necesită dev store)23Capcane avansate: nu migra către un API deja deprecated24Vechile Product/Order/Shipping Discount APIs (depreciate din 2025-04, înlocuiește-le înainte de 2026-04)25Limite practice: max 25 delivery + max 25 payment customization functions; review B2B la Payment26De ce contează pe termen lung: Functions = Web Assembly durabil vs Scripts = EOL

"Timeline dual (freeze 15 aprilie vs sunset 30 iunie), tabel de mapare Scripts→Function API, migrare fără downtime cu passthrough + tag TESTER, distincție any-plan vs Plus-only."

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 ScriptFunction API echivalent
Aplicare reducere pe linieDiscounts API
Transformare coș (bundle, merge)Cart Transform API
Validare coș/checkoutCart and Checkout Validation API

Shipping scripts → Delivery Customization API + Discounts API

Operație ScriptFunction API echivalent
Ascundere/redenumire metode transportDelivery Customization API
Reducere cost transportDiscounts API

Payment scripts → Payment Customization API

Operație ScriptFunction 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ă ScriptEchivalent Function
change_line_priceDiscount Function — OrderDiscountCandidateValue / ProductDiscountCandidateValue
splitDiscount Function — câmpul opțional quantity în ProductDiscountCandidateTarget
rejectDiscount 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:

  1. 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).
  2. Generezi un preview link din Script Editor.
  3. 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

  1. În Function-ul tău nou, adaugi logica de targeting: verifici dacă customer-ul are tag-ul TESTER.
  2. Deploy-ezi Function-ul. Funcționează în paralel cu Scriptul existent — dar aplică logica doar pentru clienții cu tag-ul TESTER.
  3. Testezi manual câteva comenzi cu un cont de test care are tag-ul.
  4. 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

Întrebări frecvente

Pe 30 iunie 2026, toate Scripts existente încetează complet să se execute. Checkout-ul va funcționa, dar fără logica de business din Scripts — discounturile, transportul custom și filtrele de plată nu se vor mai aplica.
Pe 15 aprilie 2026 a încetat posibilitatea de a edita sau publica Scripts noi. Scripts deja publicate au continuat să ruleze. Pe 30 iunie 2026, și cele existente se opresc.
Nu direct. Custom apps cu Function APIs necesită plan Shopify Plus. Pe planuri standard, poți instala aplicații publice din App Store care conțin Functions construite de alți developeri.
Depinde de operație: reduceri → Discounts API, transformări de coș (bundle, merge) → Cart Transform API, validări → Cart and Checkout Validation API.
Strategia oficială: creezi un Script passthrough (`Output.cart = Input.cart`) salvat ca draft, deploy-ezi Function-ul cu logică de targeting pe tag-ul `TESTER`, testezi în producție pe conturi de test, apoi elimini tag check-ul și dezactivezi Scriptul original.
Nu are echivalent 1:1 în Functions. Alternativa este `applyAttributeChange` într-o checkout UI extension. Dacă ai Scripts care setau proprietăți custom pe line items, trebuie să reconstruiești logica într-o UI extension.
Admin > Apps > Script Editor > banner „Replace Shopify Scripts". Raportul listează toate Scripts active pe categorii (Payment, Shipping, Discounts) cu recomandări de alternative. --- Ultima actualizare: 16 iunie 2026 Surse oficiale folosite: shopify.dev/docs — migrating from Scripts · shopify.dev/changelog — Scripts deprecated · changelog.shopify.com — Scripts can no longer be edited · help.shopify.com — transitioning to Functions · shopify.dev/changelog — deprecation Discount APIs Ai nevoie de asistență cu migrarea? Echipa noastră construiește ecosisteme Shopify optimizate. Contactează-ne pentru un audit tehnic. ```json { "@context": "https://schema.org", "@type": "TechArticle", "headline": "Migrare Shopify Scripts la Functions: ghid complet înainte de 30 iunie 2026", "description": "Timeline dual (freeze 15 aprilie vs sunset 30 iunie), tabel de mapare Scripts→Function API, migrare fără downtime cu passthrough + tag TESTER, distincție any-plan vs Plus-only.", "datePublished": "2026-06-16", "dateModified": "2026-06-16", "author": { "@type": "Organization", "name": "Verdant Mindset", "url": "https://verdantmindset.com" }, "publisher": { "@type": "Organization", "name": "Verdant Mindset", "url": "https://verdantmindset.com" }, "inLanguage": "ro", "mainEntityOfPage": "https://verdantmindset.com/resurse/migrare-shopify-scripts-functions" } ``` ```json { "@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [ { "@type": "Question", "name": "Când încetează definitiv să funcționeze Shopify Scripts?", "acceptedAnswer": { "@type": "Answer", "text": "Pe 30 iunie 2026, toate Scripts existente încetează complet să se execute. Checkout-ul va funcționa, dar fără logica de business din Scripts." } }, { "@type": "Question", "name": "Care e diferența dintre 15 aprilie 2026 și 30 iunie 2026 pentru Scripts?", "acceptedAnswer": { "@type": "Answer", "text": "Pe 15 aprilie 2026 a încetat posibilitatea de a edita sau publica Scripts noi. Pe 30 iunie 2026, și cele existente se opresc complet." } }, { "@type": "Question", "name": "Pot construi Functions custom dacă nu sunt pe Shopify Plus?", "acceptedAnswer": { "@type": "Answer", "text": "Nu direct. Custom apps cu Function APIs necesită plan Shopify Plus. Pe planuri standard, poți instala aplicații publice din App Store care conțin Functions." } }, { "@type": "Question", "name": "Cu ce înlocuiesc un line item script în Shopify Functions?", "acceptedAnswer": { "@type": "Answer", "text": "Depinde de operație: reduceri → Discounts API, transformări de coș → Cart Transform API, validări → Cart and Checkout Validation API." } }, { "@type": "Question", "name": "Cum migrez de la Scripts la Functions fără downtime?", "acceptedAnswer": { "@type": "Answer", "text": "Strategia oficială: creezi un Script passthrough (Output.cart = Input.cart) salvat ca draft, deploy-ezi Function-ul cu logică de targeting pe tag-ul TESTER, testezi, apoi dezactivezi Scriptul original." } }, { "@type": "Question", "name": "Are change_properties un echivalent în Shopify Functions?", "acceptedAnswer": { "@type": "Answer", "text": "Nu are echivalent 1:1 în Functions. Alternativa este applyAttributeChange într-o checkout UI extension." } }, { "@type": "Question", "name": "Unde găsesc raportul cu Scripts active în magazinul meu?", "acceptedAnswer": { "@type": "Answer", "text": "Admin > Apps > Script Editor > banner Replace Shopify Scripts. Raportul listează toate Scripts active pe categorii cu recomandări de alternative." } } ] } ```