马根托.更改“;添加到购物车”;按钮到“;预购“;可配置产品的按钮


Magento. Change "Add to cart" button to "Pre-order" button for configurable products

提前感谢您的帮助(我首先在这里发布了我的问题,但几天都没有回复)。

在Magento,我希望将库存数量设置为0的可配置产品的"添加到购物车"按钮更改为"预购"按钮。

使用本教程,我成功地完成了我想要的东西,但似乎这个解决方案只适用于简单的产品,而不适用于可配置的产品(或者我错过了一些东西)

我看了这篇帖子,有人说有机互联网做的SCP简单配置产品扩展解决了他的问题。我不知道这对他有什么帮助。我在我的网站上安装了这个扩展。似乎并没有将按钮从"添加到购物车"更改为"预购"之类的选项。也许我错过了什么。

有人能帮助我解决这个问题,或者为我指明正确的方向吗?

本教程有一个php条件,用于查找Qty值。问题是,对于可配置的产品,您需要加载关联的简单产品才能获取Qty值。

建议:你试过用isseable吗?只有当产品无法销售时,才会显示"预购"按钮。

<?php if( $_product->isSaleable() ): echo $addtocart; else: echo $preorder; endif; ?>

如果你只是想让所有可配置的产品都有"预购"按钮,而不管库存如何,一个解决方案是修改这个数量条件,只检查它是否是可配置产品。一种方法是改变所有出现的情况:

<?php if($_product->getStockItem()->getQty()>0): echo $addtocart; else: echo $preorder; endif; ?>

到此:

<?php if( $_product->getTypeId() == 'configurable' ): echo $preorder; else: echo $addtocart; endif; ?>

下面是一个加载关联的简单产品的示例,以便获得Qty值。这可能不需要,因为它更复杂。

foreach ($_product->getTypeInstance(true)->getUsedProducts ( null, $_product) as $simple) {
     Mage::getModel('cataloginventory/stock_item')->loadByProduct($simple)->getQty();
 }

在您的pordut/list.phtml中,尝试检查产品类型,如所示

<?php if( $_product->getTypeId() == 'configurable' ): ?>

首先访问app/design/frontend/[your package]/[your theme]/template/controlog/product/view/addtocart.phtml。在那里你可以像这样编码:

<?php if($_product ->getTypeId() == 'configurable'): ?>
//Do your part

所有最好的