@@ -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}
0 commit comments