sql – 使所有商店图像的基础,小和缩略图在Magento?

前端之家收集整理的这篇文章主要介绍了sql – 使所有商店图像的基础,小和缩略图在Magento?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个Magento商店有大约3,000个产品.几乎所有这些产品都附有一张图片.

由于某些原因,即使我将导入CSV文件中的小图像和缩略图像素设置为基本图像,只为每个产品设置基本图像.这意味着当您搜索产品时,您会收到一个占位符 – 但是一旦进入产品页面,就可以获得正确的图像.可以通过进入产品管理页面并选择小图像和缩略图的框来轻松补救.

问题是,3000张图片需要很长时间才能手动进行.我发现一个sql命令应该使所有的基本,小的和缩略图映射每个产品的第一个图像.因为我每个产品只有一个图像,这应该是完美的.但是,它没有做任何事情.它说0行已更改.

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 (70,71,72)
AND mgv.position = 1

有人知道为什么这不工作吗?

谢谢,

丹尼

解决方法

数据库进行这样的更改后,即使成功,您也需要在缓存管理中重建映像缓存.

您可能可以使用这样的脚本来执行此操作,而不用担心缓存或索引.

<?PHP

require 'app/Mage.PHP';
Mage::app();

$products = Mage::getModel('catalog/product')->getCollection()->addAttributeToSelect('*');
foreach ($products as $product) {
    if (!$product->hasImage()) continue;
    if (!$product->hasSmallImage()) $product->setSmallImage($product->getImage());
    if (!$product->hasThumbnail()) $product->setThumbnail($product->getImage());
    $product->save();
}

?>Done!

将其保存在Magento目录中,并通过在浏览器的地址栏中输入URL来访问它.我还没有测试过这个脚本.

猜你在找的MsSQL相关文章