Magento удалить элемент пакета, используя API - PullRequest
1 голос
/ 13 октября 2010

Я ищу API, который может удалять элементы пакета, добавленные в основной продукт пакета.

Может ли кто-нибудь подсказать мне этот API?

С уважением, Ирфан

Ответы [ 3 ]

1 голос
/ 21 марта 2012

выше не работает, Связанные предметы внутри комплекта продукта обрабатываются по-разному. Есть внутри Опции и называются Выборы.

    // 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 ;
0 голосов
/ 15 декабря 2010

Примерно так должно работать:

    $bundled_product = Mage::getModel('catalog/product');
    $bundled_product->load($product->getId());

    $optionCollection = $product->getTypeInstance(true)->getOptionsCollection($product);
    $selectionCollection = $bundled_product
    ->getTypeInstance(true)
    ->getSelectionsCollection(
    $bundled_product
    ->getTypeInstance(true)
    ->getOptionsIds($bundled_product),
    $bundled_product
    );
    foreach($optionCollection as $option){
        $option->delete();
    }
0 голосов
/ 14 октября 2010

Если вы просто пытаетесь удалить простой продукт из настраиваемого продукта:

http://www.magentocommerce.com/wiki/doc/webservices-api/api/catalog_product#catalog_product.delete

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...