Ajouter, supprimer des accessoires à un produit Magento (upsell)

magento-logoMagento permet de gérer plusieurs types de relation entre les produits afin d’augmenter le cross-selling. Les trois types de relation disponibles sur les articles sont :

  • les Produits apparentés (Related product),
  • les Accessoires (Up-sells),
  • les Ventes croisées (Cross-sell).

Voici un exemple permettant de créer par programme en utilisant l’API Magento, des accessoires (up-sell) pour des articles. Cette méthode peut également s’appliquer pour les autres types de relation en changeant la méthode utilisée sur le modèle catalog/product.

Dans cet exemple la liste des accessoires déjà présent pour le produit est stockée dans un tableau, et on ajoute au tableau l’identifiant du nouveau produit accessoire.

Si le type de produit à ajouter est :

  • un produit apparenté, utiliser la fonction setRelatedLinkData
  • un produit de vente croisée il faut utiliser la fonction setCrossSellLinkData

Également une petite vidéo  précisant la gestion des relations produits dans Magento.

 Ajouter, supprimer des accessoires à un produit Magento (upsell)

Magento – nettoyage des logs et de la base de données

Lors de l’utilisation intensive de Magento, la base de données grossit de manière importante. Il est nécessaire de mettre en place une purge des logs. Il existe 2 solutions :

  • Depuis l’administration de magento,
  • Par script SQL directement dans la base de données.

I. Planification de la purge depuis Magento

Il est possible depuis l’administration de Magento de déclencher cette fonction : Menu Système -> Configuration, Onglet Paramètres avancés -> Système.

Mais cette solution implique le paramétrage de la tâche cron.php de Magento. Ce script doit être lancée à intervalle régulier par un ordonanceur (sous Linux il s’agit de crontab). Je préfère utiliser la deuxième solution, bien que plus intrusive (on modifie directement la base de données). En effet si l’on souhaite utiliser la planification interne de Magento, il est indispensable de checker l’ensemble des tâches lancées par l’ordonnaceur (mail de relance intempestif par exemple, et toutes les extensions installées qui peuvent ajouter leurs propres tâches…)

II. Script de purge Mysql

Voici le script SQL que nous utilisons sur nos installations Magento :

Ce script SQL est lancé toutes les nuits à partir d’un shell ordonnancé par la crontab. Voici un exemple de shell  :

Ensuite il suffit de planifier l’exécution de ce script tous les jours durant la nuit.

Magento – nettoyage des logs et de la base de données

Magento – Ajouter, modifier et supprimer une option personnalisable en code

Pour faire evoluer notre catalogue produit nous avons dû mettre en place des scripts effectuant de grosses manipulations sur les options personnalisables des produits (custom option). Plutôt que d’effectuer ces manipulations dans les tables catalog_product_optionxxxx, j’ai préférer me pencher sur l’utilisation des objets du modèle.

Ayant déjà une bonne connaissance de la manipulation de la partie product et category, la manipulation des options devrait être assez simple. Après un peu de recherche sur Internet, j’ai du batailler ferme avec le script pour arriver à mes fins car c’est plus complexe qu’il n’y parait…

Continue reading

Changer un site magento de serveur

 

En voulant récemment basculer un site magento d’un serveur à un autre j’ai été confronté aux modifications à faire dans les fichiers de configuration de magento. Et là c’est bien plus compliqué que dans Joomla. Voici les étapes à suivre pour faire le transfert d’un site vers un autre serveur ou une autre racine de contexte.

 

1) Effacer le contenu du sous-répertoire <magento_install_dir>/var

2) Changer les valeurs dans le fichier <magento_install_dir>/app/etc/local.xml
Les valeurs à modifier concernent la chaîne de connexion à la base de données (database user, host and name).

3) Une fois que la base de données à été installée sur le nouveau serveur, vous devez faire les modifications suivantes

– Exécuter la requête suivante:

SELECT FROM core_config_data WHERE path ‘web/unsecure/base_url’ OR path ‘web/secure/base_url’;
Le résultat obtenu est semblable à :

+———–+———+———-+———————–+————————————–+
config_id scope   scope_id path                  value                                |
+———–+———+———-+———————–+————————————–+
|         | default |        web/unsecure/base_url http://www.mondomaine.com/magento/ |
|         | default |        web/secure/base_url   http://www.mondomaine.com/magento/ |
+———–+———+———-+———————–+————————————–+

– Il faut changer les valeurs pour la nouvelle URL.
UPDATE core_config_data SET value ‘http://www.monnewdomaine.com/’ WHERE path LIKE ‘web/%/base_url’;
Le résultat obtenu est semblable à :

+———–+———+———-+———————–+——————————+
config_id scope   scope_id path                  value                        |
+———–+———+———-+———————–+——————————+
|         | default |        web/unsecure/base_url http://www.monnewdomaine.com/ |
|         | default |        web/secure/base_url   http://www.monnewdomaine/ |
+———–+———+———-+———————–+——————————+

 

Vous pouvez ensuite accéder à magento sans difficulté.