We've packaged three releases of Commerce Core this year, from the 2.29 release in February to this month's 2.31 release. While DrupalCon, Kickstart development, and client launches have kept us busy, we wanted to take the opportunity to share the good news while we take a breather before DrupalCon Prague.
Each release includes general maintenance and modernization work, improving PHP 8.1 and Drupal 10 support while keeping up with tax rate changes around the world. They also include a variety of minor bug fixes and enhancements, like database indexes to improve performance or new permissions to support finer grained store management. Altogether, we've seen 87 issues resolved by dozens of contributors.
In this blog post, we'll review the more significant new features, including for BOGO promotions, product display pages, and order management.
"Buy One Get One" promotions
Commerce Core 2.x has always included BOGO promotion support, including the ability to adjust the quantities (which is why we call it "Buy X, Get Y" in the UI) and fine tune other rules around applicability. Thanks to a variety of merchants pushing the limits of what core can do, we found fixed a few bugs and found ways to improve the feature. In particular, we've ensured that:
- Free offer products are automatically added to carts when conditions are met
- Discounted amounts can be represented inclusive in order item prices
- Coupon pricing and promotion usage is determined correctly
Product display pages
Prior to Commerce 2.30, it wasn't possible for a single product display to include variations of different types. A merchant selling books online was previously not able to sell a digital book alongside its hardcopy in a single PDP, because file downloads require a different variation type configuration than shippable products.
This is now possible thanks to changes in the product type architecture advanced by work on Commerce Kickstart and funded by one of our enterprise customers. You can now reference variations of different types from a single product type, though at present this means foregoing the use of attribute based selection widgets on the Add to Cart form.
To use this feature, configure the product variation types first and then configure a product type to choose the different variation types that can be referenced:
Once a product references variations of a different type, the Add to Cart form will automatically use the product variation "title" widget for the customer to select the variation they want to buy:
The contributed module Commerce Variation Add to Cart lets you render separate Add to Cart forms instead if you desire. Our next step will be to support the use of attribute selection widgets for those variation types that share attributes.
Finally, we landed a nice new feature to update the URL of the current browser when a variation is selected, either through this title based widget or attribute selection. This enables merchants to link directly to a specific variation on a PDP and ensures customers who bookmark a PDP see the same selection when they next open it.
In every client engagement, we work to identify general platform improvements that should make their way into Commerce Core itself. In Commerce Core 2.29, this included letting store managers resend the order receipt email while viewing an order. Staff at one of our clients needed a simple way to communicate updates to orders they edited, and this was a no-brainer.
Recent releases also improved the administrative interface and functionality for managing payments on orders and added support for fieldgroup usage on order pages. Have any other ideas for improving the merchant experience? Let us know!