{"id":283,"date":"2013-04-17T17:18:13","date_gmt":"2013-04-17T15:18:13","guid":{"rendered":"http:\/\/www.lafabriquedecode.com\/blog\/?p=283"},"modified":"2013-04-17T17:19:29","modified_gmt":"2013-04-17T15:19:29","slug":"pimcore-une-etude-dopportunite","status":"publish","type":"post","link":"http:\/\/www.lafabriquedecode.com\/blog\/2013\/04\/pimcore-une-etude-dopportunite\/","title":{"rendered":"Pimcore : une \u00e9tude d&rsquo;opportunit\u00e9"},"content":{"rendered":"<h1>PIM, vous d\u00eetes ?<\/h1>\n<p>Le PIM (<em>Product Information Management<\/em>, gestion de l&rsquo;information produit en fran\u00e7ais) a pour objectif de fiabiliser, de d\u00e9tailler et de centraliser les informations sur les produits d&rsquo;une entreprise. Dans l\u2019environnement de commerce multi-canal actuel, il est n\u00e9cessaire de contr\u00f4ler la coh\u00e9rence et la pertinence de ces informations avant d&rsquo;alimenter les multiples canaux de diffusion de celles-ci (sur diff\u00e9rents m\u00e9dias).<\/p>\n<h1>Le projet Pimcore<\/h1>\n<p>Pimcore se veut un moyen d&rsquo;agr\u00e9ger, de consolider et d&rsquo;enrichir ces informations en provenance de diverses sources de donn\u00e9es (ERP, syst\u00e8me legacy, SGBDR).<\/p>\n<p>Pimcore est un projet d\u00e9velopp\u00e9 par l&rsquo;entreprise autrichienne Elements1, il est disponible et forkable sur la plate-forme Github\u00a0:<\/p>\n<p><a href=\"https:\/\/github.com\/pimcore\/pimcore.git\">https:\/\/github.com\/pimcore\/pimcore.git<\/a><\/p>\n<p>Un d\u00e9p\u00f4t contenant une d\u00e9mo pr\u00eate \u00e0 l&#8217;emploi est \u00e9galement accessible sur Github\u00a0:<\/p>\n<p><a href=\"https:\/\/github.com\/ElementsDev4\/PimcoreDemo.git\">https:\/\/github.com\/ElementsDev4\/PimcoreDemo.git<\/a><\/p>\n<h2>Pr\u00e9-requis techniques<\/h2>\n<p>Pimcore a pour pr\u00e9-requis\u00a0:<\/p>\n<ul>\n<li>l&rsquo;installation d&rsquo;Apache (Nginx n&rsquo;a pas \u00e9t\u00e9 test\u00e9 mais ceci ne devrait pas poser de probl\u00e8mes, il s&rsquo;agit \u00e0 priori de traduire les r\u00e8gles de r\u00e9\u00e9criture Apache en r\u00e8gles Nginx1)<\/li>\n<li>La pr\u00e9sence de MySQL comme SGBDR et la possibilit\u00e9 de garantir \u00e0 Pimcore que les tables qu&rsquo;il utilise sont bien en inter-classement UTF-8<\/li>\n<\/ul>\n<p>La version qui a \u00e9t\u00e9 utilis\u00e9e lors de mes tests est 1.4.52 (Build 1953). Elle embarque une version 3 d&rsquo;ExtJS et jQuery 1.7.1.ExtJS 4 \u00e0 ce stade des d\u00e9veloppements n&rsquo;est pas pris en charge par Pimcore.<\/p>\n<h3>PHP<\/h3>\n<p>Les param\u00e8tres de PHP requis sont les suivants\u00a0:<\/p>\n<ul>\n<li><span style=\"line-height: 1.714285714; font-size: 1rem;\">version &gt;= 5.3<\/span><\/li>\n<li><span style=\"line-height: 1.714285714; font-size: 1rem;\">memory_limit doit \u00eatre au moins \u00e9gale \u00e0 256M<\/span><\/li>\n<li><span style=\"line-height: 1.714285714; font-size: 1rem;\">magic_quotes_gpc doit \u00eatre \u00e0 off<\/span><\/li>\n<li><span style=\"line-height: 1.714285714; font-size: 1rem;\">safe_mode doit \u00eatre \u00e0 off (toutefois, cette fonctionnalit\u00e9 est devenue obsol\u00e8te depuis PHP 5.3.0 et a \u00e9t\u00e9 supprim\u00e9e dans PHP 5.4.0)<\/span><\/li>\n<li><span style=\"line-height: 1.714285714; font-size: 1rem;\">mcrypt<\/span><\/li>\n<li><span style=\"line-height: 1.714285714; font-size: 1rem;\">pdo_mysql<\/span><\/li>\n<li><span style=\"line-height: 1.714285714; font-size: 1rem;\">iconv<\/span><\/li>\n<li><span style=\"line-height: 1.714285714; font-size: 1rem;\">dom<\/span><\/li>\n<li><span style=\"line-height: 1.714285714; font-size: 1rem;\">simplexml<\/span><\/li>\n<li><span style=\"line-height: 1.714285714; font-size: 1rem;\">gd<\/span><\/li>\n<li><span style=\"line-height: 1.714285714; font-size: 1rem;\">multibyte support (mbstring)<\/span><\/li>\n<li><span style=\"line-height: 1.714285714; font-size: 1rem;\">zlib \/ zip \/ bz2<\/span><\/li>\n<li><span style=\"line-height: 1.714285714; font-size: 1rem;\">openssl<\/span><\/li>\n<\/ul>\n<p>Les param\u00e8tres optionnels sont\u00a0:<\/p>\n<ul>\n<li><span style=\"line-height: 1.714285714; font-size: 1rem;\">l&rsquo;extension PECL APC<\/span><\/li>\n<li><span style=\"line-height: 1.714285714; font-size: 1rem;\">l&rsquo;extension PECL memcache<\/span><\/li>\n<li><span style=\"line-height: 1.714285714; font-size: 1rem;\">l&rsquo;activation de pcntl<\/span><\/li>\n<li><span style=\"line-height: 1.714285714; font-size: 1rem;\">soap (pour utiliser l&rsquo;API des webservices)<\/span><\/li>\n<li><span style=\"line-height: 1.714285714; font-size: 1rem;\">curl (pour utiliser l&rsquo;API Google)<\/span><\/li>\n<\/ul>\n<p>Il faut aussi penser \u00e0 modifier les param\u00e8tres relatifs \u00e0 la taille maximale des uploads.<\/p>\n<h4>\u00ab\u00a0Fine-tuning\u00a0\u00bb au niveau du serveur HTTP<\/h4>\n<p>La documentation officielle recommande d&rsquo;augmenter le nombre maximum de fichiers ouvrables\u00a0:<\/p>\n<blockquote><p>\u00ab\u00a0\u00c9tant donn\u00e9 que Pimcore repose sur Zend Framework et d&rsquo;autres biblioth\u00e8ques assez lourdes, Apache doit charger un grand nombre de fichiers \u00e0 chaque requ\u00eate. Sur Debian, la limite est de 1024 fichiers ouverts simultan\u00e9ment, ce qui est suffisant dans la majeure partie des cas, mais pas pour les sites web \u00e0 fort trafic\u00a0\u00bb<\/p><\/blockquote>\n<h1>Principe g\u00e9n\u00e9ral de fonctionnement<\/h1>\n<p><a href=\"http:\/\/www.lafabriquedecode.com\/blog\/wp-content\/uploads\/2013\/04\/schema_general.png\"><img loading=\"lazy\" class=\"alignnone size-full wp-image-285\" alt=\"schema_general\" src=\"http:\/\/www.lafabriquedecode.com\/blog\/wp-content\/uploads\/2013\/04\/schema_general.png\" width=\"606\" height=\"400\" srcset=\"http:\/\/www.lafabriquedecode.com\/blog\/wp-content\/uploads\/2013\/04\/schema_general.png 606w, http:\/\/www.lafabriquedecode.com\/blog\/wp-content\/uploads\/2013\/04\/schema_general-300x198.png 300w\" sizes=\"(max-width: 606px) 100vw, 606px\" \/><\/a><\/p>\n<p>Le principe peut se r\u00e9sumer ainsi: <strong>\u00ab\u00a0On extrait du contenu depuis une source de donn\u00e9es, on l&rsquo;agr\u00e8ge, on l&rsquo;enrichit, on le diffuse\u00a0\u00bb.<\/strong><\/p>\n<h1>Pr\u00e9sentation technique du produit<\/h1>\n<p>Pimcore fonctionne sur une base logicielle de Zend Framework, qu&rsquo;il embarque dans l&rsquo;archive t\u00e9l\u00e9chargeable depuis le site officiel1.Nul besoin donc d&rsquo;installer Zend.<\/p>\n<h2>Compatibilit\u00e9 avec les navigateurs<\/h2>\n<p>Pimcore prend en charge un certain nombre de navigateurs de nouvelle g\u00e9n\u00e9ration\u00a0:<\/p>\n<ul>\n<li><span style=\"line-height: 1.714285714; font-size: 1rem;\">Firefox &gt;= 3<\/span><\/li>\n<li><span style=\"line-height: 1.714285714; font-size: 1rem;\">IE &gt;= 8<\/span><\/li>\n<li><span style=\"line-height: 1.714285714; font-size: 1rem;\">Safari &gt;= 5<\/span><\/li>\n<li><span style=\"line-height: 1.714285714; font-size: 1rem;\">Chrome &gt;= 3<\/span><\/li>\n<li><span style=\"line-height: 1.714285714; font-size: 1rem;\">Plug-ins browser\u00a0: Adobe Flash Player &gt;= 10.1<\/span><\/li>\n<\/ul>\n<h2>Le cache<\/h2>\n<p>En raison de l&rsquo;absence de prise en compte de la mise en cache par tags de Memcache, Pimcore a impl\u00e9ment\u00e9 un cache \u00ab\u00a0maison\u00a0\u00bb bas\u00e9 sur Memcache: <em>Pimcore_Cache_Backend_Memcached<\/em>.<\/p>\n<h3>Cache backend<\/h3>\n<p>Sur le backend (interface d&rsquo;administration), diff\u00e9rents strat\u00e9gies de caching sont disponibles:<\/p>\n<ul>\n<li><span style=\"line-height: 1.714285714; font-size: 1rem;\">Pimcore_Cache_Backend_Memcached<\/span><\/li>\n<li><span style=\"line-height: 1.714285714; font-size: 1rem;\">Cache MongoDB<\/span><\/li>\n<li><span style=\"line-height: 1.714285714; font-size: 1rem;\">Cache fichier (\u00e0 \u00e9viter!)<\/span><\/li>\n<\/ul>\n<h3>Cache frontend<\/h3>\n<p>C\u00f4t\u00e9 front, seul Pimcore_Cache_Backend_Memcached est disponible.<\/p>\n<h3>Ouput-cache<\/h3>\n<p>Cible uniquement les requ\u00eates HTTP de type GET. Pimcore rajoute ses ent\u00eates de type X-Pimcore-Cache-*. Si une dur\u00e9e de vie a \u00e9t\u00e9 sp\u00e9cifi\u00e9e, les ent\u00eates Cache-Control et Expires sont \u00e9galement pr\u00e9sents (int\u00e9ressant pour une exploitation avec un acc\u00e9l\u00e9rateur comme Varnish&#8230;).<\/p>\n<p>Pimcore d\u00e9conseille vivement l&rsquo;utilisation de la classe \u00ab\u00a0Zend_Cache_Backend_Memcache\u00a0\u00bb fournie par le framework Zend.<\/p>\n<p>Memcache (ou plus exactement son impl\u00e9mentation \u00ab\u00a0maison\u00a0\u00bb par Pimcore) est indispensable au bon fonctionnement du produit sous peine de voir les temps de r\u00e9ponse augmenter de mani\u00e8re drastique !<\/p>\n<h1>Aspects techniques<\/h1>\n<h2>Le coeur de Pimcore<\/h2>\n<p>Pimcore se d\u00e9compose en trois modules fondamentaux:<\/p>\n<ul>\n<li><span style=\"line-height: 1.714285714; font-size: 1rem;\">Les documents : on cr\u00e9\u00e9 des pages (ou des templates) qu&rsquo;on remplit avec du contenu<\/span><\/li>\n<li><span style=\"line-height: 1.714285714; font-size: 1rem;\">Les \u00ab\u00a0assets\u00a0\u00bb: les ressources statiques qu&rsquo;on ins\u00e8re dans les documents (images, vid\u00e9os, PDF&#8230;)<\/span><\/li>\n<li><span style=\"line-height: 1.714285714; font-size: 1rem;\">Les objets : utilisables en mode \u00e9dition ou bien (et c&rsquo;est \u00e7a qui nous int\u00e9resserait davantage) en mode batch avec un script CLI.<\/span><\/li>\n<\/ul>\n<h3>Le backend\/frontend<\/h3>\n<p>Le <em>backend<\/em> est l&rsquo;interface d&rsquo;administration Pimcore : c&rsquo;est l\u00e0 qu&rsquo;on pr\u00e9pare les templates, qu&rsquo;on agr\u00e8ge le contenu, qu&rsquo;on g\u00e8re les traductions&#8230;le <em>frontend<\/em> est la partie \u00ab\u00a0visible\u00a0\u00bb par l&rsquo;utilisateur final sur le terminal de son choix (tablette, smartphone, web).<\/p>\n<h1>D\u00e9velopper avec Pimcore<\/h1>\n<p>Se servir de Pimcore suppose une bonne ma\u00eetrise de MVC, de PHP et de Zend Framework.<\/p>\n<p>D\u00e9velopper dans le backend Pimcore c&rsquo;est finalement savoir se servir du triplet MVC\u00a0: savoir programmer une action au sein d&rsquo;un contr\u00f4leur, savoir utiliser des vues si besoin, utiliser des patterns de routage, cr\u00e9er des objets \u00ab\u00a0mod\u00e8le\u00a0\u00bb.<\/p>\n<h2>L&rsquo;internationalisation (i18n)<\/h2>\n<p>Tous les documents Pimcore sont traduisibles. \u00c9videmment, comme Pimcore embarque Zend, c&rsquo;est Zend_Translate qui g\u00e8re cet aspect en sous-main.<br \/>\nLe backend est traduit en fran\u00e7ais, le frontend a un module qui facilite la traduction sur les pages propos\u00e9es \u00e0 l&rsquo;utilisateur final.<\/p>\n<h2>Les objets Pimcore<\/h2>\n<p>On cr\u00e9e des objets (Data Objects, selon la terminologie Pimcore) dont on fait correspondre les propri\u00e9t\u00e9s avec des \u00e9l\u00e9ments graphiques. Ces \u00e9l\u00e9ments graphiques ont des types pr\u00e9d\u00e9finis par Pimcore.<\/p>\n<p>Exemple : Un objet Pneu a comme propri\u00e9t\u00e9s \u00ab\u00a0description\u00a0\u00bb, \u00ab\u00a0image\u00a0\u00bb, \u00ab\u00a0prix\u00a0\u00bb, \u00ab\u00a0date_creation\u00a0\u00bb, on fera correspondre ces propri\u00e9t\u00e9s avec des \u00e9l\u00e9ments visuels Pimcore, respectivement \u00ab\u00a0Object_Class_Data_Textarea\u00a0\u00bb, \u00ab\u00a0Object_Class_Data_Image\u00a0\u00bb, \u00ab\u00a0Object_Class_Data_Numeric\u00a0\u00bb et \u00ab\u00a0Object_Class_Data_Date\u00a0\u00bb.<\/p>\n<p>Cette \u00e9tape de mapping est incontournable.<br \/>\nC&rsquo;est \u00e9galement \u00e0 ce niveau l\u00e0 que vont \u00eatre d\u00e9taill\u00e9es les relations entre objets.<br \/>\nLes objets peuvent \u00eatre import\u00e9s comme export\u00e9s :<\/p>\n<ul>\n<li><span style=\"line-height: 1.714285714; font-size: 1rem;\">l&rsquo;importation peut se faire sous la forme d&rsquo;un batch \u00e9crit en PHP CLI<\/span><\/li>\n<li><span style=\"line-height: 1.714285714; font-size: 1rem;\">l&rsquo;exportation se fait en CSV<\/span><\/li>\n<\/ul>\n<p>Une attention particuli\u00e8re doit \u00eatre port\u00e9e sur la gestion de la capacit\u00e9 m\u00e9moire durant les imports, si ceux-ci portent sur un nombre cons\u00e9quent d&rsquo;objets. La gestion des versions, si elle n&rsquo;est pas essentielle, doit \u00eatre d\u00e9sactiv\u00e9e durant les importations (Version::disable()).<\/p>\n<p>J&rsquo;ai trouv\u00e9 cette partie de la documentation assez sibylline. C&rsquo;est un domaine \u00e0 creuser, notamment en parcourant le forum pour y lire les retours d&rsquo;exp\u00e9rience d&rsquo;autres utilisateurs.<\/p>\n<h2>Les additifs (plug-ins)<\/h2>\n<p>Il est possible d&rsquo;en programmer, tout comme il est possible d&rsquo;en utiliser certains fournis par d\u00e9faut :<\/p>\n<p>PhpSearch est un plug-in qui sert de moteur de recherche full-text et qui fournit suggestion et auto-compl\u00e9tion. Il en existe quelques autres, h\u00e9las peu document\u00e9s\u00a0:<\/p>\n<p><a href=\"http:\/\/www.pimcore.org\/wiki\/display\/PLUGINS\/Plugin+Documentations\">http:\/\/www.pimcore.org\/wiki\/display\/PLUGINS\/Plugin+Documentations<\/a><\/p>\n<p>Toutefois, le d\u00e9veloppement de plug-ins est plut\u00f4t bien d\u00e9taill\u00e9 sur ce lien\u00a0:<br \/>\n<a href=\"http:\/\/www.pimcore.org\/wiki\/display\/PIMCORE\/Plugin+Anatomy+and+Design\">http:\/\/www.pimcore.org\/wiki\/display\/PIMCORE\/Plugin+Anatomy+and+Design<\/a><\/p>\n<h2>Les test unitaires<\/h2>\n<p>Pimcore bootstrappe PHPUnit dans sa suite de test \u00ab\u00a0maison\u00a0\u00bb PimUnit. Un tutoriel vid\u00e9o donn\u00e9 en lien en fin de document explique comment installer cet outil dans l&rsquo;AGL PHP Storm.<\/p>\n<p>Cette fonctionnalit\u00e9 est quelque chose de n\u00e9cessaire, dont la pr\u00e9sence joue clairement en la faveur du choix final du produit.<\/p>\n<h1>Conclusion<\/h1>\n<h2>Forces du produit<\/h2>\n<ul>\n<li><span style=\"line-height: 1.714285714; font-size: 1rem;\">Pimcore a \u00e9t\u00e9 prim\u00e9 en 2010 dans la cat\u00e9gorie produits open source innovants par l&rsquo;\u00e9diteur Packt. Ces \u00ab\u00a0Awards\u00a0\u00bb ont r\u00e9compens\u00e9 de grands noms comme Joomla, Drupal, WordPress, Jquery, Sencha, Prestashop&#8230;<\/span><\/li>\n<li><span style=\"line-height: 1.714285714; font-size: 1rem;\">Pimcore a d\u00e9j\u00e0 des r\u00e9f\u00e9rences solides avec des catalogues de grande dimension (plusieurs dizaines de milliers d&rsquo;objets): Eurotours, Intersport, Expert&#8230;<\/span><\/li>\n<li><span style=\"line-height: 1.714285714; font-size: 1rem;\">L&rsquo;interface est d\u00e9velopp\u00e9e sur une base ExtJS, qui procure une user experience plut\u00f4t plaisante. L&rsquo;utilisation du drag and drop rend le logiciel assez facile \u00e0 utiliser et lui conf\u00e8re l&rsquo;apparence d&rsquo;un logiciel desktop.<\/span><\/li>\n<li><span style=\"line-height: 1.714285714; font-size: 1rem;\">Le syst\u00e8me de plug-ins rend Pimcore extensible.<\/span><\/li>\n<li><span style=\"line-height: 1.714285714; font-size: 1rem;\">Un m\u00e9canisme de mise \u00e0 jour du produit<\/span><\/li>\n<li><span style=\"line-height: 1.714285714; font-size: 1rem;\">Courbe d&rsquo;apprentissage peu abrupte pour des d\u00e9veloppeurs d\u00e9j\u00e0 habitu\u00e9s au MVC<\/span><\/li>\n<li><span style=\"line-height: 1.714285714; font-size: 1rem;\">La pr\u00e9sence de PHPUnit pour l&rsquo;\u00e9criture de tests unitaires (qu&rsquo;il faut s&rsquo;astreindre \u00e0 effectuer !)<\/span><\/li>\n<li><span style=\"line-height: 1.714285714; font-size: 1rem;\">Compatibilit\u00e9 revendiqu\u00e9e avec des solutions ETL open-source \u00e9crites en Java telles que Kettle ou Talend Studio2<\/span><\/li>\n<li><span style=\"font-size: 1rem; line-height: 1.714285714;\">Une API assez compl\u00e8te donne acc\u00e8s au\u00a0<\/span>c\u0153ur<span style=\"font-size: 1rem; line-height: 1.714285714;\">\u00a0de Pimcore, sa documentation fait l&rsquo;objet d&rsquo;une mise \u00e0 jour quotidienne (g\u00e9n\u00e9r\u00e9e sur le dernier nightly build)<\/span><\/li>\n<\/ul>\n<h2>Inconv\u00e9nients et limitations<\/h2>\n<ul>\n<li><span style=\"line-height: 1.714285714; font-size: 1rem;\">Une communaut\u00e9 limit\u00e9e pour l&rsquo;instant (quelques centaines d&rsquo;utilisateurs enregistr\u00e9s sur le forum)<\/span><\/li>\n<li><span style=\"line-height: 1.714285714; font-size: 1rem;\">Une documentation peu exhaustive, certaines fois inexistante et truff\u00e9e de fautes<\/span><\/li>\n<li><span style=\"line-height: 1.714285714; font-size: 1rem;\">Il faut \u00eatre programmeur pour se servir de Pimcore; une personne sans connaissance basiques de PHP, de l&rsquo;architecture MVC ne saura pas utiliser Pimcore<\/span><\/li>\n<li><span style=\"line-height: 1.714285714; font-size: 1rem;\">Interface agr\u00e9able \u00e0 l&rsquo;utilisation certes mais pas forc\u00e9ment tr\u00e8s intuitive (il faut parfois fouiller pour trouver)<\/span><\/li>\n<li><span style=\"line-height: 1.714285714; font-size: 1rem;\">N\u00e9cessite une configuration serveur assez particuli\u00e8re, notamment demandeuse en terme de capacit\u00e9 m\u00e9moire, les biblioth\u00e8ques utilis\u00e9es par Pimcore \u00e9tant \u00ab\u00a0lourdes\u00a0\u00bb<\/span><\/li>\n<li><span style=\"line-height: 1.714285714; font-size: 1rem;\">Un import disponible seulement en CSV, il faut \u00e9crire un script d&rsquo;importation \u00e0 partir de nos sources de donn\u00e9es<\/span><\/li>\n<li><span style=\"line-height: 1.714285714; font-size: 1rem;\">Pimcore a \u00e9t\u00e9 valid\u00e9 sur des machines fonctionnant avec un serveur HTTP Apache, aucune documentation officielle n&rsquo;existe sur l&rsquo;int\u00e9gration avec Nginx<\/span><\/li>\n<\/ul>\n<h2>R\u00e9flexions<\/h2>\n<p>Zend Framework va bient\u00f4t \u00e9voluer dans sa version 2 (actuellement en b\u00eata1). Comment Pimcore va-t-il int\u00e9grer cette \u00e9volution\u00a0? Cette \u00e9volution elle-m\u00eame sera-t-elle aussi importante que pour Symfony 1.4 \u2192 2.0\u00a0?<\/p>\n<p>Il faut voir \u00e0 moyen terme quelle va \u00eatre la place accord\u00e9e \u00e0 MongoDB dans Pimcore. Pour l&rsquo;heure, il existe juste une classe de gestion de cache bas\u00e9e sur MongoDB mais rien qui concerne le mod\u00e8le de donn\u00e9es \u00e0 proprement parler.<\/p>\n<p><em>S\u00e9bastien Ferrandez, Juillet 2012<\/em>.<\/p>\n<p>Liens :<\/p>\n<p><a href=\"http:\/\/www.pimcore.org\/\">Pimcore<\/a><\/p>\n<p><a href=\"http:\/\/framework.zend.com\/\">Zend Framework<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>PIM, vous d\u00eetes ? Le PIM (Product Information Management, gestion de l&rsquo;information produit en fran\u00e7ais) a pour objectif de fiabiliser, de d\u00e9tailler et de centraliser les informations sur les produits d&rsquo;une entreprise. Dans l\u2019environnement de commerce multi-canal actuel, il est n\u00e9cessaire de contr\u00f4ler la coh\u00e9rence et la pertinence de ces informations avant d&rsquo;alimenter les multiples [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0},"categories":[29],"tags":[27,28],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v19.6.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Pimcore : une \u00e9tude d&#039;opportunit\u00e9 - La Fabrique de code - Tech blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"http:\/\/www.lafabriquedecode.com\/blog\/2013\/04\/pimcore-une-etude-dopportunite\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Pimcore : une \u00e9tude d&#039;opportunit\u00e9 - La Fabrique de code - Tech blog\" \/>\n<meta property=\"og:description\" content=\"PIM, vous d\u00eetes ? Le PIM (Product Information Management, gestion de l&rsquo;information produit en fran\u00e7ais) a pour objectif de fiabiliser, de d\u00e9tailler et de centraliser les informations sur les produits d&rsquo;une entreprise. Dans l\u2019environnement de commerce multi-canal actuel, il est n\u00e9cessaire de contr\u00f4ler la coh\u00e9rence et la pertinence de ces informations avant d&rsquo;alimenter les multiples [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"http:\/\/www.lafabriquedecode.com\/blog\/2013\/04\/pimcore-une-etude-dopportunite\/\" \/>\n<meta property=\"og:site_name\" content=\"La Fabrique de code - Tech blog\" \/>\n<meta property=\"article:published_time\" content=\"2013-04-17T15:18:13+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2013-04-17T15:19:29+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/www.lafabriquedecode.com\/blog\/wp-content\/uploads\/2013\/04\/schema_general.png\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary\" \/>\n<meta name=\"twitter:creator\" content=\"@LaFabrique2Code\" \/>\n<meta name=\"twitter:site\" content=\"@LaFabrique2Code\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"http:\/\/www.lafabriquedecode.com\/blog\/2013\/04\/pimcore-une-etude-dopportunite\/\",\"url\":\"http:\/\/www.lafabriquedecode.com\/blog\/2013\/04\/pimcore-une-etude-dopportunite\/\",\"name\":\"Pimcore : une \u00e9tude d'opportunit\u00e9 - La Fabrique de code - Tech blog\",\"isPartOf\":{\"@id\":\"http:\/\/www.lafabriquedecode.com\/blog\/#website\"},\"datePublished\":\"2013-04-17T15:18:13+00:00\",\"dateModified\":\"2013-04-17T15:19:29+00:00\",\"author\":{\"@id\":\"http:\/\/www.lafabriquedecode.com\/blog\/#\/schema\/person\/83863c048b82fd9ccf6407bddd241162\"},\"breadcrumb\":{\"@id\":\"http:\/\/www.lafabriquedecode.com\/blog\/2013\/04\/pimcore-une-etude-dopportunite\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"http:\/\/www.lafabriquedecode.com\/blog\/2013\/04\/pimcore-une-etude-dopportunite\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"http:\/\/www.lafabriquedecode.com\/blog\/2013\/04\/pimcore-une-etude-dopportunite\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"http:\/\/www.lafabriquedecode.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Pimcore : une \u00e9tude d&rsquo;opportunit\u00e9\"}]},{\"@type\":\"WebSite\",\"@id\":\"http:\/\/www.lafabriquedecode.com\/blog\/#website\",\"url\":\"http:\/\/www.lafabriquedecode.com\/blog\/\",\"name\":\"La Fabrique de code - Tech blog\",\"description\":\"PHP objet, MySQL, Design Patterns, OOP...et plus !\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\/\/www.lafabriquedecode.com\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Person\",\"@id\":\"http:\/\/www.lafabriquedecode.com\/blog\/#\/schema\/person\/83863c048b82fd9ccf6407bddd241162\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"http:\/\/www.lafabriquedecode.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"http:\/\/0.gravatar.com\/avatar\/fc2e1de7c8a1871b50ff9c6a6f8682a2?s=96&d=retro&r=g\",\"contentUrl\":\"http:\/\/0.gravatar.com\/avatar\/fc2e1de7c8a1871b50ff9c6a6f8682a2?s=96&d=retro&r=g\",\"caption\":\"admin\"},\"url\":\"http:\/\/www.lafabriquedecode.com\/blog\/author\/admin\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Pimcore : une \u00e9tude d'opportunit\u00e9 - La Fabrique de code - Tech blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"http:\/\/www.lafabriquedecode.com\/blog\/2013\/04\/pimcore-une-etude-dopportunite\/","og_locale":"fr_FR","og_type":"article","og_title":"Pimcore : une \u00e9tude d'opportunit\u00e9 - La Fabrique de code - Tech blog","og_description":"PIM, vous d\u00eetes ? Le PIM (Product Information Management, gestion de l&rsquo;information produit en fran\u00e7ais) a pour objectif de fiabiliser, de d\u00e9tailler et de centraliser les informations sur les produits d&rsquo;une entreprise. Dans l\u2019environnement de commerce multi-canal actuel, il est n\u00e9cessaire de contr\u00f4ler la coh\u00e9rence et la pertinence de ces informations avant d&rsquo;alimenter les multiples [&hellip;]","og_url":"http:\/\/www.lafabriquedecode.com\/blog\/2013\/04\/pimcore-une-etude-dopportunite\/","og_site_name":"La Fabrique de code - Tech blog","article_published_time":"2013-04-17T15:18:13+00:00","article_modified_time":"2013-04-17T15:19:29+00:00","og_image":[{"url":"http:\/\/www.lafabriquedecode.com\/blog\/wp-content\/uploads\/2013\/04\/schema_general.png"}],"author":"admin","twitter_card":"summary","twitter_creator":"@LaFabrique2Code","twitter_site":"@LaFabrique2Code","twitter_misc":{"\u00c9crit par":"admin","Dur\u00e9e de lecture estim\u00e9e":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"http:\/\/www.lafabriquedecode.com\/blog\/2013\/04\/pimcore-une-etude-dopportunite\/","url":"http:\/\/www.lafabriquedecode.com\/blog\/2013\/04\/pimcore-une-etude-dopportunite\/","name":"Pimcore : une \u00e9tude d'opportunit\u00e9 - La Fabrique de code - Tech blog","isPartOf":{"@id":"http:\/\/www.lafabriquedecode.com\/blog\/#website"},"datePublished":"2013-04-17T15:18:13+00:00","dateModified":"2013-04-17T15:19:29+00:00","author":{"@id":"http:\/\/www.lafabriquedecode.com\/blog\/#\/schema\/person\/83863c048b82fd9ccf6407bddd241162"},"breadcrumb":{"@id":"http:\/\/www.lafabriquedecode.com\/blog\/2013\/04\/pimcore-une-etude-dopportunite\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["http:\/\/www.lafabriquedecode.com\/blog\/2013\/04\/pimcore-une-etude-dopportunite\/"]}]},{"@type":"BreadcrumbList","@id":"http:\/\/www.lafabriquedecode.com\/blog\/2013\/04\/pimcore-une-etude-dopportunite\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"http:\/\/www.lafabriquedecode.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Pimcore : une \u00e9tude d&rsquo;opportunit\u00e9"}]},{"@type":"WebSite","@id":"http:\/\/www.lafabriquedecode.com\/blog\/#website","url":"http:\/\/www.lafabriquedecode.com\/blog\/","name":"La Fabrique de code - Tech blog","description":"PHP objet, MySQL, Design Patterns, OOP...et plus !","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/www.lafabriquedecode.com\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"fr-FR"},{"@type":"Person","@id":"http:\/\/www.lafabriquedecode.com\/blog\/#\/schema\/person\/83863c048b82fd9ccf6407bddd241162","name":"admin","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"http:\/\/www.lafabriquedecode.com\/blog\/#\/schema\/person\/image\/","url":"http:\/\/0.gravatar.com\/avatar\/fc2e1de7c8a1871b50ff9c6a6f8682a2?s=96&d=retro&r=g","contentUrl":"http:\/\/0.gravatar.com\/avatar\/fc2e1de7c8a1871b50ff9c6a6f8682a2?s=96&d=retro&r=g","caption":"admin"},"url":"http:\/\/www.lafabriquedecode.com\/blog\/author\/admin\/"}]}},"_links":{"self":[{"href":"http:\/\/www.lafabriquedecode.com\/blog\/wp-json\/wp\/v2\/posts\/283"}],"collection":[{"href":"http:\/\/www.lafabriquedecode.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.lafabriquedecode.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.lafabriquedecode.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/www.lafabriquedecode.com\/blog\/wp-json\/wp\/v2\/comments?post=283"}],"version-history":[{"count":5,"href":"http:\/\/www.lafabriquedecode.com\/blog\/wp-json\/wp\/v2\/posts\/283\/revisions"}],"predecessor-version":[{"id":289,"href":"http:\/\/www.lafabriquedecode.com\/blog\/wp-json\/wp\/v2\/posts\/283\/revisions\/289"}],"wp:attachment":[{"href":"http:\/\/www.lafabriquedecode.com\/blog\/wp-json\/wp\/v2\/media?parent=283"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.lafabriquedecode.com\/blog\/wp-json\/wp\/v2\/categories?post=283"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.lafabriquedecode.com\/blog\/wp-json\/wp\/v2\/tags?post=283"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}