Lengow_Export - Version 1.1.3

Version Notes

Version 1.1.2
-gestion des attributs

Version 1.1.1
-Fix Bug with XML cdata

Version 1.1.0
-Fix Bug with setHeader

Version 1.0.0
-1st release

Download this release

Release Info

Developer Magento Core Team
Extension Lengow_Export
Version 1.1.3
Comparing to
See all releases


Code changes from version 1.0.0 to 1.1.3

app/code/local/Lengow/Export/controllers/IndexController.php CHANGED
@@ -1,25 +1,29 @@
1
  <?php
 
2
  class Lengow_Export_IndexController extends Mage_Core_Controller_Front_Action
3
  {
4
  public function IndexAction()
5
  {
6
- $this->GetHeader($this->getContent($_GET['format'],$_GET['storeID']),$_GET['format']);
 
 
 
 
7
  }
8
 
9
  protected function GetHeader($content, $format = 'csv', $contentType = 'text/plain', $contentLength = null)
10
  {
11
- if( ($format =='csv') || ($format =='txt'))
12
- $contentType='text/plain';
13
- elseif($format =='xml')
14
- $contentType='text/xml';
15
  else
16
- exit();
17
  $this->getResponse()
18
  ->setHttpResponseCode(200)
19
  ->setHeader('Pragma', 'public', true)
20
  ->setHeader('Cache-Control', 'must-revalidate, post-check=0, pre-check=0', true)
21
  ->setHeader('Content-type', $contentType, true)
22
- // ->setHeader('Content-Disposition', 'attachment; filename=test.xml')
23
  ->setHeader('Content-Length', strlen($content))
24
  ->setBody($content);
25
  }
@@ -34,7 +38,6 @@ class Lengow_Export_IndexController extends Mage_Core_Controller_Front_Action
34
  Mage::app('default');
35
  try
36
  {
37
- //---------------------- GET THE PRODUCTS
38
  $products = Mage::getModel('catalog/product')->getCollection();
39
  // $products
40
  if($storeID != 0)
@@ -47,24 +50,48 @@ class Lengow_Export_IndexController extends Mage_Core_Controller_Front_Action
47
  $products->addAttributeToSelect('*');
48
  $prodIds=$products->getAllIds();
49
 
50
- $product = Mage::getModel('catalog/product');
51
-
52
  $heading = array('ID','WEIGHT','MANUFACTURER','NAME','DESCRIPTION','PRICE','PRICE_PROMO','PROMO_FROM','PROMO_TO','STOCK','QUANTITY','URL','IMAGE','FDP','CATEGORY');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
53
  if( ($contentType =='csv') || ($contentType =='txt'))
 
54
  $feed_line=implode("|", $heading)."\r\n";
 
55
  elseif($contentType =='xml')
 
56
  $feed_line='<?xml version="1.0" encoding="utf-8"?>'.PHP_EOL.'<catalog>'.PHP_EOL;
 
57
  else
 
58
  exit();
 
59
  $buffer = $feed_line;
60
 
61
  foreach($prodIds as $productId)
62
  {
 
63
  $product->load($productId);
64
- $weight = $product->getWeight();
65
  $product_data = array();
66
  $product_data['sku']=$product->getSku();
67
- $product_data['weight']=$weight;
68
  $product_data['brand']=$product->getResource()->getAttribute('manufacturer')->getFrontend()->getValue($product);
69
  $product_data['title']=$product->getName();
70
  $product_data['description']=$product->getDescription();
@@ -77,14 +104,26 @@ class Lengow_Export_IndexController extends Mage_Core_Controller_Front_Action
77
  $product_data['link']=$product->getProductUrl();
78
  $product_data['image_link']=Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA).'catalog/product'.$product->getImage();
79
  $product_data['shipping_rate']='voir site';
80
-
81
  $product_type = '';
82
  foreach($product->getCategoryIds() as $_categoryId)
83
  {
84
  $category = Mage::getModel('catalog/category')->load($_categoryId);
85
  $product_type .= $category->getName().' > ';
86
  }
87
- $product_data['product_type']=rtrim($product_type,' > ');
 
 
 
 
 
 
 
 
 
 
 
 
88
 
89
  foreach($product_data as $k=>$val)
90
  {
@@ -94,23 +133,27 @@ class Lengow_Export_IndexController extends Mage_Core_Controller_Front_Action
94
  }
95
 
96
  if( ($contentType =='csv') || ($contentType =='txt'))
 
97
  $feed_line = implode("|", $product_data)."\r\n";
 
98
  elseif($contentType =='xml')
99
  {
100
  $feed_line = '<product> ';
101
- foreach($product_data as $k=>$val)
102
- {
103
- $feed_line .= '<'.$k.'>![CDATA['.$val.']]</'.$k.'>'.PHP_EOL;
104
- }
105
  $feed_line .= '</product>'.PHP_EOL;
106
  }
107
  else
108
- exit();
109
  $buffer .= $feed_line;
 
 
110
  }
111
  if($contentType == 'xml')
112
- $buffer .='</catalog>';
113
- print $buffer;
114
  }
