We use cookies to improve your experience. No personal information is gathered and we don't serve ads. Cookies Policy.

ExpressionEngine Logo ExpressionEngine
Features Pricing Support Find A Developer
Partners Upgrades
Blog Add-Ons Learn
Docs Forums University
Log In or Sign Up
Log In Sign Up
ExpressionEngine Logo
Features Pro new Support Find A Developer
Partners Upgrades
Blog Add-Ons Learn
Docs Forums University Blog

CartThrob 9.0.0 is Here: What You Need to Know

11/3/2025   /   By Matt Johnson

We just released CartThrob 9.0.0, and it’s a big one. This update brings a lot of improvements we’ve been working on. There are over 159 commits worth of fixes, features, and polish since version 8.1.0.

What’s New

The biggest addition is template generators. If you’ve ever found yourself rewriting the same CartThrob template tags or searching through docs for the right syntax, this will save you tons of time. You get code snippets and stubs for all the template tags right in ExpressionEngine, which makes building out your eCommerce site way faster.

We also added a new async consume command for handling background operations, plus some nice quality-of-life updates like the {order_number} variable in the submitted order info tag. And if you need more control over form submissions, there’s now a form_idempotency parameter you can use on individual forms.

For those using Stripe, your payment intents can now include full order details, which helps with record-keeping and customer communication.

Under the Hood

We spent a lot of time making CartThrob more reliable. The async processing system now handles high-traffic situations better without operations stepping on each other. We updated the Opayo and Elavon gateway endpoints, relaxed some overly strict number formatting rules, and gave the Order Manager interface a refresh with better layouts and modern calendar widgets.

The checkout form now checks inventory before it even renders, which prevents some frustrating edge cases. We also improved error messages throughout, especially for Authorize.net transactions.

Fixes That Matter

This release squashes a bunch of bugs that were causing headaches. CartThrob now works smoothly with PHP 8.3, and we fixed stability issues across multiple payment gateways. The notification system is more reliable (no more random failures), and we cleaned up various Order Manager quirks like status change emails not sending and UI glitches.

We also tackled issues with async custom data handling, database versioning, and config file errors that some of you reported.

How to Get It

CartThrob is available exclusively in the Add-on Store. If you’re an existing customer, you can upgrade to version 9.0.0 at a discounted price - but only for the next 45 days. We’re extending this discount to all past purchases, so now’s a great time to update. To upgrade, attach the CartThrob license to your site and then click “renew” to add the renewal to your cart.

After you upgrade, your renewal period will be one year from your purchase date, giving you access to updates and support for the full year ahead.

The Bottom Line

Version 9.0.0 makes CartThrob more stable, more modern, and easier to work with. Whether you’re running PHP 8.3 or just want a smoother development experience with those template generators, this update has something for you.

CartThrob 9.0.0 works with ExpressionEngine 7.x and supports PHP 8.1 through 8.3. It’s ready to use in production right now.

Special Thanks

A huge shoutout to Eric Lamb for his substantial contributions to this release. Eric’s work was instrumental in making CartThrob 9.0.0 what it is today. We’re incredibly grateful for his expertise and dedication to improving CartThrob for the entire community.

ExpressionEngine Home Features Pro Contact Version Support
Learn Docs University Forums
Resources Support Add-Ons Partners Blog
Privacy Terms Trademark Use License

Packet Tide owns and develops ExpressionEngine. © Packet Tide, All Rights Reserved.