How to Resolve Magento 2 Checkout Agreements Not Showing?

How to Resolve Magento 2 Checkout Agreements Not Showing?

Don’t let missing checkout agreements derail your Magento 2 store! Magento 2 checkout agreements not showing disrupts store checkout flow. Missing or conflicting agreements delay orders and reduce conversion rates.

This article explores causes and solutions for missing agreements in standard Magento 2.

Key Takeaways

  • The Status of the agreement (Enabled/Disabled) is key.

  • Configuration scope (Global, Website, Store View) dictates visibility.

  • The global Enable Terms and Conditions setting must be active.

  • Theme customizations can remove or hide the agreement section.

  • Extension conflicts can interfere with agreement display logic.

  • Cache issues prevent configuration changes from appearing.

Where Do Checkout Agreements Show in Magento 2 Frontend?

Magento admin handles checkout agreements as "Terms and Conditions". They show during the checkout process. Customers see them on the Payment & Review step.”

Each enabled agreement displays its name or checkbox text. It demands acceptance via checkbox if mandatory.

The store displays all agreements that are:

  1. Set to Status = Enabled.

  2. Applicable to the current Store View based on scope.

  3. Enabled via Stores > Configuration > Sales > Checkout > Checkout Options > Enable Terms and Conditions = Yes.

Agreements include:

  • Terms and Conditions

  • Privacy Policy

  • The store requires other custom policies

To proceed, customers must accept any mandatory agreements. The system displays the agreement name next to the checkbox. The full agreement content appears below or through a link. Agreements appear in the order determined by their Sort Order setting.

Reasons Why Magento 2 Checkout Agreements May Not Display in Frontend

1. Disabled Agreement Configuration

Disabled Agreement Configuration Causing Magento 2 Checkout Agreements Display Issues

  • Global Feature Disabled: The feature might be off. Find it in Stores > Configuration > Sales > Checkout > Checkout Options > Enable Terms and Conditions. No agreements will show.

  • Individual Agreement Disabled: Disabled agreements are problematic. Check its Status field in Stores > Terms and Conditions. Enable it.

  • Incorrect Scope Configuration: An enabled agreement can remain disabled for a specific scope. Use the scope switcher in Stores > Terms and Conditions to verify the Status. Unchecking "Use Website" allows different statuses for that scope.

  • Database Record Missing: The agreement record from the checkout_agreement database table is missing.

2. Incorrect Scope Application

  • Wrong Store View Checked: Check the agreement's Status under the correct scope. What works for one store might fail for another.

  • Configuration Inheritance: Changes at Default Config scope might not apply elsewhere. Uncheck the "Use Default" checkbox for Status.

  • Multi-website Complexity: Enable the agreement for each website scope in multi-website setups.

3. Cache Issues

  • Stale Configuration Cache: Magento caches configurations. Changes in Stores > Configuration might not appear until the cache clears.

  • Stale Block/Layout Caches: The checkout page structure gets cached. The layout and block_html cache types need clearing.

  • Full Page Cache: FPC or Varnish might cache the entire checkout page HTML.

  • Browser Cache: The user's browser cache might hold an old checkout page version.

4. Theme and Template Issues

  • Layout XML Modification: Custom themes remove the agreements block from checkout_index_index.xml.

  • Template Overrides: The theme might override the core template with flaws. Check view/frontend/templates/agreements.phtml for issues.

  • CSS Hiding: Custom CSS rules might hide the agreement container. Look for display:none; rules.

  • JavaScript Conflicts: Custom JavaScript might conflict with KnockoutJS components for agreements.

5. Extension Conflicts

  • Logic Overrides/Plugins: Extensions might use preferences or plugins to override core classes. This introduces bugs in agreement loading.

  • JavaScript Conflicts: Extensions adding JavaScript to checkout can conflict with core agreement scripts.

  • Sequence Issues: Incorrect module load order causes conflicts. Check app/etc/config.php for proper sequencing.

How Extensions Cause Magento 2 Checkout Agreement Display Issues?

1. Incorrect Core Agreement Logic Overrides

  • Plugin Interference: Plugins targeting methods like getList alter data fetching. They can return empty results or throw errors.

  • Faulty Data Handling: Custom code might process agreement data wrong. This filters agreements out before reaching the frontend.

2. Plugin and Preference Conflicts

  • Several Overrides: Two extensions might override the same core class. This creates unpredictable behavior based on load order.

  • Incompatible Changes: Competing extensions might make incompatible changes to agreement components.

  • Dependency Injection Issues: Faulty di.xml configurations break object creation. This halts the entire process.

3. Checkout Data Interference (Indirect)

  • Layout Manipulation: Checkout extensions alter the checkout layout structure. They might remove the agreement block container.

  • JS Component Conflicts: Extensions adding JS to checkout clash with agreement components. Extensions that change checkout flow break rendering.

