diff --git a/app/code/Magento/Quote/Plugin/UpdateCartId.php b/app/code/Magento/Quote/Plugin/UpdateCartId.php
new file mode 100644
index 0000000000000..46aecd176454f
--- /dev/null
+++ b/app/code/Magento/Quote/Plugin/UpdateCartId.php
@@ -0,0 +1,51 @@
+request = $request;
+ }
+
+ /**
+ * Update id from request if param cartId exist
+ *
+ * @param GuestCartItemRepositoryInterface $guestCartItemRepository
+ * @param CartItemInterface $cartItem
+ * @return void
+ * @SuppressWarnings(PHPMD.UnusedFormalParameter)
+ */
+ public function beforeSave(
+ GuestCartItemRepositoryInterface $guestCartItemRepository,
+ CartItemInterface $cartItem
+ ): void {
+ $cartId = $this->request->getParam('cartId');
+
+ if ($cartId) {
+ $cartItem->setQuoteId($cartId);
+ }
+ }
+}
diff --git a/app/code/Magento/Quote/etc/webapi_rest/di.xml b/app/code/Magento/Quote/etc/webapi_rest/di.xml
index 27d5ff7753425..a55d2146be156 100644
--- a/app/code/Magento/Quote/etc/webapi_rest/di.xml
+++ b/app/code/Magento/Quote/etc/webapi_rest/di.xml
@@ -13,4 +13,7 @@
+
+
+
diff --git a/app/code/Magento/Swatches/Test/Mftf/Section/AdminManageSwatchSection.xml b/app/code/Magento/Swatches/Test/Mftf/Section/AdminManageSwatchSection.xml
index 629599eba84fe..ab4502f3e9cfb 100644
--- a/app/code/Magento/Swatches/Test/Mftf/Section/AdminManageSwatchSection.xml
+++ b/app/code/Magento/Swatches/Test/Mftf/Section/AdminManageSwatchSection.xml
@@ -21,6 +21,7 @@
+
diff --git a/app/code/Magento/Swatches/Test/Mftf/Test/AdminCreateImageSwatchTest.xml b/app/code/Magento/Swatches/Test/Mftf/Test/AdminCreateImageSwatchTest.xml
index 0e24d63728d9d..5a78efcde33b7 100644
--- a/app/code/Magento/Swatches/Test/Mftf/Test/AdminCreateImageSwatchTest.xml
+++ b/app/code/Magento/Swatches/Test/Mftf/Test/AdminCreateImageSwatchTest.xml
@@ -53,6 +53,7 @@
+
@@ -62,6 +63,7 @@
+
diff --git a/app/code/Magento/Swatches/Test/Mftf/Test/StorefrontFilterByImageSwatchTest.xml b/app/code/Magento/Swatches/Test/Mftf/Test/StorefrontFilterByImageSwatchTest.xml
index 427797bdb09e2..39b3ca51327ba 100644
--- a/app/code/Magento/Swatches/Test/Mftf/Test/StorefrontFilterByImageSwatchTest.xml
+++ b/app/code/Magento/Swatches/Test/Mftf/Test/StorefrontFilterByImageSwatchTest.xml
@@ -55,6 +55,7 @@
+
diff --git a/dev/tests/api-functional/testsuite/Magento/Quote/Api/GuestCartItemRepositoryTest.php b/dev/tests/api-functional/testsuite/Magento/Quote/Api/GuestCartItemRepositoryTest.php
index e03a54f9463d7..ddd986bdafc60 100644
--- a/dev/tests/api-functional/testsuite/Magento/Quote/Api/GuestCartItemRepositoryTest.php
+++ b/dev/tests/api-functional/testsuite/Magento/Quote/Api/GuestCartItemRepositoryTest.php
@@ -1,6 +1,5 @@
objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
+ $this->objectManager = Bootstrap::getObjectManager();
}
/**
+ * Test quote items
+ *
* @magentoApiDataFixture Magento/Checkout/_files/quote_with_items_saved.php
*/
public function testGetList()
@@ -112,12 +121,16 @@ public function testAddItem()
];
$requestData = [
- "cartItem" => [
- "sku" => $productSku,
- "qty" => 7,
- "quote_id" => $cartId,
+ 'cartItem' => [
+ 'sku' => $productSku,
+ 'qty' => 7,
],
];
+
+ if (TESTS_WEB_API_ADAPTER === self::ADAPTER_SOAP) {
+ $requestData['cartItem']['quote_id'] = $cartId;
+ }
+
$this->_webApiCall($serviceInfo, $requestData);
$this->assertTrue($quote->hasProductId(2));
$this->assertEquals(7, $quote->getItemByProduct($product)->getQty());
@@ -205,20 +218,11 @@ public function testUpdateItem(array $stockData, string $errorMessage = null)
],
];
- if (TESTS_WEB_API_ADAPTER == self::ADAPTER_SOAP) {
- $requestData = [
- "cartItem" => [
- "qty" => 5,
- "quote_id" => $cartId,
- "itemId" => $itemId,
- ],
- ];
- } else {
- $requestData = [
- "cartItem" => [
- "qty" => 5,
- "quote_id" => $cartId,
- ],
+ $requestData['cartItem']['qty'] = 5;
+ if (TESTS_WEB_API_ADAPTER === self::ADAPTER_SOAP) {
+ $requestData['cartItem'] += [
+ 'quote_id' => $cartId,
+ 'itemId' => $itemId,
];
}
if ($errorMessage) {