Install

Works with Drupal: ^10.3 || ^11

Using Composer to manage Drupal site dependencies

Alternative installation files

Download tar.gz 891.86 KB
MD5: 0d0979d2f5e1c37944a5eb40d498d0f0
SHA-1: d2d1a97e581e3a255c37e6b5b6c9f9eee3174d4c
SHA-256: 76e921916b46ec901608662b2a75f3e3ef488bd1c4d68a4c668a66fd65bbd35a
Download zip 1.73 MB
MD5: 31e0d55237b8f3a7a25869d2e915f727
SHA-1: 020b19a4f733f1ba4041ef5ca4b7c744288d1325
SHA-256: 8e35ccecd70f960102faa6b7564649d510f750d9573a7c13f8ffa0b1df1e7220

Release notes

A new "Order items" widget was introduced allowing merchants to quickly add products to orders from the edit page.

Contributors (73)

21182-jsacksick@users.noreply.drupalcode.org, Anybody, Grevil, Mohammad-Fayoumi, Niklan, Rob C, TomTech, aaronbauman, abhishek_gupta, abhishek_gupta1, ahlam aljawahreh, akalyptos, anas_maw, anpolimus, anybody, arunkumark, attisan, ben.hamelin, bojanz, bradhawkins, ctrladel, czigor, dbroll, deviantintegral, dr. gubó, dstorozhuk, elc, ericchew, fastangel, finex, grevil, imclean, introfini, ivnish, jeff veit, jonnyeom, jsacksick, lowfidelity, lubwn, majmunbog, markjsjordan, matthew10, matthiasm11, megachriz, mglaman, mindhunter75, miteshmap, mjpa, nicole.harnish, nikathone, niklan, nno, nojj, pfrenssen, pstewart, rhip, rinasek, rkoller, rszrama, scotthooker, socialnicheguru, steveoliver, sumanthkumarc, tBKoT, tbkot, tomtech, ts.ag, valic, vasike, vensires, wlofgren, z3cka, zaporylie

Changelog

Issues: 39 issues resolved.

Changes since 3.1.0 (compare):

Bug

  • #3167716: Unpublished variations are not properly checked for access
  • #3167716 followup: Use AccessResult::allowedIfHasPermission() instead of forbidden() to be nicer to other modules when a variation is unpublished.
  • #2881056 by grevil, jsacksick, attisan, pstewart, finex, megachriz, lowfidelity, fastangel, anybody, bojanz, matthiasm11, mindhunter75, lubwn: Can't distinguish two taxes of different percentages in the order summary
  • #3534426 by jsacksick, nojj: Warning: Undefined array key "admin_description"
  • #3118588 by ben.hamelin, jsacksick, arunkumark, z3cka: Unable to delete profile.tax_number & uninstall commerce_tax module
  • #3535025 by jsacksick, nicole.harnish: Dashboard - Custom canonical links get overwritten
  • #3535303 by aaronbauman: SplObjectStorage::contains(): Argument #1 ($object) must be of type object, null given
  • #3535282 by aaronbauman: SplObjectStorage::contains(): Argument #1 ($object) must be of type object, null given
  • #3535297 by jsacksick, aaronbauman: The update hook for migrating the variationType setting assumes the variationTypes are not set
  • #3535970 by matthew10, jsacksick: Ensure the offsite redirect form is submitted only once
  • #3537102 by jsacksick: Fix phpstan errors
  • [#3541094] fix: The CheckoutTest pane is confusing the tests
  • [#3539545] fix: Fix OrderVersionMismatchException When Canceling Payment – Stale Order Not Reloaded in cancelPage()
  • #3541742 by tomtech: Adjustment Table Field Formatter Table Display Oddity
  • #3541746 by tomtech, jsacksick: Profile Label Subscriber should not return NULL
  • #3536032 by jsacksick, akalyptos: Buy X Get Y promotion creates orphaned order items with NULL order_id when using Calculated Formatter
  • #3542545 by elc: Include Attribute deriver class parameter
  • #3481073 by pfrenssen, abhishek_gupta1, jsacksick: Warning: Undefined property: MultistepDefault::$order in order_information step as anonymous user
  • [#3544929] fix: ProductViewBuilder should accept ProductVariationFieldRendererInterface instead of specific implementation.
  • #3544492 by jsacksick, deviantintegral: Deleting a card in parallel to an existing checkout flow throws an exception.
  • [#3343375] feat: Payment cannot be created if order balance is NULL.
  • [#3011126] feat: Order item types need a custom access control handler

Feature

  • #2921000 by jsacksick, Rob C, mglaman, anpolimus, dstorozhuk, bojanz: Add a status field (enabled/disabled) to stores
  • #3011966 by tomtech, introfini, jsacksick, bojanz, jeff veit, czigor, steveoliver, mglaman, bradhawkins, markjsjordan: Define field formatters for adjustments
  • #3039854 by valic, jsacksick, zaporylie, bojanz, mglaman: Add a currency resolver API (with a CurrentCurrency object)
  • [#3540428] feat: Allow specifying an email to send the order receipt to
  • [#3540484] feat: Add a "details_open" wrapper element options to checkout panes
  • #3536839 by rinasek, rszrama: [#3536839] feat: Add default weights to elements in the payment information checkout pane to simplify altering.

Misc

  • Refactor the OrderRefresh for readability.
  • Use the nullsafe operator for trigger the order recalculation when adding or removing an adjustment.
  • Temporarily ignore the PHPSTAN error around the FormElementBase which is not internal.
  • Fixed checking whether condition is enabled on AJAX
  • Setup daily runs for Commerce.
  • Fix the buggy changes introduced to the ProfileLabelSubscriber.
  • Update PHPDoc type for ProductViewBuilder::$variationFieldRenderer property

Task

  • #2960899 by jsacksick, dr. gubó: Remove hardcoded parentheses from edit links in checkout review pane titles
  • #3535420 by jsacksick: Fix phpstan and stylelint issues
  • #3536290 by jsacksick, zaporylie: Make sure getters for timestamp fields return integers
  • #3536290 followup by jsacksick: Cast more timestamp fields and return NULL for some getters when the field value is empty.
  • #3540735 by majmunbog, rkoller, jsacksick: Adjust the color of the cart icon to the icons core uses in the add field dialog
  • #3540685 by jsacksick, rszrama: Expose the customer email in the order edit form by default
  • #3544388: Fix stylelint issues
  • #3544624 by tomtech: Add Adjustment Total Field Formatter
  • [#2790533] feat: Add the ability to set a default payment method
  • [#3403314] feat: Define a new widget to simplify adding products to orders from the edit page
  • [#3545964] feat: Update the VAT rates for Romania
Created by: jsacksick
Created on: 10 Sep 2025 at 15:30 UTC
Last updated: 25 Sep 2025 at 13:24 UTC
Bug fixes
New features
Unsupported

Other releases