Cari tahu kategori mana yang dimiliki produk

11

Saya membuka produk di backend, tetapi ketika saya beralih ke tab kategori, pohon kategori sepenuhnya diciutkan. Saya harus memperluas semua kategori untuk melihat di mana produk itu berada.

Bagaimana saya bisa dengan cepat melihat (di backend) ke kategori mana produk itu berada?

Alex
sumber
Ini satu-satunya cara default untuk melakukannya melalui backend;) Apakah Anda memiliki akses database?
Kenny
1
Ide pertama saya adalah menjalankan tree.expandAll()di konsol browser tetapi sayangnya itu hanya akan berfungsi untuk Manage Categorieshalaman.
user487772

Jawaban:

11

Tidak ada fungsi inti untuk mengarsipkan ini di backend.

Jika Anda memiliki akses baca basis data untuk menjalankan kueri mentah, Anda dapat menggunakan kueri berikut untuk mendapatkan gambaran umum dari semua kategori yang ditautkan ke produk tertentu:

Opsi 1 => Dapatkan semua kategori produk dengan memasukkan ID entitas produk:

SELECT c3.sku, c2.value
FROM catalog_category_product c1
INNER JOIN catalog_category_entity_varchar c2 ON (c1.category_id = c2.entity_id)
INNER JOIN catalog_product_entity c3 ON (c1.product_id = c3.entity_id)
WHERE c2.attribute_id = (SELECT attribute_id FROM eav_attribute WHERE attribute_code = 'name' AND entity_type_id = 3)
AND c3.entity_id = FILL_IN_PRODUCT_ID_HERE

Opsi 2 => Dapatkan semua kategori produk dengan memasukkan SKU produk:

SELECT c3.sku, c2.value
FROM catalog_category_product c1
INNER JOIN catalog_category_entity_varchar c2 ON (c1.category_id = c2.entity_id)
INNER JOIN catalog_product_entity c3 ON (c1.product_id = c3.entity_id)
WHERE c2.attribute_id = (SELECT attribute_id FROM eav_attribute WHERE attribute_code = 'name' AND entity_type_id = 3)
AND c3.sku = FILL_IN_PRODUCT_SKU_HERE
Kenny
sumber
6

Anda dapat memuat produk dengan ID itu dan kemudian mendapatkan id kategori.

require('app/Mage.php');
umask(0);
Mage::app('admin');
$id = 1; //Your product ID here
$product = Mage::getModel('catalog/product')->load($id);
$categoryIds = $product->getCategoryIds();
echo '<h1>' . $product->getName() . '</h1>';
foreach ($categoryIds as $cid) {
    $category = Mage::getModel('catalog/category')->load($cid);
    echo $category->getName() . '<br />';
}

Diuji dan bekerja.

Anda dapat menempatkan ini dalam file terpisah dan jalankan file itu untuk mendapatkan kategori produk.

EDIT

Tidak ada fungsi inti untuk melihat ini di backend. Saya percaya itu akan memerlukan sedikit modifikasi backend untuk memiliki kategori yang diaktifkan diperluas (mungkin dengan beberapa JS)

Rick Kuipers
sumber
1
Saya lebih mencari solusi backend :-)
Alex
@ Alex Saya pikir setelah membaca kembali pertanyaan Anda: PI percaya itu akan memerlukan sedikit modifikasi backend untuk memiliki kategori yang diaktifkan diperluas (mungkin dengan beberapa JS). AFAIK tidak ada fungsi inti yang melakukan apa yang Anda inginkan.
Rick Kuipers
®Rick: Bukan salahmu - saya edit pertanyaan saya mengandung info g
Alex
2

Kolom kategori yang dapat difilter dan dicari di admin: https://github.com/vuleticd/admin_grid_category_filter

Bersulang!

Zdravko Karanovic
sumber
2
Bisakah Anda menambahkan beberapa komentar untuk jawaban Anda? Posting satu-satunya tautan hanya dapat membantu tetapi tautan tersebut dapat rusak di masa mendatang, jadi memposting beberapa kode yang tetap terlihat akan lebih berguna bagi pengunjung masa depan ke pos
Yaroslav