Cart / Ecommerce et erreur d'ajout de doublon produit

Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
#1
Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: 1.11.7
#~ Url du site :
#~ Hébergeur / Soft : Web4all
#~ Informations Système :
#~ ----------------------------------------------
#~ Cms Version: 1.11.7
#~ Installed Modules:
#~ CMSMailer: 5.2.1
#~ CMSPrinting: 1.0.4
#~ FileManager: 1.4.3
#~ MenuManager: 1.8.5
#~ MicroTiny: 1.2.5
#~ ModuleManager: 1.5.5
#~ News: 2.12.12
#~ Search: 1.7.8
#~ ThemeManager: 1.1.8
#~ CGSimpleSmarty: 1.7
#~ TinyMCE: 2.9.12
#~ CGExtensions: 1.37
#~ FrontEndUsers: 1.21.16
#~ JQueryTools: 1.2.5
#~ Products: 2.19.6
#~ CTLModuleMaker: 2.0.3
#~ CGEcommerceBase: 1.4.3
#~ Cart2: 1.0.5
#~ Cart: 1.10
#~ Config Information:
#~ php_memory_limit:
#~ process_whole_template:
#~ max_upload_size: 64000000
#~ url_rewriting: mod_rewrite
#~ page_extension: .html
#~ query_var: page
#~ image_manipulation_prog: GD
#~ auto_alias_content: true
#~ locale:
#~ default_encoding: utf-8
#~ admin_encoding: utf-8
#~ set_names: true
#~ Php Information:
#~ phpversion: 5.3.27
#~ md5_function: On (Vrai)
#~ gd_version: 2
#~ tempnam_function: On (Vrai)
#~ magic_quotes_runtime: Off (Faux)
#~ E_STRICT: 0
#~ E_DEPRECATED: 8192
#~ memory_limit: 128M
#~ max_execution_time: 30
#~ output_buffering: On
#~ safe_mode: Off (Faux)
#~ file_uploads: On (Vrai)
#~ post_max_size: 64M
#~ upload_max_filesize: 64M
#~ session_save_path: Aucune vérification à cause de la restriction spécifiée par PHP open_basedir
#~ session_use_cookies: On (Vrai)
#~ xml_function: On (Vrai)
#~ xmlreader_class: On (Vrai)
#~ Server Information:
#~ Server Api: cgi-fcgi
#~ Server Db Type: MySQL (mysql)
#~ Server Db Version: 5.5.32
#~ Server Db Grants: Trouvé un privilège "GRANT ALL" qui semble être adapté
#~ ----------------------------------------------
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~



Bonjour à tous,

Voilà, je suis en train de mettre un catalogue de vente en ligne, j'ai des produits avec différentes options, jusque là le module Products remplit très bien les choses.
J'ai donc ajouter le module Cart pour gérer les commandes et c'est là que ca se complique.

Mes produits ont différentes options, mais je peux être amener à commander 2 fois le même produit mais avec deux options différentes, l'id SKU de base est donc le même, mais lors de l'ajout il augmente la quantité du premier produit ajouté plutôt que de recréer une entrée supplémentaire avec le deuxième et l'option différente.

En pratique, si j'ajoute le produit1 avec l'option1 puis le même produit1 avec la même option 2, je me retrouve avec 2 produit1 / option1.

Si vous avez une petite idée du problème.

Merci d'avance pour votre aide

