É possível executar uma consulta para encontrar uma lista de produtos sem imagens atribuídas a eles? Idealmente, eu gostaria que os SKUs fossem impressos na tela.
É possível executar uma consulta para encontrar uma lista de produtos sem imagens atribuídas a eles? Idealmente, eu gostaria que os SKUs fossem impressos na tela.
Respostas:
Você pode encontrar a coleção do código abaixo.
$_products = Mage::getModel('catalog/product')
->getCollection()
->addAttributeToSelect('*')
->addAttributeToFilter(array(
array (
'attribute' => 'image',
'like' => 'no_selection'
),
array (
'attribute' => 'image', // null fields
'null' => true
),
array (
'attribute' => 'image', // empty, but not null
'eq' => ''
),
array (
'attribute' => 'image', // check for information that doesn't conform to Magento's formatting
'nlike' => '%/%/%'
),
));
você pode obter toda a lista de produtos que não possui Imagens atribuídas.
Se você quiser apenas os produtos que não têm image
, small_image
ou thumbnail
atribuídos, em seguida, as respostas de @KeyulShah ou @TBIInfotech vai lhe dar apenas isso.
Se você deseja os produtos que não têm imagens, execute essa consulta no banco de dados e obtenha-os.
SELECT
e.sku, COUNT(m.value) as cnt
FROM
catalog_product_entity e
LEFT JOIN catalog_product_entity_media_gallery m
ON e.entity_id = m.entity_id
GROUP BY
e.entity_id
HAVING
cnt = 0
Se você remover a having
instrução, obterá um resultado de 2 colunas com o skus do produto e o número de imagens atribuídas a eles.
Você pode apenas exportar isso como um CSV.
Apenas uma pequena modificação no que o @keyul shah descreveu, basta colocar o código na raiz do magento:
<?php
require 'app/Mage.php';
Mage::app();
$_products = Mage::getModel('catalog/product')
->getCollection()
->addAttributeToSelect('*')
->addAttributeToFilter(array(
array (
'attribute' => 'image',
'like' => 'no_selection'
),
array (
'attribute' => 'image', // null fields
'null' => true
),
array (
'attribute' => 'image', // empty, but not null
'eq' => ''
),
array (
'attribute' => 'image', // check for information that doesn't conform to Magento's formatting
'nlike' => '%/%/%'
),
));
foreach($_products as $_product){
echo $_product->getSku();
}
Isso funciona para mim ....
$products = Mage::getModel('catalog/product')
->getCollection()
->addAttributeToSelect('*')
->addAttributeToFilter(
array(
array(
'attribute' => 'image',
'null' => '1'
),
array(
'attribute' => 'small_image',
'null' => '1'
),
array(
'attribute' => 'thumbnail',
'null' => '1'
),
array(
'attribute' => 'image',
'nlike' => '%/%/%'
),
array(
'attribute' => 'small_image',
'nlike' => '%/%/%'
),
array(
'attribute' => 'thumbnail',
'nlike' => '%/%/%'
)
),
null,
'left'
);
Se alguém procurando por Magento 2. Isso vai funcionar. É o mesmo que @Marius acabou de adicionar uma tabela.
SELECT
e.sku, COUNT(m.value) as cnt
FROM catalog_product_entity e
LEFT JOIN catalog_product_entity_media_gallery_value_to_entity r
ON e.entity_id = r.entity_id
LEFT JOIN catalog_product_entity_media_gallery m
ON r.value_id = m.value_id
GROUP BY
e.entity_id
HAVING
cnt = 0