{"id":1116,"date":"2015-09-23T13:39:41","date_gmt":"2015-09-23T11:39:41","guid":{"rendered":"http:\/\/www.h-hennes.fr\/blog\/?p=1116"},"modified":"2015-09-24T09:54:09","modified_gmt":"2015-09-24T07:54:09","slug":"magento-annuler-et-supprimer-des-avoirs","status":"publish","type":"post","link":"https:\/\/www.h-hennes.fr\/blog\/2015\/09\/23\/magento-annuler-et-supprimer-des-avoirs\/","title":{"rendered":"Magento : Annuler et supprimer des avoirs"},"content":{"rendered":"<p>Par d\u00e9faut dans la solution magento, il n&rsquo;est pas possible d&rsquo;annuler ni de supprimer les avoirs. ( C&rsquo;est logique au niveau comptable )<br \/>\nCette fonctionnalit\u00e9 peut toutefois \u00eatre pratique dans le cas d&rsquo;une erreur de manipulation<\/p>\n<p>Nous allons donc voir comment faire pour ajouter cette fonctionnalit\u00e9 \u00e0 Magento en cr\u00e9ant un module.<br \/>\nCelui-ci va ajouter 2 boutons \u00ab\u00a0Annuler\u00a0\u00bb et \u00ab\u00a0Supprimer\u00a0\u00bb dans la page de gestion d&rsquo;un avoir.<\/p>\n<p><a href=\"https:\/\/www.h-hennes.fr\/blog\/wp-content\/uploads\/2015\/09\/credit-memo-cancel-delete.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1125\" src=\"https:\/\/www.h-hennes.fr\/blog\/wp-content\/uploads\/2015\/09\/credit-memo-cancel-delete.jpg\" alt=\"Credit Memo Cancel delete\" width=\"780\" height=\"92\" srcset=\"https:\/\/www.h-hennes.fr\/blog\/wp-content\/uploads\/2015\/09\/credit-memo-cancel-delete.jpg 780w, https:\/\/www.h-hennes.fr\/blog\/wp-content\/uploads\/2015\/09\/credit-memo-cancel-delete-300x35.jpg 300w\" sizes=\"auto, (max-width: 780px) 100vw, 780px\" \/><\/a><\/p>\n<p>Je ne vais d\u00e9tailler ici que le fonctionnement logique du module.<br \/>\nVous pourrez trouver l&rsquo;int\u00e9gralit\u00e9 des sources et le module sur github : <a href=\"https:\/\/github.com\/nenes25\/magento_creditMemo\" target=\"_blank\">https:\/\/github.com\/nenes25\/magento_creditMemo<\/a><\/p>\n<p>L&rsquo;objectif de ce module \u00e9tant de ne pas r\u00e9aliser de surcharge, nous allons utiliser les observers.<br \/>\nCelui qui nous int\u00e9resse <strong>adminhtml_widget_container_html_before<\/strong><\/p>\n<p>Dans le fichier de configuration de notre module il faut donc ajouter un observer sur cet \u00e9v\u00e9nement via le code suivant<\/p>\n<pre lang=\"xml\" escaped=\"true\">&lt;global&gt;\r\n..\r\n\u00a0&lt;events&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;adminhtml_widget_container_html_before&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;observers&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;add_creditmemo_buttons&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;class&gt;hhennes_creditmemo\/observer&lt;\/class&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;method&gt;addCreditMemoButtons&lt;\/method&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;\/add_creditmemo_buttons&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;\/observers&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;\/adminhtml_widget_container_html_before&gt;\r\n\u00a0&lt;\/events&gt;\r\n...\r\n&lt;\/global&gt;\r\n<\/pre>\n<p>Passons au code de l&rsquo;observer, dans lequel nous allons ins\u00e9rer ces nouveaux boutons sur la page, et leur ajouter un lien vers le controller de notre module<\/p>\n<pre lang=\"php\" escaped=\"true\">&lt;?php\r\n\r\n\/**\r\n\u00a0* Hhennes_CreditMemo : Observer\r\n\u00a0*\/\r\nclass Hhennes_CreditMemo_Model_Observer\r\n{\r\n\r\n\u00a0\u00a0\u00a0 \/**\r\n\u00a0\u00a0\u00a0\u00a0 * Ajout de boutons pour Annuler et Supprimer les avoir\r\n\u00a0\u00a0\u00a0\u00a0 * @param Varien_Event_Obsever $observer\r\n\u00a0\u00a0\u00a0\u00a0 *\/\r\n\u00a0\u00a0\u00a0 public function addCreditMemoButtons($observer)\r\n\u00a0\u00a0\u00a0 {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $container = $observer-&gt;getBlock();\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/Ajout du boutons sur la page de visulalisation d'un avoir\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 if ($container !== null &amp;&amp; $container-&gt;getType() == 'adminhtml\/sales_order_creditmemo_view') {\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/Ajout du bouton d'annulation\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $cancelButtonsDatas = array(\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 'label' =&gt; Mage::helper('hhennes_creditmemo')-&gt;__('Cancel'),\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 'onclick' =&gt; 'setLocation(\\''.Mage::helper(\"adminhtml\")-&gt;getUrl('hhennes_creditmemo\/adminhtml_CreditMemo\/cancel\/',\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 array('id' =&gt; Mage::app()-&gt;getRequest()-&gt;getParam('creditmemo_id'))).'\\')'\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 );\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $container-&gt;addButton('creditmemo_cancel', $cancelButtonsDatas);\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/Ajout du bouton de suppression\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $deteleButtonsDatas = array(\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 'label' =&gt; Mage::helper('hhennes_creditmemo')-&gt;__('Delete'),\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 'class' =&gt; 'delete',\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 'onclick' =&gt; 'deleteConfirm(\\''.Mage::helper('hhennes_creditmemo')-&gt;__('delete Credit Memo ?').'\\',\\''.Mage::helper(\"adminhtml\")-&gt;getUrl('hhennes_creditmemo\/adminhtml_CreditMemo\/delete\/',\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 array('id' =&gt; Mage::app()-&gt;getRequest()-&gt;getParam('creditmemo_id'))).'\\')'\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 );\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $container-&gt;addButton('creditmemo_delete', $deteleButtonsDatas);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 }\r\n\u00a0\u00a0\u00a0 }\r\n\r\n}\r\n?&gt;\r\n<\/pre>\n<p>Pour finir voici le code du controller qui va se charger d&rsquo;annuler ou de supprimer notre avoir.<br \/>\nMais \u00e9galement de supprimer les informations relatives \u00e0 cet avoir de la commande.<\/p>\n<pre lang=\"php\" escaped=\"true\">&lt;?php\r\n\/**\r\n\u00a0* Hhennes_CreditMemo : Admin Controller\r\n\u00a0*\/\r\nclass Hhennes_CreditMemo_Adminhtml_CreditMemoController extends Mage_Adminhtml_Controller_Action\r\n{\r\n\r\n\u00a0\u00a0\u00a0 \/**\r\n\u00a0\u00a0\u00a0\u00a0 * Annulation d'un avoir\r\n\u00a0\u00a0\u00a0\u00a0 *\/\r\n\u00a0\u00a0\u00a0 public function cancelAction()\r\n\u00a0\u00a0\u00a0 {\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/R\u00e9cup\u00e9ration de l'avoir\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $creditMemoId = $this-&gt;getRequest()-&gt;getParam('id');\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/Chargement de l'avoir\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $creditMemo = Mage::getModel('sales\/order_creditmemo')-&gt;load($creditMemoId);\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/Si l'avoir n'est pas encore annul\u00e9\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 if ( $creditMemo-&gt;getState() != 3) {\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 try {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $creditMemo-&gt;cancel(); \/\/Annulation des remboursements\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $creditMemo-&gt;setState(Mage_Sales_Model_Order_Creditmemo::STATE_CANCELED); \/\/Changement du statut de l'avoir\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $creditMemo-&gt;save(); \/\/Sauvegarde de l'avoir\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $this-&gt;_cancelRefundOrder($creditMemo-&gt;getOrder()); \/\/Annulation des donn\u00e9es de remboursement sur la commande\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 } catch ( Exception $e) {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Mage::getSingleton('adminhtml\/session')-&gt;addError($e-&gt;getMessage());\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $this-&gt;_redirect('adminhtml\/sales_creditmemo\/view',array('creditmemo_id'=&gt; $creditMemoId));\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 }\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Mage::getSingleton('adminhtml\/session')-&gt;addSuccess($this-&gt;__('Credit Memo successfully cancel'));\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 }\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 else {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Mage::getSingleton('adminhtml\/session')-&gt;addError($this-&gt;__('Credit Memo already cancel'));\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 }\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $this-&gt;_redirect('adminhtml\/sales_creditmemo\/view',array('creditmemo_id'=&gt; $creditMemoId));\r\n\u00a0\u00a0\u00a0 }\r\n\r\n\u00a0\u00a0\u00a0 \/**\r\n\u00a0\u00a0\u00a0\u00a0 * Suppression d'un avoir\r\n\u00a0\u00a0\u00a0\u00a0 *\/\r\n\u00a0\u00a0\u00a0 public function deleteAction()\r\n\u00a0\u00a0\u00a0 {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/R\u00e9cup\u00e9ration de l'avoir\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $creditMemoId = $this-&gt;getRequest()-&gt;getParam('id');\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/Chargement de l'avoir\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $creditMemo = Mage::getModel('sales\/order_creditmemo')-&gt;load($creditMemoId);\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/On annule l'avoir avant de le supprimer\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 try {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $creditMemo-&gt;cancel(); \/\/Annulation des remboursements\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $this-&gt;_cancelRefundOrder($creditMemo-&gt;getOrder()); \/\/Annulation des donn\u00e9es de remboursement sur la commande\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $creditMemo-&gt;delete(); \/\/Suppression de l'avoir\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 } catch (Exception $e) {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Mage::getSingleton('adminhtml\/session')-&gt;addError($e-&gt;getMessage());\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $this-&gt;_redirect('adminhtml\/sales_creditmemo', array('creditmemo_id' =&gt; $creditMemoId));\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 }\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Mage::getSingleton('adminhtml\/session')-&gt;addSuccess($this-&gt;__('Credit Memo successfully deleted'));\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $this-&gt;_redirect('adminhtml\/sales_creditmemo', array('creditmemo_id' =&gt; $creditMemoId));\r\n\u00a0\u00a0\u00a0 }\r\n\r\n\u00a0\u00a0\u00a0 \/**\r\n\u00a0\u00a0\u00a0\u00a0 * Annulation des remboursement de la commande\r\n\u00a0\u00a0\u00a0\u00a0 * @param type $order\r\n\u00a0\u00a0\u00a0\u00a0 *\/\r\n\u00a0\u00a0\u00a0 protected function _cancelRefundOrder($order)\r\n\u00a0\u00a0\u00a0 {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/On mets tous les champs relatifs au remboursement \u00e0 NULL\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $order-&gt;setBaseDiscountRefunded(NULL);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $order-&gt;setBaseShippingTaxRefunded(NULL);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $order-&gt;setBaseSubtotalRefunded(NULL);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $order-&gt;setBaseTaxRefunded(NULL);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $order-&gt;setBaseTotalOfflineRefunded(NULL);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $order-&gt;setBaseTotalOnlineRefunded(NULL);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $order-&gt;setBaseTotalRefunded(NULL);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $order-&gt;setBaseHiddenTaxRefunded(NULL);\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $order-&gt;setDiscountRefunded(NULL);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $order-&gt;setShippingTaxRefunded(NULL);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $order-&gt;setSubtotalRefunded(NULL);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $order-&gt;setTaxRefunded(NULL);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $order-&gt;setTotalOfflineRefunded(NULL);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $order-&gt;setTotalOnlineRefunded(NULL);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $order-&gt;setTotalRefunded(NULL);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $order-&gt;setBaseHiddenTaxRefunded(NULL);\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $order-&gt;save();\r\n\u00a0\u00a0\u00a0 }\r\n}\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Par d\u00e9faut dans la solution magento, il n&rsquo;est pas possible d&rsquo;annuler ni de supprimer les avoirs. ( C&rsquo;est logique au niveau comptable ) Cette fonctionnalit\u00e9 peut toutefois \u00eatre pratique dans le cas d&rsquo;une erreur de manipulation Nous allons donc voir comment faire pour ajouter cette fonctionnalit\u00e9 \u00e0 Magento en cr\u00e9ant un module. Celui-ci va ajouter [&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":[380,262,381,150],"class_list":["post-1116","post","type-post","status-publish","format-standard","hentry","category-magento-2","tag-cancel","tag-credit-memo","tag-delete","tag-magento"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/posts\/1116","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=1116"}],"version-history":[{"count":7,"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/posts\/1116\/revisions"}],"predecessor-version":[{"id":1131,"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/posts\/1116\/revisions\/1131"}],"wp:attachment":[{"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/media?parent=1116"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/categories?post=1116"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/tags?post=1116"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}