[RESOLU] ATOS, panier et session (à l'aide !)

Archive

Messagepar Gil1256 » Sam 03 Oct 2009, 18:15

Bonjour,

Je reviens vers vous car moi avoir beaucoup besoin de vous !

J'ai installé le module ATOS pour E-transactions (Crédit Agricole). Tout fonctionne à merveille : la commande est validée, le mail de confirmation m'arrive bien. Pour info, dans l'admin, j'ai "Utilisation de force des cookies" sur False.
Seulement, un problème quand je clique sur "Retour à la boutique". En arrivant sur la page checkout_success.php, j'ai ça au niveau de ma boxe panier :
Code: Tout sélectionner
Fatal error: Call to a member function on a non-object in /homez.133/.../.../includes/boxes/shopping_cart_short_ajax.php on line 24

Pour info, je dispose en haut de chaque page, des boxes compte et panier.

Et quand je mets "Utilisation de force des cookies" sur True, mon retour boutique (page checkout_success.php) se fait correctement (sans fatal error), mais malheureusement le panier n'est pas vidé et le mail de la commande ne m'arrive pas !

Voici le script de ma boxe panier :

Code: Tout sélectionner
<?php
  $cart_contents_string = '';
  if ($cart->count_contents() > 0) {
    $products = $cart->get_products();
    $total_nb_products_with_qty = 0;
    for ($i=0, $n=sizeof($products); $i<$n; $i++) {
          $total_nb_products_with_qty += $products[$i]['quantity'];
    }
    if ( $total_nb_products_with_qty == '1' ) {
          $cart_contents_string .= '<a title="'.BOX_SHOPPING_CART_TITLE.'" href="'.tep_href_link(FILENAME_SHOPPING_CART).'">'. $total_nb_products_with_qty .' '.BOX_SHOPPING_CART_PRODUCTS_NB.'</a>';
    } else {
          $cart_contents_string .= '<a title="'.BOX_SHOPPING_CART_TITLE.'" href="'.tep_href_link(FILENAME_SHOPPING_CART).'">'. $total_nb_products_with_qty .' '.BOX_SHOPPING_CART_PRODUCTS_NBS.'</a>';
    }
    $cart_contents_string .=  ' ('.$currencies->format($cart->show_total()).')';
  } else {
    $cart_contents_string .= ''. BOX_SHOPPING_CART_EMPTY.' ('.$currencies->format($cart->show_total()).')';
  }
?>

La fameuse ligne 24 correspondant à

Code: Tout sélectionner
if ($cart->count_contents() > 0) {

La classe est pourtant bien appelée dans application_top.php :

Code: Tout sélectionner
// include shopping cart class
require(DIR_WS_CLASSES . 'shopping_cart.php');

Voici pour info, quelques éléments de mon configure.php :

Code: Tout sélectionner
define('HTTP_COOKIE_DOMAIN', '');
define('HTTPS_COOKIE_DOMAIN', '');
define('HTTP_COOKIE_PATH', '/');
define('HTTPS_COOKIE_PATH', '/');
define('STORE_SESSIONS', 'mysql');

Je ne sais trop par où attaquer la bête ! Voilà donc le pourquoi de mon HELP !!!
Thx all.
Dernière édition par Gil1256 le Dim 04 Oct 2009, 15:26, édité 1 fois.
Gil1256
Membre très actif
 
Messages: 108
Inscription: Jeu 21 Mai 2009, 01:16

Messagepar Gil1256 » Dim 04 Oct 2009, 15:26

Bon ok. Ça fonctionne...

J'ai un peu honte de l'avouer, mais j'avais totalement zappé une étape...
M'étais appuyé sur le post de Moamatt, et dans la procédure j'avais oublié de remplacer dans le fichier atos_response.php :

Code: Tout sélectionner
case '00':
/* Transaction approved */
/* Check whether the merchant id is the expected one */
tep_redirect(tep_href_link(FILENAME_CHECKOUT_SUCCESS, '', 'SSL'));
break;

par :
Code: Tout sélectionner
case '00':
/* Transaction approved */
/* Check whether the merchant id is the expected one */
tep_redirect(tep_href_link(FILENAME_CHECKOUT_PROCESS, '', 'SSL'));
break;

SUCCESS... PROCESS... Ça sonne quasi pareil, mais le résultat est loin d'être le même !

A signaler ici que j'ai laissé "Utilisation de force des cookies" sur "True" et mon configure.php donne ça :

Code: Tout sélectionner
define('HTTP_COOKIE_DOMAIN', '');
define('HTTPS_COOKIE_DOMAIN', '');
define('HTTP_COOKIE_PATH', '/');
define('HTTPS_COOKIE_PATH', '/');
define('STORE_SESSIONS', 'mysql');

A l'occasion, quelqu'un pourrait-il me dire ce qu'est exactement "Empêcher les sessions d'araignée"... j'ai mis ça sur "True" (les autres sur "False" excepté "Utilisation de force des cookies").

Panier vidé, commande enregistrée, mail envoyé. Nickel quoi !

A+
Gil1256
Membre très actif
 
Messages: 108
Inscription: Jeu 21 Mai 2009, 01:16

Messagepar cynic- » Lun 05 Oct 2009, 11:29

Heureusement que tu as trouvé tout seul :)

Pour "Empêcher les sessions d'araignée" tu as raison de mettre sur TRUE.
Sinon Googlebot et autres pourraient créer une session du type index.php?PHPSESS=54981646141b841s4518431.
Le souci est que cette page serait ensuite référencée, mais comme elle est unique et temporaire, Google ne la verrait plus lors de son prochain passage et te pénaliserait un peu au niveau du référencement (page disparue, 404...)

Il faut donc empêcher ces arachnides de créer des sessions (mais ils continueront bien sûr leurs passages réguliers)
cynic-
Site Admin
 
Messages: 694
Inscription: Mar 04 Déc 2007, 13:04


Retourner vers osCSS 1.2.1

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 3 invités

cron