Releases: craftcms/commerce
Releases · craftcms/commerce
3.4.23.1
5.0.0-beta.3
- Removed the
showEditUserCommerceTab
config setting. - Removed
craft\commerce\services\Customers::addEditUserCommerceTab()
. - Removed
craft\commerce\services\Customers::addEditUserCommerceTabContent()
. - Fixed a PHP error that occurred when migrating from Commerce 4. (#3448)
- Fixed a bug where customer orders and carts weren’t shown within profiles.
- Fixed a bug where the Orders index page was showing all orders, not just orders for the selected site’s store. (#3446)
5.0.0-beta.2
- Added a new “Manage inventory stock levels” permission.
- Added a new “Manage inventory locations” permission.
- Craft Commerce now strictly requires Craft CMS Pro edition.
- Fixed a bug where it wasn’t possible to change the primary store. (#3398)
- Fixed a bug where the
hasUnlimitedStock
variant query param wasn’t working. (#3400) - Fixed a bug where variant queries could return duplicate rows. (#3401)
- Fixed a bug where shipping categories weren’t getting deleted when a store was deleted.
- Fixed an error that could occur when upgrading to Commerce 5 with MariaDB. (#3411)
- Fixed a bug where prices weren’t showing their currency symbol on Edit Variant pages. (#3405)
- Fixed an error that could occur when updating site/store assignments. (#3426)
- Fixed a bug where Commerce widgets weren’t displaying the list of stores. (#3428)
- Fixed an error that could occur when editing a store. (#3433)
- Fixed a bug where variant titles were being shown as links when editing a product. (#3431)
4.5.3
4.5.2
4.5.1.1
5.0.0-beta.1
Store Management
- It’s now possible to manage multiple stores. (#2283)
- It’s now possible to manage multiple inventory locations per store. (#2286, #2669)
- 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.
Development
- Added the
currentStore
Twig variable. - Added
commerce/pricing-catalog/generate
command. - Deprecated the
hasUnlimitedStock
variant query param.inventoryTracked
should be used instead. - Removed the
shippingCategory
,shippingCategoryId
,taxCategory
, andtaxCategoryId
product query params. The corresponding variant query params can be used instead.
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::$inventoryTracked
should be used instead. - Deprecated
craft\commerce\elements\Order::$totalSaleAmount
.$totalPromotionalAmount
should 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...
4.5.1
4.5.0
- Removed the Lite edition.
- Deprecated
craft\commerce\models\ShippingMethod::isLite
. - Deprecated
craft\commerce\models\ShippingRule::isLite
. - Deprecated
craft\commerce\models\TaxRate::isLite
. - Deprecated
craft\commerce\models\LiteShippingSettings
. - Deprecated
craft\commerce\models\LiteTaxSettings
. - Deprecated
craft\commerce\controllers\LiteShippingController
. - Deprecated
craft\commerce\controllers\LiteTaxController
. - Deprecated
craft\commerce\services\ShippingMethods::getLiteShippingMethod()
.getAllShippingMethods()
should be used instead. - Deprecated
craft\commerce\services\ShippingMethods::saveLiteShippingMethod()
.saveShippingMethod()
should be used instead. - Deprecated
craft\commerce\services\ShippingRules::getLiteShippingRule()
.getAllShippingRules()
should be used instead. - Deprecated
craft\commerce\services\ShippingRules::saveLiteShippingRule()
.saveShippingRule()
should be used instead. - Deprecated
craft\commerce\services\TaxRates::getLiteTaxRate()
.getAllTaxRates()
should be used instead. - Deprecated
craft\commerce\services\TaxRates::saveLiteTaxRate()
.saveTaxRate()
should be used instead. - Fixed a SQL error that occurred when running the
commerce/upgrade
command on PostgreSQL. (#3380)