Skip to content
Draft

5.7 #4262

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
2147c7a
WIP permission refactor
lukeholder Feb 26, 2026
e681426
Merge branch '5.6' into feature/view-permissions
lukeholder Feb 26, 2026
a2c362b
Fix permission for draft creation
lukeholder Feb 26, 2026
90e7370
Release notes
lukeholder Feb 26, 2026
db9ee02
Added HasPurchasablesConditionRule
lukeholder Mar 9, 2026
d26c311
Merge branch '5.x' into 5.7
lukeholder Mar 18, 2026
e11d00f
WIP changelog
lukeholder Mar 18, 2026
2711301
Merge branch '5.x' into feature/product-permissions
lukeholder Mar 25, 2026
b9bf116
Merge branch '5.7' into feature/product-permissions
lukeholder Mar 25, 2026
fdbb9e1
Merge branch '5.x' into 5.7
lukeholder Mar 25, 2026
0971f14
Merge branch '5.x' into feature/has-purchasables-condition-rule
lukeholder Mar 25, 2026
aa15ee3
Merge branch '5.x' into 5.7
nfourtythree Apr 15, 2026
a2610f6
Merge branch '5.x' into 5.7
nfourtythree Apr 16, 2026
8e22af8
Merge branch '5.x' into 5.7
lukeholder Apr 28, 2026
87812b9
WIP User order deletion blockers
nfourtythree Apr 29, 2026
ad8267c
WIP SubscriptionBlockers
lukeholder May 4, 2026
5e96d28
Update ibericode/vat to v2 to resolve psr/simple-cache conflict
lukeholder May 6, 2026
9093141
Add changelog entry for ibericode/vat v2 upgrade
lukeholder May 6, 2026
66785e0
Simplify ibericode/vat changelog entry
lukeholder May 6, 2026
df23a55
Merge branch '5.x' into 5.7
lukeholder May 6, 2026
ca11437
Merge branch '5.x' into 5.7
lukeholder May 6, 2026
462d55e
Merge branch '5.7' into nathaniel/5.7-user-with-orders-deletion-blocker
lukeholder May 6, 2026
cab6f12
Add `customerDeleted` flag to orders
nfourtythree May 6, 2026
d3455f0
Merge branch 'nathaniel/5.7-user-with-orders-deletion-blocker' of git…
nfourtythree May 6, 2026
d0e4b9a
Temp bump CMS reqs to `5.10` (dev branch for now)
nfourtythree May 6, 2026
73798a1
Merge branch '5.7' into nathaniel/5.7-user-with-orders-deletion-blocker
nfourtythree May 6, 2026
c3e2d02
changelog
nfourtythree May 6, 2026
6df3e8b
fix cs
nfourtythree May 6, 2026
eed986c
PHPstan fixes
nfourtythree May 6, 2026
802c87f
phpstan
nfourtythree May 6, 2026
b5275e9
Merge branch '5.x' into 5.7
nfourtythree May 7, 2026
cfbc317
Merge branch '5.7' into nathaniel/5.7-user-with-orders-deletion-blocker
nfourtythree May 7, 2026
d68979c
fix cs
nfourtythree May 7, 2026
e79c094
Merge branch '5.7' into nathaniel/5.7-user-with-orders-deletion-blocker
nfourtythree May 7, 2026
52d024c
Remove
lukeholder May 11, 2026
624f07a
Cleanup
lukeholder May 11, 2026
26e27c8
Cleanup string and collection usage
lukeholder May 11, 2026
550cec4
Merge remote-tracking branch 'origin/5.7' into feature/has-purchasabl…
lukeholder May 19, 2026
95ba6aa
Fix @since tag, namespace, typo, and add changelog entry
lukeholder May 20, 2026
ee788c4
Implement match-aware modifyQuery in HasPurchasablesConditionRule
lukeholder May 20, 2026
70234b8
Rename match mode 'exact' to 'only'
lukeholder May 20, 2026
2343101
Add containsPurchasables to OrderQuery; rename rule to ContainsPurcha…
lukeholder May 20, 2026
559fabb
Move match dropdown before purchasable type in condition UI
lukeholder May 20, 2026
3ae9a80
Hide purchasable type dropdown when only one type is registered
lukeholder May 20, 2026
f447fbc
Document containsPurchasables purchasables key as array<int|Purchasab…
lukeholder May 20, 2026
55e8329
Move any/all/only to ContainsPurchasablesMatch enum
lukeholder May 20, 2026
7aaf21f
Update CHANGELOG-WIP with new classes and methods
lukeholder May 20, 2026
fc5cd02
Merge remote-tracking branch 'origin/5.7' into feature/product-permis…
lukeholder May 20, 2026
9ade8b4
WIP
lukeholder May 20, 2026
e6eefb0
Fix stale variable names and clean up old permission rows in migration
lukeholder May 20, 2026
d7c30cf
Cleanup
lukeholder May 20, 2026
5affb1e
Fix phpstan, cs, and align migration with Craft core conventions
lukeholder May 20, 2026
787898f
Update composer deps
lukeholder May 20, 2026
4772d31
Merge branch '5.7' into nathaniel/5.7-user-with-orders-deletion-blocker
lukeholder May 20, 2026
ebe58c4
Cleanup
lukeholder May 20, 2026
923d4ed
Cleanup
lukeholder May 20, 2026
5ae07f0
Merge pull request #4290 from craftcms/nathaniel/5.7-user-with-orders…
lukeholder May 20, 2026
36bca3e
Merge branch '5.7' into feature/has-purchasables-condition-rule
lukeholder May 20, 2026
18e7698
Merge branch 'origin/5.7' into feature/has-purchasables-condition-rule
lukeholder May 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 42 additions & 0 deletions CHANGELOG-WIP.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# WIP Release Notes for Craft Commerce 5.7

