diff --git a/vendor/magento/module-quote/Model/Quote/Plugin/UpdateQuoteStoreId.php b/vendor/magento/module-quote/Model/Quote/Plugin/UpdateQuoteStoreId.php
index bffa0084e35..ad1880a0545 100644
--- a/vendor/magento/module-quote/Model/Quote/Plugin/UpdateQuoteStoreId.php
+++ b/vendor/magento/module-quote/Model/Quote/Plugin/UpdateQuoteStoreId.php
@@ -8,7 +8,9 @@ declare(strict_types=1);
 namespace Magento\Quote\Model\Quote\Plugin;
 
 use Magento\Quote\Model\Quote;
+use Magento\Store\Api\Data\StoreInterface;
 use Magento\Store\Model\StoreManagerInterface;
+use Magento\Framework\App\Request\Http as Request;
 
 /**
  * Updates quote store id.
@@ -20,17 +22,25 @@ class UpdateQuoteStoreId
      */
     private $storeManager;
 
+    /**
+     * @var Request
+     */
+    private $request;
+
     /**
      * @param StoreManagerInterface $storeManager
+     * @param Request $request
      */
     public function __construct(
-        StoreManagerInterface $storeManager
+        StoreManagerInterface $storeManager,
+        Request $request
     ) {
         $this->storeManager = $storeManager;
+        $this->request = $request;
     }
 
     /**
-     * Update store id in requested quote by store id from request.
+     * Update store id in requested quote by store id from guest's request.
      *
      * @param Quote $subject
      * @param Quote $result
@@ -39,11 +49,51 @@ class UpdateQuoteStoreId
      */
     public function afterLoadByIdWithoutStore(Quote $subject, Quote $result): Quote
     {
-        $storeId = $this->storeManager->getStore()
-            ->getId() ?: $this->storeManager->getDefaultStoreView()
-                ->getId();
-        $result->setStoreId($storeId);
+        return $this->updateStoreId($result);
+    }
+
+    /**
+     * Update store id in requested quote by store id from registered customer's request.
+     *
+     * @param Quote $subject
+     * @param Quote $result
+     * @return Quote
+     * @SuppressWarnings(PHPMD.UnusedFormalParameter)
+     */
+    public function afterLoadByCustomer(Quote $subject, Quote $result): Quote
+    {
+        return $this->updateStoreId($result);
+    }
+
+    /**
+     * Returns store based on web-api request path.
+     *
+     * @param string $requestPath
+     * @return StoreInterface|null
+     */
+    private function getStore(string $requestPath): ?StoreInterface
+    {
+        $pathParts = explode('/', trim($requestPath, '/'));
+        array_shift($pathParts);
+        $storeCode = current($pathParts);
+        $stores = $this->storeManager->getStores(false, true);
+
+        return $stores[$storeCode] ?? null;
+    }
+
+    /**
+     * Update store id in requested quote by store id from request.
+     *
+     * @param Quote $quote
+     * @return Quote
+     */
+    private function updateStoreId(Quote $quote): Quote
+    {
+        $store = $this->getStore($this->request->getPathInfo());
+        if ($store) {
+            $quote->setStoreId($store->getId());
+        }
 
-        return $result;
+        return $quote;
     }
 }
