public static function getCartData($hParams = array()) { // Warenkorbstatus aus dem RP abfragen $cart = shopShopping::readCart(array('sid' => bbRpc::getSid(), 'return_items' => 1, 'return_orderable' => 1)); $haItems = array('tariff' => array(), 'domain' => array(), 'add-on' => array(), 'normaly' => array()); $aiItemCount = array('all' => 0, 'tariff' => 0, 'domain' => 0, 'add-on' => 0, 'normaly' => 0); $bTariffNeedsDomain = false; // Artikel im Warenkorb vorhanden if ($cart) { // Gruppierung nach Produkttyp foreach ($haItems as $sNorm => &$aItems) { foreach ($cart['items'] as $hItem) { if ($hItem['product']['norm'] === $sNorm) { $aItems[] = $hItem; if (array_key_exists('amount', $hItem)) { $aiItemCount[$sNorm] += $hItem['amount']; } else { $aiItemCount[$sNorm]++; } } } $aiItemCount['all'] += $aiItemCount[$sNorm]; } $bTariffNeedsDomain = $aiItemCount['tariff'] && !$aiItemCount['domain'] && $haItems['tariff'][0]['product']['need_domain']; } else { $cart = array(); } // Cart um formatierte Daten erweitern $cart['items'] = $haItems; $cart['item_count'] = $aiItemCount; $cart['tariff_needs_domain'] = $bTariffNeedsDomain; return $cart; }