Flux d’activité

Flux d’activité

  1. ked a ajouté un sujet dans Module PEEL Premium pour PEEL SHOPPING   

    Message D'erreur Lors De Commande
    Bonjour,
     
    lorsque j'essaie de passer une commande test sur le site j'obtiens en haut le message d'erreur suivant:
     
    Warning: str_pad() expects parameter 2 to be long, string given in /home/www/dc5b0d89027476cffd8fe341cc6e161b/web/lib/fonctions/order.php on line 65
     
    Quelqu'un a t-il une idée de quoi cela peut venir?
     
    Merci bcp
     
    • 5 réponses
    • 1 915 vues
  2. francisp78 a ajouté un message dans un sujet  Paypal   

    Je vous remercie.
    • 0
  3. djespace a ajouté un message dans un sujet  Ajouter L'état De Stock Des Produit Dans Le Caddie.   

    Bonjour,


    Merci Simon, mais une proposition m'avait à l'époque déjà été faite, et je n'ai nullement l'intention de re-payer un développement qui m'a déjà été facturé.
    C'est la raison pour laquelle j'essaie de me dépatouiller tout seul, avec le forum, et ce même si ça prends du temps....

    La seul différence avec le développement acheté pour peel 6.3.1, c'est qu'il y a smarty désormais dans peel7.
    Et certaines variables ont besoin d'être définie. C'était le cas pour "product_object", simple à résoudre, c'est le cas pour "id" également.
    Pour stock_remain_all, il va falloir la définir mais aussi lui donner le calcul de stock pour en afficher l'état. Cette fonction est effectivement déja présente dans d'autres fichiers, je pense qu'il s'agit simplement de la copier au bon endroit (chose que je ne dois pas bien faire). Vous pouvez m'aider là dessus je pense d'autant qu'il s'agit du même fichier (display_caddie.php) et que vous trouverez le problème rapidement.
     
     
    Par contre, je ne  parviens pas à vous envoyer le fichier. Je n'en ai pas la permission.
    Voici le code du fichier :
     
    Merci par avance.
    François;
     
    <?php // This file should be in UTF8 without BOM - Accents examples: éèê // +----------------------------------------------------------------------+ // | Copyright (c) 2004-2013 Advisto SAS, service PEEL - contact@peel.fr | // +----------------------------------------------------------------------+ // | This file is part of PEEL Shopping 7.0.0, which is subject to an | // | opensource GPL license: you are allowed to customize the code | // | for your own needs, but must keep your changes under GPL | // | More information: https://www.peel.fr/lire/licence-gpl-70.html'>https://www.peel.fr/lire/licence-gpl-70.html | // +----------------------------------------------------------------------+ // | Author: Advisto SAS, RCS 479 205 452, France, https://www.peel.fr/ | // +----------------------------------------------------------------------+ // $Id: display_caddie.php 35860 2013-03-13 14:10:20Z sdelaporte $ // Fichier inclue uniquement sur les pages qui font appels aux fonctions ci-dessous if (!defined('IN_PEEL')) { die(); } if (!function_exists('get_caddie_content_html')) { /** * get_caddie_content_html() * * @param class $form_error_object * @param mixed $mode_transport * @param boolean $display_cart_title_image * @return */ function get_caddie_content_html(&$form_error_object, $mode_transport, $display_cart_title_image = true) { $output = ''; $listcadeaux_owner = ''; // vérifie pour offrir les frais de port que le seuil d'offre ou le nombre de produits sont différents de 0 // si différent de 0, on 'construit' le message à afficher // Attention : un test !empty ne marche pas sur seuil_total_used car au format "0.00" $seuil_total_used = (is_reseller_module_active() && is_reseller()) ? $GLOBALS['site_parameters']['seuil_total_reve'] : $GLOBALS['site_parameters']['seuil_total']; $shipping_text = ''; // Récupération des informations de la zone sélectionnée pour adapter le message. if(!empty($_SESSION['session_caddie']->zoneId)) { $q = query('SELECT on_franco_amount, on_franco_nb_products FROM peel_zones WHERE id="'.intval($_SESSION['session_caddie']->zoneId).'"'); $zone_result = fetch_assoc($q); $on_franco_amount = $zone_result['on_franco_amount']; $on_franco_nb_products = $zone_result['on_franco_nb_products']; } if (round($seuil_total_used, 2) > 0 || !empty($GLOBALS['site_parameters']['nb_product']) || (!empty($on_franco_amount) && round($on_franco_amount, 2) > 0) || (!empty($on_franco_nb_products) && $on_franco_nb_products > 0)) { $shipping_text .= $GLOBALS['STR_SHIPPING_COST'] . ' (' . $GLOBALS['STR_OFFERED'] . ' '; // Le seuil d'exonération des frais de port pour une zone est prioritaire sur le seuil d'exonération des frais de port de la configuration général de la boutique if((!empty($on_franco_amount) && round($on_franco_amount, 2) > 0) || (!empty($on_franco_nb_products) && $on_franco_nb_products > 0)) { $shipping_text .= !empty($on_franco_amount)? $GLOBALS['STR_FROM'] . ' ' . fprix($on_franco_amount, true) . ' ' . $GLOBALS['STR_TTC'] : ''; if(!empty($on_franco_nb_products)) { $shipping_text .= !empty($on_franco_amount)? ' ' . $GLOBALS['STR_OR'] . ' '. $GLOBALS['STR_FROM'] . ' ' . $on_franco_nb_products . ' ' . $GLOBALS['STR_PRODUCTS_PURCHASED'] : $GLOBALS['STR_FROM'] . ' ' . $on_franco_nb_products . ' ' . $GLOBALS['STR_PRODUCTS_PURCHASED']; } } elseif (round($seuil_total_used, 2) > 0 ) { $shipping_text .= $GLOBALS['STR_FROM'] . ' ' . fprix($seuil_total_used, true) . ' ' . $GLOBALS['STR_TTC']; } if (!empty($GLOBALS['site_parameters']['nb_product']) && empty($on_franco_nb_products)) { $shipping_text .= (round($seuil_total_used, 2) > 0 || (!empty($on_franco_amount) && round($on_franco_amount, 2) > 0) ? ' ' . $GLOBALS['STR_OR_COORDINATION'] : '') . ' ' . $GLOBALS['STR_FROM'] . ' ' . $GLOBALS['site_parameters']['nb_product'] . ' ' . $GLOBALS['STR_PRODUCT_BUY']; } $shipping_text .= ')'; } $tpl = $GLOBALS['tplEngine']->createTemplate('caddie_content_html.tpl'); $tpl->assign('is_empty', ($_SESSION['session_caddie']->count_products() == 0)); $tpl->assign('STR_EMPTY_CADDIE', $GLOBALS['STR_EMPTY_CADDIE']); if(!($_SESSION['session_caddie']->count_products() == 0)){ $tpl->assign('STR_BEFORE_TWO_POINTS', $GLOBALS['STR_BEFORE_TWO_POINTS']); if (is_module_vacances_active() && get_vacances_type() == 1) { $tpl->assign('global_error', vb($GLOBALS['site_parameters']['module_vacances_client_msg_' . $_SESSION['session_langue']])); } $tpl->assign('erreur_caddie', $_SESSION['session_caddie']->affiche_erreur_caddie()); $tpl->assign('action', get_current_url(false)); $tpl->assign('products_summary_table', get_caddie_products_summary_table(true, true, $mode_transport, $shipping_text)); $tpl->assign('shipping_text', $shipping_text); $tpl->assign('STR_UPDATE', $GLOBALS['STR_UPDATE']); if (est_identifie()) { $tpl->assign('code_promo', array( 'txt' => $GLOBALS['STR_CODE_PROMO'], 'value' => vb($_SESSION['session_caddie']->code_promo), )); if (!empty($_SESSION['session_caddie']->code_promo)) { $tpl->assign('code_promo_delete', array( 'href' => get_current_url(false) . '?code_promo=delete', 'src' => $GLOBALS['wwwroot'] . '/icones/rupture.png', 'txt' => $GLOBALS['STR_DELETE'] )); } } else { $tpl->assign('membre_href', $GLOBALS['wwwroot'] . '/membre.php'); $tpl->assign('STR_LOGIN_FOR_REBATE', $GLOBALS['STR_LOGIN_FOR_REBATE']); $tpl->assign('STR_PLEASE_LOGIN', $GLOBALS['STR_PLEASE_LOGIN']); $tpl->assign('STR_REBATE_NOW', $GLOBALS['STR_REBATE_NOW']); } $tpl->assign('is_mode_transport', !empty($mode_transport)); if (!empty($mode_transport)) { $tpl->assign('zone_error', $form_error_object->text('pays_zone')); $tpl->assign('STR_DELIVERY', $GLOBALS['STR_DELIVERY']); $tpl->assign('STR_SHIPPING_ZONE', $GLOBALS['STR_SHIPPING_ZONE']); $tpl->assign('STR_REFRESH', $GLOBALS['STR_REFRESH']); $tpl->assign('STR_SHIP_ZONE_CHOOSE', $GLOBALS['STR_SHIP_ZONE_CHOOSE']); // On gère le port : même en cas de tarification indépendante de la zone de livraison, // il faut demander la zone afin de pouvoir identifier les modes de livraison possibles $sqlZone = 'SELECT id, nom_' . $_SESSION['session_langue'] . ' AS nom FROM peel_zones ORDER BY position, nom'; $resZone = query($sqlZone); $zone_options = array(); while ($Zone = fetch_assoc($resZone)) { $selected = false; if (empty($_SESSION['session_caddie']->zoneId)) { // L'utilisateur vient d'arriver sur la page de caddie : on présélectionne la zone liée à l'adresse de son compte if (!empty($_SESSION['session_utilisateur']['zoneId']) && $_SESSION['session_utilisateur']['zoneId'] == $Zone['id']) { $selected = true; $_SESSION['session_caddie']->set_zone($_SESSION['session_utilisateur']['zoneId']); } } elseif (!empty($_SESSION['session_caddie']->zoneId) && $_SESSION['session_caddie']->zoneId == $Zone['id']) { $selected = true; } $zone_options[] = array( 'value' => $Zone['id'], 'issel' => $selected, 'name' => $Zone['nom'] ); } $tpl->assign('zone_options', $zone_options); $tpl->assign('zone', $_SESSION['session_caddie']->zone); $tpl->assign('STR_SHIPPING_ZONE', $GLOBALS['STR_SHIPPING_ZONE']); $tpl->assign('is_zone', (!empty($_SESSION['session_caddie']->zoneId) && !empty($mode_transport))); if (!empty($_SESSION['session_caddie']->zoneId) && !empty($mode_transport)) { if ($mode_transport == 1) { // Ici on est dans le cas où le calcul des frais de ports est par poids ou par montant total $sqlType = 'SELECT DISTINCT(t.id), t.nom_' . $_SESSION['session_langue'] . ' FROM peel_tarifs tf INNER JOIN peel_types t ON t.id = tf.type WHERE t.etat = 1 AND tf.zone = "' . intval($_SESSION['session_caddie']->zoneId) . '" AND (poidsmin<="' . floatval($_SESSION['session_caddie']->total_poids) . '" OR poidsmin=0) AND (poidsmax>="' . floatval($_SESSION['session_caddie']->total_poids) . '" OR poidsmax=0) AND (totalmin<="' . floatval($_SESSION['session_caddie']->total_produit) . '" OR totalmin=0) AND (totalmax>="' . floatval($_SESSION['session_caddie']->total_produit) . '" OR totalmax=0)'; $resType = query($sqlType); } $tpl->assign('shipping_type_error', $form_error_object->text('type')); $tpl->assign('STR_SHIPPING_TYPE', $GLOBALS['STR_SHIPPING_TYPE']); $tpl->assign('STR_SHIP_TYPE_CHOOSE', $GLOBALS['STR_SHIP_TYPE_CHOOSE']); $tpl->assign('STR_ERREUR_TYPE', $GLOBALS['STR_ERREUR_TYPE']); if (!empty($resType) && num_rows($resType) > 0) { $type_options = array(); while ($Type = fetch_assoc($resType)) { $type_options[] = array( 'value' => intval($Type['id']), 'issel' => (vb($_SESSION['session_caddie']->typeId) == $Type['id']), 'name' => $Type['nom_' . $_SESSION['session_langue']] ); } $tpl->assign('shipping_type_options', $type_options); } } } $tpl->assign('is_cart_preservation_module_active', is_cart_preservation_module_active()); $tpl->assign('preservation_href', $GLOBALS['wwwroot'] . '/modules/cart_preservation/cart_preservation.php?mode=save'); $tpl->assign('STR_SAVE_CART', $GLOBALS['STR_SAVE_CART']); if (round($_SESSION['session_caddie']->avoir_user, 2) > round($_SESSION['session_caddie']->avoir, 2)) $tpl->assign('STR_SUGGEST', $GLOBALS['STR_SUGGEST']); if ($GLOBALS['site_parameters']['minimal_amount_to_order'] > $_SESSION['session_caddie']->total_produit) { $tpl->assign('is_minimum_error', true); $tpl->assign('STR_MINIMUM_PURCHASE_OF', $GLOBALS['STR_MINIMUM_PURCHASE_OF']); $tpl->assign('minimum_prix', fprix($GLOBALS['site_parameters']['minimal_amount_to_order'], true)); $tpl->assign('STR_REQUIRED_VALIDATE_ORDER', $GLOBALS['STR_REQUIRED_VALIDATE_ORDER']); } else { $tpl->assign('is_minimum_error', false); $tpl->assign('STR_ORDER', $GLOBALS['STR_ORDER']); } $tpl->assign('shopping_href', $GLOBALS['wwwroot'] . '/achat/'); $tpl->assign('empty_list_href', get_current_url(false) . '?func=vide'); $tpl->assign('STR_SHOPPING', $GLOBALS['STR_SHOPPING']); $tpl->assign('STR_EMPTY_LIST', $GLOBALS['STR_EMPTY_LIST']); $tpl->assign('STR_EMPTY_CART', $GLOBALS['STR_EMPTY_CART']); } $output = $tpl->fetch(); return $output; } } if (!function_exists('get_order_step1')) { /** * get_order_step1() * * @param array $frm Array with all fields data * @param class $form_error_object * @param mixed $mode_transport * @return */ function get_order_step1(&$frm, &$form_error_object, $mode_transport) { $output = ''; if (empty($_SESSION['session_caddie']) || $_SESSION['session_caddie']->count_products() == 0) { $output .= $GLOBALS['STR_EMPTY_CADDIE']; } else { $tpl = $GLOBALS['tplEngine']->createTemplate('order_step1.tpl'); $tpl->assign('error_cvg', $form_error_object->text('cgv')); $tpl->assign('action', get_current_url(false)); $tpl->assign('societe1', $frm['societe1']); $tpl->assign('nom1_error', $form_error_object->text('nom1')); $tpl->assign('nom1', $frm['nom1']); $tpl->assign('prenom1_error', $form_error_object->text('prenom1')); $tpl->assign('prenom1', $frm['prenom1']); $tpl->assign('email1_error', $form_error_object->text('email1')); $tpl->assign('email1', $frm['email1']); $tpl->assign('contact1_error', $form_error_object->text('contact1')); $tpl->assign('contact1', $frm['contact1']); $tpl->assign('adresse1_error', $form_error_object->text('adresse1')); $tpl->assign('adresse1', $frm['adresse1']); $tpl->assign('code_postal1_error', $form_error_object->text('code_postal1')); $tpl->assign('code_postal1', $frm['code_postal1']); $tpl->assign('ville1_error', $form_error_object->text('ville1')); $tpl->assign('ville1', $frm['ville1']); $tpl->assign('pays1_error', $form_error_object->text('pays1')); $tpl->assign('pays1_options', get_country_select_options($frm['pays1'], null)); $tpl->assign('STR_STEP1', $GLOBALS['STR_STEP1']); $tpl->assign('STR_BEFORE_TWO_POINTS', $GLOBALS['STR_BEFORE_TWO_POINTS']); $tpl->assign('STR_INVOICE_ADDRESS', $GLOBALS['STR_INVOICE_ADDRESS']); $tpl->assign('STR_SOCIETE', $GLOBALS['STR_SOCIETE']); $tpl->assign('STR_NAME', $GLOBALS['STR_NAME']); $tpl->assign('STR_FIRST_NAME', $GLOBALS['STR_FIRST_NAME']); $tpl->assign('STR_EMAIL', $GLOBALS['STR_EMAIL']); $tpl->assign('STR_TELEPHONE', $GLOBALS['STR_TELEPHONE']); $tpl->assign('STR_ADDRESS', $GLOBALS['STR_ADDRESS']); $tpl->assign('STR_ZIP', $GLOBALS['STR_ZIP']); $tpl->assign('STR_TOWN', $GLOBALS['STR_TOWN']); $tpl->assign('STR_COUNTRY', $GLOBALS['STR_COUNTRY']); if (!empty($mode_transport) && is_delivery_address_necessary_for_delivery_type(vn($_SESSION['session_caddie']->typeId)) && (!is_socolissimo_module_active() || empty($_SESSION['session_commande']['is_socolissimo_order']))) { $tpl->assign('is_mode_transport', true); $tpl->assign('STR_SHIP_ADDRESS', $GLOBALS['STR_SHIP_ADDRESS']); if(is_icirelais_module_active() && !empty($_SESSION['session_commande']['is_icirelais_order'])) { $tpl->assign('text_temp_address', STR_MODULE_ICIRELAIS_TEMP_ADDRESS); } $tpl->assign('societe2', $frm['societe2']); $tpl->assign('nom2_error', $form_error_object->text('nom2')); $tpl->assign('nom2', $frm['nom2']); $tpl->assign('prenom2_error', $form_error_object->text('prenom2')); $tpl->assign('prenom2', $frm['prenom2']); $tpl->assign('email2_error', $form_error_object->text('email2')); $tpl->assign('email2', $frm['email2']); $tpl->assign('contact2_error', $form_error_object->text('contact2')); $tpl->assign('contact2', $frm['contact2']); $tpl->assign('adresse2_error', $form_error_object->text('adresse2')); $tpl->assign('adresse2', $frm['adresse2']); $tpl->assign('code_postal2_error', $form_error_object->text('code_postal2')); $tpl->assign('code_postal2', $frm['code_postal2']); $tpl->assign('ville2_error', $form_error_object->text('ville2')); $tpl->assign('ville2', $frm['ville2']); $tpl->assign('pays2_error', $form_error_object->text('pays2')); $tpl->assign('pays2_options', get_country_select_options($frm['pays2'], null, 'name', false, $_SESSION['session_caddie']->zoneId)); }else { $tpl->assign('is_mode_transport', false); } if ($_SESSION['session_caddie']->total > 0) { $tpl->assign('is_payment_cgv', true); if(isset($erreurs['paiement'])) { $tpl->assign('STR_ERR_PAYMENT', $GLOBALS['STR_ERR_PAYMENT']); } $tpl->assign('payment_error', $form_error_object->text('payment_technical_code')); $tpl->assign('payment_select', get_payment_select($_SESSION['session_caddie']->payment_technical_code)); $tpl->assign('STR_PAYMENT', $GLOBALS['STR_PAYMENT']); $tpl->assign('STR_CGV_OK', $GLOBALS['STR_CGV_OK']); } else { $tpl->assign('is_payment_cgv', false); } $tpl->assign('commentaires', $frm['commentaires']); $tpl->assign('STR_COMMENTS', $GLOBALS['STR_COMMENTS']); $tpl->assign('STR_ETAPE_SUIVANTE', $GLOBALS['STR_ETAPE_SUIVANTE']); $output = $tpl->fetch(); } return $output; } } if (!function_exists('get_order_step2')) { /** * get_order_step2() * * @param array $frm Array with all fields data * @param mixed $mode_transport * @return */ function get_order_step2(&$frm, $mode_transport) { $output = ''; if ($_SESSION['session_caddie']->count_products() == 0) { $output .= $GLOBALS['STR_EMPTY_CADDIE']; } else { $tpl = $GLOBALS['tplEngine']->createTemplate('order_step2.tpl'); $tpl->assign('STR_BEFORE_TWO_POINTS', $GLOBALS['STR_BEFORE_TWO_POINTS']); $tpl->assign('STR_STEP2', $GLOBALS['STR_STEP2']); $tpl->assign('STR_DATE', $GLOBALS['STR_DATE']); $tpl->assign('STR_INVOICE_ADDRESS', $GLOBALS['STR_INVOICE_ADDRESS']); $tpl->assign('STR_SOCIETE', $GLOBALS['STR_SOCIETE']); $tpl->assign('STR_CUSTOMER', $GLOBALS['STR_CUSTOMER']); $tpl->assign('STR_TELEPHONE', $GLOBALS['STR_TELEPHONE']); $tpl->assign('STR_EMAIL', $GLOBALS['STR_EMAIL']); $tpl->assign('STR_ADDRESS', $GLOBALS['STR_ADDRESS']); $tpl->assign('STR_ZIP', $GLOBALS['STR_ZIP']); $tpl->assign('STR_TOWN', $GLOBALS['STR_TOWN']); $tpl->assign('STR_COUNTRY', $GLOBALS['STR_COUNTRY']); $tpl->assign('date', get_formatted_date()); $tpl->assign('societe1', $frm['societe1']); $tpl->assign('nom1', $frm['nom1']); $tpl->assign('prenom1', $frm['prenom1']); $tpl->assign('contact1', $frm['contact1']); $tpl->assign('email1', $frm['email1']); $tpl->assign('adresse1', $frm['adresse1']); $tpl->assign('code_postal1', $frm['code_postal1']); $tpl->assign('ville1', $frm['ville1']); $tpl->assign('pays1', $frm['pays1']); if (trim($frm['commentaires']) != '') { $tpl->assign('STR_COMMENTS', $GLOBALS['STR_COMMENTS']); $tpl->assign('commentaires', $frm['commentaires']); } if (!empty($mode_transport)) { $tpl->assign('STR_SHIPPING_TYPE', $GLOBALS['STR_SHIPPING_TYPE']); $tpl->assign('STR_SHIP_ADDRESS', $GLOBALS['STR_SHIP_ADDRESS']); $tpl->assign('STR_PAYMENT', $GLOBALS['STR_PAYMENT']); $tpl->assign('STR_DELIVERY', $GLOBALS['STR_DELIVERY']); $tpl->assign('is_mode_transport', true); $tpl->assign('payment', get_payment_name($_SESSION['session_caddie']->payment_technical_code)); $tpl->assign('shipping_zone', $_SESSION['session_caddie']->zone); $tpl->assign('shipping_type', $_SESSION['session_caddie']->type); $is_delivery_address_necessary_for_delivery_type = is_delivery_address_necessary_for_delivery_type(vn($_SESSION['session_caddie']->typeId)); $tpl->assign('is_delivery_address_necessary_for_delivery_type', $is_delivery_address_necessary_for_delivery_type); if($is_delivery_address_necessary_for_delivery_type) { $tpl->assign('societe2', $frm['societe2']); $tpl->assign('nom2', $frm['nom2']); $tpl->assign('prenom2', $frm['prenom2']); $tpl->assign('email2', $frm['email2']); $tpl->assign('contact2', $frm['contact2']); $tpl->assign('adresse2', $frm['adresse2']); $tpl->assign('code_postal2', $frm['code_postal2']); $tpl->assign('ville2', $frm['ville2']); $tpl->assign('pays2', $frm['pays2']); } } else { $tpl->assign('is_mode_transport', false); } $tpl->assign('action', $GLOBALS['wwwroot'] . '/achat/fin_commande.php'); if (is_icirelais_module_active() && !empty($_SESSION['session_commande']['is_icirelais_order'])) { $tpl->assign('icirelais_id_delivery_points_radio_inputs', get_icirelais_id_delivery_points_radio_inputs()); } if(is_tnt_module_active() && $GLOBALS['web_service_tnt']->is_type_tntdropoffpoint(vn($_SESSION['session_caddie']->typeId)) && $GLOBALS['web_service_tnt']->is_type_linked_to_tnt(vn($_SESSION['session_caddie']->typeId)) && (defined('IN_STEP1') || defined('IN_STEP2') || defined('IN_STEP3'))) { try { $tpl->assign('get_tnt_id_delivery_points_radio_inputs', $GLOBALS['web_service_tnt']->get_tnt_id_delivery_points_radio_inputs()); } catch (SoapFault $ex) { // var_dump($ex->faultcode, $ex->faultstring, $ex->detail); echo $GLOBALS['tplEngine']->createTemplate('global_error.tpl', array('message' => $GLOBALS['STR_MODULE_TNT_ERREUR_WEBSERVICE'] . $GLOBALS['STR_BEFORE_TWO_POINTS'] . ': '.$ex->faultstring))->fetch(); } } $tpl->assign('caddie_products_summary_table', get_caddie_products_summary_table(false, true, $mode_transport, null)); $tpl->assign('STR_ORDER', $GLOBALS['STR_ORDER']); $tpl->assign('STR_BACK_TO_CADDIE_TXT', $GLOBALS['STR_BACK_TO_CADDIE_TXT']); $output = $tpl->fetch(); } return $output; } } if (!function_exists('get_order_step3')) { /** * get_order_step3() * * @param integer $commandeid * @return */ function get_order_step3($commandeid) { $tpl = $GLOBALS['tplEngine']->createTemplate('order_step3.tpl'); $tpl->assign('payment_form', get_payment_form($commandeid, null, true)); $tpl->assign('resume_commande', affiche_resume_commande($commandeid, false, true)); $tpl->assign('conversion_page', affiche_contenu_html("conversion_page", true)); $tpl->assign('STR_STEP3', $GLOBALS['STR_STEP3']); $tpl->assign('STR_MSG_THANKS', $GLOBALS["STR_MSG_THANKS"]); echo $tpl->fetch(); } } if (!function_exists('affiche_resume_commande')) { /** * affiche_resume_commande() * * @param integer $id * @param boolean $affiche_statut * @param boolean $show_only_owned_by_current_user * @return */ function affiche_resume_commande($id, $affiche_statut, $show_only_owned_by_current_user = true) { if(!empty($_SESSION['session_last_bill_viewed']) && $id == $_SESSION['session_last_bill_viewed']){ // L'utilisateur a payé une commande sans s'être connecté à son compte. On l'autorise à voir le résumé de sa commande $where = 'id = "' . intval($_SESSION['session_last_bill_viewed']) . '"'; } else { // Cas normal d'un utilisateur connecté à son compte // OU si un utilisateur non loggué vient voir cette page sans avoir $_SESSION['session_last_bill_viewed'] correct : par exemple moteur Google Adsense qui vient pour afficher les publicités => il n'y aura rien de trouvé => page sans infos de commandes => normal $where = 'id = "' . intval($id) . '"'; } if($show_only_owned_by_current_user){ $where .= ' AND id_utilisateur = "' . intval(vb($_SESSION['session_utilisateur']['id_utilisateur'])) . '"'; } $qid_commande = query('SELECT * FROM peel_commandes WHERE '.$where); $commande = fetch_object($qid_commande); $output = ''; if (!empty($commande)) { $order_infos = get_order_infos_array($commande); $tpl = $GLOBALS['tplEngine']->createTemplate('resume_commande.tpl'); $tpl->assign('STR_BEFORE_TWO_POINTS', $GLOBALS['STR_BEFORE_TWO_POINTS']); $tpl->assign('STR_ORDER_DETAIL', $GLOBALS['STR_ORDER_DETAIL']); $tpl->assign('STR_ORDER_NUMBER', $GLOBALS['STR_ORDER_NUMBER']); $tpl->assign('STR_DATE', $GLOBALS['STR_DATE']); $tpl->assign('STR_AMOUNT', $GLOBALS['STR_AMOUNT']); $tpl->assign('STR_TTC', $GLOBALS['STR_TTC']); $tpl->assign('STR_INVOICE_ADDRESS', $GLOBALS['STR_INVOICE_ADDRESS']); $tpl->assign('STR_PAYMENT', $GLOBALS['STR_PAYMENT']); $tpl->assign('id', $id); $tpl->assign('date', get_formatted_date($commande->o_timestamp, 'short', 'long')); $tpl->assign('order_amount', $order_infos['net_infos_array']['montant']); $tpl->assign('bill_address', $order_infos['client_infos_bill']); if (!empty($GLOBALS['site_parameters']['mode_transport'])) { $tpl->assign('STR_SHIP_ADDRESS', $GLOBALS['STR_SHIP_ADDRESS']); $tpl->assign('ship_address', $order_infos['client_infos_ship']); } $tpl->assign('payment', get_payment_name($commande->paiement)); if (!empty($GLOBALS['site_parameters']['mode_transport'])) { $tpl->assign('STR_SHIPPING_TYPE', $GLOBALS['STR_SHIPPING_TYPE']); $tpl->assign('shipping_type', $commande->type); } if (!empty($commande->delivery_tracking)) { $tpl->assign('is_delivery_tracking', true); $tpl->assign('STR_TRACKING_LINK', $GLOBALS['STR_TRACKING_LINK']); $tpl->assign('delivery_tracking', $commande->delivery_tracking); if(is_icirelais_module_active()){ $tpl->assign('icirelais', array( 'src' => $GLOBALS['wwwroot'] . '/modules/icirelais/js/icirelais.js', 'value' => vb($commande->delivery_tracking) )); $tpl->assign('STR_MODULE_ICIRELAIS_TRACKING_URL', STR_MODULE_ICIRELAIS_TRACKING_URL); $tpl->assign('STR_MODULE_ICIRELAIS_COMMENT_TRACKING', STR_MODULE_ICIRELAIS_COMMENT_TRACKING); $tpl->assign('STR_MODULE_ICIRELAIS_ERROR_TRACKING', STR_MODULE_ICIRELAIS_ERROR_TRACKING); $tpl->assign('STR_MODULE_ICIRELAIS_CREATE_TRACKING', STR_MODULE_ICIRELAIS_CREATE_TRACKING); } } else { $tpl->assign('is_delivery_tracking', false); } if((defined('IN_STEP1') || defined('IN_STEP2') || defined('IN_STEP3')) && is_tnt_module_active() && $GLOBALS['web_service_tnt']->is_type_linked_to_tnt(vn($_SESSION['session_caddie']->typeId))) { $receiver_info['type_id'] = ''; if(!empty($commande->type)) { // Récupération des informations sur le type de transport sélectionné. $sql = 'SELECT * FROM peel_types WHERE nom_' . $commande->lang . ' = "'. nohtml_real_escape_string($commande->type).'"'; $q = query($sql); if ($this_type = fetch_assoc($q)) { if ($this_type['is_tnt'] == 0) { die($GLOBALS['STR_MODULE_TNT_NOT_ASSOCIATED_ORDER']); } } } // Determine le type de livraison (DROPOFFPOINT,ENTERPRISE,INDIVIDUAL), et le code de service TNT associé(J,JD,JZ) if(!empty($_POST['relais_tnt']) && $this_type['tnt_threshold'] == 0) { // le relais colis est transmis en paramètre, et le type de livraison correspond à une livraison en relais colis $tab_relais_tnt = explode('###', $_POST['relais_tnt']); $order_infos['code_postal2'] = $tab_relais_tnt[0]; $order_infos['ville2'] = $tab_relais_tnt[1]; $receiver_info['type_id'] = $tab_relais_tnt[2];// code XETT du relai de colis $receiver_info['type'] = 'DROPOFFPOINT'; } else { $order_infos['code_postal2'] = $_SESSION['session_commande']['code_postal2']; $order_infos['ville2'] = $_SESSION['session_commande']['ville2']; } if(!empty($commande->xETTCode) && $this_type['tnt_threshold'] == 0) { // le code xETTCode est renseigné pour la commande, et le type de livraison correspond à une livraison en relais colis $receiver_info['type_id'] = $commande->xETTCode; // code XETT du relai de colis $receiver_info['type'] = 'DROPOFFPOINT'; } elseif(!empty($_SESSION['session_commande']['societe2'])) { // Ce n'est pas une commande à livrer en point relais, et un nom d'entreprise est renseigné dans l'adresse de livraison => Livraison en entreprise (code J). $receiver_info['type'] = 'ENTERPRISE'; } else { // Autres cas : livraison à chez le particulier $receiver_info['type'] = 'INDIVIDUAL'; } try { $tpl->assign('STR_MODULE_TNT_FEASIBILITY_REPORT', $GLOBALS['STR_MODULE_TNT_FEASIBILITY_REPORT']); $tpl->assign('tnt_message', $GLOBALS['web_service_tnt']->get_tnt_feasibility_test($order_infos, $receiver_info, true)); } catch (SoapFault $ex) { $tpl->assign('tnt_erreur_message', $GLOBALS['STR_MODULE_TNT_ERREUR_WEBSERVICE'] . BEFORE_TWO_POINTS . ': '.$ex->faultstring ); } $tpl->assign('tnt_message', $tnt_message); } if ($affiche_statut === 1 || $affiche_statut === true) { $tpl->assign('is_payment_delivery_status', true); $tpl->assign('order_statut_paiement_name', get_payment_status_name($commande->id_statut_paiement)); $tpl->assign('STR_ORDER_STATUT_PAIEMENT', $GLOBALS['STR_ORDER_STATUT_PAIEMENT']); $tpl->assign('STR_ORDER_STATUT_LIVRAISON', $GLOBALS['STR_ORDER_STATUT_LIVRAISON']); $tpl->assign('order_statut_livraison_name', get_delivery_status_name($commande->id_statut_livraison)); if (in_array($commande->id_statut_paiement, array(2,3))) { $tpl->assign('STR_INVOICE', $GLOBALS['STR_INVOICE']); $tpl->assign('STR_PRINT_YOUR_BILL', $GLOBALS['STR_PRINT_YOUR_BILL']); $tpl->assign('invoice', array( 'src' => $GLOBALS['wwwroot'] . '/images/view_pdf.gif', 'href' => $GLOBALS['wwwroot'] . '/factures/commande_pdf.php?code_facture=' . urlencode($commande->code_facture) . '&mode=facture', )); } } else { $tpl->assign('is_payment_delivery_status', false); } if (is_payback_module_active()){ $tpl->assign('STR_MODULE_PAYBACK_RETURN_REQUEST', $GLOBALS['STR_MODULE_PAYBACK_RETURN_REQUEST']); if(!defined('STR_RETURN_THIS_PRODUCT')) { $tpl->assign('return_this_product_txt', ''); } else { $tpl->assign('return_this_product_txt', $GLOBALS['STR_MODULE_PAYBACK_RETURN_THIS_PRODUCT']); } } $tpl->assign('is_conditionnement_module_active', is_conditionnement_module_active()); $products_data = array(); $product_infos_array = get_product_infos_array_in_order($id, $commande->devise, $commande->currency_rate); foreach ($product_infos_array as $this_ordered_product) { if (is_attributes_module_active()) { $this_ordered_product["product_text"] = display_option_image($this_ordered_product["product_text"], true); } if(is_conditionnement_module_active ()) { // Les produits sont conditionnés sous forme de lot if(!empty($this_ordered_product['conditionnement'])){ $qte_total = intval($this_ordered_product['quantite']) * $this_ordered_product['conditionnement']; }else{ $qte_total = $this_ordered_product['quantite']; } } $products_data[] = array( 'reference' => $this_ordered_product['reference'], 'product_text' => str_replace("\n", '<br />', $this_ordered_product["product_text"]), 'prix' => fprix($this_ordered_product['prix'], true, $commande->devise, true, $commande->currency_rate), 'conditionnement' => (!empty($product_object->conditionnement)?$product_object->conditionnement:'-'), 'conditionnement_qty' => vb($qte_total), 'quantite' => $this_ordered_product['quantite'], 'total_prix' => fprix($this_ordered_product['total_prix'], true, $commande->devise, true, $commande->currency_rate), 'is_form_retour' => (is_payback_module_active() && in_array($commande->id_statut_paiement, array(2,3)) && $commande->id_statut_livraison == 3 && $this_ordered_product['statut'] = 1 && $this_ordered_product['quantite'] > 0), 'action' => $GLOBALS['wwwroot'] . '/modules/payback/form_retour.php', 'commandeid' => $commande->id, 'utilisateurid' => $commande->id_utilisateur, 'paiement' => $commande->paiement, 'langue' => $commande->lang, 'nom_produit' => $this_ordered_product['nom_produit'], 'taille_produit' => $this_ordered_product['taille'], 'couleur_produit' => $this_ordered_product['couleur'], 'id_produit' => $this_ordered_product['id'], 'prix_ht_produit' => $this_ordered_product['prix_ht'], 'prix_ttc_produit' => $this_ordered_product['prix'], 'tva_produit' => $this_ordered_product['tva'], ); } $tpl->assign('products_data', $products_data); $tpl->assign('STR_LIST_PRODUCT', $GLOBALS['STR_LIST_PRODUCT']); $tpl->assign('STR_REFERENCE', $GLOBALS['STR_REFERENCE']); $tpl->assign('STR_PRODUCT', $GLOBALS['STR_PRODUCT']); $tpl->assign('STR_SOLD_PRICE', $GLOBALS['STR_SOLD_PRICE']); $tpl->assign('STR_QUANTITY', $GLOBALS['STR_QUANTITY']); $tpl->assign('STR_TOTAL_TTC', $GLOBALS['STR_TOTAL_TTC']); $tpl->assign('STR_CONDITIONNEMENT', $GLOBALS['STR_CONDITIONNEMENT']); $tpl->assign('STR_CONDITIONNEMENT_QTY', $GLOBALS['STR_CONDITIONNEMENT_QTY']); $output .= $tpl->fetch(); } return $output; } } if (!function_exists('affiche_liste_commandes')) { /** * affiche_liste_commandes() * * @param string $order * @param string $sort * @return */ function affiche_liste_commandes($order = "id" , $sort = "DESC") { $nb = 30; $output = ''; // Charge la liste des commandes et les affiche. $sql = "SELECT * FROM peel_commandes WHERE id_utilisateur = '" . intval($_SESSION['session_utilisateur']['id_utilisateur']) . "' ORDER BY " . nohtml_real_escape_string($order) . " " . nohtml_real_escape_string($sort) . ""; $tpl = $GLOBALS['tplEngine']->createTemplate('liste_commandes.tpl'); $Links = new Multipage($sql, 'commandes_history'); $results_array = $Links->Query(); if (empty($results_array)) { $tpl->assign('STR_NO_ORDER', $GLOBALS['STR_NO_ORDER']); } else { $tpl->assign('STR_TABLE_SUMMARY_ORDERS', $GLOBALS['STR_TABLE_SUMMARY_ORDERS']); $tpl->assign('STR_ORDER_NUMBER', $GLOBALS['STR_ORDER_NUMBER']); $tpl->assign('STR_DATE', $GLOBALS['STR_DATE']); $tpl->assign('STR_ORDER_STATUT_PAIEMENT', $GLOBALS['STR_ORDER_STATUT_PAIEMENT']); $tpl->assign('STR_ORDER_STATUT_LIVRAISON', $GLOBALS['STR_ORDER_STATUT_LIVRAISON']); $tpl->assign('STR_AMOUNT', $GLOBALS['STR_AMOUNT']); $tpl->assign('STR_PDF_BILL', $GLOBALS['STR_PDF_BILL']); $orders = array(); foreach ($results_array as $order) { $orders[] = array( 'href' => get_current_url(false) . '?mode=details&id=' . $order['id'] . '&timestamp=' . urlencode($order['o_timestamp']), 'info_src' => $GLOBALS['wwwroot'] . '/icones/info.gif', 'pdf_src' => $GLOBALS['wwwroot'] . '/images/view_pdf.gif', 'facture_href' => $GLOBALS['wwwroot'] . '/factures/commande_pdf.php?code_facture=' . $order['code_facture'] . '&mode=facture', 'id' => $order['id'], 'date' => get_formatted_date($order['o_timestamp']), 'payment_status_name' => get_payment_status_name($order['id_statut_paiement']), 'delivery_status_name' => get_delivery_status_name($order['id_statut_livraison']), 'prix' => fprix($order['montant'], true, $order['devise'], true, $order['currency_rate']), ); } $tpl->assign('orders', $orders); $tpl->assign('multipage', $Links->GetMultipage()); } $tpl->assign('STR_ORDER_HISTORY', $GLOBALS['STR_ORDER_HISTORY']); $output .= $tpl->fetch(); return $output; } } if (!function_exists('affichage_fin_cb')) { /** * affichage_fin_cb() * * @param integer $order_id * @param boolean $payment_validated * @return */ function affichage_fin_cb($order_id, $payment_validated, $message = '') { $tpl = $GLOBALS['tplEngine']->createTemplate('fin_cb.tpl'); $tpl->assign('payment_validated', $payment_validated); $tpl->assign('message', $message); if ($payment_validated) { $tpl->assign('payment_msg', $GLOBALS['STR_PAYMENT_SUCCEED']); $tpl->assign('bottom_msg', $GLOBALS['STR_YOU_CAN_EDIT_YOUR_ORDER']); $tpl->assign('resume_commande', affiche_resume_commande($order_id, false, true)); }else{ $tpl->assign('payment_msg', $GLOBALS['STR_PAYMENT_FAILED']); $tpl->assign('bottom_msg', $GLOBALS['STR_ORDER_RENEW_INVITE']); } $tpl->assign('STR_ORDER_STATUT', $GLOBALS['STR_ORDER_STATUT']); echo $tpl->fetch(); } } if (!function_exists('get_caddie_products_summary_table')) { /** * get_caddie_products_summary_table() * * @param mixed $with_form_fields * @param mixed $with_totals_summary * @param mixed $mode_transport * @param mixed $shipping_text * @return */ function get_caddie_products_summary_table($with_form_fields = false, $with_totals_summary = true, $mode_transport, $shipping_text = null) { $output = ''; if (empty($shipping_text)) { $shipping_text = $GLOBALS['STR_SHIPPING_COST']; } if (display_prices_with_taxes_active()) { $total_remise_displayed = $_SESSION['session_caddie']->total_remise; $total_ecotaxe_displayed = $_SESSION['session_caddie']->total_ecotaxe_ttc; $small_order_overcost_displayed = $_SESSION['session_caddie']->small_order_overcost_amount; $cout_transport_displayed = $_SESSION['session_caddie']->cout_transport; $taxes_displayed = $GLOBALS['STR_TTC']; } else { $total_remise_displayed = $_SESSION['session_caddie']->total_remise_ht; $total_ecotaxe_displayed = $_SESSION['session_caddie']->total_ecotaxe_ht; $small_order_overcost_displayed = $_SESSION['session_caddie']->small_order_overcost_amount_ht; $cout_transport_displayed = $_SESSION['session_caddie']->cout_transport_ht; $taxes_displayed = $GLOBALS['STR_HT']; } $tpl = $GLOBALS['tplEngine']->createTemplate('caddie_products_summary_table.tpl'); $tpl->assign('taxes_displayed', $taxes_displayed); $tpl->assign('suppression_src', $GLOBALS['wwwroot'] . '/images/suppression.png'); $tpl->assign('no_photo_src', $GLOBALS['repertoire_upload'] . '/' . $GLOBALS['site_parameters']['default_picture']); $tpl->assign('with_form_fields', $with_form_fields); $tpl->assign('is_conditionnement_module_active', is_conditionnement_module_active()); $tpl->assign('is_attributes_module_active', is_attributes_module_active()); $tpl->assign('tarif_paiement', fprix($_SESSION['session_caddie']->tarif_paiement, true)); $tpl->assign('STR_BEFORE_TWO_POINTS', $GLOBALS['STR_BEFORE_TWO_POINTS']); $tpl->assign('STR_TABLE_SUMMARY_CADDIE', $GLOBALS['STR_TABLE_SUMMARY_CADDIE']); $tpl->assign('STR_FRAIS_GESTION', $GLOBALS['STR_FRAIS_GESTION']); $tpl->assign('STR_PRODUCT', $GLOBALS['STR_PRODUCT']); $tpl->assign('STR_STOCK', $GLOBALS['STR_STOCK']); $tpl->assign('STR_UNIT_PRICE', $GLOBALS['STR_UNIT_PRICE']); $tpl->assign('STR_OPTION_PRICE', $GLOBALS['STR_OPTION_PRICE']); $tpl->assign('STR_QUANTITY', $GLOBALS['STR_QUANTITY']); $tpl->assign('STR_REMISE', $GLOBALS['STR_REMISE']); $tpl->assign('STR_TOTAL_PRICE', $GLOBALS['STR_TOTAL_PRICE']); $tpl->assign('STR_DELETE_PROD_CART', $GLOBALS['STR_DELETE_PROD_CART']); $tpl->assign('STR_FOR_GIFT', $GLOBALS['STR_FOR_GIFT']); $tpl->assign('STR_DELIVERY_STOCK', $GLOBALS['STR_DELIVERY_STOCK']); $tpl->assign('STR_COLOR', $GLOBALS['STR_COLOR']); $tpl->assign('STR_SIZE', $GLOBALS['STR_SIZE']); $tpl->assign('STR_EMAIL_FRIEND', $GLOBALS['STR_EMAIL_FRIEND']); $tpl->assign('STR_HOLIDAY_AVAILABLE_CADDIE', $GLOBALS['STR_HOLIDAY_AVAILABLE_CADDIE']); $tpl->assign('STR_DAYS', $GLOBALS['STR_DAYS']); $tpl->assign('STR_ECOTAXE', $GLOBALS['STR_ECOTAXE']); $tpl->assign('STR_INCLUDED', $GLOBALS['STR_INCLUDED']); $products = array(); foreach ($_SESSION['session_caddie']->articles as $numero_ligne => $product_id) { $product_object = new Product($product_id, null, false, null, true, !is_user_tva_intracom_for_no_vat() && !is_micro_entreprise_module_active()); $product_object->set_configuration(vb($_SESSION['session_caddie']->couleurId[$numero_ligne]), vb($_SESSION['session_caddie']->tailleId[$numero_ligne]), vn($_SESSION['session_caddie']->id_attribut[$numero_ligne]), is_reseller_module_active() && is_reseller()); if (!empty($product_object->id)) { // Récupération des variables du caddie $couleur = vb($_SESSION['session_caddie']->couleurId[$numero_ligne]); $taille = vb($_SESSION['session_caddie']->tailleId[$numero_ligne]); if (is_giftlist_module_active()) { $listcadeaux_owner = vn($_SESSION['session_caddie']->giftlist_owners[$numero_ligne]); } $quantite = vn($_SESSION['session_caddie']->quantite[$numero_ligne]); if (is_stock_advanced_module_active() && $product_object->on_stock == 1) { $stock_commandable = get_stock_commandable($product_object, $quantite); } $prix = vn($_SESSION['session_caddie']->prix[$numero_ligne]); $prix_ht = vn($_SESSION['session_caddie']->prix_ht[$numero_ligne]); $prix_cat = vn($_SESSION['session_caddie']->prix_cat[$numero_ligne]); $prix_cat_ht = vn($_SESSION['session_caddie']->prix_cat_ht[$numero_ligne]); $total_prix = vn($_SESSION['session_caddie']->total_prix[$numero_ligne]); $total_prix_ht = vn($_SESSION['session_caddie']->total_prix_ht[$numero_ligne]); $tva_percent = vn($_SESSION['session_caddie']->tva_percent[$numero_ligne]); $tva = vn($_SESSION['session_caddie']->tva[$numero_ligne]); $poids = vb($_SESSION['session_caddie']->poids[$numero_ligne]); $points = vb($_SESSION['session_caddie']->points[$numero_ligne]); $percent_remise_produit = vn($_SESSION['session_caddie']->percent_remise_produit[$numero_ligne]); $remise = vn($_SESSION['session_caddie']->remise[$numero_ligne]); $remise_ht = vn($_SESSION['session_caddie']->remise_ht[$numero_ligne]); if (is_stock_advanced_module_active()) { $etat_stock = vn($_SESSION['session_caddie']->etat_stock[$numero_ligne]); $delivery_stock = vb($_SESSION['session_caddie']->delai_stock[$numero_ligne]); } $email_check = vb($_SESSION['session_caddie']->email_check[$numero_ligne]); if (is_module_ecotaxe_active()) { $ecotaxe = vb($_SESSION['session_caddie']->ecotaxe_ttc[$numero_ligne]); } // $total_attribut = vn($_SESSION['session_caddie']->total_prix_attribut[$numero_ligne]); $urlprod_with_cid = $product_object->get_product_url(true, false) . "cId=" . $_SESSION['session_caddie']->couleurId[$numero_ligne]; $display_picture = $product_object->get_product_main_picture(false, $_SESSION['session_caddie']->couleurId[$numero_ligne]); if (display_prices_with_taxes_active()) { $option = vn($_SESSION['session_caddie']->option[$numero_ligne]); $remise_displayed = $remise; // $total_attribut_displayed = $total_attribut; $prix_cat_displayed = $prix_cat; $prix_avant_code_promo_sans_option_displayed = $_SESSION['session_caddie']->prix_avant_code_promo[$numero_ligne] - $_SESSION['session_caddie']->option[$numero_ligne] * (1 - $_SESSION['session_caddie']->percent_remise_produit[$numero_ligne] / 100); $total_prix_displayed = $total_prix; } else { $option = vn($_SESSION['session_caddie']->option_ht[$numero_ligne]); $remise_displayed = $remise_ht; // $total_attribut_displayed = $total_attribut / (1 + $product_object->tva / 100); $prix_cat_displayed = $prix_cat_ht; $prix_avant_code_promo_sans_option_displayed = $_SESSION['session_caddie']->prix_ht_avant_code_promo[$numero_ligne] - $_SESSION['session_caddie']->option_ht[$numero_ligne] * (1 - $_SESSION['session_caddie']->percent_remise_produit[$numero_ligne] / 100); $total_prix_displayed = $total_prix_ht; } $tmpProd = array( 'delete_href' => $GLOBALS['wwwroot'] . '/achat/caddie_affichage.php?func=enleve&ligne=' . $numero_ligne . '&id=' . $product_object->id, 'urlprod_with_cid' => $urlprod_with_cid, 'numero_ligne' => $numero_ligne, 'id' => $product_id, 'listcadeaux_owner' => vb($listcadeaux_owner), 'option' => $option, 'id_attribut' => vb($_SESSION['session_caddie']->id_attribut[$numero_ligne]), 'name' => $product_object->name, 'configuration_attributs_description' => (!empty($product_object->configuration_attributs_list) ? $product_object->configuration_attributs_description : NULL), 'email_check' => $email_check, 'prix' => fprix($prix_cat_displayed, true) ); if ($display_picture) { $tmpProd['src'] = $GLOBALS['repertoire_upload'] . '/thumbs/' . thumbs($display_picture, 75, 75, 'fit'); } else { $tmpProd['src'] = $GLOBALS['repertoire_upload'] . '/thumbs/' . thumbs($GLOBALS['site_parameters']['default_picture'], 75, 75, 'fit'); } if (is_giftlist_module_active() && $listcadeaux_owner) { $tmpProd['listcadeaux_owner_name'] = getUsername($listcadeaux_owner); } if (is_stock_advanced_module_active() && !empty($delivery_stock)) { $tmpProd['delivery_stock'] = get_formatted_duration((intval($delivery_stock) * 24 * 3600), false, 'month'); } if (!empty($_SESSION['session_caddie']->couleurId[$numero_ligne])) { $tmpProd['color'] = array( 'name' => get_color_name($couleur), 'id' => intval($_SESSION['session_caddie']->couleurId[$numero_ligne]) ); } if (!empty($_SESSION['session_caddie']->tailleId[$numero_ligne])) { $tmpProd['size'] = array( 'name' => get_size_name($taille), 'id' => intval($_SESSION['session_caddie']->tailleId[$numero_ligne]) ); } if (is_module_vacances_active() && get_vacances_type() == 2) { //on récupère le fournisseur pour afficher sa date de retour $supplier_back = query("SELECT on_vacances, on_vacances_date FROM peel_utilisateurs WHERE id_utilisateur = " . $product_object->id_utilisateur . ""); $res_supplier_back = fetch_assoc($supplier_back); $nbjours = get_vacances_jours($product_object->id_utilisateur); if ($nbjours) { $tmpProd['vacances'] = array( 'nbjours' => $nbjours, 'date' => get_formatted_date($res_supplier_back['on_vacances_date']) ); } } if (round($prix_cat_displayed, 2) != round($prix_avant_code_promo_sans_option_displayed, 2)) { $tmpProd['prix_promo'] = fprix($prix_avant_code_promo_sans_option_displayed, true); } if (is_module_ecotaxe_active() && !empty($ecotaxe)) { $tmpProd['prix_ecotaxe'] = fprix($ecotaxe, true); } if ($option != 0) { $tmpProd['option_prix'] = fprix($option * (1 - $_SESSION['session_caddie']->percent_remise_produit[$numero_ligne] / 100), true); if (!empty($_SESSION['session_caddie']->percent_remise_produit[$numero_ligne])) $tmpProd['option_prix_remise'] = fprix($option, true); } if ($with_form_fields && $product_object->on_download == 0) { $tmpProd['quantite'] = array( 'value' => $quantite, ); if (is_stock_advanced_module_active() && $product_object->on_stock == 1) { // On prépare le message à afficher en javascript si la quantité demandée est trop élevée par rapport au stock disponible $message = ''; $display_message = false; $force_update_quantity = false; if ($product_object->allow_add_product_with_no_stock_in_cart() == false) { // Ensuite, doit t'on mettre à jour la quantité dans le champ. Il est possible de mettre plus de produits au panier si la configuration du site le permet. Cette information est fourni par la fonction $product_object->allow_add_product_with_no_stock_in_cart(). // Préparation du message pour les utilisateurs afin de les informer sur les conditions de modification de quantité pour ce produit. if (!empty($product_object->resupplying)) { $force_update_quantity = true; $display_message = true; // La quantité à ajouter est égal au maximum de la quantité commandable $message = $GLOBALS['STR_QUANTITY_INSUFFICIENT'] . "\n"; if ($stock_commandable == 0) { // Aucun produit ajouté au caddie $message .= $GLOBALS['STR_ZERO_PRODUCT_ADD']; // on n'ajoute rien au panier } elseif ($stock_commandable == 1) { // un seul produit ajouté $message .= $stock_commandable . ' ' . $GLOBALS['STR_QUANTITY_PRODUCT_ADD']; } else { // plus de un produit ajoutés au caddie $message .= $stock_commandable . ' ' . $GLOBALS['STR_QUANTITY_PRODUCTS_ADD']; } } } elseif (affiche_etat_stock(get_stock_temp($product_object->id), false, true, $product_object->resupplying, "id") == 1) { // Il faut déjà savoir si il faut afficher un message. La règle est qu'il ne faut pas afficher de message si l'etat de stock du produit n'est pas à l'état 1 $display_message = true; $force_update_quantity = false; // Message spécifique pour les produits non resupplying $message = $GLOBALS['STR_POPUP_QUANTITY_MESSAGE_1'] . ' ' . $stock_commandable . ' ' . $GLOBALS['STR_POPUP_QUANTITY_MESSAGE_2'] . " [QUANTIY] " . $GLOBALS['STR_POPUP_QUANTITY_MESSAGE_3'] . " \r\n" . ' ==> ' . affiche_etat_stock(null, false, true, $product_object->resupplying, "name"); } $tmpProd['quantite']['display_message'] = $display_message; $tmpProd['quantite']['force_update_quantity'] = $force_update_quantity; $tmpProd['quantite']['message'] = $message; $tmpProd['quantite']['stock_commandable'] = $stock_commandable; } } else { $tmpProd['quantite'] = $quantite; } if(is_conditionnement_module_active ()) { if(!empty($product_object->conditionnement)){ $tmpProd['conditionnement_qty'] = intval($quantite) * intval($product_object->conditionnement); }else{ $tmpProd['conditionnement_qty'] = intval($quantite); } $tmpProd['conditionnement'] = (!empty($product_object->conditionnement)?$product_object->conditionnement:'-'); } if($remise_displayed > 0) { $tmpProd['remise'] = fprix($remise_displayed, true); } $tmpProd['total_prix'] = fprix($total_prix_displayed, true); $products[] = $tmpProd; } unset($product_object); } $tpl->assign('products', $products); $tpl->assign('with_totals_summary', $with_totals_summary); $tpl->assign('STR_WITH_PROMO_CODE', $GLOBALS['STR_WITH_PROMO_CODE']); $tpl->assign('STR_ON_CATEGORY', $GLOBALS['STR_ON_CATEGORY']); $tpl->assign('STR_SMALL_ORDER_OVERCOST_TEXT', $GLOBALS['STR_SMALL_ORDER_OVERCOST_TEXT']); $tpl->assign('STR_OFFERED', $GLOBALS['STR_OFFERED']); $tpl->assign('STR_FROM', $GLOBALS['STR_FROM']); $tpl->assign('STR_TTC', $GLOBALS['STR_TTC']); $tpl->assign('STR_TOTAL_HT', $GLOBALS['STR_TOTAL_HT']); $tpl->assign('STR_VAT', $GLOBALS['STR_VAT']); $tpl->assign('STR_NO_VAT_APPLIABLE', $GLOBALS['STR_NO_VAT_APPLIABLE']); $tpl->assign('STR_AVOIR', $GLOBALS['STR_AVOIR']); $tpl->assign('net_txt', $GLOBALS['STR_NET']); $tpl->assign('STR_ORDER_POINT', $GLOBALS['STR_ORDER_POINT']); $tpl->assign('STR_GIFT_POINTS', $GLOBALS['STR_GIFT_POINTS']); $product_object = new Product($id, null, false, null, true, !is_user_tva_intracom_for_no_vat() && !is_micro_entreprise_module_active()); $tpl->assign('affiche_etat_stock', affiche_etat_stock($stock_remain_all, false, true, $product_object->resupplying)); if ($with_totals_summary) { if (is_module_ecotaxe_active() && !empty($_SESSION['session_caddie']->total_ecotaxe_ttc)) { $tpl->assign('total_ecotaxe', fprix($total_ecotaxe_displayed, true)); } // - Si la session client contient une remise > 0 if (!empty($_SESSION['session_caddie']->total_remise)) { $tpl->assign('total_remise', fprix($total_remise_displayed, true)); if (!empty($_SESSION['session_caddie']->percent_code_promo) || !empty($_SESSION['session_caddie']->valeur_code_promo)) { $tpl->assign('code_promo', array( 'value' => $_SESSION['session_caddie']->code_promo, 'total' => (!empty($_SESSION['session_caddie']->percent_code_promo) ? fprix($_SESSION['session_caddie']->total_reduction_percent_code_promo, true) : fprix($_SESSION['session_caddie']->valeur_code_promo, true)), 'cat_name' => (!empty($_SESSION['session_caddie']->cat_code_promo) ? get_category_name($_SESSION['session_caddie']->cat_code_promo) : FALSE) )); } } // Attention : un test !empty ne marche pas sur $GLOBALS['site_parameters']['small_order_overcost_limit'] car au format "0.00" if ($GLOBALS['site_parameters']['small_order_overcost_limit'] != 0 && $_SESSION['session_caddie']->total >= $GLOBALS['site_parameters']['minimal_amount_to_order']) { $tpl->assign('sool', array( 'prix' => fprix($small_order_overcost_displayed, true), 'limit_prix' => fprix($GLOBALS['site_parameters']['small_order_overcost_limit'], true) )); } if ($mode_transport != 0) { $tpl->assign('transport', array( 'prix' => fprix($cout_transport_displayed, true), 'shipping_text' => $shipping_text )); } // if ($_SESSION['session_caddie']->total > 0) { if (!is_micro_entreprise_module_active()) { $tpl->assign('micro', array( 'prix_th' => fprix($_SESSION['session_caddie']->total_ht, true), 'prix_tva' => fprix($_SESSION['session_caddie']->total_tva, true) )); } if (!empty($_SESSION['session_caddie']->avoir)) { $tpl->assign('prix_avoir', fprix($_SESSION['session_caddie']->avoir, true)); } $tpl->assign('prix_total', fprix($_SESSION['session_caddie']->total, true)); $tpl->assign('total_points', $_SESSION['session_caddie']->total_points); } $output = $tpl->fetch(); return $output; } } ?>
    • 0
  4. Simon développeur PEEL a ajouté un message dans un sujet  Paypal   

    Bonjour,
     
    Ces modifications seront publiés dans la version 7.0.4 à venir. Vous pourrez alors reprendre le fichier ipn.php du module paypal de cette version.
    • 0
  5. francisp78 a ajouté un sujet dans Module PEEL Premium pour PEEL SHOPPING   

    Paypal
    Bonjour à toute l'équipe d'advisto,
    J'ai reçu un message de Paypal dont le sujet est : Action requise avant le 7 octobre 2013.
     
    Une partie du contenu du message est :
     
    "...Les marchands doivent mettre à jour leurs scripts IPN et/ou PDT pour pouvoir utiliser le protocole HTTP 1.1 et inclure l'en-tête HTTP "Host" et "Connection: close” dans le script de retransmission de données IPN..."
     
    Mon site est sous Peel Premium version 6.3.
     
    Y-a-t-il des modifications à effectuer sur le module Paypal, pour qu'il fonctionne correctement à la date du 7 octobre 2013 conformément à la suggestion de mise à jour de Paypal?
     
    Cordialement
     
    Francis P. 
    • 4 réponses
    • 2 284 vues
  6. Simon développeur PEEL a ajouté un message dans un sujet  Ajouter L'état De Stock Des Produit Dans Le Caddie.   

    Bonjour,
     
    Vous pouvez envoyer le fichier display_caddie pour résoudre le problème de l'id indéfini.
    Par contre pour le calcul de stock_remain_all, il faut se rapprocher du service commercial pour que l'on traite ce type de sujet. Les problématiques liés aux calculs des stocks n'est jamais simple et nécessite du temps pour être traité correctement.
    • 0
  7. eXtreme a ajouté un message dans un sujet  Changer Le Nom Des Images   

    De retour pour mon problème de nom des images.
     
    J'ai fait un test avec la version 7.3. Dans lib\fonctions\fonctions.php format_filename_base je le passe en $rename_file à false ça marche.
     
    Par contre dans la version 6.3 dans lib\fonctions\fonctions.php j'ai pas function format_filename_base ?
     
    function upload($the_file, $rename_file = true, $file_kind = null, $image_max_width = null, $image_max_height = null) { $error = get_upload_errors_text($the_file, $file_kind); // Teste la validité du téléchargement if (empty($error)) { // Upload OK $extension = pathinfo($the_file['name'], PATHINFO_EXTENSION); if ($rename_file) { $dateheure = strftime("%d%m%y_%H%M%S"); $mdp = MDP(); $the_new_file_name_without_extension = $dateheure . "_PEEL_" . $mdp; } else { $modified_old_name_without_extension = String::strtolower(String::convert_accents(str_replace(array('%2520', '%20', ';', ',', ' ', '^', '  
    J'ai beau chercher, je trouve pas :mellow:
    • 0
  8. Simon développeur PEEL a ajouté un message dans un sujet  Téléchargement Pdf Impossible Dans Rubriques   

    Bonjour,
     
    Oui, effectivement, il faut que la fonction upload soit paramétré de cette façon
    upload('image', false, 'image_or_pdf', $GLOBALS['site_parameters']['image_max_width'], $GLOBALS['site_parameters']['image_max_height'], null, null, vb($frm['image']));
    pour permettre l'upload de fichier PDF. C'est le cas sur la version 7.0.3 actuellement.
     
    La correction que je donne reste valable pour exploiter le PDF en front office.
    • 0
  9. djespace a ajouté un message dans un sujet  Ajouter L'état De Stock Des Produit Dans Le Caddie.   

    Bonjour,
     
    J'ai rajouté la ligne pour initialiser la classe Product.
    Le message concerné disparaît, par contre j'ai le même avec id maintenant :
     
    Notice: Undefined variable: id in /home/www/ledsboutique/lib/fonctions/display_caddie.php on line 910  
    Comment lui dire justement que $id est l'id du produit ?
     
    Pour le second message d'erreur :
    Je peux vous envoyer le fichier si vous voulez.
    Sinon quelle partie du code dois-je copier et ou exactement ?
    J'ai beau faire dans un sens ou dans l'autre, avec la fonction affiche_critere_stock ou get_product_stock_state, je n'y parviens pas.


    Merci.
     
    • 0
  10. paulanna a ajouté un message dans un sujet  Création De Produits Similaires   

     
    je ne vois pas comment faire sans utiliser la table, où vais-je trouver les données dont j'ai besoin ?
    • 0
  11. paulanna a ajouté un message dans un sujet  Téléchargement Pdf Impossible Dans Rubriques   

    bonjour,
     
    je ne comprends pas !
     
    ma remarque porte sur le fait qu'on ne peut pas télécharger un fichier PDF dans la page rubrique du BO, pour les articles c'est OK mais pour les rubriques.
     
    merci
    • 0
  12. Simon développeur PEEL a ajouté un message dans un sujet  Téléchargement Pdf Impossible Dans Rubriques   

    Bonjour,
     
    Il faut modifier le code qui affiche les fichiers pour les articles et rubriques, puisque celui-ci prévoit juste l'affichage d'image. Les corrections à apporter sont :
    Dans le fichier lib/fonctions/display_caddie.php, remplacer 
                if (!empty($article['image1'])){                 $this_thumb = thumbs($article['image1'], $GLOBALS['site_parameters']['medium_width'], $GLOBALS['site_parameters']['medium_height'], 'fit');                 $tpl->assign('image_src', $GLOBALS['repertoire_upload'] . '/thumbs/' . $this_thumb);             } par
                if (!empty($article['image1'])) {                 if (pathinfo($article['image1'], PATHINFO_EXTENSION) == 'pdf') {                     $this_thumb = thumbs('logoPDF_small.png', $GLOBALS['site_parameters']['medium_width'], $GLOBALS['site_parameters']['medium_height'], 'fit', $GLOBALS['dirroot'] .'/images/');                 } else {                     $this_thumb = thumbs($article['image1'], $GLOBALS['site_parameters']['medium_width'], $GLOBALS['site_parameters']['medium_height'], 'fit');                 }                 $tpl->assign('main_image', array(                     'href' => $GLOBALS['repertoire_upload'] . '/' . String::rawurlencode($article['image1']),                     'src' => $GLOBALS['repertoire_upload'] . '/thumbs/' . $this_thumb,                     'is_pdf' => !(pathinfo($article['image1'], PATHINFO_EXTENSION) != 'pdf')                 ));             } dans la fonction get_article_details_html et
     
                if (!empty($rowrub['image'])) {                 $this_thumb = thumbs($rowrub['image'], $GLOBALS['site_parameters']['medium_width'], $GLOBALS['site_parameters']['medium_height'], 'fit');                 $tpl->assign('image_src', $GLOBALS['repertoire_upload'] . '/thumbs/' . $this_thumb);             } par
                if (!empty($rowrub['image'])) {                 if (pathinfo($rowrub['image'], PATHINFO_EXTENSION) == 'pdf') {                     $this_thumb = thumbs('logoPDF_small.png', $GLOBALS['site_parameters']['medium_width'], $GLOBALS['site_parameters']['medium_height'], 'fit', $GLOBALS['dirroot'] .'/images/');                 } else {                     $this_thumb = thumbs($rowrub['image'], $GLOBALS['site_parameters']['medium_width'], $GLOBALS['site_parameters']['medium_height'], 'fit');                 }                 $tpl->assign('main_image', array(                     'href' => $GLOBALS['repertoire_upload'] . '/' . String::rawurlencode($rowrub['image']),                     'src' => $GLOBALS['repertoire_upload'] . '/thumbs/' . $this_thumb,                     'is_pdf' => !(pathinfo($rowrub['image'], PATHINFO_EXTENSION) != 'pdf')                 ));             } dans la fonction get_articles_list_brief_html(). Ensuite, dans le fichier articles_list_brief_html.tpl, remplacer 
     
            {if isset($image_src)}             <p><img style="margin: 5px;" src="{$image_src|escape:'html'}" alt="{$name}" /></p>         {/if} par
            {if isset($main_image)}             {if $main_image.is_pdf}                 <a style="margin: 5px;" href="{$main_image.href|escape:'html'}" onclick="return(window.open(this.href)?false:true);"><img src="{$wwwroot}/images/logoPDF_small.png" alt="{$name}" /></a>             {else}                 <p><img style="margin: 5px;" src="{$main_image.href|escape:'html'}" alt="{$name}" /></p>             {/if}         {/if}  
    puis dans le fichier article_details_html.tpl, remplacer 
            {if isset($image_src)}             <p class="center"><img src="{$image_src|escape:'html'}" alt="{$titre}" /></p>         {/if} par 
            {if isset($main_image)}             {if $main_image.is_pdf}                 <a style="margin: 5px;" href="{$main_image.href|escape:'html'}" onclick="return(window.open(this.href)?false:true);"><img src="{$wwwroot}/images/logoPDF_small.png" alt="{$titre}" /></a>             {else}                 <p><img style="margin: 5px;" src="{$main_image.href|escape:'html'}" alt="{$titre}" /></p>             {/if}         {/if}  
    Ces corrections seront également dans la futur version.
    • 0
  13. Simon développeur PEEL a ajouté un message dans un sujet  Ajouter L'état De Stock Des Produit Dans Le Caddie.   

    Bonjour,

    Pour l'erreur
    Undefined variable: product_object in /home/www/ledsboutique/lib/fonctions/display_caddie.php on line 910 Notice: Trying to get property of non-object in /home/www/ledsboutique/lib/fonctions/display_caddie.php on line 910
    => Il faut initialiser la classe Product au dessus de la ligne concernée : $product_object = new Product($id, null, false, null, true, !is_user_tva_intracom_for_no_vat() && !is_micro_entreprise_module_active());
    $id est l'id du produit.

    Pour l'erreur Notice: Undefined variable: stock_remain_all in /home/www/ledsboutique/lib/fonctions/display_caddie.php on line 910, déboguer sans voir l'ensemble du code est difficile. Je peux vous proposer d'utiliser la fonction get_product_stock_state de la classe Product, ou de reprendre l'intégralité du calcul de cette variable de la fonction affiche_critere_stock dans la page lib\fonctions\display_product.php
    • 0
  14. Simon développeur PEEL a ajouté un message dans un sujet  Problème De Paiement / Devises   

    Bonjour,
     
    Permettre l'affichage du prix d'une devise différente de la devise utilisée pour le paiement correspond à un développement spécifique. Je vous invite à contacter notre service commercial sur contact@peel.fr ou 01 75 43 62 92 pour vous accompagner dans vos démarches de personnalisation de votre boutique en ligne PEEL Shopping.
    • 0
  15. Simon développeur PEEL a ajouté un message dans un sujet  Ajout Tag Dans Code Promos Affichage Email   

    Bonjour,
     
    Vous pouvez lire le sujet qui explique comment ajouter des tags dans les emails.
    • 0
  16. Simon développeur PEEL a ajouté un message dans un sujet  Remplacer les ereg par des preg_match   

    Bonjour,
     
    Les expressions régulières ne sont pas correctement formées. Vous pouvez lire http://www.php.net/manual/fr/function.preg-match.php et http://www.php.net/manual/fr/pcre.pattern.php pour voir comment utiliser les expressions régulières.
    • 0
  17. J1P a ajouté un sujet dans Module PEEL Premium pour PEEL SHOPPING   

    Ajout Tag Dans Code Promos Affichage Email
    Bonjour,
     
    Ma version Premium 6.2
     
    Voila je rencontre un probleme et je ne trouve pas la solution, je suis sans doute idiote car c'est sans doute sous mes yeux
     
    J'ai ajoute un nouveau champ dans codes promo, lorsque j'ajoute un code promo j'ai cree un champ qui s'appelle link pour pouvoir afficher un lien personnalise au code promo.
    Jusque la tout va bien, ce lien apparait bien dans la base de donnees et est donc bien enregistre avec le code promo
     
    Le probleme vient lorsque j'envoies un email contenant le code promo a un client, a la place de mon lien il apparait juste [LINK]
     
    Voici mon template email
     
    Hello [CIVILITE] [PRENOM] [NOM_FAMILLE],

    In order to thank you for your order on our online shop, we are offering you this promotional code: [NOM_CODE_PROMO].

    It allows you to benefit from a [REMISE] discount on your next order.

    This promotional code can only be used by you once, and you can use it from now on until the following date [DATE_FIN].
     
    Please visit our special offer at [LINK]
     
    J'oublies certainement quelquechose mais je ne vois
     
    Une idee ?
     
    Merci ANh
    • 1 réponse
    • 4 372 vues
  18. kimono a ajouté un sujet dans Module PEEL Premium pour PEEL SHOPPING   

    Problème De Paiement / Devises
    J'ai une boutique en ligne de produits japonais utilisant un compte Paypal situé au Japon. Je désire donc être réglé en yens, néanmoins ma clientèle se trouvant essentiellement en Europe je veux permettre l'affichage des prix en euros et éventuellement dans d'autres devises.
    Le problème c'est que lorsque le client affiche le tarif en euro le règlement s'effectue aussi en euro, je dois donc ensuite payer les frais de conversion de devise vers le yen, alors que normalement c'est le client qui devrait régler cette conversion.
     
    La plupart des autres logiciels marchand permettent le règlement dans une seule devise, les autres devises ne s'affichant qu'à titre d'information.
    Cette possibilité est-elle prévue par Peel ?
    • 1 réponse
    • 1 344 vues
  19. Gilles Boussin a ajouté un message dans un sujet  Afficher Les Sous-Catégories   

    Bonjour,
     
    Sur ce sujet, il n'y a pas d'autre réglage que celui que vous avez mentionné.
    • 0
  20. paulanna a ajouté un message dans un sujet  Afficher Les Sous-Catégories   

    Ok je pensais avoir déréglé quelque chose.
     
    est-ce que PEEL offre la possibilité d'afficher les sous catégories afférentes à la catégories mère sur la page achat ?
     
    merci
    • 0
  21. paulanna a ajouté un message dans un sujet  Création De Produits Similaires   

    oui bien sûr je souhaite faire une requête pour les trouver automatiquement
     
    je vois pas la marche à suivre dans la mesure où je ne dois pas passer par la table peel_produits_references
     
    merci de vos réponses
    • 0
  22. djespace a ajouté un sujet dans PEEL SHOPPING : logiciel open source de boutique en ligne   

    Ajouter L'état De Stock Des Produit Dans Le Caddie.
    Bonjour,

    Je cherche à adapter sur mon peel 7 un développement que j'avais fait faire pour ma version 6.3.1
    Il s'agit d'afficher l'état de stock sur chaque ligne produit dans le panier.

     
    Je suis parvenu à un premier résultat :
    qui consiste à assigner l'affichage de mon état de stock dans display_caddie.php en ajoutant ceci ligne 1826 :
    $tpl->assign('affiche_etat_stock', affiche_etat_stock($stock_remain_all, false, true, $product_object->resupplying)); Ensuite je peux utiliser la variable ($affiche_etat_stock) dans caddie_products_summary_table.tpl, ligne 75
     
    <td scope="row" class="lignecaddie_stock" align="center"> {if isset($affiche_etat_stock)}{$affiche_etat_stock}{/if} </td> J'ai bien l'affichage de mon état de stock sur chacune de mes lignes mais j'obtiens un message d'erreur car la variable "stock_remain_all" n'est pas définie et du coup l'état de stock n'est pas juste (c'est celui définit par défaut) :

    Notice: Undefined variable: stock_remain_all in /home/www/ledsboutique/lib/fonctions/display_caddie.php on line 910 Notice: Undefined variable: product_object in /home/www/ledsboutique/lib/fonctions/display_caddie.php on line 910 Notice: Trying to get property of non-object in /home/www/ledsboutique/lib/fonctions/display_caddie.php on line 910
     
     
     
    D'après ce que  j'ai compris, l'état de stock est calculé à chaque fois en fonction de la quantité encore disponible, et de celle demandée....
    Il faudrait donc renseigner le code de ce calcul dans display_caddie ?

    Je suis bloqué là, si vous pouvez me sortir de là.
    Merci.
    • 6 réponses
    • 2 203 vues
  23. Gilles Boussin a ajouté un message dans un sujet  Afficher Les Sous-Catégories   

    Je mets un autre de vos sujets ici pour ne pas tout éparpiller :
     
    "
    si je choisis la méthode Globale (catégorie et ses sous-catégories) j'ai les produits qui apparaissent sous les catégories mais pas en mode individuel. comprends pas car cette fonctionnalité ne sert qu'à compter "
     
    => cette fonctionnalité de la page de configuration de votre site sert pour compter et présenter dans les catégories.
     
    Elle répond à votre première question.
    • 0
  24. Gilles Boussin a ajouté un message dans un sujet  Création De Produits Similaires   

    Dans votre exemple "je souhaite que le client puisse consulter tous les arrosoirs toutes marques confondues." j'imaginais que vous vouliez faire une requête poru les trouver automatiquement.
     
    Si vous voulez utiliser la table de correspondance, très bien, il vous suffit de la remplir soit manuellement, soit avec un script, lancé par vous ou par un cron.
     
    Gilles
    • 0
  25. paulanna a ajouté un message dans un sujet  Création De Produits Similaires   

     
    ok mais il faut bien que je stocke les produits similaires quelques part
     
    en fait je vois pas comment rejoindre les produits similaires de mon arrosoir
     
    est-ce que je dois faire cela manuellement ?
    • 0

Twitter Advisto ecommerce

Facebook PEEL Shopping