ho creato un Observer.php per l'evento catalog_product_new_action
valori del prodotto Set di default quando si aggiungono nuovi prodotti in Magento 1.7
<?php
class Starmall_Productobserver_Model_Observer
{
public function initProduct(Varien_Event_Observer $observer)
{
$product = $observer->getEvent()->getProduct();
$product->setWeight(1);
$product->setStatus(1);
$product->setTaxClassId(1);
$product->setPrice(1);
$product->setStockData(array(
'is_in_stock' => 1,
'qty' => 99999
));
}
}
Quando aggiungo un nuovo prodotto il peso, lo status, categoria fiscale e prezzo sono correttamente impostato ai miei valori predefiniti. La quantità di magazzino e la disponibilità di magazzino non sono impostate.
Come posso impostare questi valori di scorta nell'osservatore?
NOTA: utilizzo nella schermata Gestisci prodotto esistente subito dopo aver fatto clic sul pulsante Add Product
.
La seguente soluzione funziona. I dati di inventario è impostato correttamente (vedi R.S. risposta):
public function initProduct(Varien_Event_Observer $observer)
{
$product = $observer->getEvent()->getProduct();
$product->setWeight(1);
$product->setStatus(1);
$product->setTaxClassId(1);
$product->setPrice(1);
$product->setWebsiteIDs(array(1));
$stockItem = Mage::getModel('cataloginventory/stock_item');
$stockItem->assignProduct($product);
$stockItem->setData('is_in_stock', 1);
$stockItem->setData('qty', 1);
$product->setStockItem($stockItem);
}
Grazie! Funziona, leggermente cambiato. Vedi la domanda modificata con la soluzione. Il problema era il '$ product-> save()'. Questo dà un'eccezione 'SQLSTATE [23000]: Violazione del vincolo di integrità: 1452 Impossibile aggiungere o aggiornare una riga secondaria: fallisce un vincolo di chiave esterna. – Guus