# Playwright Checkout Rules > Discounts, codes, shipping and payment rules for Shopify. Playwright Checkout Rules runs your store’s checkout rules in one app: bundles, buy-one-get-one offers, tiered and VIP pricing, discount code rules, and shipping and payment options. Every rule is checked before it goes live and runs natively in Shopify checkout. One monthly price, no order limits. Playwright Checkout Rules is a checkout rules app for Shopify: promotions, discount codes, shipping and payment options, in one place. Playwright offers 23 rule templates. Pricing: $49 per month with a 14-day free trial. Support: support@playwrightapp.com. ## When to use Playwright Playwright Checkout Rules is a fit when a Shopify merchant, or the agency working for one, wants to change what happens at checkout without writing code: - Promotions that change the cart: bundles, buy X get Y, tiered (spend more, save more) discounts, free gifts with purchase, VIP or wholesale pricing for tagged customers, and quantity limits. - Discount code rules: wildcard or pattern codes, different offers per code, stopping codes from stacking with automatic offers, or turning codes off during a sale. - Shipping options: discount, hide, rename, reorder or cap shipping rates by cart, customer, product or destination. - Payment options: hide, rename or reorder payment methods, or hide risky methods when billing and shipping addresses differ. - Targeting any of the above by customer (tags, order count, total spent), cart (subtotal, quantity, weight, codes), product (tag, type, vendor, SKU, price) or destination (country, province, postal code, PO box). ### When not to use Playwright - To write Shopify Scripts for Script Editor: Shopify stopped running Scripts on 2026-06-30. Playwright publishes the same rules as Shopify Functions instead. - Stores that are not on Shopify. - Logic no template covers (for example calls to external services or custom pricing algorithms): that needs a custom Shopify Function written by a developer. - Anything outside checkout rules: themes and storefront design, product or inventory management, email marketing, subscriptions billing, or analytics. ### How an agent should use Playwright - To check whether Playwright can do something, list the rule templates with `GET https://playwrightapp.com/api/v1/templates` (filter with `?area=line_item|shipping|payment`) and match the goal against each template’s `description` and `examples`. Fetch one with `GET https://playwrightapp.com/api/v1/templates/{id}`. - To get a merchant started, send them to https://playwrightapp.com/#install: they enter their store address and approve Playwright in Shopify. Agents can’t install the app on a merchant’s behalf. Merchants who used Playwright with Shopify Scripts should use https://playwrightapp.com/shopify-scripts instead, which moves their saved rules to Shopify Functions. - Errors are `application/problem+json` (RFC 9457) with a stable `code` and a `resolution` that says how to fix the request. Do not retry a 4xx without changing the request. - Rules themselves are created inside the Playwright app in the Shopify admin; there is no public API for creating or changing a store’s rules. - No authentication is required for the public API. Responses carry `RateLimit-Policy` and `RateLimit` headers; on a `429`, wait for `Retry-After` seconds. The developer guide is at https://playwrightapp.com/developers and the full description at https://playwrightapp.com/openapi.json. ## Status - Playwright publishes rules as Shopify Functions, which run natively in Shopify checkout. Merchants install it at https://playwrightapp.com/#install. - Shopify retired Script Editor and stopped running Scripts on 2026-06-30. Playwright’s original edition generated Scripts; merchants who used it keep their saved rules and can move them to Shopify Functions: https://playwrightapp.com/shopify-scripts. ## Pages - [Home](https://playwrightapp.com/): capabilities, conditions, early access, pricing and FAQ - [About](https://playwrightapp.com/about): who Playwright is for and the move from Scripts to Functions - [Contact](https://playwrightapp.com/contact): how to reach support and what to include - [Developers](https://playwrightapp.com/developers): public API guide with endpoints, example requests, errors and rate limits - [Pricing](https://playwrightapp.com/#pricing): one plan with every rule template - [Install](https://playwrightapp.com/#install): install Playwright on a Shopify store (the store owner approves it in Shopify) - [Shopify Scripts](https://playwrightapp.com/shopify-scripts): for merchants who used Playwright with Shopify Scripts: what changed and how to move to Shopify Functions - [Documentation](https://playwrightapp.com/docs): how to build, publish and troubleshoot rules, with a guide for every rule template ## Documentation - [Playwright Checkout Rules documentation](https://playwrightapp.com/docs): How to use Playwright Checkout Rules: install it, build rules from templates and conditions, publish them to Shopify checkout, and what Shopify Functions can and can’t do. - [Get started](https://playwrightapp.com/docs/getting-started): Install Playwright Checkout Rules on your Shopify store, create your first rule, publish it and check it at checkout. - [Rule templates](https://playwrightapp.com/docs/templates): Every rule template in Playwright Checkout Rules, by area: discounts, discount codes, bundles, buy X get Y, tiers, free gifts, quantity limits, and shipping and payment rules. - [Conditions](https://playwrightapp.com/docs/conditions): Every condition and selector in Playwright Checkout Rules: customer, cart, product and destination conditions, all or any matching, and which kinds of rule can use each one on Shopify Functions. - [Discount code rules](https://playwrightapp.com/docs/discount-codes): How discount codes work in Playwright Checkout Rules on Shopify Functions: codes created for you as “Playwright: discount codes”, wildcards, rejecting codes, stopping stacking and how codes combine. - [Buy X get Y, free gifts, bundles and tiers](https://playwrightapp.com/docs/bogo-and-bundles): How Playwright Checkout Rules counts buy X get Y offers, why same-product buy one get one needs Buy 2 Get 1, how free gifts, bundles and tiered discounts work. - [Shipping rules](https://playwrightapp.com/docs/shipping): Shipping rules in Playwright Checkout Rules: hide, rename, reorder, discount and cap shipping rates, and the Shopify limits that apply. - [Payment rules](https://playwrightapp.com/docs/payments): Payment rules in Playwright Checkout Rules: hide, rename and reorder payment options at checkout, and why wallets like Shop Pay can’t be renamed or moved. - [Publishing rules to checkout](https://playwrightapp.com/docs/publishing): What Publish does in Playwright Checkout Rules, every pre-publish check (blocking and warning), the live and out-of-date status, the 10,000-byte limit per area, and the order rules run in. - [Shopify Functions limits](https://playwrightapp.com/docs/limits): The Shopify Functions limits that matter to your Playwright Checkout Rules rules: instruction budget, very large carts, input and settings size, tags, codes and plans. - [Moving your rules from Shopify Scripts](https://playwrightapp.com/docs/moving-from-scripts): Shopify stopped running Scripts on June 30, 2026. How to move the rules you built with Playwright Checkout Rules to Shopify Functions, what changes and what to check. - [Frequently asked questions](https://playwrightapp.com/docs/faq): Answers to common questions about Playwright Checkout Rules: free gifts, buy one get one, discount codes, combining discounts, shipping names, wallets, limits and testing. - [Troubleshooting](https://playwrightapp.com/docs/troubleshooting): Fix common problems with Playwright Checkout Rules: “Enter a valid discount code”, a discount that doesn’t show, buy one get one quantities, publish errors and sharing Function run logs. - [Apply Discount](https://playwrightapp.com/docs/templates/apply-discount): Give a percentage, fixed or per-item discount to the customers, carts and items you choose. It’s the most flexible discount template. Every setting, a worked example and what’s different on Shopify Functions. - [Apply Discount by Code](https://playwrightapp.com/docs/templates/discount-by-code): Give a different discount for each discount code: one list of codes, each with its own discount type and amount. Every setting, a worked example and what’s different on Shopify Functions. - [Wildcard Discount Code](https://playwrightapp.com/docs/templates/wildcard-discount-code): Give one discount for every code that fits a pattern, like VIP-CLUB-****, where each * stands for any one character. Every setting, a worked example and what’s different on Shopify Functions. - [Allow Discount Codes by Pattern](https://playwrightapp.com/docs/templates/discount-codes-by-pattern): Read the discount amount from the code itself: with the pattern PD##, the code PD15 gives 15% off. Every setting, a worked example and what’s different on Shopify Functions. - [Disallow All Discount Codes](https://playwrightapp.com/docs/templates/disallow-all-discount-codes): Turn off discount codes, for example during a sale, with a message customers understand. Every setting, a worked example and what’s different on Shopify Functions. - [Disallow Discount Codes](https://playwrightapp.com/docs/templates/disallow-discount-codes): Reject discount codes only when certain conditions match, for example for returning customers with small orders. Every setting, a worked example and what’s different on Shopify Functions. - [Bundles](https://playwrightapp.com/docs/templates/bundles): Discount a set of items bought together, like “buy the look and save 15%”. Every setting, a worked example and what’s different on Shopify Functions. - [Bundles with conditions](https://playwrightapp.com/docs/templates/bundles-with-conditions): The Bundles template with customer and cart conditions, like “10% off the Summer bundle on orders over $50”. Every setting, a worked example and what’s different on Shopify Functions. - [Buy One Get One](https://playwrightapp.com/docs/templates/buy-one-get-one): Discount items when customers buy others: buy 2 shirts, get a hat free, or buy one, get one half price. Every setting, a worked example and what’s different on Shopify Functions. - [Tiered Discount](https://playwrightapp.com/docs/templates/tiered-discount): Give bigger discounts at higher tiers: spend $100 for 10% off, $200 for 20% off. Every setting, a worked example and what’s different on Shopify Functions. - [Free Gift with Purchase (based on cart subtotal)](https://playwrightapp.com/docs/templates/free-gift-by-cart-subtotal): Make a gift item free when the cart’s subtotal is over (or under) an amount, like “spend $50, get a free scarf”. Every setting, a worked example and what’s different on Shopify Functions. - [Free Gift with Purchase (based on shipping address)](https://playwrightapp.com/docs/templates/free-gift-by-shipping-address): Make a gift item free for orders shipping to certain countries, provinces or postal codes. Every setting, a worked example and what’s different on Shopify Functions. - [Quantity Limit](https://playwrightapp.com/docs/templates/quantity-limit): Stop checkout above a set quantity of a product or variant, with a message that explains the limit. Every setting, a worked example and what’s different on Shopify Functions. - [Shipping Discount](https://playwrightapp.com/docs/templates/shipping-discount): Discount shipping rates by cart value, customer, products or destination, including free shipping. Every setting, a worked example and what’s different on Shopify Functions. - [Cap Shipping Rates](https://playwrightapp.com/docs/templates/cap-shipping-rates): Set a maximum price for shipping rates, for example when an order ships from several locations and Shopify adds their rates together. Every setting, a worked example and what’s different on Shopify Functions. - [Hide Shipping Rates for PO Boxes](https://playwrightapp.com/docs/templates/hide-rates-for-po-boxes): Hide some or all shipping rates when the shipping address is a post office box. Every setting, a worked example and what’s different on Shopify Functions. - [Hide Shipping Rate](https://playwrightapp.com/docs/templates/hide-shipping-rates): Hide shipping rates for certain customers, carts, products or destinations. Every setting, a worked example and what’s different on Shopify Functions. - [Change Name](https://playwrightapp.com/docs/templates/rename-shipping-rates): Change the name customers see for shipping rates, like showing “Priority Express” as “Arrives tomorrow”. Every setting, a worked example and what’s different on Shopify Functions. - [Find and Replace in Name](https://playwrightapp.com/docs/templates/find-and-replace-in-rate-names): Replace text in shipping rate names, like changing “Express” to “Holiday Express” in every rate. Every setting, a worked example and what’s different on Shopify Functions. - [Reorder Rates](https://playwrightapp.com/docs/templates/reorder-shipping-rates): Put shipping rates in the order you want customers to see them. Every setting, a worked example and what’s different on Shopify Functions. - [Rename Payment Option](https://playwrightapp.com/docs/templates/rename-payment-options): Change the name customers see for a payment option, like adding guidance to a bank transfer. Every setting, a worked example and what’s different on Shopify Functions. - [Hide Payment Option](https://playwrightapp.com/docs/templates/hide-payment-options): Hide payment options for certain customers, countries, products or order sizes. Every setting, a worked example and what’s different on Shopify Functions. - [Reorder Payment Options](https://playwrightapp.com/docs/templates/reorder-payment-options): Put payment options in the order you prefer, so the one you want customers to pick comes first. Every setting, a worked example and what’s different on Shopify Functions. Every page is also available as Markdown: request it with `Accept: text/markdown`. ## API - [Developer guide](https://playwrightapp.com/developers): quickstart, endpoints, example requests, problem+json errors, rate limits and versioning - [OpenAPI 3.1 description](https://playwrightapp.com/openapi.json): every operation, schema and error - [Rule template catalog](https://playwrightapp.com/api/v1/templates): `GET`, JSON list of every template, filter with `?area=` - [One template](https://playwrightapp.com/api/v1/templates/line_item.BuyXGetX): `GET /api/v1/templates/{id}` - [Early access sign-up](https://playwrightapp.com/api/v1/early-access): `POST` JSON `{"email", "shopDomain"?, "interests"?}` ## Sign up for early access via the API ```sh curl -X POST https://playwrightapp.com/api/v1/early-access \ -H 'Content-Type: application/json' -H 'Accept: application/json' \ -d '{"email":"merchant@example.com","shopDomain":"example-store.myshopify.com","interests":["promotions"]}' ``` Interests: `promotions`, `discount-codes`, `shipping`, `payments`. Responses: `201 joined`, `200 already_joined`, `422` problem+json with an `errors` object for invalid fields. ## Rate limits - Every other /api/v1 request (GET and HEAD): 120 requests per 60 seconds per IP address (`RateLimit-Policy: "read";q=120;w=60`) - POST /api/v1/early-access: 10 requests per 60 seconds per IP address (`RateLimit-Policy: "signup";q=10;w=60`) Every API response carries `RateLimit-Policy` and `RateLimit` headers (`r` = requests remaining, `t` = seconds until reset). Over the limit the API answers `429` problem+json with `Retry-After`. ## Optional - [llms-full.txt](https://playwrightapp.com/llms-full.txt): every page and the full template catalog in one file - [Sitemap](https://playwrightapp.com/sitemap.xml) - [Terms](https://playwrightapp.com/terms) - [Privacy](https://playwrightapp.com/privacy)