admin

使所有商店图像都成为Magento中的基础图像,小图像和缩略图图像?

sql

我的Magento商店有大约3,000种产品。几乎所有这些产品都附有单个图像。

出于某种原因,即使我将小图像和缩略图图像设置为与导入CSV文件中的基本图像相同,也仅为每个产品设置了基本图像。这意味着当您搜索产品时,您会获得一个占位符-
但是进入产品页面后,您将获得正确的图像。可以通过进入产品管理页面并选择小图像和缩略图的框来轻松解决此问题。

问题是,使用3,000张图像,这将需要很长时间才能手动完成。我找到了一条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

有人知道为什么这行不通吗?

谢谢,


阅读 163

收藏
2021-05-10

共1个答案

admin

对数据库进行类似的更改后,即使成功,也需要在“高速缓存管理”中重建图像高速缓存。

您也许可以使用这样的脚本来执行此操作,而不必担心缓存或索引编制。

<?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进行访问。我尚未测试此脚本。

2021-05-10