注:PHPコードを使用して製品を編集している場合は、管理者でインデックスを再作成し、以下のように表示されない理由を考えて時間を節約してください...
私はis_salable、製品にどのように設定されているかを理解しようとしているので、私の製品が現在表示されている理由を理解しようとしています。
私が見つけることができるコードには、それを設定する場所が1つしかありません:
$salable = $this->isAvailable();しかし、私は方法や場所、この私が続く場合など、から取得して動作することはできませんisAvailable....それだけで戻って周りにループに思えます
/app/code/core/Mage/Catalog/Model/Product.php
    public function isSalable()
    {
        Mage::dispatchEvent('catalog_product_is_salable_before', array(
            'product'   => $this
        ));
        $salable = $this->isAvailable();
    $object = new Varien_Object(array(
        'product'    => $this,
        'is_salable' => $salable
    ));
    Mage::dispatchEvent('catalog_product_is_salable_after', array(
        'product'   => $this,
        'salable'   => $object
    ));
    return $object->getIsSalable();
}
ここから$ this-> isAvailable()に続いて、数行進みます:
**public function isAvailable()
{ 
    return $this->getTypeInstance(true)->isSalable($this);
}**
次に、app / code / core / Mage / Catalog / Model / Product / Type / Configurable.phpのisSalableを呼び出します
public function isSalable($product = null)
{
    $salable = parent::isSalable($product);
    if ($salable !== false) {
        $salable = false;
        if (!is_null($product)) {
            $this->setStoreFilter($product->getStoreId(), $product);
        }
        foreach ($this->getUsedProducts(null, $product) as $child) {
            if ($child->isSalable()) {
                $salable = true;
                break;
            }
        }
    }
    return $salable;
}親を呼び出します:/app/code/core/Mage/Catalog/Model/Product/Type/Abstract.php's isSalable:
public function isSalable($product = null)
{
    $salable = $this->getProduct($product)->getStatus() == Mage_Catalog_Model_Product_Status::STATUS_ENABLED;
    if ($salable && $this->getProduct($product)->hasData('is_salable')) {
        $salable = $this->getProduct($product)->getData('is_salable');
    }
    elseif ($salable && $this->isComposite()) {
        $salable = null;
    }
    return (boolean) (int) $salable;
}is_saleable値でhas / get dataを呼び出すだけですか?!?私はそれを正しく追跡しましたか?この価値はどこから来たのですか?
is_salableのインストールで再帰grepを発行しました。これは設定されている行を表示するはずですが、すぐには表示されません。
grep -r is_salable *
app/code/core/Mage/CatalogInventory/Model/Stock/Status.php:            $object = new Varien_Object(array('is_in_stock' => $product->getData('is_salable')));
app/code/core/Mage/XmlConnect/Block/Wishlist.php:                $itemXmlObj->addChild('is_salable', (int)$item->getProduct()->isSalable());
app/code/core/Mage/XmlConnect/Block/Catalog/Product.php:            $item->addChild('is_salable', (int)$product->isSalable());
app/code/core/Mage/XmlConnect/Block/Cart/Crosssell.php:                $itemXmlObj->addChild('is_salable', 0);
app/code/core/Mage/XmlConnect/Block/Cart/Crosssell.php:                $itemXmlObj->addChild('is_salable', (int)$product->isSalable());
app/code/core/Mage/Catalog/Model/Product.php:        Mage::dispatchEvent('catalog_product_is_salable_before', array(
app/code/core/Mage/Catalog/Model/Product.php:            'is_salable' => $salable
app/code/core/Mage/Catalog/Model/Product.php:        Mage::dispatchEvent('catalog_product_is_salable_after', array(
app/code/core/Mage/Catalog/Model/Product.php:        if ($this->hasData('is_salable')) {
app/code/core/Mage/Catalog/Model/Product.php:            return $this->getData('is_salable');
app/code/core/Mage/Catalog/Model/Product/Type/Abstract.php:        if ($salable && $this->getProduct($product)->hasData('is_salable')) {
app/code/core/Mage/Catalog/Model/Product/Type/Abstract.php:            $salable = $this->getProduct($product)->getData('is_salable');見つかりました:
grep -r setIsSalable *
app/code/core/Mage/CatalogInventory/Model/Stock/Status.php:        $product->setIsSalable($stockStatus);
app/code/core/Mage/CatalogInventory/Model/Stock/Status.php:                    $product->setIsSalable($status);setIsSalableだけでなく、探すことを考えたり知らなかったりしたのはsetIsSalableでした。