Skip to content

Commit e1e90df

Browse files
committed
ACP2E-778: REST API: Product names in cart always use default store view values
1 parent 2d2fa6c commit e1e90df

File tree

2 files changed

+26
-35
lines changed

2 files changed

+26
-35
lines changed

app/code/Magento/Quote/Model/Quote/Plugin/UpdateQuoteStoreId.php

Lines changed: 26 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -39,60 +39,54 @@ public function __construct(
3939
$this->request = $request;
4040
}
4141

42-
/**
43-
* Returns store based on web-api request path.
44-
*
45-
* @param string $requestPath
46-
* @return StoreInterface|null
47-
*/
48-
private function getStore(string $requestPath): ?StoreInterface
49-
{
50-
$pathParts = explode('/', trim($requestPath, '/'));
51-
$storeCode = current($pathParts);
52-
$stores = $this->storeManager->getStores(false, true);
53-
54-
return $stores[$storeCode] ?? null;
55-
}
56-
5742
/**
5843
* Update store id in requested quote by store id from request.
5944
*
60-
* @param Quote $quote
45+
* @param Quote $subject
46+
* @param Quote $result
6147
* @return Quote
48+
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
6249
*/
63-
private function loadQuote(Quote $quote): Quote
50+
public function afterLoadByIdWithoutStore(Quote $subject, Quote $result): Quote
6451
{
65-
$store = $this->getStore($this->request->getPathInfo());
66-
if ($store) {
67-
$quote->setStoreId($store->getId());
68-
}
52+
$storeId = $this->storeManager->getStore()
53+
->getId() ?: $this->storeManager->getDefaultStoreView()
54+
->getId();
55+
$result->setStoreId($storeId);
6956

70-
return $quote;
57+
return $result;
7158
}
7259

7360
/**
74-
* Update store id in requested quote by store id from guest's request.
61+
* Update store id in requested quote by store id from registered customer's request.
7562
*
7663
* @param Quote $subject
7764
* @param Quote $result
7865
* @return Quote
7966
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
8067
*/
81-
public function afterLoadByIdWithoutStore(Quote $subject, Quote $result): Quote
68+
public function afterLoadByCustomer(Quote $subject, Quote $result): Quote
8269
{
83-
return $this->loadQuote($result);
70+
$store = $this->getStore($this->request->getPathInfo());
71+
if ($store) {
72+
$result->setStoreId($store->getId());
73+
}
74+
75+
return $result;
8476
}
8577

8678
/**
87-
* Update store id in requested quote by store id from registered customer's request.
79+
* Returns store based on web-api request path.
8880
*
89-
* @param Quote $subject
90-
* @param Quote $result
91-
* @return Quote
92-
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
81+
* @param string $requestPath
82+
* @return StoreInterface|null
9383
*/
94-
public function afterLoadByCustomer(Quote $subject, Quote $result): Quote
84+
private function getStore(string $requestPath): ?StoreInterface
9585
{
96-
return $this->loadQuote($result);
86+
$pathParts = explode('/', trim($requestPath, '/'));
87+
$storeCode = current($pathParts);
88+
$stores = $this->storeManager->getStores(false, true);
89+
90+
return $stores[$storeCode] ?? null;
9791
}
9892
}

app/code/Magento/Quote/etc/webapi_soap/di.xml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,6 @@
1313
<plugin name="accessControl" type="Magento\Quote\Model\QuoteRepository\Plugin\AccessChangeQuoteControl" />
1414
<plugin name="authorization" type="Magento\Quote\Model\QuoteRepository\Plugin\Authorization" />
1515
</type>
16-
<type name="Magento\Quote\Api\GuestCartItemRepositoryInterface">
17-
<plugin name="updateCartIdFromRequest" type="Magento\Quote\Plugin\UpdateCartId" />
18-
</type>
1916
<type name="Magento\Quote\Model\Quote">
2017
<plugin name="updateQuoteStoreId" type="Magento\Quote\Model\Quote\Plugin\UpdateQuoteStoreId" />
2118
</type>

0 commit comments

Comments
 (0)