Je travaille sur la création automatique d'une option personnalisée pour mes produits chaque fois qu'un produit est créé. Ce que j'ai jusqu'à présent, c'est un observateur qui se déclenche sur l' catalog_product_save_before
événement et exécute le code suivant:
//check that we haven't made the option already
$options = $product->getProductOptions();
foreach ($options as $option) {
if ($option['title'] == 'Auto Date & Time' && $option['type'] == 'date_time' && !$option['is_delete']) {
//we've already added the option
return;
}
}
$options[] = array(
'title' => $product->getDateLabel(),
'type' => 'date_time',
'is_require' => 1,
'sort_order' => 0,
'is_delete' => '',
'previous_type' => '',
'previous_group' => '',
'price' => '0.00',
'price_type' => 'fixed',
'sku' => ''
);
$product->setProductOptions($options);
$product->setCanSaveCustomOptions(true);
//this line doesnt make sense here, but it works ... kinda
$product->save();
Si je laisse l' $product->save()
entrée, je termine avec la création de 2 options personnalisées, même si j'ai vérifié pour vérifier la deuxième fois que l'événement se déclenche, l'instruction de retour est appelée dans la boucle foreach.
Si je le retire. Aucune option personnalisée n'est créée.
Quelqu'un peut-il me dire ce que je fais mal?
Je travaille avec Magento 1.7