Это мой наблюдатель:
public function execute(\Magento\Framework\Event\Observer $observer)
{
$orderIds = $observer->getEvent()->getOrderIds();
$order = $this->_orderRepositoryInterface->get($orderIds[0]);
$items =$order->getAllVisibleItems();
$productQuantity = array();
$productPrice = array();
$productName = array();
$productIds = array();
foreach($items as $item) {
$productIds[]= $item->getProductId();
$productName[]= $item->getSku();
$productPrice[] = $item->getPrice();
$productQuantity[]= floor($item->getQtyOrdered());
}
}
Как я могу получить изображение товара и URL товара от товара?
magento2
product
event-observer
product-images
Рамкишан Сутар
источник
источник
Ответы:
Этот способ, возможно, не лучший способ получить изображение продукта.
Внедрить
\Magento\Catalog\Api\ProductRepositoryInterfaceFactory
в наш конструктор.Мы можем получить изображение:
источник
pub/media/catalog/product
Если вы хотите опубликованный URL-адрес внешнего кэша / изображения для определенного представления магазина (как я сделал), это работает для меня:
Затем везде, где вам нужно получить URL-адрес внешнего интерфейса изображения:
Кроме того, вы можете выбрать другие типы изображений
product_thumbnail_image
: см.magento/theme-frontend-luma/etc/view.xml
Список доступных изображений продуктов или создайте свой собственный вview.xml
файле.источник
Если вам нужно вернуть URL продукта, он должен выглядеть следующим образом:
источник
Я так и сделал. это довольно эффективно и чисто:
1) Сначала вам нужно ввести следующие классы:
2) Затем создайте метод getImageUrl с кодом ниже:
Примечание. Код «appEmulation» необходим только при выполнении этого вызова от администратора или для API . В противном случае вы получите ошибку ниже (или аналогичную):
3) Вызвать getImageUrl, передавая объект продукта и тип изображения, которое вы хотите (на основе вашего файла view.xml )
источник
Для получения пользовательского URL изображения я использовал этот код. Поэтому, если изображение не выходит, оно загрузит изображение темы по умолчанию.
источник