Streamline Custom Product Orders: Adding Required Terms Checkboxes to Shopify Products
The Challenge: Mandatory Terms for Specific Products
`offroadjim` came to the community with a clear need: they were running an Athens theme store and needed a "terms-required checkbox" on about 50 specific products. The catch? They absolutely had to keep using Shopify’s built-in variants, and their existing product options app wasn't cutting it because it forced them into creating a separate option set for each product, which then broke their variant images. Sound familiar? It’s a classic scenario where a one-size-fits-all app might not quite fit your unique business flow.
`offroadjim` wanted something specific:
(Checkbox) - I Agree With The Below Terms and Conditions
Displayed below it - "By placing this order, I acknowledge that this item is custom-made to order and is non-returnable, non-exchangeable, and not eligible for store credit. All sales are final. Production time for this custom item is currently 10–12 business days. Once the order has been accepted into production, it cannot be cancelled. This product is excluded from our Free Shipping offer."
And critically, the product shouldn't be added to the cart if the checkbox wasn't ticked, and the acceptance needed to show up on the order details.
Community to the Rescue: Code-Based Solutions Take Center Stage
Initially, `offroadjim` tried a few suggestions but ran into trouble, with products still adding to the cart even without the checkbox being checked. This is where the community really shone, with experts like `ajaycodewiz`, `Moeed`, `devcoders`, and `Custom-Cursor` stepping in to offer robust, code-based solutions. The consensus quickly formed: using product tags with a custom Liquid and JavaScript snippet was the most flexible and reliable way to go.
This approach lets you maintain Shopify’s native variants and apply a required terms checkbox only to the products that need it, without the overhead of a complex app that might conflict with your theme or other functionalities.
How to Implement a Required Terms Checkbox (The Code Way)
The solution that ultimately worked perfectly for `offroadjim` was a comprehensive code snippet shared by `ajaycodewiz`. It involves adding a `Custom liquid` block to your product template and leveraging product tags to control where it appears.
Here’s a step-by-step guide to get this working in your store, based on `ajaycodewiz`'s tested method for the Athens theme (but easily adaptable for most themes):
Step 1: Tag Your Products
First, you need to tell Shopify which products require this checkbox.
- Go to your Shopify Admin and navigate to Products.
- Select the 50 (or however many) products that need the terms checkbox.
- Click More actions > Add tags.
- Type
terms-required(or any other descriptive tag you prefer) and click Add, then Save.


Step 2: Add the Custom Liquid Code to Your Product Template
This is where the magic happens.
- From your Shopify Admin, go to Online Store > Themes.
- Find your current theme, click Actions > Customize.
- In the theme editor, navigate to a product page (you might need to select a product that has the `terms-required` tag).
- In the left sidebar, under Product information, click Add block.
- Search for and select Custom liquid (it might just be called "Liquid" in some themes).
- Set the Position of this new block to Right (this helps it sit nicely with your buy buttons, as `ajaycodewiz` noted for Athens). Leave Heading and Icon empty.
- Drag this Custom liquid block in the block list so it sits just above your Buy buttons block.
- Paste the following code into the Custom liquid field:
- Customize the text and link: In the code, find the line:
I have read and agree to the Terms and Conditions.
You can replace "I have read and agree to the Terms and Conditions." with `offroadjim`'s desired checkbox text: "I Agree With The Below Terms and Conditions". You'll also want to update the `href` to your actual terms page or any relevant policy. - Add the full terms text: To display the detailed terms below the checkbox, as `offroadjim` wanted, you can add another `` or `
` tag right after the `


{% if product.tags contains 'terms-required' %}
Please accept the Terms and Conditions to continue.
{% endif %}