выше не работает, Связанные предметы внутри комплекта продукта обрабатываются по-разному. Есть внутри Опции и называются Выборы.
// get all the options of your bundle product assumed as $bundle
$optionCollection = $bundle->getTypeInstance()->getOptionsCollection($bundle);
$selectionIds = $optionIds = array();
// and their Id into an array
foreach($optionCollection as $opt) {
$optionIds[] = $opt->getOptionId();
}
// fetch all the selections from all the previous Ids
$selectionCollection = $bundle->getTypeInstance()->getSelectionsCollection($optionIds);
foreach($selectionCollection as $sc) {
if ($sc->getId()!=$itemToRemoveId) $selectionIds[] = $sc->getSelectionId();
}
// remove the Selection/Bundle association from database, we need to pass all the others except the one we need to drop
Mage::getModel('bundle/mysql4_bundle')->dropAllUnneededSelections($bundle->getId(), $selectionIds);
Другой более простой способ - удалить ваш предмет из набора / таблицы выбора:
$sql = "DELETE FROM " . $this->getTable('bundle/selection') . " WHERE 'product_id' = " . $YOUR_ITEM_TO_REMOVE_ID ;