Отметьте сейчас @SiarheyUchukhlebau ответ как правильный ....
P0lT10n
Ответы:
22
Вы должны использовать Magento\Catalog\Model\ProductRepositoryили в Magento\Catalog\Model\ResourceModel\Product\Collectionсоответствии с вашими потребностями. Вы можете использовать оба метода для получения экземпляров продукта со всеми данными.
привет @ siarhey, я получаю пустой результат с твоим кодом. Есть ли у вас какие-либо советы по этому поводу? Может ли это быть из-за того, что я пытаюсь получить список из задачи cron?
Лоренцо С
@LorenzoS Привет, какой пример вы используете 1 или 2? Существует ли какой-либо продукт при удалении всех фильтров / условий?
Сергей Учухлебау
Как получить эту вкладку «Переменные» с деревом объектов на скриншоте?
отличный ответ, @SiarheyUchukhlebau, но что вы подразумеваете под Если вам нужны только данные о продукте, используйте первый класс. Если вам нужно получить экземпляры продукта - используйте второй класс.
Yehia A.Salam
2
Использование вызова REST API:
https://{host}/rest/V1/products/?searchCriteria=
Получает все продукты. «searchCriteria» является обязательным параметром, но его можно оставить пустым, как указано выше.
Ответ с наибольшим количеством голосов работает, но я хотел бы упомянуть, что здесь непосредственное внедрение реализации репозитория продукта приведет к нарушению принципа контракта на обслуживание, и это то, что Magento хочет, чтобы разработчики исправили. Вы должны внедрить \Magento\Catalog\Api\ProductRepositoryInterface $productRepositoryвместо его реализации, которая есть \Magento\Catalog\Model\ProductRepository $productRepository. Таким образом, у вас будет место для будущего обновления способности. Суть в том, чтобы максимально использовать контракты на обслуживание.
Ответы:
Вы должны использовать
Magento\Catalog\Model\ProductRepository
или вMagento\Catalog\Model\ResourceModel\Product\Collection
соответствии с вашими потребностями. Вы можете использовать оба метода для получения экземпляров продукта со всеми данными.Пример 1 (Репозиторий):
Результат:
Пример 2 (Сборник):
Результат:
источник
Использование вызова REST API:
Получает все продукты. «searchCriteria» является обязательным параметром, но его можно оставить пустым, как указано выше.
источник
Ответ с наибольшим количеством голосов работает, но я хотел бы упомянуть, что здесь непосредственное внедрение реализации репозитория продукта приведет к нарушению принципа контракта на обслуживание, и это то, что Magento хочет, чтобы разработчики исправили. Вы должны внедрить
\Magento\Catalog\Api\ProductRepositoryInterface $productRepository
вместо его реализации, которая есть\Magento\Catalog\Model\ProductRepository $productRepository
. Таким образом, у вас будет место для будущего обновления способности. Суть в том, чтобы максимально использовать контракты на обслуживание.источник
Вы можете сделать это через запрос API. Посмотрите на API по умолчанию м2
думаю, что лучше снимать каталоги ProductRepositoryV1
источник