Görselsiz Ürünleri Bulun


9

Hiç resim atanmamış ürünlerin listesini bulmak için sorgu çalıştırmak mümkün müdür? İdeal olarak SKU'ların ekranda basılmasını istiyorum.

Yanıtlar:


16

Aşağıdaki kod için koleksiyonu bulabilirsiniz.

$_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' => '%/%/%'
        ),
    ));

Resim atamamış tüm ürün listesini alabilirsiniz.


9

Eğer yoksa sadece ürünlerini isterseniz image, small_imageya da thumbnailatanmış ardından @KeyulShah veya @TBIInfotech gelen cevaplar size sadece verecektir.

Hiç görüntüsü olmayan ürünlerin olmasını istiyorsanız, bu sorguyu veritabanında çalıştırabilir ve alabilirsiniz.

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

havingİfadeyi kaldırırsanız, ürün skus'u ve kendilerine atanan resim sayısı ile 2 sütun sonucu elde edersiniz.

Bunu sadece bir csv olarak dışa aktarabilirsiniz.


Herhangi bir şansla Magento2'de çalışacak!
Amit Singh

muhtemelen, ama bunu garanti edemem
Marius

5

@Keyul shah'ın tanımladığı şeyde sadece küçük bir değişiklik yapın, kodu magento köküne koyun:

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

}

Çözümünüz harika çalıştı, size bir oy verdim ancak orijinal gönderinin cevabını vereceğim.
Francis Kim

2

Bu benim için çalışıyor ....

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

Bu daha iyi çalışır, çünkü ürün henüz resme sahip değilse, muhtemelen öznitelik ilişkisi mevcut değildir ve muhtemelen düzgün çalışmaz.
Beto Castillo

2

Magento 2 arayan varsa. Bu işe yarayacak. @Marius ile aynı bir tablo ekledi.

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 
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.