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来访问它.我还没有测试过这个脚本. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |