加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2020-12-12 16:34:45 所属栏目:MsSql教程 来源:网络整理
导读:我有一个Magento商店有大约3,000个产品.几乎所有这些产品都附有一张图片. 由于某些原因,即使我将导入CSV文件中的小图像和缩略图像素设置为基本图像,只为每个产品设置基本图像.这意味着当您搜索产品时,您会收到一个占位符 – 但是一旦进入产品页面,就可以获得
我有一个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来访问它.我还没有测试过这个脚本.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读