Pada dasarnya, saya telah membuat kategori 'Produk yang Dijual', yang saya ingin secara otomatis memuat semua produk dalam katalog saya yang telah menerapkan Harga Khusus untuknya (melalui Katalog> Kelola Produk). Saya ingin halaman mempertahankan navigasi berlapis dan kemampuan menyortir yang berisi halaman Kategori Magento standar.
Sepertinya ini adalah sesuatu yang akan berharga bagi sebagian besar pengguna Magento, dan saya terkejut itu tidak dimasukkan sebagai bagian dari fungsionalitas inti.
Saya telah mencoba lebih dari selusin jawaban Stack Exchange, posting blog, dan forum, dan sejauh ini belum ada yang berhasil. Adakah yang punya solusi terprogram untuk ini?
=== EDIT ===
Berdasarkan kritik @ pspahn dalam komentar di bawah, saya telah memutuskan untuk mengejar metode alternatif untuk mencapai fungsi serupa. Dengan itu, jika Anda tertarik untuk mengejar baris ini, @ sander-mangel menjelaskan metode yang tampaknya sepenuhnya layak.
sumber
Jawaban:
Cara termudah untuk melakukan ini adalah dengan membuat ekstensi kustom yang berfungsi dengan Pengamat dan Cronjob.
Buat kategori untuk produk penjualan. Dengan cara ini Anda dapat menggunakan fungsi Magento normal di frontend seperti navigasi berlapis dll.
Untuk mendapatkan produk dalam kategori ini secara otomatis kami akan menggunakan pengamat dan cronjob. Pengamat akan mengamati
catalog_product_save_after
peristiwa yang dipicu ketika suatu produk disimpan di backend. Ketika ini terjadi, Anda dapat memeriksaspecial_price
,special_price_from
tanggal danspecial_date_to
tanggal untuk menentukan apakah Anda perlu memasukkan produk ke dalam kategori penjualan atau menghapusnya dari sana.Cronjob ada untuk kencan spesial dari dan ke tanggal. Setiap malam setelah tengah malam, pertama-tama kosongkan kategori penjualan semua produk. Kemudian gunakan koleksi untuk mengambil semua produk yang memiliki harga khusus dan termasuk dalam harga khusus dari dan hingga saat ini. Jika demikian pindahkan mereka ke kategori penjualan ini.
sumber
Solusi yang ditawarkan oleh @SanderMangel adalah yang terbaik. Saya dapat membantu mengembangkan ini dengan beberapa kode, yang saat ini saya gunakan dalam modul saya Otomatis / Produk Kategori Dinamis - yang memiliki kemampuan untuk melakukan aturan Kategori produk pada khusus
Kode menyesuaikan kumpulan produk standar untuk mendapatkan semua produk dengan harga khusus yang ditetapkan, pada hari kode berjalan. Anda dapat menggunakan ini di cron untuk mengisi kembali kategori pada pukul 00:00, dan memastikan mereka tetap diperbarui.
Perhatikan bahwa kode diekstraksi dari modul yang lebih besar, jadi saya telah memadatkan bagian yang relevan di sini untuk Anda. Mungkin ada satu atau dua variabel yang tidak terwakili dalam ekstrak ini, tetapi mereka akan mudah untuk menyimpulkan, atau hanya bertanya :)
Objek $ kategori adalah kategori aktual yang berisi produk. Kode di bawah ini juga akan memungkinkan Anda untuk menentukan diskon dalam nilai% juga :)
Sekarang, yang perlu diperhatikan adalah bahwa koleksi tidak akan mengembalikan produk, karena berisi tautan ke katalog normal <-> tabel tautan produk. Karena Anda tidak tertarik dengan produk tertaut saat ini, Anda perlu menghapus relasi tabel yang keluar dari koleksi.
Saya menggunakan kode berikut untuk menyelesaikannya:
sebagai bonus tambahan, Anda dapat menggunakan teknik yang sama dalam menyesuaikan koleksi produk katalog, dan menemukan produk yang berada dalam mode khusus karena aturan katalog:
Setelah Anda memiliki koleksi yang berfungsi, yang perlu Anda lakukan adalah mendapatkan semua id dari koleksi, membalikkan array, dan menggunakan
$category->setPostedProducts($products);
dan $ kategori-> save () l; untuk menyelesaikan pembaruan.Untuk kelengkapan, berikut adalah cron harian saya yang membuat kategori dinamis tetap mutakhir. (Sekali lagi, ini mengacu pada metode yang tidak termasuk di sini, tapi saya yakin itu akan membuat Anda ke arah yang benar
Selamat bersenang-senang :)
ref: http://www.proxiblue.com.au/magento-dynamic-category-products.html
sumber
Ini adalah koleksi yang akan memberi Anda resultset dari semua produk harga khusus dalam katalog Anda yang dapat Anda tampilkan dalam satu halaman
Ada beberapa cara Anda dapat melakukan ini, baik membuat modul baru yang memiliki controller sendiri, blok dan model yang sangat mirip dengan modul kategori Mage atau Anda menimpa modul kategori Mage untuk hanya menjalankan koleksi di atas ketika kategori khusus dipilih oleh pelanggan. Ini dapat dengan mudah dikonfigurasikan dalam sistem -> konfigurasi modul Anda.
Jika Anda dapat menghabiskan beberapa pound maka saya akan merekomendasikan ekstensi berikut pada koneksi Magento
Untuk Magento 1 -:
http://www.magentocommerce.com/magento-connect/dynamic-sale-category.html ( http://www.scommerce-mage.co.uk/magento-dynamic-sale-category.html )
Untuk Magento 2 -:
https://www.scommerce-mage.com/magento2-dynamic-sale-category.html
Semoga ini bisa membantu!
Cheers S
sumber
Saya membuat ekstensi untuk Magento 2 yang menampilkan produk khusus di bawah pengontrolnya sendiri dengan navigasi berlapis. Jadi tidak perlu untuk kategori atau cron.
https://github.com/DominicWatts/Special
Semoga ini bisa membantu seseorang
sumber