Pergunta

When I set up a product in stock "-1" the availability is not displayed, the product always displays "In Stock".

Is it possible to add a condition for products in stock "-1" to display the "Availability" custom message set in product ? (and keep In Stock/Out of Stock)

stock setup

availability

file: /app/design/frontend/default/themeXXXX/template/catalog/product/view.phtml

            <?php if ($_product->getTypeId() == "simple"): ?>
                <?php if ($this->displayProductStockStatus()): ?>
                    <?php if ($_product->isAvailable()): ?>
                        <p class="availability in-stock"><?php echo $this->__('Availability:') ?> <span style="color:#74b436"><?php echo $this->__('In stock') ?></span></p>
                    <?php else: ?>
                        <p class="availability out-of-stock"><?php echo $this->__('Availability:') ?> <span><?php echo $this->__('Out of stock') ?></span></p>
                    <?php endif; ?>
Foi útil?

Solução 2

This method with an atribute works

            <?php if ($_product->getTypeId() == "simple"): ?>
                <?php if ($this->displayProductStockStatus()): ?>
                    <?php if ($_product->isAvailable()): ?>
                        <?php $stock = Mage::getModel('cataloginventory/stock_item')->loadByProduct($_product->getId()); ?>
                        <?php if($stock->getQty()==-1): ?>
                            <?php if($_product->getDispo()) : ?>
                                <p class="availability in-stock"><?php echo $this->__('Availability:') ?> <span style='color: #FF0000;'><?php echo $_product->getDispo(); ?></span></p>
                            <?php endif; ?>
                        <?php else : ?>
                                <p class="availability in-stock"><?php echo $this->__('Availability:') ?> <span style="color:#74b436"><?php echo $this->__('In stock') ?></span></p>    
                        <?php endif; ?>
                   <?php else: ?>
                        <p class="availability out-of-stock"><?php echo $this->__('Availability:') ?> <span><?php echo $this->__('Out of stock') ?></span></p>
                    <?php endif; ?>
                <?php endif; ?> 

Outras dicas

Try this, It's not tested but it should work

<?php if ($_product->getTypeId() == "simple"): ?>
    <?php if ($this->displayProductStockStatus()): ?>
        <?php if ($_product->isAvailable() || $_product->getQty() == "-1" ): ?>
            <p class="availability in-stock"><?php echo $this->__('Availability:') ?> <span style="color:#74b436"><?php echo $this->__('In stock') ?></span></p>
        <?php else: ?>
            <p class="availability out-of-stock"><?php echo $this->__('Availability:') ?> <span><?php echo $this->__('Out of stock') ?></span></p>
        <?php endif; ?>
    <?php endif; ?>
<?php endif; ?>

Update:

<?php if ($_product->getTypeId() == "simple"): ?>
    <?php if ($this->displayProductStockStatus()): ?>
        <?php if ($_product->isAvailable() || $_product->getQty() == "-1" ): ?>
            <p class="availability in-stock"><?php echo $this->__('Availability:') ?> <span style="color:#74b436"><?php echo $_product->getAvailability(); ?></span></p>
        <?php else: ?>
            <p class="availability out-of-stock"><?php echo $this->__('Availability:') ?> <span><?php echo $this->__('Out of stock') ?></span></p>
        <?php endif; ?>
    <?php endif; ?>
<?php endif; ?>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a magento.stackexchange
scroll top