Questions tagged «product-collection»

与Magento产品系列有关的问题。

3
在产品集中加载媒体图像的更快方法
TL; DR:如何在不加载整个产品的情况下加载产品图像/图库? 我想将图像加载到产品上。我在.phtml中做什么 $_popularCollection = $this->getPopularCollection(); foreach ($_popularCollection as $_product): // the rest $mediaGallery = $_product->getMediaGalleryImages(); endforeach; //the rest 我在Block课上做什么: public function getPopularCollection() { // http://magento.stackexchange.com/q/5838/3089 // no category if ( is_null( $this->getCategoryId() ) ) return false; /** @var Mage_Catalog_Model_Category $category */ $category = Mage::getModel('catalog/category')->load( (int)$this->getCategoryId() ); /** @var Mage_Catalog_Model_Resource_Product_Collection …

6
如何从产品系列中获取第一项
在类别view.phtml上,如果我获得类别,然后获得产品集合,如何从分配给$ _product的集合中获得第一个产品以用于代码中?这是我所拥有的: $_category = $this->getCurrentCategory(); $_collection = $_category->getProductCollection(); $_product = $_resource = $_product->getResource(); 我尝试使用foreach,但始终出现错误。

7
从类别ID获取产品集合
我正在尝试从类别ID获取产品集合。我尝试过的几件事在块中: $category = Mage::getModel('catalog/category')->load(123) ->getProductCollection(); 和 $category = Mage::getModel('catalog/category')->load(123); $products = $category->getProductCollection()->addCategoryFilter($category) ->addAttributeToFilter('type_id', 'simple') ->addAttributeToSelect('*'); 也尝试只是从phtml做到这一点 $oCatId = Mage::getModel('catalog/category')->load(769); $products->addCategoryFilter($oCatId); 这些都不起作用,但是我也没有看到任何错误。我看到了另一个似乎是相同问题的帖子:Magento-从特定类别获取产品,但是该方法对我也不起作用。谢谢你的帮助!

