Magento电子商务 - 为缺货商品添加缺货水印

时间:2011-11-30 07:27:26

标签: php magento

我正在使用Magento电子商务系统。

当产品缺货时,有没有办法在产品图片上设置“OUT OF STOCK”水印?

提前感谢!

4 个答案:

答案 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代码。

检查产品的可用库存并更改图像或根据该图标添加水印。