# The "Add to cart" button doesn’t respond on PrestaShop

> A click on "Add to cart" that does nothing, or that triggers a 500 error: the problem here isn’t the cart’s contents, it’s the action itself failing to fire or crashing along the way. The button relies on an Ajax call to the cart controller, and a handful of specific points can block it.

- Source canonique : [https://allaux.fr/en/prestashop/problemes/bouton-ajouter-panier-ne-fonctionne-pas](https://allaux.fr/en/prestashop/problemes/bouton-ajouter-panier-ne-fonctionne-pas)
- Langue : EN
- Dernière mise à jour : 2026-09-30

## Direct answer

> Open the browser console (F12, Console tab) and click the button: a red JavaScript error nearly always means a module has loaded jQuery a second time. If the Ajax call does fire but returns a 500, set _PS_MODE_DEV_ in config/defines.inc.php and disable the modules hooked on actionCartSave one by one.

## What actually happens on the click

On a product page or a listing, the "Add to cart" button fires an Ajax call to the theme’s cart controller, without reloading the page. If nothing visibly happens, the problem is almost always upstream of that call: a JavaScript conflict is stopping the button’s script from running at all.

The most common case is jQuery loading twice, once from the theme and once from a module that adds its own script without checking what’s already loaded. The second load overwrites the first, and every event handler attached before that point stops working, including the cart button’s.

## When the click triggers a 500 error

If the Ajax call does fire but comes back with a 500 error, the cause is almost always server-side, in a module hooked into an action triggered when adding to cart — actionCartSave, for example. A module that fails silently at that point blocks the action for every visitor, even though the rest of the site works normally.

Another common case: a required combination (size, colour) left unselected. If the theme doesn’t validate this properly on the client side, the add fails with no visible message, which looks exactly like a dead button.

## The double-click on "Order now" case

> Double-clicking a checkout button can create two separate orders if nothing locks out a second submission while the first is still being processed. It’s a related symptom, distinct from a button that doesn’t respond at all.

## Configuration or development?

Clearing the cache, disabling modules one by one to isolate the JavaScript conflict, or checking the error logs to spot the faulty module: this diagnostic work is often enough to pin down the exact cause. Fixing it becomes development when the conflicting module’s code needs rewriting, a hook has to be adapted for the installed version, or checkout needs securing against double submissions.

## Related pages

- **The PrestaShop cart empties itself** — A different symptom: here the cart contents disappear afterwards, not the click itself failing. ([/prestashop/problemes/panier-se-vide-tout-seul](/prestashop/problemes/panier-se-vide-tout-seul))
- **PrestaShop checkout and payment down** — When the blockage sits further along the checkout, after the item has been added to the cart. ([/prestashop/probleme-paiement](/prestashop/probleme-paiement))
- **Bespoke PrestaShop module development** — For a targeted fix when the conflict comes from a third-party module that needs adapting rather than replacing. ([/prestashop/module-sur-mesure](/prestashop/module-sur-mesure))

## FAQ

### The button does nothing on mobile but works on desktop, why?

It’s often the same JavaScript conflict, but a mobile theme or a lighter version of the site sometimes loads different scripts, which explains why the problem only shows up on one type of device.

### How can I tell if a module is blocking the button?

I disable recently installed or updated modules one at a time and retest after each one. It’s often the fastest way to isolate the responsible module before digging into its code.

### The bug appeared right after a PrestaShop update, is that related?

Yes, that’s a common trigger: a module written for an older version can be hooked into an action whose behaviour has changed, which breaks adding to cart without affecting the rest of the site.

### Can double-clicking "Order now" really create two orders?

Yes, if nothing prevents a second submission while the first is still being processed. It’s something I check systematically, separately from the add-to-cart problem.

### Do I need a developer for this kind of bug?

Not always: isolating the cause through a disable-and-test diagnostic is often enough. Development becomes necessary when the conflicting module’s code needs correcting or an outdated hook needs adapting.
