Добавить в корзину несколько различных товаров

Однажды потребовалось добавлять в корзину сразу несколько различных товаров. Например, по акции продаются хомячок пушистый, хомячок голодный и хомячок безродный. Одной кнопкой отправить в корзину всех трех.

Специфические для конкретной реализации методы проверки наличия товаров в акции я опускаю, а вот как можно положить в корзину несколько товаров:

1) установить режим, при котором после добавления товара в корзину методом basket не происходит редиректа $_REQUEST['no-redirect'] = 1

2) В цикле положить все товары

3) Редирект куда нужно.

public function buynow(){
    $id = getRequest('param0');
    $referer = getServer('HTTP_REFERER');
    $_REQUEST['no-redirect'] = 1;
    if($id) {
        $oCatalog = cmsController::getInstance()->getModule('catalog');
        $oMarket = cmsController::getInstance()->getModule('emarket');

        //проверить, что мы в акциях
        if($oCatalog -> isThisAction($id)){//да, это акции. Кастомный метод
        //получить товары в акции
            $els = $oCatalog->inAction($id); //Кастомный метод
            foreach($els as $item){
                $oMarket->basket('put','element',$item->id);
            }
        }
        else {//положить в корзину текущий товар и перейти в корзину
            $oMarket->basket('put','element',$id, 1);
        }
        $referer = '/cart/';//Страница с корзиной
    }
    $this->redirect($referer);
}

 



=================
2011-12-24