我正在Magento主题的(个人)产品页面上显示库存情况,有些事情我并不完全了解。 我看到模板中使用了两种方法来检查产品是否可用于销售: Mage_Catalog_Model_Product::isAvailable() Mage_Catalog_Model_Product::isSaleable() 我自己的发现: 我看到isSalable() (它又被isSaleable() )调用)调用isAvailable()但也调度两个事件( catalog_product_is_salable_before和catalog_product_is_salable_after )。 在前面我已经注意到,在Magento的基本模板isAvailable()是用来决定是否显示产品为“有货”或“缺货”; isSaleable()用于决定是否显示“添加到购物车”button。 在后端我注意到,当库存量变为零并且不允许延期交货时,产品的库存可用性就会“缺货”。 当库存量变为零并且允许延期交货时,产品的库存量a保持不变。 题: “库存可用性”和“库存数量”这些属性显然是相互关联的,并且还提到了PHP方法。 我想知道: PHP方法isAvailable()和isSaleable()之间的语义差异是什么,以及为什么我会使用另一个; 我现在还不知道他们与这些属性和Magento的行为之间的关系。 谢谢。 编辑: 我已经尝试了产品的库存数量(-1,0,1),库存可用性(进/出)和缺货(开/关)的每个相关组合,结果如下: St.Qu BckOrd St.Av isSalable()isSaleable()isAvailable() -1 0 0 0 0 0 -1 0 1不适用不适用不适用 -1 1 0 0 0 0 -1 1 1 1 1 1 0 0 0 0 0 0 0 0 […]