Magento: Agregar nuevos productos mediante programación

Estoy tratando de agregar productos a Magento 1.5 mediante programación. Mi script finalmente será un trabajo cron, actualizando y agregando productos regularmente según lo dicte un archivo XML suministrado por el sistema de cuentas.

Tengo un problema para crear nuevos productos. El segmento de código relevante de mi script es:

    $attributeSetId = 4;

    //$newproduct = Mage::getModel('catalog/product');
    $newproduct = new Mage_Catalog_Model_Product();

    $newproduct->setTypeId('simple');
    $newproduct->setWeight($product->UnitWeight);       
    $newproduct->setVisibility(Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH); 
    $newproduct->setStatus(1);
    $newproduct->setSKU($SKU);
    $newproduct->setTaxClassId(0);
    $newproduct->setWebsiteIDs(array(0)); 
    $newproduct->setStoreIDs(array(1)); 
    $newproduct->setStockData(array( 
        'is_in_stock' => 1, 
        'qty' => $XMLproduct->QtyInStock,
        'manage_stock' => 1
    )); 

    $newproduct->setAttributeSetId(4);
    $newproduct->setName($product->Name);
    $newproduct->setCategoryIds(array(3)); // array of categories it will relate to

    $newproduct->setDescription($product->LongDescription);
    $newproduct->setShortDescription($product->Description);
    $newproduct->setPrice($XMLproduct->SalePrice);

    try {
        if (is_array($errors = $newproduct->validate())) {
            $strErrors = array();
            foreach($errors as $code=>$error) {
                $strErrors[] = ($error === true)? Mage::helper('catalog')->__('Attribute "%s" is invalid.', $code) : $error;
            }
            $this->_fault('data_invalid', implode("\n", $strErrors));
        }

        $newproduct->save();
    } catch (Mage_Core_Exception $e) {
        $this->_fault('data_invalid', $e->getMessage());
    }

El producto está 'medio' creado, pero el script deja de arrojar el siguiente error:

PHP Fatal error:  Uncaught exception 'PDOException' with message 'SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`LittleDickyBird`.`catalog_category_product_index`, CONSTRAINT `FK_CATALOG_CATEGORY_PROD_IDX_CATEGORY_ENTITY` FOREIGN KEY (`category_id`) REFERENCES `catalog_category_entity` (`entity_id`) ON )' in /home/default/littledickybird.co.uk/user/htdocs/1.5/lib/Zend/Db/Statement/Pdo.php:228
Stack trace:
#0 /home/default/littledickybird.co.uk/user/htdocs/1.5/lib/Zend/Db/Statement/Pdo.php(228): PDOStatement->execute(Array)
#1 /home/default/littledickybird.co.uk/user/htdocs/1.5/lib/Zend/Db/Statement.php(300): Zend_Db_Statement_Pdo->_execute(Array)
#2 /home/default/littledickybird.co.uk/user/htdocs/1.5/lib/Zend/Db/Adapter/Abstract.php(479): Zend_Db_Statement->execute(Array)
#3 /home/default/littledickybird.co.uk/user/htdocs/1.5/lib/Zend/Db/Adapter/Pdo/Abstract.php(238): Zend_Db_Adapter_Abstract->query('INSERT INTO `ca...', Array)
#4 /home/default/littledic in /home/default/littledickybird.co.uk/user/htdocs/1.5/lib/Zend/Db/Statement/Pdo.php on line 234

¿Puede alguien, por favor, arrojar alguna luz sobre lo que me falta o estoy haciendo mal? Como puede ver por mi tono, estoy bastante desesperado, por lo que cualquier ayuda será muy apreciada.

Gracia

Respuestas a la pregunta(2)

Su respuesta a la pregunta