4. Frontend Rendering Breakage

  • JavaScript Errors: Custom JS might throw errors in the browser console. This halts the rendering of the agreements section.

  • Template Overrides: Extensions can provide broken templates for agreements. They might miss KnockoutJS bindings or HTML structure.

  • Layout XML Removal: An extension's XML might remove the core agreement block definition.

  • CSS Conflicts: Extension CSS might hide the agreement elements.

5. Installation and Dependency Issues

  • Incomplete Setup: Running bin/magento setup:upgrade is key after installing extensions. Skipping this step causes errors.

  • Version Incompatibility: An extension might not work with your Magento version. This causes bugs in overridden features.

  • Dependency Problems: An extension might need another missing module. This breaks the code, affecting agreements.

Troubleshooting Magento 2 Checkout Agreement Display Issues

1. Verify Core Configuration & Scope

Issue Solution Technical Reference
Feature disabled Go to Stores > Configuration > Sales > Checkout > Checkout Options Set Enable Terms and Conditions to Yes, clear cache.
Agreement disabled Go to Stores > Terms and Conditions, and edit the agreement. Set the Status field to Enabled.
Disabled for current scope In Stores > Terms and Conditions, use the scope switcher. Check the Status. Uncheck Use Website if needed. Set the Status to Enabled for this scope.
Database record missing Check the checkout_agreement table via the database client. Look for the row with your agreement ID. Make sure that is_active = 1.

2. Confirm Scope & Clear Caches

Issue Solution Technical Reference
Wrong Scope Configuration Check the Status for the affected Store View. Use the scope switcher with care.
Stale Cache Data Go to System > Tools > Cache Management. Flush caches: Configuration, Layout, Blocks HTML, Full Page.
Command Line Cache Clearing Run cache commands via CLI. Use bin/magento cache:clean config layout block_html and bin/magento cache:flush.
Browser Cache Clear browser cache or test in a private window. Follow browser cache-clearing steps.

3. Investigate Extension Conflicts & Custom Code

Issue Solution Technical Reference
Extension Conflict Disable recent extensions one by one. Run bin/magento module:disable Vendor_ModuleName, then test checkout.
Log Inspection Check Magento's log files for errors. Look in var/log/exception.log and var/log/system.log.
JavaScript Errors Open the browser's developer console on the checkout page. Look for errors about checkout-agreements.js or KnockoutJS.
Third-party Module Logic Review the code of suspect extensions. Check for code that modifies checkout or agreements.

4. Clear Caches & Reindex (Standard Procedure)

Issue Solution Technical Reference
Stale Configuration Cache Go to System > Tools > Cache Management. Flush Configuration cache type.
Command Line Caching Run cache commands via CLI. Use bin/magento cache:clean and bin/magento cache:flush.
Index Status Check System > Tools > Index Management. Make sure that core indexers show Ready. Reindex if needed.
Index Refreshing Reindex from admin or CLI if needed. Run bin/magento indexer:reindex.
Page Cache Issues Clear full-page cache and Varnish. Make sure that the latest page structure loads.

5. Verify Theme and Template Configurations

Issue Solution Technical Reference
Missing Layout Block Check the theme's checkout_index_index.xml layout file. Make sure that the agreements block exists in the right container.
CSS Conflicts Use browser tools to inspect checkout page elements. Check for CSS rules hiding agreement containers.
JavaScript Overrides Review custom JS files on the checkout page. Look for conflicts with Magento_Checkout/js/view/checkout-agreements.
Faulty Template Override Compare the theme's agreement template with the core version. Check for missing HTML structure or KnockoutJS attributes.
KnockoutJS Bindings Verify bindings in the template. Check the browser console for KnockoutJS errors.

Best Checkout Agreement Display Strategies for Magento SMBs

1. Scope Configuration Management

Scope Configuration Management Checkout Agreement Display Strategies for Magento SMBs

i. Verify Store View Settings

  • Navigate to Stores > Terms and Conditions in the admin panel. Select the problematic store view using the scope switcher at the top left corner.

  • Check Status field shows Enabled for that specific scope. Uncheck the "Use Default" box if you need store-specific settings.

ii. Enable Global Configuration

  • Go to Stores > Configuration > Sales > Checkout > Checkout Options. Set Enable Terms and Conditions to Yes for all website scopes.

  • Confirm Enable Onepage Checkout shows Yes in the same section. Both settings must align for agreements to display as intended.

iii. Set the Applied Method

  • Choose Manually in the Applied dropdown for the checkbox display. The Automatically option skips customer interaction with agreements.

  • Verify Show Content as matches your content format needs. Select HTML for formatted text with styling elements.

2. Content Structure Optimization

