Skip to content

Commit 508f1ef

Browse files
committed
MAGETWO-64885: Wrong cookies set for store views with multidomain
1 parent 2498417 commit 508f1ef

File tree

2 files changed

+20
-2
lines changed

2 files changed

+20
-2
lines changed

app/code/Magento/Store/Block/Switcher.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,7 @@ public function getTargetStorePostData(\Magento\Store\Model\Store $store, $data
224224
{
225225
$data[\Magento\Store\Api\StoreResolverInterface::PARAM_NAME] = $store->getCode();
226226
return $this->_postDataHelper->getPostData(
227-
$this->getUrl('stores/store/switch'),
227+
$store->getCurrentUrl(false),
228228
$data
229229
);
230230
}

app/code/Magento/Store/Model/Plugin/StoreCookie.php

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
use Magento\Store\Model\StoreIsInactiveException;
1313
use Magento\Framework\Exception\NoSuchEntityException;
1414
use \InvalidArgumentException;
15+
use Magento\Store\Api\StoreResolverInterface;
16+
use Magento\Framework\App\ObjectManager;
1517

1618
/**
1719
* Class StoreCookie
@@ -33,19 +35,27 @@ class StoreCookie
3335
*/
3436
protected $storeRepository;
3537

38+
/**
39+
* @var StoreResolverInterface
40+
*/
41+
private $storeResolver;
42+
3643
/**
3744
* @param StoreManagerInterface $storeManager
3845
* @param StoreCookieManagerInterface $storeCookieManager
3946
* @param StoreRepositoryInterface $storeRepository
47+
* @param StoreResolverInterface $storeResolver
4048
*/
4149
public function __construct(
4250
StoreManagerInterface $storeManager,
4351
StoreCookieManagerInterface $storeCookieManager,
44-
StoreRepositoryInterface $storeRepository
52+
StoreRepositoryInterface $storeRepository,
53+
StoreResolverInterface $storeResolver = null
4554
) {
4655
$this->storeManager = $storeManager;
4756
$this->storeCookieManager = $storeCookieManager;
4857
$this->storeRepository = $storeRepository;
58+
$this->storeResolver = $storeResolver ?: ObjectManager::getInstance()->get(StoreResolverInterface::class);
4959
}
5060

5161
/**
@@ -72,5 +82,13 @@ public function beforeDispatch(
7282
$this->storeCookieManager->deleteStoreCookie($this->storeManager->getDefaultStoreView());
7383
}
7484
}
85+
if (
86+
$this->storeCookieManager->getStoreCodeFromCookie() === null
87+
|| $request->getParam(StoreResolverInterface::PARAM_NAME) !== null
88+
) {
89+
$storeId = $this->storeResolver->getCurrentStoreId();
90+
$store = $this->storeRepository->getActiveStoreById($storeId);
91+
$this->storeCookieManager->setStoreCookie($store);
92+
}
7593
}
7694
}

0 commit comments

Comments
 (0)