PS : j'ai testé avec Cart2 et j'obtiens alors l'erreur suivante sur la fiche de détail produit
Citation :Fatal error: Call to a member function set_sku() on a non-object in /datas/.../modules/Cart2/action.default.php on line 359
Répondre
#1
Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: 1.11.7
#~ Url du site :
#~ Hébergeur / Soft : Web4all
#~ Informations Système :
#~ ----------------------------------------------
#~ Cms Version: 1.11.7
#~ Installed Modules:
#~ CMSMailer: 5.2.1
#~ CMSPrinting: 1.0.4
#~ FileManager: 1.4.3
#~ MenuManager: 1.8.5
#~ MicroTiny: 1.2.5
#~ ModuleManager: 1.5.5
#~ News: 2.12.12
#~ Search: 1.7.8
#~ ThemeManager: 1.1.8
#~ CGSimpleSmarty: 1.7
#~ TinyMCE: 2.9.12
#~ CGExtensions: 1.37
#~ FrontEndUsers: 1.21.16
#~ JQueryTools: 1.2.5
#~ Products: 2.19.6
#~ CTLModuleMaker: 2.0.3
#~ CGEcommerceBase: 1.4.3
#~ Cart2: 1.0.5
#~ Cart: 1.10
#~ Config Information:
#~ php_memory_limit:
#~ process_whole_template:
#~ max_upload_size: 64000000
#~ url_rewriting: mod_rewrite
#~ page_extension: .html
#~ query_var: page
#~ image_manipulation_prog: GD
#~ auto_alias_content: true
#~ locale:
#~ default_encoding: utf-8
#~ admin_encoding: utf-8
#~ set_names: true
#~ Php Information:
#~ phpversion: 5.3.27
#~ md5_function: On (Vrai)
#~ gd_version: 2
#~ tempnam_function: On (Vrai)
#~ magic_quotes_runtime: Off (Faux)
#~ E_STRICT: 0
#~ E_DEPRECATED: 8192
#~ memory_limit: 128M
#~ max_execution_time: 30
#~ output_buffering: On
#~ safe_mode: Off (Faux)
#~ file_uploads: On (Vrai)
#~ post_max_size: 64M
#~ upload_max_filesize: 64M
#~ session_save_path: Aucune vérification à cause de la restriction spécifiée par PHP open_basedir
#~ session_use_cookies: On (Vrai)
#~ xml_function: On (Vrai)
#~ xmlreader_class: On (Vrai)
#~ Server Information:
#~ Server Api: cgi-fcgi
#~ Server Db Type: MySQL (mysql)
#~ Server Db Version: 5.5.32
#~ Server Db Grants: Trouvé un privilège "GRANT ALL" qui semble être adapté
#~ ----------------------------------------------
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~



Bonjour à tous,

Voilà, je suis en train de mettre un catalogue de vente en ligne, j'ai des produits avec différentes options, jusque là le module Products remplit très bien les choses.
J'ai donc ajouter le module Cart pour gérer les commandes et c'est là que ca se complique.

Mes produits ont différentes options, mais je peux être amener à commander 2 fois le même produit mais avec deux options différentes, l'id SKU de base est donc le même, mais lors de l'ajout il augmente la quantité du premier produit ajouté plutôt que de recréer une entrée supplémentaire avec le deuxième et l'option différente.

En pratique, si j'ajoute le produit1 avec l'option1 puis le même produit1 avec la même option 2, je me retrouve avec 2 produit1 / option1.

Si vous avez une petite idée du problème.

Merci d'avance pour votre aide

PS : j'ai testé avec Cart2 et j'obtiens alors l'erreur suivante sur la fiche de détail produit
Citation :Fatal error: Call to a member function set_sku() on a non-object in /datas/.../modules/Cart2/action.default.php on line 359
Répondre
#2
Petit retour, j'ai trouvé une solution provisoire en remplacant get_product_id() par get_sku() à cet endroit dans le fichier Cart.module.php

Code :
[== Indéfini ==]
// here we should check the policy on adding quantities or
    // adding a new item.
    $added = false;
    for( $i = 0; $i < count($this->_items); $i++ ) {
      $one =& $this->_items[$i];
      if( ($one->get_product_id() != $obj->get_product_id()) ||
      ($one->get_source() != $obj->get_source()) ) continue;
      if( count($one->get_options()) == 0 && count($obj->get_options()) == 0 ) {
    // increase the quantity
    $added = true;
    $one->set_quantity($one->get_quantity()+$obj->get_quantity());
    break;
      }
    }

A voir si ça ne nuit pas ailleurs ...
Répondre
#2
Petit retour, j'ai trouvé une solution provisoire en remplacant get_product_id() par get_sku() à cet endroit dans le fichier Cart.module.php

Code :
[== Indéfini ==]
// here we should check the policy on adding quantities or
    // adding a new item.
    $added = false;
    for( $i = 0; $i < count($this->_items); $i++ ) {
      $one =& $this->_items[$i];
      if( ($one->get_product_id() != $obj->get_product_id()) ||
      ($one->get_source() != $obj->get_source()) ) continue;
      if( count($one->get_options()) == 0 && count($obj->get_options()) == 0 ) {
    // increase the quantity
    $added = true;
    $one->set_quantity($one->get_quantity()+$obj->get_quantity());
    break;
      }
    }

A voir si ça ne nuit pas ailleurs ...
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)