{"id":1163,"date":"2015-10-12T13:59:02","date_gmt":"2015-10-12T11:59:02","guid":{"rendered":"http:\/\/www.h-hennes.fr\/blog\/?p=1163"},"modified":"2015-10-12T13:59:02","modified_gmt":"2015-10-12T11:59:02","slug":"magento-gestion-des-attributs-eav-du-catalogue-via-un-module","status":"publish","type":"post","link":"https:\/\/www.h-hennes.fr\/blog\/2015\/10\/12\/magento-gestion-des-attributs-eav-du-catalogue-via-un-module\/","title":{"rendered":"Magento : Gestion des attributs EAV du catalogue via un module"},"content":{"rendered":"<p>Le grand avantage de Magento par rapport aux solutions concurrentes r\u00e9side dans l&rsquo;utilisation du mod\u00e8le EAV, qui apporte une grande souplesse dans la gestion de votre boutique.<br \/>\nCe qui vous permets de rajouter \u00e0 la vol\u00e9e des param\u00e8tres \u00e0 vos produits ( entre autre )<\/p>\n<p>Pour cet article je souhaite r\u00e9aliser les \u00e9l\u00e9ments suivants :<\/p>\n<ul>\n<li>Cr\u00e9ation d&rsquo;un nouveau jeu d&rsquo;attribut \u00ab\u00a0V\u00e9lo\u00a0\u00bb<\/li>\n<li>Cr\u00e9ation d&rsquo;un groupe d&rsquo;attributs \u00ab\u00a0v\u00e9lo\u00a0\u00bb<\/li>\n<li>Cr\u00e9ation de nouveaux attributs \u00a0\u00bb wheel_size\u00a0\u00bb,\u00a0\u00bbsupension\u00a0\u00bb<\/li>\n<li>Afficher ces attributs dans l&rsquo;administration, et dans le front office<\/li>\n<\/ul>\n<p>Le tout bien \u00e9videment sans toucher \u00e0 l&rsquo;administration \ud83d\ude42<br \/>\nC&rsquo;est donc parti pour la cr\u00e9ation d&rsquo;un module qui va g\u00e9rer tout \u00e7a , il va s&rsquo;appeller Specific_Catalog et qui sera en version 0.1.0<\/p>\n<p>Je ne d\u00e9taille pas les \u00e9l\u00e9ments standards de la cr\u00e9ation du module, mais uniquement les \u00e9l\u00e9ments sp\u00e9cifiques \u00e0 la probl\u00e9matique.<\/p>\n<p>Pour commencer dans le fichier config.xml de notre module il faut cr\u00e9er ins\u00e9rer le code suivant ( dans la balise global )<br \/>\nCelui-ci va nous permettre de d\u00e9finir les ressources d&rsquo;installation de notre module.<\/p>\n<pre lang=\"xml\" escaped=\"true\">&lt;resources&gt;\r\n&lt;!-- Installation de notre module --&gt;\r\n&lt;specificcatalog_setup&gt;\r\n  &lt;setup&gt;\r\n   &lt;module&gt;Specific_Catalog&lt;\/module&gt;\r\n   &lt;class&gt;Specific_Catalog_Model_Resource_Eav_Mysql4_Setup&lt;\/class&gt; &lt;!-- Classe specifique d'installation --&gt;\r\n  &lt;\/setup&gt;\r\n  &lt;connection&gt;\r\n   &lt;use&gt;core_setup&lt;\/use&gt;\r\n  &lt;\/connection&gt;\r\n &lt;\/specificcatalog_setup&gt;\r\n&lt;!-- Resource write --&gt;\r\n &lt;specificcatalog_write&gt;\r\n  &lt;connection&gt;\r\n   &lt;use&gt;core_write&lt;\/use&gt;\r\n  &lt;\/connection&gt;\r\n &lt;\/specificcatalog_write&gt;\r\n &lt;!-- Resource Read --&gt;\r\n &lt;specificcatalog_read&gt;\r\n  &lt;connection&gt;\r\n   &lt;use&gt;core_read&lt;\/use&gt;\r\n  &lt;\/connection&gt;\r\n &lt;\/specificcatalog_read&gt;\r\n&lt;\/resources&gt;\r\n<\/pre>\n<p>Cr\u00e9\u00e9r ensuite le fichier app\/code\/local\/Specific\/Catalog\/Model\/Resource\/Eav\/Mysql4\/Setup.php qui contiendra le code suivant :<\/p>\n<pre lang=\"php\" escaped=\"true\">&lt;?php\r\nclass Specific_Catalog_Model_Resource_Eav_Mysql4_Setup extends Mage_Eav_Model_Entity_Setup\r\n{\r\n\r\n\/**\r\n* Cr\u00e9ation d'un jeu d'attribut avec tous les champs par d\u00e9faut\r\n* @param type $productEntityTypeId\r\n* @param type $attributeSetName\r\n* @return \\Specific_Catalog_Model_Resource_Eav_Mysql4_Setup\r\n*\/\r\n    public function createAttributeSetFromDefault($productEntityTypeId, $attributeSetName)\r\n\u00a0\u00a0\u00a0 {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Mage::getModel('eav\/entity_attribute_set')\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 -&gt;setEntityTypeId($productEntityTypeId)\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 -&gt;setAttributeSetName($attributeSetName)\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 -&gt;save()\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 -&gt;initFromSkeleton($this-&gt;getDefaultAttributeSetId($productEntityTypeId))\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 -&gt;save();\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 return $this;\r\n\u00a0\u00a0\u00a0 }\r\n}\r\n?&gt;\r\n<\/pre>\n<p>Cette classe \u00e9tends <em>Mage_Eav_Model_Entity_Setup<\/em> qui permets de g\u00e9rer les installations des attributs EAV.<br \/>\nDans celle-ci j&rsquo;ai cr\u00e9\u00e9 une nouvelle fonction qui cr\u00e9er un jeu d&rsquo;attribut avec tous les champs et groupes du jeu d&rsquo;attribut par d\u00e9faut<\/p>\n<p>Pour finir tous va s&rsquo;effectuer dans le fichier d&rsquo;installation du module dans :<\/p>\n<p>app\/code\/local\/Specific\/Catalog\/sql\/<em>specificcatalog_setup<\/em>\/mysql4-install<em>-0.1.0<\/em>.php<\/p>\n<p>Le nom du dossier <em>specificcatalog_setup <\/em>correspond au nom de la balise utilis\u00e9 dans le noeud resources de votre fichier config.xml<br \/>\nLe num\u00e9ro ( 0.1.0 ) , correspond \u00e0 la version de votre module d\u00e9finie dans ce m\u00eame fichier.<\/p>\n<p>&nbsp;<\/p>\n<pre lang=\"php\" escaped=\"true\">&lt;?php\r\n\r\n\/\/D\u00e9but de l'installation\r\n$installer = $this;\r\n$installer-&gt;startSetup();\r\n\r\n\/\/Identifiant du type EAV Catalog Product\r\n$productEntityTypeId = $installer-&gt;getEntityTypeId('catalog_product');\r\n\r\n\/\/Cr\u00e9ation des nouveaux jeux d'attributs ( V\u00e9los \/\/ Casque \/\/ V\u00eatement , lister les autres \u00e0 la suite )\r\n\/\/On n'utilise pas la m\u00e9thode standard, mais une fonction perso car on veut ajouter tous les champs du jeu d'attribut d\u00e9faut\r\n$this-&gt;createAttributeSetFromDefault($productEntityTypeId,'velo');\r\n\r\n\/\/Identifiant du jeu d'attribut v\u00e9lo cr\u00e9\u00e9\r\n$attributeSetId = $this-&gt;getAttributeSetId($productEntityTypeId,'velo');\r\n\r\n\/\/Ajout d'un nouveau groupe d'attribut \"velo\" rattach\u00e9 au jeu d'attributs v\u00e9lo\r\n$this-&gt;addAttributeGroup($productEntityTypeId, $attributeSetId , 'velo');\r\n\r\n\/\/Identifiant du groupe \"V\u00e9lo\" cr\u00e9\u00e9\r\n$attributeGroupId = $this-&gt;getAttributeGroupId($productEntityTypeId, $attributeSetId, 'velo');\r\n\r\n\/\/Cr\u00e9ation de l'attribut wheel_size\r\n$this-&gt;addAttribute($productEntityTypeId, 'wheel_size',\r\n\u00a0\u00a0 array(\r\n\u00a0\u00a0\u00a0 'label'\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 =&gt; 'Taille des roues',\r\n\u00a0\u00a0\u00a0 'group'\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 =&gt; '',\r\n\u00a0\u00a0\u00a0 'type'\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 =&gt; 'text',\r\n\u00a0\u00a0\u00a0 'input'\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 =&gt; 'text',\r\n\u00a0\u00a0\u00a0 'global'\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 =&gt; Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL,\/\/ Mettre ici la port\u00e9e de l'attribut ( global, website, store )\r\n\u00a0\u00a0\u00a0 'user_defined'\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 =&gt; true,\r\n\u00a0\u00a0\u00a0 'required'\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 =&gt; false,\r\n\u00a0\u00a0\u00a0 'visible'\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 =&gt; true,\r\n\u00a0\u00a0\u00a0 'source'\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 =&gt; 'eav\/entity_attribute_source_table',\r\n\u00a0\u00a0\u00a0 'backend'\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 =&gt; null,\r\n\u00a0\u00a0\u00a0 'searchable'\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 =&gt; true,\r\n\u00a0\u00a0\u00a0 'visible_in_advanced_search' =&gt; true,\r\n\u00a0\u00a0\u00a0 'visible_on_front'\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 =&gt; true,\r\n\u00a0\u00a0\u00a0 'is_configurable'\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 =&gt; false,\r\n\u00a0\u00a0\u00a0 'is_html_allowed_on_front'\u00a0\u00a0 =&gt; false,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 )\r\n\u00a0\u00a0\u00a0 );\r\n\r\n\/\/Cr\u00e9ation de l'attribut suspension\r\n$this-&gt;addAttribute($productEntityTypeId, 'suspension',\r\n\u00a0\u00a0 array(\r\n\u00a0\u00a0\u00a0 'label'\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 =&gt; 'Suspension',\r\n\u00a0\u00a0\u00a0 'group'\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 =&gt; '',\r\n\u00a0\u00a0\u00a0 'type'\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 =&gt; 'text',\r\n\u00a0\u00a0\u00a0 'input'\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 =&gt; 'text',\r\n\u00a0\u00a0\u00a0 'global'\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 =&gt; Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL, \r\n\u00a0\u00a0\u00a0 'user_defined'\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 =&gt; true,\r\n\u00a0\u00a0\u00a0 'required'\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 =&gt; false,\r\n\u00a0\u00a0\u00a0 'visible'\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 =&gt; true,\r\n\u00a0\u00a0\u00a0 'source'\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 =&gt; 'eav\/entity_attribute_source_table',\r\n\u00a0\u00a0\u00a0 'backend'\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 =&gt; null,\r\n\u00a0\u00a0\u00a0 'searchable'\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 =&gt; true,\r\n\u00a0\u00a0\u00a0 'visible_in_advanced_search' =&gt; true,\r\n\u00a0\u00a0\u00a0 'visible_on_front'\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 =&gt; true,\r\n\u00a0\u00a0\u00a0 'is_configurable'\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 =&gt; false,\r\n\u00a0\u00a0\u00a0 'is_html_allowed_on_front'\u00a0\u00a0 =&gt; false,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 )\r\n\u00a0\u00a0\u00a0 );\r\n\r\n\/\/Rattachement des attributs au groupe \"V\u00e9lo\" du jeu d'attribut \"V\u00e9lo\" avec les positions\r\n$this-&gt;addAttributeToGroup($productEntityTypeId, $attributeSetId, $attributeGroupId, $this-&gt;getAttributeId($productEntityTypeId, 'wheel_size'), 1);\r\n$this-&gt;addAttributeToGroup($productEntityTypeId, $attributeSetId, $attributeGroupId, $this-&gt;getAttributeId($productEntityTypeId, 'suspension'), 2);\r\n\r\n\/\/Fin de l'installation\r\n$installer-&gt;endSetup();\r\n<\/pre>\n<p>D\u00e9posez les fichiers de votre module sur votre serveur, vider de le cache et ex\u00e9cutez n&rsquo;importe quelle page.<br \/>\nLe script d&rsquo;installation va tourner et les nouveaux attributs seront bien install\u00e9s et visibles dans le back-office !<\/p>\n<p><a href=\"https:\/\/www.h-hennes.fr\/blog\/wp-content\/uploads\/2015\/10\/eav-product.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1164\" src=\"https:\/\/www.h-hennes.fr\/blog\/wp-content\/uploads\/2015\/10\/eav-product.jpg\" alt=\"eav-product\" width=\"780\" height=\"529\" srcset=\"https:\/\/www.h-hennes.fr\/blog\/wp-content\/uploads\/2015\/10\/eav-product.jpg 780w, https:\/\/www.h-hennes.fr\/blog\/wp-content\/uploads\/2015\/10\/eav-product-300x203.jpg 300w\" sizes=\"auto, (max-width: 780px) 100vw, 780px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Pour afficher les attributs dans le front office, il faut proc\u00e9der de la m\u00eame mani\u00e8re que pour n&rsquo;importe quel autre attribut :<br \/>\nEx sur la fiche produit :<\/p>\n<pre lang=\"php\" escaped=\"true\">echo $_product-&gt;getWheelSize();\r\necho $product-&gt;getSuspension();\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Le grand avantage de Magento par rapport aux solutions concurrentes r\u00e9side dans l&rsquo;utilisation du mod\u00e8le EAV, qui apporte une grande souplesse dans la gestion de votre boutique. Ce qui vous permets de rajouter \u00e0 la vol\u00e9e des param\u00e8tres \u00e0 vos produits ( entre autre ) Pour cet article je souhaite r\u00e9aliser les \u00e9l\u00e9ments suivants : [&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":[395,394,393,392,391,150],"class_list":["post-1163","post","type-post","status-publish","format-standard","hentry","category-magento-2","tag-attribute","tag-attribute-group","tag-attribute-set","tag-catalog","tag-eav","tag-magento"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/posts\/1163","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=1163"}],"version-history":[{"count":2,"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/posts\/1163\/revisions"}],"predecessor-version":[{"id":1166,"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/posts\/1163\/revisions\/1166"}],"wp:attachment":[{"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/media?parent=1163"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/categories?post=1163"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/tags?post=1163"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}