stato predefinito dell'opzione personalizzata per prodotti semplici


11

Ho una serie di prodotti con opzioni personalizzate di tipo checkbox. Tuttavia, dall'impostazione del prodotto non è possibile impostare lo stato predefinito di quella particolare opzione.

Ho bisogno che almeno una delle caselle (opzioni) sia selezionata per impostazione predefinita quando l'utente accede alla pagina del prodotto / aggiunge al carrello dalla pagina della categoria.

È possibile dall'amministrazione Magento o richiederà qualche ulteriore sviluppo (in tal caso, come è possibile farlo)?


Non puoi semplicemente impostare "è predefinito" in Catalogo -> Gestisci attributi -> "Il tuo attributo" -> Gestisci etichetta / Opzioni -> proprio accanto all'opzione predefinita .... o se usi il tipo di input "sì / no" può impostare il valore predefinito sotto le proprietà dell'attributo
Stefan Gregori,

In realtà le opzioni in questo momento sono impostate con "Opzioni personalizzate" dalla pagina del prodotto in admin. Il tuo suggerimento è di trasformarlo in attributi del prodotto? Manterrebbe lo stesso comportamento per il prezzo del prodotto?
Mike,

Risposte:


16

Non so se raccomandare un'estensione conta come una risposta valida (per una domanda con una taglia) ma qualcuno afferma qui che ha scritto un'estensione che fa esattamente quello che ti serve. L'estensione può essere scaricata da qui . Non l'ho provato ma, non appena lo farò, posterò e aggiornerò. Ho solo controllato il codice e ce n'è molto. Ho perso interesse dopo 2 file. Spero che funzioni per te.

[EDIT]
Ho il mio interesse indietro. Ho testato l'estensione su e (quasi) funziona.
Se lo usi con la modalità sviluppatore attiva, otterrai alcuni errori. Ecco cosa devi cambiare per farlo funzionare.
nella /app/code/local/Magebuzz/Customoption/controllers/Adminhtml/CustomoptionController.phpriga 28 c'è questo:

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

Questo mostra un avviso "indice indefinito". Per evitarlo, avvolgilo in una ifdichiarazione.

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

Nella /app/code/local/Magebuzz/Customoption/Block/Adminhtml/Customoption/Edit/Tab/Form.phplinea 129 c'è questo:

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

$values potrebbe essere nullo, quindi cambia il codice in questo:

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

Ora dovrebbe funzionare.
Adesso qualche recensione.

  1. PRO . Funziona perfettamente con le opzioni personalizzate di menu a discesa e radio
  2. Neurtal . Tipo di opere per opzioni personalizzate multiple di selezione e checkbox. È possibile selezionare un solo valore per i valori disponibili.
  3. Inconveniente ma posso trascurarlo. per impostare i valori predefiniti devi fare clic su un'altra voce di menu nel back-end e cercare il tuo prodotto nell'elenco.
  4. Con . Non funziona con opzioni di testo, area di testo, data, data / ora, ora e file. Ma con un po 'di lavoro può essere modificato per funzionare correttamente per tutti i tipi (forse tranne il file).

1

Non predefinito in Magento.

Può essere raggiunto in questo modo. Meglio riprendere prima di procedere.

$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'
    )

); }

// Supponiamo di creare un nuovo prodotto.

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

// O se stiamo aggiungendo le opzioni a un prodotto già creato.

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

// Non dimenticare di salvare il prodotto

$product->save();

Questa è una bella spiegazione su come creare dal codice opzioni personalizzate per un prodotto, ma non credo che risponda alla domanda. L'OP ha chiesto come è possibile impostare i valori predefiniti per le opzioni personalizzate.
Marius
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.