【发布时间】:2011-11-30 07:27:26
【问题描述】:
我正在使用 Magento 电子商务系统。
当产品缺货时,我可以在产品图片上设置“缺货”水印吗?
提前致谢!
【问题讨论】:
我正在使用 Magento 电子商务系统。
当产品缺货时,我可以在产品图片上设置“缺货”水印吗?
提前致谢!
【问题讨论】:
我想提出一个替代解决方案。当产品缺货时,也许您可以在图像上方添加一个元素(css z-index),显示“缺货”,而不是生成和显示带有水印的新图像。看看我们是如何为销售的产品做到这一点的(这个链接在发布这篇文章时有一个正在销售的产品:http://www.abesmarket.com/store/karmaorganicspa)。 @Showket 编写的代码$_product->getStockItem()->getIsInStock() 非常适合确定产品是否有货。如果产品没有库存,我会在产品图片上方显示一个新的 div。
【讨论】:
是的,当然你可以这样做..如果你想用代码来做,你可以这样做:-
转到/app/design/frontend/your_theame/default/template/catalog/product/list.phtml 并在第 96 行或附近进行以下更改,您会从该代码中找到一些行,我在其中添加了一些行,只需应用更改即可完成。如果出现任何错误,请还原
<?php $_collectionSize = $_productCollection->count() ?>
<?php $_columnCount = $this->getColumnCount(); ?>
<?php $i=0; foreach ($_productCollection as $_product): ?>
<?php if ($i++%$_columnCount==0): ?>
<ul class="products-grid">
<?php endif ?>
<?php if ($_product->getStock_item()->getIs_in_stock()){
$inStock = "In Stock Now";}
else{
$inStock = "Out Of Stock";
}
?>
【讨论】:
这是来自
的小代码sn-psMage_Catalog_Helper_Image
/**
* Add watermark to image
* size param in format 100x200
*
* @param string $fileName
* @param string $position
* @param string $size
* @param int $imageOpacity
* @return Mage_Catalog_Helper_Image
*/
public function watermark($fileName, $position, $size=null, $imageOpacity=null)
{
$this->setWatermark($fileName)
->setWatermarkPosition($position)
->setWatermarkSize($size)
->setWatermarkImageOpacity($imageOpacity);
return $this;
}
您还可能对以下内容感兴趣:
Mage_Catalog_ProductController
imageAction()
...
try {
$imageModel = Mage::getModel('catalog/product_image');
$imageModel->setSize($size)
->setBaseFile($imageFile)
/**
* Resizing has been commented because this one method are deprecated
*/
//->resize()
->setWatermark( Mage::getStoreConfig('catalog/watermark/image') )
->saveFile()
->push();
} catch( Exception $e ) {
$this->_forward('noRoute');
}
...
这是您可能感兴趣的两个功能。
catalog/product/list.phtml 有以下代码行:
<img src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(135); ?>" width="135" height="135" alt="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" />
所以要使用 watermarik 初始化图像,我们可以这样:
$this->helper('catalog/image')->init($_product, 'small_image')->resize(135)->watermark('yourfile');
我不知道你的编程有多好,但我想你应该可以设置一些 if-else 条件。
【讨论】:
这是不可能的,您需要自定义 Magento 代码。
查看产品的可用库存,并据此更改图像或添加水印。
【讨论】: