Les changements d’OS sont déroutants pour les habitudes bien encrées dans nos quotidiens de développeur.
Que vous venez du monde Unix ou Windows, passer sous Mac OS X demande des concessions mais aussi de nouvelles manières d’être productif.

La majorité des articles sur le sujet d’un poste de développeur web se limite bien trop souvent à activer Apache de Mac ou d’installer MAMP. Quid de Vagrant / GIT / PHP Unit ?
Cependant, il y a aussi tous ces changements presque insignifiant mais qui perturbent fortement l’apprentissage, du moindre Alt+Tab cross application au nouveau clavier Mac.

Lire la suite de cet article »

Mage Conf - Conférences Magento

Le 27 novembre 2013 à la Cartonnerie de Paris aura lieu la première journée de conférences Magento ‘Mage Conf‘.

Cet événement créé par Nicolas Trossat – Dirigeant de l’agence Boutik Circus - a la lourde tâche de présenter des conférences techniques autour de Magento, par des développeurs pour les développeurs, clients s’abstenir..

Le postulat de base est de pouvoir rassembler les développeurs, de les faire échanger, débattre et d’avancer ensemble autour de la solution Magento. Nous nous rapprochons plus d’un événement comme SudWeb que le salon du e-commerce ou d’un Bargento.

Car oui, l’objectif assumé est de se détacher du Bargento en terme de contenu.
Soyons clair, le Bargento est un très bon instrument promotionnel pour lier les agences aux clients, mais aussi pour fixer un lieu de rendez-vous pour les professionnels gravitant autour de Magento mais il est très difficile de dialoguer entre développeurs, tout notre temps est consacré aux prospects et aux clients.

Les conférences de Mage Conf n’ont pour l’instant pas été fixées, c’est à vous de voter pour les conférences qui vont être présentées.
Le seul problème finalement est la frustration de ne pas pouvoir les voir toutes…
Car au niveau des intervenants, il y a du beau monde !

L’occasion pour moi de retrouver des personnes avec qui j’ai travaillé sur des projets communs, que ce soit les intervenants, mais aussi les curieux/visiteurs/développeurs comme vous et moi.

Bref, vivement le 27 novembre, cela va être super, à n’en pas douter !

Rappel des informations utiles :

Voici le script SQL pour supprimer tous les produits sur un Magento 1.7.*.
Attention à ne pas TRUNCATE la table catalog_product_link_type :

-- Reset products
SET FOREIGN_KEY_CHECKS=0;
TRUNCATE catalog_product_bundle_option;
TRUNCATE catalog_product_bundle_option_value;
TRUNCATE catalog_product_bundle_price_index;
TRUNCATE catalog_product_bundle_selection;
TRUNCATE catalog_product_bundle_selection_price;
TRUNCATE catalog_product_bundle_stock_index;
TRUNCATE catalog_product_enabled_index;
TRUNCATE catalog_product_entity;
TRUNCATE catalog_product_entity_datetime;
TRUNCATE catalog_product_entity_decimal;
TRUNCATE catalog_product_entity_gallery;
TRUNCATE catalog_product_entity_group_price;
TRUNCATE catalog_product_entity_int;
TRUNCATE catalog_product_entity_media_gallery;
TRUNCATE catalog_product_entity_media_gallery_value;
TRUNCATE catalog_product_entity_text;
TRUNCATE catalog_product_entity_tier_price;
TRUNCATE catalog_product_entity_varchar;
TRUNCATE catalog_product_flat_1;
TRUNCATE catalog_product_index_eav;
TRUNCATE catalog_product_index_eav_decimal;
TRUNCATE catalog_product_index_eav_decimal_idx;
TRUNCATE catalog_product_index_eav_decimal_tmp;
TRUNCATE catalog_product_index_eav_idx;
TRUNCATE catalog_product_index_eav_tmp;
TRUNCATE catalog_product_index_group_price;
TRUNCATE catalog_product_index_price;
TRUNCATE catalog_product_index_price_bundle_idx;
TRUNCATE catalog_product_index_price_bundle_opt_idx;
TRUNCATE catalog_product_index_price_bundle_opt_tmp;
TRUNCATE catalog_product_index_price_bundle_sel_idx;
TRUNCATE catalog_product_index_price_bundle_sel_tmp;
TRUNCATE catalog_product_index_price_bundle_tmp;
TRUNCATE catalog_product_index_price_cfg_opt_agr_idx;
TRUNCATE catalog_product_index_price_cfg_opt_agr_tmp;
TRUNCATE catalog_product_index_price_cfg_opt_idx;
TRUNCATE catalog_product_index_price_cfg_opt_tmp;
TRUNCATE catalog_product_index_price_downlod_idx;
TRUNCATE catalog_product_index_price_downlod_tmp;
TRUNCATE catalog_product_index_price_final_idx;
TRUNCATE catalog_product_index_price_final_tmp;
TRUNCATE catalog_product_index_price_idx;
TRUNCATE catalog_product_index_price_opt_agr_idx;
TRUNCATE catalog_product_index_price_opt_agr_tmp;
TRUNCATE catalog_product_index_price_opt_idx;
TRUNCATE catalog_product_index_price_opt_tmp;
TRUNCATE catalog_product_index_price_tmp;
TRUNCATE catalog_product_index_tier_price;
TRUNCATE catalog_product_index_website;
TRUNCATE catalog_product_link;
TRUNCATE catalog_product_link_attribute_decimal;
TRUNCATE catalog_product_link_attribute_int;
TRUNCATE catalog_product_link_attribute_varchar;
TRUNCATE catalog_product_option;
TRUNCATE catalog_product_option_price;
TRUNCATE catalog_product_option_title;
TRUNCATE catalog_product_option_type_price;
TRUNCATE catalog_product_option_type_title;
TRUNCATE catalog_product_option_type_value;
TRUNCATE catalog_product_relation;
TRUNCATE catalog_product_super_attribute;
TRUNCATE catalog_product_super_attribute_label;
TRUNCATE catalog_product_super_attribute_pricing;
TRUNCATE catalog_product_super_link;
TRUNCATE catalog_product_website;
TRUNCATE cataloginventory_stock_item;
ALTER TABLE catalog_product_flat_1 AUTO_INCREMENT = 1;
ALTER TABLE catalog_product_entity AUTO_INCREMENT = 1;
SET FOREIGN_KEY_CHECKS=1;

Voici le script SQL pour vider les catégories d’un Magento 1.7.*.

A noter qu’il y a une table par store view si le Flat Catalog est activé (catalog_category_flat_store_*) :

SET FOREIGN_KEY_CHECKS=0;
-- Reset categories
TRUNCATE catalog_category_anc_categs_index_idx;
TRUNCATE catalog_category_anc_categs_index_tmp;
TRUNCATE catalog_category_anc_products_index_idx;
TRUNCATE catalog_category_anc_products_index_tmp;
DELETE FROM catalog_category_entity WHERE entity_id > 2;
DELETE FROM catalog_category_entity_datetime WHERE entity_id > 2;
DELETE FROM catalog_category_entity_decimal WHERE entity_id > 2;
DELETE FROM catalog_category_entity_int WHERE entity_id > 2;
DELETE FROM catalog_category_entity_text WHERE entity_id > 2;
DELETE FROM catalog_category_entity_varchar WHERE entity_id > 2;
TRUNCATE catalog_category_flat_store_1;
TRUNCATE catalog_category_product;
TRUNCATE catalog_category_product_index;
TRUNCATE catalog_category_product_index_enbl_idx;
TRUNCATE catalog_category_product_index_enbl_tmp;
TRUNCATE catalog_category_product_index_idx;
TRUNCATE catalog_category_product_index_tmp;
ALTER TABLE catalog_category_anc_categs_index_idx AUTO_INCREMENT=1;
ALTER TABLE catalog_category_anc_categs_index_tmp AUTO_INCREMENT=1;
ALTER TABLE catalog_category_anc_products_index_idx AUTO_INCREMENT=1;
ALTER TABLE catalog_category_anc_products_index_tmp AUTO_INCREMENT=1;
ALTER TABLE catalog_category_entity AUTO_INCREMENT=3;
ALTER TABLE catalog_category_flat_store_1 AUTO_INCREMENT=1;
ALTER TABLE catalog_category_product_index AUTO_INCREMENT=1;
ALTER TABLE catalog_category_product_index_enbl_idx AUTO_INCREMENT=1;
ALTER TABLE catalog_category_product_index_enbl_tmp AUTO_INCREMENT=1;
ALTER TABLE catalog_category_product_index_idx AUTO_INCREMENT=1;
ALTER TABLE catalog_category_product_index_tmp AUTO_INCREMENT=1;
SET FOREIGN_KEY_CHECKS=1;

Sous Magento, il n’y a pas de réelle base de connaissance. Si vous voulez détecter le cas où vous êtes sur la page d’accueil ou sur une page éditoriale, il n’y a pas de is_home(), ou is_page() comme sur un CMS comme WordPress.

De même que récupérer des variables en front-office, il est nécessaire d’aller voir dans les fichiers Mage pour découvrir certaines valeurs assez utiles :

