3
性能:在所有产品类型的产品列表list.phtml上添加库存库存水平
TL; DR,要求在类别产品列表页面上显示库存的库存水平,同时考虑到性能符合Magento框架的情况,同时减少查询/存储量。 在阅读Vinai Kopp关于预加载以实现可伸缩性的文章之后。 为了降低性能,在类别产品列表页面(list.phtml)上包含库存库存水平且没有额外的查询/负载的最佳方法是什么? 我知道一些方法: afterLoad()似乎可以很好地与media_gallery包含项一起使用,而无需其他查询,但是我没有成功实现与库存相同的方法。 $attributes = $_product->getTypeInstance(true)->getSetAttributes($_product); $media_gallery = $attributes['media_gallery']; $backend = $media_gallery->getBackend(); $backend->afterLoad($_product); 指示SQL以product_id例如键的方式与集合并行收集所需的数据。但是在框架中寻找更多的手段。 目前,我只是stock_item通过以下方式加载对象: $_product->load('stock_item')->getTotalQty(); 哪个可行,但我注意到添加了更多查询以获取集合中所有产品的库存总计。 ... __EAV_LOAD_MODEL__ (Mage_Catalog_Model_Product, id: stock_item, attributes: NULL) __EAV_LOAD_MODEL__ (Mage_Catalog_Model_Product, id: stock_item, attributes: NULL) __EAV_LOAD_MODEL__ (Mage_Catalog_Model_Product, id: stock_item, attributes: NULL) ... 奇怪的是,这有效。魔术发生在Mage_Eav_Model_Entity_Abstract-> load($ object,$ entityId,$ attributes)中。如果$ attributes为空,它将调用loadAllAttribute($ object)。因此$ product-> load('blah')将加载所有缺少的属性,包括'media_gallery'– …