Craft Commerce
Version 5.5.0.1
November 24, 2025
- Fixed an error that could occur when querying for products via GraphQL. (#4122)
Version 5.5.0
November 18, 2025
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
dateFirstPaidproperty 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,ancestorsanddescendantsfields to products’ GraphQL data. (#4122) - Added the
productStatusvariant query param. (#4158) - Added the
productStatusGraphQL variant query argument. (#4158) - Added the
--forceoption to thecommerce/reset-datacommand. (#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)
Version 5.4.10
November 12, 2025
- Fixed a bug where variants were not getting the default shipping category set when the currently set category was no longer available. (#4018)
- Fixed a SQL error that could occur when viewing unfulfilled orders on PostgreSQL. (#4171)
- Fixed a bug where duplicate pricing catalog jobs could be queued. (#4136)
- Fixed a bug where the
commerce_catalogpricingtable could be missing indexes. (#4160) - Deprecated
craft\commerce\services\CatalogPricing::afterSavePurchasableHandler().
Version 5.4.7.1
October 9, 2025
- Fixed a PHP error that could occur when querying variants. (#4129)
Version 5.4.6
September 4, 2025
- Fixed a bug where the
commerce/cart/update-cartaction could return unnecessary validation errors. (3873) - Added
craft\commerce\helpers\Order::normalizeLineItemPurchasableAvailability().
Version 5.4.5.1
August 20, 2025
- Fixed a PHP type error.
Version 5.4.5
August 20, 2025
- Fixed a bug where order indexes didn’t have customizable table columns when an order status’ source was selected.
- Fixed a bug where the current cart could be lost when registering a new user during checkout. (#4089)
- Fixed a bug where variant titles weren’t being generated for product types with a Variant Title Format that referenced the product when a product was saved. (#4090)
- Fixed a bug where empty variant collections could be incorrectly memoized when duplicating products. (#4075)
- Fixed a PHP error that could occur when saving an order from an
EVENT_ORDER_STATUS_CHANGEevent handler. (#4101)
Version 5.4.4
July 31, 2025
- Improved the performance of loading Edit Order pages. (#4056)
- Fixed a bug where cart errors weren’t being returned in
commerce/payments/payaction requests. (#4026) - Fixed a bug where the
EVENT_BEFORE_DEFINE_URLandEVENT_DEFINE_URLevents weren’t getting triggered for variants. - Fixed a PHP error that could occur when submitting a partial payment using the example templates. (#3989)
- Fixed a bug where shipping adjustments weren’t getting applied to carts that used a custom shipping method.
Version 5.4.3
July 23, 2025
- Fixed a PHP error that could occur when upgrading to Commerce 5. (#4077)
- Fixed a bug where shipping rules weren’t saving their customer conditions correctly. (#4079)
- Fixed a bug where outdated transaction data could be used when completing a payment. (craftcms/commerce-stripe#353)
Version 5.4.1.1
July 10, 2025
- Fixed a bug where the pricing catalog wasn’t getting updated when saving a product. (#4054)
- Fixed a bug where unavailable gateways were being automatically set on orders.
- Fixed a bug where product type configs were missing their structure properties after rebuilding the project config.
Version 5.4.1
July 9, 2025
- Improved the performance of loading carts via Ajax. (#4056)
- Improved the performance of saving variants. (#4064)
- Fixed a PHP error that could occur when viewing variant indexes on Craft CMS 5.6.17 or earlier. (#4060)
- Fixed a bug where currency-based order condition rules were incorrectly listed under “Fields” in the selection menu.
- Fixed a SQL error that could occur when restoring soft-deleted variants. (#4065)
- Fixed a bug where subscription and inventory transfer elements’ field layouts weren’t getting deleted on uninstall.
- Fixed a PHP error that could occur when editing discounts. (#4069)
Version 5.4.0
June 23, 2025
Store Management
- It’s now possible to set variants’ statuses from Edit Product screens. (#3953)
- Coupon validation errors now provide an explanation when invalid due to order, customer, or address conditions. (#3935)
- Catalog Pricing Rule screens now display custom metadata. (#3975)
- Product indexes now have a “Promotional Price” column.
Administration
- It’s now possible to set a variants’ default “Promotable”, “Track Inventory”, “Allow out of stock purchases”, and “Available for purchase” values when configuring variant field layouts. (#3571)
- Shipping methods and shipping rules now support flexible customer matching, based on a customer condition. (#3925)
- Gateways now have a “Match Order” condition that determines which orders the gateway should be available for. (#3913)
- All native order attributes are now available as card attributes. (#4019)
- Added the
resave/variantscommand.
Development
- Line item snapshots now contain a
catalogPricingRuleIdfield. (#3910) - Added the
localizedfield to products’ GraphQL data. (#3783)
Extensibility
- Added
craft\commerce\base\Gateway::getConfig(). - Added
craft\commerce\base\Gateway::getOrderCondition(). - Added
craft\commerce\base\Gateway::hasOrderCondition(). - Added
craft\commerce\base\Gateway::setOrderCondition(). - Added
craft\commerce\base\Purchasable::$catalogPricingRuleId. - Added
craft\commerce\base\Purchasable::getCatalogPricingRule(). - Added
craft\commerce\controllers\OrdersController::actionCopyAddressToUser(). - Added
craft\commerce\elements\Product::$defaultBasePromotionalPrice - Added
craft\commerce\elements\conditions\customers\ShippingMethodCustomerCondition. - Added
craft\commerce\elements\conditions\customers\ShippingRuleCustomerCondition. - Added
craft\commerce\models\ShippingMethod::getCustomerCondition(). - Added
craft\commerce\models\ShippingMethod::setCustomerCondition(). - Added
craft\commerce\models\ShippingRule::getCustomerCondition(). - Added
craft\commerce\models\ShippingRule::setCustomerCondition(). - Added
craft\commerce\taxidvalidators\EuVatIdValidator::API_URL.
System
- Improved store query performance. (#4029)
- Fixed a bug where the purchasable cache was not cleared when stock was updated.
- Fixed a PHP error that could occur when sending emails. (#4017)
- Fixed a bug where order emails weren’t always getting rendered for the correct site.
- Fixed a SQL error that could occur when upgrading to Commerce 5. (#4044)
- Fixed a bug where duplicate order references could be generated. (#4050)
- Fixed a bug where purchasables’
shippingCategoryIdandtaxCategoryIdproperties couldn’t be set viasetAttributes(). (#4046) - Fixed a bug where gateway settings weren’t storing project config values consistently. (#3941)
- Fixed a bug where new line items did not expose their submitted quantity to the
craft\commerce\services\LineItems::EVENT_POPULATE_LINE_ITEMevent. (#3883) - Fixed a PHP error that could occur when saving an order. (#3283)
Version 5.3.13
May 21, 2025
- Fixed a bug where the “Recipient”, “BCC’d Recipient”, and “CC’d Recipient” email settings weren’t working properly if set to environment variables. (#4004, #4002)
- Fixed a bug where discounts’ related entries weren’t being returned for non-primary sites. (#4010)
- Fixed a bug where Edit Order pages weren’t displaying the “Send Email” button.
Version 5.3.12
May 7, 2025
- Fixed a PHP error that could occur when calculating discount adjustments. (#3997)
- Fixed a PHP error that could occur on Edit Plan pages. (#3998)
- Fixed a PHP error that could occur when upgrading to Commerce 5. (#3933)
- Fixed a bug where some purchasables weren’t selectable when adding new line items on Edit Order pages. (#3986)
Version 5.3.10
April 24, 2025
- Fixed a PHP error that occurred when applying project config changes after deleting a store. (#3969)
- Fixed a SQL error that could occur when upgrading to Commerce 5. (#3741)
- Fixed a bug where it was possible to retrieve a credentialed user’s cart based on the cart cookie, even if the user was no longer signed in. (#3960)
- Fixed a bug where the Address field action’s UI displayed incorrectly on Edit Order pages.
Version 5.3.9
April 15, 2025
Version 5.3.8
April 2, 2025
- Fixed a bug where it wasn’t possible to override the PDF paper size via
craft\commerce\services\Pdf::EVENT_MODIFY_RENDER_OPTIONS. - Fixed a bug where SKUs with auto formats weren’t getting generated. (#3958)
Version 5.3.6
March 19, 2025
- Fixed a bug where SKUs were being generated for provisional drafts. (#3932)
- Fixed a PHP error that occurred if a Postal Code Formula condition rule had invalid Twig code. (#3943)
- Fixed a SQL error that could occur when there were structured product types. (#3944)
- Fixed a bug where catalog pricing rules’ purchasables could be returned incorrectly. (#3917)
- Fixed a PHP error that could occur when making payments on Edit Order pages. (#3919)
- Fixed a bug where custom field data could go missing when creating
VariantCollectioninstances. (#3931) - Fixed a PHP error that could occur when registering a custom shipping method.
Version 5.3.5
March 12, 2025
- Fixed a bug where line items’ sale prices could be calculated incorrectly. (#3928)
- Fixed a bug where catalog pricing rules’ element selector modals didn’t have site selection menus. (#3917)
- Fixed a bug where payment modals on Edit Order pages were showing incorrect payment currencies. (#3919)
- Fixed a SQL error that could occur when querying inventory transfers.
Version 5.3.4
February 26, 2025
- Fixed a bug where discounts weren’t applying if an order was recalculated more than once in the same request. (#3896)
- Fixed a bug where shipping rules weren’t saving their shipping category conditions in non-primary stores. (#3851)
- Fixed a PHP error that could occur on order completion, for orders with disabled variants in the non-primary store.
- Fixed a bug where Edit Gateway pages were showing duplicate settings.
Version 5.3.3
February 19, 2025
- Fixed a bug where line item totals could be formatted in the wrong currency on Edit Order pages. (#3891)
- Fixed a bug where email and order status change events weren’t getting triggered in non-primary stores.
Version 5.3.2.1
February 7, 2025
- Fixed a bug where tax and shipping totals weren’t being recalculated in
commerce/cart/*action requests. (#3888)
Version 5.3.2
February 6, 2025
- Added
craft\commerce\collections\InventoryMovementCollection::getPurchasables(). - Added
craft\commerce\base\Gateway::transactionSupportsRefund(). - Fixed a bug where product variants weren’t getting restored when soft-deleted products were restored. (#3815)
- Fixed a bug where purchasables’ cached per-store stock totals weren’t getting updated when inventory was moved.
- Fixed a bug where it wasn’t possible to update inventory transfers that contained deleted inventory items.
- Fixed a bug where the
commerce/cart/update-cartaction could return unnecessary validation errors. (3873)
Version 5.3.1
February 3, 2025
- Improved logging when a user deletion is prevented due to the user having Commerce orders. (#3686)
- Fixed a PHP error that could occur when calculating tax adjustments. (#3822)
- Fixed a PHP error that could occur when updating an order’s status from the CLI. (#3858)
- Fixed a bug where additional tax ID validators where not being checked when a store’s “Validate Business Tax ID as Vat ID” setting was enabled.
- Fixed a bug where the deprecated
craft\commerce\models\TaxRate::$isVatproperty was still being set. (#3874) - Fixed a bug where emails could be rendered in the wrong language when sent manually from the control panel. (#3852)
- Fixed an error that occurred when rendering a Link field with a product selected on the front end. (#3833)
Version 5.3.0.2
January 31, 2025
- Fixed a bug where gateways weren’t ensuring handle uniqueness. (#3839)
Version 5.3.0
January 30, 2025
Store Management
- Archived gateways are now listed on the Gateways index page. (#3839)
- Added card view designers for products and variants. (#3809)
- Order conditions can now have “Coupon Code” and “Payment Gateway” rules. (#3776, #3722)
- Product variant conditions can now have a “Product” rule.
- Tax rates now have statuses. (#3790)
- It’s now possible to restore soft-deleted product variants.
- Improved Craft Commerce navigation and breadcrumb labels.
- Added an “Allow out of stock purchases” option to purchasables. (#3649)
Administration
- The “Recipient”, “BCC’d Recipient”, and “CC’d Recipient” email settings now support being set to environment variables. (#3738)
- It’s now possible to view (but not edit) system and plugin settings on environments where
allowAdminChangesis disabled.
Development
- Added the
couponCodeorder query param. - Orders’
makePrimaryShippingAddressandmakePrimaryBillingAddressproperty values now persist during checkout. - The
commerce/update-cartaction now includes anoriginalCartkey in JSON responses. (#430)
Extensibility
- Added support for registering custom tax ID validators.
- Added
craft\commerce\base\InventoryItemTrait. - Added
craft\commerce\base\InventoryItemTrait. - Added
craft\commerce\base\InventoryLocationTrait. - Added
craft\commerce\base\InventoryLocationTrait. - Added
craft\commerce\base\Purchasable::hasInventory(). - Added
craft\commerce\base\Purchasable::loadSales(). - Added
craft\commerce\base\TaxIdValidatorInterface. - Added
craft\commerce\controllers\BaseStoreManagementController::getStoreSwitch(). - Added
craft\commerce\elements\Purchasable::$allowOutOfStockPurchases. - Added
craft\commerce\elements\Purchasable::getIsOutOfStockPurchasingAllowed(). - Added
craft\commerce\elements\conditions\orders\CouponCodeConditionRule. - Added
craft\commerce\elements\conditions\variants\ProductConditionRule. - Added
craft\commerce\elements\db\OrderQuery::$couponCode. - Added
craft\commerce\elements\db\OrderQuery::couponCode(). - Added
craft\commerce\events\CartPurgeEvent. - Added
craft\commerce\events\PurchasableOutOfStockPurchasesAllowedEvent. - Added
craft\commerce\services\Gateways\getAllArchivedGateways(). - Added
craft\commerce\services\Inventory::updateInventoryLevel(). - Added
craft\commerce\services\Inventory::updatePurchasableInventoryLevel(). - Added
craft\commerce\services\Purchasables::EVENT_PURCHASABLE_OUT_OF_STOCK_PURCHASES_ALLOWED. - Added
craft\commerce\services\Purchasables::isPurchasableOutOfStockPurchasingAllowed(). - Added
craft\commerce\services\Taxes::EVENT_REGISTER_TAX_ID_VALIDATORS. - Added
craft\commerce\services\Taxes::getEnabledTaxIdValidators(). - Added
craft\commerce\services\Taxes::getTaxIdValidators(). - Added
craft\commerce\taxidvalidators\EuVatIdValidator.
System
- Craft Commerce now requires Craft CMS 5.6.0 or later.
- Fixed a bug where orders’ promotional prices could be calculated incorrectly when using sales.
- Fixed a bug where the
commerce/cart/update-cartaction wasn’t respectingmakePrimaryShippingAddressandmakePrimaryBillingAddressparams for newly-created addresses. (#3864) - Fixed a PHP error that could occur when viewing discounts. (#3844)
Version 5.2.12.1
January 23, 2025
- Fixed a JavaScript error that occurred when updating an order’s status for a non-primary store on order indexes.
Version 5.2.12
January 22, 2025
- Fixed a bug where product types’ “Max Variants” settings weren’t being respected. (#3845)
- Fixed a bug where products could be duplicated by users without the “Create products” permission for the product type. (#3838)
- Fixed a PHP error that could occur when updating a cart. (#3842)
- Fixed a PHP error that could occur when adding an invalid address to a cart. (#3848)
Version 5.2.11
January 2, 2025
- Fixed an error that occurred when rendering a Link field with a product selected on the front end. (#3833)
Version 5.2.9.1
December 13, 2024
- Fixed a bug where line item promotional prices weren’t updated when upgrading to Commerce 5.
Version 5.2.9
December 11, 2024
- Fixed a PHP error that could occur when updating the inventory of a purchasable for a non-primary site. (#3788)
- Fixed a PHP error that occurred when making a partial payment on an order from the control panel. (#3804)
- Fixed a PHP error that could occur when calculating order totals. (#3802)
- Fixed a bug where product indexes weren’t always showing the correct price. (#3807)
- Fixed a bug where changes to inline-editable Matrix fields weren’t getting saved for product variants. (#3805)
- Fixed a bug where the Edit Order page wasn’t showing order errors.
Version 5.2.8
December 4, 2024
- Fixed a bug where line items weren’t getting hyperlinked within Edit Order pages. (#3792)
- Fixed a bug where Inventory pages were showing draft purchasables.
- Fixed a PHP error that could occur when creating inventory transfers. (#3696)
- Fixed a bug where prices weren’t getting formatted per the user’s formatting locale, in payment models on Edit Order pages. (#3789)
- Fixed a bug where store settings weren’t respecting environment variables. (#3786)
Version 5.2.5
November 20, 2024
- The
resave/products,resave/orders, andresave/cartscommands now support the--with-fieldsoption. - Fixed a SQL error that could occur when updating. (#3778)
Version 5.2.2.1
November 8, 2024
- Fixed a PHP error that could occur when retrieving a variant. (#3754)
Version 5.2.0
October 16, 2024
Store Management
- Products can now be structured, per product type.
- It’s now possible for discounts to explicitly require a coupon code. (#3132)
- New order addresses now default to the store’s country on Order Edit screens. (#3306)
- Product conditions can now have a “Variant Search” rule. (#3689)
Development
- Added the
onPromotionpurchasable query param. - Added the
onPromotionGraphQL variant query argument.
Extensibility
- Added
craft\commerce\console\controllers\UpgradeController::$v3droppableColumns - Added
craft\commerce\console\controllers\UpgradeController::EVENT_BEFORE_DROP_V3_DATABASE_ENTITIES. - Added
craft\commerce\elements\Product::EVENT_DEFINE_PARENT_SELECTION_CRITERIA. - Added
craft\commerce\elements\conditions\products\ProductVariantSearchConditionRule. - Added
craft\commerce\elements\db\Purchasable::$onPromotion. - Added
craft\commerce\elements\db\Purchasable::onPromotion(). - Added
craft\commerce\events\UpgradeEvent. - Added
craft\commerce\models\Discount::$requireCouponCode. - Added
craft\commerce\models\ProductType::$isStructure. - Added
craft\commerce\models\ProductType::$maxLevels. - Added
craft\commerce\models\ProductType::$structureId. - Added
craft\commerce\models\ProductType::DEFAULT_PLACEMENT_BEGINNING. - Added
craft\commerce\models\ProductType::DEFAULT_PLACEMENT_END. - Added
craft\commerce\models\ProductType::getConfig().
System
Version 5.1.4
October 16, 2024
- Fixed a PHP error that could occur when creating a subscription. (#3710)
- Fixed a bug where inventory items could appear with blank descriptions on the Inventory management screen. (#3706)
- Fixed a bug where additional buttons defined with
craft\commerce\elements\Order::EVENT_DEFINE_ADDITIONAL_BUTTONSweren’t displayed on Edit Order screens. (#3692) - Fixed a bug where email errors weren’t displayed on Edit Order screens. (#3693)
- Fixed a bug where
craft\commerce\helpers\Currency::formatAsCurrency()wasn’t stripping zeros. (#3716)
Version 5.1.3
October 2, 2024
- Fixed a bug where variants weren’t respecting their product’s propagation method.
- Fixed a PHP error that could occur when creating a new product.
- Fixed a bug where Edit Product screens were showing shipping categories that weren’t available to the current store. (#3690)
- Fixed a bug where Edit Product screens were showing tax categories that weren’t available to the product type. (#3690)
- Fixed a bug where Edit Order screens were displaying the store name twice.
- Fixed a bug where
craft\commerce\models\CatalogPricingRule::$descriptionwas not being populated. (#3699) - Fixed a bug where catalog pricing rules were generating prices incorrectly. (#3700)
- Fixed a PHP error that could occur when deleting a user with orders. (#3686)
Version 5.1.2
September 19, 2024
- Fixed a bug where shipping methods weren’t validating if a shipping method in a different store had the same name. (#3676)
- Fixed a bug where any modifications to
craft\commerce\events\CreateSubscriptionEvent::$parametersweren’t being passed to the gateway’ssubscribe()method. - Fixed a bug where stores’ aggregate stock levels weren’t getting updated when inventory changed. (#3668)
- Fixed a bug where addresses weren’t being automatically added on Edit Order screens. (#3673)
- Fixed a PHP error that could occur when viewing an Edit Order screen after deleting a purchasable. (#3677)
- Fixed a bug where some strings weren’t getting translated on Edit Order screens.
- Fixed a JavaScript error that could occur when editing an order.
Version 5.1.1
September 10, 2024
- Fixed XSS vulnerabilities.
Version 5.1.0.1
September 5, 2024
- Fixed a bug where catalog pricing rules weren’t respecting product conditions. (#3544)
Version 5.1.0
September 4, 2024
Store Management
- It’s now possible to manage transfers between inventory locations.
- Catalog pricing rules now support flexible matching based on product and variant conditions. (#3544)
- Variant conditions can now have an “SKU” rule.
Administration
- It’s now possible to create custom line items. (#2301, #2233, #2345)
- Added the “Propagation Method” setting to product types. (#3537, #3296, #3372, #2375)
- Added “Title Translation Method” settings to product types, for products and variants. (#3462, #2466)
- Added support for selecting products in Link fields.
- Added the “Manage donation settings” permission.
- Added the “Manage inventory transfers” permission.
- Added the “Manage payment currencies” permission.
- Added the “Manage store general setting” permission.
- Added the “Manage subscription plans” permission.
Extensibility
- Added
craft\commerce\controllers\TransfersController. - Added
craft\commerce\elements\Order::EVENT_AFTER_LINE_ITEMS_REFRESHED. - Added
craft\commerce\elements\Order::EVENT_BEFORE_LINE_ITEMS_REFRESHED. - Added
craft\commerce\elements\Product::$defaultBasePrice. - Added
craft\commerce\elements\Product::$storeId. - Added
craft\commerce\elements\Product::getCurrencyAttributes(). - Added
craft\commerce\elements\Product::getStore(). - Added
craft\commerce\elements\Transfer. - Added
craft\commerce\elements\conditions\products\CatalogPricingRuleProductCondition. - Added
craft\commerce\elements\conditions\transfers\TransferCondition. - Added
craft\commerce\elements\conditions\variants\CatalogPricingRuleVariantCondition. - Added
craft\commerce\elements\db\TransferQuery. - Added
craft\commerce\enums\LineItemType. - Added
craft\commerce\enums\TransferStatusType. - Added
craft\commerce\fieldlayoutelements\TransferManagementField. - Added
craft\commerce\models\CatalogPricingRule::getProductCondition(). - Added
craft\commerce\models\CatalogPricingRule::getVariantCondition(). - Added
craft\commerce\models\CatalogPricingRule::setProductCondition(). - Added
craft\commerce\models\CatalogPricingRule::setVariantCondition(). - Added
craft\commerce\models\LineItem::$type. - Added
craft\commerce\models\LineItem::getHasFreeShipping(). - Added
craft\commerce\models\LineItem::getIsPromotable(). - Added
craft\commerce\models\LineItem::getIsShippable(). - Added
craft\commerce\models\LineItem::getIsTaxable(). - Added
craft\commerce\models\LineItem::populate(). - Added
craft\commerce\models\LineItem::refresh(). - Added
craft\commerce\models\LineItem::setHasFreeShipping(). - Added
craft\commerce\models\LineItem::setIsPromotable(). - Added
craft\commerce\models\LineItem::setIsShippable(). - Added
craft\commerce\models\LineItem::setIsTaxable(). - Added
craft\commerce\models\ProductType::$productTitleTranslationKeyFormat. - Added
craft\commerce\models\ProductType::$productTitleTranslationMethod. - Added
craft\commerce\models\ProductType::$propagationMethod. - Added
craft\commerce\models\ProductType::$variantTitleTranslationKeyFormat. - Added
craft\commerce\models\ProductType::$variantTitleTranslationMethod. - Added
craft\commerce\models\ProductType::getSiteIds(). - Added
craft\commerce\models\TransferDetail. - Added
craft\commerce\record\TransferDetail. - Added
craft\commerce\records\ProductType::$productTitleTranslationKeyFormat. - Added
craft\commerce\records\ProductType::$productTitleTranslationMethod. - Added
craft\commerce\records\ProductType::$propagationMethod. - Added
craft\commerce\records\ProductType::$variantTitleTranslationKeyFormat. - Added
craft\commerce\records\ProductType::$variantTitleTranslationMethod. - Added
craft\commerce\services\CatalogPricing::createCatalogPricesQuery() - Added
craft\commerce\services\InventoryLocations::getAllInventoryLocationsAsList - Added
craft\commerce\services\LineItems::create(). - Added
craft\commerce\services\LineItems::resolveCustomLineItem(). - Added
craft\commerce\services\Transfers. - Deprecated
craft\commerce\models\LineItem::populateFromPurchasable().populate()should be used instead. - Deprecated
craft\commerce\models\LineItem::refreshFromPurchasable().refresh()should be used instead. - Deprecated
craft\commerce\services\CatalogPricing::createCatalogPricingQuery().createCatalogPricesQuery()should be used instead. - Deprecated
craft\commerce\services\LineItems::createLineItem().create()should be used instead. - Removed
craft\commerce\fieldlayoutelements\UserCommerceField.
System
- Craft Commerce now requires Craft CMS 5.2 or later.
Version 5.0.19
September 4, 2024
- Fixed a bug where calculated catalog prices weren’t getting rounded to the decimal precision of the store’s currency.
- Fixed a PHP error that occurred when calling
craft\commerce\elements\Variant::getSales(). - Fixed a SQL error that could occur when upgrading to Commerce 5.
Version 5.0.18
August 28, 2024
- Fixed a PHP error that could occur when default addresses were set on a cart. (#3641)
- Fixed a bug were the “Auto Set New Cart Addresses” store setting was not persisting when saved.
Version 5.0.17
August 21, 2024
- Fixed a bug where variant indexes weren’t displaying promotion prices as currency values.
- Fixed a PHP error that could occur when sending an order email. (#3596)
- Fixed a bug where dimension fields were not displaying values in the correct formatting locale. (#3636)
- Fixed a bug where users couldn’t access catalog pricing rules when the current user had permission. (#3639)
- Fixed a bug where available shipping methods were not returned in order of price. (#3631)
Version 5.0.16.2
August 16, 2024
- Fixed a bug where variants’
skuvalues could be cleared out when saving a product revision.
Version 5.0.16.1
August 16, 2024
- Fixed a bug where variants’
skuvalues could be cleared out when saving a product. - Fixed a bug where
craft\commerce\elements\Product::getVariants()wasn’t respecting variants’ site statuses.
Version 5.0.16
August 14, 2024
- It’s now possible to duplicate variants.
- It’s now possible to search for orders by shipping and billing address. (#3603)
- Fixed a bug where it wasn’t possible to remove the last email from an order status configuration. (#3621)
- Fixed a bug where the “Create Sale” and “Create Discount” product index actions weren’t working. (#3611)
- Fixed a bug where
craft\commerce\elements\Order::getOrderStatus()could incorrectly returnnull. (#3615) - Fixed a bug where draft variants became orphaned when products were deleted.
- Fixed a PHP error that occurred when using a custom queue driver. (#3619)
- Fixed a bug where stat widgets weren’t respecting the user’s preferred week start day. (#3620)
- Fixed a bug where variants weren’t getting duplicated when duplicating a product. (#924)
Version 5.0.15
July 31, 2024
- Fixed a SQL error that could occur when upgrading to Commerce 5 on PostgreSQL. (#3600, #3601)
- Fixed a bug where payment modals weren’t calculating additional payment currencies on Edit Order pages.
- Fixed a PHP error that occurred when retrieving an order that referenced a deleted payment currency.
- Fixed a bug where Edit Variant screens were showing shipping categories that were unrelated to the current store. (#3608)
Version 5.0.14
July 24, 2024
- Fixed a bug where account activation emails weren’t being sent on order completion. (#3226)
- Fixed a bug where email previewing wasn’t working on installs with multiple stores. (#3595)
- Fixed a bug where emails sent via the control panel could be rendered with the wrong language.
- Fixed a SQL error that occurred when exporting order line items. (#3592)
- Fixed a PHP error that could occur when generating catalog prices. (#3591)
Version 5.0.13
July 18, 2024
- Fixed a SQL error that could occur when updating Commerce on PostgreSQL. (#3588)
- Fixed a SQL error that could occur when saving a payment currency. (#3563)
- Fixed a bug where SCA payment sources prevented subscriptions from starting. (#3590)
- Fixed PHP error that occurred when saving an estimated billing address. (#3549)
- Fixed a bug where variant indexes were including table columns for all custom fields added to variant field layouts, across all product types. (#15373)
- Fixed a bug where the “Ignore promotional prices” discount setting wasn’t getting saved correctly. (#3573)
- Fixed a bug where setting a new default variant wouldn’t persist. (#3565, #3564, #3589)
Version 5.0.12.1
July 12, 2024
- Fixed a SQL error that occurred when updating.
Version 5.0.12
July 11, 2024
- Variant index tables can now have a “Promotable” column. (#3571)
- Added
craft\commerce\base\Purchasable::availableShippingCategories(). - Added
craft\commerce\base\Purchasable::availableTaxCategories(). - Added
craft\commerce\base\Purchasable::shippingCategoryFieldHtml(). - Added
craft\commerce\base\Purchasable::taxCategoryFieldHtml(). - Added
craft\commerce\elements\Variant::availableShippingCategories(). - Added
craft\commerce\elements\Variant::availableTaxCategories(). - Added
craft\commerce\events\PdfRenderEvent::$sourcePdf. (#3543) - Fixed a SQL error that occurred when reordering order statuses on PostgreSQL. (#3554)
- Fixed a SQL error that could occur when saving a payment currency. (#3563)
- Fixed a bug where it was possible to select shipping and tax categories that weren’t allowed for the product type. (#3557)
- Fixed a bug where payment currencies, shipping categories, and tax categories weren’t deletable. (#3548)
- Fixed a bug where variant field layouts could render incorrectly. (#3570)
- Fixed a bug where address custom fields weren’t visible on Edit Inventory Location pages. (#3569)
- Fixed a SQL error that could occur when fixing foreign keys.
Version 5.0.11.1
June 20, 2024
- Fixed a PHP error that could occur on app initialization.
Version 5.0.11
June 18, 2024
- Added
craft\commerce\elements\Product::getDefaultPrice(). - Added
craft\commerce\elements\Product::setDefaultPrice(). - Fixed a bug where
craft\commerce\elements\Product::$defaultPricecould return an incorrect value. - Fixed a bug where default variant attributes weren’t being saved on products.
- Fixed a bug where search wasn’t working on user indexes.
Version 5.0.10.1
June 14, 2024
- Fixed a bug where duplicate Store location addresses were being created.
- Fixed a bug where a customers’ primary address selections weren’t being saved.
Version 5.0.10
June 13, 2024
craft\elements\User::toArray()now includesprimaryBillingAddressIdandprimaryShippingAddressIdvalues in response arrays.craft\elements\Address::toArray()now includesisPrimaryBillingandisPrimaryShippingvalues in response arrays for user addresses.- Fixed a PHP error that could occur when saving a discount. (#3538)
- Fixed a bug where the “Edit” action could be incorrectly shown when managing inventory locations.
Version 5.0.9
June 5, 2024
- Product Title fields are no longer shown when “Show the Title field” is disabled and there’s a validation error on the
titleattribute. (craftcms/cms#13876) - Fixed a PHP error that occurred when saving donation settings on multi-store installs. (#3521)
Version 5.0.8
May 29, 2024
- Fixed a bug where orders’
shippingMethodNamevalues could be cleared out when saving a completed order with a plugin-provided shipping method. (#3519) - Fixed a PHP error that could occur on app initialization.
- Fixed missing validation for Inventory Location handles. (#3511)
- Fixed a SQL error that could occur when switching sites with a cart cookie set. (#3522)
- Fixed an error that could occur when attempting to save a variant with special characters. (#3516)
Version 5.0.7
May 22, 2024
- Improved store query performance. (#3481)
- Added
craft\commerce\gql\types\input\IntFalse. - Fixed a bug where disclosure menus on the Stores index page weren’t listing all their items.
- Fixed an SQL error that occurred when querying for purchasables with the
hasStockparam. (#3505) - Fixed an error that could occur when querying for products or variants via GraphQL.
- Fixed a SQL error that could occur when generating the pricing catalog. (#3513)
- Fixed a bug where untracked stock items weren’t displaying correctly in the example templates. (#3510)
- Fixed a bug where the pricing catalog wasn’t getting updated after a pricing rule was disabled. (#3515)
- Fixed an SQL error that could occur when switching stores. (#3501)
Version 5.0.6
May 15, 2024
Version 5.0.3
May 2, 2024
- Added
craft\commerce\helpers\ProjectConfigData::ensureAllStoresProcessed(). - Added
craft\commerce\models\OrderStatus::getConfig(). - Fixed a bug where it wasn’t possible to download PDFs from the Orders index page. (#3477)
- Fixed an error that could occur when installing Craft CMS + Craft Commerce with an existing project config. (#3472)
- Fixed a bug where order status configs were missing their store assignments after rebuilding the project config.
Version 5.0.2
May 1, 2024
Version 5.0.1
May 1, 2024
- Fixed a bug where the “Commerce” Edit User screen wasn’t showing.
- Added
craft\commerce\controllers\UsersController. - Deprecated
craft\commerce\fields\UserCommerceField.
Version 5.0.0
April 30, 2024
Store Management
- It’s now possible to manage multiple stores (up to five). (#2283)
- It’s now possible to manage multiple inventory locations (up to five). (#2286, #2669)
- Added support for catalog pricing of purchasables, improving scalability and pricing flexibility for high-volume stores.
- Products now support drafts, autosaving, and versioning. (#2358)
- Product variants are now managed via nested element indexes rather than inline-editable blocks.
- Product variants’ field layouts now support multiple tabs.
- Product pages’ breadcrumbs now include a menu that links to each editable product type.
- It’s now possible to create new products from product select modals when a custom source is selected, if the source is configured to only show products of one type.
- The Products index page now shows a primary “New product” button when a custom source is selected, if the source is configured to only show products of one type.
- Order conditions can now have a “Total Weight” rule.
- Shipping methods and shipping rules now support flexible order matching, based on an order condition.
- Users’ orders, carts, and subscriptions are now managed on a dedicated “Commerce” screen within Edit User sections.
Administration
- Added a new “Manage inventory stock levels” permission.
- Added a new “Manage inventory locations” permission.
Development
- Added the
currentStoreTwig variable. - Added
commerce/pricing-catalog/generatecommand. - Deprecated the
hasUnlimitedStockvariant query param.inventoryTrackedshould be used instead. - Removed the
shippingCategory,shippingCategoryId,taxCategory, andtaxCategoryIdproduct query params. The corresponding variant query params can be used instead. - Removed the
showEditUserCommerceTabconfig setting.
Extensibility
- Added
craft\commerce\base\CatalogPricingConditionRuleInterface. - Added
craft\commerce\base\EnumHelpersTrait - Added
craft\commerce\base\HasStoreInterface. - Added
craft\commerce\base\InventoryMovementInterface. - Added
craft\commerce\base\InventoryMovement. - Added
craft\commerce\base\Purchasable::$availableForPurchase. - Added
craft\commerce\base\Purchasable::$freeShipping. - Added
craft\commerce\base\Purchasable::$height. - Added
craft\commerce\base\Purchasable::$inventoryTracked - Added
craft\commerce\base\Purchasable::$length. - Added
craft\commerce\base\Purchasable::$maxQty. - Added
craft\commerce\base\Purchasable::$minQty. - Added
craft\commerce\base\Purchasable::$promotable. - Added
craft\commerce\base\Purchasable::$shippingCategoryId. - Added
craft\commerce\base\Purchasable::$stock - Added
craft\commerce\base\Purchasable::$taxCategoryId. - Added
craft\commerce\base\Purchasable::$weight. - Added
craft\commerce\base\Purchasable::$width. - Added
craft\commerce\base\Purchasable::getInventoryItem(). - Added
craft\commerce\base\Purchasable::getInventoryLevels(). - Added
craft\commerce\base\Purchasable::getOnPromotion(). - Added
craft\commerce\base\Purchasable::getPrice(). - Added
craft\commerce\base\Purchasable::getPromotionalPrice(). - Added
craft\commerce\base\Purchasable::getStock() - Added
craft\commerce\base\Purchasable::getStore() - Added
craft\commerce\base\Purchasable::setPrice(). - Added
craft\commerce\base\Purchasable::setPromotionalPrice(). - Added
craft\commerce\base\StoreRecordTrait. - Added
craft\commerce\base\StoreTrait. - Added
craft\commerce\behaviors\StoreBehavior. - Added
craft\commerce\collections\InventoryMovementCollection - Added
craft\commerce\collections\UpdateInventoryLevelCollection - Added
craft\commerce\console\controllers\CatalogPricingController. - Added
craft\commerce\controllers\CatalogPricingController. - Added
craft\commerce\controllers\CatalogPricingRulesController. - Added
craft\commerce\controllers\InventoryLocationsController - Added
craft\commerce\controllers\InventoryLocationsStoresController - Added
craft\commerce\controllers\VariantsController. - Added
craft\commerce\db\Table::CATALOG_PRICING_RULES_USERS. - Added
craft\commerce\db\Table::CATALOG_PRICING_RULES. - Added
craft\commerce\db\Table::CATALOG_PRICING. - Added
craft\commerce\db\Table::INVENTORYITEMS. - Added
craft\commerce\db\Table::INVENTORYLOCATIONS_STORES. - Added
craft\commerce\db\Table::INVENTORYLOCATIONS. - Added
craft\commerce\db\Table::INVENTORYMOVEMENTS. - Added
craft\commerce\db\Table::PURCHASABLES_STORES. - Added
craft\commerce\db\Table::STORESETTINGS. - Added
craft\commerce\db\Table::STORES. - Added
craft\commerce\db\Table::TRANSFERS_INVENTORYITEMS. - Added
craft\commerce\db\Table::TRANSFERS. - Added
craft\commerce\elements\Product::getVariantManager(). - Added
craft\commerce\elements\Variant::getProductSlug(). - Added
craft\commerce\elements\Variant::getProductTypeHandle(). - Added
craft\commerce\elements\Variant::setProductSlug(). - Added
craft\commerce\elements\Variant::setProductTypeHandle(). - Added
craft\commerce\elements\VariantCollection. - Added
craft\commerce\elements\actions\SetDefaultVariant. - Added
craft\commerce\elements\conditions\customer\CatalogPricingCustomerCondition. - Added
craft\commerce\elements\conditions\orders\DiscountedItemSubtotalConditionRule. - Added
craft\commerce\elements\conditions\orders\ShippingAddressZoneConditionRule. - Added
craft\commerce\elements\conditions\orders\ShippingMethodOrderCondition. - Added
craft\commerce\elements\conditions\orders\ShippingRuleOrderCondition. - Added
craft\commerce\elements\conditions\orders\TotalWeightConditionRule. - Added
craft\commerce\elements\conditions\products\ProductVariantInventoryTrackedConditionRule. - Added
craft\commerce\elements\conditions\purchasables\CatalogPricingCondition. - Added
craft\commerce\elements\conditions\purchasables\CatalogPricingCustomerConditionRule. - Added
craft\commerce\elements\conditions\purchasables\CatalogPricingPurchasableConditionRule. - Added
craft\commerce\elements\conditions\purchasables\PurchasableConditionRule. - Added
craft\commerce\elements\db\OrderQuery::$totalWeight. - Added
craft\commerce\elements\db\OrderQuery::totalWeight(). - Added
craft\commerce\elements\traits\OrderValidatorsTrait::validateOrganizationTaxIdAsVatId(). - Added
craft\commerce\enums\InventoryTransactionType. - Added
craft\commerce\enums\InventoryUpdateQuantityType. - Added
craft\commerce\events\RegisterAvailableShippingMethodsEvent::getShippingMethods(). - Added
craft\commerce\events\RegisterAvailableShippingMethodsEvent::setShippingMethods(). - Added
craft\commerce\fieldlayoutelements\PurchasabaleAllowedQtyField. - Added
craft\commerce\fieldlayoutelements\PurchasabaleAvailableForPurchaseField. - Added
craft\commerce\fieldlayoutelements\PurchasabaleDimensionsField. - Added
craft\commerce\fieldlayoutelements\PurchasabaleFreeShippingField. - Added
craft\commerce\fieldlayoutelements\PurchasabalePriceField. - Added
craft\commerce\fieldlayoutelements\PurchasabalePromotableField. - Added
craft\commerce\fieldlayoutelements\PurchasabaleSkuField. - Added
craft\commerce\fieldlayoutelements\PurchasabaleStockField. - Added
craft\commerce\fieldlayoutelements\PurchasabaleWeightField. - Added
craft\commerce\helpers\Cp. - Added
craft\commerce\helpers\Currency::moneyInputHtml(). - Added
craft\commerce\helpers\Purchasable::catalogPricingRulesTableByPurchasableId(). - Added
craft\commerce\models\CatalogPricingRule. - Added
craft\commerce\models\Discount::$storeId. - Added
craft\commerce\models\InventoryItem. - Added
craft\commerce\models\InventoryLocation. - Added
craft\commerce\models\InventoryTransaction. - Added
craft\commerce\models\Level. - Added
craft\commerce\models\LineItem::getSnapshot(). - Added
craft\commerce\models\LineItem::setSnapshot(). - Added
craft\commerce\models\LineItems::getFulfilledTotalQuantity(). - Added
craft\commerce\models\PaymentSources::getStore(). - Added
craft\commerce\models\ProductType::$maxVariants. - Added
craft\commerce\models\PurchasableStore. - Added
craft\commerce\models\Store::getInventoryLocations(). - Added
craft\commerce\models\Store::getInventoryLocationsOptions(). - Added
craft\commerce\models\inventory\InventoryCommittedMovement - Added
craft\commerce\models\inventory\InventoryLocationDeactivatedMovement. - Added
craft\commerce\models\inventory\InventoryManualMovement. - Added
craft\commerce\models\inventory\UpdateInventoryLevel. - Added
craft\commerce\plugin\Services::getVat(). - Added
craft\commerce\records\CatalogPricingRulePurchasable. - Added
craft\commerce\records\CatalogPricingRuleUser. - Added
craft\commerce\records\CatalogPricingRule. - Added
craft\commerce\records\CatalogPricing. - Added
craft\commerce\records\InventoryItem. - Added
craft\commerce\records\InventoryLocation. - Added
craft\commerce\records\PurchasableStore. - Added
craft\commerce\services\CatalogPricingRules. - Added
craft\commerce\services\CatalogPricing. - Added
craft\commerce\services\Discounts::getAllDiscountsByStoreId(). - Added
craft\commerce\services\InventoryLocations. - Added
craft\commerce\services\Inventory. - Added
craft\commerce\services\OrderStatuses::getOrderStatusByUid(). - Added
craft\commerce\services\Purchasables::updateStoreStockCache() - Added
craft\commerce\services\Sales::canUseSales(). - Added
craft\commerce\services\ShippingCategories::clearCaches(). - Added
craft\commerce\services\Stores. - Added
craft\commerce\services\Vat. - Added
craft\commerce\web\assets\inventory\InventoryAsset. - Deprecated
craft\commerce\base\Purchasable::getOnSale().getOnPromotion()should be used instead. - Deprecated
craft\commerce\base\Variant::hasUnlimitedStock().craft\commerce\base\Purchasable::$inventoryTrackedshould be used instead. - Deprecated
craft\commerce\elements\Order::$totalSaleAmount.$totalPromotionalAmountshould be used instead. - Deprecated
craft\commerce\elements\Variant::getProduct().getOwner()should be used instead. - Deprecated
craft\commerce\elements\Variant::getProductId().getOwnerId()should be used instead. - Deprecated
craft\commerce\elements\Variant::setProduct().setOwner()should be used instead. - Deprecated
craft\commerce\elements\Variant::setProductId().setOwnerId()should be used instead. - Deprecated
craft\commerce\elements\conditions\products\ProductVariantHasUnlimitedStockConditionRule.ProductVariantInventoryTrackedConditionRuleshould be used instead. - Deprecated
craft\commerce\models\Store::getCountries().craft\commerce\models\Store::getSettings()->getCountries()should be used instead. - Deprecated
craft\commerce\models\Store::getMarketAddressCondition().craft\commerce\models\Store::getSettings()->getMarketAddressCondition()should be used instead. - Deprecated
craft\commerce\models\Store::setCountries().craft\commerce\models\Store::getSettings()->setCountries()should be used instead. - Removed
craft\commerce\base\PurchasableInterface::getId(). - Removed
craft\commerce\base\Variant::$unlimitedStock.craft\commerce\base\Purchasable::$inventoryTrackedcan be used instead. - Removed
craft\commerce\console\controllers\UpgradeController. - Removed
craft\commerce\controllers\LiteShippingController. - Removed
craft\commerce\controllers\LiteTaxController. - Removed
craft\commerce\controllers\ProductsController::actionDeleteProduct(). - Removed
craft\commerce\controllers\ProductsController::actionDuplicateProduct(). - Removed
craft\commerce\controllers\ProductsController::actionVariantIndex(). - Removed
craft\commerce\controllers\ProductsPreviewController. - Removed
craft\commerce\elements\Product::$availableForPurchase.craft\commerce\base\Purchasable::$availableForPurchasecan be used instead. - Removed
craft\commerce\elements\Product::$promotable.craft\commerce\base\Purchasable::$promotablecan be used instead. - Removed
craft\commerce\elements\Product::$shippingCategoryId.craft\commerce\base\Purchasable::$shippingCategoryIdcan be used instead. - Removed
craft\commerce\elements\Product::$taxCategoryId.craft\commerce\base\Purchasable::$taxCategoryIdcan be used instead. - Removed
craft\commerce\elements\Variant::$stock.craft\commerce\base\Purchasable::getStock()can be used instead. - Removed
craft\commerce\helpers\Product. - Removed
craft\commerce\helpers\VariantMatrix. - Removed
craft\commerce\helpers\VariantMatrix. - Removed
craft\commerce\models\Currency. - Removed
craft\commerce\models\Discount::$baseDiscountType. - Removed
craft\commerce\models\LiteShippingSettings. - Removed
craft\commerce\models\LiteTaxSettings. - Removed
craft\commerce\models\ProductType::$hasVariants.$maxVariantscan be used instead. - Removed
craft\commerce\models\Settings::$allowCheckoutWithoutPayment.craft\commerce\models\Store::getAllowCheckoutWithoutPayment()can be used instead. - Removed
craft\commerce\models\Settings::$allowEmptyCartOnCheckout.craft\commerce\models\Store::getAllowEmptyCartOnCheckout()can be used instead. - Removed
craft\commerce\models\Settings::$allowPartialPaymentOnCheckout.craft\commerce\models\Store::getAllowPartialPaymentOnCheckout()can be used instead. - Removed
craft\commerce\models\Settings::$autoSetCartShippingMethodOption.craft\commerce\models\Store::getAutoSetCartShippingMethodOption()can be used instead. - Removed
craft\commerce\models\Settings::$autoSetNewCartAddresses.craft\commerce\models\Store::getAutoSetNewCartAddresses()can be used instead. - Removed
craft\commerce\models\Settings::$autoSetPaymentSource.craft\commerce\models\Store::getAutoSetPaymentSource()can be used instead. - Removed
craft\commerce\models\Settings::$emailSenderAddressPlaceholder. - Removed
craft\commerce\models\Settings::$emailSenderAddress.craft\commerce\models\Email::$senderAddresscan be used instead. - Removed
craft\commerce\models\Settings::$emailSenderNamePlaceholder. - Removed
craft\commerce\models\Settings::$emailSenderName.craft\commerce\models\Email::$senderNamecan be used instead. - Removed
craft\commerce\models\Settings::$freeOrderPaymentStrategy.craft\commerce\models\Store::getFreeOrderPaymentStrategy()can be used instead. - Removed
craft\commerce\models\Settings::$minimumTotalPriceStrategy.craft\commerce\models\Store::getMinimumTotalPriceStrategy()can be used instead. - Removed
craft\commerce\models\Settings::$pdfPaperOrientation.craft\commerce\models\Pdf::$paperOrientationcan be used instead. - Removed
craft\commerce\models\Settings::$pdfPaperSize.craft\commerce\models\Pdf::$paperSizecan be used instead. - Removed
craft\commerce\models\Settings::$requireBillingAddressAtCheckout.craft\commerce\models\Store::getRequireBillingAddressAtCheckout()can be used instead. - Removed
craft\commerce\models\Settings::$requireShippingAddressAtCheckout.craft\commerce\models\Store::getRequireShippingAddressAtCheckout()can be used instead. - Removed
craft\commerce\models\Settings::$requireShippingMethodSelectionAtCheckout.craft\commerce\models\Store::getRequireShippingMethodSelectionAtCheckout()can be used instead. - Removed
craft\commerce\models\Settings::$useBillingAddressForTax.craft\commerce\models\Store::getUseBillingAddressForTax()can be used instead. - Removed
craft\commerce\models\Settings::$validateBusinessTaxIdasVatId.craft\commerce\models\Store::getValidateOrganizationTaxIdasVatId()can be used instead. - Removed
craft\commerce\models\Settings::FREE_ORDER_PAYMENT_STRATEGY_COMPLETE.craft\commerce\models\Store::FREE_ORDER_PAYMENT_STRATEGY_COMPLETEcan be used instead. - Removed
craft\commerce\models\Settings::FREE_ORDER_PAYMENT_STRATEGY_PROCESS.craft\commerce\models\Store::FREE_ORDER_PAYMENT_STRATEGY_PROCESScan be used instead. - Removed
craft\commerce\models\Settings::MINIMUM_TOTAL_PRICE_STRATEGY_DEFAULT.craft\commerce\models\Store::MINIMUM_TOTAL_PRICE_STRATEGY_DEFAULTcan be used instead. - Removed
craft\commerce\models\Settings::MINIMUM_TOTAL_PRICE_STRATEGY_SHIPPING.craft\commerce\models\Store::MINIMUM_TOTAL_PRICE_STRATEGY_SHIPPINGcan be used instead. - Removed
craft\commerce\models\Settings::MINIMUM_TOTAL_PRICE_STRATEGY_ZERO.craft\commerce\models\Store::MINIMUM_TOTAL_PRICE_STRATEGY_ZEROcan be used instead. - Removed
craft\commerce\models\ShippingRule::$maxQty. - Removed
craft\commerce\models\ShippingRule::$maxTotal. - Removed
craft\commerce\models\ShippingRule::$maxWeight. - Removed
craft\commerce\models\ShippingRule::$minMaxTotalType. - Removed
craft\commerce\models\ShippingRule::$minQty. - Removed
craft\commerce\models\ShippingRule::$minTotal. - Removed
craft\commerce\models\ShippingRule::$minWeight. - Removed
craft\commerce\models\ShippingRule::$shippingZoneId. - Removed
craft\commerce\models\ShippingRule::getShippingZone(). - Removed
craft\commerce\records\Discount::BASE_DISCOUNT_TYPE_PERCENT_ITEMS_DISCOUNTED. - Removed
craft\commerce\records\Discount::BASE_DISCOUNT_TYPE_PERCENT_ITEMS. - Removed
craft\commerce\records\Discount::BASE_DISCOUNT_TYPE_PERCENT_TOTAL_DISCOUNTED. - Removed
craft\commerce\records\Discount::BASE_DISCOUNT_TYPE_PERCENT_TOTAL. - Removed
craft\commerce\records\Discount::BASE_DISCOUNT_TYPE_VALUE. - Removed
craft\commerce\records\ShippingRule::TYPE_MIN_MAX_TOTAL_SALEPRICE_WITH_DISCOUNTS. - Removed
craft\commerce\records\ShippingRule::TYPE_MIN_MAX_TOTAL_SALEPRICE. - Removed
craft\commerce\records\ShippingRule::getShippingZone(). - Removed
craft\commerce\services\Customers::addEditUserCommerceTab(). - Removed
craft\commerce\services\Customers::addEditUserCommerceTabContent(). - Removed
craft\commerce\services\PaymentSources::getAllGatewayPaymentSourcesByUserId(). - Removed
craft\commerce\services\PaymentSources::getAllPaymentSourcesByUserId(). - Removed
craft\commerce\services\TaxRates::getTaxRatesForZone(). - Removed
craft\commerce\validators\StoreCountryValidator. - Removed
craft\commerce\widgets\Orders::$orderStatusId.$orderStatusescan be used instead. craft\commerce\base\PurchasableInterfacenow extendscraft\base\ElementInterface.craft\commerce\elements\Product::getVariants()now returns a collection.craft\commerce\elements\Variantnow implementscraft\base\NestedElementTrait.craft\commerce\elements\db\PurchasableQueryis now abstract.craft\commerce\services\Discounts::getAllDiscounts()now returns a collection.craft\commerce\services\Gateways::getAllCustomerEnabledGateways()now returns a collection.craft\commerce\services\Gateways::getAllGateways()now returns a collection.craft\commerce\services\PaymentSources::getAllGatewayPaymentSourcesByCustomerId()now returns a collection.craft\commerce\services\PaymentSources::getAllPaymentSourcesByCustomerId()now returns a collection.craft\commerce\services\PaymentSources::getAllPaymentSourcesByGatewayId()now returns a collection.craft\commerce\services\ShippingCategories::getAllShippingCategories()now returns a collection.craft\commerce\services\ShippingMethods::getAllShippingMethods()now returns a collection.craft\commerce\services\ShippingRules::getAllShippingRules()now returns a collection.craft\commerce\services\ShippingRules::getAllShippingRulesByShippingMethodId()now returns a collection.craft\commerce\services\TaxRates::getAllTaxRates()now returns a collection.craft\commerce\services\TaxRates::getTaxRatesByTaxZoneId()now returns a collection.craft\commerce\services\TaxZones::getAllTaxZones()now returns a collection.- Renamed
craft\commerce\base\Purchasable::tableAttributeHtml()toattributeHtml(). - Renamed
craft\commerce\controllers\BaseStoreSettingsControllertoBaseStoreManagementController. - Renamed
craft\commerce\controllers\StoreSettingsControllertoStoreManagementController. - Renamed
craft\commerce\elements\Subscription::tableAttributeHtml()toattributeHtml(). - Renamed
craft\commerce\elements\Variant::tableAttributeHtml()toattributeHtml(). - Renamed
craft\commerce\elements\traits\OrderElementTrait::tableAttributeHtml()toattributeHtml().
System
- Craft Commerce now requires Craft CMS 5.1 or later.
- Craft Commerce now strictly requires Craft CMS Pro edition.