Estás leyendo la publicación: Cómo obtener todas las URL de productos en Magento 2
espacio de nombres Proveedor\Módulo\Ayudante;
use Magento\Catalog\Model\ResourceModel\Product\CollectionFactory como ProductCollectionFactory;
use Magento\Framework\App\Config\ScopeConfigInterface;
use Magento\Framework\App\Helper\AbstractHelper;
use Magento\Framework\App\Helper\Context;
clase ProductPageUrls extiende AbstractHelper
{
const PRODUCT_URL_SUFFIX = ‘catalog/seo/product_url_suffix’;
/**
* @var ProductCollectionFactory
*/
privado $productCollectionFactory;
función pública __construct(Contexto $contexto, ProductCollectionFactory $productCollectionFactory)
{
$this->productCollectionFactory = $productCollectionFactory;
padre::__construcción($contexto);
}
función pública getProductUrls()
{
$productUrls = [];
$productos = $this->productCollectionFactory->create();
$productos->addAttributeToSelect(‘url_key’);
foreach ($productos como $producto) {
if (!is_null($producto->getData(‘url_key’))) {
$productUrls[] = rtrim($this->_getUrl($producto->getData(‘url_key’)), ‘/’) .
$this->getConfigData(self::PRODUCT_URL_SUFFIX);
}
}
devuelve $productUrls;
}
función pública getConfigData($ruta, $ámbito = ScopeConfigInterface::SCOPE_TYPE_DEFAULT, $scopeId = nulo)
{
return $this->scopeConfig->getValue($ruta, $scope, $scopeId);
}
}