/** * Ajoute un élément au panier * @access private * @param $values * @param $session_key */ private function add_item_cart($values, $session_key) { if (is_array($values)) { $attr = null; //récupération des valeurs postes pour insertion et récupération DB $idcatalog = $values['idcatalog']; $quantity = $values['product_quantity']; $current_price = $values['product_price']; $attr = isset($values['attr']) ? $values['attr'] : null; $lang = frontend_db_lang::s_id_current_lang(frontend_model_template::current_Language()); //récupération des donnée panier en fonction le clé de session $data_cart = parent::s_cart_session($session_key); if ($data_cart == null) { parent::i_cart_session($lang['idlang'], $session_key); $data_cart = parent::s_cart_session($session_key); } $id_cart = $data_cart['id_cart']; //Vérifie si l'item est déjà dans le panier $v_item = parent::s_cart_item_catalog($id_cart, $idcatalog); if ($v_item['idcatalog'] == null) { $this->add_new_item($id_cart, $idcatalog, $quantity, $current_price); } else { $exist = true; if (!empty($this->activeMods)) { foreach ($this->activeMods as $name => $mod) { if (method_exists($mod, 'exist_item')) { $exist = $mod->exist_item($v_item['id_item'], $_POST); } } } if ($exist) { parent::u_cart_item_qty($v_item['id_item'], $v_item['quantity_items'] + $quantity); } else { $this->add_new_item($id_cart, $idcatalog, $quantity, $current_price); } } //Mise à jour du calcul d'items dans le panier $count_items = parent::count_cart_items($id_cart); parent::u_cart_items($id_cart, $count_items['total']); } }