Sto lavorando alla creazione di un'opzione personalizzata per i miei prodotti automaticamente ogni volta che viene creato un prodotto. Quello che ho finora è un osservatore che si attiva catalog_product_save_before
sull'evento ed esegue il seguente codice:
//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();
Se lascio il comando $product->save()
in, finisco con la creazione di 2 opzioni personalizzate, anche se ho verificato per verificare la seconda volta che l'evento viene generato, l'istruzione return viene chiamata nel ciclo foreach.
Se lo tolgo. Non sono state create opzioni personalizzate.
Qualcuno può dirmi cosa sto facendo di sbagliato?
Sto lavorando con Magento 1.7