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; }