{"id":1324,"date":"2016-04-01T23:50:49","date_gmt":"2016-04-01T21:50:49","guid":{"rendered":"http:\/\/www.h-hennes.fr\/blog\/?p=1324"},"modified":"2016-04-09T10:03:20","modified_gmt":"2016-04-09T08:03:20","slug":"magento-module-dataflow-avances","status":"publish","type":"post","link":"https:\/\/www.h-hennes.fr\/blog\/2016\/04\/01\/magento-module-dataflow-avances\/","title":{"rendered":"Magento : Module Dataflow avanc\u00e9s"},"content":{"rendered":"<p>Magento propose nativement des fonctionnalit\u00e9s d&rsquo;imports \/ exports avanc\u00e9es qui ne sont pas forc\u00e9ment connues de tous les d\u00e9veloppeurs, ce sont les \u00ab\u00a0Profils avanc\u00e9s\u00a0\u00bb , ceux-ci sont disponible directement depuis l&rsquo;administration dans le menu \u00ab\u00a0Syst\u00e8me &#8212; Importer\/Exporter &#8212; Flux de donn\u00e9es &#8211; Profils avanc\u00e9s\u00a0\u00bb<br \/>\nPar d\u00e9faut, aucun profil n&rsquo;existe, mais ces profils vous permettent d&rsquo;importer\/exporter rapidement et facilement des objets magento.<\/p>\n<p>J&rsquo;avais d\u00e9j\u00e0 fait plusieurs articles sur le sujet :<br \/>\n<a href=\"https:\/\/www.h-hennes.fr\/blog\/2014\/07\/08\/magento-importer-exporter-les-commentaires-et-les-notes-des-produits-via-les-profils-avances\/\" target=\"_blank\">Magento : Importer \/ Exporter les commentaires et les notes des produits via les profils avanc\u00e9s<\/a><br \/>\n<a href=\"https:\/\/www.h-hennes.fr\/blog\/2014\/08\/19\/magento-importer-exporter-les-produits-complementaire-upsell-crossell-related-via-les-profils-avances\/\" target=\"_blank\">Magento : Importer \/ Exporter les produits compl\u00e9mentaires ( upsell , crossell , related ) via les profils avanc\u00e9s<\/a><\/p>\n<p>Afin de boucler la boucle, j&rsquo;ai donc r\u00e9alis\u00e9 un module de gestion de ces profils avanc\u00e9s.<\/p>\n<p>Celui-ci vous permets d&rsquo;importer\/exporter les \u00e9l\u00e9ments magento suivants\u00a0 directement depuis l&rsquo;administration.<\/p>\n<ul>\n<li>Blocks cms<\/li>\n<li>Pages cms<\/li>\n<li>Commentaires et notes produits<\/li>\n<li>Produits compl\u00e9mentaires<\/li>\n<li>Emails transactionnels ( en base de donn\u00e9es )<\/li>\n<\/ul>\n<p>Le module est disponible sur github : <a href=\"https:\/\/github.com\/nenes25\/magento_dataflow\" target=\"_blank\">https:\/\/github.com\/nenes25\/magento_dataflow<\/a><br \/>\nPour ceux qui souhaitent \u00e9tendre les possibilit\u00e9s du module, nous allons voir rapidement comment celui-ci fonctionne.<br \/>\nPour cela nous partons d&rsquo;un exemple fictif d&rsquo;import \/ export de donn\u00e9es d&rsquo;un objet ( EAV ou non) g\u00e9rant des jeux concours et dont le chargement d&rsquo;un mod\u00e8le s&rsquo;effectuerait par le code suivant :<\/p>\n<pre lang=\"php\" escaped=\"true\">Mage::getModel('hhennesgame\/game');\r\n<\/pre>\n<p>Pour commencer il faudrait rajouter un fichier \u00ab\u00a0Game.php\u00a0\u00bb dans l&rsquo;arborescence \u00ab\u00a0app\/code\/community\/Hhennes\/DataFlow\/Model\/Convert\/Parser\/ avec le contenu suivant :<\/p>\n<pre lang=\"php\" escaped=\"true\"> &lt;?php\r\nclass Hhennes_DataFlow_Model_Convert_Parser_Game extends Hhennes_DataFlow_Model_Convert_Parser_Abstract {\r\n\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0\/** Mettre ici le code du mod\u00e8le \u00e0 appeller *\/\r\n\u00a0\u00a0\u00a0 protected $_model ='hhennesgame\/game';\r\n\u00a0\u00a0 \u00a0\r\n}\r\n<\/pre>\n<p>Pour g\u00e9rer l&rsquo;export il faut ensuite cr\u00e9er un profil avanc\u00e9 avec le code xml suivant<\/p>\n<pre lang=\"xml\" escaped=\"true\"> &lt;!-- Extraction des donn\u00e9es pour l'import - Sp\u00e9cifier ici notre mod\u00e8le personnalis\u00e9 --&gt;\r\n&lt;action type=\"hhennes_dataflow\/convert_parser_game\" method=\"unparse\"&gt;\r\n&lt;\/action&gt;\r\n&lt;!-- Mapping des donn\u00e9es --&gt;\r\n&lt;action type=\"dataflow\/convert_mapper_column\" method=\"map\"&gt;\r\n&lt;\/action&gt;\r\n&lt;!-- Export du fichier au format csv --&gt;\r\n&lt;action type=\"dataflow\/convert_parser_csv\" method=\"unparse\"&gt;\r\n&lt;var name=\"delimiter\"&gt;&lt;![CDATA[;]]&gt;&lt;\/var&gt;\r\n&lt;var name=\"enclose\"&gt;&lt;![CDATA[\"]]&gt;&lt;\/var&gt;\r\n&lt;var name=\"fieldnames\"&gt;true&lt;\/var&gt;\r\n&lt;\/action&gt;\r\n&lt;!-- Sauvegarde du fichier\u00a0 --&gt;\r\n&lt;action type=\"dataflow\/convert_adapter_io\" method=\"save\"&gt;\r\n&lt;var name=\"type\"&gt;file&lt;\/var&gt;\r\n&lt;var name=\"path\"&gt;var\/export&lt;\/var&gt;&lt;!-- Dossier export --&gt;\r\n&lt;var name=\"filename\"&gt;&lt;![CDATA[nonfichier_import.csv]]&gt;&lt;\/var&gt;&lt;!-- Nom du fichier --&gt;\r\n&lt;\/action&gt;\r\n<\/pre>\n<p>Puis pour l&rsquo;import<\/p>\n<pre lang=\"xml\" escaped=\"true\"> &lt;action type=\"dataflow\/convert_adapter_io\" method=\"load\"&gt;\r\n&lt;var name=\"type\"&gt;file&lt;\/var&gt;\r\n&lt;var name=\"path\"&gt;var\/import&lt;\/var&gt; &lt;!-- Dossier ou est le fichier --&gt;\r\n&lt;var name=\"filename\"&gt;&lt;![CDATA[filename.csv]]&gt;&lt;\/var&gt; &lt;!-- Fichier \u00e0 traiter --&gt;\r\n&lt;var name=\"format\"&gt;&lt;![CDATA[csv]]&gt;&lt;\/var&gt;\r\n&lt;\/action&gt;\r\n&lt;action type=\"dataflow\/convert_parser_csv\" method=\"parse\"&gt;\r\n&lt;var name=\"delimiter\"&gt;&lt;![CDATA[;]]&gt;&lt;\/var&gt;\r\n&lt;var name=\"enclose\"&gt;&lt;![CDATA[\"]]&gt;&lt;\/var&gt;\r\n&lt;var name=\"fieldnames\"&gt;true&lt;\/var&gt;\r\n&lt;var name=\"number_of_records\"&gt;1&lt;\/var&gt;\r\n&lt;var name=\"decimal_separator\"&gt;&lt;![CDATA[.]]&gt;&lt;\/var&gt;\r\n&lt;var name=\"adapter\"&gt;Hhennes_dataflow\/convert_parser_game&lt;\/var&gt; &lt;!-- Mod\u00e8le personnalis\u00e9 --&gt;\r\n&lt;var name=\"method\"&gt;parse&lt;\/var&gt; &lt;!-- M\u00e9thode du mod\u00e8le a appeller --&gt;\r\n&lt;\/action&gt;<\/pre>\n<p>Vous n&rsquo;avez plus qu&rsquo;a lancer vos imports depuis l&rsquo;administration, et puis c&rsquo;est tout tout le reste de l&rsquo;import est g\u00e9r\u00e9 par Magento \ud83d\ude42<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Magento propose nativement des fonctionnalit\u00e9s d&rsquo;imports \/ exports avanc\u00e9es qui ne sont pas forc\u00e9ment connues de tous les d\u00e9veloppeurs, ce sont les \u00ab\u00a0Profils avanc\u00e9s\u00a0\u00bb , ceux-ci sont disponible directement depuis l&rsquo;administration dans le menu \u00ab\u00a0Syst\u00e8me &#8212; Importer\/Exporter &#8212; Flux de donn\u00e9es &#8211; Profils avanc\u00e9s\u00a0\u00bb Par d\u00e9faut, aucun profil n&rsquo;existe, mais ces profils vous permettent d&rsquo;importer\/exporter [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[246],"tags":[284,429,428,150],"class_list":["post-1324","post","type-post","status-publish","format-standard","hentry","category-magento-2","tag-dataflow","tag-exports","tag-imports","tag-magento"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/posts\/1324","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/comments?post=1324"}],"version-history":[{"count":2,"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/posts\/1324\/revisions"}],"predecessor-version":[{"id":1347,"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/posts\/1324\/revisions\/1347"}],"wp:attachment":[{"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/media?parent=1324"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/categories?post=1324"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/tags?post=1324"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}