Bagaimana cara kami mendapatkan url ke gambar kecil suatu produk melalui API lainnya.
/V1/products/{sku}/media
akan memberi kami url relatif seperti "/m/b/mb01-blue-0.jpg"
dan url gambar akan menjadi baseurl/catalog/product/m/b/mb01-blue-0.jpg
Ini berfungsi dengan baik. Tetapi bagaimana kita mendapatkan thumbnail yang biasanya berada di folder cache.
magento2
product-images
rest
thumbnail
Mohammed Shameem
sumber
sumber
Jawaban:
Jika Anda memerlukan jalur lengkap gambar mini dengan sistem cache Magento 2 melalui API, Anda dapat membuat API khusus berdasarkan kelas ProductRepository asli.
Buat modul baru. (dijelaskan dalam posting lain)
Buat file etc / webapi.xml :
Buat file etc / di.xml :
Buat antarmuka Anda Api \ ProductRepositoryInterface.php :
Buat model Anda Model \ ProductRepository.php :
Mengakses
Pergi ke
/rest/V1/custom/products/{sku}
Anda harus mengambil gambar mini dengan URL frontend gambar di-cache:
Komentar:
Parameter ketiga dari fungsi startEnvironmentEmulation digunakan untuk memaksa penggunaan area frontend jika Anda sudah menggunakan storeId yang sama. (berguna untuk area API)
Saya tidak menguji API khusus ini, Anda dapat mengadaptasi kode tetapi logikanya benar tetapi saya sudah menguji bagian tersebut untuk mengambil URL gambar di API khusus lainnya.
Solusi ini menghindarkan Anda dari kesalahan seperti ini:
sumber
\Magento\Catalog\Api\ProductRepositoryInterfaceFactory
bukan\Magento\Catalog\Model\ProductFactory
, karena Anda dapat menghubungiget()
diproductRepositry
objek dengan SKU langsung. Setidaknya, itulah yang saya gunakan sekarang.vendor/magento/module-catalog/Model/ProductRepository.php:258
Alasan mengapa Magento tidak menyediakan fungsionalitas ini di luar kotak adalah sebagai berikut:
Sebagai solusi jangka panjang - API Kueri harus menjawab pertanyaan ini, karena mereka akan memberikan kemampuan untuk bidang yang hanya dapat dibaca dan dikomputasi. Sebagai solusi yang dapat kami sediakan untuk waktu terdekat komunitas - kami dapat mengimplementasikan / memperkenalkan layanan penyelesai URL khusus yang akan mengembalikan URL untuk jenis entitas tertentu (seperti Produk, Kategori, Gambar dll.)
Untuk alasan yang sama, kami tidak menyediakan URL Produk sebagai bagian dari ProductInterface
Berikut tanggapan saya yang ditujukan untuk masalah ini (URL Produk): https://community.magento.com/t5/Programming-Questions/Retrieving-the-product-URL-for-the-current-store-from-a/mp / 55387 / highlight / true # M1400
sumber
Seharusnya dimungkinkan dengan url berikut:
/rest/V1/products/{sku}
Ini akan mengembalikan produk dan harus ada simpul untuk custom_attributes yang berisi tautan thumbnail
sumber