Tìm sản phẩm không có hình ảnh


9

Có thể chạy truy vấn để tìm danh sách các sản phẩm không có hình ảnh được gán cho chúng không? Lý tưởng nhất là tôi muốn SKU được in ra trên màn hình.

Câu trả lời:


16

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.


9

Nếu bạn muốn chỉ các sản phẩm mà không có image, small_imagehoặc thumbnailgiao 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 havingcâ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.


Nó sẽ hoạt động trong Magento2!
Amit Singh

có lẽ, nhưng tôi không thể đảm bảo điều đó
Marius

5

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();

}

Giải pháp của bạn rất hiệu quả, tôi đã đưa cho bạn một upvote nhưng sẽ trao giải cho câu trả lời cho bài viết gốc.
Francis Kim

2

Đ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'
    );

Điều này hoạt động tốt hơn, bởi vì nếu sản phẩm chưa có hình ảnh, có lẽ mối quan hệ thuộc tính không tồn tại và có thể sẽ không hoạt động chính xác.
Beto Castillo

1

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 
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.