/** * Update/create store (frontname: "Store View"). * * @param int $storeId ID to update existing store or 'null' to create new one * @param string $name * @param string $code * @param int $websiteId * @param int $groupId (frontname: "Store") * @param int $sortOrder * @param bool $isActive * @return \Magento\Store\Model\Store */ private function saveStore($storeId = null, $isActive = false, $name = null, $code = null, $websiteId = null, $groupId = null, $sortOrder = null) { $event = 'store_add'; /** @var \Magento\Store\Model\Store $store */ $store = $this->_manObj->create(\Magento\Store\Model\Store::class); $store->load($storeId); /* 'code' is required attr. and should be set for existing store */ $event = is_null($store->getCode()) ? 'store_add' : 'store_edit'; $store->setIsActive($isActive); if (!is_null($name)) { $store->setName($name); } if (!is_null($code)) { $store->setCode($code); } if (!is_null($websiteId)) { $store->setWebsiteId($websiteId); } if (!is_null($websiteId)) { $store->setGroupId($groupId); } if (!is_null($sortOrder)) { $store->setSortOrder($sortOrder); } $store->save(); /** @var \Magento\Store\Model\StoreManager */ $this->manStore->reinitStores(); /** @var \Magento\Framework\Event\ManagerInterface */ $this->manEvent->dispatch($event, ['store' => $store]); return $store; }
/** * {@inheritdoc} */ public function reinitStores() { $this->decoratedStoreManager->reinitStores(); $this->dispatchInitCurrentStoreAfterEvent(); }