For years, the honest answer to "can we customise Shopify checkout?" was mostly no, and the workarounds were ugly. Scripts gave Plus merchants a way to bend discount and shipping behaviour, but they were a layer bolted onto a checkout that wasn't designed to be modified.
Functions changed the answer. They're custom logic that runs inside Shopify's own backend at the moment a decision gets made — what discount applies, which delivery options appear, whether this payment method shows, whether this cart is allowed to proceed. Not a script sitting on top of the checkout. Part of how the checkout works.
Two things follow from that, and they matter differently depending on where you are.
If you're on Plus running Scripts: Scripts are being retired as part of Shopify's move to Checkout Extensibility, and migration to Functions is work you need on a roadmap rather than a wishlist. This is the deadline-driven half of the article.
If you're not on Plus: Functions are the most defensible single reason to upgrade — and only if you genuinely need logic native settings can't express. Most stores that think they need custom discount code actually need a better-configured discount, which is free.
Shopify's checkout and extensibility roadmap has moved repeatedly, including deprecation timelines. Confirm current dates and capabilities on Shopify's developer documentation rather than relying on any article's stated timeline.




