10 use Magento\Catalog\Model\CategoryFactory;
11 use Magento\Catalog\Model\ResourceModel\Category\CollectionFactory;
22 private $storeManager;
27 private $categoryFactory;
32 private $collectionFactory;
37 private $categoryRepository;
42 private $categories = [];
53 CategoryFactory $categoryFactory,
55 CollectionFactory $collectionFactory
58 $this->categoryFactory = $categoryFactory;
59 $this->collectionFactory = $collectionFactory;
74 if (!isset($this->categories[$categoryKey])) {
77 $website->getDefaultGroup()->getStoreId();
78 $category = $this->collectionFactory->create()
80 ->addFieldToFilter(
'name', $categoryName)
83 $this->categories[$categoryKey] =
$category->getId();
85 $category = $this->categoryFactory->create(
89 'name' => $categoryName,
92 'available_sort_by' => [
'position',
'name'],
98 $this->categories[$categoryKey] =
$category->getId();
102 return $this->categories[$categoryKey];
getCategory($websiteId, $categoryName)
__construct(StoreManager $storeManager, CategoryFactory $categoryFactory, CategoryRepositoryInterface $categoryRepository, CollectionFactory $collectionFactory)