keadaan standar opsi khusus untuk produk sederhana

11

Saya memiliki serangkaian produk dengan opsi khusus pada kotak centang jenis. Namun saya tidak dapat mengatur dari pengaturan produk status default dari opsi tertentu.

Saya memerlukan setidaknya satu dari kotak centang (opsi) untuk diperiksa secara default saat pengguna memasuki halaman produk / menambahkan ke troli dari halaman kategori.

Apakah ini dapat dilakukan dari administrasi Magento atau akankah itu memerlukan pengembangan tambahan (jika demikian bagaimana ini dapat dilakukan)?

Mike
sumber
Tidakkah Anda menetapkan "default" di bawah Katalog -> Kelola Atribut -> "Atribut Anda" -> Kelola Label / Opsi -> tepat di sebelah opsi default Anda .... atau jika Anda menggunakan Jenis Input "ya / tidak" Anda dapat menetapkan nilai default di bawah properti atribut
Stefan Gregori
Sebenarnya opsi saat ini sudah diatur dengan "Opsi khusus" dari halaman produk di admin. Saran Anda adalah mengubah itu menjadi atribut produk? Apakah itu akan menjaga perilaku yang sama untuk harga produk?
Mike

Jawaban:

16

Saya tidak tahu apakah merekomendasikan ekstensi dianggap sebagai jawaban yang valid (untuk pertanyaan dengan hadiah) tetapi seseorang mengklaim di sini bahwa ia menulis ekstensi yang melakukan apa yang Anda butuhkan. Ekstensi dapat diunduh dari sini . Saya belum mengujinya tetapi, begitu saya melakukannya, saya akan memposting dan memperbarui. Saya hanya melihat-lihat kode dan ada banyak. Saya kehilangan minat setelah 2 file. Saya harap ini berhasil untuk Anda.

[EDIT]
Saya tertarik lagi. Saya menguji ekstensi pada dan (hampir) berfungsi.
Jika Anda menggunakannya dengan mode pengembang, Anda akan mendapatkan beberapa kesalahan. Inilah yang perlu Anda ubah untuk membuatnya bekerja.
di /app/code/local/Magebuzz/Customoption/controllers/Adminhtml/CustomoptionController.phpjalur 28 ada ini:

$model->setData('value['.$option_id.']',$value[0]['option_type_id']);

Ini menunjukkan peringatan 'indeks tidak ditentukan'. Untuk menghindarinya, bungkuslah dalam sebuah ifpernyataan.

if (isset($value[0])){
    $model->setData('value['.$option_id.']',$value[0]['option_type_id']);
}

Di /app/code/local/Magebuzz/Customoption/Block/Adminhtml/Customoption/Edit/Tab/Form.phpjalur 129 ada ini:

foreach ($values as $value) {
    $valuesArr[$value['option_type_id']]=$value['title'];
}

$values mungkin nol jadi ubah kode ini menjadi ini:

if (is_array($values)){
    foreach ($values as $value) {
        $valuesArr[$value['option_type_id']]=$value['title'];
    }
}

Sekarang itu seharusnya bekerja.
Sekarang beberapa ulasan.

  1. PRO . Berfungsi sempurna untuk opsi tarik turun dan radio kustom
  2. Neurtal . Jenis pekerjaan untuk beberapa pilihan kustom dan kotak centang. Anda hanya dapat memilih satu nilai untuk nilai yang tersedia.
  3. Nyaman tapi saya bisa mengabaikannya. untuk menetapkan nilai default, Anda harus mengklik item menu lain di backend dan mencari produk Anda dalam daftar.
  4. Con . Itu tidak berfungsi untuk teks, textarea, tanggal, datetime, waktu, opsi file kustom. Tetapi dengan sedikit kerja dapat diubah untuk bekerja dengan benar untuk semua jenis (mungkin kecuali file).
Marius
sumber
1

Tidak default di Magento.

Dapat dicapai dengan cara ini. Yang terbaik untuk mengambil kembali sebelum melanjutkan.

$option = array(
    'title' => 'Your custom option title',  
    'type' => 'checkbox', // could be drop_down ,radio , multiple
    'is_require' => 1,
    'sort_order' => 0,
    'values' => getOptions()
    );

function getOptions(){
  return array(
     array(
       'title' => 'Option Value 1',
       'price' =>100,
       'price_type' => 'fixed',
       'sku' => 'any sku for 1',
       'sort_order' => '1'
    ),
    array(
       'title' => 'Option Value 2',
       'price' =>100,
       'price_type' => 'fixed',
       'sku' => 'any sku for 2',
       'sort_order' => '1'
    ),
  array(
       'title' => 'Option Value 3',
       'price' =>100,
       'price_type' => 'fixed',
       'sku' => 'any sku for 3',
       'sort_order' => '1'
    )

); }

// Misalkan kita membuat produk baru.

$product = Mage::getModel('catalog/product');
$product->setProductOptions(array($option));
$product->setCanSaveCustomOptions(true);

// Atau jika kita menambahkan opsi ke produk yang sudah dibuat.

$product = Mage::getModel('catalog/product')->load($id);
$product->setProductOptions(array($option));
$product->setCanSaveCustomOptions(true);

// Jangan lupa untuk menyimpan produk

$product->save();
Matriks Infologik
sumber
Ini adalah penjelasan yang bagus tentang cara membuat menurut opsi kustom kode untuk suatu produk, tapi saya rasa itu tidak menjawab pertanyaan. OP bertanya bagaimana Anda bisa menetapkan nilai default untuk opsi khusus.
Marius