THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

Rejoignez la communauté sur le Discord Thelia : https://discord.gg/YgwpYEE3y3

Offline


Bonjour,
je suis en pleine réflexion d'un système de panier en deux étapes :
- étape 1 : sélection d'un coffret ayant une capacité d'articles
- étape 2 : choix des articles associés (des macarons pour être précis smile)

Je pensais créer un module surchargeant le modèle Order, et un autre ajoutant un paramètre aux produits, permettant de déterminer quel type d'article c'est (le contenu ou le contenant).

Est-ce que je pars dans le bonne direction, ou existe-t-il un moyen plus simple de procéder ?

Staneus

Offline


Salut,

je comprends pas exactement la schématique que tu veux aborder .

dans le cas pour l'instant Thelia te permet de faire un addtocart avec des combinaisons,

si je comprends bien tu voudrais en quelque sorte que ton client crée une combinaison à partir de plusieurs option d'un produit afin que cela calcul le prix total ?


cdt

Offline


Merci de ta réponse.

En fait, le contenant serait payant, et le contenu serait "gratuit", car compris dans le prix du contenant.
Par exemple s'il sélectionne une boite de 12, il pourra personnaliser sa boîte avec 12 macarons au choix dans la famille des macarons.
Je ne pense pas que cela puisse être fait avec des combinaisons, car ça ferait quand même un paquet de combinaisons... A moins que je me trompe ?

  • manu
  • faï tot petar miladiu

Offline


Bonjour,

Il faudra faire un développement pour faire ce que tu souhaites. L'utilisation de combinaisons de déclinaisons n'est pas possible, tu peux le faire uniquement si tu proposes des conditionnements qui sont déjà remplis, ce qui n'est pas ton cas.


http://doc.thelia.net/
http://thelia.net/modules
http://raynaud.io
PGP public Key : 0xC6E546A6

Offline


OK Merci.
J'envisage donc de surcharger des modèles existants. Est-ce que c'est faisable facilement avec les sytème de modules, ou dois-je recréer entièrement un autre modèle ?

  • manu
  • faï tot petar miladiu

Offline


Il est possible d'étendre le modèle, rajouter de nouvelles tables, mais pas de modifier le modèle existant.

Regarde ce qui se fait sur les modules existants : https://github.com/thelia-modules/


http://doc.thelia.net/
http://thelia.net/modules
http://raynaud.io
PGP public Key : 0xC6E546A6

Offline


Bonjour,

j'ai regardé quelques modules et trouvé des infos intéressantes, mais il me manque quelques détails.

Si je veux surcharger la table "Category" pour ajouter un attribut "is_container", je n'ai d'autre choix que de la "copier" avec mes nouvelles colonnes, étant donné que je ne peux pas modifier la table d'origine.
Par contre, comment modifier toutes les foreigns du Core pointant sur la table d'origine, pour qu'elles pointent sur ma nouvelle table ?
Dois-je les réécrire complètement dans le schéma de mon module ?

Merci d'avance

Offline


Thelia fournit un modèle très riche de manipulation et d'extension des informations et process du core, tu as donc un autre choix que de patcher le core et le modèle dans tous les sens, et de te couper de la sublime 2.0.2 et des versions suivantes.

La bonne méthode est donc de créer un module qui définit sa propre table qui contient un id de categorie et ton attribut "is_container". Le module gère cette table, et etend (extends) la boucle category pour lui ajouter en sortie ton attribut "is_container" (cf le code de core\lib\Thelia\Core\Template\Loop\Category.php), ou même un paramètre d'ntrée pour filtrer la sortie en fonction de l'attribut  "is_container".

Pour être intégré dans le flot d'évènement concernant les catégories (ajout, suppression, modif, etc.), ton module doit s'abonner aux événement relatifs aux categories (cf. TheliaEvernts.php)

Enfin, pour ce qui est de la saisie par l'admin (si nécessaire) de la valeur de ton attribut, tu peux utiliser un des module_includes du template d'édition de categories (category-edit.html).

Voilà le topo en 2 mots smile


OpenStudio Toulouse

Offline


Wouah merci pour cette réponse complète !
J'étais effectivement parti sur cette idée pour éviter d'avoir à tout recréer. smile Ca me conforte dans mon idée !

Je vous tiens au courant de mon avancement.

Staneus