Я пытаюсь получить все продукты. Я делаю так:
$objectManager->get('Magento\Catalog\Model\Product')
->getCollection()
->addAttributeToSelect('*');
Но возвращаются только простые продукты.
Получение НЕ ВОЗВРАЩЕННЫХ продуктов по sku работает нормально:
$p = $objectManager->create('\Magento\Catalog\Model\ProductRepository')->get($sku);
Любая идея?
Заранее спасибо.
—
Magento версия 2.2.0
Magento2 имеет концептуальный вызов Factory, это фон для вызова модельного объекта. Поэтому я думаю, что вы должны создать новую Фабрику перед вызовом объектной модели
$objectManager->get('\Magento\Catalog\Model\ProductFactory')->create()
->getCollection()
->addAttributeToSelect('*');
Попробуй это
В вашем файле блока
<?php
namespace Mageplaza\HelloWorld\Block;
class HelloWorld extends \Magento\Framework\View\Element\Template
{
protected $_productCollectionFactory;
public function __construct(
\Magento\Backend\Block\Template\Context $context,
\Magento\Catalog\Model\ResourceModel\Product\CollectionFactory $productCollectionFactory,
array $data = []
)
{
$this->_productCollectionFactory = $productCollectionFactory;
parent::__construct($context, $data);
}
public function getProductCollection()
{
$collection = $this->_productCollectionFactory->create();
$collection->addAttributeToSelect('*');
return $collection;
}
}
?>
и ваш .phtml файл
$productCollection = $block->getProductCollection();
foreach ($productCollection as $product) {
print_r($product->getData());
echo "<br>";
}
это дает сгруппированный и настраиваемый продукт также
это Wikk работа для меня, пожалуйста, попробуйте это
Вы можете попробовать также эту ссылку:
https://www.mageplaza.com/how-get-product-collection-magento-2.html