Saat membangun tambahan ke toko web Magento, saya menemukan beberapa masalah. Dalam pencarian saya untuk membuat kode yang secepat mungkin, saya mendapati diri saya tidak dapat menemukan dua hal.
Kode saya (relevan) adalah sebagai berikut:
$rc = Mage::getResourceSingleton('catalog/product');
$productName = $rc->getAttributeRawValue($productId, 'name', Mage::app()->getStore());
$productPrice = $rc->getAttributeRawValue($productId, 'price', Mage::app()->getStore());
$productImage = $rc->getAttributeRawValue($productId, 'image', Mage::app()->getStore());
$productUrl = $rc->getAttributeRawValue($productId, 'url_key', Mage::app()->getStore());
Dua hal yang saya tidak tahu adalah:
1) Bagaimana cara mengambil URL produk? url_key
tidak selalu memberikan URL yang benar, karena tidak semua toko web menggunakan URL kanonik, atau memiliki kategori dalam URL.
2) Bagaimana saya bisa mendapatkan gambar produk dengan lebar / tinggi yang ditetapkan, bukan gambar penuh? The ->resize()
Fungsi tidak berfungsi dalam hal ini saya pengintaian (karena mengembalikan sebuah URL). Ditambah dengan itu, apakah mungkin untuk mendapatkan Base Image
, Small Image
dan Thumbnail
secara terpisah?
Tujuan utama saya adalah menjaga kode secepat mungkin. Saya hanya memiliki id produk, karena saya mengulangi anak-anak suatu produk. Saya tidak ingin menggunakan ->load()
karena itu membutuhkan lebih banyak waktu pemuatan.
sumber
small_image
. Tampaknya semua gambar kecil diubah ukurannya, dan tidak memilih varian yang diubah ukurannya. Adakah cara mengatasinya? Dan apakah Anda juga punya solusi untuk URL produk?sumber
Coba di bawah ini kode yang disebutkan untuk mendapatkan URL gambar:
ATAU
ATAU
sumber
Anda tidak dapat melakukannya tanpa $ produk / $ variabel produk:
Untuk Url produk:
// Anda tidak dapat menghentikan metode ini dengan menambahkan ___store ke URL, bahkan dengan mengatur _store_to_url ke false
** // Anda tidak dapat menghentikan metode ini dengan menambahkan ___store ke URL, bahkan dengan mengatur _store_to_url ke false // note - lihat bagian "using _ignore_category" di bawah ini untuk bug yang bisa diperdebatkan dengan menggunakan param ini **
Untuk Gambar produk:
Jika Anda ingin URL gambar digunakan dalam tag,
sumber
$product->getUrlPath();
, dengan mendapatkanurl_key
. Jadi itu mungkin tanpa$product
variabel. Itu membuat saya percaya bahwa mendapatkan gambar produk, dan mengubah ukurannya, harus dimungkinkan juga, tanpa memuat seluruh produk. (jadi tidak ada gunanyaMage::getModel('catalog/product')->load($productId);
)Saya ingin menambahkan 1 baris kode ke komentar mpaepper, yang menurut saya merupakan solusi hebat dalam skenario tertentu. Saya menggunakannya dalam satu lingkaran pada halaman di mana saya tidak memiliki objek produk untuk memuat gambar melalui model produk.
Ketika Anda tidak ingin memuat gambar dengan objek produk, Anda bisa menggunakan pendekatan mpaepper exlpains. Jangan lupa untuk menyimpan gambar yang dibuat secara manual saat Anda menggunakan solusi ini. Ketika Anda menyimpan objek gambar itu akan membuat file cache seperti gambar Magento normal juga.
Jadi kode lengkapnya harus:
sumber
Gambar produk dapat diakses dengan cara berikut:
Untuk mengubah ukuran gambar, Anda dapat menambahkan ini:
Untuk mendapatkan url produk:
Di sini $ _products adalah produk itu sendiri dan bukan id produk;
sumber
$_products
variabel, karena itu akan mengharuskan saya untuk memuat produk secara keseluruhan. Dan untuk memuat semua produk yang saya lewati akan menciptakan waktu muat detik, yang terlalu banyak.