【问题标题】:Magento E-Commerce - Add Out of Stock Watermark for items out of stockMagento 电子商务 - 为缺货的商品添加缺货水印
【发布时间】:2011-11-30 07:27:26
【问题描述】:

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

当产品缺货时,我可以在产品图片上设置“缺货”水印吗?

提前致谢!

【问题讨论】:

    标签: php magento


    【解决方案1】:

    我想提出一个替代解决方案。当产品缺货时,也许您可​​以在图像上方添加一个元素(css z-index),显示“缺货”,而不是生成和显示带有水印的新图像。看看我们是如何为销售的产品做到这一点的(这个链接在发布这篇文章时有一个正在销售的产品:http://www.abesmarket.com/store/karmaorganicspa)。 @Showket 编写的代码$_product->getStockItem()->getIsInStock() 非常适合确定产品是否有货。如果产品没有库存,我会在产品图片上方显示一个新的 div。

    【讨论】:

      【解决方案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";
                  }
      
                  ?>
      

      【讨论】:

        【解决方案3】:

        这是来自

        的小代码sn-ps
        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 条件。

        【讨论】:

          【解决方案4】:

          这是不可能的,您需要自定义 Magento 代码。

          查看产品的可用库存,并据此更改图像或添加水印。

          【讨论】:

          • 亲爱的 Sankar, 是的,我知道需要自定义代码。知道我可以在哪里看吗?我管理着数百种产品,当一件商品缺货时改变它是很疯狂的。任何帮助表示赞赏。谢谢。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-09-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-04-30
          相关资源
          最近更新 更多