Menú

Repositorios y SearchCriteria en Magento 2: buenas prácticas

José Cruz Chávez

Repositorios y SearchCriteria en Magento 2: buenas prácticas
📁 magento2 magento 2repositorysearchcriteriaarquitectura

Usar repositorios y SearchCriteria evita acoplarse a colecciones directas y facilita mantenimiento.

Consulta por filtros

<?php
use Magento\Catalog\Api\ProductRepositoryInterface;
use Magento\Framework\Api\SearchCriteriaBuilder;
use Magento\Framework\Api\FilterBuilder;
class ProductFinder
{
public function __construct(
private ProductRepositoryInterface $productRepository,
private SearchCriteriaBuilder $searchCriteriaBuilder,
private FilterBuilder $filterBuilder
) {}
public function getEnabledBySkuPrefix(string $prefix)
{
$skuFilter = $this->filterBuilder
->setField('sku')
->setConditionType('like')
->setValue($prefix . '%')
->create();
$statusFilter = $this->filterBuilder
->setField('status')
->setConditionType('eq')
->setValue(1)
->create();
$criteria = $this->searchCriteriaBuilder
->addFilters([$skuFilter, $statusFilter])
->setPageSize(50)
->create();
return $this->productRepository->getList($criteria)->getItems();
}
}

Conclusión

Este patron mejora testabilidad, reduce deuda técnica y alinea el código con las prácticas recomendadas por Magento.

¿Listo para impulsar
tu E-commerce?

Cuéntame sobre tu proyecto y te respondo con una propuesta clara para desarrollo, optimización o migración.

Ir al formulario de contacto
WooCommerce Logo
Magento 2 Logo
Shopify Logo