Flux d’activité
Flux d’activité de Messages
-
-
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
-
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 -
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 :
id produit_id attribut_id stock Modifier Copier Effacer 1 1 1 1 Modifier Copier Effacer 2 1 2 1 Modifier Copier Effacer 3 1 3 40 Modifier Copier Effacer 4 7 1 1 Modifier Copier Effacer 5 7 2 1 Modifier Copier Effacer 6 7 3 40 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 returnMerci grandement pour votre aide.
Je vous souhaite d'agréables journées.
-
Voilà.
Ca va bien simplifier les choses.
Je vous remercie beaucoup, sans votre aide j'aurai eu mal aux dents.
Je passe au problème dans un nouveau post.A moins que vous préfériez tout faire à la suite sur le même post.
Merci !Bonnes journées
-
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.
-
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
-
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)
-
Bonjour,
Pour réaliser cela il faut modifier la fonction affiche_menu_recherche dans le fichier lib/fonctions/display.php et le fichier template menu_recherche.tpl.Vous pouvez reprendre la génération des menus déroulant de la fonction search_hook_search_form_template_data et du fichier tpl associé search_form.tpl.
-
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 -
-
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
-
-
Bonjour,
Dans class/product.php, vous devez d'abord définir la variable dans la classe :
var $tototest = null
Ensuite dans le code faire
$this->tototest = "Ma chaine de caractère"
Ensuite dans fonction/display_product.php vous pouvez faire
$tpl->assign('description_seule', $product_object->tototest );
-
Bonjour,
C'est bien la fonction create_or_update_order qui gère la création de nouvelle commande. Je ne sais pas dans quel condition vous avez réalisé vos tests, mais c'est bien cette fonction qui est utilisée pour créer les commandes en front et en back office.
-
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
-
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 -
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}
-
ok. C'est juste histoire faire peur aux gens. Ils s'amusent bien chez Mozilla ...
(humour)
Merci. Je ne tient plus compte des alertes navigateur de ce type.
-
De rien c'est un plaisir si j'ai pu aider en retour de votre aide.
J'adore votre philosophie !
Vous commencer par donner (peel shopping et forum d'aide) avant de chercher à prendre, C'est rare !
Merci à vous.
-
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.phpEt 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
-
Bonjour,
Ceci n'a aucune conséquence. Le fait que Firefox mette un warning dans sa console de debug n'a aucune conséquence concrète sur le fonctionnement.
-
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.
-
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
-
Si je comprend bien.
Le remède risque être plus dangereux que la mal :(
Ca risque créer d'autres bug sur les autre changement de la mise à jour de JQuery.
Donc mieux vaut un mal connu qu'une quantité inconnu de maux inconnus. ?Vu votre réaction, le fait que cette fonction soit obsolète ne va pas causer de dégâts . ?
Bonne journée
DIssocier Description et attributs avec 1 seule option
dans PEEL SHOPPING : logiciel open source de boutique en ligne
anceze
Posté(e) · Modifié (le) par anceze · Signaler ce message
Ok ca y est.
Pas facile de trouver le bon emplacement dans display product.
Trop haut ou trop bas et c'est pas bon.
Merci