Install
Works with Drupal: ^10.3 || ^11Using Composer to manage Drupal site dependencies
Alternative installation files
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