## Administration
- Added a "Contains Purchasables" order condition rule, which supports "any", "all", and "only" match modes. ([#4242](https://github.com/craftcms/commerce/issues/4242))

## Extensibility
- Added `craft\commerce\elements\conditions\orders\ContainsPurchasablesConditionRule`.
- Added `craft\commerce\enums\ContainsPurchasablesMatch`.
- Added `craft\commerce\elements\db\OrderQuery::$containsPurchasables`.
- Added `craft\commerce\elements\db\OrderQuery::containsPurchasables()`.
- Added `craft\commerce\elements\Order::hasPurchasables()`.
- Added `craft\commerce\controllers\OrdersController::actionReassign()`.
- Added `craft\commerce\controllers\OrdersController::actionReassignModal()`.
- Added `craft\commerce\controllers\OrdersController::actionRemoveCustomerData()`.
- Added `craft\commerce\controllers\OrdersController::actionRemoveCustomerDataModal()`.
- Added `craft\commerce\controllers\SubscriptionsController::actionDeleteSubscriptions()`.
- Added `craft\commerce\controllers\SubscriptionsController::actionDeleteSubscriptionsModal()`.
- Added `craft\commerce\elements\Order::getCustomerDeleted()`.
- Added `craft\commerce\elements\Order::setCustomerDeleted()`.
- Added `craft\commerce\elements\deletionblockers\OrderCustomersDeletionBlocker`.
- Added `craft\commerce\elements\deletionblockers\SubscriptionCustomersDeletionBlocker`.
- Added `craft\commerce\services\Orders::reassignOrders()`.
- Added `craft\commerce\services\Orders::removeCustomerData()`.
- `craft\commerce\elements\Subscription::getSubscriber()` now returns `?User` instead of `User`.

### System
- Craft Commerce now requires Craft CMS 5.10.0 or later.
- Craft Commerce now requires `ibericode/vat` 2.0 or later.
- When deleting a user with orders or subscriptions, store admins are now presented with actionable options to resolve the blocker (reassign orders, remove customer data, or delete subscriptions), rather than a generic error.

## Development

- Product permissions have been refined into separate "View", "Create", "Save", and "Delete" permissions.

## Extensibility

- Added `craft\commerce\services\ProductTypes::getViewableProductTypes()`.
- Added `craft\commerce\services\ProductTypes::getViewableProductTypeIds()`.
- Added `craft\commerce\services\ProductTypes::getCreatableProductTypeIds()`.
- Deprecated `craft\commerce\services\ProductTypes::hasPermission()`. Use `$user->can()` directly instead.
- Deprecated `craft\commerce\services\ProductTypes::getEditableProductTypes()`. Use `getViewableProductTypes()` instead.
- Deprecated `craft\commerce\services\ProductTypes::getEditableProductTypeIds()`. Use `getViewableProductTypeIds()` instead.
4 changes: 2 additions & 2 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,9 @@
"prefer-stable": true,
"require": {
"php": "^8.2",
"craftcms/cms": "^5.9.15",
"craftcms/cms": "^5.10.0",
"dompdf/dompdf": "^2.0.2",
"ibericode/vat": "^1.2.2",
"ibericode/vat": "^2.0",
"iio/libmergepdf": "^4.0",
"moneyphp/money": "^4.2.0"
},
Expand Down
Loading
Loading