public static function addToCart($hParams = array())
 {
     // Keine Produkt-ID uebergeben
     if (!$hParams['peid']) {
         // sofort abbrechen
         Status::addError("Es wurde keine Produkt-ID uebergeben");
         return;
     }
     // Produktdaten auslesen
     $hProduct = shopProduct::readEntry(array("peid" => $hParams["peid"]));
     // Produkt unsichtbar
     if (!$hProduct['visible']) {
         Status::addWarning("Das Produkt konnte nicht in den Warenkorb gelegt werden");
         // Sicherheitsfrage bei Tarifwechsel
     } elseif ($hProduct['norm'] == 'tariff' && ($hCurrentTariff = shopShopping::getTariff() && !$hParams['signed'])) {
         // Daten fuer Dialog mit den bevorstehenden Hinweisen auslesen
         $ahAlerts = shopShopping::changeTariffAlerts(array("peid" => $hParams["peid"]));
         Renderer::assign('alerts', $ahAlerts);
         Renderer::assign('tariff', $hProduct);
         return array('template' => Renderer::render('content/modal_tariff_change.tpl'), 'assigns' => array('action' => 'show_dialog', 'new_tariff' => $hProduct));
         // Produkt in Warenkorb legen
     } else {
         // Liegt das Produkt bereits im Warenkorb?
         if ($hNewCartItem = shopShopping::isInCart(array("peid" => $hParams["peid"]))) {
             // Anzahl des Produkts erhoehen
             $hNewCartItem["amount"]++;
             // Produkt liegt noch nicht im Warenkorb
         } else {
             $hNewCartItem = array("scid" => 0, "peid" => $hParams["peid"], "amount" => 1);
         }
         // Speichern des Artikels im Warenkorb
         if ($iScid = shopShopping::saveCartItem($hNewCartItem)) {
             if (!Status::hasErrors()) {
                 if ($hNewCartItem['amount']) {
                     Status::addSuccess($hProduct['name'] . " wurde in den Warenkorb gelegt.");
                 } else {
                     Status::addSuccess($hProduct['name'] . " wurde aus dem Warenkorb entfernt.");
                 }
             }
             // Speichern erfolgreich -> Warenkorb auslesen
             $returnCart = static::getCart($hParams);
             $returnCart['assigns']['scid'] = $iScid;
             $returnCart['assigns']['peid'] = $hProduct['peid'];
             // Dialog nach dem Hinzufügen eines Tarifs darstellen
             // Prüfung auf signed -> nur einmal statt bei jedem Tarif anzeigen
             if (static::SHOW_TARIFF_UPSELL && $hProduct['norm'] === 'tariff' && !$hParams['signed']) {
                 Renderer::assign('tariff', $hProduct);
                 $returnCart['assigns']['dialog'] = Renderer::render('content/modal_upsell_tariff.tpl');
                 $returnCart['assigns']['action'] = 'add_dialog';
             }
             return $returnCart;
             // Speichern nicht erfolgreich
         } else {
             Status::addWarning("Das Produkt konnte nicht in den Warenkorb gelegt werden");
         }
     }
     return;
 }