программно добавить дочерние продукты пакетного продукта в Quote

Я пытаюсь создать заказ программно. он отлично работает с простым продуктом, но когда я пытаюсь использовать пакетный продукт, он не добавляет дочерний продукт.

ниже приведен код для этого

$quote = Mage::getModel('sales/quote')->setStoreId(Mage::app()->getStore('default')->getId());

$newProd = Mage::getModel('catalog/product')->load($sku);

$option= array(
        "bundle_option" => array(
        "35" => 66, 
        "36" => 67
        ),
        'qty' => 1
    );

$quote->addProduct($newProd, new Varien_Object($option));

пожалуйста, у кого-нибудь есть решение для этого или где я ошибаюсь?

спасибо


person miit    schedule 21.12.2012    source источник


Ответы (1)


Я думаю, вам следует проверить массив Bundle-options, потому что в Bundle item есть различные типы ввода, такие как радио (который принимает один ввод), флажок (принимает несколько продуктов), аналогично есть раскрывающийся список, а также множественный выбор.

[bundle_option] => Array
    (
        [5] => 13
        [6] => Array
            (
                [0] => 23
            )

        [8] => Array
            (
                [0] => 37
            )

        [12] => Array
            (
                [0] => 56
            )

    )

[bundle_option_qty] => Array
    (
        [5] => 1
        [6] => Array
            (
                [23] => 1
            )

        [8] => Array
            (
                [37] => 1
            )

        [12] => Array
            (
                [56] => 1
            )

    )

Вот вариант набора продуктов, где [5] — это переключатель и будет иметь один продукт, [6], [8] — флажок, и в нем может быть больше продуктов и так далее.

Точно так же вы должны поддерживать количество продукта, как показано выше.

Надеюсь, это поможет вам.

person chanz    schedule 21.12.2012
comment
спасибо за ответ ... но он не работает для меня ... у меня есть продукт в комплекте с 2 дочерними продуктами ... и у обоих есть переключатели, и оба требуются - person miit; 21.12.2012