当前位置: 首页 > 面试题库 >

Magento-仅加载可配置产品

阎晋
2023-03-14
问题内容

我有以下代码:

$_productCollection = $this->getLoadedProductCollection();

foreach ($_productCollection as $_product)
{
  if ($_product->_data['type_id'] == 'configurable')
  {
    ...
  } 
}

尽管它可以完成预期的工作,但却大大减慢了页面加载时间。是否可以仅加载可配置产品并删除“可配置”检查?该商店有12000种产品,其中大约700种是可配置的,其余的是儿童简单产品。

我发现以下代码返回了所有可配置产品。我只需要当前类别中的产品:

$collectionConfigurable = Mage::getResourceModel('catalog/product_collection')
                ->addAttributeToFilter('type_id', array('eq' => 'configurable'));

问题答案:

问题getLoadedProductCollection()在于它已经被加载-
产品的数据已经从数据库中检索到。仅使用当前类别的产品集合也不足够,这将忽略“图层”(属性过滤器)。诀窍是先从列表中删除加载的产品。

// First make a copy, otherwise the rest of the page might be affected!
$_productCollection = clone $this->getLoadedProductCollection();
// Unset the current products and filter before loading the next.
$_productCollection->clear()
                   ->addAttributeToFilter('type_id', 'configurable')
                   ->load();

print_r($_productCollection)
也有问题,您不仅要输出产品,而且要输出资源的所有详细信息,即数据库连接,缓存的值以及产品的单个资源,等等。

在这种情况下,我认为您会更满意:

print_r($_productCollection->toArray())


 类似资料:
  • 问题内容: 我要实现的目标:单击产品链接/图像(至少在某些区域)以打开一个弹出窗口,其中包含完整的产品信息(基本上是产品查看页面的所有内容)。 到目前为止,我做了/尝试过的是: 在ajax php代码之外创建了所有东西(模块,链接,模板,重写) 创建了ajax控制器(可以通过类似于的链接进行访问)。 遵循各种教程(例如this或this)-有助于我走到这一步。但是我不想加载我的自定义块,我想要默认

  • 信用卡付款时不向客户发送采购订单或发票。当通过paypal transaction进行支付时,显示错误信息“the transaction was Decreded by paypal Gateway”。

  • void config_load(string file [, string section]) This loads config file data and assigns it to the template. This works identical to the template config_load function. 加载配置文件,并将其中的数据传送到模板中,它的功能和config

  • 问题内容: 刚完成在Linux服务器上安装Magento。 当我转到Magento“管理面板”时,我可以在页面顶部看到以下消息。 您的Web服务器配置不正确。结果,可以从外部访问带有敏感信息的配置文件。请联系您的托管服务提供商。 此错误消息最可能的原因是什么? 谢谢, 约翰·高奇 问题答案: Magento在各个目录中使用.htaccess文件来拒绝对目录树的访问。您会在应用程序,媒体,var和M

  • 使用spring配置文件,我们可以根据注释加载特定的bean。是否可以根据环境加载特定的配置类。实际上,config类是用特定的注释(如)注释的,它总是被加载。并要求可选地加载它。 谢谢