Skip to content

Commit d9353f0

Browse files
committed
Fixed race condition in deleting old adjustments
See #3901 Tested by customer here: https://app.frontapp.com/open/cnv_geujeix?key=nV4JNZkyEDPmMZxQ-f4Pwpev3ko5rULf
1 parent 51ff859 commit d9353f0

File tree

2 files changed

+4
-12
lines changed

2 files changed

+4
-12
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# Release Notes for Craft Commerce
22

3+
## Unreleased
4+
5+
- Fixed a PHP error that could occur when saving an Order. ([#3901](https://github.com/craftcms/commerce/pull/3901))
6+
37
## 4.8.4 - 2025-05-01
48

59
- Fixed a bug where products weren’t getting updated when default variants were saved directly. ([#3988](https://github.com/craftcms/commerce/issues/3988))

src/elements/Order.php

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@
4242
use craft\commerce\Plugin;
4343
use craft\commerce\records\LineItem as LineItemRecord;
4444
use craft\commerce\records\Order as OrderRecord;
45-
use craft\commerce\records\OrderAdjustment as OrderAdjustmentRecord;
4645
use craft\commerce\records\OrderNotice as OrderNoticeRecord;
4746
use craft\commerce\records\Transaction as TransactionRecord;
4847
use craft\commerce\validators\StoreCountryValidator;
@@ -3402,11 +3401,6 @@ public function getMetadata(): array
34023401
*/
34033402
private function _saveAdjustments(): void
34043403
{
3405-
/** @var null|array|OrderAdjustmentRecord[] $previousAdjustments */
3406-
$previousAdjustments = OrderAdjustmentRecord::find()
3407-
->where(['orderId' => $this->id])
3408-
->all();
3409-
34103404
$newAdjustmentIds = [];
34113405

34123406
foreach ($this->getAdjustments() as $adjustment) {
@@ -3416,12 +3410,6 @@ private function _saveAdjustments(): void
34163410
$adjustment->orderId = $this->id;
34173411
}
34183412

3419-
foreach ($previousAdjustments as $previousAdjustment) {
3420-
if (!in_array($previousAdjustment->id, $newAdjustmentIds, false)) {
3421-
$previousAdjustment->delete();
3422-
}
3423-
}
3424-
34253413
// Make sure all other adjustments have been cleaned up.
34263414
Db::delete(
34273415
Table::ORDERADJUSTMENTS,

0 commit comments

Comments
 (0)