115
  catch(Exception $e)
116
  {
1
  <?php
2
+
3
  class Lengow_Export_IndexController extends Mage_Core_Controller_Front_Action
4
  {
5
  public function IndexAction()
6
  {
7
+ if(@!isset($_GET['storeID']))
8
+ $store= 0;
9
+ else
10
+ $store=$_GET['storeID'];
11
+ $this->GetHeader($this->getContent($_GET['format'],$store),$_GET['format']);
12
  }
13
 
14
  protected function GetHeader($content, $format = 'csv', $contentType = 'text/plain', $contentLength = null)
15
  {
16
+ if( ($format =='csv') || ($format =='txt'))
17
+ $contentType='text/plain';
18
+ elseif($format =='xml')
19
+ $contentType='text/xml';
20
  else
21
+ exit();
22
  $this->getResponse()
23
  ->setHttpResponseCode(200)
24
  ->setHeader('Pragma', 'public', true)
25
  ->setHeader('Cache-Control', 'must-revalidate, post-check=0, pre-check=0', true)
26
  ->setHeader('Content-type', $contentType, true)
 
27
  ->setHeader('Content-Length', strlen($content))
28
  ->setBody($content);
29
  }
38
  Mage::app('default');
39
  try
40
  {
 
41
  $products = Mage::getModel('catalog/product')->getCollection();
42
  // $products
43
  if($storeID != 0)
50
  $products->addAttributeToSelect('*');
51
  $prodIds=$products->getAllIds();
52
 
53
+ //$product = Mage::getModel('catalog/product');
 
54
  $heading = array('ID','WEIGHT','MANUFACTURER','NAME','DESCRIPTION','PRICE','PRICE_PROMO','PROMO_FROM','PROMO_TO','STOCK','QUANTITY','URL','IMAGE','FDP','CATEGORY');
55
+
56
+ //setEntityTypeFilter(4) => Product Entity
57
+ $attributesInfo = Mage::getResourceModel('eav/entity_attribute_collection')
58
+ ->setEntityTypeFilter(4)
59
+ ->addSetInfo()
60
+ ->getData();
61
+ foreach($attributesInfo as $attribute)
62
+ {
63
+ $code = $attribute['attribute_code'];
64
+ $is_user_defined = $attribute['is_user_defined'];
65
+ if($is_user_defined==1)
66
+ {
67
+ if(!in_array('ATT_'.strtoupper($code), $heading))
68
+ {
69
+ array_push($heading, 'ATT_'.strtoupper($code));
70
+ }
71
+ }
72
+ }
73
  if( ($contentType =='csv') || ($contentType =='txt'))
74
+ {
75
  $feed_line=implode("|", $heading)."\r\n";
76
+ }
77
  elseif($contentType =='xml')
78
+ {
79
  $feed_line='<?xml version="1.0" encoding="utf-8"?>'.PHP_EOL.'<catalog>'.PHP_EOL;
80
+ }
81
  else
82
+ {
83
  exit();
84
+ }
85
  $buffer = $feed_line;
86
 
87
  foreach($prodIds as $productId)
88
  {
89
+ $product = Mage::getModel('catalog/product');
90
  $product->load($productId);
91
+
92
  $product_data = array();
93
  $product_data['sku']=$product->getSku();
94
+ $product_data['weight']=$product->getWeight();
95
  $product_data['brand']=$product->getResource()->getAttribute('manufacturer')->getFrontend()->getValue($product);
96
  $product_data['title']=$product->getName();
97
  $product_data['description']=$product->getDescription();
104
  $product_data['link']=$product->getProductUrl();
105
  $product_data['image_link']=Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA).'catalog/product'.$product->getImage();
106
  $product_data['shipping_rate']='voir site';
107
+ //GESTION DE LA CATEGORIE
108
  $product_type = '';
109
  foreach($product->getCategoryIds() as $_categoryId)
110
  {
111
  $category = Mage::getModel('catalog/category')->load($_categoryId);
112
  $product_type .= $category->getName().' > ';
113
  }
114
+ $product_data['category']=rtrim($product_type,' > ');
115
+
116
+ foreach($attributesInfo as $attribute)
117
+ {
118
+ $code = $attribute['attribute_code'];
119
+ $is_user_defined = $attribute['is_user_defined'];
120
+ $value = $product->getResource()->getAttribute($code)->getFrontend()->getValue($product);
121
+ if($is_user_defined==1)
122
+ {
123
+ // echo "code:".($code)." - value:".$value."\n";
124
+ $product_data[$code]=$value;
125
+ }
126
+ }
127
 
128
  foreach($product_data as $k=>$val)
129
  {
133
  }
134
 
135
  if( ($contentType =='csv') || ($contentType =='txt'))
136
+ {
137
  $feed_line = implode("|", $product_data)."\r\n";
138
+ }
139
  elseif($contentType =='xml')
140
  {
141
  $feed_line = '<product> ';
142
+ foreach($product_data as $k=>$val)
143
+ {
144
+ $feed_line .= '<'.$k.'><![CDATA['.$val.']]></'.$k.'>'.PHP_EOL;
145
+ }
146
  $feed_line .= '</product>'.PHP_EOL;
147
  }
148
  else
149
+ exit();
150
  $buffer .= $feed_line;
151
+ unset($product_data);
152
+ unset($product);
153
  }
154
  if($contentType == 'xml')
155
+ $buffer .='</catalog>';
156
+ return $buffer;
157
  }
158
  catch(Exception $e)
159
  {
package.xml CHANGED
@@ -1,21 +1,31 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Lengow_Export</name>
4
- <version>1.0.0</version>
5
  <stability>stable</stability>
6
  <license uri="http://www.opensource.org/licenses/osl-3.0.php">OSL v3.0</license>
7
  <channel>community</channel>
8
  <extends/>
9
- <summary>Ce module vous permettra d'exporter votre catalogue produits au format CSV ou XML &#xE0; destination de la solution Lengow afin de diffuser votre catalogue produits vers quelques 120 canaux possible.</summary>
10
- <description>Lengow est une solution SaaS permettant &#xE0; un e-commer&#xE7;ant d'optimiser ses catalogues produits vers les comparateurs de prix, r&#xE9;gies d'affiliation mais aussi marketplaces et sites de Cashback.
11
 
12
- Le principe est que la solution r&#xE9;cup&#xE8;re le catalogue produits du marchand, configure, optimise et tracke les informations des campagnes marchandes afin de restituer &#xE0; l'e-commer&#xE7;ant les statistiques sous forme de tableaux de bords et graphiques.
13
- Ce processus permet aux e-commer&#xE7;ants d'optimiser leurs flux et leurs co&#xFB;ts d'acquisition sur chaque support de diffusion.</description>
14
- <notes>Version 1.0.0 stable</notes>
15
- <authors><author><name>Froger</name><user>auto-converted</user><email>mickael@mengow.com</email></author><author><name>Lengow</name><user>auto-converted</user><email>technique@lengow.com</email></author><author><name>Lengow</name><user>auto-converted</user><email>contact@lengow.com</email></author></authors>
16
- <date>2010-03-15</date>
17
- <time>09:43:22</time>
18
- <contents><target name="magelocale"><dir name="en_US"><file name="Lengow_Export.csv" hash="abeaea80f731b4fa350091e0807cdbee"/><file name="Lengow_Information.csv" hash="86986a0717caed093e4178acf407f26c"/></dir><dir name="fr_FR"><file name="Lengow_Export.csv" hash="0bc75b767e6a51b07748f2362ff3f6f2"/><file name="Lengow_Information.csv" hash="cab993c6e862f67cef4a05229cbb2026"/></dir></target><target name="magelocal"><dir name="Lengow"><dir name="Export"><dir name="controllers"><file name="IndexController.php" hash="eeff7471a22a8d64aebb5b4ecb5cbac9"/></dir><dir name="etc"><file name="config.xml" hash="8210a1ad7fd08092b95a55de0498092c"/><file name="system.xml" hash="da7eb0bc7e16b26bae938a79fe4f5e05"/></dir><dir name="Helper"><file name="Data.php" hash="9bb8759af094885106efb1a53fe98b07"/></dir></dir><dir name="Information"><dir name="etc"><file name="config.xml" hash="c83d19a3acd4186b7b2ea4f92abc8104"/><file name="system.xml" hash="e16fa28f8249be84adf447c099adeb95"/></dir><dir name="Helper"><file name="Data.php" hash="8063a9cfe2cf944b1d1a6ac65a6b57d0"/></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Lengow_All.xml" hash="d212244e63e3d5dd55d33981a9d725bf"/></dir></target></contents>
 
 
 
 
 
 
 
 
 
 
19
  <compatible/>
20
  <dependencies/>
21
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Lengow_Export</name>
4
+ <version>1.1.3</version>
5
  <stability>stable</stability>
6
  <license uri="http://www.opensource.org/licenses/osl-3.0.php">OSL v3.0</license>
7
  <channel>community</channel>
8
  <extends/>
9
+ <summary>Ce module vous permettra d&amp;apos;exporter votre catalogue produits au format CSV ou XML &amp;agrave; destination de la solution Lengow afin de diffuser votre catalogue produits vers quelques 120 canaux possible.</summary>
10
+ <description>Lengow est une solution SaaS permettant &amp;agrave; un e-commer&amp;ccedil;ant d&amp;apos;optimiser ses catalogues produits vers les comparateurs de prix, r&amp;eacute;gies d&amp;apos;affiliation mais aussi marketplaces et sites de Cashback.
11
 
12
+ Le principe est que la solution r&amp;eacute;cup&amp;egrave;re le catalogue produits du marchand, configure, optimise et tracke les informations des campagnes marchandes afin de restituer &amp;agrave; l&amp;apos;e-commer&amp;ccedil;ant les statistiques sous forme de tableaux de bords et graphiques.
13
+ Ce processus permet aux e-commer&amp;ccedil;ants d&amp;apos;optimiser leurs flux et leurs co&amp;ucirc;ts d&amp;apos;acquisition sur chaque support de diffusion.</description>
14
+ <notes>Version 1.1.2
15
+ -gestion des attributs
16
+
17
+ Version 1.1.1
18
+ -Fix Bug with XML cdata
19
+
20
+ Version 1.1.0
21
+ -Fix Bug with setHeader
22
+
23
+ Version 1.0.0
24
+ -1st release</notes>
25
+ <authors><author><name>Lengow</name><user>auto-converted</user><email>technique@lengow.com</email></author></authors>
26
+ <date>2010-08-25</date>
27
+ <time>17:04:00</time>
28
+ <contents><target name="magelocale"><dir name="en_US"><file name="Lengow_Export.csv" hash="abeaea80f731b4fa350091e0807cdbee"/><file name="Lengow_Information.csv" hash="86986a0717caed093e4178acf407f26c"/></dir><dir name="fr_FR"><file name="Lengow_Export.csv" hash="0bc75b767e6a51b07748f2362ff3f6f2"/><file name="Lengow_Information.csv" hash="cab993c6e862f67cef4a05229cbb2026"/></dir></target><target name="magelocal"><dir name="Lengow"><dir name="Export"><dir name="controllers"><file name="IndexController.php" hash="75e34a60107d73e985842bd7d50556af"/></dir><dir name="etc"><file name="config.xml" hash="8210a1ad7fd08092b95a55de0498092c"/><file name="system.xml" hash="da7eb0bc7e16b26bae938a79fe4f5e05"/></dir><dir name="Helper"><file name="Data.php" hash="9bb8759af094885106efb1a53fe98b07"/></dir></dir><dir name="Information"><dir name="etc"><file name="config.xml" hash="c83d19a3acd4186b7b2ea4f92abc8104"/><file name="system.xml" hash="e16fa28f8249be84adf447c099adeb95"/></dir><dir name="Helper"><file name="Data.php" hash="8063a9cfe2cf944b1d1a6ac65a6b57d0"/></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Lengow_All.xml" hash="d212244e63e3d5dd55d33981a9d725bf"/></dir></target></contents>
29
  <compatible/>
30
  <dependencies/>
31
  </package>