我导入了我的旧oscommerce网站,其中有15000个产品用于magento!
但不幸的是,缩略图不是自动定义的
我可以通过手工做,但15000个产品是一个大数字,我需要大量的时间来做它
如果有人能给我一个mysql命令将第一个产品图像设置为基本图像,小图像和缩略图会很棒
感谢
答案 0 :(得分:1)
尝试通过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
答案 1 :(得分:0)
我遇到了这个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;
不会更改任何行......
另外,我在Magento CE v1.6.2中的image,small_image,thumbnail和media_gallery的attribute_id是使用EMSupermarket模板的106,109,493,703。
以下代码也没有做任何事情:
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或缩略图所以我想将media_image值复制到其他3,任何想法如何做这个?
答案 2 :(得分:0)
我遇到了同样的问题。我找到了这个页面并运行了该SQL命令,但也没有得到任何结果。但我修改它对我有用。这就是我所做的。
首先,我改变了第7行: AND ev.attribute_code IN('image','small_image','thumbnail') 至 AND ev.attribute_ID ='74'
74是我对'image'的唯一属性id。这里你会有一个不同的号码。你可以在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;