Question

J'ai une série de produits avec des options personnalisées de case à cocher de type. Cependant, je ne peux pas définir de la configuration du produit de l'état par défaut de cette option particulière.

J'ai besoin au moins l'une des cases à cocher (options) à vérifier par défaut que l'utilisateur entre la page du produit / ajoute au panier de la page de catégorie.

Est-ce faisable de l'administration Magento ou exigera-un certain développement supplémentaire (si oui, comment cela peut être fait)?

Était-ce utile?

La solution

Je ne sais pas si la recommandation un compte d'extension comme une réponse valable (pour une question avec une prime) mais revendications quelqu'un ici qu'il a écrit une extension qui fait exactement ce dont vous avez besoin. Extension peut être téléchargé à partir d'ici . Je ne l'ai pas testé, mais, dès que je fais, je vais poster et mettre à jour. Je ne regardais à travers le code et il y a beaucoup de celui-ci. J'ai perdu intérêt après 2 fichiers. J'espère que cela fonctionne pour vous.

[EDIT] J'ai mon dos d'intérêt. Je l'ai testé l'extension sur et (presque) fonctionne.
Si vous l'utilisez avec le mode développeur sur vous obtiendrez des erreurs. Voici ce que vous devez changer pour le faire fonctionner.
dans /app/code/local/Magebuzz/Customoption/controllers/Adminhtml/CustomoptionController.php en ligne 28 il y a ceci:

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

Cela montre un avertissement "index non défini. Pour l'éviter, l'envelopper dans une instruction if.

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

Dans /app/code/local/Magebuzz/Customoption/Block/Adminhtml/Customoption/Edit/Tab/Form.php en ligne 129 il y a ceci:

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

$values peut être nul si changer le code à ceci:

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

Maintenant, il devrait fonctionner.
Aujourd'hui, certains examen.

  1. PRO . Fonctionne parfaitement pour les options de menu déroulant et personnalisées radio
  2. Neurtal . Type d'œuvres pour de multiples options personnalisées et sélectionnez case à cocher. Vous pouvez sélectionner une seule valeur pour les valeurs disponibles.
  3. Inconvenient mais je ne peux l'ignorer. afin de définir les valeurs par défaut, vous devez cliquer sur un autre élément de menu dans le back-end et recherchez votre produit dans la liste.
  4. Con . Il ne fonctionne pas pour le texte, textarea, date, datetime, le temps, les options de fichier personnalisées. Mais avec un peu de travail, il peut être modifié pour fonctionner correctement pour tous les types (sauf peut-être le fichier).

Autres conseils

Non par défaut dans Magento.

Peut être atteint de cette façon. Le mieux est de récupèreront avant de poursuivre.

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

); }

// Supposons que nous créons un nouveau produit.

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

// Ou si nous ajoutons les options à un produit déjà créé.

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

// Ne pas oublier d'enregistrer le produit

$product->save();
Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top