Magentoã¯ããªã³ã©ã€ã³ã¹ãã¢ç®¡çã·ã¹ãã ã§ãã Alexaã«ãããšãMagentoã¯2013幎2æã«äžçã§æã人æ°ã®ãããªã³ã©ã€ã³ã¹ãã¢ç®¡çã·ã¹ãã ã§ãã
çŸåšããã¹ãŠã®eã³ããŒã¹ãœãªã¥ãŒã·ã§ã³ã®äžã§ãMagentoã奜ã¿ãŸãã
- EAVããŒã¿ããŒã¹ã¢ãã«ã«ããã補åãã«ããŽãªããŠãŒã¶ãŒã®å±æ§ãç°¡åã«æäœã§ããŸãã
- Connectã®ææããã³ç¡æã®å€æ°ã®ã¢ãžã¥ãŒã«ïŒåžžã«é©åã«èšè¿°ãããŠããããã§ã¯ãããŸãããïŒ
- ãªãŒãã³ãœãŒã¹
- ããã«äœ¿çšã§ãããªã³ã©ã€ã³ã¹ãã¢ã®å±éãšã¢ããã°ã¬ãŒããç°¡å
- åªãã匷åãªç®¡çããã«
- æ®ããšæ¯èŒããŠãããããeã³ããŒã¹ã®æã匷åãªåºæ¬æ©èœ
ãã®ãããã¯ã«é¢ããå€ãã®èšäºãã€ã³ã¿ãŒãããäžã«ãããŸããããã®ã»ã¯ã·ã§ã³ã¯ãŸã ããã§åããããŠããã®ã§ããã®åéã§ã®ç§ã®ç¥èãå
±æããããšããŸãã
Magentoã§ã®ã¢ãžã¥ãŒã«ã®éçºã¯ãããŒã«ã«ïŒæ¥ç¶æã«ã¢ãžã¥ãŒã«ãæçš¿ããäºå®ã®å Žåã¯ã³ãã¥ããã£ïŒã§è¡ãå¿
èŠããããŸãã
ãããã£ãŠãåºæ¬ã¢ãžã¥ãŒã«ã¯æ¬¡ã®ãã®ã§æ§æãããŸãã
- app / etc / modules / [Namespace] _ [Module] .xml-ã¢ãžã¥ãŒã«ã®ããŒãã¹ãã©ãããã¡ã€ã«ã ã¢ãžã¥ãŒã«ã®å ŽæïŒ ã³ã¢|ã³ãã¥ããã£|ããŒã«ã« ïŒãšäŸåé¢ä¿ïŒäŸåïŒãå«ãŸããŠããŸã
- app / code / local / [Namespace] / [Module] - ã¢ãžã¥ãŒã«ã®ã¡ã€ã³ãã£ã¬ã¯ããª
- ã¢ãžã¥ãŒã«ã®æ§æãã¡ã€ã«ãå«ãetcãã£ã¬ã¯ããªãŒïŒ config.xml | system.xml | adminhtml.xml | api.xml | api2.xml ... ïŒ
- controllers-ã¢ãžã¥ãŒã«ã³ã³ãããŒã©ãŒã®ãã£ã¬ã¯ããª
- data-ã¢ãžã¥ãŒã«ã®ã€ã³ã¹ããŒã«ã¹ã¯ãªããã®ãã£ã¬ã¯ããªãããŒã¿ã®ã¿
- sql-ã¢ãžã¥ãŒã«ã€ã³ã¹ããŒã«ã¹ã¯ãªãããã£ã¬ã¯ããªãããŒãã«æ§é ã®ã¿
- ããã㯠-ãããã¯ã¯ã©ã¹ã®ãã£ã¬ã¯ããª
- ãã«ã㌠-ãã«ããŒã¯ã©ã¹ãã£ã¬ã¯ããª
- ã¢ãã« -ã¢ãã«ã¯ã©ã¹ãã£ã¬ã¯ããª
ã¢ãžã¥ãŒã«ã®ããŒãã¯éåžžã«ç°¡å
ã§ããMagentoã¯ããŸãããŒã¿ããŒã¹ãã»ãã·ã§ã³ããã£ãã·ã¥ãªã©ã®èšå®ã§
app / etc / local.xmlãããŒãããæ¬¡ã«
app / etc / modules / * ãXmlããã¢ãžã¥ãŒã«ã®ããŒãã¹ãã©ãããããŒããã
<ã®äŸåé¢ä¿ã«åŸã£ãŠãœãŒãããŸã
depend> ã
app / code / * / * / * / etc / config.xmlãããŒããããã¹ãŠã®XMLã1ã€ã®ã°ããŒãã«XMLã«ããŒãžããapp / etc / local.xmlãã°ããŒãã«XMLã«å床ããŒãããŠãlocal.xmlããããŒã¿ã倱ãããªãããã«ããŸãã
æ¬è³ªçã«ãMagentoã§ã®ãã¹ãŠã®éçºã®ãã€ã³ãã¯ãã«ãŒãã«ã¢ãžã¥ãŒã«ïŒãŸãã¯ä»ã®ã¢ãžã¥ãŒã«ïŒã®ãœãŒã¹ã³ãŒããæå°éã«å¹²æžããããšã§ãããã®ãããMagentoã«ã¯ããã€ãã®ã¢ãããŒãããããŸãã
1ïŒãããŠãããããæãåºæ¬çãªã€ãã³ãã æ¢åã®æ©èœã远å /倿Žããå¿
èŠãããå Žåãã»ãšãã©ã®å Žåãã€ãã³ãã®ã€ã³ã¿ãŒã»ããã§ååã§ãã
2ïŒã¯ã©ã¹ãæžãæãã
3ïŒããŒã«ã«ãªãŒããŒã©ã€ã
ã€ãã³ã
Magentoã®ã€ãã³ãã¯ãæ¢åã®æ©èœã倿Žããéã®æãæ£ããã¢ãããŒãã§ãã ç¬èªã®æ©èœãéçºãããšãã¯ãã€ãã³ãã䜿çšããããšãå¿ããªãã§ãã ãããç¹ã«ãããã»ã©é£ãããªãããã
Mage::dispatchEvent('namespace_module_something', array('model' => $this, 'something' => $that))
ããã«ãã€ãã³ããã€ã³ã¿ãŒã»ããããå ŽåïŒ
ã€ã³ã¿ãŒã»ããèªäœã®å®çŸ©ã¯ã
ã€ãã³ãããŒãã®config.xmlã§èª¬æãããŠ
ããŸãã
<config> <global> <events> <namespace_module_something> <observers> <some_name> <class>namespace_module/observer</class> <method>someName</method> </some_name> </observers> </namespace_module_something> </events> </global> </config>
ãŸããã€ãã³ããã°ããŒãã«ã«ã€ã³ã¿ãŒã»ããããããšã¯å¿
ãããå¿
èŠã§ã¯ãªããããã°ããŒãã«ãªã€ãã³ãã«å ããŠãã€ãã³ããããã³ããšã³ã/ adminhtml / crontabã«æžã蟌ãããšãã§ããŸã
æžãæãã¯ã©ã¹
ã¢ãã«ããã«ããŒãããã³ãããã¯ã¯ãã³ãŒãå
ã®ã»ãŒãã¹ãŠã®å Žæã§ãã¡ã¯ããªã¡ãœãããéããŠåŒã³åºãããŸãã
- ã¡ã€ãž:: getModelïŒïŒ/ã¡ã€ãž:: getSingletonïŒïŒ
- ã¡ã€ãž::ãã«ããŒïŒïŒ
- Mage :: getBlockSingleton / Mage_Core_Model_Layout :: createBlock
ããããã¹ãŠã®ã¡ãœããã¯ãããããMage_Core_Model_Configã®getModelClassName / getHelperClassName / getBlockClassNameã䜿çšããŸã
ãã¹ãŠã®ã¡ãœããã®æåã®ãã©ã¡ãŒã¿ãŒã¯ãã¢ãã«/ãã«ããŒ/ãããã¯ã®ãšã€ãªã¢ã¹ã§ãïŒããšãã°ãã«ã¿ãã°/補å
ã¯ã©ã¹åãçŽæ¥äœ¿çšããããšãã§ããŸãããããã¯åœãŠã¯ãŸããŸããã æžãæãã·ã¹ãã ã¯å®å
šã«çµäºããŸã-æ°ããNamespace_Module_Model_SomethingïŒïŒãšåºæ¬çã«åãã§ã-èšå®ã§ãã®ã¯ã©ã¹ããªãŒããŒã©ã€ãããããšã¯ã§ããŸããããã®ãããã¢ãžã¥ãŒã«ã§çŽæ¥ã¯ã©ã¹åã䜿çšããªãããã«ããŠãã ããã
fgetcsv($handle, 0, Namespace_Module_Model_Something::DELIMITER, Namespace_Module_Model_Something::ENCLOSURE, Namespace_Module_Model_Something::ESCAPE )
å®éãã¢ãžã¥ãŒã«ã®ãã¹ãŠã®ãŠãŒã¶ãŒã«ãæå®ãããDELIMITER / ENCLOSURE / ESCAPEã®ã¿ã䜿çšããããã«åŒ·å¶ããŸãã ãã®ãããªåé¡ã¯ãããšãã°ãæ°ããŒãžã§ã³åã«ã¯Mage_ImportExportã¢ãžã¥ãŒã«ã«ãããåæ§ã®åé¡ãã³ãŒãå
ã«ãŸã ããããšããããŸãã
ãããã£ãŠãæ§æãã¡ã€ã«ãæ€èšããŠãã ããã
<config> <modules> <Namespace_Module> </Namespace_Module> </modules> <global> <models> <namespace_module> <class>Namespace_Module_Model</class> </namespace_module> </models> <helpers> <namespace_module> <class>Namespace_Module_Helper</class> </namespace_module> </helpers> <blocks> <namespace_module> <class>Namespace_Module_Block</class> </namespace_module> </blocks> </global> </config>
ã¢ãã«ããã«ããŒããããã¯ã¯namespace_moduleãšã€ãªã¢ã¹ã®äžã§å©çšå¯èœã«ãªããšè¿°ã¹ãŠããŸãã
ãããã£ãŠãNamespace_Module_Model_Modelnameã«å°éããå¿
èŠãããå Žåã¯ãMage :: getModelïŒ 'namespace_module / modelname'ïŒïŒãŸãã¯ã·ã³ã°ã«ãã³ãå¿
èŠãªå Žåã¯Mage :: getSingletonïŒã䜿çšããã ãã§ãã ç¶æ³ã¯ãããã¯ãšãã«ããŒã§åãã§ããã远å ãããã®ã¯1ã€ã ãã§ããMage:: helperïŒ 'namespace_module'ïŒã¯ã¡ã€ã³ã¢ãžã¥ãŒã«ãã«ããŒãåŒã³åºããŸãïŒNamespace_Module_Helper_Data
ãŸãããããã¯ãšã³ã³ãããŒã©ãŒã¯å€æé¢æ°ãåŒã³åºããšãã«ãã®ãã«ããŒã䜿çšããããïŒ$ this-> __ïŒ "Somestring"ïŒïŒããã«ããŒã¯Mage_Core_Helper_Abstractããç¶æ¿ããå¿
èŠããããŸãã
æžãæãã®å Žåã¯ã次ã瀺ãã ãã§ãã
... <models> <catalog> <rewrite> <product>Namespace_Module_Model_Product</product> </rewrite> </catalog> </models> ...
ã¢ãã«ïŒãããã¯ããã«ããŒïŒããšã«ãæžãæããæå®ããå¿
èŠããããŸãã äžèšã®XMLã§ã¯ã補åã¢ãã«ãNamespace_Module_Model_Productã«åå®çŸ©ããŠãããããMage :: getModelïŒ 'catalog / product'ïŒã¯çµ¶å¯Ÿã«Namespace_Module_Model_Productãè¿ããŸãã
ããŒã«ã«ãªãŒããŒã©ã€ã
ãã¡ã€ã«ã®ãšã©ãŒãä¿®æ£ããå¯èœæ§ããªãå Žåã«ã®ã¿å¿
èŠã§ããããšãã°ãAbstractã¯ã©ã¹ã«ãšã©ãŒããããã©ã®ãããªæ¹æ³ã§ãåå®çŸ©ã§ããªãå ŽåïŒç¹ã«ããã®æœè±¡ã¯ã©ã¹ãä»ã®å€æ°ã®ã¯ã©ã¹ã§äœ¿çšãããå ŽåïŒã
ããã©ã«ãã§ã¯ã
include_path = app / code / local; ã¢ããª/ã³ãŒã/ã³ãã¥ããã£; ã¢ããª/ã³ãŒã/ã³ã¢; libã®ã§ãã³ãã¥ããã£ãŸãã¯ã³ã¢ã¯ã©ã¹ã§ãšã©ãŒãçºçããå ŽåãããŒã«ã«ã®ã¿ã§ãã¡ã€ã«ãšåãå Žæã«ã³ããŒã§ããŸããããšãã°ãlocal / Mage / Catalog / Model / Abstract.phpã®å Žåããã¡ã€ã«ã¯ã³ã¢ã®ä»£ããã«ããŒã«ã«ããããŠã³ããŒããããŸãã
ãã¡ãããæåã®æ¹æ³ã§ã¯ãããŸãã MagentoãæŽæ°ããå Žåããã¡ã€ã«ãæŽæ°ããå¿
èŠããããŸãïŒåé¡ãä¿®æ£ãããŠããªãå ŽåïŒããç¹ã«æé©åã«é¢ããŠã¯ãçåæš©ããããŸãã
å®çšå
ã¿ã¹ã¯ïŒæ³šæã®ãã£ãŒã«ããis_exportedãã远å ãã管çããã«ã®æ³šæãªã¹ãã«è¡šç€ºããŸãã
ãŸããããŒãã¹ãã©ãããäœæããŸãã
app / etc / modules / Easy_Interfacing.xml <?xml version="1.0"?> <config> <modules> <Easy_Interfacing> <active>true</active> <codePool>local</codePool> <depends> <Mage_Sales/> </depends> </Easy_Interfacing> </modules> </config>
Mage_Salesã¢ãžã¥ãŒã«ã«ãã£ãŠäœæãããããŒãã«ã®æ§é ã倿ŽãããããäŸåé¢ä¿ã§Mage_Salesãèšå®ããå¿
èŠããããŸãã ãããã€ã³ã¹ããŒã«ããªããšãæ¢åã®Magentoã§ã¯ãã¹ãŠåé¡ãªãåäœããŸãããæåããå±éããå Žåãæåã«ã¹ã¯ãªãããèµ·åãããšsales_flat_orderããŒãã«ããªãããã€ã³ã¹ããŒã«ã¹ã¯ãªããããèœã¡ããå¯èœæ§ããããŸãã
ã¢ããª/ã³ãŒã/ããŒã«ã«/ç°¡å/ã€ã³ã¿ãŒãã§ãŒã¹/ etc / config.xml <?xml version="1.0"?> <config> <modules> <Easy_Interfacing> <version>0.0.1</version> </Easy_Interfacing> </modules> <global> <resources> <easy_interfacing_setup> <setup> <module>Easy_Interfacing</module> <class>Mage_Sales_Model_Resource_Setup</class> </setup> </easy_interfacing_setup> </resources> <helpers> <easy_interfacing> <class>Easy_Interfacing_Helper</class> </easy_interfacing> </helpers> <blocks> <easy_interfacing> <class>Easy_Interfacing_Block</class> </easy_interfacing> </blocks> </global> </config>
ãªãœãŒã¹ããŒãã§ã¯ãã¢ãžã¥ãŒã«ã«ã€ã³ã¹ããŒã«ã¹ã¯ãªããããããMage_Sales_Model_Resource_Setupã¯ã©ã¹ã«ãªãããšãåºæ¬çã«ç€ºãããŠããŸãã
ã¢ããªã®äœæ
/ã³ãŒã/ããŒã«ã«/ç°¡å/ã€ã³ã¿ãŒãã§ãŒã¹/ sql / easy_interfacing_setup / install-0.0.1.php $this->addAttribute('order', 'is_exported', array('type' => 'int', 'grid' => true));
ããã§ãé åºããŒãã«ã«int屿§ã远å ããŸããgrid=> trueã¯ããã®å±æ§ã§ã°ãªããããŒãã«ãæŽæ°ããå¿
èŠãããããšã瀺ããŸãã ãã£ãŒã«ãåã«å€§æåã䜿çšããªãããšãéèŠã§ã-ã²ãã¿ãŒãšã»ãã¿ãŒã¯ããããæ£ãã䜿çšã§ããŸãã-ïŒgetïŒsetSomeValueã¯ïŒgetïŒsetDataïŒ 'some_value'ïŒã®ã¿ãšåçã§ãããïŒgetïŒsetDataïŒ 'SomeValue'ïŒãšã¯åçã§ã¯ãããŸãã
åœåãæ³šæã¯EAVãã¿ãŒã³ã§å®è£
ãããŠããŸããããEAVã®ç¹æ§ã«ããã1ã€ã®æ³šæãèšé²ããããã«ã1ã€ã®ãªããžã§ã¯ããè€æ°ã®åãªããžã§ã¯ãã§1ããŒã¹ã®ããŒãã«ã«åèš5äžåã®ããŒãã«ã§æžã蟌ã¿ã1ã€ã®æ³šæã®ã¿ãèšé²ããã®ã§ãããã©ãŒãã³ã¹ã®èгç¹ããã¯äžå©ã§ãããããã«é¢é£ãããã®ïŒè«æ±æžãé
éãå²ãåœãŠãäœæïŒã¯ãéè€ããã°ãªããããŒãã«ã䜿çšãããã©ããããŒãã«ã§ãã
DDLã¡ãœããã䜿çšããããšããå§ãããŸã æ°ããäœæããããŒãã«ã«ã®ã¿
$ this-> runïŒ$ sqlïŒã䜿çšããŠãå®å
šã§ã
ãrunã¡ãœããã§ALTER TABLEã䜿çšããŠãZendããŒãã«ã®ãã£ãã·ã¥ã¯ã¯ãªã¢ãããããã£ãŒã«ããä¿åããªãçç±ã誀解ããŠé·æéãã¹ã¿ãã¯ãããå¯èœæ§ããããŸã
ããã§ã泚æãªã¹ãã®ç®¡çããã«ãå°ã倿ŽããŠã¿ãŸãããã
ã³ãã¥ããã£ã¢ãžã¥ãŒã«ã§ããããééã-泚æãªã¹ãã®JOIN-ã°ãªããããŒãã«ã«ããŒã¿ãæžã蟌ãã ãã§ãªããMage_Adminhtml_Block_Sales_Order_Gridãããã¯ããªãŒããŒã©ã€ãããããšã«ãããããŒã¿ã 'sales / order_grid_collection'ã³ã¬ã¯ã·ã§ã³ã«æ·»ä»ããŸãã ïŒããŒã¿ãæ¢ã«ã°ãªããããŒãã«ã«æžã蟌ãŸããŠããå Žåãããã«1ã€ä»¥äžã®ãã£ãŒã«ãã远å ããã ãã§ã¯ã©ãã§ããïŒ
ãã®ããããããã¯Mage_Adminhtml_Block_Sales_Order_Gridãåå®çŸ©ããŸãã 圌ã®ãšã€ãªã¢ã¹ã¯adminhtml / sales_order_gridã§ãïŒ
.... <blocks> <adminhtml> <rewrite> <sales_order_grid>Easy_Interfacing_Block_Adminhtml_Sales_Order_Grid</sales_order_grid> </rewrite> </adminhtml> </blocks> ....
ãããã¯åã®å
é ã«Adminhtmlã远å ããããšã«æ³šæããŠãã ãã-ãããã¯ã管çè
ãããã³ããšåºå¥ããæ¹ã䟿å©ã§ã-çµå±ãSales_Order_Gridã¯Salesã§ã¯ãªãAdminhtmlã¢ãžã¥ãŒã«ã«ãããsales / order_historyãåå®çŸ©ããå¿
èŠãããå Žåã¯ããã£ã¬ã¯ããªã«ãããã¯ã衚瀺ãããŸã/ Grid.phpã®é£ã®æ³šæãHistory.phpã§ãããæ··ä¹±ãæããŸãã
ãã¡ã€ã«
ã¢ããª/ã³ãŒã/ããŒã«ã«/ã€ãŒãžãŒ/ã€ã³ã¿ãŒãã§ãŒã¹/ãããã¯/ã»ãŒã«ã¹/ãªãŒããŒ/Grid.phpãäœæããŸãã
<?php class Easy_Interfacing_Block_Adminhtml_Sales_Order_Grid extends Mage_Adminhtml_Block_Sales_Order_Grid { protected function _prepareColumns() { parent::_prepareColumns(); $options = array( null => $this->helper('eav')->__('No'), 1 => $this->helper('eav')->__('Yes'), ); $this->addColumnAfter( 'is_exported', array( 'header' => $this->__('Exported'), 'index' => 'is_exported', 'type' => 'options', 'width' => '70px', 'options' => $options ), 'status' ); $this->sortColumnsByOrder(); } }
ç°¡åã§ããã¹ããŒã¿ã¹ã®åŸã«ããšã¯ã¹ããŒããããåãã°ãªããã«è¿œå ããŸããã type = optionsã§ããããããªãã·ã§ã³ãé
åid => valueã®åœ¢åŒã§æå®ããå¿
èŠããããŸãã
eav / entity_attribute_source_booleanãçŽæ¥äœ¿çšããããšã¯ã§ããŸããããã®å Žåã®ããã«ãNo = 0ã§ãããNULLã§ã¯ãªãããã§ãã
ãã®æ©èœããã¹ãããã«ã¯ãåçŽãªã³ã³ãœãŒã«ã¹ã¯ãªããã䜿çšããŸãã
<?php require 'app/Mage.php'; Mage::app('admin'); Mage::getModel('sales/order')->load(194)->setIsExported(1)->save();
is_exported屿§ã¯äž¡æ¹ã®ããŒãã«ã«ååšãããããæ³šæãªããžã§ã¯ããä¿åãããšãããŸãã¯ãMage_Sales_Model_Abstract :: _ afterCommitCallbackã¡ãœããã¯æ³šæã®ãªãœãŒã¹ã¢ãã«ããGridRecordsãæŽæ°ããã¢ãã«ããã°ãªããããŒãã«ã«ãã£ãŒã«ãããŒã¿ãã³ããŒããŸãã
ããã§ãã€ãã³ããéããŠé¢å¿ã®ãããšã¯ã¹ããŒããå®è£
ããã ãã§ååã§ãïŒã¢ãã«ã®èª¬æã远å ããããšãå¿ããªãã§ãã ããïŒã
<config> <global> ... <models> <easy_interfacing> <class>Easy_Interfacing_Model</class> </easy_interfacing> </models> <events> <sales_order_save_commit_after> <observers> <easy_interfacing_order> <class>easy_interfacing/observer</class> <method>exportOrder</method> </easy_interfacing_order> </observers> </sales_order_save_commit_after> </events> ... </global>
ã€ãã³ãã®ååã調ã¹ãæ¹æ³ã¯ïŒ ããã¯éåžžã«ç°¡åã§ã-app / Mage.phpãéããdispatchEventã¡ãœãããèŠã€ããŠãã°ã远å ããŸãïŒãã¡ãããäžæçã«ïŒïŒ
public static function dispatchEvent($name, array $data = array()) { Mage::log($name, LOG_DEBUG, 'events.log', true);
次ã«ãå¿
èŠãªã¢ã¯ã·ã§ã³ãå®è¡ããããªã¬ãŒãããã€ãã³ãã®ãªã¹ããåç
§ããŸãïŒãã¡ã€ã« "<MAGENTO_ROOT> /var/log/events.log"ïŒã AfterCommitã¯ãæè¯ã®éžæã§ãã ããã¯ã泚æãªããžã§ã¯ããæ£åžžã«ä¿åããããšãã«çºçããã€ãã³ãã§ãã ãããafterSaveã«ãããšãã¢ãžã¥ãŒã«ã®ãããããäŸå€ãã¹ããŒããå Žåãã¢ãžã¥ãŒã«ãæ¢ã«ããŒã¿ããšã¯ã¹ããŒãããŠããå¯èœæ§ããããŸãããããã¯ééã£ãŠããŸãã ãã©ã³ã¶ã¯ã·ã§ã³å
šäœããã£ã³ã»ã«ãããæ³šæã¯å
ã®ç¶æ
ã«æ»ããŸãïŒINSERT INTOããŒã«ããã¯ã®å Žåãååšããªãå ŽåããããŸãïŒã
ã¯ã©ã¹Observer
ã¢ããª/ã³ãŒã/ããŒã«ã«/ã€ãŒãžãŒ/ã€ã³ã¿ãŒãã§ãŒã¹/ã¢ãã«/Observer.phpèªäœãäœæããŸãã
<?php class Easy_Interfacing_Model_Observer { public function exportOrder(Varien_Event_Observer $observer) { $order = $observer->getOrder(); if (!$order->getIsExported() && $order->getState() == Mage_Sales_Model_Order::STATE_PROCESSING) { try { Mage::getModel('easy_interfacing/order')->export($order); $order->setIsExported(1)->addStatusHistoryComment('Exported order'); } catch (Exception $ex) { $order->addStatusHistoryComment('Failed exporting order: ' . $ex->getMessage())->save(); } } } }
è€éãªããšã¯ãªããæ³šæãæ¢ã«ãšã¯ã¹ããŒããããŠãããã©ãããããã³ãšã¯ã¹ããŒãã§ãããã©ãããç°¡åã«ç¢ºèªããŸãããšã¯ã¹ããŒãã«é©ããŠããã®ã¯PROCESSINGç¶æ
ã®æ³šæã®ã¿ã§ãããããã¯æææ³šæã§ãã
ãããŠæåŸã«ãeasy_interfacing / order
app / code / local / Easy / Interfaces / Model / Order.php <?php class Easy_Interfacing_Model_Order { public function export(Mage_Sales_Model_Order $order) { Mage::throwException('Not implemented'); } }
ãšã¯ã¹ããŒãæ©èœããã¹ãããã«ã¯ããã¹ãã¹ã¯ãªãããæ¬¡ã®ããã«å€æŽããŸãã
<?php require 'app/Mage.php'; Mage::app('admin'); Mage::getModel('sales/order')->load(188)->setDummyValue(1)->save();
é åºãä¿åããã«ã¯ãååšããªãå€ãèšå®ããå¿
èŠããããŸã-_origData = _dataã®å Žåãã¢ãã«ã¯Magentoã«ä¿åãããªããããbeforeSave / afterSave / afterCommitã€ãã³ãã¯çºçããŸããã ãã®ã¹ã¯ãªãããå®è¡ãããšã泚æã®ã³ã¡ã³ãå±¥æŽã«æ°ããã³ã¡ã³ãã衚瀺ãããŸãã
22/07/2014 6:43:43 AM|Processing
Customer Not Notified
Failed exporting order: Not implemented
æçµçãªconfig.xml <?xml version="1.0"?> <config> <modules> <Easy_Interfacing> <version>0.0.1</version> </Easy_Interfacing> </modules> <global> <resources> <easy_interfacing_setup> <setup> <module>Easy_Interfacing</module> <class>Mage_Sales_Model_Resource_Setup</class> </setup> </easy_interfacing_setup> </resources> <models> <easy_interfacing> <class>Easy_Interfacing_Model</class> </easy_interfacing> </models> <helpers> <easy_interfacing> <class>Easy_Interfacing_Helper</class> </easy_interfacing> </helpers> <blocks> <easy_interfacing> <class>Easy_Interfacing_Block</class> </easy_interfacing> <adminhtml> <rewrite> <sales_order_grid>Easy_Interfacing_Block_Adminhtml_Sales_Order_Grid</sales_order_grid> </rewrite> </adminhtml> </blocks> <events> <sales_order_save_commit_after> <observers> <easy_interfacing_order> <class>easy_interfacing/observer</class> <method>exportOrder</method> </easy_interfacing_order> </observers> </sales_order_save_commit_after> </events> </global> </config>
ããã¯ã泚æãäœæãããšãã«Magentoã«ãšã¯ã¹ããŒãããããã®ãã®ãããªç°¡åãªæ¹æ³ã§ãã¹ã±ã«ãã³ãã12ãããã€ãã§å®è£
ãããæ¹æ³ã§ãã ããšã¯ãå¿
èŠãªãšã¯ã¹ããŒãã¢ã«ãŽãªãºã ãEasy_Interfacing_Model_Orderã¢ãã«ã«å®è£
ããã ãã§ãã