Commerce 1.2.0-rc3

Commerce 1.2.0-rc3 is now available. This release is absolutely massive with fixes and features, and I want to urge you to test it on development or staging environments before updating production, even if you're already running rc2 on production.

While we take testing very seriously to make sure bugs are found and fixed before users find them, this release has been developed over the span of 6 months in the midst of a raging pandemic and a burnout and it's just.. huge. From changes affecting key parts of the checkout and various gateways to upgrading the UI framework in the dashboard, this release has a higher-than-normal potential of unintentional side effects that you don't necessarily want to experience on production.

Warning aside, there's some amazing new goodies in this release as well that I want to briefly summarize for you. Find the full changelog here

Dashboard refresh

Truth be told, the home tab of the Commerce component was never meant to look the way it did for so long. In this release we've finally revamped it more in line with the original vision for it, giving you a great birds eye view of how your store is doing with some big numbers and a better sales chart.

Screenshot of the refreshed Commerce dashboard with big statistics at the top, a list of recent orders on the right side, and a revenue chart in the bottom.
Example of the new dashboard. Hopefully your revenue chart looks a lot more impressive than mine!

As you can see, we're also asking users to fill out a quick anonymous survey. The results of that will help us guide further development on the dashboard. Feedback is also welcome through our regular channels.

Manual transactions on orders

Previously, transactions could only be added by the customer from the checkout. Ahead of future features like built-in refunds and subscriptions, you can now add manual transactions to an order from the order view to make sure the order reflects things that may have happened outside of Commerce.

Validate UK VAT Registration Numbers

After the United Kingdom formally left the European Union, they were promptly shut out from the VIES service to validate VAT registration numbers across the EU. As of v1.2.0-rc3, Commerce is also integrated with the HMRC Developer Hub to validate those VAT Registration numbers (special shout out to Tony!).

Please find configuration instructions for the HMRC VAT validation in the documentation.

This release also comes with a few other Brexit-related changes, such as no longer considering the UK country code to be part of the European Union. This may affect your shipping method or tax configurations where you're using the "EU" short-hand.

Checkout & payments changes

From the users' point of view, the checkout and payment related changes in this release should not have much impact, however there may be an impact on customised/enhanced checkouts. These changes are a significant part of why we encourage you to test things on staging first. 

  • Checkout URLs are now "strict". A request to the checkout resource without a specified step will not immediately process and return the values from the last available step in the checkout, but it will redirect to the last available step. This was done to avoid some edge cases with completing orders.
    • To avoid an extra redirect when returning from a hosted payment gateway and ensuring the proper processing, return URLs in payment gateways have been adjusted to include the payment step in the URL.
    • If you use AJAX enhancements in the checkout, make sure you're sending requests to the checkout including the step parameter. Failing to do so (eg sending all AJAX requests to /checkout/) will cause each of your requests to receive the redirect. Hopefully your scripts know how to interpret these redirects (the sample code we've published on the forum and the Red starter pack do), otherwise your checkout may be broken with this release.
    • Regardless, for performance reasons, always make sure to send requests to the right URL.
  • Product prices will no longer be checked while a transaction is processing. This is to avoid the paid amount being different from the order amount after the payment completes, especially when using slow payment methods, such as bank transfers. 
  • Mollie will now receive customer information (name, email) and item summary in the metadata.
  • SagePay gateway has been updated - thanks David!
  • Stripe gateway has been updated to v7 of their client, which required some internal rewrites, and we've resolved a bunch of potential error and made sure the webhook actually, like, works..

Oh, and the cart/checkout is now much faster at handling large orders (> 10 different products). Smaller orders also benefit from these optimizations, but not as noticeably.

In closing

These are just the highlights - the full changelog can be found here with even more bug fixes and improvements. If you're using v1.1.4, see this forum post for a rundown of all the new features we released in 1.2.0-rc1 as well.