创建可配置产品时,必须将库存设置为“库存”,然后添加其他具有不同库存的其他产品。
当其他产品库存变为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');
答案 0 :(得分:0)
您确定自己拥有正确的Magento设置吗?
Inventory "Show Out Of Stock" = "No"
Configurable product Manage Stock = "No"
Simple product /Manage Stock = "Yes"
答案 1 :(得分: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行开始,因为您可以看到可配置产品的所有选项是否为空,这意味着所有产品已经售罄而导致它不是显示将其添加到购物车所需的表单字段。
我希望这会有所帮助。 :)
答案 2 :(得分:-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) {
文件中的:
应用/代码/核心/法师/目录/型号/资源/ EAV / Mysql4 /产品/ Collection.php 强> 或在app / code / core / Mage / Catalog / Model / Product / Collection.php中,如果你有Magento 1.7.0.0 +