Magento, мне нужно определить первое изображение продукта в виде эскиза - PullRequest
0 голосов
/ 26 марта 2012

Я импортировал свой старый сайт oscommerce с 15000 товаров для magento!

Но, к сожалению, эскизы не определяются автоматически

http://imgur.com/cNdXd

я могу сделать вручную, но 15000 продуктов - это большое число, и мне нужно время, чтобы сделать это

, если кто-нибудь может дать мне команду mysql для установки первого изображения продуктов как Базовое изображение, Маленькое изображение и Миниатюра будетбыть удивительным

спасибо

Ответы [ 3 ]

1 голос
/ 26 марта 2012

Попробуйте обновить их через API:

$proxy = new SoapClient('http://magentohost/api/soap/?wsdl');
$sessionId = $proxy->login('apiUser', 'apiKey');

$products = $proxy->call($sessionId, 'product.list');

foreach ($products as $product) {
    $images = $proxy->call($sessionId, 'product_media.list', $product['sku'])

    $imageFilename = $images[0]['file'];

    $proxy->call($sessionId, 'product_media.update', array(
        $product['sku'],
        $imageFilename,
        array('types' => array('image', 'thumbnail')
    ));
}

Ссылки по соответствующей документации: http://www.magentocommerce.com/wiki/doc/webservices-api/api/catalog_product_attribute_media

http://www.magentocommerce.com/wiki/doc/webservices-api/api/catalog_product#catalog_product.list

0 голосов
/ 11 апреля 2012

У меня была такая же проблема. Я нашел эту страницу и запустил эту команду SQL, а также не получил никаких результатов. Но я изменил это, чтобы работать на меня. Вот что я сделал.

Прежде всего, я изменил строку 7 с: И ev.attribute_code IN ('image', 'small_image', 'thumbnail') в AND ev.attribute_ID = '74'

74 - это мой уникальный идентификатор атрибута для изображения. У вас будет другой номер здесь. Вы найдете это, посмотрев в MySQL ... 75 был для «small_image» и 76 для «thumbnail».

Итак, я запускал этот код 3 раза, по 1 для каждого из этих номеров атрибутов. Каждый раз, когда я меняю строку 7 ev.attribute_ID = '75':

UPDATE catalog_product_entity_media_gallery AS mg,
    catalog_product_entity_media_gallery_value AS mgv,
    catalog_product_entity_varchar AS ev
SET ev.value = mg.value
WHERE  mg.value_id = mgv.value_id
    AND mg.entity_id = ev.entity_id
    AND ev.attribute_ID = '76'
    AND mgv.position = 1;
0 голосов
/ 28 марта 2012

У меня проблема с этим кодом SQL, который я получил где-то, который должен установить ваше первое изображение как изображение, маленькое изображение и миниатюру:

UPDATE catalog_product_entity_media_gallery AS mg,
    catalog_product_entity_media_gallery_value AS mgv,
    catalog_product_entity_varchar AS ev
SET ev.value = mg.value
WHERE  mg.value_id = mgv.value_id
    AND mg.entity_id = ev.entity_id
    AND ev.attribute_code IN ('image', 'small_image', 'thumbnail')
    AND mgv.position = 1;

Не меняет строк ...

Кроме того, мой attribute_id для изображения, small_image, thumbnail и media_gallery в Magento CE v1.6.2 составляет 106 109 493 703 с использованием шаблона EMSupermarket.

Следующий код также ничего не делает:

UPDATE catalog_product_entity_media_gallery AS mg,
    catalog_product_entity_media_gallery_value AS mgv,
    catalog_product_entity_varchar AS ev
SET ev.value = mg.value
WHERE  mg.value_id = mgv.value_id
    AND mg.entity_id = ev.entity_id
    AND ev.attribute_id IN (106,109,493)
    AND mgv.position = 1;

Кто-нибудь, как сделать это правильно с моим идентификатором?

Что произошло с импортом моего продукта oscommerce, так это то, что импортированные изображения продуктов заканчиваются только именем поля media_image, но не image, small_image или thumbnail, поэтому я хочу скопировать значения media_image в другие 3, любыеидеи как это сделать?

...