Import Sample Actions XML:
<action type="dataflow/convert_adapter_io" method="load">
<var name="type">file</var>
<var name="path">var/import</var>
<var name="filename"><![CDATA[filename.csv]]></var>
<var name="format"><![CDATA[csv]]></var>
</action>
<action type="dataflow/convert_parser_csv" method="parse">
<var name="delimiter"><![CDATA[,]]></var>
<var name="enclose"><![CDATA["]]></var>
<var name="fieldnames"></var>
<var name="map">
<map name="Col Name in File"><![CDATA[fieldname_in_system]]></map>
<map name="First Name"><![CDATA[firstname]]></map>
<map name="Last Name"><![CDATA[lastname]]></map>
<map name="dob"><![CDATA[dob]]></map>
<map name="gender"><![CDATA[gender]]></map>
<!-- and so on for each column in the file -->
</var>
<var name="store"><![CDATA[0]]></var>
<var name="number_of_records">1</var>
<var name="decimal_separator"><![CDATA[.]]></var>
<var name="adapter">customer/convert_adapter_customer</var>
<var name="method">parse</var>
</action>
Restrictions on the File to be Imported
- The columns must be in a predefined ordering.
- Each field name must be predefined or
map
.
Export CSV with Advanced Profile
Sample in data upgrade:
$installer = $this;
/** @var Mage_Dataflow_Model_Profile $model */
$model = Mage::getModel('dataflow/profile')->load('Export COFs', 'name');
if (!$model->getId()) {
$model->setData('name', 'Export COFs');
$model->setData('store_id', 0);
$model->setData(
'actions_xml',
'<action type="cof/convert_adapter_record" method="load">
<var name="filter/prefix"><![CDATA[A]]></var>
</action>
<action type="cof/convert_parser_record" method="unparse">
<var name="fields/cof_type"><![CDATA[simka]]></var>
</action>
<action type="dataflow/convert_mapper_column" method="map">
</action>
<action type="dataflow/convert_parser_csv" method="unparse">
<var name="delimiter"><![CDATA[,]]></var>
<var name="enclose"><![CDATA["]]></var>
<var name="fieldnames">true</var>
</action>
<action type="dataflow/convert_adapter_io" method="save">
<var name="type">file</var>
<var name="path">var/export</var>
<var name="filename"><![CDATA[simka.csv]]></var>
<var name="link">/adminhtml/simka/downloadExportCsv/file/simka.csv</var>
</action>'
);
$model->save();
}
How to Update Profile Run Progress by AJAX
In order to dynamically view the progress on the browser, we need to assign an adapter
to the batch
object in the convert
model.
$adapterName = $this->getVar('adapter', null);
Mage::getSingleton('dataflow/batch')
->setParams($this->getVars())
->setAdapter($adapterName)
->save();
The adapter
model:
class Some_Module_Model_Convert_Adapter_SomeName extends Mage_Dataflow_Model_Convert_Adapter_Abstract
See class Mage_Customer_Model_Convert_Adapter_Customer extends Mage_Eav_Model_Convert_Adapter_Entity
See app\design\adminhtml\default\default\template\system\convert\profile\process.phtml
Posted by kiatng to OpenMage (2020-12-31 01:04)