我正在尝试使用Magento的Web服务API通过第三方应用程序在我的商店中显示产品。当我使用“catalog_product_attribute_media.list”查询项目的图像数据时,我得到这样的结果:
Array
(
[0] => Array
(
[file] => /a/k/akio-dresser.jpg
[label] =>
[position] => 1
[exclude] => 1
[url] => http://example.com/magento/media/catalog/product/a/k/akio-dresser.jpg
[types] => Array
(
[0] => thumbnail
[1] => small_image
[2] => image
)
)
)
这告诉我,我应该能够获得此图像的“缩略图”或“small_image”版本,但我无法弄清楚如何实际执行此操作。我查看了文档并尝试了我能找到的所有内容,但没有成功。有没有人知道我可以使用什么SOAP调用?调用catalog_product_attribute_media.info似乎返回完全相同的信息,而catalog_product_attribute_media.types似乎根本不返回任何内容。
答案 0 :(得分:2)
API调用结果是指产品图像的原始文件,而不是在运行时生成的缓存缩略图/小图像,即加载产品页面时。
返回的属性对应于您在产品的管理页面中获得的布局。因此,给定的图像可用于产品页面上的主要产品图像,类别列表中使用的小图像或添加到购物篮时使用的缩略图。
Magento可以动态地缩放这些图像,这是一个更好的安排,你可以用一些旧的购物车获得你需要准备好'正确'尺寸的图像。但是,这意味着只有磁盘上的缩略图缓存副本,没有API调用来访问它。
我遇到了类似的问题,想要在Magento之外的产品图像。我的解决方法是使用cron脚本下拉过去24小时内更改的大原始图像,然后使用imagemagick创建缩略图,然后使用图像的新“本地”副本。
这不是解决方法,我实际上想对缩略图进行一些命令行处理,去除多余的空白,锐化边缘并为颜色添加一些额外的活力。这个图像处理实时不真实,我不想要默认的“模糊”缩略图。只有新鲜的图像一夜之间就完成了这项工作。