私はいくつかの奇妙な問題を抱えたマルチストアを持っています: あるショップでは $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() のロジックが少し変更されたと思います。これら 2 つの製品の違いがわかりません。これが、一方の製品が利用できない理由です。
//編集 :
いくつかのデバッグの後、メソッドが
isSalable($product = null)
isAvailable() 内の $this->getTypeInstance(true)->isSalable($this) によって呼び出されると、0 が返されます。
$this->getProduct($product)->getData('is_salable')
これは、この生成された is_saleable 属性をどの属性が担当しているかという問題につながります。