我想解决一些奇怪的情况。 Magento v1.9.2.4
我只有2个不同的属性集。 A和B.
我想显示B组的库存数量/可用性,但不是 设置A.
为了使事情变得更复杂,我有14个客户群,我只希望其中6个群组看到任何数量/可用性。
这是我到目前为止做的事情:
$customerSession = Mage::getSingleton('customer/session');
if($customerSession->isLoggedIn()){
$groupId = $customerSession->getCustomerGroupId();
$group = Mage::getModel('customer/group')->load($groupId);
if ('custgroup_1' == $group->getCode()){
$qty = (int) Mage::getModel('cataloginventory/stock_item')->loadByProduct($_product)->getQty();
echo 'Quantity Available: ' . $qty;
}
}
上面的代码段会重复5次,同时更改了[if(' custgroup_1' ...]以适应我需要显示的组。这部分工作正常。
我只需要以某种方式指定我只希望显示属性集B的可用性。然后,无论客户组是什么,都不会显示属性集A的数量/可用性。
我尝试过使用产品页面上的广告资源选项。 (禁用库存管理=数量仍然显示|启用库存管理,将数量设置为0并且我的自定义选项消失了。)magento后端内的任何内容似乎都无效。
我是整个Magento / Dev的新手。如果这被认为是一个愚蠢的问题,我很抱歉。
感谢您的帮助!
答案 0 :(得分:0)
所以,在发布这篇文章后,我立即意识到我正在考虑这个问题。
因为任何不在属性集B中的项目没有库存管理,我能够编写一个条件,仅对库存水平大于0的产品启用输出。
以下是可能需要根据客户组显示产品数量的任何人的代码,并隐藏库存管理设置为“否”但设置为“有库存”的任何项目的可用性。< / p>
$customerSession = Mage::getSingleton('customer/session');
if($customerSession->isLoggedIn()){
$groupId = $customerSession->getCustomerGroupId();
$group = Mage::getModel('customer/group')->load($groupId);
if ('custgroup_1' == $group->getCode()){
$__manStock = $_product->getStockItem()->getManageStock();
$__invAmt = (int)Mage::getModel('cataloginventory/stock_item')->loadByProduct($_product)->getQty();
if ($__manStock > 0)
echo $this->__("Available Qty: $__invAmt");
}
}