Magento E-Commerce - Добавить Нет в наличии Водяной знак для товаров в наличии - PullRequest
1 голос
/ 30 ноября 2011

Я использую систему электронной коммерции Magento.

Могу ли я установить водяной знак «В НАЛИЧИИ» на изображениях товара, когда товара нет в наличии?

спасибо заранее!

Ответы [ 4 ]

5 голосов
/ 30 ноября 2011

Я хотел бы предложить альтернативное решение. Вместо того, чтобы создавать и отображать новое изображение с водяным знаком, возможно, вы можете добавить элемент над изображением (css z-index) с надписью «Нет в наличии», когда товара нет в наличии. Посмотрите, как мы это сделали для продуктов в продаже (по этой ссылке на момент публикации этой статьи был продукт в продаже: http://www.abesmarket.com/store/karmaorganicspa). Код, который @Showket написал $_product->getStockItem()->getIsInStock(), подходит для определения, находится ли продукт в на складе. Если товара нет на складе, я бы отобразил новый элемент div, расположенный поверх изображения товара.

2 голосов
/ 30 ноября 2011

Вот небольшие фрагменты кода из

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.

2 голосов
/ 30 ноября 2011

Да Конечно, вы можете сделать это .. Если вы хотите сделать это с кодом, вы можете сделать так: -

Перейдите к /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";
            }

            ?>
0 голосов
/ 30 ноября 2011

Это невозможно, вам нужно настроить код Magento.

Проверьте наличие товара на складе и измените изображение или поставьте водяной знак в соответствии с этим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...