O produto do pacote adicionado programaticamente não está aparecendo no front-end

Estou tentando inserir produtos agrupados no banco de dados Magento a partir de um script PHP. A versão em questão é a Comunidade 1.5.1.0.

Tentei o método descrito na pergunta "Adicione programaticamente produtos de pacote no Magento, usando o SKU / ID de itens simples ". Os produtos inseridos aparecem muito bem na seção de administração - eu posso editá-los, adicionar novas opções e seleções etc. No entanto, eles não estão aparecendo no front-end do Magento, não importa o que eu tente - por exemplo, reconstruindo índices ou salvando-os novamente no back-end A adição de pacotes pela interface de administração funciona be

Após algumas pesquisas no banco de dados, notei que não há entradas necessárias nocatalog_product_index_price ecatalog_product_index_price_bundle_idx tabelas ao usar meu script, ao adicionar o pacote pelo back-end atualiza os índices normalmente. A reindexação simplesmente ignora o produto do pacote incluído no que diz respeito a essas tabela

Pesquisei os arquivos de origem do Magento e não consigo encontrar nenhuma dica sobre o que estou fazendo de errado. Todos os caches estão desativados, as seleções estão em estoque e tentei incluir todos os dados que descobri enquanto estudava a solicitação POST que o Magento envia ao inserir o produto no back-en

Aqui está o script completo que eu uso para testar, juntamente com algumas tentativas desesperadas comentadas na parte inferior:

$magentoPath = '/home/nikola/bin/magento-1.5/';
require_once($magentoPath . 'includes/config.php');
require_once($magentoPath . 'app/Mage.php');

$storeID = 1;
$websiteIDs = array(1);

$mageObj = Mage::app()->setCurrentStore($storeID);

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

$cats = array("210");
$p = array(
  'sku_type' => 0, 
  'sku' => 687, 
  'name' => "BarProduct", 
  'description' => 'Foo', 
  'short_description' => 'Bar',
  'type_id' => 'bundle', 
  'attribute_set_id' => 4, 
  'weight_type' => 0, 
  'visibility' => 4, 
  'price_type' => 0, 
  'price_view' => 0, 
  'status' => 1, 
  'created_at' => strtotime('now'), 
  'category_ids' => $cats, 
  'store_id' => $storeID, 
  'website_ids' => $websiteIDs
);

$product->setData($p);

$product->setCanSaveBundleSelections(true);
$product->setCanSaveCustomOptions(true);

Mage::register('product', $product);
Mage::register('current_product', $product);

$optionRawData = array();
$selectionRawData = array();

$optionRawData[0] = array(
  'required' => 1,
  'option_id' => '', 
  'position' => 0,
  'type' => 'select',
  'title' => 'FooOption',
  'default_title' => 'FooOption', 
  'delete' => ''
);
$selectionRawData[0] = array(); 
$selectionRawData[0][] = array(
  'product_id' => 1810,
  'position' => 0,
  'is_default' => true,
  'selection_id' => '', 
  'option_id' => '', 
  'selection_price_type' => 0,
  'selection_price_value' => 0.0,
  'selection_qty' => 1,
  'selection_can_change_qty' => 1,
  'delete' => ''
);

$product->setBundleOptionsData($optionRawData);
$product->setBundleSelectionsData($selectionRawData);

$product->save();

/*
$stockItem = Mage::getModel('cataloginventory/stock_item');
$stockItem->loadByProduct($product->getId());
if (!$stockItem->getId()) {
  $stockItem->setProductId($product->getId())->setStockId(1);
}
$stockItem->setData('is_in_stock', 1);
$stockItem->save();

$pi = Mage::getSingleton('bundle/price_index');
$pi->addPriceIndexToProduct($product);
$pi->save();
*/

?>

questionAnswers(2)

yourAnswerToTheQuestion