The Additional Terms app adds one or more extra terms-and-conditions acknowledgments to your checkout, separate from your store's main Terms and Conditions setting. Use it when a single catch-all agreement is not enough: a cancellation policy, a returns policy that differs from your general terms, an age-verification notice, a GDPR data processing addendum, or any other agreement that only some of your customers need to see.
Each item can be a plain informational link or a checkbox. A checkbox can be optional or required before the customer can continue. You choose where in checkout the items appear, and you can limit any item to customers in a specific country or region.
Requirements
- PHP 8.3.0+
- Joomla! 6.x
- J2Commerce 6.x
Purchase and Download
Additional Terms is a separate add-on available from the J2Commerce Extensions Store. It is not included with the core J2Commerce 6 component.
Step 1: Go to the J2Commerce website -> Apps.
Step 2: Locate the Additional Terms app, click View Details, then Add to Cart -> Checkout.
Step 3: Go to My Downloads under your profile button at the top right corner and search for the app. Click Available Versions -> View Files -> Download Now.
Install the App
In the Joomla administrator, go to System -> Install -> Extensions.
Upload the plugin ZIP file, or use the Install from URL option.
Enable the App
Installing the app does not enable it. There are two ways to reach the Apps list.
Option A: Go to the J2Commerce icon at the top right corner -> Apps.
Option B: Go to Components on the left sidebar -> J2Commerce -> Apps.
Search for Additional Terms for J2Commerce, click the X, and it turns into a green checkmark. The app is now enabled and ready for setup.

