Version imprimable du sujet

Cliquez ici pour voir ce sujet dans son format original

Forum osCommerce-fr _ Installation - fonctionnement _ Panier vide sur le bouton « Acheter maintenant »

Écrit par : Garrigue 3 Feb 2012, 15:10

Bonjour,
J'ai un problème de fonctionnement de panier vide sur le bouton « Acheter maintenant » en prenant un certain chemin de navigation.

Explication :

Chemin 1
Je clic sur la catégorie, puis sur un produits de la catégorie, puis sur le bouton « acheter maintenant » qui me redirige sur sa fiche technique.
Ici je fais ajouter au panier et là horreur le panier est vide.

Chemin 2
Je clic sur la catégorie, puis sur un produits de la même catégorie, puis ici nuance sur la photo pour avoir le descriptif.
Ici je fais ajouter au panier et là oh bonheur le panier est plein !

En local je n'ai pas ce problème.

Ma version Php en local est t la version Php fournisseur d'accès est 5.3

Merci une fois encore pour votre assistance.



Écrit par : Gnidhal 3 Feb 2012, 16:26

vérifie tes scripts en ligne par un nouvel envoi FTP notamment le application_top.php, on ne sait jamais.
Ensuite vérifie la config php en ligne.
Normalement les paramètres register long array et register argc argv n'ont plus besoin d'être activés en 5.3 mais va savoir...
Par ailleurs ce genre de problème peut être significatif d'un petit souci de stockage des variable session... là il faur creuser plus.

Écrit par : Garrigue 6 Feb 2012, 16:00

Ok ! j'ai vérifié et testé les différentes étapes que tu me conseilles.
Rien n'y fait !!!

Après pour la dernière, le petit "souci de stockage des variables session..." là je suis hors compétences. mrgreen.gif

Me reste plus qu'à supprimer ce bouton "Acheter maintenant" au niveau des sous-catégorie.

Merci quand même !

Écrit par : Garrigue 17 Feb 2012, 10:15

Citation (Garrigue @ 3 Feb 2012, 15:10) *
Par ailleurs ce genre de problème peut être significatif d'un petit souci de stockage des variable session... là il faut creuser plus.

Gnidhal ça veut dire quoi exactement ? Qu'elles testes je peux faire pour essayer d'avance sur ce problème qui se produit aussi sur "Commander en passant par l'avis client". Voir mon poste d'avant hier : http://www.oscommerce-fr.info/forum/index.php?showtopic=69444

Excusez moi d'insister...

Écrit par : Gnidhal 17 Feb 2012, 10:44

Oui le problème est le même. j'ai donc fermé l'autre post qui fait doublon.

1/ le problème est-il en local ou chez l'hébergeur ?
2/ où précisément se présente le problème car tu sembles avoir un souci avec ce bouton acheter à plusieurs endroits
3/ as-tu installé une contribution de gestion des options produit

En résumé, l'ajout d'un produit au panier se passe dans application_top.php dans la section qui commence par :

Code
// Shopping cart actions
  if (isset($HTTP_GET_VARS['action'])) {
les lignes qui t'intéressent sont :
Code
      // customer wants to update the product quantity in their shopping cart
      case 'update_product' : for ($i=0, $n=sizeof($HTTP_POST_VARS['products_id']); $i<$n; $i++) {
                                if (in_array($HTTP_POST_VARS['products_id'][$i], (is_array($HTTP_POST_VARS['cart_delete']) ? $HTTP_POST_VARS['cart_delete'] : array()))) {
                                  $cart->remove($HTTP_POST_VARS['products_id'][$i]);
                                } else {
                                  $attributes = ($HTTP_POST_VARS['id'][$HTTP_POST_VARS['products_id'][$i]]) ? $HTTP_POST_VARS['id'][$HTTP_POST_VARS['products_id'][$i]] : '';
                                  $cart->add_cart($HTTP_POST_VARS['products_id'][$i], $HTTP_POST_VARS['cart_quantity'][$i], $attributes, false);
                                }
                              }
                              tep_redirect(tep_href_link($goto, tep_get_all_get_params($parameters)));
                              break;
      // customer adds a product from the products page
      case 'add_product' :    if (isset($HTTP_POST_VARS['products_id']) && is_numeric($HTTP_POST_VARS['products_id'])) {
                                $attributes = isset($HTTP_POST_VARS['id']) ? $HTTP_POST_VARS['id'] : '';
                                $cart->add_cart($HTTP_POST_VARS['products_id'], $cart->get_quantity(tep_get_uprid($HTTP_POST_VARS['products_id'], $attributes))+1, $attributes);
                              }
                              tep_redirect(tep_href_link($goto, tep_get_all_get_params($parameters)));
                              break;
      // customer removes a product from their shopping cart
      case 'remove_product' : if (isset($HTTP_GET_VARS['products_id'])) {
                                $cart->remove($HTTP_GET_VARS['products_id']);
                              }
                              tep_redirect(tep_href_link($goto, tep_get_all_get_params($parameters)));
                              break;
      // performed by the 'buy now' button in product listings and review page
      case 'buy_now' :        if (isset($HTTP_GET_VARS['products_id'])) {
                                if (tep_has_product_attributes($HTTP_GET_VARS['products_id'])) {
                                  tep_redirect(tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $HTTP_GET_VARS['products_id']));
                                } else {
                                  $cart->add_cart($HTTP_GET_VARS['products_id'], $cart->get_quantity($HTTP_GET_VARS['products_id'])+1);
                                }
                              }
                              tep_redirect(tep_href_link($goto, tep_get_all_get_params($parameters)));
                              break;