Content Structure Optimization Checkout Agreement Display Strategies for Magento SMBs

i. Format Agreement Text

  • Keep Checkbox Text under 100 characters for better display. Use action-oriented phrasing that prompts customer engagement.

  • Set appropriate Content Height value in pixels. Values between 150-300px balance readability with space conservation on checkout pages.

ii. Use Multi-language Support

  • Add translations for each store view in the agreement content. Missing translations cause blank agreements in regional stores.

  • Use HTML content type to maintain consistent formatting. Text-only agreements lose formatting across language versions.

3. Technical Implementation Fixes

i. Resolve JavaScript Errors

  • Check the browser console for errors during the checkout process. Fix any JavaScript conflicts preventing agreement rendering.

  • Verify the checkout-agreements.html template contains proper checkbox markup. Missing input elements cause validation failures.

ii. Fix Data Binding Issues

  • Inspect the data-bind attributes in agreement templates. Make sure that agreementId variables pass to validation functions.

  • Add 'checked': 'checked' to data-bind attributes for pre-checked boxes. Clear static cache after template modifications.

iii. Correct API Integration

  • Fix agreement_ids array in API requests. Empty arrays cause 400 errors during checkout submission.

  • Check REST endpoint responses for guest carts. Incorrect token usage causes checkout failures with agreement validation.

4. Extension Conflict Resolution

i. Identify Problematic Modules

  • Disable third-party checkout extensions one by one. Test agreements after each deactivation to isolate conflict sources.

  • Check custom payment methods for agreement validation overrides. Payment modules often alter checkout validation flows.

ii. Fix XML Layout Conflicts

  • Review checkout_index_index.xml for duplicate agreement blocks. Remove redundant checkout.onepage.agreements declarations.

  • Confirm that agreement blocks use the correct display areas. Move blocks to after-place-agreements for proper positioning.

5. Performance Optimization

Checkout Agreement Display Performance Optimization Strategies for Magento SMBs

i. Use a Proper Caching Strategy

  • Run bin/magento cache:flush after agreement changes. Config cache stores agreement settings that need refreshing.

  • Execute bin/magento setup:static-content:deploy for template updates. Static content deployment rebuilds agreement templates.

ii. Lessen the Loading Impact

  • Keep agreement content under 1000 words. Excessive text increases page load time and reduces conversion rates.

  • Use progressive disclosure with expandable sections. For a better user experience, show summary text with the option to view full terms.

FAQs

1. Why do agreements appear in admin, not frontend?

This points to scope issues, disabled features, or caching. Check the agreement Status for the exact store view. Verify Enable Terms and Conditions is Yes. Clear all caches. Look for theme issues that hide agreement blocks. Test with the default theme.

2. How do third-party themes affect agreement display?

Custom themes can remove the agreement block from layout XML. They might provide broken template files. CSS rules can hide the agreement section. Theme JavaScript might block agreement components from rendering. Check each area for issues.

3. Does customer group assignment impact agreement visibility?

No. In standard Magento 2, agreements appear for all customer groups. If an agreement works for one store view, all customers see it. Customer group filtering needs custom code or third-party extensions.

4. What role does caching play in agreement issues?

Caching causes many agreement problems. A configuration cache keeps old settings. Layout cache preserves old page structures. Full Page Cache saves entire checkout pages. Browser cache stores old files. After making agreement changes, clear all cache types.

5. How do I debug agreement-related issues?

Check logs at var/log/system.log and var/log/exception.log. Open the browser console for JS errors. Check the network tab for script loading. Enable template path hints to verify template usage. Disable extensions one by one. Switch to the default Magento theme.

6. Can product inventory settings affect agreement availability?

No. Product stock status does not impact the agreement display. MSI settings cannot hide or show agreements. Backorder settings do not change their visibility. Agreements depend on their own config, theme, and extensions.

Summary

Magento 2 checkout agreements not showing stems from configuration oversights or theme customizations. They can also result from extension conflicts or caching. Consider the below mention tutorial highlights:

  1. Disabled agreement status blocks customer view. Wrong store scope hides valid agreements.

  2. Enable Terms in Sales > Checkout settings. Clear all caches after making configuration changes.

  3. Custom themes can remove agreement sections. Extension conflicts break agreement display logic.

  4. Check the browser console for JavaScript errors. Verify data bindings in agreement templates.

  5. Set the correct scope for each store view. Add translations for regional store agreements.

Consider Managed Magento Hosting to troubleshoot Magento 2 checkout agreement visibility issues.

Sayan Chakraborty
Sayan Chakraborty
Technical Writer

Sayan is a seasoned technical writer with over 4 years of expertise in SDLCs and Magento. His proficiency lies in simplifying complex Magento hosting concepts in clear, concise words.


Get the fastest Magento Hosting! Get Started