NEW: Should table creation fail during install, ask user if they have privileges to do so.
Improved: Prevent any further admin redirects if CoCart database failed to create.
Improved: Products API response for viewing a single variation to match all other product types with exceptions to certain fields not required.
Improved: Creation of CoCart database table and check it exists before attempting to do it again when CoCart updates.
Tweaked: Getting Started page by splitting upgrade information to a new sub-section called “Upgrade CoCart” with sub-menu shortcut.
Tweaked: WC Admin Notes for upgrading CoCart and 6 things to do with the products API.
What to do before testing!
If you have been using CoCart Products add-on, make sure you have the latest version of it installed before updating to this release to prevent crashing your site. Otherwise best to deactivate the add-on first.
Database changes
This release does not introduce any changes to the database.
If you discover any bugs during the testing process, please let me know by logging a report on the GitHub repository. There I can manage it better and get on the issue asap.
A new setup wizard is introduced that will help prepare the environment for a headless setup.
To help WooCommerce stores that are already selling, an option to transfer current sessions is available. This simply copies over all carts in the database to CoCart’s session table. Once completed it will remove them from WooCommerce session table to save database space.
If you are using multiple domains for your headless setup, CoCart Cors plugin will be installed and activated in the background. Upon completing the setup wizard, you will be presented with options on what you can do next.
You can if you wish ignore the setup wizard completely or run it again at any time from the CoCart menu.
CoCart Products add-on now merged and introducing API v2 with a new option to view single products by SKU. This gives users a great start to their development.
The product response is cleaner and better than before by including shortcuts for adding items to the cart or viewing other products connected.
Additional product support such as subscription data will remain in CoCart Pro only.
What to do before testing!
If you have been using CoCart Products add-on, make sure you have the latest version of it installed before updating to this release to prevent crashing your site. Otherwise best to deactivate the add-on first.
New Cart API route introduced that allows developers to add custom callbacks to update the cart for any possibility. See example.
No cache control has been added to the headers to help prevent CoCart from being cached at all so results return quicker.
If you discover any bugs during the testing process, please let me know by logging a report on the GitHub repository. There I can manage it better and get on the issue asap.
I’m pleased to announce CoCart v3 is now available. It’s my biggest release yet for CoCart and may be a while before I release any further updates as I get CoCart Pro ready for it’s next big update.
This release brings a new API providing more than before. Thanks to the amazing feedback from users, CoCart v3 brings a much better cart response designed for all with an all-new flow experience, new options and support for developers to utilize.
Adding grouped products is also now possible while adding variable products has become simpler. Error validation has also be improved so even the smallest of errors caused, a developer can get a clear explanation as to what went wrong.
Basic authentication is also now built in with additional support for use of email address for the username. So you don’t have to use the JSON Basic Authentication plugin no more which is also outdated.
Updating to the new API is simple and makes building your headless store easier than before. Most parameters are the same, other parameters have changed for the better including the default values.
Simply follow the upgrade guide and your good to go.
If your not new to CoCart I think your going to love this update. If you are new to CoCart, well I can already feel your smile of appreciation.
What’s New with CoCart v3?
🥇 NEW: API v2 with new routes to help with the flow.
💯 NEW: Better cart response based on the experimental free add-on “Get Cart Enhanced“.
⛓️ NEW: Carts can sync for guest customers between app and web once “Load Cart from Session” feature has been used.
🔑 NEW: Basic Authentication now built in with the ability to authenticate via email instead of username. 🥳
🔒 NEW: Each route can be forced to check if the user (meaning only a logged in user) has permission to use the API. This requires the use of a new filter. See article for more information.
🔎 NEW: Browse and Search CoCart add-ons or supported extensions from the plugin install page.
Search suggestions are added at the bottom of the plugin search results on the first page only if matching key words match.
New plugin install section “CoCart” displays information on available add-ons or supported extensions with compatibility information and links to more details.
Tweaked: Session data now handled by new abstract to gain more control over it.
Tweaked: Cart key now returns in the cart response the first time round. 🥳
Tweaked: The loading of the session handler for better initialization by filtering it outside the action hook woocommerce_loaded.
Tweaked: Loading a cart from session is now prevented if a user is already logged in.
Tweaked: Loading a cart from session is now prevented if a user is not logged in and the cart key requested matches any registered user.
Tweaked: Cart session now stores when the cart was created, it’s source and hash.
Tweaked: WooCommerce System Status Tools are made available even if COCART_WHITE_LABEL is set to true.
Deprecated: Redirect to cart after using load cart from session.
Tested: ✔️ Compatible with WooCommerce v5.3
Dev: 🐸 NEW Update database manually for CoCart via WP-CLI.
Dev: 🐸 NEW Get the current version of CoCart via WP-CLI.
Dev: Forked get_customer_unique_id() from WooCommerce session handler for backwards compatibility. Introduced to help with unit tests in WooCommerce since version 5.3. Not needed for CoCart.
There is a whole lot of action filters and hooks now available which you can view in the full changelog.
PHP requirement has been bumped to v7.3 to ensure you are getting the best of CoCart. However, web hosts will soon be updating the default PHP version to v7.4 and deprecating support for PHP 7.3 and below. CoCart v3 is ready for that.
This release does introduce changes to the CoCart session table to store when the cart was created, it’s source and cart hash.
If you have been keeping CoCart up to date until now then you will have no issues upgrading when your ready.
Just another warning encase you missed the first one.
If you have not updated CoCart to at least v2.9 then I must warn you. If you have large stores and you update CoCart directly to v3 ignoring previous patches, then the database upgrade will run automatically in the background without notice.
So please update to v2.9 before updating to v3 for a smoother upgrade process.
This release fixes a few minor bugs and tidies up the code a little more. This is the final release candidate before launching real soon.
What’s New since CoCart v3 RC 2?
NEW: Added PUT to Access-Control-Allow-Methods
Fixed: Undefined cart_key.
Fixed: Undefined object property ID.
Fixed: Check $user_id is not empty.
Fixed: Passed the product ID & quantity values for add to cart message that is finally added to cart to return the message correctly, specifically for variable products.
Improved: Various inline docs here and there.
Removed: Various lines of code not used any more to clean it up.
Testing
If you discover any bugs during the testing process, please let me know by logging a report on the GitHub repository. There I can manage it better and get on the issue asap.
I’m hoping now this release candidate is the last one but again, any remaining feedback you provide testing this release candidate is most appreciated.
What’s New since CoCart v3 RC 1?
NEW: Compatible with WP-GraphQL WooCommerce.
As both CoCart and WP-GraphQL WooCommerce extension use their own session handler, there was a clash.
With this release a condition has been added to check if a graphql request was being made in an area that CoCart also shares.
Now both plugins can work side by side.
NEW: Added notice for when item is removed from cart.
Fixed: Authentication with login API. Incorrect permission check used.
Localization: Added missing translator notes.
Testing
If you discover any bugs during the testing process, please let me know by logging a report on the GitHub repository. There I can manage it better and get on the issue asap.
Yes I did. The release post got delayed as I found a few other bugs while writing the documentation. Read the previous post so you have the full log on the new additions and corrections.
CoCart v3 is so close to launching now. Any remaining feedback you provide testing this release candidate is most appreciated.
What’s New since CoCart v3 Beta 4?
New: Added success notice for when a simple or variable product was added to cart.
Fixed: Authenticating on any API while requesting cart key.
Fixed: Product validation for adding grouped products.
Fixed: Response when requesting to return items after adding a grouped product.
Improved: Response returned when removing an item already removed from cart.
Improved: Response returned when restoring an item already restored to the cart.
Tweaked: All links pointing to CoCart.xyz
Updated: Getting started page.
Documentation
The documentation for v3 is now ready for API v2. You will find a section called breaking changes that will explain differences between the two API versions.
You can use the upgrade guide to help with the routes.
Node.js is now the default language tab and the menu navigation has been improved.
While there is still a lot to document, (mostly filters, I added way to many for v3) you can see all the options that are available for the new API version.
If you need help with any of it or you spot an error in the documentation, let me know via the live chat.
Testing
If you discover any bugs during the testing process, please let me know by logging a report on the GitHub repository. There I can manage it better and get on the issue asap.