Flux d’activité

Flux d’activité de Messages

  1. anceze


    Je vais devoir me débrouiller "seul", je suis loin d'avoir les moyens financier adéquates (proche de zéro).

     

    Pourquoi supprimer les "fonctions d'attribut selon le stock disponible".

    Je suis en PEEL shopping donc je n'ai pas le module.

     

    Je vais déjà essayer de récupérer les quantités.

    Histoire de ne pas travailler en aveugle, est-ce qu'il y a un code permettant de faire une alert ou une popup, pour les codes php pour faire apparaitre une variable par exemple..

    Car si je fais un classique <? echo "<script>alert ... Ca ne passe pas.

     

    MErci

    Bonne journée

     

     


  2. Bonjour,

    Pour supprimer les fonctions d'attribut selon le stock disponible, je vous propose de modifier la fonction get_possible_attributs dans le modules/attributs/fonctions.php. Vous pouvez ajouter un morceau de code spécifique pour filtrer les résultats des requêtes SQL.
    Sinon pour connaitre la quantité d'un produit dans le panier, vous pouvez utiliser $_SESSION['session_caddie']->quantite[$numero_ligne], où $numero_ligne correspond à l'id de la ligne de produit dans le panier.

    Comme vous l'avez compris, c'est un sujet complexe qui nécessite des modifications à différents endroits du code, et ajouter du code spécifique au milieu des fonctions de gestion d'attributs ou de stock nécessite une bonne compréhension du code, et cela demande également du temps.
    Pour vous aidez dans votre développement je peux vous donner des orientations, mais si vous souhaitez que l'on s'investisse plus dans votre projet il faudra prendre contact avec notre service commercial au 01 75 43 67 97

     

  3. anceze


    Bonjour.

    J'ai déjà fais la création produit et la mise à jour des stock à la commande.

    Je dois maintenant gérer le panier et le module d'ajout au panier.

     

    Module d'ajout au panier : étape 1

    L'attribut 1 me permet de choisir les options d'attribut 1, 2 et 3.

    J'ai créé un stock pour chacune de ces options.
    Seul cet attribut à des options avec stock.

    Si le stock de cet option d'attribut est à zéro en comptant le panier,  je veux retirer cette option du menu/select de l'attribut correspondant.

    Je pensais au plus simple à l'évincé lors de l'affichage.

    Je veux être certain de partir dans le bon sens, vers les bon fichiers, dans les bonnes fonctions.
    Pourriez-vous me guidez à nouveau svp ?

    Code d'exemple (qui n'a pas les bonne variables)

    Problématique que je vais rencontrer ; je n'ai jamais rien compris aux paniers et aux sessions.
    Les informations panier (produit en attente) sont elles en base de données ?

    <?php
    
    // ma nouvelle table pour gérer les stock d'options
      $query = query("
               SELECT attributs_id, produit_id, stock  
               FROM peel_produits_attributs_stock 
               WHERE produit_id =".$this_produit_id); 
    
              // Récupération des stock pour chaque option.
              $attributs_stock=array();
              while ($res = fetch_assoc($query)) 
              {            
               $attribut_id    = $res['attributs_id'];
               $stock          = $res['stock'];
               $attribut_stock[$attribut_id]=$stock;
              }
              
              // Par défaut 0 quantité en panier pour chaque attribut_stock de ce produit.
              $attributs_1_panier = 0;
              $attributs_2_panier = 0;
              $attributs_3_panier = 0;
              
              // Si panier non vide
              if (!empty($session_panier))
              {
                  // pour chaque insertion dans le panier
                  foreach($session_panier as $key => $value)
                  {
                      // S'il s'agit du produit en cours
                      if ($key['produit_id'] == $this_produit_id)
                      {
                          // Quelle quantité en attente dans le panier ?
                          $panier_qté = $key['qte'];
                          
                          // Liste des attributs en panier pour ce produit
                          $attributs_list = $key['attribut_list'];
                          
                          // Quel quantité attribut de stock pour ce produit en panier ?
                          // On cumule si cet attributs_stock a été ajouté dans d'autres tailles par exemple.  
                          if     (stripos($attributs_list, '1|1') == true){$attributs_1_panier = $attributs_1_panier + $panier_qté;}
                          elseif (stripos($attributs_list, '1|2') == true){$attributs_2_panier = $attributs_2_panier + $panier_qté;}
                          elseif (stripos($attributs_list, '1|3') == true){$attributs_3_panier = $attributs_3_panier + $panier_qté;}
                      }
                  }
              }
              
              // si quantité panier < à stock => l'option sera activé non grisée.
              $attributs=array(1=>'',2=>'',3=>'');
              if ($attribut_stock[1] - $attributs_1_panier < 1){$attributs[1] = ' disabled';}
              if ($attribut_stock[2] - $attributs_2_panier < 1){$attributs[2] = ' disabled';}
              if ($attribut_stock[2] - $attributs_2_panier < 1){$attributs[3] = ' disabled';}
             
              
    
              // PUIS DANS LA CONSTRUCTION DU SELECTION / OPTION                               
              foreach ($attributs as $key => $value)
              {
              if($this_attribut_id == 1 && $this_attribut_option == $key){$attribut_statut = $attributs[$value];}
              }
              
              // Juste après l'insertion de la value de l'option
              echo $attribut_statut; 
    
    ?>

     

     

    Ci dessous des explications facultatives


    Explication de ma gestion des stock avec une parabole
    1 produit = 40 unité et 1 gadget dans un carton.
    Vente du carton entier (attribut 1) => vide les stock de tous les attributs.
    Vente du gadget (attribut 2) => stock gadget = 0 ; stock carton = 0 car il a été entamé ; stock unités non impacté
    Vente d'une unité normale (attribut 3) => stock unité -1 ; stock carton = 0 car il a été entamé ; stock gadget non impacté

     

    Nouvelle table : peel_produits_attributs_stock : ok

    id = sa seul utilité est de pouvoir modifier les stocks sous phpmyadmin
    produit_id = l'id du produit, pour chaque prduit
    Attribut_id = l'option d' attribut ayant un stock
    Stock = le stock pour chaque attribut_id.

     

    Chez moi ca donne ceci :

    Textes complets

     id produit_id attribut_id stock
    Modifier Modifier Copier Copier Effacer Effacer1111
    Modifier Modifier Copier Copier Effacer Effacer2121
    Modifier Modifier Copier Copier Effacer Effacer31340
    Modifier Modifier Copier Copier Effacer Effacer4711
    Modifier Modifier Copier Copier Effacer Effacer5721
    Modifier Modifier Copier Copier Effacer Effacer67340

     

    C'est donc un code très perso car je dois toujours conserver ces attributs_id.

     

    Création de produit : ok

    J'ai créer un module pour générée un produit selon un modèle donné.
    Ca m'ajoute automatiquement un produit avec les attributs et les options désirées.
    J'ai inclue l'ajout des insertion dans cette nouvelle table avec les valeur de stock par défaut.

     

    Mise à jour de stock : ok

    J'ai ajouté la fonction jointe en fin de message dans lib/fonctions/order.php
    Je la lance à la fin de  create_or_update_order avant le return

     

    Merci grandement pour votre aide.
    Je vous souhaite d'agréables journées.
     


  4. Bonjour,

    Pour supprimer l'affichage du champ quantité dans la fiche produit, vous pouvez créer la configuration  product_disable_quantity_field depuis la page d'ajout de configuration administrer/configuration.php?mode=ajout :

    Origine : manual
    Code technique : product_disable_quantity_field
    Type : boolean
    Votre contenu : true

    => Si c'est pour tous les produits, il faut supprimer  la condition

     && in_array($product_object->technical_code, $GLOBALS['site_parameters']['product_disable_quantity_field'])

    dans la fonction affiche_critere_stock vers la ligne 1225 (sur la version 8.0.4).

     

    Pour supprimer le champ quantité dans le panier, il faut créer la configuration

    Origine : manual
    Code technique : disable_modify_quantity_on_cart
    Type : boolean

    Votre contenu : true

    => Suite à ces configurations les champs quantité ne devraient plus s'afficher sur le site.

  5. anceze


    Merci.

    C'est vraiment une partie compliqué pour moi.

    Pour simplifier je dois supprimer la visibilité de l'option de quantité.

    Mes produits n'en ont pas besoin, au contraire même, c'est mieux sans.

    Je dois retirer le visuel de la possibilité de changer les quantité dans produit détail et dans le panier.

    - Je ne sais pas où.

     

    Ensuite ... on verra

     

    Bonnes journées


  6. Bonjour,

    1 - Il me semblait qu'il y avait une fonction en backoffice pour désactiver l'affichage du choix de quantités à commandée. non ? Je l'ai perdue, elle est où ?

     L'affichage du champ quantité n'est pas administrable.

    2 - Vers quel fichier et fonction dois-je regarder pour vérifier si la quantité demandé par le client est dispo dans ma nouvelle table perso ?.

    Il faut vérifier à différents endroit : Lors de l'ajout du produit au panier (achat/caddie_ajout.php) et dans le panier lorsque l'utilisateur change de quantité (achat/caddie_affichage.php et fonction get_caddie_content_html)

     

  7. anceze


    Bonjour;

    Je suis obligé de faire mon propre module de stock pour deux raisons.

    J'ai pas d'argent, et mes stocks dépendent des options d'attribut perso en plus de dépendre les uns des autres.

    C'est compliqué mais là n'est pas le problème.

    J'ai déjà fais la gestion de création produit et celle finalisation de commande.

    Reste le panier, ca touche à la session et là je n'y connais rien.

     

    Au plus simple :

    1 - Il me semblait qu'il y avait une fonction en backoffice pour désactiver l'affichage du choix de quantités à commandée. non ? Je l'ai perdue, elle est où ?

    2 - Vers quel fichier et fonction dois-je regarder pour vérifier si la quantité demandé par le client est dispo dans ma nouvelle table perso ?.

    2b - Je pensais faire un truc du genre : foreach(produit_id) { verification complexe perso {  Si (panier < dispo) {panier = dispo}. Sans même coder une  popup d'erreur pour reste simple.

    Mais en plus compliqué car il peut avoir en panier  2 produits dont le stock est le même mais avec une différence d'option de produit, et autres spécificités de mes produits.
     

     

    Bonne journée
    Yann Anceze

  8. louba


    Pour le montage de ma boutique de voiture d'occasion je me suis servi des attributs pour la selection en plus de MARQUE et CATEGORIE de DATE, KILOMETRE, ENERGIE...

    Je voudrais que cela vienne sur la page d'accueil en haut de page (le bloc de selection): Comment m'y prendre ?

    Rechercher

    • Rechercher :   Tous les mots N'importe quel mot La phrase exacte 
    •  Filtrer par : Catégorie UtilitairesVoitures
    •  Filtrer par : Marque RENAULT CITROEN 
    •  Filtrer par :  Energie Essence Diesel Gpl Essence/Gpl Electrique Hybride 
    •  Filtrer par :  Kilomètrage 12545 5 
    •  Filtrer par :  Année de mise en service 2016 2017 2015 2014 
     
  9. anceze


    Bonjour.

    Je cherche à quel endroit se passe l'insertion d'une nouvelle ligne dans les tables peel_commandes et peel_commandes_articles.

    Je veux récupérer le commande_id de peel_commandes juste après l'insertion d'une nouvelle commande.

     

    J'avais pensé à lib/fonctions/order.php

    avec function create_or_update_order($order_infos, $articles_array)

    Mais il semble que je me trompe. Si je vide la fonction ça ne change rien.

     

    Bonne journée

  10. anceze


    Bonjour

     

    La page blanche n'est pas le problème.

    C'est en général un souci simple de mauvaise syntaxe

    Le souci c'est que même le test le plus simple ne passe pas la fonction product.

     

    TEST FONCTIONNEL mais inutilisable

    /class/product.php:

      var $tototest = 'test de toto'; 
     

     

    /fonctions/display_product.php

          $tpl->assign('tototest', $product_object->tototest);

     

    /smarty/product_details.html.tpl

    <hr>test : {$tototest} 

     

     

    TEST FONCTIONNEL 2 exploitable mais pas optimal car eje vais devoir doubler les requetes sql et les codes

    /class/product.php:

      var $tototest = 'test de toto'; 
       function mmontest()
       {
       $tototest .= 'test de toto';
       return $tototest;
       }

     

    /class/product.php: après function Product(... {

    				$tpl->assign('tototest', $product_object->mmontest());  

     

    /smarty/product_details.html.tpl

       <hr>test 8: {$tototest}  

     

     

    TEST DYSFONCTIONNEL

    /class/product.php:

      var $tototest = null;  
     

     

    /class/product.php: après et dans function Product(... {

      $tototest .= 'test 2 de toto';

     

    /fonctions/display_product.php

          $tpl->assign('tototest', $product_object->tototest);

     

    /smarty/product_details.html.tpl

    <hr>test 4: {$tototest} 

     

     

    SOLUTION non optimale (c'est pas du pure peel) mais fonctionnelle :

    Dans /class/product.php
     

    function ma_desc_solo()
       {
       
       		   if (empty($lang)) {
    			   $lang = $_SESSION['session_langue'];
    		     }
        
              $id = intval($this->id);
    
              $query = query("
              SELECT description_".$lang."
              FROM peel_produits
              WHERE id =".$id);
              		
              if ($res = fetch_assoc($query)) 
              { 
              $description_seule =  $res['description_'.$lang];
              }
              return $description_seule;    

     

    dans /focntion/display_product.php

       		$tpl->assign('description_seule', $product_object->ma_desc_solo());   


    Idem en plus complexe pour les options uniques


  11. Bonjour,

    au sujet des logs, je parlais des logs d'erreur de votre serveur. Cela donnera des indications sur l'origine de la page blanche qui s'affiche.

    PETIT TEST

            {if !empty($product_object->description_seule)}<div> PLEIN </div>{/if}
          {if empty($product_object->description_seule)}<div> VIDE </div>{/if}

            {if !empty($description_seule)}<div> PLEIN 2</div>{/if}
          {if empty($description_seule)}<div> VIDE 2</div>{/if}

     Si vous avez bien fait les assign dans le fichier  li/fonctions/display_product.php :

                $tpl->assign('description_seule', $product_object->description_seule);      
                $tpl->assign('attributs_options_unique', $product_object->attributs_options_unique); 

    Ensuite dans le fichier tpl,vous pouvez utiliser les variables sous cette forme  :

    {$description_seule}
    {$attributs_options_unique}

     

     

     

     

     

     

     

  12. anceze


    Je dois avouer que consulter les logs n'est pas une mauvaise idée.

    Si ca peut m'éviter de vous embêter avec mes soucis de codes perso.

    On les trouve où ? Dans peel ou dans mon navigateur ?

     

    Car là je n'arrive à rien

    L'ajoute de "product_object->" me donne une page blanche à partir du moment j'appel la attribut_options_unique

    Pour l'autre rien ne s'affiche mais la page ne bug pas.

    Je suppose qu'il faut l'ajouter dans lib/fonctins/display_product.php

    Et ne pas l'afficher dans lib/class/product.php

     

     

    PETIT TEST

            {if !empty($product_object->description_seule)}<div> PLEIN </div>{/if}
          {if empty($product_object->description_seule)}<div> VIDE </div>{/if}

            {if !empty($description_seule)}<div> PLEIN 2</div>{/if}
          {if empty($description_seule)}<div> VIDE 2</div>{/if}

    Ca me répond Cide et Vide 2

    CE qui ets dans /class/ n'en sort pas, par contre si je crée une variable dans /fonctions/ je peux l'utiliser. malheureusement les contenus sont dans /class/

    Je continu de chercher par là

    J'ai corrigé le code précédent dans ce post avec ces nouveaux ajustements et d'autres..

    J'y ai passé la nuit.

     

    Bonnes journées


  13. Bonjour,

    Sur les versions 8.0.3 et 8.0.4 le calcul du prix des attributs administrable unique ne se fait pas dans le panier, du fait de l'ajout du test
    if(!$skip_additional_data) {
    autour de
    call_module_hook('product_init_post', array('this' => $this, 'user_only_product_infos' => $user_only_product_infos, 'product_infos' => $product_infos));

    ligne 353 du fichier lib/Class/Product.php. Il faut supprimer ce test pour que la ligne call_module_hook soit exécutée tout le temps.

    Merci pour votre retour, cette correction sera dans la futur version du logiciel.


  14. Bonjour,

    au niveau de

                $tpl->assign('description_seule', $description_seule);      
                $tpl->assign('attributs_options_unique', $attributs_options_unique);  

    C'est $product_object->description_seule et $product_object->attributs_options_unique qu'il faut utiliser. Sinon pour vous aidez dans votre développement spécifique vous pouvez lire vos logs d'erreurs

Twitter Advisto ecommerce

Facebook PEEL Shopping