我正在使用Magento电子商务系统。
当产品缺货时,有没有办法在产品图片上设置“OUT OF STOCK”水印?
提前感谢!
答案 0 :(得分:5)
我想建议一个替代解决方案。可能你可以在图像上方添加一个元素(css z-index),而不是生成和显示带有水印的新图像,这些元素表示"缺货"当产品缺货时。查看我们如何为销售的产品执行此操作(此链接在此帖子发布时有一个产品:http://www.abesmarket.com/store/karmaorganicspa)。 @Showket编写的代码$_product->getStockItem()->getIsInStock()
有助于确定产品是否有库存。如果产品没有库存,我会显示一个位于产品图像顶部的新div。
答案 1 :(得分:2)
是的当然你可以这样做..如果你想用代码做,你可以这样做: -
转到/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";
}
?>
答案 2 :(得分:2)
以下是来自
的小代码片段Mage_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条件。
答案 3 :(得分:0)
不可能,您需要自定义Magento代码。
检查产品的可用库存并更改图像或根据该图标添加水印。