PageRenderTime 44ms CodeModel.GetById 19ms RepoModel.GetById 1ms app.codeStats 0ms

/magmi/integration/inc/productimport_datapump.php

https://bitbucket.org/jit_bec/shopifine
PHP | 84 lines | 65 code | 15 blank | 4 comment | 2 complexity | b5bfa0ce6aa4e7b56f70bd3da623e428 MD5 | raw file
Possible License(s): LGPL-3.0
  1. <?php
  2. require_once("magmi_productimportengine.php");
  3. class Magmi_ProductImport_DataPump
  4. {
  5. protected $_engine=null;
  6. protected $_params=array();
  7. protected $_logger=null;
  8. protected $_importcolumns=array();
  9. protected $_defaultvalues=array();
  10. protected $_stats;
  11. protected $_crow;
  12. protected $_rstep=100;
  13. protected $_mdpatched=false;
  14. public function __construct()
  15. {
  16. $this->_engine=new Magmi_ProductImportEngine();
  17. $this->_engine->setBuiltinPluginClasses("*datasources",dirname(__FILE__).DS."magmi_datapumpdatasource.php::Magmi_DatapumpDS");
  18. $this->_stats["tstart"]=microtime(true);
  19. //differential
  20. $this->_stats["tdiff"]=$this->_stats["tstart"];
  21. }
  22. public function setReportingStep($rstep)
  23. {
  24. $this->_rstep=$rstep;
  25. }
  26. public function beginImportSession($profile,$mode,$logger=null)
  27. {
  28. $this->_engine->setLogger($logger);
  29. $this->_engine->initialize();
  30. $this->_params=array("profile"=>$profile,"mode"=>$mode);
  31. $this->_engine->engineInit($this->_params);
  32. $this->_engine->initImport($this->_params);
  33. //intermediary report step
  34. $this->_engine->initDbqStats();
  35. $pstep=$this->_engine->getProp("GLOBAL","step",0.5);
  36. //read each line
  37. $this->_stats["lastrec"]=0;
  38. $this->_stats["lastdbtime"]=0;
  39. $this->crow=0;
  40. }
  41. public function setDefaultValues($dv=array())
  42. {
  43. $this->_defaultvalues=$dv;
  44. }
  45. public function ingest($item=array())
  46. {
  47. $item=array_merge($this->_defaultvalues,$item);
  48. $diff=array_diff(array_keys($item),$this->_importcolumns);
  49. if(count($diff)>0)
  50. {
  51. $this->_importcolumns=array_keys($item);
  52. //process columns
  53. $this->_engine->callPlugins("itemprocessors","processColumnList",$this->_importcolumns);
  54. $this->_engine->initAttrInfos($this->_importcolumns);
  55. }
  56. $res=$this->_engine->processDataSourceLine($item, $this->_rstep,$this->_stats["tstart"],$this->_stats["tdiff"],$this->_stats["lastdbtime"],$_this->stats["lastrec"]);
  57. }
  58. public function endImportSession()
  59. {
  60. $this->_engine->reportStats($this->_engine->getCurrentRow(),$this->_stats["tstart"],$this->_stats["tdiff"],$this->_stats["lastdbtime"],$_this->stats["lastrec"]);
  61. $skustats=$this->_engine->getSkuStats();
  62. $this->_engine->log("Skus imported OK:".$skustats["ok"]."/".$skustats["nsku"],"info");
  63. if($skustats["ko"]>0)
  64. {
  65. $this->_engine->log("Skus imported KO:".$skustats["ko"]."/".$skustats["nsku"],"warning");
  66. }
  67. $this->_engine->exitImport();
  68. }
  69. }