CoCart v2 now released

Today marks the first release of the new API that introduces itโ€™s own namespace, major improvements including better responses and new ways to return a response to reduce API requests in your app.

If you have been following the development of version 2 then you already know that for developers it is now possible to filter in additional data.

To share some of the examples on what you can do with CoCart v2 I have created a side plugin that provides various tweaks that you can apply to further enhance CoCart to your needs.

Feel free to contribute other examples that you have applied yourself.


The new API uses the same parameter properties and includes some new ones. The route for the API has also changed including some of the endpoints.

Below you will see a comparison of the route and endpoint changes.

Legacy API

  • wc/v2/cart
  • wc/v2/cart/add
  • wc/v2/cart/calculate
  • wc/v2/cart/cart-item
  • wc/v2/cart/clear
  • wc/v2/cart/count-items
  • wc/v2/cart/totals


  • cocart/v1/get-cart
  • cocart/v1/add-item
  • cocart/v1/calculate
  • cocart/v1/clear
  • cocart/v1/count-items
  • cocart/v1/item
  • cocart/v1/totals

You can still use the legacy API if you are already using it and not yet ready to use the new API but you will miss out on all the new enhanced features.

Upgrading is easy. As I said, the new API uses the same parameter properties so switching over is a breeze. The documentation provides all the details on the new parameter properties.

Minimum Requirements

While it is still possible to use CoCart with WooCommerce v3.X.X it is better to be updated to at least v3.6.X for better performance and security. With the upcoming release of WooCommerce 3.7, I will be updating the minimum required version of WooCommerce to 3.6 in the future.

I have to do this to keep up with the code changes within the WooCommerce ecosystem and to be able to deliver the best experience for my users.

If you have any questions or feedback around the decision for this change, please feel free to leave them in the comments.


Here is the full changelog on what’s new in CoCart.

  • NEW: REST API namespace. CoCart is now an individual API and is no longer nested with WooCommerce’s core REST API.
  • NEW: Check to see if the cart is set before falling back to the cart in session if one exists.
  • NEW: Get a specific customers cart via their customer ID number.
  • NEW: Product title also returns besides just the product name when getting the cart.
  • NEW: Product price also returns when getting the cart.
  • Changed: Filter and Action Hook names in new API.
  • Improved: Complexity of functions for better performance and usage.
  • Tweaked: Added checking for items already in the cart.
  • Tweaked: Check if cart is empty before removing an item.
  • Tweaked: Responses for adding, updating, removing and restoring items to return whole cart if requested.
  • Tweaked: Responses for updating items to return the quantity of item along with message.
  • Tweaked: Totals can now return once calculated if requested.
  • Tweaked: Totals now return from session and can be returned pre-formatted if requested.
  • Tweaked: New option to refresh cart totals once item has been added or updated.
  • Dev: Added action hooks for getting cart, cart is cleared, item added, item removed and item restored.
  • Dev: Added filter to allow additional checks before the item is added to the cart.
  • Dev: Added filter to apply additional data to return when cart is returned.
  • Dev: Added filter to change the size of the thumbnail returned.
  • Dev: Added new option to return cart raw if requested.

Progress on CoCart Pro

Now that CoCart v2 is released you can expect to see CoCart Pro very soon.

If you look at the features page, you will already see some of the features that are coming to CoCart Pro. Development on the remaining core features that I have planned are near completion.

With plans for supporting popular official WooCommerce extensions in future updates, support for WooCommerce Subscriptions (which is by far the most popular) is the first supported.

Prices for CoCart Pro has already been released and if you have signed up to the newsletter you will be given a discount for the first year once launched so don’t miss out.

Showcase your store

I’m looking to showcase stores built using CoCart whether it’s a web app, desktop app or a smartphone app for Android and iOS. If you are interested in being featured, please contact me to discuss.

That’s it.

Enjoy CoCart v2 ๐Ÿ™‚

CoCart v2 Release Candidate 2

Another release candidate for CoCart v2. I’m not going to specify a release date but if there are no further major issues I will release it sometime this week with more details about CoCart Pro.

All details of the changes made to CoCart for v2 can be found here and links to the specific feature improvements made can be found here.

Before v2 is made available to the public I require your feedback for suggestions, issues or bugs that need to be squashed. View the new documentation available for details on the new API.

Please only test on a local environment or staging site. If you come across an issue, please report it via the GitHub repository where I can manage it more appropriately.

Thank you.


  • Added refresh totals parameter to adding item.

CoCart v2 Release Candidate 1

Two days ago was suppose to be the release of CoCart v2 but a major issue occurred that was found last minute so I had to delay and I’m glad I did as this issue actually exposed a few invalid responses and sections that could be improved further.

Now the major issue is resolved and further improvements have been made, CoCart v2 is ready for real this time but before it is made public I would like you to test it out for me and report any bugs or issues you come across.

The documentation will be updated over the weekend but is 99% ready for CoCart v2.

Updated: 1st July 2019

Release Candidate 2 was released. See post for more details.

Thank you for your patience. ๐Ÿ™‚


  • WP_Error is no longer in CAPS
  • Added notes for translators and tweaked strings.
  • Corrected feature mentioned for CoCart Pro.
  • New totals override totals instead of another REST Response.
  • Added original price of product when getting cart.
  • Added more argument descriptions.
  • Optional argument corrections.
  • Return a response should specified cart item key not exist in cart.
  • Tweaked CSS for admin notices.
  • Ensure we don’t add a variation to the cart directly by variation ID.
  • Generate a ID based on product ID, variation ID, variation data, and other cart item data.
  • Added new option to refresh cart totals once item has been added.
  • Use self get_cart instead of cart class get_cart.
  • Added new option to return cart raw if requested.
  • Quantity of item increases if item already in cart. Responses improved.
  • Removed the need to format quantity value again when checking available stock.
  • No need to check if WC endpoint is requested.
  • Removed validate_callback for pre-formatted totals.
  • Made sure the cart item key parameter name is consistent.
  • Return cart parameter is no longer ignored.
  • Return cart item contents rather than boolean status.
  • Changed hook for loading controllers.

CoCart v2.0.0-beta.2

This release applies a couple of tweaks and one fix.

  • Fixed: $this error with getting cart to check if item is in cart.
  • Tweaked: Check if cart is empty before removing an item.
  • Tweaked: Re-ordered registry of routes to be in alphabetical order.
  • Updated: POT file.

Updated: 1st July 2019

Release Candidate 2 was released. See post for more details.

Release Date

I’m hoping to release CoCart v2 next Tuesday, 25th June 2019 so please test and report feedback for any issues before then.

P.S. Again, please only test on a local environment or staging site. If you come across an issue, please report it via the GitHub repository. Thank you ๐Ÿ™‚

Coming in v2: Totals

Fetching the cart totals is one of the most important parts of the CoCart API and while you do get all the information you need, they were not always returned in the same format when it came to the actual totals and did not have the currency symbol applied.

I’m sure developers would have to convert the values and apply the currency symbol after fetching the totals which could also increase load time for their app with the additional code required.

For version 2, I wanted to make it faster and easier for developers by returning the results pre-formatted ready to simply display them.

All totals can now return as a string with the currency symbol automatically applied according to the store currency set in the WooCommerce settings.

To get these results, simply set the new property as true.

See documentation for example.

That’s it!

Feedback Required!

CoCart v2 is now available for beta testing.