Magento - Programmatically saved product not visible in backend
magento
Solution
Don't forget to set the Website in case of multi-stores setup.
Problem
I've tried to create a product with the following code on a Magento 1.5.1. The Product has been saved in the database but doesn't appear in the backend product grid. If I call the product view url, some fields are not filled, like: Name, Description (see:NOK). ``` $product = Mage::getModel('catalog/product'); $product->setSku("ABC123") // OK ->setName("Type 7 Widget") // NOK ->setDescription("This widget will give you years of trouble-free widgeting.") // NOK ->setShortDescription("High-end widget.") // NOK ->setPrice(70.50) // OK ->setTypeId('simple') // OK ->setAttributeSetId('14') // need to look this up // OK ->setCategoryIds("3,7") // need to look these up // OK ->setWeight(1.0) // OK ->setTaxClassId(1) //taxable goods // ? ->setVisibility(4) // catalog, search // NOK ->setStatus(Mage_Catalog_Model_Product_Status::STATUS_ENABLED); // enabled // NOK $product->setWebsiteIds(array(Mage::app()->getStore(true)->getWebsite()->getId())); $product->save(); ``` This is the product, saved in database `print_r($product->debug());` ``` [type_id] => simple [sku] => ABC123 [has_options] => 0 [required_options] => 0 [created_at] => 2012-04-26 12:57:22 [updated_at] => 2012-04-26 12:57:22 [weight] => 1 [url_path] => .html [price] => 70.5000 [enable_googlecheckout] => 1 [name] => Type 7 Widget [meta_title] => Type 7 Widget [meta_description] => Type 7 Widget, Fotos [url_key] => type-7-widget [options_container] => container2 [delivery_time] => 2-3 Tage [generate_meta] => 0 [status] => 1 [tax_class_id] => 1 [visibility] => 4 [description] => This widget will give you years of trouble-free widgeting. [short_description] => High-end widget. [meta_keyword] => Type 7 Widget, Fotos [media_gallery] => Array ( [images] => Array ( ) [values] => Array ( ) ) [tier_price] => Array ( ) [tier_price_changed] => 0 [stock_item (Mage_CatalogInventory_Model_Stock_Item)] => Array ( [product_id] => 158 [product_name] => Type 7 Widget [store_id] => 1 [product_type_id] => simple [product_status_changed] => 1 ) [is_in_stock] => 1 [is_salable] => 1 ) ``` Any help would be great! Solution Specify the store you want to save the products for with the following code: ``` Mage::app()->setCurrentStore(Mage::getModel('core/store')->load(Mage_Core_Model_App::ADMIN_STORE_ID)); ```