---
title: "Additional Terms"
description: "Add extra terms-and-conditions checkboxes or links to J2Commerce checkout, targeted by country/region and positioned wherever you need them."
url: "https://docs.j2commerce.com/v6/apps-and-extensions/apps/app_additionalterms"
markdown_url: "https://docs.j2commerce.com/v6/apps-and-extensions/apps/app_additionalterms.md"
last_updated: "2026-11-08T14:26:17+00:00"
version: "J2Commerce 6"
breadcrumbs:
  - title: "Home"
    url: "https://docs.j2commerce.com/"
  - title: "J2Commerce 6"
    url: "https://docs.j2commerce.com/v6"
  - title: "Apps and Extensions"
    url: "https://docs.j2commerce.com/v6/apps-and-extensions"
  - title: "Apps"
    url: "https://docs.j2commerce.com/v6/apps-and-extensions/apps"
  - title: "Additional Terms"
    url: "https://docs.j2commerce.com/v6/apps-and-extensions/apps/app_additionalterms"
---

# Additional Terms

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](https://www.j2commerce.com/extensions) -> **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.

![J2Commerce Apps list searched for Additional Terms, with the status icon of Additional Terms for J2Commerce highlighted as a green checkmark showing it is enabled](https://docs.j2commerce.com/images/docs/shared/terms_enable.webp)

## 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.

1. Go to **Content** -> **Articles** -> **New**.
2. Write the full text of your additional policy, for example your cancellation terms or a GDPR data processing notice.
3. Set the article **Status** to **Published** and check that its **Access** level is visible to your customers.
4. 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

1. At the checkout position you selected, J2Commerce checks whether any terms items apply to the current customer.
2. 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.
3. 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.
4. If a checkbox item is marked **Required to Checkout**, the customer must check it before continuing. Otherwise they see your **Warning Message**.
5. 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.
6. 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:**

1. Go to **J2Commerce** -> **Apps** and confirm **Additional Terms for J2Commerce** shows a green checkmark.
2. 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.
3. 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.
4. 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:**

1. Open the terms item row and confirm a **Terms Article** is selected.
2. Go to **Content** -> **Articles**, open the article, and confirm it is **Published**.
3. 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:**

1. 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.php` in your site's Joomla log folder.
2. Confirm every required checkbox on the page is checked. The warning appears again for each required item that is still unchecked.
3. 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:**

1. Open the app and go to the **Basic** tab.
2. 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.
