Prestashop : le multiboutique
Prestashop 1.5 et 1.6
voici le fruit de mes réflexions sur la partie multi-boutique
1 - On part de rien (le plus facile)
activer de suite le multi-boutique
activer et renseignez tous les modules utilisés, créer les transporteurs, etc (tous ce qui est commun à toutes les boutiques)
N’avoir que la catégorie « accueil » ou « home » sans produits
Créer autant de catégories à la racine que de boutique à construire
Aller dans Paramètres avancés-> Multiboutique -> ajouter une boutique
La partie partage clients/stock/commandes est un choix de chacun
dans mon cas nous souhaitons que le client puisse passer d’une boutique à l’autre en restant connecté
Normalement si Prestashop est sans la démo c’est activable
Garder le groupe de boutiques par défaut si on veut partager
créer ses boutiques en sélectionnant la racine accueil/home de chacune
comme il n’y a pas de sous catégories ni de produits il n’y a pas d’import produit
créer vos urls : 2 méthodes
– l’url virtuelle seule : http://www.mondomaine.com/shopracine/
– le sous domaine : http://shopracine.mondomaine.com
(dans la config de mon dédié j’ajoute une redirection en l’occurrence « shopracine » vers le même compte que www et le htaccess fait le reste)
Une fois les multi-boutiques crées vous pouvez vous positionner via le sélecteur de boutique
sur la home de chacune et passer par l’import des catégories / produits en veillant bien à renseigner la catégorie racine et ajouter le champ « shop » dans vos fichiers d’import ou par un remplissage manuel de vos boutiques
Avantage chaque boutique à sa « home »
les modules recherche, mots clés, nouveautés renvois les résultats que de la boutique concernée
vous pouvez gérer indépendamment les produits phares (greffés sur home)
2 - On part d’une boutique déjà remplie
une racine « accueil » ou « home »
des catégories principales, des sous catégories et des produits dans chaque
Créer une boutique spécialisée à partir de l’une des catégories
si l’on veux créer par exemple une boutique spécialisée à partir de l’une des catégories principales existantes :
activer le multi-boutique
si la boutique est en service : clients / commandes
il faut faire des modifications avant
partage
Allez dans la table "shop_group", puis passer "share_customer" et "share_order" de 0 à 1.
Stock
http://www.prestashop.com/forums/topic/239605-multiboutique-et-partage-des-quantites/
dans controllers/admin/AdminShopGroupController.php
J’ai commenté, vers le bas du fichier les 2 lignes
StockAvailable::resetProductFromStock
AvailableByShopGroup($new_shop_group) ;
Ce qui empêche les stocks de se remettre à 0.
Ensuite j’ai basculé côté admin le groupe en "partage des quantités disponibles à la vente".
Puis, table stock_available, j’ai passé tous les id_shop à 0 et les id_group_shop à 1 (id de mon groupe)
UPDATE ps_stock_available
SET id_shop
=0, id_shop_group
=1
aller dans Paramètres avancés-> Multiboutique -> modifier ce groupe de boutique
cocher éventuellement partage des quantités
aller dans Paramètres avancés-> Multiboutique -> ajouter une boutique
groupe de boutiques par défaut
catégorie parent : « accueil » ou « home » on a pas le choix si on veut importer les produits.
catégories associés : « accueil » ou « home » obligé (sinon alerte interdit)
l’ensemble de l’architecture des catégories est sélectionnable dans l’arborescence proposée
ce sont donc les catégories qui vont être créés pour la nouvelle boutique
je coche « accueil » et la catégories destinée à la boutique spécialisée et les sous catégories que je veux importer
jusqu’à maintenant je croyais que seul les produits dispos dans les catégories précédemment choisies étaient importés mais en fait c’est tous (voir échange avec Gregory Roussac)
http://www.prestashop.com/forums/topic/307222-multiboutique-et-cronsearch/#entry1582924
et c’est là que ça se gâte ..et que je comprend pas bien la méthode choisie par l’équipe
comme ils sont tous importés par défaut, si on ne fait pas la suppression de TOUS les produits qui ne doivent pas être présent dans la boutique nouvellement créée les modules nouveautés, recherche, mots clés affichent des liens vers des produits de la boutique d’origine
et ça c’est pas normal : il faut donc les supprimer
si on veut une boutique spécialisée de 300 produits sur 1800 il faut donc supprimer 1500 produits importés inutilement
si on veut en faire plusieurs dans mon cas 3 boutiques de 300 j’en suis à 4500 suppressions
mais pire : ces produits sont bien dupliqués dans la table products_shop pour chaque id_shop
mais comme j’ai sélectionné qu’une rubrique principale lors de l’import ces produits sont « flottants » car dans la boutique spécialisée leur catégorie par défaut n’existe pas
le plus simple étant peut être de les supprimer directement en base de données et avec Store Commander la manip est facilité
Après essais sur 1800 produits : erreur 500 -> le max_execution_time à pousser à fond ça fonctionne
ensuite si un produit est dans 2 boutiques le fait de l’associer à l’accueil sur une des boutiques l’associe sur l’autre (il n’y a pas de home par boutique dans l’administration) du coup bidouille : désactiver le produit sur l’une des boutiques pour qu’il soit à la home de l’autre : pas très fonctionnel
il faut prévoir que le module home featured (produits phares sur la page d’accueil) soit greffé sur la boutique principale et installer un module spécifique pour gérer la home de chaque boutique spécialisée (solution choisis pour l’instant) avec https://github.com/tpeigne/simpleresponsivetheme/tree/master/modules/responsivehomefeatured
mon avis :
il faudrait déjà importer que les produits contenus dans les rubriques sélectionnées
éventuellement pouvoir modifier une boutique existante en donnant la possibilité d’importer des catégories et des produits supplémentaires
Les solutions que j’ai développé par override
Modification des fonctions de création d’une nouvelle boutique en limitant l’importation aux seuls produits contenus dans les catégories sélectionnées.
Modification des fonctions de d’enregistrement des mots clés et ajout d’un champ id_shop dans la table ps_tags
Modification des fonctions d’indexation de cronsearch afin de prendre en compte les tags que de la boutique concernée.
Modification des fonctions d’affichage des tags, produits phares et nouveautés en ajoutant le contexte id_shop
Créer une boutique spécialisée en important un nouveau contenu
c’est la qu’il faut créer une nouvelle catégorie racine
veuillez créer dès maintenant une nouvelle catégorie racine Cliquez ici
ensuite c’est pareil que « On part de rien »