Câu trả lời:
Bạn có thể tìm thấy bộ sưu tập cho mã dưới đây.
$_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' => '%/%/%'
),
));
bạn có thể có tất cả danh sách sản phẩm không có hình ảnh được gán.
Nếu bạn muốn chỉ các sản phẩm mà không có image
, small_image
hoặc thumbnail
giao thì câu trả lời từ @KeyulShah hoặc @TBIInfotech sẽ cung cấp cho bạn điều đó.
Nếu bạn muốn các sản phẩm hoàn toàn không có hình ảnh, bạn có thể chạy truy vấn này trên cơ sở dữ liệu và lấy chúng.
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
Nếu bạn xóa having
câu lệnh, bạn sẽ nhận được kết quả 2 cột với skus sản phẩm và số lượng hình ảnh được gán cho chúng.
Bạn chỉ có thể xuất nó dưới dạng csv.
Chỉ cần một sửa đổi nhỏ cho những gì @keyul shah đã mô tả, chỉ cần đặt mã trên root 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();
}
Điều này làm việc cho tôi ....
$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'
);
Nếu bất cứ ai tìm kiếm Magento 2. Điều này sẽ làm việc. Nó giống như @Marius chỉ cần thêm một bảng.
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