Skip to content

Commit 6b3d0e0

Browse files
committed
Fix #73 item bag error
1 parent 95de34d commit 6b3d0e0

File tree

2 files changed

+28
-0
lines changed

2 files changed

+28
-0
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 Mollie for Craft Commerce
22

3+
## Unreleased
4+
5+
- Fixed a PHP error that could occur when making payments. ([#73](https://github.com/craftcms/commerce-mollie/issues/73))
6+
37
## 4.4.0 - 2025-06-13
48

59
- Molle for Craft Commerce now supports the Klarna payment method. ([#20](https://github.com/craftcms/commerce-mollie/issues/20))

src/gateways/Gateway.php

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
use Craft;
1111
use craft\base\Event;
1212
use craft\commerce\base\RequestResponseInterface;
13+
use craft\commerce\elements\Order;
1314
use craft\commerce\errors\CurrencyException;
1415
use craft\commerce\errors\OrderStatusException;
1516
use craft\commerce\errors\TransactionException;
@@ -36,6 +37,7 @@
3637
use Omnipay\Common\Message\ResponseInterface;
3738
use Omnipay\Common\PaymentMethod;
3839
use Omnipay\Mollie\Gateway as OmnipayGateway;
40+
use Omnipay\Mollie\Item;
3941
use Omnipay\Mollie\Message\Request\FetchTransactionRequest;
4042
use Omnipay\Mollie\Message\Request\PurchaseRequest;
4143
use Omnipay\Mollie\Message\Response\FetchPaymentMethodsResponse;
@@ -80,6 +82,28 @@ public function getSettings(): array
8082
return $settings;
8183
}
8284

85+
/**
86+
* @inheritdoc
87+
*/
88+
protected function createItemBagForOrder(Order $order): ?ItemBag
89+
{
90+
$itemBag = parent::createItemBagForOrder($order);
91+
92+
if ($itemBag) {
93+
// Morph common `Item`s into `Mollie\Item`s
94+
$items = $itemBag->all();
95+
foreach ($items as $key => $item) {
96+
$items[$key] = new Item($item->getParameters());
97+
}
98+
99+
if (!empty($items)) {
100+
$itemBag->replace($items);
101+
}
102+
}
103+
104+
return $itemBag;
105+
}
106+
83107
/**
84108
* @param bool $parse
85109
* @return string|null

0 commit comments

Comments
 (0)