Recherche développeur MS2.2 -> Papier Cadeau, Choix individuel par produits du panier |
Bienvenue invité ( Connexion | Inscription )
Recherche développeur MS2.2 -> Papier Cadeau, Choix individuel par produits du panier |
17 Sep 2020, 13:18
Message
#1
|
|
Ceinture orange OSC Groupe : Membres Messages : 181 Inscrit : 3-January 08 Membre no 20263 |
Bonjour,
J'ai des besoins bien précis en terme de Gestion de Papier Cadeaux payant. Après recherches, j'ai trouvé ces 2 contributions : - osC_GiftWrap_v1.0 - Gift Wrap Module On peut gérer l'option papier cadeau de 2 façons : forfaitaire ou au coût par produits. De mon côté j'ai 2 soucis : - Tous mes produits ne sont pas emballables -> pas de problème à priori, je crée une case à cocher côté admin dans mes fiches produits qui va dire on accepte ou non l'option côté site. - Je souhaite que le client puisse choisir pour quel produit de son panier il souhaite un emballage payant ou non -> c'est là que je bloque et c'est quelque chose que ne font pas les 2 contributions existantes. L'idée serait donc d'avoir : - sur le panier une case à cocher ligne par ligne. - ou via un module (comme le font les contrib existantes) qui me détaille le contenu du panier avec une case à cocher individuellement. L'information du ou des choix devant évidemment être récupérable côté admin dans la commande. Tout cela dépassant mes compétences, si un développeur connaissant bien OsCommerce est intéressé, me contacter en MP. Merci beaucoup -------------------- Sur OsCommerce 2.2
|
|
17 Sep 2020, 13:37
Message
#2
|
|
Ceinture marron OSC Groupe : Modérateurs Messages : 1543 Inscrit : 30-May 06 Lieu : Vichy (03) Membre no 10583 |
Bonjour,
Il y a peut-être une autre solution : les options (products_attributes). Cela permet au commerçant : - de ne mettre l'option "papier cadeau" qu'aux articles qui peuvent être emballés. - d'avoir des tarifs différents selon la taille du papier à utiliser (c'est un exemple) Cela permet au client : - de sélectionner l'option "papier cadeau" lors qu'il met l'article dans le panier. Cela ne nécessite pas de programmation ... -------------------- Config 1 en live : Osc 2.2 très fortement modifié ... UTF-8 et Php 5.4.
Contribs installées : down_for_maintenance_v 2.3 | Estimated Shipping v1.5 | imprint_1_3_5 | low_stock_report_v2.04 | visible_countries_1.2b | Products Tabs | shoppingCart_cleanup_v1.01.0 | + trop de bidouilles persos pas très OsCommerce (erreurs de jeunesse) Config 2 en local avec UwAmp : Osc Phoenix |
|
17 Sep 2020, 13:50
Message
#3
|
|
Ceinture jaune+ OSC Groupe : Membres Messages : 100 Inscrit : 6-November 12 Membre no 31715 |
Bonjour, Il y a peut-être une autre solution : les options (products_attributes). Cela permet au commerçant : - de ne mettre l'option "papier cadeau" qu'aux articles qui peuvent être emballés. - d'avoir des tarifs différents selon la taille du papier à utiliser (c'est un exemple) Cela permet au client : - de sélectionner l'option "papier cadeau" lors qu'il met l'article dans le panier. Cela ne nécessite pas de programmation ... Haha astucieux. J'étais en train de regarder les contributions (leur code), et effectivement, les options pourraient coller. De plus, dans le fichier du panier (shopping_cart.php) et dans le fichier de la page produit (product_info.php) on peut ajouter un if conditionnel pour check si l'option pour le produit existe et on peut afficher un message: "Ce produit peut être emballé comme cadeau, sélectionnez l'option si vous souhaitez en bénéficier!" Ce message a été modifié par SaphyraK - 17 Sep 2020, 13:59. -------------------- We get Everything, we are developpers, we are masters of the universe !
(just kidding.. **sigh**, just developpers...) |
|
17 Sep 2020, 14:10
Message
#4
|
|
Ceinture orange OSC Groupe : Membres Messages : 181 Inscrit : 3-January 08 Membre no 20263 |
J'ai oublié de préciser que pour diverses raisons je ne souhaite pas passer pour le système d'options qui je vous l'accorde aurait été bien bien bien plus simple ! J'ai déjà pas mal de produits à options : couleur, taille... et je ne souhaite pas charger l'ergonomie de mes fiches. J'ai pendant un moment creusé l'idée de "jouer" avec la fonction : Code add_cart($products_id, $qty = '1', $attributes = '', $notify = true) A côté de chaque produit de mon panier, j'aurais eu un lien "ajouter un papier cadeau" qui aurait ajouté un nouveau produit dans mon panier : le produit "papier cadeau" en question. C'était nickel mais je ne savais pas depuis quelle ligne produit de mon panier, le "papier cadeau" était ajouté : - J'ai 3 produits dans mon panier. - Je clique sur ajouter un papier cadeau sur mon premier produit puis le deuxième. - Dans mon panier s'ajoute donc le produit papier cadeau en quantité 1 puis encore 1 soit =2. - Mais impossible de savoir quels sont les 2 produits sur 3 concernés par l'emballage cadeau ! J'ai donc abandonné cette idée. -------------------- Sur OsCommerce 2.2
|
|
17 Sep 2020, 16:03
Message
#5
|
|
Ceinture jaune+ OSC Groupe : Membres Messages : 100 Inscrit : 6-November 12 Membre no 31715 |
J'ai oublié de préciser que pour diverses raisons je ne souhaite pas passer pour le système d'options ... Hahahaha, ok, dommage, c'eût été plus simple Cela-dit, là, comme ça, je ne connais absolument pas comment est conçu le fonctionnement du module (enfin, des modules) que tu cites. L'idée en revanche, qui bourgeonne dans ma tête est simple (attention, c'est un draft, les codes tels quels ne fonctionneront absolument pas, c'est juste une ébauche): Ajout d'une colonne à customers_order, 'giftwrap_per_products' Sur la page du panier, un champ de formulaire caché avec pour nom: "giftwrap_per_products" Sur la page du panier, une case ajoutée par produit. Chaque case produirait ce code (au sein d'une boucle listant chaque produit dans le panier): -> Code id="giftwrapPerProducts_cb_<?php echo $shopping_cart['id']; ?>" -> Code onclick="giftwrapPerProducts_fn('<?php echo $shopping_cart['id']; ?>', this.id);" et un .js injecté: Code function giftwrapPerProducts_fn(product_id, case_dom) { checkboxToTest = case_dom.checked; elementToParseOrUpdate = document.getElementById('giftwrap_per_products').value; regexPattern = new RegExp('\|wrap\['+product_id+'\]', 'g'); switch (checkboxToTest) { default: case false: case ''; // si la case était décochée, on ajoute un tag d'emballage, uniquement si le terme précis d'emballage n'est déjà pas trouvé: if (!elementToParseOrUpdate.match(regexPattern)) { elementToParseOrUpdate += '|wrap['+product_id+']'; } break; case true: case 'checked': // si la case était cochée, on supprimer juste le tag d'emballage, uniquement si le terme précis d'emballage est trouvé: if (elementToParseOrUpdate.match(regexPattern)) { elementToParseOrUpdate.replace(regexPattern, ''); } break; } En fait, maintenant, plus qu'à ne jamais oublier de passer le champ caché à la classe order, elle a pour name 'giftwrap_per_products' A partir de la page panier, sera injecté dans l'instance actuelle '$order' un index au tableau php: Code giftWrapPerProducts' => $order['giftwrap_per_products'] Depuis l'administration maintenant: Dans edit_orders, à un endroit, on créé une structure HTML: Code <table> <tr> <td> Le client veut que les produits suivants soit emballés: <?php /* on récupère le champ giftwrap_per_products depuis la base de données */ et on le liste: echo str_replace(array('|wrap[', ']'), array('', ''), $order['giftwrap_per_products']); ?> </td> </tr> </table> Et ainsi, on sait quels produits sont ou non à emballer. Evidemment, c'est très "brouillon", c'est un proof-of-concept, mais, la logique est bien là. Il faut mettre en développement chaque partie importante: base de données, classe order, fichier de transitions: shopping_cart.php, checkout_shipping.php, checkout_payment.php et checkout_process.php. Aussi, la partie de récupération de qupi doit être emballé dans l'administration, peut se faire plus joliement, directement inclu dans le listing du $order->cart(), puis, si le wrap[XXX] (où XXX = id du produit), coincide avec la ligne actuelle du produit, alors, ça ajoute la mention: "-- Le client veut que ce produit soit emballé!". Voilà. EDIT: il se peut que des erreurs de syntaxe JS/PHP soit apparente, ceci car, ce n'est pas un code testé, mais une logique de concept. Ce message a été modifié par SaphyraK - 17 Sep 2020, 16:04. -------------------- We get Everything, we are developpers, we are masters of the universe !
(just kidding.. **sigh**, just developpers...) |
|
18 Sep 2020, 09:13
Message
#6
|
|
Ceinture orange OSC Groupe : Membres Messages : 181 Inscrit : 3-January 08 Membre no 20263 |
Je te remercie pour l'idée, je vais creuser cette piste ! Je sens que je m'amuser quand même -------------------- Sur OsCommerce 2.2
|
|
Version bas débit | Nous sommes le : 29th March 2024 - 12:22 |
Ce site est déclaré auprès de la commision Nationale de l'Informatique et des Libertés (déclaration n°: 1043896) |