J’ai cherché une petite heure une réponse à ce problème, et la voici.

En analysant la classe Mage_Dataflow_Model_Batch, on remarque une méthode qui à l’air bien sympathique pour ce que l’on souhaite.

/**
     * Run finish actions for Adapter
     *
     */
    public function beforeFinish()
    {
        if ($this->getAdapter()) {
            $adapter = Mage::getModel($this->getAdapter());
            if (method_exists($adapter, 'finish')) {
                $adapter->finish();
            }
        }
    }

Cette méthode va prendre l’Adapter défini dans le Profil, puis regarder si elle possède une méthode « finish ».

Pour savoir quelle est la classe de votre adapter, il faut aller dans le XML de votre profil d’import :

<action type="mymodule/convert_adapter_io" method="load">
    <var name="type">file</var>
    <var name="path">var/import</var>
    <var name="filename"><![CDATA[myfile.csv]]></var>
    <var name="format"><![CDATA[csv]]></var>
</action>

<action type="dataflow/convert_parser_csv" method="parse">
    <var name="delimiter"><![CDATA[\t]]></var>
    <var name="enclose"><![CDATA[]]></var>
    <var name="map">
        <map name="mon_champ_1"><![CDATA[mon_champ_1]]></map>
        <map name="mon_champ_2"><![CDATA[mon_champ_2]]></map>
        <map name="mon_champ_3"><![CDATA[mon_champ_3]]></map>
    </var>
    <var name="adapter">mymodule/convert_adapter_myclass</var>
</action>

La ligne contenant notre classe est donc la suivante :

<var name="adapter">mymodule/convert_adapter_myclass</var>

Il suffit de vous rendre dedans, et d’y ajouter une méthode « finish » :

<?php
class Mypackage_Mymodule_Model_Convert_Adapter_Myclass
    extends Mage_Eav_Model_Convert_Adapter_Entity
{
	
	public function finish(){
		/**
			VOTRE CODE
		**/
	}
}
Lancer une méthode à la fin d’un Import de Profil Avancé
Taggé sur :            

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Nous utilisons des cookies afin de nous assurer de vous proposer la meilleure expérience sur ce site.
Ok