Я намагаюся отримати всі продукти. Я роблю так:
$objectManager->get("MagentoCatalogModelProduct")
->getCollection()
->addAttributeToSelect("*");
Але повертаються лише прості продукти.
Отримати НЕ ВРЕМЕННІ продукти за скупою працює:
$p = $objectManager->create("MagentoCatalogModelProductRepository")->get($sku);
Будь-яка ідея? Заздалегідь спасибі.
- Magento версія 2.2.0
Відповіді:
0 для відповіді № 1Magento2 має заводський виклик концепції, це фон для виклику об'єкта моделі. Тому я думаю, що вам слід створити новий Factory перед тим, як викликати модель об'єкта.
$objectManager->get("MagentoCatalogModelProductFactory")->create()
->getCollection()
->addAttributeToSelect("*");
0 для відповіді № 2
Спробуйте це
У вашому блоковому файлі
<?php
namespace MageplazaHelloWorldBlock;
class HelloWorld extends MagentoFrameworkViewElementTemplate
{
protected $_productCollectionFactory;
public function __construct(
MagentoBackendBlockTemplateContext $context,
MagentoCatalogModelResourceModelProductCollectionFactory $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