Variables :

  1. URL de la page courante
  2. URL des images et des CSS
  3. URL des dossiers de base
    1. URL de la racine
    2. URL des liens (utile en multi-domaine)
    3. URL du dossier des JS
    4. URL du dossier des medias
    5. URL du dossier des skins
  4. URL spécifiques
    1. URL du compte client
    2. URL du panier
    3. URL du tunnel de commande
    4. URL de la page de connexion
    5. URL de la page de déconnexion
    6. URL du mot de passe perdu
  5. Catégories
    1. URL d’une catégorie (via son id)
    2. Description d’une catégorie (via son id)
    3. Nom d’une catégorie (via son id)
    4. Catégorie courante
    5. Id de la catégorie courante
    6. Id du parent d’une catégorie (via son id)
    7. Id de la catégorie principale (root)
  6. Page CMS
    1. Nom de la page CMS courante
    2. Identifiant (clef-URL) de la page CMS courante
    3. Id de la page CMS courante
    4. Contenu d’une page CMS
  7. Blocs statiques CMS
    1. Contenu d’un bloc statique
    2. Titre d’un bloc statique
  8. Listing des pages CMS et des blocs statiques
  9. Titre de la catégorie voulue
  10. Variables d’administration
    1. Le numéro de téléphone du magasin
    2. Autres
  11. Panier
    1. Récupérer le montant total du panier
    2. Récupérer le nombre d’articles différents du panier
    3. Récupérer le nombre d’articles au total du panier
    4. Parcourir tous les articles du panier
    5. Ajouter un article au panier
    6. Enlever un article du panier
    7. Ajouter un lien « Ajouter au panier »
  12. Website / Store group / Store view

Fonctions :

  1. Formater un nombre en devise
  2. Retourner la date actuelle

Conditions :

  1. Si on se trouve sur la page d’accueil
  2. Si on se trouve sur une page CMS (éditoriale)
  3. Si l’utilisateur est loggué
  4. Si un administrateur est loggué
  5. Si la catégorie courante est une catégorie de niveau 1
  6. Relatives à un produit :
    1. Si c’est un produit configurable
    2. Si c’est un produit groupé
    3. Si un produit est vendable
    4. Si un produit est visible dans le catalogue
    5. Si un produit est activé
    6. (combo) Si un produit est « vraiment » vendable

Edit :

  • 08/02/10 : Titre d’un bloc statique CMS
  • 28/02/10 : Détection page accueil @ Magento >= 1.4
  • 01/03/10 : Si un administrateur est loggué
  • 17/05/10 : URL d’une catégorie (via son identifiant)
  • 18/05/10 : Description d’une catégorie (via son id)
  • 18/05/10 : Nom d’une catégorie (via son id)
  • 07/07/10 : Catégorie courante
  • 07/07/10 : Id de la catégorie courante
  • 07/07/10 : Id du parent d’une catégorie (via son id)
  • 07/07/10 : Id de la catégorie principale (root)
  • 07/07/10 : Si la catégorie courante est une catégorie de niveau 1
  • 07/07/10 : Niveau dans l’arborescence
  • 15/09/10 :  Si c’est un produit configurable
  • 26/12/10 : Le numéro de téléphone du magasin
  • 04/01/11 : Formater un nombre en devise
  • 06/01/11 : Retourner la date actuelle
  • 23/02/11 : Contenu d’une page CMS
  • 21/11/11 : Url du tunnel de commande
  • 13/12/11 : Website / Store group / Store view
  • 11/04/12 : Re-publication de l’article, il a bien changé depuis 2009 !

Lire la suite de cet article »

Les templates de bases sous Magento sont assez restreints :

  • Vide
  • 1 colonne (1column.phtml)
  • 2 colonnes – Sidebar à gauche (2columns-left.phtml)
  • 2 colonnes – Sidebar à droite (2columns-right.phtml)
  • 3 colonnes (3columns.phtml)

Ces templates se trouvent dans : /app/design/frontend/{votre_interface}/{votre_theme}/template/page

Problème :

Homepage - Gabarit - Magento

Lire la suite de cet article »

Le but de cet article est de faire le ménage sur la page d’accueil.

  1. Enlever le sondage
  2. Enlever les listes d’envies
  3. Enlever les tags des produits (et le nuage de tags au passage)
  4. Enlever les commentaires des produits
  5. Enlever la newsletter
  6. Enlever le moteur de recherche
  7. Enlever les produits téléchargeables
  8. Enlever le bloc « comparateur de prix » de la page d’accueil
  9. Enlever complètement le comparateur de prix du site
  10. Enlever la possibilité d’avoir des livraisons à des adresses multiples
  11. Enlever « Aidez-nous à améliorer Magento – Signaler un dysfonctionnement »
  12. Rajouter l’affichage de produits dans la page d’accueil

