我有一个多商店,遇到了一些奇怪问题:在一个商店中,$product-〉isAvailable()对某些产品返回true,但在另一个商店中,$product-〉isAvailable()总是返回null。
在此函数isAvailable()中
$this->getTypeInstance(true)->isSalable($this)
和
Mage::helper('catalog/product')->getSkipSaleableCheck();
都返回null,两个商品属性相同,两个店铺都使用通用的店铺库存配置。
在升级之前我使用的是v.1.4.0.2,我想isAvailable()/isSaleable()的逻辑已经发生了一些变化。我不知道这两个产品的区别,这是一个产品不可用的原因。
//编辑:
经过一些调试后,我发现该方法
isSalable($product = null)
在isAvailable()中由$this调用-〉getTypeInstance(true)-〉isSalable($this)返回0,因为
$this->getProduct($product)->getData('is_salable')
是0。这就引出了一个问题,即哪些属性负责生成的is_saleable属性。
1条答案
按热度按时间2mbi3lxu1#
您可以尝试上面提到的解决方案here
本质上,它涉及到在调用isSaleable()或isAvailable()之前切换到默认商店。