Я хочу показать все пакеты на странице простого продукта, поэтому мне нужно получить информацию. Я много искал и пробовал. Этот пост звучит многообещающе, но либо не работает, либо не подходит для моей проблемы: from-a-product-id?answertab=active#tab-top">Magento — получить список идентификаторов продуктов в комплекте из идентификатора продукта
Я нашел решение для сгруппированных продуктов, но здесь его нельзя применить.
$grouped_product_model = Mage::getModel('bundle/product_selection');
$groupedParentId = $grouped_product_model->getParentIdsByChild($product->getId());
Я обнаружил, что таблица catalog_product_bundle_selection является подходящим местом для поиска, но мне интересно, есть ли чистый способ и существующая функция для поиска в этой таблице по product_id, чем просто взломать это.
Я не нашел решения в Mage_Bundle.
Что я пропустил?
Получив первую помощь от vrnet, я написал новый класс блоков, чтобы обновить макет.
class Thomaier_Catalog_Block_Product_View_BundledSelect extends Mage_Catalog_Block_Product_View
{
protected $_simpleProducts = array( '3' ); // just an example
public function getBundles() {
$bundleIds = array();
$bundlesCollectionModel = Mage::getResourceModel('bundle/selection_collection');
$bundlesCollection = $bundlesCollectionModel->getSelect()
->where('`selection`.`product_id` in (' . join(',', (array)$this->_simpleProducts) . ')');
foreach ($bundlesCollection as $bundleItem) {
$bundleIds[] = $bundleItem->getParentProductId();
}
...
}
}
Я пропустил некоторые части. Как я уже упоминал в комментарии, SQL-запрос работает нормально, когда я пробую его в phpmyadmin, но $bundleItem не создается, а ->load() выдает исключение.
Спасибо за совет.