Before You Configure: Create the Terms Article
The app takes the full text of each agreement from a standard Joomla article. Create the article first, or create it from the Terms Article field while you configure the app.
- Go to Content -> Articles -> New.
- Write the full text of your additional policy, for example your cancellation terms or a GDPR data processing notice.
- Set the article Status to Published and check that its Access level is visible to your customers.
- Click Save & Close.
The article can belong to any category. It does not need to appear in a menu.
Configure the App
Click the Additional Terms title next to the green checkmark to open its settings. The settings are split across two tabs: Basic and Additional Terms.
Tip
Click the Toggle Inline Help button in the toolbar to show a description below each field as you configure it.
Basic Tab
| Field | Description | Default |
|---|---|---|
| Checkout Position | Where in checkout the additional-terms block appears. | Before Order Confirmation |
| Template | The look (Bootstrap 5 or UIkit) used to render the checkboxes and links. Leave it on Default to follow the style of the menu item or the J2Commerce configuration. | Default |
| Geozone Match Address | Which checkout address is checked against a term's assigned country or region, when that term is restricted to one. | Shipping Address |
| Debug Mode | Writes blocking decisions to the Joomla log. Leave it off on a live store. | No |
Checkout Position options:
- After Billing Address
- After Shipping Address
- Before Payment Method
- Before Order Confirmation (default)
Pick the position that fits what you ask the customer to agree to. An age-verification notice reads better right after the billing or shipping step. A cancellation-policy acknowledgment usually fits best right before the customer confirms the order.
Template shows a visual picker with a Default card plus a card for each installed storefront style (Bootstrap 5, UIkit). Most stores can leave it on Default.
Geozone Match Address only matters if you restrict one or more terms items to a country or region (covered below). If you restrict none, it has no effect.
Additional Terms Tab
This is where you build the list of terms items and set the message shown when a required checkbox is missed.
| Field | Description |
|---|---|
| Terms Items | Add as many separate terms items as you need, up to 20. Each can be a plain link or a checkbox. |
| Warning Message | The message shown when a customer tries to continue without checking a required item. Leave it blank to use the default: "Please accept the additional terms and conditions to continue." The message applies to every required item. |
Adding a Terms Item
Click the + button next to Terms Items to add a row. Each row has the following fields.
| Field | Description |
|---|---|
| Display Type | Link Only shows the terms as a plain hyperlink with nothing to accept. Checkbox shows a checkbox next to the label. |
| Required to Checkout | Only shown when Display Type is Checkbox. When set to Yes, the customer cannot move past this checkout step until the box is checked. Default: No. |
| Terms Article | The Joomla article that holds the terms text. Its content opens in a pop-up window when the customer clicks the label. Pick an existing article, or create and edit one without leaving this form. |
| Geozone | Restrict this item to customers in a specific country or region. Leave it on All to show the item to every customer. |
| Label Prefix | Text shown before the clickable label, for example "I agree to the". Optional. Leave it blank to use the default wording. |
| Label | The clickable text, for example "Terms and Conditions". Leave it blank to use the default wording. |
| Label Suffix | Text shown after the clickable label. Optional. Leave it empty if the prefix and label already read as a complete sentence. |
If Label Prefix, Label, Label Suffix, and Terms Article are all blank on a row, the row is treated as unfinished and does not appear on the storefront. Fill in at least one of them.
If no article is attached, the label shows as plain text and there is nothing to click.
Making a Checkbox Required
Set Display Type to Checkbox, then set Required to Checkout to Yes. The customer must check the box before moving past the checkout position you chose. If they try to continue without it, they see your Warning Message.
Warning
A checkbox does not block checkout unless Required to Checkout is set to Yes. If you need the customer's consent before an order is placed, set both fields.
Leave Required to Checkout on No to show a checkbox that is purely optional, for example a newsletter-style acknowledgment that should not block checkout.
Restricting a Term to a Country or Region
Set Geozone on a row to limit that item to customers whose address falls inside that region. This helps when only some customers legally need to see a notice, for example a GDPR consent checkbox for European customers, or a recycling-fee disclosure for customers in one state.
Geozones are managed under J2Commerce -> Localization -> Geo Zones. Create or confirm the region there first, then select it on the terms item row.
By default, J2Commerce checks the customer's shipping address against the geozone. To check the billing address instead, change Geozone Match Address to Billing Address on the Basic tab.
Customizing the Wording
The Label Prefix, Label, and Label Suffix fields together make one sentence at checkout. The Label part is the clickable link when an article is attached. All three fields accept plain text.
Example 1: Cancellation Policy Checkbox
| Field | Value |
|---|---|
| Display Type | Checkbox |
| Required to Checkout | Yes |
| Label Prefix | I have read and agree to the |
| Label | cancellation policy |
| Label Suffix | , including the 14-day return window |
| Result | I have read and agree to the cancellation policy, including the 14-day return window |
Example 2: Age Verification
| Field | Value |
|---|---|
| Display Type | Checkbox |
| Required to Checkout | Yes |
| Label Prefix | I confirm that I am |
| Label | 18 years of age or older |
| Label Suffix | (empty) |
| Result | I confirm that I am 18 years of age or older |
Example 3: GDPR Data Processing Addendum
| Field | Value |
|---|---|
| Display Type | Checkbox |
| Required to Checkout | Yes |
| Label Prefix | I accept the |
| Label | data processing addendum |
| Label Suffix | required under GDPR |
| Result | I accept the data processing addendum required under GDPR |
Difference From the Primary Terms Setting
J2Commerce has its own Terms & Conditions settings (Show Terms & Conditions, Terms Display and a terms article) on the Checkout tab of the J2Commerce Configuration. They handle the first, main agreement your customers accept.
The Additional Terms app is for everything else: a second, third, or specialized agreement that sits alongside the primary terms. Both can be active at the same time. Customers see the primary terms and the additional terms as separate, independent acknowledgments.
How It Works
- At the checkout position you selected, J2Commerce checks whether any terms items apply to the current customer.
- An item whose Geozone is All, or whose Geozone matches the customer's address, is displayed. Items assigned to a different region are skipped for that customer.
- Each visible item shows its prefix, label, and suffix. Clicking the label opens the linked article in a pop-up window. If the article is unpublished or restricted to an access level the customer does not have, the pop-up has no content.
- If a checkbox item is marked Required to Checkout, the customer must check it before continuing. Otherwise they see your Warning Message.
- J2Commerce confirms the required items again when the order is submitted. If one is missing, the order is blocked and the same warning is shown.
- Once the order is placed, the acceptance record is cleared so the next checkout starts fresh.
Tips
- Use Link Only for informational content that needs no explicit agreement. Reserve Checkbox with Required to Checkout for anything that must be accepted before you process the order.
- Keep Label short. It is the part customers click, so it should read naturally between the prefix and the suffix.
- Reuse the same Joomla article across several terms items if one policy applies to several situations. You then maintain the wording in one place.
- If you serve customers in several countries, add a geozone-restricted item for each region with its own legal requirement, and leave Geozone on All for anything that applies to everyone.
- Turn on Debug Mode only while troubleshooting. It writes every blocking decision to the Joomla log.
Troubleshooting
A Terms Item Does Not Appear at Checkout
Cause: The app is not enabled, the row is unfinished, or its Geozone does not match the customer's address.
Solution:
- Go to J2Commerce -> Apps and confirm Additional Terms for J2Commerce shows a green checkmark.
- Open the app's Additional Terms tab and open the row. Confirm at least one of Label Prefix, Label, Label Suffix or Terms Article is filled in.
- Check the row's Geozone. If it is set to a region, confirm the customer's shipping address (or billing address, if you changed Geozone Match Address) falls within that geozone.
- Confirm the geozone itself is set up correctly under J2Commerce -> Localization -> Geo Zones.
Clicking the Label Does Not Show Any Content
Cause: No Terms Article is attached, or the attached article is unpublished or restricted to an access level the customer does not have.
Solution:
- Open the terms item row and confirm a Terms Article is selected.
- Go to Content -> Articles, open the article, and confirm it is Published.
- Check the article's Access level and confirm it is visible to public and guest customers if the item should show store-wide.
Checkout Will Not Let the Customer Continue After Checking the Box
Cause: More than one required item is on the page and one is still unchecked.
Solution:
- Turn on Debug Mode on the Basic tab, repeat the checkout, and check the Joomla log for the item that blocks submission. The log file is
plg_j2commerce_app_additionalterms.phpin your site's Joomla log folder. - Confirm every required checkbox on the page is checked. The warning appears again for each required item that is still unchecked.
- Turn Debug Mode off again when you are done.
The Wrong Template Style Is Showing
Cause: Template on the Basic tab is set to a fixed style instead of Default.
Solution:
- Open the app and go to the Basic tab.
- Set Template back to Default so it follows the current menu item's checkout style, or pick the style that matches the rest of your storefront.