selon le script où tu fais l'ajout de produit au panier, les actions add_product ou buy_now sont principalement utilisées.
Soit ton produit a des options et on est redirigé vers la page produit pour préciser les options, soit ton produit est sans option et alors il peut être ajouté au panier directement.
Il faut donc que tu regarde si les liens des boutons acheter ont été modifiés ou si une contribution de gestion des options ne mettrait pas le bazar là dedans.

Écrit par : Garrigue 17 Feb 2012, 13:48

On est bien sur un problème qui se passe en ligne et non en local. En local ça marche.
J'ai le même problème sur le bouton "Acheter maintenant" quand on est sur un produit venant d'une sous-catégorie.
(C'est le bouton qu'on peut ajouter dans l'administrateur dans : Configuration/Listes produits/Afficher le bouton acheter)

Cela peut peut être venir du fournisseur d'accès ???

J'ai fait un premier teste, j'ai remplacé le fichier « application_top.php » en ligne par celui de la version d'origine OScommerce 2.3.
car en comparent les deux fichiers, j'ai le code de la contribution (Featured Products 2.3.x) dans ma boutique.
(J'ai comparé ton code c'est bien le même que l'origine).

Mais cela ne vient pas de ça puisque le problème persiste.

J'ai capturé le chemin qu'indique le bouton « Ajouter au panier » en passant par la boxe « Avis des clients »

En local : mon panier se trouve plein

HTML
http://localhost/catalog/product_info.php?products_id=29&action=add_product


En ligne : mon panier se trouve vide :
HTML
http://aaaaaaaaa.com//catalog/product_info.php?products_id=29&amp;osCsid=44fc80ce2bc5811234a3679c939c2b66&action=add_product&osCsi


Je ne vois pas...



Écrit par : FoxP2 17 Feb 2012, 14:41

envois l'url de son site car tes explications ne sont pas très claires

Écrit par : Garrigue 17 Feb 2012, 14:54

Oui effectivement c'est plus simple...

Le voici, il est en construction, il verra peut être le jour si j'y arrive ... smile.gif

HTML
http://www.axocom.com//catalog

Écrit par : FoxP2 17 Feb 2012, 16:19

j'ai noté :
http://www.axocom.com//catalog
à rectifier
ensuite, aucun cookie de session lorsqu'on se balade sur la boutique = pas bon, vérifie que ton domaine soit correctement renseigné dans les fichiers configure
define('HTTP_COOKIE_DOMAIN', 'http://www.axocom.com');

dans un premier temps.

en apparté : aujourd'hui je bosse les fenêtres grandes ouvertes ! 18° sur la véranda ! c'est le printemps ou bien ? smile.gif

Écrit par : Garrigue 17 Feb 2012, 17:24

Merci bien FoxP2

On avance... effectivement ça fonctionne dû à ce Slash en trop, j'ai renseigné aussi le COOKIE_DOMAIN.

Mais Oh rage... maintenant je n'arrive plus à me connecter à mon compte client pour faire l'achat.
Je n'avais pas de problème la dessus avant ma modification et quand je remets le fichier configure.php dans l'état
d'"origine", j'arrive à me connecter à mon compte client. blink.gif Hargggggggggg ! Je me maudis...



Tu es dans le mdi aussi pour avoir ce temps !

Écrit par : FoxP2 17 Feb 2012, 18:23

créez un compte bidon sur ta boutique et envoies moi les infos par MP :
adresse mail bidon
mot de passe bidon

Écrit par : Garrigue 20 Feb 2012, 17:51

[Résolu]

C'est un bug de la version 2.3.1
Dans le fichier catalog/includes/functions/html_output.php ligne 69 nous avons :

Code
$link = str_replace( '&', '&amp;', $link);


en fait il faut :

Code
$link = str_replace('&amp;', '&', $link);


Et là, la redirection est bonne et donc on voit les articles dans le panier.
Je n'ais pas de mérite au niveau analyse du code, j'ais trouvé le post sur le web en cherchant.

Le voici :
http://forums.oscommerce.com/tracker/issue-314-malformed-url-issue/

Merci à FoxP2 qui a su trouver le lézard en analysant les liens de mon site.
L'aventure peut donc continuer! smile.gif

Propulsé par Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)