<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Catalog\Model; use Magento\Catalog\Api\ProductManagementInterface; use Magento\Catalog\Model\Product\Attribute\Source\Status; use Magento\Catalog\Model\ResourceModel\Product\CollectionFactory; class ProductManagement implements ProductManagementInterface { /** * @var CollectionFactory */ protected $productsFactory; /** * @param CollectionFactory $productsFactory */ public function __construct(CollectionFactory $productsFactory) { $this->productsFactory = $productsFactory; } /** * {@inheritdoc} */ public function getCount($status = null) { $products = $this->productsFactory->create(); /** @var \Magento\Catalog\Model\ResourceModel\Product\Collection $products */ switch ($status) { case Status::STATUS_ENABLED: $products->addAttributeToFilter('status', Status::STATUS_ENABLED); break; case Status::STATUS_DISABLED: $products->addAttributeToFilter('status', Status::STATUS_DISABLED); break; } return $products->getSize(); } }