Skip to content

Commit 101644d

Browse files
committed
ACP2E-1514: Front-end re-order function applies same backend custom price
implemented solution
1 parent 9532df2 commit 101644d

File tree

1 file changed

+24
-2
lines changed

1 file changed

+24
-2
lines changed

app/code/Magento/Sales/Model/Reorder/Reorder.php

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,19 +9,20 @@
99
use Magento\Catalog\Api\Data\ProductInterface;
1010
use Magento\Catalog\Model\Product;
1111
use Magento\Catalog\Model\ResourceModel\Product\Collection;
12+
use Magento\Catalog\Model\ResourceModel\Product\CollectionFactory as ProductCollectionFactory;
13+
use Magento\Framework\DataObject;
1214
use Magento\Framework\Exception\InputException;
1315
use Magento\Framework\Exception\NoSuchEntityException;
1416
use Magento\Quote\Api\CartRepositoryInterface;
1517
use Magento\Quote\Api\Data\CartInterface;
1618
use Magento\Quote\Model\Cart\CustomerCartResolver;
17-
use Magento\Quote\Model\Quote;
1819
use Magento\Quote\Model\GuestCart\GuestCartResolver;
20+
use Magento\Quote\Model\Quote;
1921
use Magento\Sales\Api\Data\OrderItemInterface;
2022
use Magento\Sales\Helper\Reorder as ReorderHelper;
2123
use Magento\Sales\Model\Order\Item;
2224
use Magento\Sales\Model\OrderFactory;
2325
use Magento\Sales\Model\ResourceModel\Order\Item\Collection as ItemCollection;
24-
use Magento\Catalog\Model\ResourceModel\Product\CollectionFactory as ProductCollectionFactory;
2526
use Psr\Log\LoggerInterface;
2627

2728
/**
@@ -30,6 +31,11 @@
3031
*/
3132
class Reorder
3233
{
34+
/**
35+
* Forbidden reorder item properties
36+
*/
37+
private const FORBIDDEN_REORDER_PROPERTIES = ['custom_price'];
38+
3339
/**#@+
3440
* Error message codes
3541
*/
@@ -253,6 +259,7 @@ private function getOrderProducts(string $storeId, array $orderItemProductIds):
253259
private function addItemToCart(OrderItemInterface $orderItem, Quote $cart, ProductInterface $product): void
254260
{
255261
$infoBuyRequest = $this->orderInfoBuyRequestGetter->getInfoBuyRequest($orderItem);
262+
$this->sanitizeBuyRequest($infoBuyRequest);
256263

257264
$addProductResult = null;
258265
try {
@@ -273,6 +280,21 @@ private function addItemToCart(OrderItemInterface $orderItem, Quote $cart, Produ
273280
}
274281
}
275282

283+
/**
284+
* Removes forbidden reorder item properties
285+
*
286+
* @param DataObject $dataObject
287+
* @return void
288+
*/
289+
private function sanitizeBuyRequest(DataObject $dataObject): void
290+
{
291+
foreach (self::FORBIDDEN_REORDER_PROPERTIES as $forbiddenProp) {
292+
if ($dataObject->hasData($forbiddenProp)) {
293+
$dataObject->unsetData($forbiddenProp);
294+
}
295+
}
296+
}
297+
276298
/**
277299
* Add order line item error
278300
*

0 commit comments

Comments
 (0)