diff --git a/vendor/magento/module-customer-segment/Model/Customer.php b/vendor/magento/module-customer-segment/Model/Customer.php index 9ac45f6facc..415c2ea9396 100644 --- a/vendor/magento/module-customer-segment/Model/Customer.php +++ b/vendor/magento/module-customer-segment/Model/Customer.php @@ -277,6 +277,7 @@ public function processCustomerEvent($eventName, $customerId) */ public function addVisitorToWebsiteSegments($visitorSession, $websiteId, $segmentIds) { + $segmentIds = array_unique(array_merge($this->getVisitorsSegmentsForWebsite($websiteId), $segmentIds)); $visitorSegmentIds = $visitorSession->getCustomerSegmentIds(); if (!is_array($visitorSegmentIds)) { $visitorSegmentIds = []; diff --git a/vendor/magento/module-target-rule/Model/ResourceModel/Index.php b/vendor/magento/module-target-rule/Model/ResourceModel/Index.php index 4f9a53eb781..7c0cea05baf 100644 --- a/vendor/magento/module-target-rule/Model/ResourceModel/Index.php +++ b/vendor/magento/module-target-rule/Model/ResourceModel/Index.php @@ -3,6 +3,7 @@ * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ + namespace Magento\TargetRule\Model\ResourceModel; use Magento\Catalog\Model\Product\Visibility; @@ -22,10 +23,10 @@ use Magento\Framework\Registry; use Magento\Store\Model\Store; use Magento\Store\Model\StoreManagerInterface; -use Magento\TargetRule\Model\Index as TargetRuleIndex; -use Magento\TargetRule\Model\Rule; use Magento\TargetRule\Helper\Data as TargetRuleHelper; +use Magento\TargetRule\Model\Index as TargetRuleIndex; use Magento\TargetRule\Model\ResourceModel\Rule as ResourceModelRule; +use Magento\TargetRule\Model\Rule; /** * TargetRule Product Index by Rule Product List Type Resource Model @@ -138,8 +139,8 @@ class Index extends AbstractDb * @param CustomerSegmentHelper $customerSegmentData * @param TargetRuleHelper $targetRuleData * @param Registry $coreRegistry - * @param Stock $stockHelper - * @param string $connectionName + * @param Stock|null $stockHelper + * @param string|null $connectionName * @param HttpContext|null $httpContext * @param StockConfigurationInterface|null $stockConfiguration * @SuppressWarnings(PHPMD.ExcessiveParameterList) @@ -654,7 +655,10 @@ protected function _getSegmentsIdsFromCurrentCustomer(int $customerId = null, in if ($websiteId === null) { $websiteId = $this->_storeManager->getWebsite()->getId(); } - $segmentIds = $this->_customer->getCustomerSegmentIdsForWebsite((int)$customerId, (int)$websiteId); + + $segmentIds = empty($customerId) + ? (array)$this->httpContext->getValue(CustomerSegmentHelper::CONTEXT_SEGMENT) + : $this->_customer->getCustomerSegmentIdsForWebsite((int)$customerId, (int)$websiteId); if (count($segmentIds)) { $segmentIds = $this->_segmentCollectionFactory->getActiveSegmentsByIds($segmentIds);