Edit :

  • 04/11/09 : Enlever la possibilité d’avoir des livraisons à des adresses multiples
  • 17/08/09 : Enlever le moteur de recherche

Lire la suite de cet article »

Comment récupérer l’e-mail de contact général de votre boutique afin de l’utiliser en front-office dans vos pages contact / service après vente ?

Lire la suite de cet article »

Pour gérer vos différentes bases de données, un logiciel d’accès à vos bases est plus pratique et performant que le vieillissant PhpMyAdmin, comme par exemple SQLyog.

La connexion à votre base de données s’avère normalement impossible si :

  1. Vous n’avez pas autorisé les connexions distantes
  2. Vous ne passez pas par du tunneling SSH

Etape 1 : Autoriser les connexions distantes

En SSH root sur votre serveur :

  • Editez le fichier : /etc/mysql/my.cnf
  • Commentez la ligne : skip-networking afin d’ouvrir le port de MySQL (3306 par défaut)
#skip-networking
  • Redémarrez MySQL : /etc/init.d/mysql restart

Etape 2 : Utiliser le tunneling SSH

Au lieu d’attaquer directement la base de données depuis notre poste, nous nous connectons en SSH, puis nous lançons la connexion en localhost, d’où le tunneling SSH.

Onglet SSH :

  • SSH Host Address : host_ssh
  • Username : user_ssh (ou root ssh)
  • Password : pass_ssh

Port par défaut : 22

Onglet MySQL :

  • MySQL Host Address : localhost
  • Username : user_mysql (ou root mysql)
  • Password : pass_mysql
  • Database(s) [optionnel]

Port par défaut : 3306

C’est tout.

Quand on parle d’évènement Magento, on pense directement aux Bargento organisés sur Paris.

Aucun grand évènement Magento n’a encore eu lieu dans le sud de la France.

C’est chose faite avec Magentolosa, l’évènement Magento sur Toulouse organisé par la SSII Xi Ingénierie le jeudi 01 Juillet 2010 :

————————————————————————————————————————–

magentrans Magentolosa 2010 : 1er évènement Magento à Toulouse

Lancement officiel du premier évènement Magento à Toulouse organisé par XI Ingénierie.

Cet évènement s’oriente vers la découverte et la formation autour de Magento ainsi que des bonnes pratiques pour la migration de sites existants.

La manifestation se déroulera le 1er Juillet 2010 à Colomiers (31770,  à 3 km de Toulouse).

Le programme de cette journée :

2 conférences d’une heure :

  • Magento en 40 points et 40 minutes, à 9h
  • Migrer sous Magento : les étapes, à 14h

4 ateliers de 10h à 12h30 et 14h à 17h30 :

  • Démonstration Magento dont notamment :
    • Le multi-boutique, multi-devise et la gestion B2B et B2c
    • Le moteur de règles promotionnelles
  • Optimisation de la plateforme Magento
  • Indépendance décisionnelle entre Magento et le monde extérieur.
  • Eye Tracking avec l’intervention de TOBII

De 12h30 à 14h, buffet.

Le tarif pour participer à cette journée est de 30€ TTC correspondant à la prise en charge du buffet et d’une collation.

Pour accéder à l’inscription en ligne, cliquez ici.

Pour vous inscrire par téléphone appelez au 05 61 82 58 86.

Il n’y aura pas d’inscription sur place.

L’adresse est : 23, boulevard Victor Hugo – bâtiment Socrate – 31770 COLOMIERS

Page 1 sur 512345

Je m'appelle Frédéric Martinez.

Je suis Freelance Magento, fondateur de l'agence web e-commerce PH2M et anciennement étudiant en Master MIAGE à Toulouse.

Ce site présente mes réalisations professionnelles, personnelles et universitaires.

Magento Certified Developer Plus

rss_32 twitter_32 Magento

  • Vincent MARMIESSE: Bonjour, Attention depuis Magento 1.9.2.0, les blocs CMS sont en cache ! Cela ne pose pas de pro [...]
  • Java2dev: Bonjour, pour l'Etape 1 a quel niveau on met les codes? dans quel folder et c'est un fichier a edit [...]
  • manuel: Bonjour Frédéric, j'aimerais savoir comment enlever l'option de ( signature obligatoire ) de mon m [...]
  • Arsene: Bonjour a tous, j'aimerais savoir comment créer un module qui propose des options d'assurance su [...]
  • Frédéric Martinez: @Thomas : Il y aura toujours de la perte sur les personnes ne retournant pas sur la page de success. [...]