Solución:
Pruebe el siguiente script desde la raíz de magento2:
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
use MagentoFrameworkAppBootstrap;
try{
require __DIR__ . '/app/bootstrap.php';
$bootstrap = Bootstrap::create(BP, $_SERVER);
$obj = $bootstrap->getObjectManager();
$resource = $obj->get('MagentoFrameworkAppResourceConnection');
$connection = $resource->getConnection();
$sql = "SELECT * FROM catalog_product_entity WHERE type_id = 'configurable' and entity_id NOT IN (SELECT parent_id FROM catalog_product_relation)";
$result = $connection->fetchAll($sql);
if (!count($result)) {
$sql = "SELECT * FROM catalog_product_entity WHERE type_id = 'configurable' and entity_id NOT IN (SELECT parent_id FROM catalog_product_super_link)";
$result = $connection->fetchAll($sql);
}
echo "Number of products: " . count($result) . "<br/>";
echo '<pre>';print_r($result);
} catch (Exception $e) {
echo $e->getMessage();
}
Si se siente cómodo con el uso de MySQL para responder a su pregunta, puede escribir una consulta como
select * from catalog_product_entity left join catalog_product_relation on (parent_id = entity_id) where type_id = "configurable" group by parent_id having (count(*) = 0)
Esto unirá la tabla de productos con la tabla que alberga la relación padre / hijo. Luego, filtrar eso a través de una cláusula de tener para encontrar todos los que no tienen esa relación.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)