github craftcms/commerce 5.5.0

13 hours ago

Store Management

  • Added the ability to suppress order emails when marking an order as complete in the control panel. (#4144)
  • PDF download URLs are now generated with time-limited security tokens.
  • Anonymous users attempting to download a PDF with an expired or missing token are now shown an email verification form.
  • Added a new system message for customizing PDF download emails.
  • Added the ability to select multiple products in variant conditions. (#4166)
  • Added the ability to select multiple variants in pricing rules’ “Match Variant” conditions. (#4167)
  • Added the ability to select multiple users in pricing rules’ “Match Customer” conditions. (#4167)

Administration

  • Added billing and shipping address conditions to payment gateways. (#4100)
  • Added preview targets for products. (#4128)
  • Added slug translation options to product types. (#4088)
  • Gateway condition rules now allow multiple gateways to be selected. (#4112)
  • Product action menus now have a “Product type settings” action, for admin users on environments that allow admin changes. (#4157)
  • Added the “Link Duration” setting to PDF settings.

Development

  • Orders now have a dateFirstPaid property that records the date and time when the order was first paid in full.
  • Improved product and variant query performance.
  • Improved the performance of retrieving a line item’s catalog pricing rule ID.
  • Added the children, parent, ancestors and descendants fields to products’ GraphQL data. (#4122)
  • Added the productStatus variant query param. (#4158)
  • Added the productStatus GraphQL variant query argument. (#4158)
  • Added the --force option to the commerce/reset-data command. (#4115)

Extensibility

  • Added craft\commerce\controllers\BaseStoreManagementController::asStoreManagementCpScreen().
  • Added craft\commerce\controllers\DownloadsController::actionEmailChallenge().
  • Added craft\commerce\controllers\DownloadsController::actionPdfChallenge().
  • Added craft\commerce\controllers\DownloadsController::actionPdfSent().
  • Added craft\commerce\elements\Order::$dateFirstPaid.
  • Added craft\commerce\elements\Order::getMaskedEmail().
  • Added craft\commerce\elements\conditions\customers\CatalogPricingRuleCustomerConditionRule.
  • Added craft\commerce\elements\conditions\variants\CatalogPricingRuleVariantConditionRule.
  • Added craft\commerce\elements\conditions\variants\VariantConditionRule.
  • Added craft\commerce\elements\db\OrderQuery::$dateFirstPaid.
  • Added craft\commerce\elements\db\OrderQuery::dateFirstPaid().
  • Added craft\commerce\events\InventoryMovementEvent. (#4063)
  • Added craft\commerce\events\UpdateInventoryLevelEvent. (#4063)
  • Added craft\commerce\helpers\Cp::shippingCategoryFieldHtml().
  • Added craft\commerce\helpers\Cp::shippingMethodFieldHtml().
  • Added craft\commerce\helpers\Cp::shippingZoneFieldHtml().
  • Added craft\commerce\helpers\Cp::taxCategoryFieldHtml().
  • Added craft\commerce\helpers\Cp::taxZoneFieldHtml().
  • Added craft\commerce\helpers\Gql::getSchemaContainedProductTypes().
  • Added craft\commerce\helpers\ProductQuery.
  • Added craft\commerce\models\Email::$renderSiteId.
  • Added craft\commerce\models\Email::getRenderSite().
  • Added craft\commerce\models\Pdf::$linkExpiry.
  • Added craft\commerce\queue\jobs\ResaveProductVariants.
  • Added craft\commerce\records\Email::$renderSiteId.
  • Added craft\commerce\records\Order::$dateFirstPaid.
  • Added craft\commerce\services\CatalogPricingRules::hasCatalogPricingRules().
  • Added craft\commerce\services\Discounts::appendCouponCode(). (#4084)
  • Added craft\commerce\services\Inventory::EVENT_AFTER_EXECUTE_INVENTORY_MOVEMENT. (#3835)
  • Added craft\commerce\services\Inventory::EVENT_AFTER_EXECUTE_UPDATE_INVENTORY_LEVEL. (#3835)
  • Added craft\commerce\services\Pdfs::getPdfUrl() now generates secure tokenized URLs with expiry timestamps.

System

  • Fixed a bug where purchasables could have a shipping category that was no longer available to their product type. (#4018)
  • Fixed a bug where order emails weren’t always getting rendered for the correct site.
  • Fixed a bug where variant titles were being incorrectly generated for draft products. (#4173, #4126)
  • Fixed a PHP error that occurred when retrieving an order that referenced an archived payment gateway. (#4172)
  • Fixed a bug where variants with inactive products were being returned in GraphQL variant queries. (#4158)

Don't miss a new commerce release

NewReleases is sending notifications on new releases.