4
Magento 2-通过list.phtml渲染自定义产品集合
类别页面(前端)的产品网格是通过catalog_category_view.xml中的布局呈现的。 可以说我有一个自定义产品集合(通过 ProductRepositoryInterface::getList($searchCriteria) method 在自定义块类中并希望呈现此集合。呈现的结果应在前端显示为产品网格(就像任何类别页面一样)。 如何才能做到这一点 ? 通过查看catalog_category_view.xml有两条重要的线,它们负责呈现产品集合: <block class="Magento\Catalog\Block\Category\View" name="category.products" template="Magento_Catalog::category/products.phtml"> <block class="Magento\Catalog\Block\Product\ListProduct" name="category.products.list" as="product_list" template="Magento_Catalog::product/list.phtml"> 如何为这些模板文件提供自定义产品集合,以便它们呈现我的集合? 如果我错了,请纠正我。 这是我的代码块的样子: <?php namespace Mod\Mod1\Block; use Magento\Framework\View\Element\Template; class Main extends Template { protected $_filterBuilder; protected $_filterGroupArray; protected $_filterGroupBuilder; protected $_searchCriteriaBuilder; protected $_productRepository; protected $_productFactory; protected $_list; public function __construct( \Magento\Framework\View\Element\Template\Context $context, \Magento\Catalog\Api\ProductRepositoryInterface …

1
Magento 2:对订单排序并限制产品集合
我需要按ID顺序DESC对产品集合进行排序,并将限制添加到产品集合中。这是我的代码: $objectManager = \Magento\Framework\App\ObjectManager::getInstance(); $productCollection = $objectManager->create('Magento\Catalog\Model\ResourceModel\Product\CollectionFactory'); $collection = $productCollection->create() ->addAttributeToSelect('*') ->load();



4
如何过滤不在类别中的产品?
这是我的代码: $catIds = array(7,8,9); $collection = Mage::getModel('catalog/product')->getCollection() ->addAttributeToSelect("*"); ->addAttributeToFilter('category_ids', array('nin' => $catIds)); 我想获取所有不在类别ID列表中的产品,但是我的代码未提供预期的结果。请给我指路,谢谢。

2
Magento 2:按多个类别过滤产品集合(Magento 2.1)
我正在使用Magento 2.1.0,目前在过滤具有多个类别的产品集合时遇到困难。我已经使用了多种方法来使其工作,但是没有成功。 假设: $catalog_ids = [618, 619, 620]; 返回NULL $productCollection = $this->productCollectionFactory->create() ->addAttributeToSelect('*') ->addCategoriesFilter(array('in' => $catalog_ids)); 返回异常:无效的属性名称:category_id $productCollection = $this->productCollectionFactory->create() ->addAttributeToSelect('*') ->addAttributeToFilter('category_id', array( 'finset' => $catalog_ids )); 返回语法错误或访问冲突 $productCollection = $this->productCollectionFactory->create() ->addAttributeToSelect('*') ->addAttributeToFilter('category_ids', array( 'finset' => $catalog_ids )); 关于如何进行这项工作或将某些内容链接到这项工作的任何建议?

2
按子产品属性过滤产品集合
我有分配给子产品的2属性之类的情况 1)person_height_from和2)person_height_to具有DropDown类型属性 仅在子产品中分配,而在母产品中不分配, 我想使用此属性过滤类别页面中的产品集合 喜欢 length = 175 $collection->addAttributeToFilter('person_height_from', array('lteq' => $length)); $collection->addAttributeToFilter('person_height_to', array('gteq' => $length)); 这是否可能只获得类别产品中子产品分配高于值的那些父产品 您的帮助将不胜感激

2
产品收集问题-错误的价格数据或未显示缺货商品
我正在根据当前类别检索产品集合。我需要这个集合来包含进货和缺货产品,还需要正确显示定价数据。 我的商店配置为将产品定价存储为含税价格,并在商店正面以包含价格和非专有价格显示价格。 获取集合的代码如下: $category = Mage::registry('current_category'); $_productCollection = Mage::getModel('catalog/product')->getCollection() ->addCategoryFilter($category) ->addAttributeToSelect(['sku', 'name', 'price']) ->addAttributeToFilter('status', 1) ->addAttributeToSort('jump_number', Varien_Data_Collection::SORT_ORDER_ASC); 上面的问题是,使用该getPriceHtml()方法加载价格块时,包含价和排除价都显示为包含价。 经过一番研究,我发现向addFinalPrice()收藏夹中添加一种方法可以使我获得预期的价格-正确的排他价和正确的包含价。 但是,如果包含该addFinalPrice()方法,则我的收藏不再包含缺货的产品。 有没有一种方法可以返回正确的定价数据,并让集合包含可销售和缺货的产品?

4
如何获取缺货的产品集合-与addInStockFilterToCollection()相反?
我需要在两个列表中显示类别的产品-一个用于库存商品,另一个用于缺货商品。 我在用着 Mage::getSingleton('cataloginventory/stock')->addInStockFilterToCollection() 过滤我的库存商品的产品集合,但是似乎没有等效的方法来过滤缺货的商品-我研究了Mage_CatalogInventory_Model_Stock模型,定义了上述方法。 我已经看到了以下示例,该示例用于检索缺货的产品: $collection->joinField( 'is_in_stock', 'cataloginventory/stock_item', 'is_in_stock', 'product_id=entity_id', '{{table}}.stock_id=1', 'left' ) ->addAttributeToFilter('is_in_stock', array('eq' => 0)); ...但是可以肯定的是,这不仅是实现这一目标的最佳方法,还是最佳方法?

4
加载简单产品集合(有库存和无库存)
将可配置产品的所有“子”产品(包括缺货)加载到集合中时出现问题。 像这样加载产品: $simpleCollection = $configurable->getUsedProductCollection() ->addAttributeToSelect('*') ->addFilterByRequiredOptions(); foreach ($simpleCollection as $simple) { //$simple->getName(); } 会忽略缺货的子产品,这可能是因为未加入价格表的子产品。 有没有加载所有子ID的另一个选项getChildrenIds然后加载每个简单的产品负载?

1
在多选属性上具有FIND_IN_SET的集合,但有些只有一个值
我正在建立一个产品集合,它将从multiselect属性中找到结果。 (将finset添加到集合中的相关代码-调整为显示真实ID值) $attribute = Mage::getModel('eav/config')->getAttribute('catalog_product', 'measurement'); $value = array('finset' => array('237', '236', '235', '234', '233',)); $collection->addAttributeToFilter($attribute, $value); 产生的sql(添加了可见性过滤器)是这样的: SELECT DISTINCT e . *, at_measurement.value AS measurement, at_visibility.value AS visibility FROM catalog_product_entity AS e INNER JOIN catalog_product_entity_varchar AS at_measurement ON (at_measurement.entity_id = e.entity_id) AND (at_measurement.attribute_id = '983') AND (at_measurement.store_id = 0) …

3
强制产品收集使用EAV代替平板
在Magento 2中,如何临时禁用平面目录?我有一个与前端商店关联的产品集合,并希望通过EAV表加载它。 我查看了集合如何确定是否应使用平面表,但没有找到将设置注入到任何地方的方法。 在Magento 1中,我将更改“平面目录已启用”的已加载配置值: Mage::app()->getStore($storeId)->setConfig('catalog/frontend/flat_catalog_product', 0); 我还需要这样诉诸于全球状态吗?如果是这样,怎么办?还是有一种更优雅的方式?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.