1

嘿伙计们,我有一个小困境。我正在运行 Magento 版本。1.7.0.2

当您创建可配置产品时,您必须将库存设置为“库存”,然后添加具有不同库存的其他附加产品。

当附加产品库存变为 0 时,主要可配置产品仍处于“库存”状态。

我希望当所有其他产品库存变为 0 时,主要可配置产品库存变成“缺货”。

我正在使用此自定义代码让“缺货”产品始终出现在底部页面。除非可配置产品没有收到“缺货”选项,否则它无法进入底部页面。

$this->getSelect()->joinLeft(array('_inventory_table'=>$this->getTable('cataloginventory/stock_item')),"_inventory_table.product_id = e.entity_id",array('is_in_stock', 'manage_stock'));
$this->addExpressionAttributeToSelect('on_top','(CASE WHEN (((_inventory_table.use_config_manage_stock = 1) AND (_inventory_table.is_in_stock = 1)) OR  ((_inventory_table.use_config_manage_stock = 0) AND (1 - _inventory_table.manage_stock + _inventory_table.is_in_stock >= 1))) THEN 1 ELSE 0 END)',array());
$this->getSelect()->order('on_top DESC');
4

3 回答 3

0

我不知道这是否对你有用,但我认为你可以从文件“app/base/default/template/catalog/product/view.phtml”中的模板本身解决这个问题,代码行显示:

<?php if ($_product->isSaleable() && $this->hasOptions()):?>
    <?php echo $this->getChildChildHtml('container2', '', true, true) ?>
<? else : ?>
enter code here
<?php endif ?>

如果您从基本模板中的原始文件创建它,您可能会从第 100 行开始看到此代码,因为您可以看到可配置产品的所有选项是否为空,这意味着所有产品已经售罄,导致它不显示将其添加到购物车所需的表单字段。

我希望这有帮助。:)

于 2013-08-07T13:31:06.463 回答
0

你确定你有正确的 Magento 设置吗?

Inventory "Show Out Of Stock" = "No"
Configurable product Manage Stock = "No"
Simple product /Manage Stock = "Yes"
于 2013-04-19T15:36:10.127 回答
-1

添加此代码

$this->getSelect()->joinLeft(
                array('_inventory_table'=>$this->getTable('cataloginventory/stock_item')),
                "_inventory_table.product_id = e.entity_id",
                array('is_in_stock', 'manage_stock')
            );
            $this->addExpressionAttributeToSelect('on_top',
            '(CASE WHEN (((_inventory_table.use_config_manage_stock = 1) AND (_inventory_table.is_in_stock = 1)) OR  ((_inventory_table.use_config_manage_stock = 0) AND (1 - _inventory_table.manage_stock + _inventory_table.is_in_stock >= 1))) THEN 1 ELSE 0 END)',
             array());
            $this->getSelect()->order('on_top DESC');

行前:

if ($attribute == 'price' && $storeId != 0) {

在文件中:

app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Product/Collection.php 或 app/code/core/Mage/Catalog/Model/Product/Collection.php 如果你有 Magento 1.7.0.0 +

于 2015-01-26T14:52:52.340 回答