Version Notes
New version of Lengow's Connector
Download this release
Release Info
Developer | Ludovic |
Extension | Lengow_Export |
Version | 2.0.2 |
Comparing to | |
See all releases |
Code changes from version 2.0.1.3 to 2.0.2
- app/code/community/Lengow/{Export/Block/.DS_Store → .DS_Store} +0 -0
- app/code/community/Lengow/Dashboard/etc/config.xml +1 -1
- app/code/community/Lengow/{Sync → Export}/.DS_Store +0 -0
- app/code/community/Lengow/Export/Helper/Data.php +14 -4
- app/code/community/Lengow/Export/Helper/Security.php +3 -0
- app/code/community/Lengow/Export/Model/.DS_Store +0 -0
- app/code/community/Lengow/Export/Model/Catalog/Product.php +32 -9
- app/code/community/Lengow/Export/Model/Generate.php +115 -68
- app/code/community/Lengow/Export/Model/Observer.php +1 -1
- app/code/community/Lengow/Export/Model/Source/.DS_Store +0 -0
- app/code/community/Lengow/Export/controllers/.DS_Store +0 -0
- app/code/community/Lengow/Export/controllers/Adminhtml/.DS_Store +0 -0
- app/code/community/Lengow/Export/controllers/Adminhtml/Lengow/ExportController.php +8 -8
- app/code/community/Lengow/Export/controllers/FeedController.php +9 -1
- app/code/community/Lengow/Export/etc/config.xml +4 -10
- app/code/community/Lengow/Export/etc/system.xml +10 -0
- app/code/community/Lengow/Feed/Block/Adminhtml/Feed/Grid.php +27 -5
- app/code/community/Lengow/Feed/Model/Feed.php +17 -2
- app/code/community/Lengow/Feed/controllers/Adminhtml/Lengow/FeedController.php +35 -22
- app/code/community/Lengow/Feed/etc/config.xml +1 -1
- app/code/community/Lengow/Sync/Block/.DS_Store +0 -0
- app/code/community/Lengow/Sync/Block/Adminhtml/Log/Grid.php +1 -1
- app/code/community/Lengow/Sync/Helper/Api.php +17 -0
- app/code/community/Lengow/Sync/Model/.DS_Store +0 -0
- app/code/community/Lengow/Sync/Model/Config.php +72 -0
- app/code/community/Lengow/Sync/Model/Connector.php +1 -0
- app/code/community/Lengow/Sync/Model/Customer/Customer.php +12 -4
- app/code/community/Lengow/Sync/Model/Import.php +60 -23
- app/code/community/Lengow/Sync/Model/Marketplace.php +38 -5
- app/code/community/Lengow/Sync/Model/Mysql4/.DS_Store +0 -0
- app/code/community/Lengow/Sync/Model/Observer.php +69 -18
- app/code/community/Lengow/Sync/Model/Order.php +93 -65
- app/code/community/Lengow/Sync/Model/Payment/.DS_Store +0 -0
- app/code/community/Lengow/Sync/Model/Payment/Method/Lengow.php +6 -6
- app/code/community/Lengow/Sync/controllers/.DS_Store +0 -0
- app/code/community/Lengow/Sync/controllers/Adminhtml/.DS_Store +0 -0
- app/code/community/Lengow/Sync/controllers/Adminhtml/Lengow/OrderController.php +77 -14
- app/code/community/Lengow/Sync/controllers/ApiController.php +7 -18
- app/code/community/Lengow/Sync/etc/config.xml +4 -2
- app/code/community/Lengow/Sync/etc/marketplaces.xml +267 -15
- app/code/community/Lengow/Sync/etc/system.xml +32 -12
- app/code/community/Lengow/Sync/sql/lengow_setup/mysql4-install-2.0.0.0.php +6 -3
- app/code/community/Lengow/Tracker/Block/.DS_Store +0 -0
- app/code/community/Lengow/Tracker/Block/Tag/Capsule.php +18 -4
- app/code/community/Lengow/Tracker/Block/Tag/Simple.php +6 -12
- app/code/community/Lengow/Tracker/etc/.DS_Store +0 -0
- app/code/community/Lengow/Tracker/etc/config.xml +1 -10
- app/code/community/Lengow/Tracker/etc/plugins.xml +5 -5
- app/code/community/Lengow/Tracker/etc/system.xml +3 -3
- app/design/adminhtml/default/default/layout/lengow.xml +1 -0
- app/design/adminhtml/default/default/template/lengow/.DS_Store +0 -0
- app/design/adminhtml/default/default/template/lengow/export/.DS_Store +0 -0
- app/design/adminhtml/default/default/template/lengow/feed/grid.phtml +7 -1
- app/design/adminhtml/default/default/template/lengow/sales/.DS_Store +0 -0
- app/design/frontend/base/default/layout/lengow.xml +8 -4
- app/design/frontend/base/default/template/lengow/tracker/simpletag.phtml +2 -2
- package.xml +5 -5
- skin/adminhtml/default/default/lengow/js/.DS_Store +0 -0
- skin/frontend/base/default/lengow/.DS_Store +0 -0
app/code/community/Lengow/{Export/Block/.DS_Store → .DS_Store}
RENAMED
Binary file
|
app/code/community/Lengow/Dashboard/etc/config.xml
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Lengow_Dashboard>
|
5 |
-
<version>2.0.1.
|
6 |
</Lengow_Dashboard>
|
7 |
</modules>
|
8 |
<admin>
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Lengow_Dashboard>
|
5 |
+
<version>2.0.1.5</version>
|
6 |
</Lengow_Dashboard>
|
7 |
</modules>
|
8 |
<admin>
|
app/code/community/Lengow/{Sync → Export}/.DS_Store
RENAMED
Binary file
|
app/code/community/Lengow/Export/Helper/Data.php
CHANGED
@@ -51,9 +51,10 @@ class Lengow_Export_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
51 |
*
|
52 |
* @param string $value The content
|
53 |
* @param boolean $convert If convert specials chars
|
|
|
54 |
* @return string $value
|
55 |
*/
|
56 |
-
public function cleanData($value, $convert = false) {
|
57 |
if ($convert)
|
58 |
$value = htmlentities($value);
|
59 |
if(is_array($value))
|
@@ -69,8 +70,10 @@ class Lengow_Export_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
69 |
// Reject overly long 3 byte sequences and UTF-16 surrogates and replace with blank
|
70 |
$value = preg_replace('/\xE0[\x80-\x9F][\x80-\xBF]' .
|
71 |
'|\xED[\xA0-\xBF][\x80-\xBF]/S', '', $value);
|
72 |
-
|
73 |
-
|
|
|
|
|
74 |
$value = preg_replace('/[\s]+/', ' ', $value); //nettoyage des espaces multiples
|
75 |
$value = trim($value);
|
76 |
$value = str_replace(' ', ' ', $value);
|
@@ -89,7 +92,14 @@ class Lengow_Export_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
89 |
return $value;
|
90 |
}
|
91 |
|
92 |
-
function
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
93 |
if (!mb_check_encoding($content, 'UTF-8') OR !($content === mb_convert_encoding(mb_convert_encoding($content, 'UTF-32', 'UTF-8'), 'UTF-8', 'UTF-32'))) {
|
94 |
$content = mb_convert_encoding($content, 'UTF-8');
|
95 |
}
|
51 |
*
|
52 |
* @param string $value The content
|
53 |
* @param boolean $convert If convert specials chars
|
54 |
+
* @param boolean $html Keep html
|
55 |
* @return string $value
|
56 |
*/
|
57 |
+
public function cleanData($value, $convert = false, $html = false) {
|
58 |
if ($convert)
|
59 |
$value = htmlentities($value);
|
60 |
if(is_array($value))
|
70 |
// Reject overly long 3 byte sequences and UTF-16 surrogates and replace with blank
|
71 |
$value = preg_replace('/\xE0[\x80-\x9F][\x80-\xBF]' .
|
72 |
'|\xED[\xA0-\xBF][\x80-\xBF]/S', '', $value);
|
73 |
+
if(!$html) {
|
74 |
+
$pattern = '@<[\/\!]*?[^<>]*?>@si'; //nettoyage du code HTML
|
75 |
+
$value = preg_replace($pattern, ' ', $value);
|
76 |
+
}
|
77 |
$value = preg_replace('/[\s]+/', ' ', $value); //nettoyage des espaces multiples
|
78 |
$value = trim($value);
|
79 |
$value = str_replace(' ', ' ', $value);
|
92 |
return $value;
|
93 |
}
|
94 |
|
95 |
+
public function convertHTML($html) {
|
96 |
+
$html = str_replace(array('"', "\r", "\n"),
|
97 |
+
array('"""', '', ''),
|
98 |
+
trim(nl2br($html)));
|
99 |
+
return $html;
|
100 |
+
}
|
101 |
+
|
102 |
+
protected function _convert($content) {
|
103 |
if (!mb_check_encoding($content, 'UTF-8') OR !($content === mb_convert_encoding(mb_convert_encoding($content, 'UTF-32', 'UTF-8'), 'UTF-8', 'UTF-32'))) {
|
104 |
$content = mb_convert_encoding($content, 'UTF-8');
|
105 |
}
|
app/code/community/Lengow/Export/Helper/Security.php
CHANGED
@@ -27,6 +27,9 @@ class Lengow_Export_Helper_Security extends Mage_Core_Helper_Abstract {
|
|
27 |
'95.131.141.169' ,
|
28 |
'95.131.141.170' ,
|
29 |
'95.131.141.171' ,
|
|
|
|
|
|
|
30 |
);
|
31 |
|
32 |
/**
|
27 |
'95.131.141.169' ,
|
28 |
'95.131.141.170' ,
|
29 |
'95.131.141.171' ,
|
30 |
+
'82.127.207.67' ,
|
31 |
+
'80.14.226.127' ,
|
32 |
+
'80.236.15.223' ,
|
33 |
);
|
34 |
|
35 |
/**
|
app/code/community/Lengow/Export/Model/.DS_Store
CHANGED
Binary file
|
app/code/community/Lengow/Export/Model/Catalog/Product.php
CHANGED
@@ -112,11 +112,13 @@ class Lengow_Export_Model_Catalog_Product extends Mage_Catalog_Model_Product {
|
|
112 |
$productAttribute = $attribute->getProductAttribute();
|
113 |
$productAttributeId = $productAttribute->getId();
|
114 |
$attributeValue = $product_instance->getData($productAttribute->getAttributeCode());
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
|
|
|
|
120 |
}
|
121 |
}
|
122 |
}
|
@@ -135,6 +137,26 @@ class Lengow_Export_Model_Catalog_Product extends Mage_Catalog_Model_Product {
|
|
135 |
$product_instance->setTaxPercent(null),
|
136 |
$product_instance->getFinalPrice() + $configurablePrice
|
137 |
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
138 |
} else {
|
139 |
$price_including_tax = Mage::helper('tax')->getPrice(
|
140 |
$product_instance->setTaxPercent(null),
|
@@ -145,9 +167,9 @@ class Lengow_Export_Model_Catalog_Product extends Mage_Catalog_Model_Product {
|
|
145 |
$product_instance->getFinalPrice()
|
146 |
);
|
147 |
}
|
148 |
-
$discount_amount = $price_including_tax - $final_price_including_tax;
|
149 |
-
$data['price-ttc'] = round($final_price_including_tax, 2);
|
150 |
-
$data['price-before-discount'] = round($price_including_tax, 2);
|
151 |
$data['discount-amount'] = $discount_amount > 0 ? round($discount_amount, 2) : '0';
|
152 |
$data['discount-percent'] = $discount_amount > 0 ? round(($discount_amount * 100) / $price_including_tax, 0) : '0';
|
153 |
$data['start-date-discount'] = $product_instance->getSpecialFromDate;
|
@@ -206,7 +228,8 @@ class Lengow_Export_Model_Catalog_Product extends Mage_Catalog_Model_Product {
|
|
206 |
}
|
207 |
$i++;
|
208 |
}
|
209 |
-
$c
|
|
|
210 |
}
|
211 |
$data['category-breadcrumb'] = implode(' > ', $ariane);
|
212 |
unset($categories, $category, $ariane);
|
112 |
$productAttribute = $attribute->getProductAttribute();
|
113 |
$productAttributeId = $productAttribute->getId();
|
114 |
$attributeValue = $product_instance->getData($productAttribute->getAttributeCode());
|
115 |
+
if(count($attribute->getPrices()) > 0) {
|
116 |
+
foreach($attribute->getPrices() as $priceChange) {
|
117 |
+
if (is_array($price) && array_key_exists('value_index', $price) && $price['value_index'] == $attributeValue) {
|
118 |
+
$configurableOldPrice += (float) ( $priceChange['is_percent'] ? ( ( (float) $priceChange['pricing_value'] ) * $price / 100 ) : $priceChange['pricing_value'] );
|
119 |
+
$configurablePrice += (float) ( $priceChange['is_percent'] ? ( ( (float) $priceChange['pricing_value'] ) * $finalPrice / 100 ) : $priceChange['pricing_value'] );
|
120 |
+
}
|
121 |
+
}
|
122 |
}
|
123 |
}
|
124 |
}
|
137 |
$product_instance->setTaxPercent(null),
|
138 |
$product_instance->getFinalPrice() + $configurablePrice
|
139 |
);
|
140 |
+
} else if($product_instance->getTypeId() == 'grouped') {
|
141 |
+
$price = 0;
|
142 |
+
$final_price = 0;
|
143 |
+
$childs = Mage::getModel('catalog/product_type_grouped')->getChildrenIds($product_instance->getId());
|
144 |
+
$childs = $childs[Mage_Catalog_Model_Product_Link::LINK_TYPE_GROUPED];
|
145 |
+
foreach ($childs as $value) {
|
146 |
+
$product = Mage::getModel('export/catalog_product')->load($value);
|
147 |
+
$price += $product->getPrice();
|
148 |
+
$final_price += $product->getFinalPrice();
|
149 |
+
}
|
150 |
+
$price_including_tax = Mage::helper('tax')->getPrice(
|
151 |
+
$product_instance->setTaxPercent(null),
|
152 |
+
$price,
|
153 |
+
true
|
154 |
+
);
|
155 |
+
$final_price_including_tax = Mage::helper('tax')->getPrice(
|
156 |
+
$product_instance->setTaxPercent(null),
|
157 |
+
$final_price,
|
158 |
+
true
|
159 |
+
);
|
160 |
} else {
|
161 |
$price_including_tax = Mage::helper('tax')->getPrice(
|
162 |
$product_instance->setTaxPercent(null),
|
167 |
$product_instance->getFinalPrice()
|
168 |
);
|
169 |
}
|
170 |
+
$discount_amount = Mage::helper('directory')->currencyConvert($price_including_tax, $this->getOriginalCurrency(), $this->getCurrentCurrencyCode()) - Mage::helper('directory')->currencyConvert($final_price_including_tax, $this->getOriginalCurrency(), $this->getCurrentCurrencyCode());
|
171 |
+
$data['price-ttc'] = round(Mage::helper('directory')->currencyConvert($final_price_including_tax, $this->getOriginalCurrency(), $this->getCurrentCurrencyCode()), 2);
|
172 |
+
$data['price-before-discount'] = round(Mage::helper('directory')->currencyConvert($price_including_tax, $this->getOriginalCurrency(), $this->getCurrentCurrencyCode()), 2);
|
173 |
$data['discount-amount'] = $discount_amount > 0 ? round($discount_amount, 2) : '0';
|
174 |
$data['discount-percent'] = $discount_amount > 0 ? round(($discount_amount * 100) / $price_including_tax, 0) : '0';
|
175 |
$data['start-date-discount'] = $product_instance->getSpecialFromDate;
|
228 |
}
|
229 |
$i++;
|
230 |
}
|
231 |
+
if(method_exists($c, 'clearInstance'))
|
232 |
+
$c->clearInstance();
|
233 |
}
|
234 |
$data['category-breadcrumb'] = implode(' > ', $ariane);
|
235 |
unset($categories, $category, $ariane);
|
app/code/community/Lengow/Export/Model/Generate.php
CHANGED
@@ -5,7 +5,7 @@
|
|
5 |
* @category Lengow
|
6 |
* @package Lengow_Export
|
7 |
* @author Ludovic Drin <ludovic@lengow.com>
|
8 |
-
* @copyright 2013 Lengow SAS
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
class Lengow_Export_Model_Generate extends Varien_Object {
|
@@ -30,9 +30,9 @@ class Lengow_Export_Model_Generate extends Varien_Object {
|
|
30 |
|
31 |
protected $_time = null;
|
32 |
|
33 |
-
protected $_excludes = array('media_gallery',
|
34 |
-
'tier_price',
|
35 |
-
'short_description',
|
36 |
'description',
|
37 |
'quantity');
|
38 |
/**
|
@@ -41,13 +41,13 @@ class Lengow_Export_Model_Generate extends Varien_Object {
|
|
41 |
public static $DEFAULT_FIELDS = array('sku' => 'sku' ,
|
42 |
'entity_id' => 'product-id' ,
|
43 |
'parent-id' => 'parent-id' ,
|
44 |
-
'qty' => 'qty' ,
|
45 |
-
'name' => 'name' ,
|
46 |
-
'description' => 'description' ,
|
47 |
-
'short_description' => 'short_description' ,
|
48 |
-
'price-ttc' => 'price-ttc' ,
|
49 |
-
'shipping-name' => 'shipping-name' ,
|
50 |
-
'image-url-1' => 'image-url-1' ,
|
51 |
'product-url' => 'product-url');
|
52 |
|
53 |
/**
|
@@ -75,20 +75,20 @@ class Lengow_Export_Model_Generate extends Varien_Object {
|
|
75 |
* @param varchar $status Status of product to export
|
76 |
* @param boolean $export_child Export child of product
|
77 |
* @param boolean $out_of_stock Export product out of stock
|
78 |
-
*
|
79 |
* @return Mage_Catalog_Model_Product
|
80 |
*/
|
81 |
-
public function exec($id_store,
|
82 |
-
$mode = null,
|
83 |
-
$format = 'csv',
|
84 |
-
$types = null,
|
85 |
-
$status = null,
|
86 |
-
$export_child = null,
|
87 |
-
$out_of_stock = null,
|
88 |
-
$selected_products = null,
|
89 |
-
$stream = null,
|
90 |
-
$limit = null,
|
91 |
-
$offset = null,
|
92 |
$ids_product = null) {
|
93 |
$this->_id_store = $id_store;
|
94 |
$this->_format = $format;
|
@@ -117,15 +117,23 @@ class Lengow_Export_Model_Generate extends Varien_Object {
|
|
117 |
echo date('Y-m-d h:i:s') . ' - Find ' . $total_product . ' products<br />';
|
118 |
flush();
|
119 |
}
|
120 |
-
// Generate data
|
121 |
foreach($products as $p) {
|
122 |
$array_data = array();
|
123 |
$parent = false;
|
124 |
$pi++;
|
125 |
if($total_product < $pi)
|
126 |
$last = true;
|
127 |
-
$product = $this->_product_model
|
128 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
129 |
|
130 |
$data = $product->getData();
|
131 |
// Load first parent if exist
|
@@ -136,9 +144,13 @@ class Lengow_Export_Model_Generate extends Varien_Object {
|
|
136 |
$product_type = 'simple';
|
137 |
$variation_name = '';
|
138 |
if($product_instance->getTypeId() == 'configurable') {
|
139 |
-
$product_type = 'parent';
|
140 |
-
$variations = $product_instance
|
141 |
-
|
|
|
|
|
|
|
|
|
142 |
if($variations) {
|
143 |
foreach ($variations as $variation) {
|
144 |
$variation_name .= $variation['frontend_label'] . ',';
|
@@ -149,15 +161,37 @@ class Lengow_Export_Model_Generate extends Varien_Object {
|
|
149 |
if($product_instance->getTypeId() == 'simple') {
|
150 |
$parents = Mage::getModel('catalog/product_type_configurable')->getParentIdsByChild($p['entity_id']);
|
151 |
if(!empty($parents)) {
|
152 |
-
$parent_instance = Mage::getModel('catalog/product')
|
153 |
-
|
154 |
-
|
155 |
-
->
|
156 |
-
|
157 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
158 |
$parent_id = $parent_instance->getId();
|
159 |
-
$parent = $this->_product_model
|
160 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
161 |
$configurable_instance = $parent_instance;
|
162 |
$variations = $parent_instance->getTypeInstance(true)
|
163 |
->getConfigurableAttributesAsArray($parent_instance);
|
@@ -180,8 +214,16 @@ class Lengow_Export_Model_Generate extends Varien_Object {
|
|
180 |
->getFirstItem();
|
181 |
if($parent_instance && $parent_instance->getId()) {
|
182 |
//$parent_id = $parent_instance->getId();
|
183 |
-
$parent = $this->_product_model
|
184 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
185 |
}
|
186 |
}
|
187 |
$qty = $product_instance->getData('stock_item');
|
@@ -201,16 +243,16 @@ class Lengow_Export_Model_Generate extends Varien_Object {
|
|
201 |
$array_data = array_merge($array_data, $product->getImages($data['media_gallery']['images']));
|
202 |
$array_data['name'] = $product_instance->getName();
|
203 |
if($product_instance->getVisibility() == Mage_Catalog_Model_Product_Visibility::VISIBILITY_NOT_VISIBLE && isset($parent_instance)) {
|
204 |
-
$array_data['product-url'] = $parent_instance->getUrlInStore() ? $parent_instance->getUrlInStore() : $parent_instance->getProductUrl();
|
205 |
$array_data['name'] = $parent_instance->getName();
|
206 |
-
$array_data['description'] = $this->_helper->cleanData($parent_instance->getDescription());
|
207 |
-
$array_data['short_description'] = $this->_helper->cleanData($parent_instance->getShortDescription());
|
208 |
} else {
|
209 |
-
$array_data['product-url'] = $product_instance->getUrlInStore() ? $product_instance->getUrlInStore() : $product_instance->getProductUrl();
|
210 |
-
$array_data['description'] = $this->_helper->cleanData($product_instance->getDescription());
|
211 |
-
$array_data['short_description'] = $this->_helper->cleanData($product_instance->getShortDescription());
|
212 |
}
|
213 |
-
$array_data['parent_id'] = $parent_id;
|
214 |
// Product variation
|
215 |
$array_data['product_type'] = $product_type;
|
216 |
$array_data['product_variation'] = $variation_name;
|
@@ -220,8 +262,10 @@ class Lengow_Export_Model_Generate extends Varien_Object {
|
|
220 |
if(!empty($attributes_to_export)) {
|
221 |
foreach($attributes_to_export as $field => $attr) {
|
222 |
if(!in_array($field, $this->_excludes) && !isset($array_data[$field])) {
|
223 |
-
if($product_instance->getData($field) === null)
|
224 |
$array_data[$attr] = '';
|
|
|
|
|
225 |
else if($this->_config_model->get('performances/formatdata'))
|
226 |
$array_data[$attr] = $this->_helper->cleanData($product_instance->getResource()->getAttribute($field)->getFrontend()->getValue($product_instance), true);
|
227 |
else
|
@@ -242,19 +286,21 @@ class Lengow_Export_Model_Generate extends Varien_Object {
|
|
242 |
$this->_write($feed->makeHeader());
|
243 |
$first = false;
|
244 |
}
|
245 |
-
$this->_write($feed->makeData($array_data, array('last' => $last)));
|
246 |
if(!$this->_stream) {
|
247 |
-
if($pi % 20 == 0)
|
248 |
echo date('Y-m-d h:i:s') .' - Export ' . $pi . ' products<br />';
|
249 |
flush();
|
250 |
}
|
251 |
// Fix Sébastien Ledan
|
252 |
-
$product
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
|
|
|
|
258 |
unset($array_data);
|
259 |
}
|
260 |
$this->_write($feed->makeFooter());
|
@@ -267,12 +313,12 @@ class Lengow_Export_Model_Generate extends Varien_Object {
|
|
267 |
}
|
268 |
}
|
269 |
|
270 |
-
protected function _getProductsCollection($types = null,
|
271 |
-
$status = null,
|
272 |
-
$export_child = null,
|
273 |
-
$out_of_stock = null,
|
274 |
-
$selected_products = null,
|
275 |
-
$limit = null,
|
276 |
$offset = null,
|
277 |
$ids_product = null) {
|
278 |
// Filter types
|
@@ -289,7 +335,8 @@ class Lengow_Export_Model_Generate extends Varien_Object {
|
|
289 |
->getCollection()
|
290 |
->addAttributeToSelect('sku')
|
291 |
->addStoreFilter($this->_id_store)
|
292 |
-
->addAttributeToFilter('type_id', array('in' => $_types))
|
|
|
293 |
// Filter status
|
294 |
if(is_null($status))
|
295 |
$status = $this->_config_model->get('global/productstatus');
|
@@ -298,7 +345,7 @@ class Lengow_Export_Model_Generate extends Varien_Object {
|
|
298 |
else if($status == Mage_Catalog_Model_Product_Status::STATUS_DISABLED)
|
299 |
$products->addAttributeToFilter('status', array('eq' => Mage_Catalog_Model_Product_Status::STATUS_DISABLED));
|
300 |
// Export only selected products
|
301 |
-
if($selected_products) {
|
302 |
$products->addAttributeToFilter('lengow_product', 1);
|
303 |
}
|
304 |
// Filter out of stock
|
@@ -310,7 +357,7 @@ class Lengow_Export_Model_Generate extends Varien_Object {
|
|
310 |
$ids_product = explode(',', $ids_product);
|
311 |
$products->addAttributeToFilter('entity_id', array('in' => $ids_product));
|
312 |
}
|
313 |
-
// Limit & Offset
|
314 |
if($limit) {
|
315 |
if($offset)
|
316 |
$products->getSelect()->limit($limit, $offset);
|
@@ -338,7 +385,7 @@ class Lengow_Export_Model_Generate extends Varien_Object {
|
|
338 |
return $sql;
|
339 |
}
|
340 |
}
|
341 |
-
|
342 |
/**
|
343 |
* Return attributes to export
|
344 |
*/
|
@@ -359,16 +406,16 @@ class Lengow_Export_Model_Generate extends Varien_Object {
|
|
359 |
foreach ($attributes as $key=>$code) {
|
360 |
$attribute = $product->getResource()->getAttribute($code);
|
361 |
if($attribute instanceof Mage_Catalog_Model_Resource_Eav_Attribute && $attribute->getId() && $attribute->getFrontendInput() != 'weee') {
|
362 |
-
$attributes[$key] = $code;
|
363 |
}
|
364 |
}
|
365 |
-
}
|
366 |
return $attributes;
|
367 |
}
|
368 |
|
369 |
/**
|
370 |
* File generation
|
371 |
-
*/
|
372 |
|
373 |
protected function _write($data) {
|
374 |
if($this->_stream == false) {
|
5 |
* @category Lengow
|
6 |
* @package Lengow_Export
|
7 |
* @author Ludovic Drin <ludovic@lengow.com>
|
8 |
+
* @copyright 2013 Lengow SAS
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
class Lengow_Export_Model_Generate extends Varien_Object {
|
30 |
|
31 |
protected $_time = null;
|
32 |
|
33 |
+
protected $_excludes = array('media_gallery',
|
34 |
+
'tier_price',
|
35 |
+
'short_description',
|
36 |
'description',
|
37 |
'quantity');
|
38 |
/**
|
41 |
public static $DEFAULT_FIELDS = array('sku' => 'sku' ,
|
42 |
'entity_id' => 'product-id' ,
|
43 |
'parent-id' => 'parent-id' ,
|
44 |
+
'qty' => 'qty' ,
|
45 |
+
'name' => 'name' ,
|
46 |
+
'description' => 'description' ,
|
47 |
+
'short_description' => 'short_description' ,
|
48 |
+
'price-ttc' => 'price-ttc' ,
|
49 |
+
'shipping-name' => 'shipping-name' ,
|
50 |
+
'image-url-1' => 'image-url-1' ,
|
51 |
'product-url' => 'product-url');
|
52 |
|
53 |
/**
|
75 |
* @param varchar $status Status of product to export
|
76 |
* @param boolean $export_child Export child of product
|
77 |
* @param boolean $out_of_stock Export product out of stock
|
78 |
+
*
|
79 |
* @return Mage_Catalog_Model_Product
|
80 |
*/
|
81 |
+
public function exec($id_store,
|
82 |
+
$mode = null,
|
83 |
+
$format = 'csv',
|
84 |
+
$types = null,
|
85 |
+
$status = null,
|
86 |
+
$export_child = null,
|
87 |
+
$out_of_stock = null,
|
88 |
+
$selected_products = null,
|
89 |
+
$stream = null,
|
90 |
+
$limit = null,
|
91 |
+
$offset = null,
|
92 |
$ids_product = null) {
|
93 |
$this->_id_store = $id_store;
|
94 |
$this->_format = $format;
|
117 |
echo date('Y-m-d h:i:s') . ' - Find ' . $total_product . ' products<br />';
|
118 |
flush();
|
119 |
}
|
120 |
+
// Generate data
|
121 |
foreach($products as $p) {
|
122 |
$array_data = array();
|
123 |
$parent = false;
|
124 |
$pi++;
|
125 |
if($total_product < $pi)
|
126 |
$last = true;
|
127 |
+
$product = $this->_product_model
|
128 |
+
->setStoreId($this->_id_store)
|
129 |
+
->setOriginalCurrency($this->getOriginalCurrency())
|
130 |
+
->setCurrentCurrencyCode($this->getCurrentCurrencyCode())
|
131 |
+
->load($p['entity_id']);
|
132 |
+
$product_instance = Mage::getModel('catalog/product')
|
133 |
+
->setOriginalCurrency($this->getOriginalCurrency())
|
134 |
+
->setCurrentCurrencyCode($this->getCurrentCurrencyCode())
|
135 |
+
->setStoreId($this->_id_store)
|
136 |
+
->load($p['entity_id']);
|
137 |
|
138 |
$data = $product->getData();
|
139 |
// Load first parent if exist
|
144 |
$product_type = 'simple';
|
145 |
$variation_name = '';
|
146 |
if($product_instance->getTypeId() == 'configurable') {
|
147 |
+
$product_type = 'parent';
|
148 |
+
$variations = $product_instance
|
149 |
+
->setOriginalCurrency($this->getOriginalCurrency())
|
150 |
+
->setCurrentCurrencyCode($this->getCurrentCurrencyCode())
|
151 |
+
->setStoreId($this->_id_store)
|
152 |
+
->getTypeInstance(true)
|
153 |
+
->getConfigurableAttributesAsArray($product_instance);
|
154 |
if($variations) {
|
155 |
foreach ($variations as $variation) {
|
156 |
$variation_name .= $variation['frontend_label'] . ',';
|
161 |
if($product_instance->getTypeId() == 'simple') {
|
162 |
$parents = Mage::getModel('catalog/product_type_configurable')->getParentIdsByChild($p['entity_id']);
|
163 |
if(!empty($parents)) {
|
164 |
+
$parent_instance = Mage::getModel('catalog/product')->load($parents[0]);
|
165 |
+
// Exclude if parent is disabled
|
166 |
+
if(($parent_instance && $parent_instance->getStatus() == Mage_Catalog_Model_Product_Status::STATUS_DISABLED) || $product->getStatus() == Mage_Catalog_Model_Product_Status::STATUS_DISABLED) {
|
167 |
+
if(!$this->_stream) {
|
168 |
+
if($pi % 20 == 0)
|
169 |
+
echo date('Y-m-d h:i:s') .' - Export ' . $pi . ' products<br />';
|
170 |
+
flush();
|
171 |
+
}
|
172 |
+
if(method_exists($product, 'clearInstance')) {
|
173 |
+
$product->clearInstance();
|
174 |
+
if($parent != null)
|
175 |
+
$parent->clearInstance();
|
176 |
+
if($parent_instance != null)
|
177 |
+
$parent_instance->clearInstance();
|
178 |
+
}
|
179 |
+
|
180 |
+
unset($array_data);
|
181 |
+
continue;
|
182 |
+
}
|
183 |
+
if($parent_instance && $parent_instance->getId() && $parent_instance->getTypeId() == 'configurable') {
|
184 |
$parent_id = $parent_instance->getId();
|
185 |
+
$parent = $this->_product_model
|
186 |
+
->setOriginalCurrency($this->getOriginalCurrency())
|
187 |
+
->setCurrentCurrencyCode($this->getCurrentCurrencyCode())
|
188 |
+
->setStoreId($this->_id_store)
|
189 |
+
->load($parent_id);
|
190 |
+
$parent_instance = Mage::getModel('catalog/product')
|
191 |
+
->setOriginalCurrency($this->getOriginalCurrency())
|
192 |
+
->setCurrentCurrencyCode($this->getCurrentCurrencyCode())
|
193 |
+
->setStoreId($this->_id_store)
|
194 |
+
->load($parent_id);
|
195 |
$configurable_instance = $parent_instance;
|
196 |
$variations = $parent_instance->getTypeInstance(true)
|
197 |
->getConfigurableAttributesAsArray($parent_instance);
|
214 |
->getFirstItem();
|
215 |
if($parent_instance && $parent_instance->getId()) {
|
216 |
//$parent_id = $parent_instance->getId();
|
217 |
+
$parent = $this->_product_model
|
218 |
+
->setOriginalCurrency($this->getOriginalCurrency())
|
219 |
+
->setCurrentCurrencyCode($this->getCurrentCurrencyCode())
|
220 |
+
->setStoreId($this->_id_store)
|
221 |
+
->load($parent_id);
|
222 |
+
$parent_instance = Mage::getModel('catalog/product')
|
223 |
+
->setOriginalCurrency($this->getOriginalCurrency())
|
224 |
+
->setCurrentCurrencyCode($this->getCurrentCurrencyCode())
|
225 |
+
->setStoreId($this->_id_store)
|
226 |
+
->load($parent_id);
|
227 |
}
|
228 |
}
|
229 |
$qty = $product_instance->getData('stock_item');
|
243 |
$array_data = array_merge($array_data, $product->getImages($data['media_gallery']['images']));
|
244 |
$array_data['name'] = $product_instance->getName();
|
245 |
if($product_instance->getVisibility() == Mage_Catalog_Model_Product_Visibility::VISIBILITY_NOT_VISIBLE && isset($parent_instance)) {
|
246 |
+
$array_data['product-url'] = $parent_instance->getUrlInStore() ? $parent_instance->getUrlInStore() : $parent_instance->getProductUrl();
|
247 |
$array_data['name'] = $parent_instance->getName();
|
248 |
+
$array_data['description'] = $this->_helper->cleanData($parent_instance->getDescription(), false, $this->_config_model->get('data/keephtml'));
|
249 |
+
$array_data['short_description'] = $this->_helper->cleanData($parent_instance->getShortDescription(), false, $this->_config_model->get('data/keephtml'));
|
250 |
} else {
|
251 |
+
$array_data['product-url'] = $product_instance->getUrlInStore() ? $product_instance->getUrlInStore() : $product_instance->getProductUrl();
|
252 |
+
$array_data['description'] = $this->_helper->cleanData($product_instance->getDescription(), false, $this->_config_model->get('data/keephtml'));
|
253 |
+
$array_data['short_description'] = $this->_helper->cleanData($product_instance->getShortDescription(), false, $this->_config_model->get('data/keephtml'));
|
254 |
}
|
255 |
+
$array_data['parent_id'] = $parent_id;
|
256 |
// Product variation
|
257 |
$array_data['product_type'] = $product_type;
|
258 |
$array_data['product_variation'] = $variation_name;
|
262 |
if(!empty($attributes_to_export)) {
|
263 |
foreach($attributes_to_export as $field => $attr) {
|
264 |
if(!in_array($field, $this->_excludes) && !isset($array_data[$field])) {
|
265 |
+
if($product_instance->getData($field) === null)
|
266 |
$array_data[$attr] = '';
|
267 |
+
else if(is_array($product_instance->getData($field)))
|
268 |
+
$array_data[$attr] = implode(',', $product_instance->getData($field));
|
269 |
else if($this->_config_model->get('performances/formatdata'))
|
270 |
$array_data[$attr] = $this->_helper->cleanData($product_instance->getResource()->getAttribute($field)->getFrontend()->getValue($product_instance), true);
|
271 |
else
|
286 |
$this->_write($feed->makeHeader());
|
287 |
$first = false;
|
288 |
}
|
289 |
+
$this->_write($feed->makeData($array_data, array('last' => $last)));
|
290 |
if(!$this->_stream) {
|
291 |
+
if($pi % 20 == 0)
|
292 |
echo date('Y-m-d h:i:s') .' - Export ' . $pi . ' products<br />';
|
293 |
flush();
|
294 |
}
|
295 |
// Fix Sébastien Ledan
|
296 |
+
if(method_exists($product, 'clearInstance')) {
|
297 |
+
$product->clearInstance();
|
298 |
+
$product_instance->clearInstance();
|
299 |
+
if($parent != null)
|
300 |
+
$parent->clearInstance();
|
301 |
+
if($parent_instance != null)
|
302 |
+
$parent_instance->clearInstance();
|
303 |
+
}
|
304 |
unset($array_data);
|
305 |
}
|
306 |
$this->_write($feed->makeFooter());
|
313 |
}
|
314 |
}
|
315 |
|
316 |
+
protected function _getProductsCollection($types = null,
|
317 |
+
$status = null,
|
318 |
+
$export_child = null,
|
319 |
+
$out_of_stock = null,
|
320 |
+
$selected_products = null,
|
321 |
+
$limit = null,
|
322 |
$offset = null,
|
323 |
$ids_product = null) {
|
324 |
// Filter types
|
335 |
->getCollection()
|
336 |
->addAttributeToSelect('sku')
|
337 |
->addStoreFilter($this->_id_store)
|
338 |
+
->addAttributeToFilter('type_id', array('in' => $_types))
|
339 |
+
->joinField('store_id', Mage::getConfig()->getTablePrefix() . 'catalog_category_product_index', 'store_id', 'product_id=entity_id', '{{table}}.store_id = '.$this->_id_store, 'left');
|
340 |
// Filter status
|
341 |
if(is_null($status))
|
342 |
$status = $this->_config_model->get('global/productstatus');
|
345 |
else if($status == Mage_Catalog_Model_Product_Status::STATUS_DISABLED)
|
346 |
$products->addAttributeToFilter('status', array('eq' => Mage_Catalog_Model_Product_Status::STATUS_DISABLED));
|
347 |
// Export only selected products
|
348 |
+
if($selected_products) {
|
349 |
$products->addAttributeToFilter('lengow_product', 1);
|
350 |
}
|
351 |
// Filter out of stock
|
357 |
$ids_product = explode(',', $ids_product);
|
358 |
$products->addAttributeToFilter('entity_id', array('in' => $ids_product));
|
359 |
}
|
360 |
+
// Limit & Offset
|
361 |
if($limit) {
|
362 |
if($offset)
|
363 |
$products->getSelect()->limit($limit, $offset);
|
385 |
return $sql;
|
386 |
}
|
387 |
}
|
388 |
+
|
389 |
/**
|
390 |
* Return attributes to export
|
391 |
*/
|
406 |
foreach ($attributes as $key=>$code) {
|
407 |
$attribute = $product->getResource()->getAttribute($code);
|
408 |
if($attribute instanceof Mage_Catalog_Model_Resource_Eav_Attribute && $attribute->getId() && $attribute->getFrontendInput() != 'weee') {
|
409 |
+
$attributes[$key] = $code;
|
410 |
}
|
411 |
}
|
412 |
+
}
|
413 |
return $attributes;
|
414 |
}
|
415 |
|
416 |
/**
|
417 |
* File generation
|
418 |
+
*/
|
419 |
|
420 |
protected function _write($data) {
|
421 |
if($this->_stream == false) {
|
app/code/community/Lengow/Export/Model/Observer.php
CHANGED
@@ -17,7 +17,7 @@ class Lengow_Export_Model_Observer {
|
|
17 |
foreach($store_collection as $store) {
|
18 |
try {
|
19 |
if(Mage::getStoreConfig('export/performances/active_cron', $store)) {
|
20 |
-
$generate = Mage::
|
21 |
$format =Mage::getStoreConfig('export/data/format', $store);
|
22 |
$generate->exec($store->getId(), null, $format, null, null, null, null, null, false, false);
|
23 |
}
|
17 |
foreach($store_collection as $store) {
|
18 |
try {
|
19 |
if(Mage::getStoreConfig('export/performances/active_cron', $store)) {
|
20 |
+
$generate = Mage::getModel('export/generate');
|
21 |
$format =Mage::getStoreConfig('export/data/format', $store);
|
22 |
$generate->exec($store->getId(), null, $format, null, null, null, null, null, false, false);
|
23 |
}
|
app/code/community/Lengow/Export/Model/Source/.DS_Store
DELETED
Binary file
|
app/code/community/Lengow/Export/controllers/.DS_Store
DELETED
Binary file
|
app/code/community/Lengow/Export/controllers/Adminhtml/.DS_Store
DELETED
Binary file
|
app/code/community/Lengow/Export/controllers/Adminhtml/Lengow/ExportController.php
CHANGED
@@ -5,17 +5,17 @@
|
|
5 |
* @category Lengow
|
6 |
* @package Lengow_Export
|
7 |
* @author Ludovic Drin <ludovic@lengow.com>
|
8 |
-
* @copyright 2013 Lengow SAS
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
class Lengow_Export_Adminhtml_Lengow_ExportController extends Mage_Adminhtml_Controller_Action {
|
12 |
-
|
13 |
public function indexAction() {
|
14 |
$this->loadLayout();
|
15 |
-
$this->renderLayout();
|
16 |
return $this;
|
17 |
}
|
18 |
-
|
19 |
/**
|
20 |
* Product grid for AJAX request
|
21 |
*/
|
@@ -25,7 +25,7 @@ class Lengow_Export_Adminhtml_Lengow_ExportController extends Mage_Adminhtml_Con
|
|
25 |
$this->getLayout()->createBlock('export/adminhtml_product_grid')->toHtml()
|
26 |
);
|
27 |
}
|
28 |
-
|
29 |
public function massPublishAction() {
|
30 |
$_product_ids = (array) $this->getRequest()->getParam('product');
|
31 |
$_store_id = (int)$this->getRequest()->getParam('store', 0);
|
@@ -40,7 +40,7 @@ class Lengow_Export_Adminhtml_Lengow_ExportController extends Mage_Adminhtml_Con
|
|
40 |
'store_id' => $_store_id,
|
41 |
'lengow_product' => $_publish));
|
42 |
$resource->saveAttribute($product,'lengow_product');
|
43 |
-
|
44 |
}
|
45 |
$this->_getSession()->addSuccess(
|
46 |
Mage::helper('export')->__('Total of %d record(s) were successfully updated', count($_product_ids))
|
@@ -55,10 +55,10 @@ class Lengow_Export_Adminhtml_Lengow_ExportController extends Mage_Adminhtml_Con
|
|
55 |
|
56 |
$this->_redirect('*/*/', array('store'=> $_store_id));
|
57 |
}
|
58 |
-
|
59 |
|
60 |
protected function _getSession() {
|
61 |
return Mage::getSingleton('adminhtml/session');
|
62 |
}
|
63 |
-
|
64 |
}
|
5 |
* @category Lengow
|
6 |
* @package Lengow_Export
|
7 |
* @author Ludovic Drin <ludovic@lengow.com>
|
8 |
+
* @copyright 2013 Lengow SAS
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
class Lengow_Export_Adminhtml_Lengow_ExportController extends Mage_Adminhtml_Controller_Action {
|
12 |
+
|
13 |
public function indexAction() {
|
14 |
$this->loadLayout();
|
15 |
+
$this->renderLayout();
|
16 |
return $this;
|
17 |
}
|
18 |
+
|
19 |
/**
|
20 |
* Product grid for AJAX request
|
21 |
*/
|
25 |
$this->getLayout()->createBlock('export/adminhtml_product_grid')->toHtml()
|
26 |
);
|
27 |
}
|
28 |
+
|
29 |
public function massPublishAction() {
|
30 |
$_product_ids = (array) $this->getRequest()->getParam('product');
|
31 |
$_store_id = (int)$this->getRequest()->getParam('store', 0);
|
40 |
'store_id' => $_store_id,
|
41 |
'lengow_product' => $_publish));
|
42 |
$resource->saveAttribute($product,'lengow_product');
|
43 |
+
|
44 |
}
|
45 |
$this->_getSession()->addSuccess(
|
46 |
Mage::helper('export')->__('Total of %d record(s) were successfully updated', count($_product_ids))
|
55 |
|
56 |
$this->_redirect('*/*/', array('store'=> $_store_id));
|
57 |
}
|
58 |
+
|
59 |
|
60 |
protected function _getSession() {
|
61 |
return Mage::getSingleton('adminhtml/session');
|
62 |
}
|
63 |
+
|
64 |
}
|
app/code/community/Lengow/Export/controllers/FeedController.php
CHANGED
@@ -25,8 +25,13 @@ class Lengow_Export_FeedController extends Mage_Core_Controller_Front_Action {
|
|
25 |
}
|
26 |
$generate = Mage::getSingleton('export/generate');
|
27 |
$generate->setCurrentStore(Mage::app()->getStore()->getId());
|
|
|
|
|
|
|
|
|
|
|
28 |
$id_store = (integer) $this->getRequest()->getParam('store', Mage::app()->getStore()->getId());
|
29 |
-
Mage::app()->setCurrentStore($id_store);
|
30 |
$format = (string) $this->getRequest()->getParam('format', 'csv');
|
31 |
$types = $this->getRequest()->getParam('product_type', null);
|
32 |
$export_child = $this->getRequest()->getParam('export_child', null);
|
@@ -45,6 +50,9 @@ class Lengow_Export_FeedController extends Mage_Core_Controller_Front_Action {
|
|
45 |
// translation now works
|
46 |
Mage::app()->getTranslator()->init('frontend', true);
|
47 |
}
|
|
|
|
|
|
|
48 |
$generate->exec($id_store, $mode, $format, $types, $status, $export_child, $out_of_stock, $selected_products, $stream, $limit, $offset, $ids_product);
|
49 |
} else {
|
50 |
echo Mage::helper('export')->__('Unauthorised IP : %s', $_SERVER['REMOTE_ADDR']);
|
25 |
}
|
26 |
$generate = Mage::getSingleton('export/generate');
|
27 |
$generate->setCurrentStore(Mage::app()->getStore()->getId());
|
28 |
+
$_default_store = Mage::getModel('core/store')->load(Mage::app()
|
29 |
+
->getWebsite(true)
|
30 |
+
->getDefaultGroup()
|
31 |
+
->getDefaultStoreId());
|
32 |
+
$generate->setOriginalCurrency($_default_store->getCurrentCurrencyCode());
|
33 |
$id_store = (integer) $this->getRequest()->getParam('store', Mage::app()->getStore()->getId());
|
34 |
+
Mage::app()->getStore()->setCurrentStore($id_store);
|
35 |
$format = (string) $this->getRequest()->getParam('format', 'csv');
|
36 |
$types = $this->getRequest()->getParam('product_type', null);
|
37 |
$export_child = $this->getRequest()->getParam('export_child', null);
|
50 |
// translation now works
|
51 |
Mage::app()->getTranslator()->init('frontend', true);
|
52 |
}
|
53 |
+
if($currency = $this->getRequest()->getParam('currency', null)) {
|
54 |
+
$generate->setCurrentCurrencyCode($currency);
|
55 |
+
}
|
56 |
$generate->exec($id_store, $mode, $format, $types, $status, $export_child, $out_of_stock, $selected_products, $stream, $limit, $offset, $ids_product);
|
57 |
} else {
|
58 |
echo Mage::helper('export')->__('Unauthorised IP : %s', $_SERVER['REMOTE_ADDR']);
|
app/code/community/Lengow/Export/etc/config.xml
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Lengow_Export>
|
5 |
-
<version>2.0.1.
|
6 |
</Lengow_Export>
|
7 |
</modules>
|
8 |
<admin>
|
@@ -77,7 +77,7 @@
|
|
77 |
</catalog_product_new_action>
|
78 |
</events>
|
79 |
</global>
|
80 |
-
|
81 |
<routers>
|
82 |
<lengow>
|
83 |
<use>standard</use>
|
@@ -87,14 +87,7 @@
|
|
87 |
</args>
|
88 |
</lengow>
|
89 |
</routers>
|
90 |
-
|
91 |
-
<updates>
|
92 |
-
<export>
|
93 |
-
<file>lengow.xml</file>
|
94 |
-
</export>
|
95 |
-
</updates>
|
96 |
-
</layout>
|
97 |
-
</frontend>-->
|
98 |
<adminhtml>
|
99 |
<translate>
|
100 |
<modules>
|
@@ -174,6 +167,7 @@
|
|
174 |
<formatdata>0</formatdata>
|
175 |
<levelcategory>5</levelcategory>
|
176 |
<count_images>5</count_images>
|
|
|
177 |
</data>
|
178 |
<performances>
|
179 |
<usesavefile>0</usesavefile>
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Lengow_Export>
|
5 |
+
<version>2.0.1.5</version>
|
6 |
</Lengow_Export>
|
7 |
</modules>
|
8 |
<admin>
|
77 |
</catalog_product_new_action>
|
78 |
</events>
|
79 |
</global>
|
80 |
+
<frontend>
|
81 |
<routers>
|
82 |
<lengow>
|
83 |
<use>standard</use>
|
87 |
</args>
|
88 |
</lengow>
|
89 |
</routers>
|
90 |
+
</frontend>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
91 |
<adminhtml>
|
92 |
<translate>
|
93 |
<modules>
|
167 |
<formatdata>0</formatdata>
|
168 |
<levelcategory>5</levelcategory>
|
169 |
<count_images>5</count_images>
|
170 |
+
<keephtml>0</keephtml>
|
171 |
</data>
|
172 |
<performances>
|
173 |
<usesavefile>0</usesavefile>
|
app/code/community/Lengow/Export/etc/system.xml
CHANGED
@@ -132,6 +132,16 @@
|
|
132 |
<show_in_store>1</show_in_store>
|
133 |
<source_model>adminhtml/system_config_source_yesno</source_model>
|
134 |
</formatdata>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
135 |
<shipping_price_based_on>
|
136 |
<label>Country shipping</label>
|
137 |
<comment>Default country for shipping cost</comment>
|
132 |
<show_in_store>1</show_in_store>
|
133 |
<source_model>adminhtml/system_config_source_yesno</source_model>
|
134 |
</formatdata>
|
135 |
+
<keephtml>
|
136 |
+
<label>Keep html</label>
|
137 |
+
<comment><![CDATA[Keep html chars in descrption]]></comment>
|
138 |
+
<frontend_type>select</frontend_type>
|
139 |
+
<sort_order>20</sort_order>
|
140 |
+
<show_in_default>1</show_in_default>
|
141 |
+
<show_in_website>1</show_in_website>
|
142 |
+
<show_in_store>1</show_in_store>
|
143 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
144 |
+
</keephtml>
|
145 |
<shipping_price_based_on>
|
146 |
<label>Country shipping</label>
|
147 |
<comment>Default country for shipping cost</comment>
|
app/code/community/Lengow/Feed/Block/Adminhtml/Feed/Grid.php
CHANGED
@@ -27,9 +27,25 @@ class Lengow_Feed_Block_Adminhtml_Feed_Grid extends Mage_Adminhtml_Block_Widget_
|
|
27 |
|
28 |
// Set datas
|
29 |
$this->setData('id_client', $this->_config_model->get('tracker/general/login'));
|
30 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
31 |
$this->setData('api_key', $this->_config_model->get('tracker/general/api_key'));
|
32 |
-
$
|
|
|
|
|
|
|
33 |
$this->setData('json_feed', $this->_config_model->get('feed/general/json_feed'));
|
34 |
|
35 |
}
|
@@ -38,6 +54,7 @@ class Lengow_Feed_Block_Adminhtml_Feed_Grid extends Mage_Adminhtml_Block_Widget_
|
|
38 |
$storeId = (int) $this->getRequest()->getParam('store', 0);
|
39 |
return Mage::app()->getStore($storeId);
|
40 |
}
|
|
|
41 |
|
42 |
protected function _prepareCollection() {
|
43 |
$connector = Mage::helper('feed/data')->getConnector($this->getData('id_client'), $this->getData('api_key'));
|
@@ -64,7 +81,7 @@ class Lengow_Feed_Block_Adminhtml_Feed_Grid extends Mage_Adminhtml_Block_Widget_
|
|
64 |
$obj_feed->setData('product_out_stock', $data_feeds->{$key}->product_out_stock);
|
65 |
$obj_feed->setData('product_type', $data_feeds->{$key}->product_type);
|
66 |
$obj_feed->setData('product_status', $data_feeds->{$key}->product_status);
|
67 |
-
$obj_feed->setData('product_child', $data_feeds->{$key}->product_child);
|
68 |
$obj_feed->setData('format', $data_feeds->{$key}->format);
|
69 |
} else {
|
70 |
// Apply default parameters
|
@@ -107,7 +124,7 @@ class Lengow_Feed_Block_Adminhtml_Feed_Grid extends Mage_Adminhtml_Block_Widget_
|
|
107 |
'sortable' => false,
|
108 |
));
|
109 |
$this->addColumn('url', array(
|
110 |
-
'header' => Mage::helper('feed')->__('
|
111 |
'index' => 'url',
|
112 |
'width' => '100px',
|
113 |
'filter' => false,
|
@@ -170,7 +187,7 @@ class Lengow_Feed_Block_Adminhtml_Feed_Grid extends Mage_Adminhtml_Block_Widget_
|
|
170 |
'renderer' => 'feed/adminhtml_feed_renderer_select',
|
171 |
));*/
|
172 |
$this->addColumn('format', array(
|
173 |
-
'header' => Mage::helper('feed')->__('
|
174 |
'index' => 'format',
|
175 |
'width' => '50px',
|
176 |
'options' => Mage::getModel('export/system_config_source_format')->toSelectArray(),
|
@@ -200,5 +217,10 @@ class Lengow_Feed_Block_Adminhtml_Feed_Grid extends Mage_Adminhtml_Block_Widget_
|
|
200 |
|
201 |
public function getRowUrl($row) {
|
202 |
return '';
|
|
|
|
|
|
|
|
|
|
|
203 |
}
|
204 |
}
|
27 |
|
28 |
// Set datas
|
29 |
$this->setData('id_client', $this->_config_model->get('tracker/general/login'));
|
30 |
+
$_lengow_ids_group = array();
|
31 |
+
$_store_id = $this->getRequest()->getParam('store');
|
32 |
+
/*if(!$_store_id) {
|
33 |
+
$store_collection = Mage::getResourceModel('core/store_collection')
|
34 |
+
->addFieldToFilter('is_active', 1);
|
35 |
+
foreach($store_collection as $store) {
|
36 |
+
if(Mage::getModel('sync/config')->setStore($store->getId())->getConfig('tracker/general/group'))
|
37 |
+
$_lengow_ids_group = array_merge($this->_getGroups(Mage::getModel('sync/config')->setStore($store->getId())->getConfig('tracker/general/group')), $_lengow_ids_group);
|
38 |
+
}
|
39 |
+
$_group = implode(',', $_lengow_ids_group);
|
40 |
+
} else {*/
|
41 |
+
$_group = Mage::getModel('sync/config')->setStore($_store_id)->getConfig('tracker/general/group');
|
42 |
+
//}
|
43 |
+
$this->setData('id_group', $_group);
|
44 |
$this->setData('api_key', $this->_config_model->get('tracker/general/api_key'));
|
45 |
+
$args = array();
|
46 |
+
if(!empty($_store_id))
|
47 |
+
$args['store'] = $_store_id;
|
48 |
+
$this->setData('form_url', $this->getUrl('*/*/migrate', $args));
|
49 |
$this->setData('json_feed', $this->_config_model->get('feed/general/json_feed'));
|
50 |
|
51 |
}
|
54 |
$storeId = (int) $this->getRequest()->getParam('store', 0);
|
55 |
return Mage::app()->getStore($storeId);
|
56 |
}
|
57 |
+
|
58 |
|
59 |
protected function _prepareCollection() {
|
60 |
$connector = Mage::helper('feed/data')->getConnector($this->getData('id_client'), $this->getData('api_key'));
|
81 |
$obj_feed->setData('product_out_stock', $data_feeds->{$key}->product_out_stock);
|
82 |
$obj_feed->setData('product_type', $data_feeds->{$key}->product_type);
|
83 |
$obj_feed->setData('product_status', $data_feeds->{$key}->product_status);
|
84 |
+
$obj_feed->setData('product_child', (!empty($data_feeds->{$key}->product_child) ? $data_feeds->{$key}->product_child : ''));
|
85 |
$obj_feed->setData('format', $data_feeds->{$key}->format);
|
86 |
} else {
|
87 |
// Apply default parameters
|
124 |
'sortable' => false,
|
125 |
));
|
126 |
$this->addColumn('url', array(
|
127 |
+
'header' => Mage::helper('feed')->__('Current Feed'),
|
128 |
'index' => 'url',
|
129 |
'width' => '100px',
|
130 |
'filter' => false,
|
187 |
'renderer' => 'feed/adminhtml_feed_renderer_select',
|
188 |
));*/
|
189 |
$this->addColumn('format', array(
|
190 |
+
'header' => Mage::helper('feed')->__('Format export'),
|
191 |
'index' => 'format',
|
192 |
'width' => '50px',
|
193 |
'options' => Mage::getModel('export/system_config_source_format')->toSelectArray(),
|
217 |
|
218 |
public function getRowUrl($row) {
|
219 |
return '';
|
220 |
+
}
|
221 |
+
|
222 |
+
private function _getGroups($data) {
|
223 |
+
$_groups = trim(str_replace(array("\r\n", ';', '-', '|', ' '), ';', $data), ',');
|
224 |
+
return explode(',', $_groups);
|
225 |
}
|
226 |
}
|
app/code/community/Lengow/Feed/Model/Feed.php
CHANGED
@@ -55,6 +55,12 @@ class Lengow_Feed_Model_Feed extends Varien_Object {
|
|
55 |
*/
|
56 |
protected $_url;
|
57 |
|
|
|
|
|
|
|
|
|
|
|
|
|
58 |
protected $_idClient;
|
59 |
protected $_idGroup;
|
60 |
protected $_api_key;
|
@@ -82,7 +88,9 @@ class Lengow_Feed_Model_Feed extends Varien_Object {
|
|
82 |
$this->_config_model = Mage::getSingleton('feed/config');
|
83 |
|
84 |
$this->_idClient = $this->_config_model->get('tracker/general/login');
|
85 |
-
$this->_idGroup = $
|
|
|
|
|
86 |
$this->_api_key = $this->_config_model->get('tracker/general/api_key');
|
87 |
parent::__construct();
|
88 |
}
|
@@ -97,7 +105,8 @@ class Lengow_Feed_Model_Feed extends Varien_Object {
|
|
97 |
$params .= '/product_status/' . $this->_product_status;
|
98 |
//$params .= '/product_child/' . $this->_product_child;
|
99 |
$params .= '/format/' . $this->_format;
|
100 |
-
$
|
|
|
101 |
|
102 |
$new_flow = Mage::getUrl('lengow/feed/index') . $params;
|
103 |
$this->_url = $new_flow;
|
@@ -115,7 +124,13 @@ class Lengow_Feed_Model_Feed extends Varien_Object {
|
|
115 |
'urlFlux' => $this->_url,
|
116 |
'idFlux' => $this->_id
|
117 |
);
|
|
|
|
|
118 |
return $connector->api('updateRootFeed', $args);
|
119 |
}
|
120 |
|
|
|
|
|
|
|
|
|
121 |
}
|
55 |
*/
|
56 |
protected $_url;
|
57 |
|
58 |
+
/**
|
59 |
+
*
|
60 |
+
* @var integer ID store
|
61 |
+
*/
|
62 |
+
protected $_id_store;
|
63 |
+
|
64 |
protected $_idClient;
|
65 |
protected $_idGroup;
|
66 |
protected $_api_key;
|
88 |
$this->_config_model = Mage::getSingleton('feed/config');
|
89 |
|
90 |
$this->_idClient = $this->_config_model->get('tracker/general/login');
|
91 |
+
$this->_idGroup = $args['group_id'];
|
92 |
+
$this->_id_store = $args['store_id'];
|
93 |
+
//$this->_config_model->get('tracker/general/group');
|
94 |
$this->_api_key = $this->_config_model->get('tracker/general/api_key');
|
95 |
parent::__construct();
|
96 |
}
|
105 |
$params .= '/product_status/' . $this->_product_status;
|
106 |
//$params .= '/product_child/' . $this->_product_child;
|
107 |
$params .= '/format/' . $this->_format;
|
108 |
+
if($this->_id_store != 0)
|
109 |
+
$params .= '/store/' . $this->_id_store;
|
110 |
|
111 |
$new_flow = Mage::getUrl('lengow/feed/index') . $params;
|
112 |
$this->_url = $new_flow;
|
124 |
'urlFlux' => $this->_url,
|
125 |
'idFlux' => $this->_id
|
126 |
);
|
127 |
+
Mage::helper('sync/data')->log('Test udate group ' . $this->_idGroup . ' : ' . $this->_url);
|
128 |
+
return true;
|
129 |
return $connector->api('updateRootFeed', $args);
|
130 |
}
|
131 |
|
132 |
+
private function _cleanGroup($data) {
|
133 |
+
return trim(str_replace(array("\r\n", ';', '-', '|', ' '), ';', $data), ',');
|
134 |
+
}
|
135 |
+
|
136 |
}
|
app/code/community/Lengow/Feed/controllers/Adminhtml/Lengow/FeedController.php
CHANGED
@@ -42,6 +42,10 @@ class Lengow_Feed_Adminhtml_Lengow_FeedController extends Mage_Adminhtml_Control
|
|
42 |
$product_status = $this->getRequest()->getParam('product_status');
|
43 |
//$product_child = $this->getRequest()->getParam('product_child');
|
44 |
$format = $this->getRequest()->getParam('format');
|
|
|
|
|
|
|
|
|
45 |
|
46 |
if($this->getRequest()->getParam('submit')) {
|
47 |
$feed_ids = array($this->getRequest()->getParam('submit'));
|
@@ -50,35 +54,44 @@ class Lengow_Feed_Adminhtml_Lengow_FeedController extends Mage_Adminhtml_Control
|
|
50 |
$error = false;
|
51 |
$message = '';
|
52 |
$data_feeds = json_decode(Mage::getSingleton('feed/config')->get('feed/general/json_feed'));
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
$
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
|
|
|
|
|
|
|
|
|
|
71 |
}
|
|
|
|
|
|
|
|
|
72 |
}
|
73 |
|
74 |
-
Mage::getConfig()->saveConfig('feed/general/json_feed', json_encode($data_feeds));
|
75 |
-
|
76 |
if($error)
|
77 |
Mage::getSingleton('core/session')->addError($message);
|
78 |
else
|
79 |
Mage::getSingleton('core/session')->addSuccess(Mage::helper('feed')->__('Update success'));
|
80 |
-
|
81 |
-
|
|
|
|
|
82 |
}
|
83 |
|
84 |
}
|
42 |
$product_status = $this->getRequest()->getParam('product_status');
|
43 |
//$product_child = $this->getRequest()->getParam('product_child');
|
44 |
$format = $this->getRequest()->getParam('format');
|
45 |
+
$_lengow_ids_group = array();
|
46 |
+
$_store_id = $this->getRequest()->getParam('store');
|
47 |
+
Mage::helper('sync/data')->log('Test store : ' . $_store_id);
|
48 |
+
$_group = Mage::getModel('sync/config')->setStore($_store_id)->getConfig('tracker/general/group');
|
49 |
|
50 |
if($this->getRequest()->getParam('submit')) {
|
51 |
$feed_ids = array($this->getRequest()->getParam('submit'));
|
54 |
$error = false;
|
55 |
$message = '';
|
56 |
$data_feeds = json_decode(Mage::getSingleton('feed/config')->get('feed/general/json_feed'));
|
57 |
+
if(empty($data_feeds))
|
58 |
+
$data_feeds = new stdClass;
|
59 |
+
if(!empty($feed_ids)) {
|
60 |
+
foreach($feed_ids as $feed_id) {
|
61 |
+
|
62 |
+
$args = array(
|
63 |
+
'feed_id' => $feed_id,
|
64 |
+
'group_id' => $_group,
|
65 |
+
'store_id' => $_store_id,
|
66 |
+
'selected_products' => $selected_products[$feed_id],
|
67 |
+
'product_out_stock' => $product_out_stock[$feed_id],
|
68 |
+
'product_type' => $product_type[$feed_id],
|
69 |
+
'product_status' => $product_status[$feed_id],
|
70 |
+
//'product_child' => $product_child[$feed_id],
|
71 |
+
'format' => $format[$feed_id]);
|
72 |
+
|
73 |
+
$feed = Mage::getModel('feed/feed', $args);
|
74 |
+
if(!$feed->update()) {
|
75 |
+
$error = true;
|
76 |
+
$message .= Mage::helper('feed')->__('Error update feed %s', '#' . $feed_id . '<br />');
|
77 |
+
} else {
|
78 |
+
$data_feeds->{$feed_id} = $args;
|
79 |
+
}
|
80 |
}
|
81 |
+
Mage::getConfig()->saveConfig('feed/general/json_feed', json_encode($data_feeds));
|
82 |
+
} else {
|
83 |
+
$error = 'true';
|
84 |
+
$message = Mage::helper('feed')->__('');
|
85 |
}
|
86 |
|
|
|
|
|
87 |
if($error)
|
88 |
Mage::getSingleton('core/session')->addError($message);
|
89 |
else
|
90 |
Mage::getSingleton('core/session')->addSuccess(Mage::helper('feed')->__('Update success'));
|
91 |
+
if(!empty($_store_id))
|
92 |
+
$this->_redirect('*/*/index/', array('store' => $_store_id));
|
93 |
+
else
|
94 |
+
$this->_redirect('*/*/index');
|
95 |
}
|
96 |
|
97 |
}
|
app/code/community/Lengow/Feed/etc/config.xml
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Lengow_Feed>
|
5 |
-
<version>2.0.1.
|
6 |
</Lengow_Feed>
|
7 |
</modules>
|
8 |
<admin>
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Lengow_Feed>
|
5 |
+
<version>2.0.1.5</version>
|
6 |
</Lengow_Feed>
|
7 |
</modules>
|
8 |
<admin>
|
app/code/community/Lengow/Sync/Block/.DS_Store
DELETED
Binary file
|
app/code/community/Lengow/Sync/Block/Adminhtml/Log/Grid.php
CHANGED
@@ -14,7 +14,7 @@ class Lengow_Sync_Block_Adminhtml_Log_Grid extends Mage_Adminhtml_Block_Widget_G
|
|
14 |
parent::__construct();
|
15 |
$this->setId('sales_sync_log_grid');
|
16 |
$this->setUseAjax(true);
|
17 |
-
$this->setDefaultSort('
|
18 |
$this->setDefaultDir('DESC');
|
19 |
$this->setSaveParametersInSession(true);
|
20 |
}
|
14 |
parent::__construct();
|
15 |
$this->setId('sales_sync_log_grid');
|
16 |
$this->setUseAjax(true);
|
17 |
+
$this->setDefaultSort('id');
|
18 |
$this->setDefaultDir('DESC');
|
19 |
$this->setSaveParametersInSession(true);
|
20 |
}
|
app/code/community/Lengow/Sync/Helper/Api.php
ADDED
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Lengow sync helper data
|
4 |
+
*
|
5 |
+
* @category Lengow
|
6 |
+
* @package Lengow_Sync
|
7 |
+
* @author Ludovic Drin <ludovic@lengow.com>
|
8 |
+
* @copyright 2014 Lengow SAS
|
9 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
+
*/
|
11 |
+
class Lengow_Sync_Helper_Api extends Mage_Core_Helper_Abstract {
|
12 |
+
|
13 |
+
public function getVersion() {
|
14 |
+
return (string) Mage::getConfig()->getNode()->modules->Lengow_Sync->version;
|
15 |
+
}
|
16 |
+
|
17 |
+
}
|
app/code/community/Lengow/Sync/Model/.DS_Store
DELETED
Binary file
|
app/code/community/Lengow/Sync/Model/Config.php
CHANGED
@@ -19,6 +19,8 @@ class Lengow_Sync_Model_Config extends Varien_Object {
|
|
19 |
|
20 |
protected $_id_store;
|
21 |
|
|
|
|
|
22 |
public static $ADDRESS_ATTRIBUTES = array(
|
23 |
'prefix' => 'na',
|
24 |
'firstname' => 'firstname',
|
@@ -100,5 +102,75 @@ class Lengow_Sync_Model_Config extends Varien_Object {
|
|
100 |
Mage::getModel('core/config')->saveConfig('sync/hidden/last_synchro', date('Y-m-d'));
|
101 |
}
|
102 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
103 |
|
104 |
}
|
19 |
|
20 |
protected $_id_store;
|
21 |
|
22 |
+
protected $_file;
|
23 |
+
|
24 |
public static $ADDRESS_ATTRIBUTES = array(
|
25 |
'prefix' => 'na',
|
26 |
'firstname' => 'firstname',
|
102 |
Mage::getModel('core/config')->saveConfig('sync/hidden/last_synchro', date('Y-m-d'));
|
103 |
}
|
104 |
}
|
105 |
+
|
106 |
+
/**
|
107 |
+
* Check if import can be started
|
108 |
+
*
|
109 |
+
* @return boolean.
|
110 |
+
*/
|
111 |
+
public function importCanStart() {
|
112 |
+
$timestamp = $this->readFlagFile();
|
113 |
+
if($timestamp !== false) {
|
114 |
+
$this->createFlagFile();
|
115 |
+
return true;
|
116 |
+
}
|
117 |
+
if((time() - (integer) $timestamp) < (60*25)) {
|
118 |
+
return false;
|
119 |
+
} else {
|
120 |
+
$this->createFlagFile();
|
121 |
+
return true;
|
122 |
+
}
|
123 |
+
}
|
124 |
+
|
125 |
+
/**
|
126 |
+
* Create file flag.
|
127 |
+
*
|
128 |
+
* @return boolean.
|
129 |
+
*/
|
130 |
+
public function readFlagFile() {
|
131 |
+
$file_path = Mage::getBaseDir('media') . DS . 'lengow' . DS;
|
132 |
+
if(is_file($file_path . 'import.flag')) {
|
133 |
+
$this->_file = Mage::getModel('sync/file');
|
134 |
+
$this->_file->checkAndCreateFolder($file_path);
|
135 |
+
$this->_file->cd($file_path);
|
136 |
+
$this->_file->streamOpen('import.flag', 'r+');
|
137 |
+
$this->_file->streamLock();
|
138 |
+
return $this->_file->streamRead(4096);
|
139 |
+
} else {
|
140 |
+
return false;
|
141 |
+
}
|
142 |
+
}
|
143 |
+
|
144 |
+
/**
|
145 |
+
* Create file flag.
|
146 |
+
*
|
147 |
+
* @return boolean.
|
148 |
+
*/
|
149 |
+
public function createFlagFile($clean = false) {
|
150 |
+
if($clean)
|
151 |
+
$_time = 0;
|
152 |
+
else
|
153 |
+
$_time = time();
|
154 |
+
$file_path = Mage::getBaseDir('media') . DS . 'lengow' . DS;
|
155 |
+
$this->_file->streamUnlock();
|
156 |
+
$this->_file->streamClose();
|
157 |
+
$this->_file->streamOpen('import.flag', 'w+');
|
158 |
+
$this->_file->streamLock();
|
159 |
+
$this->_file->streamWrite($_time);
|
160 |
+
Mage::helper('sync/data')->log('Write on file log : ' . $_time);
|
161 |
+
}
|
162 |
+
|
163 |
+
/**
|
164 |
+
* Clean file flag.
|
165 |
+
*
|
166 |
+
* @return boolean.
|
167 |
+
*/
|
168 |
+
public function cleanFlagFile() {
|
169 |
+
$file_path = Mage::getBaseDir('media') . DS . 'lengow' . DS;
|
170 |
+
if(is_file($file_path . 'import.flag'))
|
171 |
+
$this->createFlagFile(true);
|
172 |
+
$this->_file->streamUnlock();
|
173 |
+
$this->_file->streamClose();
|
174 |
+
}
|
175 |
|
176 |
}
|
app/code/community/Lengow/Sync/Model/Connector.php
CHANGED
@@ -48,6 +48,7 @@ class Lengow_Sync_Model_Connector {
|
|
48 |
* Default options for curl.
|
49 |
*/
|
50 |
public static $CURL_OPTS = array(
|
|
|
51 |
CURLOPT_CONNECTTIMEOUT => 10,
|
52 |
CURLOPT_RETURNTRANSFER => true,
|
53 |
CURLOPT_TIMEOUT => 300,
|
48 |
* Default options for curl.
|
49 |
*/
|
50 |
public static $CURL_OPTS = array(
|
51 |
+
//CURLOPT_SSL_VERIFYPEER => false, // Unquote if you want desactivate ssl check
|
52 |
CURLOPT_CONNECTTIMEOUT => 10,
|
53 |
CURLOPT_RETURNTRANSFER => true,
|
54 |
CURLOPT_TIMEOUT => 300,
|
app/code/community/Lengow/Sync/Model/Customer/Customer.php
CHANGED
@@ -15,17 +15,20 @@ class Lengow_Sync_Model_Customer_Customer extends Mage_Customer_Model_Customer {
|
|
15 |
*
|
16 |
* @param $xml_node SimpleXMLElement
|
17 |
*/
|
18 |
-
public function setFromNode(SimpleXMLElement $xml_node) {
|
|
|
19 |
$array = Mage::helper('sync')->xmlToAssoc($xml_node);
|
20 |
if(empty($array['billing_address']['billing_email']))
|
21 |
$array['billing_address']['billing_email'] = 'no-mail-' . $array['order_id'] . '@' . $array['marketplace'] . '.com';
|
22 |
if(empty($array['billing_address']['billing_firstname']))
|
23 |
$array['billing_address']['billing_firstname'] = '__';
|
24 |
-
|
|
|
|
|
25 |
->loadByEmail($array['billing_address']['billing_email']);
|
26 |
if(!$this->getId()) {
|
27 |
$this->setImportMode(true);
|
28 |
-
$this->setWebsiteId(
|
29 |
$this->setConfirmation(null);
|
30 |
$this->setForceConfirmed(true);
|
31 |
$this->setPasswordHash($this->hashPassword($this->generatePassword(8)));
|
@@ -58,11 +61,16 @@ class Lengow_Sync_Model_Customer_Customer extends Mage_Customer_Model_Customer {
|
|
58 |
$address->setIsDefaultShipping(true);
|
59 |
}
|
60 |
Mage::helper('core')->copyFieldset('lengow_convert_' . $type . '_address', 'to_' . $type . '_address', $data, $address);
|
61 |
-
// Fix address 2
|
62 |
if($type == 'shipping')
|
63 |
$type = 'delivery';
|
64 |
$address_1 = $data[$type . '_address'];
|
65 |
$address_2 = $data[$type . '_address_2'];
|
|
|
|
|
|
|
|
|
|
|
|
|
66 |
if(!empty($address_2))
|
67 |
$address_1 = $address_1 . "\n" . $address_2;
|
68 |
$address_3 = $data[$type . '_address_complement'];
|
15 |
*
|
16 |
* @param $xml_node SimpleXMLElement
|
17 |
*/
|
18 |
+
public function setFromNode(SimpleXMLElement $xml_node, $id_store) {
|
19 |
+
$id_store = Mage::getModel('core/store')->load($id_store)->getWebsiteId();
|
20 |
$array = Mage::helper('sync')->xmlToAssoc($xml_node);
|
21 |
if(empty($array['billing_address']['billing_email']))
|
22 |
$array['billing_address']['billing_email'] = 'no-mail-' . $array['order_id'] . '@' . $array['marketplace'] . '.com';
|
23 |
if(empty($array['billing_address']['billing_firstname']))
|
24 |
$array['billing_address']['billing_firstname'] = '__';
|
25 |
+
if(empty($array['delivery_address']['delivery_firstname']))
|
26 |
+
$array['delivery_address']['delivery_firstname'] = '__';
|
27 |
+
$this->setWebsiteId($id_store)
|
28 |
->loadByEmail($array['billing_address']['billing_email']);
|
29 |
if(!$this->getId()) {
|
30 |
$this->setImportMode(true);
|
31 |
+
$this->setWebsiteId($id_store);
|
32 |
$this->setConfirmation(null);
|
33 |
$this->setForceConfirmed(true);
|
34 |
$this->setPasswordHash($this->hashPassword($this->generatePassword(8)));
|
61 |
$address->setIsDefaultShipping(true);
|
62 |
}
|
63 |
Mage::helper('core')->copyFieldset('lengow_convert_' . $type . '_address', 'to_' . $type . '_address', $data, $address);
|
|
|
64 |
if($type == 'shipping')
|
65 |
$type = 'delivery';
|
66 |
$address_1 = $data[$type . '_address'];
|
67 |
$address_2 = $data[$type . '_address_2'];
|
68 |
+
// Fix address 1
|
69 |
+
if(empty($address_1) && !empty($address_2)) {
|
70 |
+
$address_1 = $address_2;
|
71 |
+
$address_2 = null;
|
72 |
+
}
|
73 |
+
// Fix address 2
|
74 |
if(!empty($address_2))
|
75 |
$address_1 = $address_1 . "\n" . $address_2;
|
76 |
$address_3 = $data[$type . '_address_complement'];
|
app/code/community/Lengow/Sync/Model/Import.php
CHANGED
@@ -73,7 +73,8 @@ class Lengow_Sync_Model_Import extends Varien_Object {
|
|
73 |
if(Mage::app()->getStore()->getCode() != 'admin')
|
74 |
Mage::app()->setCurrentStore('admin');
|
75 |
$this->_helper = Mage::helper('sync/data');
|
76 |
-
$this->_config = Mage::getSingleton('sync/config')
|
|
|
77 |
$this->_checkVersionMarketplaceXML();
|
78 |
$connector = Mage::getSingleton('sync/connector');
|
79 |
self::$import_start = true;
|
@@ -86,23 +87,33 @@ class Lengow_Sync_Model_Import extends Varien_Object {
|
|
86 |
'id_group' => $this->_config->getConfig('tracker/general/group'),
|
87 |
'state' => 'plugin'));
|
88 |
if(!is_object($orders)) {
|
89 |
-
$this->_helper->
|
90 |
-
|
|
|
|
|
|
|
91 |
} else {
|
92 |
$find_count_orders = count($orders->orders->order);
|
93 |
$this->_helper->log('Find ' . $find_count_orders . ' order' . ($find_count_orders > 1 ? 's' : ''));
|
94 |
}
|
95 |
//LengowCore::debug($orders);
|
96 |
$count_orders = (integer) $orders->orders_count->count_total;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
97 |
if($count_orders == 0) {
|
98 |
$this->_helper->log('No orders to import between ' . $args['dateFrom'] . ' and ' . $args['dateTo'], $this->force_log_output);
|
99 |
return false;
|
100 |
}
|
101 |
-
$model_order = Mage::getModel('sync/order');
|
102 |
foreach($orders->orders->order as $key => $data) {
|
103 |
$lengow_order = $data;
|
104 |
$lengow_order_id = (string) $lengow_order->order_id;
|
105 |
-
if($this->_config->isDebugMode()) {
|
106 |
$lengow_order_id = $lengow_order_id . time();
|
107 |
}
|
108 |
$marketplace = Mage::getModel('sync/marketplace');
|
@@ -123,10 +134,14 @@ class Lengow_Sync_Model_Import extends Varien_Object {
|
|
123 |
$this->_config->getOrderState($lengow_status);
|
124 |
// Update status' order only if in process or shipped
|
125 |
if($order_imported->getState() != $this->_config->getOrderState($lengow_status)) {
|
126 |
-
// Change state process to
|
127 |
-
|
|
|
|
|
|
|
|
|
128 |
&& $lengow_order->order_status->lengow == 'shipped') {
|
129 |
-
$
|
130 |
(string) $lengow_order->tracking_informations->tracking_carrier,
|
131 |
(string) $lengow_order->tracking_informations->tracking_method,
|
132 |
(string) $lengow_order->tracking_informations->tracking_number);
|
@@ -135,7 +150,7 @@ class Lengow_Sync_Model_Import extends Varien_Object {
|
|
135 |
} else if(($order_imported->current_state == $this->_config->getOrderState('process') // Change state process or shipped to cancel
|
136 |
|| $order_imported->current_state == $this->_config->getOrderState('shipped'))
|
137 |
&& $lengow_order->order_status->lengow == 'canceled') {
|
138 |
-
$
|
139 |
$this->_helper->log('Order ' . $lengow_order_id . ' : update state to cancel');
|
140 |
$count_orders_updated++;
|
141 |
}
|
@@ -145,19 +160,36 @@ class Lengow_Sync_Model_Import extends Varien_Object {
|
|
145 |
$lengow_order_state = (string) $lengow_order->order_status->marketplace;
|
146 |
$id_order_magento = (string) $lengow_order->order_external_id;
|
147 |
if(($marketplace->getStateLengow($lengow_order_state) == 'processing'
|
148 |
-
|| $marketplace->getStateLengow($lengow_order_state) == 'shipped'
|
149 |
-
|
150 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
151 |
// Create or Update customer with addresses
|
152 |
$customer = Mage::getModel('sync/customer_customer');
|
153 |
-
$customer->setFromNode($data);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
154 |
// Create quote
|
155 |
if(!$quote = $order->createQuote($data, $customer)) {
|
156 |
$this->_helper->log('Order ' . $lengow_order_id . ' : create order fail');
|
157 |
continue;
|
158 |
}
|
159 |
-
|
160 |
-
$order = $order->makeOrder($data, $quote);
|
161 |
if($order) {
|
162 |
// Change order date
|
163 |
if($this->_config->get('orders/date_import')) {
|
@@ -184,19 +216,24 @@ class Lengow_Sync_Model_Import extends Varien_Object {
|
|
184 |
}
|
185 |
$count_orders_added++;
|
186 |
$this->_helper->log('Order ' . $lengow_order_id . ' : import success (' . $order->getId() . ')');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
187 |
}
|
188 |
-
// Clear session
|
189 |
-
Mage::getSingleton('checkout/session')->clear();
|
190 |
-
////*} catch(Exception $e) {
|
191 |
-
//$this->_helper->log($e->getMessage(),$orderLw['IdOrder']);
|
192 |
-
//Erase session for the next order
|
193 |
-
//$this->getSession()->clear();
|
194 |
-
//}*////
|
195 |
} else {
|
196 |
if($id_order_magento) {
|
197 |
$this->_helper->log('Order ' . $lengow_order_id . ' : already imported in Magento with order ID ' . $id_order_magento);
|
198 |
} else {
|
199 |
-
$this->_helper->log('Order ' . $lengow_order_id . ' : order\'s status not available to import');
|
200 |
}
|
201 |
}
|
202 |
}
|
73 |
if(Mage::app()->getStore()->getCode() != 'admin')
|
74 |
Mage::app()->setCurrentStore('admin');
|
75 |
$this->_helper = Mage::helper('sync/data');
|
76 |
+
$this->_config = Mage::getSingleton('sync/config')
|
77 |
+
->setStore($args['id_store']);
|
78 |
$this->_checkVersionMarketplaceXML();
|
79 |
$connector = Mage::getSingleton('sync/connector');
|
80 |
self::$import_start = true;
|
87 |
'id_group' => $this->_config->getConfig('tracker/general/group'),
|
88 |
'state' => 'plugin'));
|
89 |
if(!is_object($orders)) {
|
90 |
+
$error = $this->_helper->__('Error on lengow webservice');
|
91 |
+
$this->_helper->log($error);
|
92 |
+
return array('new' => 0,
|
93 |
+
'update' => 0,
|
94 |
+
'error' => $error);
|
95 |
} else {
|
96 |
$find_count_orders = count($orders->orders->order);
|
97 |
$this->_helper->log('Find ' . $find_count_orders . ' order' . ($find_count_orders > 1 ? 's' : ''));
|
98 |
}
|
99 |
//LengowCore::debug($orders);
|
100 |
$count_orders = (integer) $orders->orders_count->count_total;
|
101 |
+
if(isset($orders->error) && (string) $orders->error == 'No Way') {
|
102 |
+
$error = $this->_helper->__('API\'s connection refused with IP %s', (string) $orders->ip);
|
103 |
+
$this->_helper->log($error);
|
104 |
+
return array('new' => 0,
|
105 |
+
'update' => 0,
|
106 |
+
'error' => $error);
|
107 |
+
}
|
108 |
if($count_orders == 0) {
|
109 |
$this->_helper->log('No orders to import between ' . $args['dateFrom'] . ' and ' . $args['dateTo'], $this->force_log_output);
|
110 |
return false;
|
111 |
}
|
112 |
+
$model_order = Mage::getModel('sync/order', $args['id_store']);
|
113 |
foreach($orders->orders->order as $key => $data) {
|
114 |
$lengow_order = $data;
|
115 |
$lengow_order_id = (string) $lengow_order->order_id;
|
116 |
+
if($this->_config->isDebugMode() && !$this->getForceUpdate()) {
|
117 |
$lengow_order_id = $lengow_order_id . time();
|
118 |
}
|
119 |
$marketplace = Mage::getModel('sync/marketplace');
|
134 |
$this->_config->getOrderState($lengow_status);
|
135 |
// Update status' order only if in process or shipped
|
136 |
if($order_imported->getState() != $this->_config->getOrderState($lengow_status)) {
|
137 |
+
if($order_imported->getState() == $this->_config->getOrderState('new') // Change state process to processing
|
138 |
+
&& $lengow_order->order_status->lengow == 'shipped') {
|
139 |
+
$model_order->toInvoice($order_imported);
|
140 |
+
$this->_helper->log('Order ' . $lengow_order_id . ' : update state to processing');
|
141 |
+
$count_orders_updated++;
|
142 |
+
} else if($order_imported->getState() == $this->_config->getOrderState('processing') // Change state process to shipped
|
143 |
&& $lengow_order->order_status->lengow == 'shipped') {
|
144 |
+
$model_order->toShip($order_imported,
|
145 |
(string) $lengow_order->tracking_informations->tracking_carrier,
|
146 |
(string) $lengow_order->tracking_informations->tracking_method,
|
147 |
(string) $lengow_order->tracking_informations->tracking_number);
|
150 |
} else if(($order_imported->current_state == $this->_config->getOrderState('process') // Change state process or shipped to cancel
|
151 |
|| $order_imported->current_state == $this->_config->getOrderState('shipped'))
|
152 |
&& $lengow_order->order_status->lengow == 'canceled') {
|
153 |
+
$model_order->toCancel($order_imported);
|
154 |
$this->_helper->log('Order ' . $lengow_order_id . ' : update state to cancel');
|
155 |
$count_orders_updated++;
|
156 |
}
|
160 |
$lengow_order_state = (string) $lengow_order->order_status->marketplace;
|
161 |
$id_order_magento = (string) $lengow_order->order_external_id;
|
162 |
if(($marketplace->getStateLengow($lengow_order_state) == 'processing'
|
163 |
+
|| $marketplace->getStateLengow($lengow_order_state) == 'shipped'
|
164 |
+
|| ($marketplace->getStateLengow($lengow_order_state) == 'new' && $this->_config->get('orders/pending'))) && !$id_order_magento) {
|
165 |
+
// Check payment status
|
166 |
+
$lengow_order_payment_status = (string) $lengow_order->order_payment->payment_status;
|
167 |
+
// Break new order if not in pending payment
|
168 |
+
$_to_order = true;
|
169 |
+
if($marketplace->getStateLengow($lengow_order_state) == 'new' && $this->_config->get('orders/pending')) {
|
170 |
+
$_to_order = false;
|
171 |
+
if(empty($lengow_order_payment_status) || !$marketplace->getStatePaymentLengow($lengow_order_payment_status) == 'pending') {
|
172 |
+
$this->_helper->log('Order ' . $lengow_order_id . ' : order\'s status ( ' . $lengow_order_state . ' - ' . $lengow_order_payment_status . ') not available to import');
|
173 |
+
continue;
|
174 |
+
}
|
175 |
+
}
|
176 |
+
$order = Mage::getModel('sync/order', $args['id_store']);
|
177 |
// Create or Update customer with addresses
|
178 |
$customer = Mage::getModel('sync/customer_customer');
|
179 |
+
$customer->setFromNode($data, $args['id_store']);
|
180 |
+
// Create order
|
181 |
+
$payment_status = '';
|
182 |
+
if(!$this->_config->get('orders/processing_fee')) {
|
183 |
+
$data->order_amount = new SimpleXMLElement('<order_amount><![CDATA[' . ((float) $data->order_amount - (float) $data->order_processing_fee) . ']]></order_amount>');
|
184 |
+
$data->order_processing_fee = new SimpleXMLElement('<order_processing_fee><![CDATA[ ]]></order_processing_fee>');
|
185 |
+
$this->_helper->log('Order ' . $lengow_order_id . ' : rewrite amount without processing fee');
|
186 |
+
}
|
187 |
// Create quote
|
188 |
if(!$quote = $order->createQuote($data, $customer)) {
|
189 |
$this->_helper->log('Order ' . $lengow_order_id . ' : create order fail');
|
190 |
continue;
|
191 |
}
|
192 |
+
$order = $order->makeOrder($data, $quote, $_to_order);
|
|
|
193 |
if($order) {
|
194 |
// Change order date
|
195 |
if($this->_config->get('orders/date_import')) {
|
216 |
}
|
217 |
$count_orders_added++;
|
218 |
$this->_helper->log('Order ' . $lengow_order_id . ' : import success (' . $order->getId() . ')');
|
219 |
+
if($lengow_order->order_status->lengow == 'shipped') {
|
220 |
+
$id_flux = (integer) $lengow_order->idFlux;
|
221 |
+
$model_order = Mage::getModel('sync/order', $args['id_store']);
|
222 |
+
$order_imported = $model_order->getOrderByIdLengow($lengow_order_id, $id_flux);
|
223 |
+
$model_order->toShip($order,
|
224 |
+
(string) $lengow_order->tracking_informations->tracking_carrier,
|
225 |
+
(string) $lengow_order->tracking_informations->tracking_method,
|
226 |
+
(string) $lengow_order->tracking_informations->tracking_number);
|
227 |
+
$this->_helper->log('Order ' . $lengow_order_id . ' : update state to shipped');
|
228 |
+
}
|
229 |
+
// Clear session
|
230 |
+
Mage::getSingleton('checkout/session')->clear();
|
231 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
232 |
} else {
|
233 |
if($id_order_magento) {
|
234 |
$this->_helper->log('Order ' . $lengow_order_id . ' : already imported in Magento with order ID ' . $id_order_magento);
|
235 |
} else {
|
236 |
+
$this->_helper->log('Order ' . $lengow_order_id . ' : order\'s status ( ' . $lengow_order_state . ') not available to import');
|
237 |
}
|
238 |
}
|
239 |
}
|
app/code/community/Lengow/Sync/Model/Marketplace.php
CHANGED
@@ -41,7 +41,10 @@ class Lengow_Sync_Model_Marketplace {
|
|
41 |
public $states_lengow = array();
|
42 |
public $states = array();
|
43 |
public $actions = array();
|
|
|
|
|
44 |
protected $_config;
|
|
|
45 |
|
46 |
|
47 |
/**
|
@@ -57,6 +60,7 @@ class Lengow_Sync_Model_Marketplace {
|
|
57 |
if(!empty($object)) {
|
58 |
$this->object = $object[0];
|
59 |
$this->api_url = (string) $this->object->api;
|
|
|
60 |
foreach($this->object->states->state as $state) {
|
61 |
$this->states_lengow[(string) $state['name']] = (string) $state->lengow;
|
62 |
$this->states[(string) $state->lengow] = (string) $state['name'];
|
@@ -79,6 +83,13 @@ class Lengow_Sync_Model_Marketplace {
|
|
79 |
}
|
80 |
}
|
81 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
82 |
$this->is_loaded = true;
|
83 |
}
|
84 |
}
|
@@ -100,7 +111,7 @@ class Lengow_Sync_Model_Marketplace {
|
|
100 |
* @return string The lengow state
|
101 |
*/
|
102 |
public function getStateLengow($name) {
|
103 |
-
return $this->states_lengow[$name];
|
104 |
}
|
105 |
|
106 |
/**
|
@@ -111,7 +122,29 @@ class Lengow_Sync_Model_Marketplace {
|
|
111 |
* @return string The marketplace state
|
112 |
*/
|
113 |
public function getState($name) {
|
114 |
-
return $this->states[$name];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
115 |
}
|
116 |
|
117 |
/**
|
@@ -177,7 +210,7 @@ class Lengow_Sync_Model_Marketplace {
|
|
177 |
if(!empty($trackings)) {
|
178 |
$first_track = $trackings[0];
|
179 |
$gets[$param['name']] = array(
|
180 |
-
'value' => $this->_matchCarrier($param, $first_track->getCarrierCode()),
|
181 |
'require' => (array_key_exists('require', $param) ? explode(' ', $param['require']) : array())
|
182 |
);
|
183 |
}
|
@@ -262,10 +295,10 @@ class Lengow_Sync_Model_Marketplace {
|
|
262 |
*
|
263 |
* @return string The matching carrier name
|
264 |
*/
|
265 |
-
private function _matchCarrier($param, $name) {
|
266 |
// No match
|
267 |
if(!isset($param['accepted_values']))
|
268 |
-
return $
|
269 |
// Exact match
|
270 |
foreach($param['accepted_values'] as $value) {
|
271 |
$value = (string) $value;
|
41 |
public $states_lengow = array();
|
42 |
public $states = array();
|
43 |
public $actions = array();
|
44 |
+
public $payments = array();
|
45 |
+
public $payments_lengow = array();
|
46 |
protected $_config;
|
47 |
+
const MARKETPLACE_STATUS_NO_MATCH = -1;
|
48 |
|
49 |
|
50 |
/**
|
60 |
if(!empty($object)) {
|
61 |
$this->object = $object[0];
|
62 |
$this->api_url = (string) $this->object->api;
|
63 |
+
// States
|
64 |
foreach($this->object->states->state as $state) {
|
65 |
$this->states_lengow[(string) $state['name']] = (string) $state->lengow;
|
66 |
$this->states[(string) $state->lengow] = (string) $state['name'];
|
83 |
}
|
84 |
}
|
85 |
}
|
86 |
+
// Payment
|
87 |
+
if(count($this->object->payments)) {
|
88 |
+
foreach($this->object->payments->payment as $payment) {
|
89 |
+
$this->payment_lengow[(string) $payment['name']] = (string) $payment->lengow;
|
90 |
+
$this->payment[(string) $payment->lengow] = (string) $payment['name'];
|
91 |
+
}
|
92 |
+
}
|
93 |
$this->is_loaded = true;
|
94 |
}
|
95 |
}
|
111 |
* @return string The lengow state
|
112 |
*/
|
113 |
public function getStateLengow($name) {
|
114 |
+
return array_key_exists($name, $this->states_lengow) ? $this->states_lengow[$name] : self::MARKETPLACE_STATUS_NO_MATCH;
|
115 |
}
|
116 |
|
117 |
/**
|
122 |
* @return string The marketplace state
|
123 |
*/
|
124 |
public function getState($name) {
|
125 |
+
return array_key_exists($name, $this->states) ? $this->states[$name] : self::MARKETPLACE_STATUS_NO_MATCH;
|
126 |
+
}
|
127 |
+
|
128 |
+
/**
|
129 |
+
* Get the real lengow's payment
|
130 |
+
*
|
131 |
+
* @param string $name The payment state
|
132 |
+
*
|
133 |
+
* @return string The lengow payment state
|
134 |
+
*/
|
135 |
+
public function getStatePaymentLengow($name) {
|
136 |
+
return array_key_exists($name, $this->payments_lengow) ? $this->payments_lengow[$name] : self::MARKETPLACE_STATUS_NO_MATCH;
|
137 |
+
}
|
138 |
+
|
139 |
+
/**
|
140 |
+
* Get the marketplace's payment
|
141 |
+
*
|
142 |
+
* @param string $name The lengow payment
|
143 |
+
*
|
144 |
+
* @return string The marketplace payment
|
145 |
+
*/
|
146 |
+
public function getStatePayment($name) {
|
147 |
+
return array_key_exists($name, $this->payments) ? $this->payments[$name] : self::MARKETPLACE_STATUS_NO_MATCH;
|
148 |
}
|
149 |
|
150 |
/**
|
210 |
if(!empty($trackings)) {
|
211 |
$first_track = $trackings[0];
|
212 |
$gets[$param['name']] = array(
|
213 |
+
'value' => $this->_matchCarrier($param, $first_track->getCarrierCode(), $first_track->getTitle()),
|
214 |
'require' => (array_key_exists('require', $param) ? explode(' ', $param['require']) : array())
|
215 |
);
|
216 |
}
|
295 |
*
|
296 |
* @return string The matching carrier name
|
297 |
*/
|
298 |
+
private function _matchCarrier($param, $name, $title) {
|
299 |
// No match
|
300 |
if(!isset($param['accepted_values']))
|
301 |
+
return $title;
|
302 |
// Exact match
|
303 |
foreach($param['accepted_values'] as $value) {
|
304 |
$value = (string) $value;
|
app/code/community/Lengow/Sync/Model/Mysql4/.DS_Store
DELETED
Binary file
|
app/code/community/Lengow/Sync/Model/Observer.php
CHANGED
@@ -10,24 +10,71 @@
|
|
10 |
*/
|
11 |
class Lengow_Sync_Model_Observer {
|
12 |
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
31 |
|
32 |
public function salesOrderShipmentSaveAfter(Varien_Event_Observer $observer) {
|
33 |
$shipment = $observer->getEvent()->getShipment();
|
@@ -68,4 +115,8 @@ class Lengow_Sync_Model_Observer {
|
|
68 |
}
|
69 |
}
|
70 |
|
|
|
|
|
|
|
|
|
71 |
}
|
10 |
*/
|
11 |
class Lengow_Sync_Model_Observer {
|
12 |
|
13 |
+
public function import($observer) {
|
14 |
+
//if(!Mage::getSingelton('sync/config')->importCanStart()) {
|
15 |
+
// Mage::helper('sync/data')->log('##Error cron import : import is already started##');
|
16 |
+
//} else {
|
17 |
+
Mage::helper('sync/data')->log('##Start cron import##');
|
18 |
+
$_default_store = Mage::getModel('core/store')->load(Mage::app()
|
19 |
+
->getWebsite(true)
|
20 |
+
->getDefaultGroup()
|
21 |
+
->getDefaultStoreId());
|
22 |
+
$_current_id_store = $_default_store->getId();
|
23 |
+
$_lengow_id_user_global = Mage::getModel('sync/config')->setStore($_current_id_store)->getConfig('tracker/general/login');
|
24 |
+
$_lengow_id_group_global = $this->_cleanGroup(Mage::getModel('sync/config')->setStore($_current_id_store)->getConfig('tracker/general/group'));
|
25 |
+
$result_new = 0;
|
26 |
+
$result_update = 0;
|
27 |
+
$result_new = 0;
|
28 |
+
$_default_is_imported = false;
|
29 |
+
$import = Mage::getModel('sync/import');
|
30 |
+
// Import default shop if configured
|
31 |
+
if($_lengow_id_user_global && $_lengow_id_group_global) {
|
32 |
+
try {
|
33 |
+
$_default_is_imported = true;
|
34 |
+
Mage::helper('sync/data')->log('Start cron import in store ' . $_default_store->getName() . '(' . $_default_store->getId() . ')');
|
35 |
+
$days = Mage::getModel('sync/config')->setStore($_default_store->getId())
|
36 |
+
->getConfig('sync/orders/period');
|
37 |
+
$date_from = date('Y-m-d', strtotime(date('Y-m-d') . '-' . $days . 'days'));
|
38 |
+
$date_to = date('Y-m-d');
|
39 |
+
$result = $import->exec('orders', array('dateFrom' => $date_from,
|
40 |
+
'dateTo' => $date_to,
|
41 |
+
'id_store' => $_current_id_store));
|
42 |
+
$result_new = $result['new'];
|
43 |
+
$result_update = $result['update'];
|
44 |
+
} catch(Exception $e) {
|
45 |
+
Mage::helper('sync/data')->log('Error : ' . $e->getMessage());
|
46 |
+
}
|
47 |
+
}
|
48 |
+
$store_collection = Mage::getResourceModel('core/store_collection')
|
49 |
+
->addFieldToFilter('is_active', 1);
|
50 |
+
// Import different view if is different
|
51 |
+
foreach($store_collection as $store) {
|
52 |
+
try {
|
53 |
+
$_lengow_id_user_current = Mage::getModel('sync/config')->setStore($store->getId())->getConfig('tracker/general/login');
|
54 |
+
$_lengow_id_group_current = $this->_cleanGroup(Mage::getModel('sync/config')->setStore($store->getId())->getConfig('tracker/general/group'));
|
55 |
+
if(($_lengow_id_user_current != $_lengow_id_user_global || $_lengow_id_group_current != $_lengow_id_group_global)
|
56 |
+
&& $_lengow_id_user_current && $_lengow_id_group_current) {
|
57 |
+
if($store->getId() != $_current_id_store || !$_default_is_imported) {
|
58 |
+
Mage::helper('sync/data')->log('Start cron import in store ' . $store->getName() . '(' . $store->getId() . ')');
|
59 |
+
$days = Mage::getModel('sync/config')->setStore($store->getId())
|
60 |
+
->getConfig('sync/orders/period');
|
61 |
+
$date_from = date('Y-m-d', strtotime(date('Y-m-d') . '-' . $days . 'days'));
|
62 |
+
$date_to = date('Y-m-d');
|
63 |
+
$import = Mage::getModel('sync/import');
|
64 |
+
$result = $import->exec('orders', array('dateFrom' => $date_from,
|
65 |
+
'dateTo' => $date_to,
|
66 |
+
'id_store' => $store->getId()));
|
67 |
+
$result_new += $result['new'];
|
68 |
+
$result_update += $result['update'];
|
69 |
+
}
|
70 |
+
}
|
71 |
+
} catch(Exception $e) {
|
72 |
+
Mage::helper('sync/data')->log('Error : ' . $e->getMessage());
|
73 |
+
}
|
74 |
+
}
|
75 |
+
Mage::helper('sync/data')->log('##End cron import##');
|
76 |
+
//}
|
77 |
+
}
|
78 |
|
79 |
public function salesOrderShipmentSaveAfter(Varien_Event_Observer $observer) {
|
80 |
$shipment = $observer->getEvent()->getShipment();
|
115 |
}
|
116 |
}
|
117 |
|
118 |
+
private function _cleanGroup($data) {
|
119 |
+
return trim(str_replace(array("\r\n", ';', '-', '|', ' '), ';', $data), ',');
|
120 |
+
}
|
121 |
+
|
122 |
}
|
app/code/community/Lengow/Sync/Model/Order.php
CHANGED
@@ -5,43 +5,53 @@
|
|
5 |
* @category Lengow
|
6 |
* @package Lengow_Sync
|
7 |
* @author Ludovic Drin <ludovic@lengow.com>
|
8 |
-
* @copyright 2013 Lengow SAS
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
class Lengow_Sync_Model_Order extends Mage_Sales_Model_Order {
|
12 |
-
|
13 |
protected $_countryCollection;
|
14 |
protected $_config;
|
15 |
-
|
16 |
protected $_canInvoice = false;
|
17 |
protected $_canShip = false;
|
18 |
protected $_canCancel = false;
|
19 |
protected $_canRefund = false;
|
20 |
-
|
21 |
protected $_hasInvoices = false;
|
22 |
protected $_hasShipments = false;
|
23 |
protected $_isCanceled = false;
|
24 |
protected $_isRefunded = false;
|
25 |
-
|
26 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
27 |
$order = Mage::getModel('sales/order')->getCollection()
|
28 |
->addAttributeToFilter('order_id_lengow', $id_lengow)
|
29 |
-
->
|
|
|
|
|
30 |
if(count($order) > 0)
|
31 |
return true;
|
32 |
else
|
33 |
return false;
|
34 |
}
|
35 |
-
|
36 |
public function getOrderByIdLengow($id_lengow, $id_flux) {
|
37 |
$order = Mage::getModel('sales/order')->getCollection()
|
38 |
->addAttributeToFilter('order_id_lengow', $id_lengow)
|
|
|
39 |
->addAttributeToSelect('entity_id')
|
40 |
->getData();
|
41 |
-
if(
|
42 |
-
return Mage::getModel('
|
43 |
}
|
44 |
-
|
45 |
/**
|
46 |
* Retrieve config singleton
|
47 |
*
|
@@ -53,23 +63,23 @@ class Lengow_Sync_Model_Order extends Mage_Sales_Model_Order {
|
|
53 |
}
|
54 |
return $this->_config;
|
55 |
}
|
56 |
-
|
57 |
/**
|
58 |
* Create quote
|
59 |
*
|
60 |
* @param Varien_Object $lengowItem
|
61 |
*/
|
62 |
public function createQuote(SimpleXMLelement $data, Lengow_Sync_Model_Customer_Customer $customer) {
|
63 |
-
$quote =
|
64 |
$quote->setIsMultiShipping(false)
|
65 |
->setCheckoutMethod(Mage_Checkout_Model_Type_Onepage::METHOD_CUSTOMER)
|
66 |
->setCustomerId($customer->getId())
|
67 |
->setCustomerEmail($customer->getEmail())
|
68 |
->setCustomerIsGuest(false)
|
69 |
-
->setCustomerGroupId($this->getConfig()->get('
|
70 |
->setCustomerFirstname($customer->getFirstname())
|
71 |
->setCustomerLastname($customer->getLastname())
|
72 |
-
->setStore(
|
73 |
// Add products to quote with data from Lengow
|
74 |
foreach($data->cart->products->product as $lengow_product) {
|
75 |
if(!$quote = $this->addItemToQuote($lengow_product, $quote, (string) $data->order_id)) {
|
@@ -78,7 +88,7 @@ class Lengow_Sync_Model_Order extends Mage_Sales_Model_Order {
|
|
78 |
}
|
79 |
// Set billing Address
|
80 |
$billing_address = $quote->getBillingAddress();
|
81 |
-
$billing_address->setShouldIgnoreValidation(true);
|
82 |
$customer_billing_address = Mage::getModel('customer/address')->load($customer->getDefaultBilling());
|
83 |
$billing_address->importCustomerAddress($customer_billing_address)->setSaveInAddressBook(0);
|
84 |
// Set shipping Address
|
@@ -121,7 +131,7 @@ class Lengow_Sync_Model_Order extends Mage_Sales_Model_Order {
|
|
121 |
$quote->save();
|
122 |
return $quote;
|
123 |
}
|
124 |
-
|
125 |
/**
|
126 |
* Add item to quote
|
127 |
*
|
@@ -129,9 +139,9 @@ class Lengow_Sync_Model_Order extends Mage_Sales_Model_Order {
|
|
129 |
* @param Mage_Sales_Mode_Quote
|
130 |
* @return Mage_Sales_Mode_Quote
|
131 |
*/
|
132 |
-
public function addItemToQuote(SimpleXMLelement $lengow_product,
|
133 |
// TODO add while
|
134 |
-
$quote->setIsSuperMode(true);
|
135 |
$product_model = Mage::getModel('catalog/product');
|
136 |
$sku = (string) $lengow_product->sku;
|
137 |
$sku = str_replace('\_', '_', $sku);
|
@@ -152,29 +162,29 @@ class Lengow_Sync_Model_Order extends Mage_Sales_Model_Order {
|
|
152 |
$product->load($collection[0]['entity_id']);
|
153 |
}
|
154 |
}
|
155 |
-
if(!$product->getId()) {
|
156 |
$product = $product_model->load($product_model->getIdBySku($sku));
|
157 |
-
if(!$product->getId()) {
|
158 |
$sku = (string) $lengow_product->idMP;
|
159 |
$sku = str_replace('\_', '_', $sku);
|
160 |
$product = $product_model->load($product_model->getIdBySku($sku));
|
161 |
-
if(!$product->getId()) {
|
162 |
$sku = (string) $lengow_product->idLengow;
|
163 |
$sku = str_replace('\_', '_', $sku);
|
164 |
$product = $product_model->load($product_model->getIdBySku($sku));
|
165 |
-
if(!$product->getId()) {
|
166 |
$sku = (string) $lengow_product->sku;
|
167 |
$sku = str_replace('\_', '_', $sku);
|
168 |
$product = $product_model->load($sku);
|
169 |
-
if(!$product->getId()) {
|
170 |
$sku = (string) $lengow_product->idMP;
|
171 |
$sku = str_replace('\_', '_', $sku);
|
172 |
$product = $product_model->load($sku);
|
173 |
-
if(!$product->getId()) {
|
174 |
$sku = (string) $lengow_product->idLengow;
|
175 |
$sku = str_replace('\_', '_', $sku);
|
176 |
$product = $product_model->load($sku);
|
177 |
-
if(!$product->getId()) {
|
178 |
Mage::helper('sync')->log('Order ' . $order_id . ' : Product ' . (string) $lengow_product->sku . ' doesn\'t exist');
|
179 |
return false;
|
180 |
}
|
@@ -196,21 +206,21 @@ class Lengow_Sync_Model_Order extends Mage_Sales_Model_Order {
|
|
196 |
$title_from_lengow = $this->getConfig()->setStore($quote->getStore()->getStoreId())->get('orders/title');
|
197 |
if($title_from_lengow)
|
198 |
$quote_item->setName((string) $lengow_product->title);
|
199 |
-
$quote->addItem($quote_item);
|
200 |
return $quote;
|
201 |
}
|
202 |
-
|
203 |
/**
|
204 |
* Create order
|
205 |
-
*
|
206 |
* @param Mage_Sales_Model_Quote
|
207 |
-
* @return Mage_Sales_Model_Order
|
208 |
*/
|
209 |
-
public function makeOrder(SimpleXMLelement $data, Mage_Sales_Model_Quote $quote) {
|
210 |
-
try {
|
211 |
-
$order = false;
|
212 |
$store = $quote->getStore();
|
213 |
-
$grand_total = 0;
|
214 |
if (!Mage::helper('tax')->priceIncludesTax($store)) {
|
215 |
$grand_total = $quote->getGrandTotal();
|
216 |
}
|
@@ -226,20 +236,24 @@ class Lengow_Sync_Model_Order extends Mage_Sales_Model_Order {
|
|
226 |
'total_paid_lengow' => (float) $data->order_amount ,
|
227 |
'carrier_lengow' => (string) $data->tracking_informations->tracking_carrier ,
|
228 |
'carrier_method_lengow' => (string) $data->tracking_informations->tracking_method ,
|
|
|
|
|
|
|
|
|
229 |
);
|
230 |
$service = Mage::getModel('sales/service_quote', $quote);
|
231 |
$service->setOrderData($additional_data);
|
232 |
$order = false;
|
233 |
-
if(method_exists($service, 'submitAll')) {
|
234 |
$service->submitAll();
|
235 |
$order = $service->getOrder();
|
236 |
} else {
|
237 |
$order = $service->submit();
|
238 |
}
|
239 |
-
$order->setIsFromLengow(true)
|
240 |
-
->save();
|
241 |
// Re-ajuste cents
|
242 |
-
// Conversion Tax Include > Tax Exclude > Tax Include maybe make 0.01 amount error
|
243 |
if (!Mage::helper('tax')->priceIncludesTax($store)) {
|
244 |
|
245 |
if($order->getBaseShippingInclTax() != (float) $data->order_shipping) {
|
@@ -253,10 +267,11 @@ class Lengow_Sync_Model_Order extends Mage_Sales_Model_Order {
|
|
253 |
}
|
254 |
$order->save();
|
255 |
}
|
256 |
-
|
|
|
257 |
// FIX fields amount & taxes
|
258 |
$products = Mage::getResourceModel('sales/order_item_collection')
|
259 |
-
->setOrderFilter($order->getId());
|
260 |
foreach($products as $product) {
|
261 |
$product->setBaseOriginalPrice($product->getOriginalPrice());
|
262 |
$product->setBaseTaxAmount($product->getTaxAmount());
|
@@ -274,13 +289,13 @@ class Lengow_Sync_Model_Order extends Mage_Sales_Model_Order {
|
|
274 |
$order->save();
|
275 |
} catch (Exception $e){
|
276 |
Mage::helper('sync')->log('Error create order : ' . $e->getMessage());
|
277 |
-
}
|
278 |
-
return $order;
|
279 |
}
|
280 |
-
|
281 |
/**
|
282 |
* Create invoice
|
283 |
-
*
|
284 |
* @param Mage_Sales_Model_Order
|
285 |
* @return Lengow_Sync_Model_Order
|
286 |
*/
|
@@ -296,10 +311,10 @@ class Lengow_Sync_Model_Order extends Mage_Sales_Model_Order {
|
|
296 |
$transactionSave->save();
|
297 |
$this->_hasInvoices = true;
|
298 |
}
|
299 |
-
}
|
300 |
return $order;
|
301 |
}
|
302 |
-
|
303 |
/**
|
304 |
* Ship order
|
305 |
*
|
@@ -307,7 +322,7 @@ class Lengow_Sync_Model_Order extends Mage_Sales_Model_Order {
|
|
307 |
* @return Lengow_Sync_Model_Order
|
308 |
*/
|
309 |
public function toShip($order, $carrier = null, $title = '', $tracking = '') {
|
310 |
-
if($
|
311 |
$shipment = Mage::getModel('sales/service_order', $order)->prepareShipment();
|
312 |
if($shipment) {
|
313 |
$shipment->register();
|
@@ -318,17 +333,30 @@ class Lengow_Sync_Model_Order extends Mage_Sales_Model_Order {
|
|
318 |
$transactionSave->save();
|
319 |
$this->_hasShipments = true;
|
320 |
// Add tracking information
|
321 |
-
if($tracking)
|
322 |
-
|
323 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
324 |
$carrier ,
|
325 |
$title ,
|
326 |
-
$tracking);
|
327 |
}
|
328 |
-
}
|
329 |
return $this;
|
330 |
}
|
331 |
-
|
332 |
/**
|
333 |
* Cancel order
|
334 |
*
|
@@ -340,10 +368,10 @@ class Lengow_Sync_Model_Order extends Mage_Sales_Model_Order {
|
|
340 |
$order->cancel();
|
341 |
$this->_isCanceled = true;
|
342 |
}
|
343 |
-
|
344 |
return $this;
|
345 |
}
|
346 |
-
|
347 |
/**
|
348 |
* Refund order
|
349 |
*
|
@@ -352,17 +380,17 @@ class Lengow_Sync_Model_Order extends Mage_Sales_Model_Order {
|
|
352 |
*/
|
353 |
public function toRefund(Lengow_Sync_Model_Order $order) {
|
354 |
if($this->_canRefund && $order->canCreditmemo()) {
|
355 |
-
$invoice_id = $order->getInvoiceCollection()->getFirstItem()->getId();
|
356 |
if(!$invoice_id) {
|
357 |
-
return $this;
|
358 |
-
}
|
359 |
$invoice = Mage::getModel('sales/order_invoice')->load($invoice_id)->setOrder($order);
|
360 |
$service = Mage::getModel('sales/service_order', $order);
|
361 |
-
$creditmemo = $service->prepareInvoiceCreditmemo($invoice);
|
362 |
$backToStock = array();
|
363 |
foreach($order->getAllItems() as $item) {
|
364 |
$backToStock[$item->getId()] = true;
|
365 |
-
}
|
366 |
// Process back to stock flags
|
367 |
foreach ($creditmemo->getAllItems() as $creditmemoItem) {
|
368 |
$orderItem = $creditmemoItem->getOrderItem();
|
@@ -372,8 +400,8 @@ class Lengow_Sync_Model_Order extends Mage_Sales_Model_Order {
|
|
372 |
} else {
|
373 |
$creditmemoItem->setBackToStock(false);
|
374 |
}
|
375 |
-
}
|
376 |
-
$creditmemo->register();
|
377 |
$transactionSave = Mage::getModel('core/resource_transaction')
|
378 |
->addObject($creditmemo)
|
379 |
->addObject($creditmemo->getOrder());
|
@@ -382,13 +410,13 @@ class Lengow_Sync_Model_Order extends Mage_Sales_Model_Order {
|
|
382 |
}
|
383 |
$transactionSave->save();
|
384 |
$this->_isRefunded = true;
|
385 |
-
}
|
386 |
return $this;
|
387 |
}
|
388 |
-
|
389 |
/**
|
390 |
* Retrieve country id based on country name
|
391 |
-
*
|
392 |
* @param string $country_name
|
393 |
* @return string
|
394 |
*/
|
5 |
* @category Lengow
|
6 |
* @package Lengow_Sync
|
7 |
* @author Ludovic Drin <ludovic@lengow.com>
|
8 |
+
* @copyright 2013 Lengow SAS
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
class Lengow_Sync_Model_Order extends Mage_Sales_Model_Order {
|
12 |
+
|
13 |
protected $_countryCollection;
|
14 |
protected $_config;
|
15 |
+
|
16 |
protected $_canInvoice = false;
|
17 |
protected $_canShip = false;
|
18 |
protected $_canCancel = false;
|
19 |
protected $_canRefund = false;
|
20 |
+
|
21 |
protected $_hasInvoices = false;
|
22 |
protected $_hasShipments = false;
|
23 |
protected $_isCanceled = false;
|
24 |
protected $_isRefunded = false;
|
25 |
+
|
26 |
+
private $_store;
|
27 |
+
|
28 |
+
public function __construct($id_store) {
|
29 |
+
$this->_store = Mage::getModel('core/store')->load($id_store);
|
30 |
+
parent::__construct();
|
31 |
+
}
|
32 |
+
|
33 |
+
public function isAlreadyImported($id_lengow, $id_flux) {
|
34 |
$order = Mage::getModel('sales/order')->getCollection()
|
35 |
->addAttributeToFilter('order_id_lengow', $id_lengow)
|
36 |
+
->addAttributeToFilter('feed_id_lengow', $id_flux)
|
37 |
+
->addAttributeToSelect('order_id_lengow')
|
38 |
+
->getData();;
|
39 |
if(count($order) > 0)
|
40 |
return true;
|
41 |
else
|
42 |
return false;
|
43 |
}
|
44 |
+
|
45 |
public function getOrderByIdLengow($id_lengow, $id_flux) {
|
46 |
$order = Mage::getModel('sales/order')->getCollection()
|
47 |
->addAttributeToFilter('order_id_lengow', $id_lengow)
|
48 |
+
->addAttributeToFilter('feed_id_lengow', $id_flux)
|
49 |
->addAttributeToSelect('entity_id')
|
50 |
->getData();
|
51 |
+
if(isset($order[0]['entity_id']))
|
52 |
+
return Mage::getModel('sales/order')->load($order[0]['entity_id']);
|
53 |
}
|
54 |
+
|
55 |
/**
|
56 |
* Retrieve config singleton
|
57 |
*
|
63 |
}
|
64 |
return $this->_config;
|
65 |
}
|
66 |
+
|
67 |
/**
|
68 |
* Create quote
|
69 |
*
|
70 |
* @param Varien_Object $lengowItem
|
71 |
*/
|
72 |
public function createQuote(SimpleXMLelement $data, Lengow_Sync_Model_Customer_Customer $customer) {
|
73 |
+
$quote = Mage::getModel('sales/quote');
|
74 |
$quote->setIsMultiShipping(false)
|
75 |
->setCheckoutMethod(Mage_Checkout_Model_Type_Onepage::METHOD_CUSTOMER)
|
76 |
->setCustomerId($customer->getId())
|
77 |
->setCustomerEmail($customer->getEmail())
|
78 |
->setCustomerIsGuest(false)
|
79 |
+
->setCustomerGroupId($this->getConfig()->get('orders/customer_group'))
|
80 |
->setCustomerFirstname($customer->getFirstname())
|
81 |
->setCustomerLastname($customer->getLastname())
|
82 |
+
->setStore($this->_store);
|
83 |
// Add products to quote with data from Lengow
|
84 |
foreach($data->cart->products->product as $lengow_product) {
|
85 |
if(!$quote = $this->addItemToQuote($lengow_product, $quote, (string) $data->order_id)) {
|
88 |
}
|
89 |
// Set billing Address
|
90 |
$billing_address = $quote->getBillingAddress();
|
91 |
+
$billing_address->setShouldIgnoreValidation(true);
|
92 |
$customer_billing_address = Mage::getModel('customer/address')->load($customer->getDefaultBilling());
|
93 |
$billing_address->importCustomerAddress($customer_billing_address)->setSaveInAddressBook(0);
|
94 |
// Set shipping Address
|
131 |
$quote->save();
|
132 |
return $quote;
|
133 |
}
|
134 |
+
|
135 |
/**
|
136 |
* Add item to quote
|
137 |
*
|
139 |
* @param Mage_Sales_Mode_Quote
|
140 |
* @return Mage_Sales_Mode_Quote
|
141 |
*/
|
142 |
+
public function addItemToQuote(SimpleXMLelement $lengow_product, $quote, $order_id) {
|
143 |
// TODO add while
|
144 |
+
$quote->setIsSuperMode(true);
|
145 |
$product_model = Mage::getModel('catalog/product');
|
146 |
$sku = (string) $lengow_product->sku;
|
147 |
$sku = str_replace('\_', '_', $sku);
|
162 |
$product->load($collection[0]['entity_id']);
|
163 |
}
|
164 |
}
|
165 |
+
if(!empty($sku) && !$product->getId()) {
|
166 |
$product = $product_model->load($product_model->getIdBySku($sku));
|
167 |
+
if(!empty($sku) && !$product->getId()) {
|
168 |
$sku = (string) $lengow_product->idMP;
|
169 |
$sku = str_replace('\_', '_', $sku);
|
170 |
$product = $product_model->load($product_model->getIdBySku($sku));
|
171 |
+
if(!empty($sku) && !$product->getId()) {
|
172 |
$sku = (string) $lengow_product->idLengow;
|
173 |
$sku = str_replace('\_', '_', $sku);
|
174 |
$product = $product_model->load($product_model->getIdBySku($sku));
|
175 |
+
if(!empty($sku) && !$product->getId()) {
|
176 |
$sku = (string) $lengow_product->sku;
|
177 |
$sku = str_replace('\_', '_', $sku);
|
178 |
$product = $product_model->load($sku);
|
179 |
+
if(!empty($sku) && !$product->getId()) {
|
180 |
$sku = (string) $lengow_product->idMP;
|
181 |
$sku = str_replace('\_', '_', $sku);
|
182 |
$product = $product_model->load($sku);
|
183 |
+
if(!empty($sku) && !$product->getId()) {
|
184 |
$sku = (string) $lengow_product->idLengow;
|
185 |
$sku = str_replace('\_', '_', $sku);
|
186 |
$product = $product_model->load($sku);
|
187 |
+
if(!empty($sku) && !$product->getId()) {
|
188 |
Mage::helper('sync')->log('Order ' . $order_id . ' : Product ' . (string) $lengow_product->sku . ' doesn\'t exist');
|
189 |
return false;
|
190 |
}
|
206 |
$title_from_lengow = $this->getConfig()->setStore($quote->getStore()->getStoreId())->get('orders/title');
|
207 |
if($title_from_lengow)
|
208 |
$quote_item->setName((string) $lengow_product->title);
|
209 |
+
$quote->addItem($quote_item);
|
210 |
return $quote;
|
211 |
}
|
212 |
+
|
213 |
/**
|
214 |
* Create order
|
215 |
+
*
|
216 |
* @param Mage_Sales_Model_Quote
|
217 |
+
* @return Mage_Sales_Model_Order
|
218 |
*/
|
219 |
+
public function makeOrder(SimpleXMLelement $data, Mage_Sales_Model_Quote $quote, $invoice = true) {
|
220 |
+
try {
|
221 |
+
$order = false;
|
222 |
$store = $quote->getStore();
|
223 |
+
$grand_total = 0;
|
224 |
if (!Mage::helper('tax')->priceIncludesTax($store)) {
|
225 |
$grand_total = $quote->getGrandTotal();
|
226 |
}
|
236 |
'total_paid_lengow' => (float) $data->order_amount ,
|
237 |
'carrier_lengow' => (string) $data->tracking_informations->tracking_carrier ,
|
238 |
'carrier_method_lengow' => (string) $data->tracking_informations->tracking_method ,
|
239 |
+
'global_currency_code' => (string) $data->order_currency ,
|
240 |
+
'base_currency_code' => (string) $data->order_currency ,
|
241 |
+
'store_currency_code' => (string) $data->order_currency ,
|
242 |
+
'order_currency_code' => (string) $data->order_currency ,
|
243 |
);
|
244 |
$service = Mage::getModel('sales/service_quote', $quote);
|
245 |
$service->setOrderData($additional_data);
|
246 |
$order = false;
|
247 |
+
if(method_exists($service, 'submitAll')) {
|
248 |
$service->submitAll();
|
249 |
$order = $service->getOrder();
|
250 |
} else {
|
251 |
$order = $service->submit();
|
252 |
}
|
253 |
+
$order->setIsFromLengow(true)
|
254 |
+
->save();
|
255 |
// Re-ajuste cents
|
256 |
+
// Conversion Tax Include > Tax Exclude > Tax Include maybe make 0.01 amount error
|
257 |
if (!Mage::helper('tax')->priceIncludesTax($store)) {
|
258 |
|
259 |
if($order->getBaseShippingInclTax() != (float) $data->order_shipping) {
|
267 |
}
|
268 |
$order->save();
|
269 |
}
|
270 |
+
if($invoice)
|
271 |
+
$order = $this->toInvoice($order);
|
272 |
// FIX fields amount & taxes
|
273 |
$products = Mage::getResourceModel('sales/order_item_collection')
|
274 |
+
->setOrderFilter($order->getId());
|
275 |
foreach($products as $product) {
|
276 |
$product->setBaseOriginalPrice($product->getOriginalPrice());
|
277 |
$product->setBaseTaxAmount($product->getTaxAmount());
|
289 |
$order->save();
|
290 |
} catch (Exception $e){
|
291 |
Mage::helper('sync')->log('Error create order : ' . $e->getMessage());
|
292 |
+
}
|
293 |
+
return $order;
|
294 |
}
|
295 |
+
|
296 |
/**
|
297 |
* Create invoice
|
298 |
+
*
|
299 |
* @param Mage_Sales_Model_Order
|
300 |
* @return Lengow_Sync_Model_Order
|
301 |
*/
|
311 |
$transactionSave->save();
|
312 |
$this->_hasInvoices = true;
|
313 |
}
|
314 |
+
}
|
315 |
return $order;
|
316 |
}
|
317 |
+
|
318 |
/**
|
319 |
* Ship order
|
320 |
*
|
322 |
* @return Lengow_Sync_Model_Order
|
323 |
*/
|
324 |
public function toShip($order, $carrier = null, $title = '', $tracking = '') {
|
325 |
+
if($order->canShip()) {
|
326 |
$shipment = Mage::getModel('sales/service_order', $order)->prepareShipment();
|
327 |
if($shipment) {
|
328 |
$shipment->register();
|
333 |
$transactionSave->save();
|
334 |
$this->_hasShipments = true;
|
335 |
// Add tracking information
|
336 |
+
if($tracking) {
|
337 |
+
$shipment = Mage::getModel('sales/order_shipment')->loadByIncrementId($shipment->getIncrementId());
|
338 |
+
$track = Mage::getModel('sales/order_shipment_track')
|
339 |
+
->setNumber($tracking)
|
340 |
+
->setCarrierCode($carrier)
|
341 |
+
->setTitle($title);
|
342 |
+
$shipment->addTrack($track);
|
343 |
+
}
|
344 |
+
try {
|
345 |
+
$shipment->save();
|
346 |
+
$track->save();
|
347 |
+
} catch (Mage_Core_Exception $e) {
|
348 |
+
Mage::helper('sync')->log('Error create shipment : ' . $e->getMessage());
|
349 |
+
}
|
350 |
+
/*$ship = Mage::getModel('sales/order_shipment_api')
|
351 |
+
->addTrack($shipment->getIncrementId() ,
|
352 |
$carrier ,
|
353 |
$title ,
|
354 |
+
$tracking); */
|
355 |
}
|
356 |
+
}
|
357 |
return $this;
|
358 |
}
|
359 |
+
|
360 |
/**
|
361 |
* Cancel order
|
362 |
*
|
368 |
$order->cancel();
|
369 |
$this->_isCanceled = true;
|
370 |
}
|
371 |
+
|
372 |
return $this;
|
373 |
}
|
374 |
+
|
375 |
/**
|
376 |
* Refund order
|
377 |
*
|
380 |
*/
|
381 |
public function toRefund(Lengow_Sync_Model_Order $order) {
|
382 |
if($this->_canRefund && $order->canCreditmemo()) {
|
383 |
+
$invoice_id = $order->getInvoiceCollection()->getFirstItem()->getId();
|
384 |
if(!$invoice_id) {
|
385 |
+
return $this;
|
386 |
+
}
|
387 |
$invoice = Mage::getModel('sales/order_invoice')->load($invoice_id)->setOrder($order);
|
388 |
$service = Mage::getModel('sales/service_order', $order);
|
389 |
+
$creditmemo = $service->prepareInvoiceCreditmemo($invoice);
|
390 |
$backToStock = array();
|
391 |
foreach($order->getAllItems() as $item) {
|
392 |
$backToStock[$item->getId()] = true;
|
393 |
+
}
|
394 |
// Process back to stock flags
|
395 |
foreach ($creditmemo->getAllItems() as $creditmemoItem) {
|
396 |
$orderItem = $creditmemoItem->getOrderItem();
|
400 |
} else {
|
401 |
$creditmemoItem->setBackToStock(false);
|
402 |
}
|
403 |
+
}
|
404 |
+
$creditmemo->register();
|
405 |
$transactionSave = Mage::getModel('core/resource_transaction')
|
406 |
->addObject($creditmemo)
|
407 |
->addObject($creditmemo->getOrder());
|
410 |
}
|
411 |
$transactionSave->save();
|
412 |
$this->_isRefunded = true;
|
413 |
+
}
|
414 |
return $this;
|
415 |
}
|
416 |
+
|
417 |
/**
|
418 |
* Retrieve country id based on country name
|
419 |
+
*
|
420 |
* @param string $country_name
|
421 |
* @return string
|
422 |
*/
|
app/code/community/Lengow/Sync/Model/Payment/.DS_Store
DELETED
Binary file
|
app/code/community/Lengow/Sync/Model/Payment/Method/Lengow.php
CHANGED
@@ -5,12 +5,12 @@
|
|
5 |
* @category Lengow
|
6 |
* @package Lengow_Sync
|
7 |
* @author Ludovic Drin <ludovic@lengow.com>
|
8 |
-
* @copyright 2013 Lengow SAS
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
class Lengow_Sync_Model_Payment_Method_Lengow extends Mage_Payment_Model_Method_Abstract {
|
12 |
-
|
13 |
-
|
14 |
protected $_infoBlockType = 'sync/payment_info_purchaseorder';
|
15 |
|
16 |
/**
|
@@ -27,14 +27,14 @@ class Lengow_Sync_Model_Payment_Method_Lengow extends Mage_Payment_Model_Method_
|
|
27 |
return $this;
|
28 |
}
|
29 |
|
30 |
-
|
31 |
* Check whether payment method can be used
|
32 |
* @param Mage_Sales_Model_Quote
|
33 |
* @return bool
|
34 |
*/
|
35 |
public function isAvailable($quote = null) {
|
36 |
if(Mage::getSingleton('checkout/session')->getIsFromlengow())
|
37 |
-
return true;
|
38 |
return false;
|
39 |
-
|
40 |
}
|
5 |
* @category Lengow
|
6 |
* @package Lengow_Sync
|
7 |
* @author Ludovic Drin <ludovic@lengow.com>
|
8 |
+
* @copyright 2013 Lengow SAS
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
class Lengow_Sync_Model_Payment_Method_Lengow extends Mage_Payment_Model_Method_Abstract {
|
12 |
+
|
13 |
+
protected $_code = 'lengow';
|
14 |
protected $_infoBlockType = 'sync/payment_info_purchaseorder';
|
15 |
|
16 |
/**
|
27 |
return $this;
|
28 |
}
|
29 |
|
30 |
+
/**
|
31 |
* Check whether payment method can be used
|
32 |
* @param Mage_Sales_Model_Quote
|
33 |
* @return bool
|
34 |
*/
|
35 |
public function isAvailable($quote = null) {
|
36 |
if(Mage::getSingleton('checkout/session')->getIsFromlengow())
|
37 |
+
return true;
|
38 |
return false;
|
39 |
+
}
|
40 |
}
|
app/code/community/Lengow/Sync/controllers/.DS_Store
DELETED
Binary file
|
app/code/community/Lengow/Sync/controllers/Adminhtml/.DS_Store
DELETED
Binary file
|
app/code/community/Lengow/Sync/controllers/Adminhtml/Lengow/OrderController.php
CHANGED
@@ -50,24 +50,87 @@ class Lengow_Sync_Adminhtml_Lengow_OrderController extends Mage_Adminhtml_Contro
|
|
50 |
}
|
51 |
|
52 |
public function importAction() {
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
58 |
$import = Mage::getModel('sync/import');
|
59 |
-
$
|
60 |
-
|
61 |
-
if($
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
62 |
$this->_getSession()->addSuccess(Mage::helper('sync')->__('%d orders are imported', $result['new']));
|
63 |
-
if($
|
64 |
$this->_getSession()->addSuccess(Mage::helper('sync')->__('%d orders are updated', $result['update']));
|
65 |
-
if($
|
66 |
$this->_getSession()->addSuccess(Mage::helper('sync')->__('No order available to import'));
|
67 |
-
|
68 |
-
$this->
|
69 |
-
}
|
70 |
-
|
|
|
|
|
|
|
71 |
}
|
72 |
|
73 |
}
|
50 |
}
|
51 |
|
52 |
public function importAction() {
|
53 |
+
//if(!Mage::getSingleton('sync/config')->importCanStart()) {
|
54 |
+
// Mage::helper('sync/data')->log('##Error manuel import : import is already started##');
|
55 |
+
// $this->_getSession()->addError(Mage::helper('sync')->__('Import is already started'));
|
56 |
+
// $this->_redirect('*/*/index');
|
57 |
+
//} else {
|
58 |
+
Mage::helper('sync/data')->log('##Start manual import##');
|
59 |
+
$_force_update = $this->getRequest()->getParam('update');
|
60 |
+
$_default_store = Mage::getModel('core/store')->load(Mage::app()
|
61 |
+
->getWebsite(true)
|
62 |
+
->getDefaultGroup()
|
63 |
+
->getDefaultStoreId());
|
64 |
+
$_current_id_store = $_default_store->getId();
|
65 |
+
$_lengow_id_user_global = Mage::getModel('sync/config')->setStore($_current_id_store)->getConfig('tracker/general/login');
|
66 |
+
$_lengow_id_group_global = $this->_cleanGroup(Mage::getModel('sync/config')->setStore($_current_id_store)->getConfig('tracker/general/group'));
|
67 |
+
$result_new = 0;
|
68 |
+
$result_update = 0;
|
69 |
+
$result_new = 0;
|
70 |
+
$_default_is_imported = false;
|
71 |
$import = Mage::getModel('sync/import');
|
72 |
+
$import->setForceUpdate($_force_update);
|
73 |
+
// Import default shop if configured
|
74 |
+
if($_lengow_id_user_global && $_lengow_id_group_global) {
|
75 |
+
try {
|
76 |
+
$_default_is_imported = true;
|
77 |
+
Mage::helper('sync/data')->log('Start manual import in store ' . $_default_store->getName() . '(' . $_default_store->getId() . ')');
|
78 |
+
$days = Mage::getModel('sync/config')->setStore($_default_store->getId())
|
79 |
+
->getConfig('sync/orders/period');
|
80 |
+
$date_from = date('Y-m-d', strtotime(date('Y-m-d') . '-' . $days . 'days'));
|
81 |
+
$date_to = date('Y-m-d');
|
82 |
+
$result = $import->exec('orders', array('dateFrom' => $date_from,
|
83 |
+
'dateTo' => $date_to,
|
84 |
+
'id_store' => $_current_id_store));
|
85 |
+
$result_new = $result['new'];
|
86 |
+
$result_update = $result['update'];
|
87 |
+
} catch(Exception $e) {
|
88 |
+
$this->_getSession()->addError($e->getMessage());
|
89 |
+
Mage::helper('sync/data')->log('Error ' . $e->getMessage() . '');
|
90 |
+
}
|
91 |
+
}
|
92 |
+
$store_collection = Mage::getResourceModel('core/store_collection')
|
93 |
+
->addFieldToFilter('is_active', 1);
|
94 |
+
// Import different view if is different
|
95 |
+
foreach($store_collection as $store) {
|
96 |
+
try {
|
97 |
+
$_lengow_id_user_current = Mage::getModel('sync/config')->setStore($store->getId())->getConfig('tracker/general/login');
|
98 |
+
$_lengow_id_group_current = $this->_cleanGroup(Mage::getModel('sync/config')->setStore($store->getId())->getConfig('tracker/general/group'));
|
99 |
+
if(($_lengow_id_user_current != $_lengow_id_user_global || $_lengow_id_group_current != $_lengow_id_group_global)
|
100 |
+
&& $_lengow_id_user_current && $_lengow_id_group_current) {
|
101 |
+
if($store->getId() != $_current_id_store || !$_default_is_imported) {
|
102 |
+
Mage::helper('sync/data')->log('Start manual import in store ' . $store->getName() . '(' . $store->getId() . ')');
|
103 |
+
$days = Mage::getModel('sync/config')->setStore($store->getId())
|
104 |
+
->getConfig('sync/orders/period');
|
105 |
+
$date_from = date('Y-m-d', strtotime(date('Y-m-d') . '-' . $days . 'days'));
|
106 |
+
$date_to = date('Y-m-d');
|
107 |
+
$import = Mage::getModel('sync/import');
|
108 |
+
$import->setForceUpdate($_force_update);
|
109 |
+
$result = $import->exec('orders', array('dateFrom' => $date_from,
|
110 |
+
'dateTo' => $date_to,
|
111 |
+
'id_store' => $store->getId()));
|
112 |
+
$result_new += $result['new'];
|
113 |
+
$result_update += $result['update'];
|
114 |
+
}
|
115 |
+
}
|
116 |
+
} catch(Exception $e) {
|
117 |
+
$this->_getSession()->addError($e->getMessage());
|
118 |
+
Mage::helper('sync/data')->log('Error ' . $e->getMessage() . '');
|
119 |
+
}
|
120 |
+
}
|
121 |
+
if($result_new > 0)
|
122 |
$this->_getSession()->addSuccess(Mage::helper('sync')->__('%d orders are imported', $result['new']));
|
123 |
+
if($result_update > 0)
|
124 |
$this->_getSession()->addSuccess(Mage::helper('sync')->__('%d orders are updated', $result['update']));
|
125 |
+
if($result_new == 0 && $result_update == 0)
|
126 |
$this->_getSession()->addSuccess(Mage::helper('sync')->__('No order available to import'));
|
127 |
+
Mage::helper('sync/data')->log('##End manual import##');
|
128 |
+
$this->_redirect('*/*/index');
|
129 |
+
//}
|
130 |
+
}
|
131 |
+
|
132 |
+
private function _cleanGroup($data) {
|
133 |
+
return trim(str_replace(array("\r\n", ';', '-', '|', ' '), ';', $data), ',');
|
134 |
}
|
135 |
|
136 |
}
|
app/code/community/Lengow/Sync/controllers/ApiController.php
CHANGED
@@ -14,27 +14,16 @@ class Lengow_Sync_ApiController extends Mage_Core_Controller_Front_Action {
|
|
14 |
echo 'Please specify an action';
|
15 |
}
|
16 |
|
17 |
-
public function
|
18 |
-
$
|
19 |
-
|
20 |
-
|
21 |
-
$
|
22 |
-
|
23 |
-
|
24 |
-
$this->_rebuildOrder($order);
|
25 |
-
}
|
26 |
-
} else {
|
27 |
-
echo 'Order not find';
|
28 |
-
}
|
29 |
} else {
|
30 |
echo 'Unauthorised ip : ' . $_SERVER['REMOTE_ADDR'];
|
31 |
}
|
32 |
}
|
33 |
|
34 |
-
private function _rebuildOrder($order) {
|
35 |
-
}
|
36 |
-
|
37 |
-
private function _rebuildInvoice($order) {
|
38 |
-
|
39 |
-
}
|
40 |
}
|
14 |
echo 'Please specify an action';
|
15 |
}
|
16 |
|
17 |
+
public function checkAction() {
|
18 |
+
$_helper_export = Mage::helper('export/security');
|
19 |
+
$_helper_api = Mage::helper('sync/api');
|
20 |
+
if($_helper_export->checkIp()) {
|
21 |
+
$return = array('magento_version' => Mage::getVersion(),
|
22 |
+
'lengow_version' => $_helper_api->getVersion());
|
23 |
+
echo Mage::helper('core')->jsonEncode($return);
|
|
|
|
|
|
|
|
|
|
|
24 |
} else {
|
25 |
echo 'Unauthorised ip : ' . $_SERVER['REMOTE_ADDR'];
|
26 |
}
|
27 |
}
|
28 |
|
|
|
|
|
|
|
|
|
|
|
|
|
29 |
}
|
app/code/community/Lengow/Sync/etc/config.xml
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Lengow_Sync>
|
5 |
-
<version>2.0.1.
|
6 |
</Lengow_Sync>
|
7 |
</modules>
|
8 |
<admin>
|
@@ -11,7 +11,7 @@
|
|
11 |
<use>admin</use>
|
12 |
<args>
|
13 |
<module>Lengow_Sync</module>
|
14 |
-
<frontName>
|
15 |
</args>
|
16 |
</sync>
|
17 |
<adminhtml>
|
@@ -236,6 +236,8 @@
|
|
236 |
<orders>
|
237 |
<period>3</period>
|
238 |
<customer_group>0</customer_group>
|
|
|
|
|
239 |
</orders>
|
240 |
<hidden>
|
241 |
<last_synchro>0000-00-00</last_synchro>
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Lengow_Sync>
|
5 |
+
<version>2.0.1.5</version>
|
6 |
</Lengow_Sync>
|
7 |
</modules>
|
8 |
<admin>
|
11 |
<use>admin</use>
|
12 |
<args>
|
13 |
<module>Lengow_Sync</module>
|
14 |
+
<frontName>lengow</frontName>
|
15 |
</args>
|
16 |
</sync>
|
17 |
<adminhtml>
|
236 |
<orders>
|
237 |
<period>3</period>
|
238 |
<customer_group>0</customer_group>
|
239 |
+
<pending>0</pending>
|
240 |
+
<processing_fee>1</processing_fee>
|
241 |
</orders>
|
242 |
<hidden>
|
243 |
<last_synchro>0000-00-00</last_synchro>
|
app/code/community/Lengow/Sync/etc/marketplaces.xml
CHANGED
@@ -134,6 +134,9 @@
|
|
134 |
<state name="CLOSED">
|
135 |
<lengow>shipped</lengow>
|
136 |
</state>
|
|
|
|
|
|
|
137 |
</states>
|
138 |
<additional_params>
|
139 |
<param usedby="shipped">
|
@@ -154,7 +157,7 @@
|
|
154 |
<value>GLS</value>
|
155 |
<value>DHL</value>
|
156 |
<value>Courrier Suivi</value>
|
157 |
-
</accepted_values>
|
158 |
</param>
|
159 |
</additional_params>
|
160 |
</marketplace>
|
@@ -202,11 +205,11 @@
|
|
202 |
</state>
|
203 |
</states>
|
204 |
<additional_params>
|
205 |
-
<param usedby="shipped">
|
206 |
<type>tracking</type>
|
207 |
<name>colis_idTracking</name>
|
208 |
</param>
|
209 |
-
<param usedby="shipped">
|
210 |
<type>carrier</type>
|
211 |
<name>transporteur</name>
|
212 |
</param>
|
@@ -218,6 +221,9 @@
|
|
218 |
<state name="New">
|
219 |
<lengow>new</lengow>
|
220 |
</state>
|
|
|
|
|
|
|
221 |
<state name="ToShip">
|
222 |
<actions>
|
223 |
<action type="shipped">shippedOrder</action>
|
@@ -227,7 +233,36 @@
|
|
227 |
<state name="Shipped">
|
228 |
<lengow>shipped</lengow>
|
229 |
</state>
|
|
|
|
|
|
|
|
|
|
|
|
|
230 |
</states>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
231 |
<additional_params>
|
232 |
<param usedby="shipped">
|
233 |
<type>tracking</type>
|
@@ -238,7 +273,7 @@
|
|
238 |
<marketplace name="cdiscount">
|
239 |
<api>https://wsdl.lengow.com/wsdl/cdiscount/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
240 |
<states>
|
241 |
-
<state name="
|
242 |
<actions>
|
243 |
<action type="accept">acceptOrder</action>
|
244 |
<action type="refuse">refuseOrder</action>
|
@@ -282,23 +317,32 @@
|
|
282 |
<state name="AutomaticCancellation">
|
283 |
<lengow>canceled</lengow>
|
284 |
</state>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
285 |
<state name="RefusedBySeller">
|
286 |
<lengow>canceled</lengow>
|
287 |
</state>
|
288 |
<state name="PickedUp">
|
289 |
<lengow>shipped</lengow>
|
290 |
-
</state>
|
291 |
</states>
|
292 |
<additional_params>
|
293 |
-
<param usedby="shipped">
|
294 |
<type>tracking</type>
|
295 |
<name>TrackingColis</name>
|
296 |
</param>
|
297 |
-
<param usedby="shipped">
|
298 |
<type>carrier</type>
|
299 |
<name>Transporteur</name>
|
300 |
<accepted_values>
|
301 |
-
<value label="La Poste">LAPOSTE</value>
|
302 |
<value label="DHL">DHL</value>
|
303 |
<value label="Fedex">FEDEX</value>
|
304 |
<value label="GLS">GLS</value>
|
@@ -529,7 +573,7 @@
|
|
529 |
<states>
|
530 |
<state name="new">
|
531 |
<lengow>new</lengow>
|
532 |
-
</state>
|
533 |
<state name="processing">
|
534 |
<actions>
|
535 |
<action type="refuse">refuseOrder</action>
|
@@ -576,7 +620,7 @@
|
|
576 |
<marketplace name="pixplace">
|
577 |
<states>
|
578 |
<state name="accepted">
|
579 |
-
<lengow>
|
580 |
</state>
|
581 |
<state name="processing">
|
582 |
<lengow>processing</lengow>
|
@@ -638,7 +682,7 @@
|
|
638 |
<name>TrackingColis</name>
|
639 |
</param>
|
640 |
</additional_params>
|
641 |
-
</marketplace>
|
642 |
<marketplace name="leoo">
|
643 |
<states>
|
644 |
<state name="Confirmé">
|
@@ -682,7 +726,7 @@
|
|
682 |
<name>Transporteur</name>
|
683 |
</param>
|
684 |
</additional_params>
|
685 |
-
</marketplace>
|
686 |
<marketplace name="ecopresto">
|
687 |
<api>https://wsdl.lengow.com/wsdl/ecopresto/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
688 |
<states>
|
@@ -691,7 +735,7 @@
|
|
691 |
</state>
|
692 |
<state name="processing">
|
693 |
<actions>
|
694 |
-
<action type="shipped">
|
695 |
</actions>
|
696 |
<lengow>processing</lengow>
|
697 |
</state>
|
@@ -717,7 +761,7 @@
|
|
717 |
</accepted_values>
|
718 |
</param>
|
719 |
</additional_params>
|
720 |
-
</marketplace>
|
721 |
<marketplace name="ecitizen">
|
722 |
<states>
|
723 |
<state name="processing">
|
@@ -728,7 +772,7 @@
|
|
728 |
</state>
|
729 |
</states>
|
730 |
</marketplace>
|
731 |
-
<marketplace name="
|
732 |
<states>
|
733 |
<state name="RECEIVED">
|
734 |
<lengow>new</lengow>
|
@@ -768,4 +812,212 @@
|
|
768 |
</state>
|
769 |
</states>
|
770 |
</marketplace>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
771 |
</marketplaces>
|
134 |
<state name="CLOSED">
|
135 |
<lengow>shipped</lengow>
|
136 |
</state>
|
137 |
+
<state name="CANCELLED">
|
138 |
+
<lengow>canceled</lengow>
|
139 |
+
</state>
|
140 |
</states>
|
141 |
<additional_params>
|
142 |
<param usedby="shipped">
|
157 |
<value>GLS</value>
|
158 |
<value>DHL</value>
|
159 |
<value>Courrier Suivi</value>
|
160 |
+
</accepted_values>
|
161 |
</param>
|
162 |
</additional_params>
|
163 |
</marketplace>
|
205 |
</state>
|
206 |
</states>
|
207 |
<additional_params>
|
208 |
+
<param usedby="shipped" require="carrier">
|
209 |
<type>tracking</type>
|
210 |
<name>colis_idTracking</name>
|
211 |
</param>
|
212 |
+
<param usedby="shipped" require="tracking">
|
213 |
<type>carrier</type>
|
214 |
<name>transporteur</name>
|
215 |
</param>
|
221 |
<state name="New">
|
222 |
<lengow>new</lengow>
|
223 |
</state>
|
224 |
+
<state name="new">
|
225 |
+
<lengow>new</lengow>
|
226 |
+
</state>
|
227 |
<state name="ToShip">
|
228 |
<actions>
|
229 |
<action type="shipped">shippedOrder</action>
|
233 |
<state name="Shipped">
|
234 |
<lengow>shipped</lengow>
|
235 |
</state>
|
236 |
+
<state name="Completed">
|
237 |
+
<lengow>shipped</lengow>
|
238 |
+
</state>
|
239 |
+
<state name="Cancelled">
|
240 |
+
<lengow>canceled</lengow>
|
241 |
+
</state>
|
242 |
</states>
|
243 |
+
<payments>
|
244 |
+
<payment name="NoPaymentFailure">
|
245 |
+
<lengow>complete</lengow>
|
246 |
+
</payment>
|
247 |
+
<payment name="PayPalPaymentInProcess">
|
248 |
+
<lengow>pending</lengow>
|
249 |
+
</payment>
|
250 |
+
<payment name="PayPalPaymentInProcess">
|
251 |
+
<lengow>pending</lengow>
|
252 |
+
</payment>
|
253 |
+
<payment name="MoneyXferAcceptedInCheckout">
|
254 |
+
<lengow>pending</lengow>
|
255 |
+
</payment>
|
256 |
+
<payment name="Complete">
|
257 |
+
<lengow>complete</lengow>
|
258 |
+
</payment>
|
259 |
+
<payment name="Incomplete">
|
260 |
+
<lengow>pending</lengow>
|
261 |
+
</payment>
|
262 |
+
<payment name="PaymentInProcess">
|
263 |
+
<lengow>pending</lengow>
|
264 |
+
</payment>
|
265 |
+
</payments>
|
266 |
<additional_params>
|
267 |
<param usedby="shipped">
|
268 |
<type>tracking</type>
|
273 |
<marketplace name="cdiscount">
|
274 |
<api>https://wsdl.lengow.com/wsdl/cdiscount/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
275 |
<states>
|
276 |
+
<state name="WaitingForSellerAcceptation">
|
277 |
<actions>
|
278 |
<action type="accept">acceptOrder</action>
|
279 |
<action type="refuse">refuseOrder</action>
|
317 |
<state name="AutomaticCancellation">
|
318 |
<lengow>canceled</lengow>
|
319 |
</state>
|
320 |
+
<state name="CancelledBeforePaymentByCustomer">
|
321 |
+
<lengow>canceled</lengow>
|
322 |
+
</state>
|
323 |
+
<state name="CancelledBeforeNotificationByCustomer">
|
324 |
+
<lengow>canceled</lengow>
|
325 |
+
</state>
|
326 |
+
<state name="CancellationRequestPending">
|
327 |
+
<lengow>canceled</lengow>
|
328 |
+
</state>
|
329 |
<state name="RefusedBySeller">
|
330 |
<lengow>canceled</lengow>
|
331 |
</state>
|
332 |
<state name="PickedUp">
|
333 |
<lengow>shipped</lengow>
|
334 |
+
</state>
|
335 |
</states>
|
336 |
<additional_params>
|
337 |
+
<param usedby="shipped" require="carrier">
|
338 |
<type>tracking</type>
|
339 |
<name>TrackingColis</name>
|
340 |
</param>
|
341 |
+
<param usedby="shipped" require="tracking">
|
342 |
<type>carrier</type>
|
343 |
<name>Transporteur</name>
|
344 |
<accepted_values>
|
345 |
+
<value label="La Poste" default="true">LAPOSTE</value>
|
346 |
<value label="DHL">DHL</value>
|
347 |
<value label="Fedex">FEDEX</value>
|
348 |
<value label="GLS">GLS</value>
|
573 |
<states>
|
574 |
<state name="new">
|
575 |
<lengow>new</lengow>
|
576 |
+
</state>
|
577 |
<state name="processing">
|
578 |
<actions>
|
579 |
<action type="refuse">refuseOrder</action>
|
620 |
<marketplace name="pixplace">
|
621 |
<states>
|
622 |
<state name="accepted">
|
623 |
+
<lengow>processing</lengow>
|
624 |
</state>
|
625 |
<state name="processing">
|
626 |
<lengow>processing</lengow>
|
682 |
<name>TrackingColis</name>
|
683 |
</param>
|
684 |
</additional_params>
|
685 |
+
</marketplace>
|
686 |
<marketplace name="leoo">
|
687 |
<states>
|
688 |
<state name="Confirmé">
|
726 |
<name>Transporteur</name>
|
727 |
</param>
|
728 |
</additional_params>
|
729 |
+
</marketplace>
|
730 |
<marketplace name="ecopresto">
|
731 |
<api>https://wsdl.lengow.com/wsdl/ecopresto/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
732 |
<states>
|
735 |
</state>
|
736 |
<state name="processing">
|
737 |
<actions>
|
738 |
+
<action type="shipped">setTracking</action>
|
739 |
</actions>
|
740 |
<lengow>processing</lengow>
|
741 |
</state>
|
761 |
</accepted_values>
|
762 |
</param>
|
763 |
</additional_params>
|
764 |
+
</marketplace>
|
765 |
<marketplace name="ecitizen">
|
766 |
<states>
|
767 |
<state name="processing">
|
772 |
</state>
|
773 |
</states>
|
774 |
</marketplace>
|
775 |
+
<marketplace name="godsavethekids">
|
776 |
<states>
|
777 |
<state name="RECEIVED">
|
778 |
<lengow>new</lengow>
|
812 |
</state>
|
813 |
</states>
|
814 |
</marketplace>
|
815 |
+
<marketplace name="mistergooddeal">
|
816 |
+
<api>https://wsdl.lengow.com/wsdl/mistergooddeal/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
817 |
+
<states>
|
818 |
+
<state name="RECEIVED">
|
819 |
+
<lengow>new</lengow>
|
820 |
+
</state>
|
821 |
+
<state name="STAGING">
|
822 |
+
<lengow>new</lengow>
|
823 |
+
</state>
|
824 |
+
<state name="WAITING_ACCEPTANCE">
|
825 |
+
<lengow>new</lengow>
|
826 |
+
<actions>
|
827 |
+
<action type="accept">accept</action>
|
828 |
+
<action type="refuse">canceled</action>
|
829 |
+
</actions>
|
830 |
+
</state>
|
831 |
+
<state name="WAITING_DEBIT">
|
832 |
+
<lengow>new</lengow>
|
833 |
+
</state>
|
834 |
+
<state name="WAITING_DEBIT_PAYMENT">
|
835 |
+
<lengow>new</lengow>
|
836 |
+
</state>
|
837 |
+
<state name="SHIPPING">
|
838 |
+
<lengow>processing</lengow>
|
839 |
+
<actions>
|
840 |
+
<action type="shipped">shipped</action>
|
841 |
+
</actions>
|
842 |
+
</state>
|
843 |
+
<state name="RECEIVED">
|
844 |
+
<lengow>shipped</lengow>
|
845 |
+
</state>
|
846 |
+
<state name="SHIPPED">
|
847 |
+
<lengow>shipped</lengow>
|
848 |
+
</state>
|
849 |
+
<state name="CANCELED">
|
850 |
+
<lengow>canceled</lengow>
|
851 |
+
</state>
|
852 |
+
<state name="CLOSED">
|
853 |
+
<lengow>shipped</lengow>
|
854 |
+
</state>
|
855 |
+
<state name="REFUSED">
|
856 |
+
<lengow>canceled</lengow>
|
857 |
+
</state>
|
858 |
+
<state name="INCIDENT_OPEN">
|
859 |
+
<lengow>processing</lengow>
|
860 |
+
</state>
|
861 |
+
<state name="INCIDENT_CLOSED">
|
862 |
+
<lengow>processing</lengow>
|
863 |
+
</state>
|
864 |
+
<state name="WAITING_REFUND">
|
865 |
+
<lengow>processing</lengow>
|
866 |
+
</state>
|
867 |
+
<state name="WAITING_REFUND_PAYMENT">
|
868 |
+
<lengow>processing</lengow>
|
869 |
+
</state>
|
870 |
+
<state name="REFUNDED">
|
871 |
+
<lengow>canceled</lengow>
|
872 |
+
</state>
|
873 |
+
</states>
|
874 |
+
</marketplace>
|
875 |
+
<marketplace name="rakuten_de">
|
876 |
+
<api>https://wsdl.lengow.com/wsdl/rakutende/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
877 |
+
<states>
|
878 |
+
<state name="pending">
|
879 |
+
<lengow>new</lengow>
|
880 |
+
</state>
|
881 |
+
<state name="editable">
|
882 |
+
<lengow>processing</lengow>
|
883 |
+
<actions>
|
884 |
+
<action type="shipped">shipped</action>
|
885 |
+
</actions>
|
886 |
+
</state>
|
887 |
+
<state name="shipped">
|
888 |
+
<lengow>shipped</lengow>
|
889 |
+
</state>
|
890 |
+
<state name="payout">
|
891 |
+
<lengow>shipped</lengow>
|
892 |
+
</state>
|
893 |
+
<state name="cancelled">
|
894 |
+
<lengow>canceled</lengow>
|
895 |
+
</state>
|
896 |
+
</states>
|
897 |
+
</marketplace>
|
898 |
+
<marketplace name="spartoo">
|
899 |
+
<api>https://wsdl.lengow.com/wsdl/spartoo/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
900 |
+
<states>
|
901 |
+
<state name="0">
|
902 |
+
<lengow>new</lengow>
|
903 |
+
</state>
|
904 |
+
<state name="1">
|
905 |
+
<actions>
|
906 |
+
<action type="accept">processing</action>
|
907 |
+
<action type="cancel">canceled</action>
|
908 |
+
<action type="refund">refund</action>
|
909 |
+
</actions>
|
910 |
+
<lengow>new</lengow>
|
911 |
+
</state>
|
912 |
+
<state name="11">
|
913 |
+
<lengow>new</lengow>
|
914 |
+
<actions>
|
915 |
+
<action type="accept">processing</action>
|
916 |
+
<action type="cancel">canceled</action>
|
917 |
+
<action type="refund">refund</action>
|
918 |
+
</actions>
|
919 |
+
</state>
|
920 |
+
<state name="2">
|
921 |
+
<actions>
|
922 |
+
<action type="shipped" method="post">shipped</action>
|
923 |
+
<action type="cancel">canceled</action>
|
924 |
+
<action type="refund">refund</action>
|
925 |
+
</actions>
|
926 |
+
<lengow>processing</lengow>
|
927 |
+
</state>
|
928 |
+
<state name="3">
|
929 |
+
<lengow>shipped</lengow>
|
930 |
+
</state>
|
931 |
+
<state name="4">
|
932 |
+
<lengow>canceled</lengow>
|
933 |
+
</state>
|
934 |
+
<state name="41">
|
935 |
+
<lengow>canceled</lengow>
|
936 |
+
</state>
|
937 |
+
</states>
|
938 |
+
<additional_params>
|
939 |
+
<param usedby="shipped">
|
940 |
+
<type>tracking</type>
|
941 |
+
<name>tracking_number</name>
|
942 |
+
</param>
|
943 |
+
</additional_params>
|
944 |
+
</marketplace>
|
945 |
+
<marketplace name="zalando">
|
946 |
+
<api>http://wsdl.lengow.com/wsdl/zalando/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
947 |
+
<states>
|
948 |
+
<state name="New">
|
949 |
+
<lengow>new</lengow>
|
950 |
+
</state>
|
951 |
+
<state name="Approved">
|
952 |
+
<actions>
|
953 |
+
<action type="shipped" method="post">SHIPPED</action>
|
954 |
+
<action type="cancel" method="post">ZALANDO_CANCELED</action>
|
955 |
+
<action type="refund" method="post">NO_INVENTORY_CANCELED</action>
|
956 |
+
</actions>
|
957 |
+
<lengow>processing</lengow>
|
958 |
+
</state>
|
959 |
+
<state name="Shipped">
|
960 |
+
<actions>
|
961 |
+
<action type="returned" method="post">RETURNED</action>
|
962 |
+
</actions>
|
963 |
+
<lengow>shipped</lengow>
|
964 |
+
</state>
|
965 |
+
<state name="Returned">
|
966 |
+
<lengow>canceled</lengow>
|
967 |
+
</state>
|
968 |
+
<state name="canceled">
|
969 |
+
<lengow>canceled</lengow>
|
970 |
+
</state>
|
971 |
+
</states>
|
972 |
+
<additional_params>
|
973 |
+
<param usedby="shipped cancel refund returned">
|
974 |
+
<type>client_token</type>
|
975 |
+
<name>token</name>
|
976 |
+
</param>
|
977 |
+
<param usedby="shipped cancel refund returned">
|
978 |
+
<type>action</type>
|
979 |
+
<name>action</name>
|
980 |
+
</param>
|
981 |
+
<param usedby="shipped cancel refund returned">
|
982 |
+
<type>sku</type>
|
983 |
+
<name>sku</name>
|
984 |
+
</param>
|
985 |
+
<param usedby="shipped cancel refund returned">
|
986 |
+
<type>quantity</type>
|
987 |
+
<name>quantity</name>
|
988 |
+
</param>
|
989 |
+
<param usedby="shipped cancel refund returned">
|
990 |
+
<type>line</type>
|
991 |
+
<name>line</name>
|
992 |
+
</param>
|
993 |
+
<param usedby="shipped">
|
994 |
+
<type>tracking</type>
|
995 |
+
<name>trackingNumber</name>
|
996 |
+
</param>
|
997 |
+
<param usedby="shipped">
|
998 |
+
<type>return_tracking</type>
|
999 |
+
<name>returnTrackingNumber</name>
|
1000 |
+
</param>
|
1001 |
+
<param usedby="returned">
|
1002 |
+
<type>return_code</type>
|
1003 |
+
<name>returnReasonCode</name>
|
1004 |
+
</param>
|
1005 |
+
</additional_params>
|
1006 |
+
</marketplace>
|
1007 |
+
<marketplace name="placedumariage">
|
1008 |
+
<states>
|
1009 |
+
<state name="partielle">
|
1010 |
+
<lengow>new</lengow>
|
1011 |
+
</state>
|
1012 |
+
<state name="complète">
|
1013 |
+
<lengow>new</lengow>
|
1014 |
+
</state>
|
1015 |
+
<state name="expédiée">
|
1016 |
+
<lengow>shipped</lengow>
|
1017 |
+
</state>
|
1018 |
+
<state name="annulée">
|
1019 |
+
<lengow>canceled</lengow>
|
1020 |
+
</state>
|
1021 |
+
</states>
|
1022 |
+
</marketplace>
|
1023 |
</marketplaces>
|
app/code/community/Lengow/Sync/etc/system.xml
CHANGED
@@ -27,8 +27,8 @@
|
|
27 |
<label>Import orders from x days</label>
|
28 |
<sort_order>20</sort_order>
|
29 |
<show_in_default>1</show_in_default>
|
30 |
-
<show_in_website>
|
31 |
-
<show_in_store>
|
32 |
<comment>Choose period for Sync order</comment>
|
33 |
</period>
|
34 |
<customer_group>
|
@@ -36,8 +36,8 @@
|
|
36 |
<frontend_type>select</frontend_type>
|
37 |
<sort_order>30</sort_order>
|
38 |
<show_in_default>1</show_in_default>
|
39 |
-
<show_in_website>
|
40 |
-
<show_in_store>
|
41 |
<source_model>sync/system_config_source_customer_group</source_model>
|
42 |
</customer_group>
|
43 |
<date_import>
|
@@ -45,8 +45,8 @@
|
|
45 |
<frontend_type>select</frontend_type>
|
46 |
<sort_order>40</sort_order>
|
47 |
<show_in_default>1</show_in_default>
|
48 |
-
<show_in_website>
|
49 |
-
<show_in_store>
|
50 |
<source_model>adminhtml/system_config_source_yesno</source_model>
|
51 |
<comment>To change the date of import's order with the date of marketplace</comment>
|
52 |
</date_import>
|
@@ -55,8 +55,8 @@
|
|
55 |
<frontend_type>select</frontend_type>
|
56 |
<sort_order>40</sort_order>
|
57 |
<show_in_default>1</show_in_default>
|
58 |
-
<show_in_website>
|
59 |
-
<show_in_store>
|
60 |
<source_model>adminhtml/system_config_source_yesno</source_model>
|
61 |
<comment>Enable import every 30 minutes</comment>
|
62 |
</cron>
|
@@ -66,17 +66,37 @@
|
|
66 |
<frontend_type>select</frontend_type>
|
67 |
<sort_order>50</sort_order>
|
68 |
<show_in_default>1</show_in_default>
|
69 |
-
<show_in_website>
|
70 |
-
<show_in_store>
|
71 |
<source_model>adminhtml/system_config_source_yesno</source_model>
|
72 |
</title>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
73 |
<debug>
|
74 |
<label>Debug mode</label>
|
75 |
<frontend_type>select</frontend_type>
|
76 |
<sort_order>60</sort_order>
|
77 |
<show_in_default>1</show_in_default>
|
78 |
-
<show_in_website>
|
79 |
-
<show_in_store>
|
80 |
<source_model>adminhtml/system_config_source_yesno</source_model>
|
81 |
<comment>Only for preproduction's mode : no sync orders with Lengow, import orders every time</comment>
|
82 |
</debug>
|
27 |
<label>Import orders from x days</label>
|
28 |
<sort_order>20</sort_order>
|
29 |
<show_in_default>1</show_in_default>
|
30 |
+
<show_in_website>0</show_in_website>
|
31 |
+
<show_in_store>0</show_in_store>
|
32 |
<comment>Choose period for Sync order</comment>
|
33 |
</period>
|
34 |
<customer_group>
|
36 |
<frontend_type>select</frontend_type>
|
37 |
<sort_order>30</sort_order>
|
38 |
<show_in_default>1</show_in_default>
|
39 |
+
<show_in_website>0</show_in_website>
|
40 |
+
<show_in_store>0</show_in_store>
|
41 |
<source_model>sync/system_config_source_customer_group</source_model>
|
42 |
</customer_group>
|
43 |
<date_import>
|
45 |
<frontend_type>select</frontend_type>
|
46 |
<sort_order>40</sort_order>
|
47 |
<show_in_default>1</show_in_default>
|
48 |
+
<show_in_website>0</show_in_website>
|
49 |
+
<show_in_store>0</show_in_store>
|
50 |
<source_model>adminhtml/system_config_source_yesno</source_model>
|
51 |
<comment>To change the date of import's order with the date of marketplace</comment>
|
52 |
</date_import>
|
55 |
<frontend_type>select</frontend_type>
|
56 |
<sort_order>40</sort_order>
|
57 |
<show_in_default>1</show_in_default>
|
58 |
+
<show_in_website>0</show_in_website>
|
59 |
+
<show_in_store>0</show_in_store>
|
60 |
<source_model>adminhtml/system_config_source_yesno</source_model>
|
61 |
<comment>Enable import every 30 minutes</comment>
|
62 |
</cron>
|
66 |
<frontend_type>select</frontend_type>
|
67 |
<sort_order>50</sort_order>
|
68 |
<show_in_default>1</show_in_default>
|
69 |
+
<show_in_website>0</show_in_website>
|
70 |
+
<show_in_store>0</show_in_store>
|
71 |
<source_model>adminhtml/system_config_source_yesno</source_model>
|
72 |
</title>
|
73 |
+
<pending>
|
74 |
+
<label>Import order in pending payment</label>
|
75 |
+
<comment>Import an order in pendinf payment (like check or money order)</comment>
|
76 |
+
<frontend_type>select</frontend_type>
|
77 |
+
<sort_order>50</sort_order>
|
78 |
+
<show_in_default>1</show_in_default>
|
79 |
+
<show_in_website>0</show_in_website>
|
80 |
+
<show_in_store>0</show_in_store>
|
81 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
82 |
+
</pending>
|
83 |
+
<processing_fee>
|
84 |
+
<label>Import processing fee from Marketplace</label>
|
85 |
+
<comment>Import the processing fee</comment>
|
86 |
+
<frontend_type>select</frontend_type>
|
87 |
+
<sort_order>50</sort_order>
|
88 |
+
<show_in_default>1</show_in_default>
|
89 |
+
<show_in_website>0</show_in_website>
|
90 |
+
<show_in_store>0</show_in_store>
|
91 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
92 |
+
</processing_fee>
|
93 |
<debug>
|
94 |
<label>Debug mode</label>
|
95 |
<frontend_type>select</frontend_type>
|
96 |
<sort_order>60</sort_order>
|
97 |
<show_in_default>1</show_in_default>
|
98 |
+
<show_in_website>0</show_in_website>
|
99 |
+
<show_in_store>0</show_in_store>
|
100 |
<source_model>adminhtml/system_config_source_yesno</source_model>
|
101 |
<comment>Only for preproduction's mode : no sync orders with Lengow, import orders every time</comment>
|
102 |
</debug>
|
app/code/community/Lengow/Sync/sql/lengow_setup/mysql4-install-2.0.0.0.php
CHANGED
@@ -153,15 +153,14 @@ $installer = new Mage_Catalog_Model_Resource_Eav_Mysql4_Setup('core_setup');
|
|
153 |
|
154 |
$entity_id = $installer->getEntityTypeId('catalog_product');
|
155 |
$attribute = $installer->getAttribute($entity_id,'lengow_product');
|
156 |
-
|
157 |
-
if(!$attribute)
|
158 |
$installer->addAttribute('catalog_product', 'lengow_product', array(
|
159 |
'type' => 'int',
|
160 |
'backend' => '',
|
161 |
'frontend' => '',
|
162 |
'label' => 'Publish on Lengow',
|
163 |
'input' => 'boolean',
|
164 |
-
'global' =>
|
165 |
'visible' => 1,
|
166 |
'required' => 0,
|
167 |
'user_defined' => 1,
|
@@ -173,6 +172,10 @@ if(!$attribute)
|
|
173 |
'unique' => 0,
|
174 |
'used_in_product_listing' => 1
|
175 |
));
|
|
|
|
|
|
|
|
|
176 |
// TODO use Mage ORM
|
177 |
$installer->run(
|
178 |
"CREATE TABLE IF NOT EXISTS `{$this->getTable('lengow_log')}` (
|
153 |
|
154 |
$entity_id = $installer->getEntityTypeId('catalog_product');
|
155 |
$attribute = $installer->getAttribute($entity_id,'lengow_product');
|
156 |
+
if(!$attribute) {
|
|
|
157 |
$installer->addAttribute('catalog_product', 'lengow_product', array(
|
158 |
'type' => 'int',
|
159 |
'backend' => '',
|
160 |
'frontend' => '',
|
161 |
'label' => 'Publish on Lengow',
|
162 |
'input' => 'boolean',
|
163 |
+
'global' => 0,
|
164 |
'visible' => 1,
|
165 |
'required' => 0,
|
166 |
'user_defined' => 1,
|
172 |
'unique' => 0,
|
173 |
'used_in_product_listing' => 1
|
174 |
));
|
175 |
+
} else {
|
176 |
+
// Update attribute
|
177 |
+
$attribute->setIsGlobal(0)->save();
|
178 |
+
}
|
179 |
// TODO use Mage ORM
|
180 |
$installer->run(
|
181 |
"CREATE TABLE IF NOT EXISTS `{$this->getTable('lengow_log')}` (
|
app/code/community/Lengow/Tracker/Block/.DS_Store
DELETED
Binary file
|
app/code/community/Lengow/Tracker/Block/Tag/Capsule.php
CHANGED
@@ -76,7 +76,7 @@ class Lengow_Tracker_Block_Tag_Capsule extends Mage_Core_Block_Template {
|
|
76 |
|
77 |
// Order id - Lead / Payment / Confirmation
|
78 |
if (self::$_CURRENT_PAGE_TYPE == self::LENGOW_TRACK_PAGE_CONFIRMATION) {
|
79 |
-
self::$_ID_ORDER = Mage::getSingleton('checkout/session')->
|
80 |
}
|
81 |
|
82 |
// Ids Products - Page / Listpage / Basket / Payment / Confirmation
|
@@ -139,7 +139,7 @@ class Lengow_Tracker_Block_Tag_Capsule extends Mage_Core_Block_Template {
|
|
139 |
return '';
|
140 |
}
|
141 |
|
142 |
-
protected function _getCurrentProductsIds() {
|
143 |
$config = Mage::getModel('tracker/config');
|
144 |
$ids = array();
|
145 |
$products = $this->_getProductCollection()->getData();
|
@@ -148,7 +148,7 @@ class Lengow_Tracker_Block_Tag_Capsule extends Mage_Core_Block_Template {
|
|
148 |
$ids[] = $product[$config->get('tag/identifiant')];
|
149 |
}
|
150 |
}
|
151 |
-
return implode('|', $ids);
|
152 |
}
|
153 |
|
154 |
/**
|
@@ -194,10 +194,24 @@ class Lengow_Tracker_Block_Tag_Capsule extends Mage_Core_Block_Template {
|
|
194 |
$layer->setCurrentCategory($origCategory);
|
195 |
}
|
196 |
}
|
197 |
-
|
198 |
return $this->_productCollection;
|
199 |
}
|
200 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
201 |
/**
|
202 |
* Get catalog layer model
|
203 |
*
|
76 |
|
77 |
// Order id - Lead / Payment / Confirmation
|
78 |
if (self::$_CURRENT_PAGE_TYPE == self::LENGOW_TRACK_PAGE_CONFIRMATION) {
|
79 |
+
self::$_ID_ORDER = Mage::getSingleton('checkout/session')->getLastRealOrderId();
|
80 |
}
|
81 |
|
82 |
// Ids Products - Page / Listpage / Basket / Payment / Confirmation
|
139 |
return '';
|
140 |
}
|
141 |
|
142 |
+
protected function _getCurrentProductsIds($implode = true) {
|
143 |
$config = Mage::getModel('tracker/config');
|
144 |
$ids = array();
|
145 |
$products = $this->_getProductCollection()->getData();
|
148 |
$ids[] = $product[$config->get('tag/identifiant')];
|
149 |
}
|
150 |
}
|
151 |
+
return $implode ? implode('|', $ids) : $ids;
|
152 |
}
|
153 |
|
154 |
/**
|
194 |
$layer->setCurrentCategory($origCategory);
|
195 |
}
|
196 |
}
|
|
|
197 |
return $this->_productCollection;
|
198 |
}
|
199 |
|
200 |
+
protected function _beforeToHtml() {
|
201 |
+
if(self::$_CURRENT_PAGE_TYPE == self::LENGOW_TRACK_PAGE_LIST) {
|
202 |
+
$config = Mage::getModel('tracker/config');
|
203 |
+
$_list = $this->getLayout()->getBlock('product_list');
|
204 |
+
$_products = $_list->getLoadedProductCollection();
|
205 |
+
if($_products) {
|
206 |
+
foreach ($_products as $product) {
|
207 |
+
$ids[] = $product[$config->get('tag/identifiant')];
|
208 |
+
}
|
209 |
+
}
|
210 |
+
$this->setData('ids_products', implode('|', $ids));
|
211 |
+
}
|
212 |
+
parent::_beforeToHtml();
|
213 |
+
}
|
214 |
+
|
215 |
/**
|
216 |
* Get catalog layer model
|
217 |
*
|
app/code/community/Lengow/Tracker/Block/Tag/Simple.php
CHANGED
@@ -11,17 +11,11 @@
|
|
11 |
class Lengow_Tracker_Block_Tag_Simple extends Mage_Core_Block_Template {
|
12 |
|
13 |
protected $_config_model;
|
14 |
-
protected $_id_client;
|
15 |
-
protected $_id_group;
|
16 |
-
protected $_id_order;
|
17 |
-
protected $_total_paid;
|
18 |
-
protected $_mode_paiement;
|
19 |
-
protected $_ids_products;
|
20 |
|
21 |
public function __construct() {
|
22 |
$this->_config_model = Mage::getSingleton('tracker/config');
|
23 |
-
$this->
|
24 |
-
$this->
|
25 |
}
|
26 |
|
27 |
protected function _prepareLayout() {
|
@@ -30,10 +24,10 @@ class Lengow_Tracker_Block_Tag_Simple extends Mage_Core_Block_Template {
|
|
30 |
if(Mage::app()->getRequest()->getActionName() == 'success') {
|
31 |
$order_id = Mage::getSingleton('checkout/session')->getLastOrderId();
|
32 |
$order = Mage::getModel('sales/order')->load($order_id);
|
33 |
-
$this->
|
34 |
-
$this->
|
35 |
-
$this->
|
36 |
-
$this->
|
37 |
$this->setTemplate('lengow/tracker/simpletag.phtml');
|
38 |
}
|
39 |
return $this;
|
11 |
class Lengow_Tracker_Block_Tag_Simple extends Mage_Core_Block_Template {
|
12 |
|
13 |
protected $_config_model;
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
|
15 |
public function __construct() {
|
16 |
$this->_config_model = Mage::getSingleton('tracker/config');
|
17 |
+
$this->setData('id_client', $this->_config_model->get('general/login'));
|
18 |
+
$this->setData('id_group', $this->_config_model->get('general/group'));
|
19 |
}
|
20 |
|
21 |
protected function _prepareLayout() {
|
24 |
if(Mage::app()->getRequest()->getActionName() == 'success') {
|
25 |
$order_id = Mage::getSingleton('checkout/session')->getLastOrderId();
|
26 |
$order = Mage::getModel('sales/order')->load($order_id);
|
27 |
+
$this->setData('mode_paiement', $order->getPayment()->getMethodInstance()->getCode());
|
28 |
+
$this->setData('id_order', $order_id);
|
29 |
+
$this->setData('total_paid', $order->getGrandTotal());
|
30 |
+
$this->setData('ids_products', $tracker_model->getIdsProducts($order));
|
31 |
$this->setTemplate('lengow/tracker/simpletag.phtml');
|
32 |
}
|
33 |
return $this;
|
app/code/community/Lengow/Tracker/etc/.DS_Store
DELETED
Binary file
|
app/code/community/Lengow/Tracker/etc/config.xml
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Lengow_Tracker>
|
5 |
-
<version>2.0.1.
|
6 |
</Lengow_Tracker>
|
7 |
</modules>
|
8 |
<global>
|
@@ -54,15 +54,6 @@
|
|
54 |
</routers>
|
55 |
</admin>
|
56 |
<frontend>
|
57 |
-
<routers>
|
58 |
-
<lengow>
|
59 |
-
<use>standard</use>
|
60 |
-
<args>
|
61 |
-
<module>Lengow_Tracker</module>
|
62 |
-
<frontName>lengow</frontName>
|
63 |
-
</args>
|
64 |
-
</lengow>
|
65 |
-
</routers>
|
66 |
<layout>
|
67 |
<updates>
|
68 |
<tracker>
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Lengow_Tracker>
|
5 |
+
<version>2.0.1.5</version>
|
6 |
</Lengow_Tracker>
|
7 |
</modules>
|
8 |
<global>
|
54 |
</routers>
|
55 |
</admin>
|
56 |
<frontend>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
57 |
<layout>
|
58 |
<updates>
|
59 |
<tracker>
|
app/code/community/Lengow/Tracker/etc/plugins.xml
CHANGED
@@ -1,12 +1,12 @@
|
|
1 |
<?xml version="1.0" encoding="UTF-8" ?>
|
2 |
<plugins>
|
3 |
<plugin name="prestashop">
|
4 |
-
<version>2.0.
|
5 |
-
<release_date>2014-
|
6 |
</plugin>
|
7 |
<plugin name="magento">
|
8 |
<version>2.0.1.3</version>
|
9 |
-
<release_date>2014-
|
10 |
</plugin>
|
11 |
<plugin name="woomcommerce">
|
12 |
<version>1.0.0.0</version>
|
@@ -14,6 +14,6 @@
|
|
14 |
</plugin>
|
15 |
<plugin name="drupal">
|
16 |
<version>0.1.0.0</version>
|
17 |
-
<release_date>2014-
|
18 |
</plugin>
|
19 |
-
</plugins>
|
1 |
<?xml version="1.0" encoding="UTF-8" ?>
|
2 |
<plugins>
|
3 |
<plugin name="prestashop">
|
4 |
+
<version>2.0.5</version>
|
5 |
+
<release_date>2014-04-08</release_date>
|
6 |
</plugin>
|
7 |
<plugin name="magento">
|
8 |
<version>2.0.1.3</version>
|
9 |
+
<release_date>2014-04-25</release_date>
|
10 |
</plugin>
|
11 |
<plugin name="woomcommerce">
|
12 |
<version>1.0.0.0</version>
|
14 |
</plugin>
|
15 |
<plugin name="drupal">
|
16 |
<version>0.1.0.0</version>
|
17 |
+
<release_date>2014-03-05</release_date>
|
18 |
</plugin>
|
19 |
+
</plugins>
|
app/code/community/Lengow/Tracker/etc/system.xml
CHANGED
@@ -38,7 +38,7 @@
|
|
38 |
<frontend_type>text</frontend_type>
|
39 |
<sort_order>3</sort_order>
|
40 |
<show_in_default>1</show_in_default>
|
41 |
-
<show_in_website>
|
42 |
<show_in_store>1</show_in_store>
|
43 |
</login>
|
44 |
<group>
|
@@ -47,7 +47,7 @@
|
|
47 |
<frontend_type>text</frontend_type>
|
48 |
<sort_order>5</sort_order>
|
49 |
<show_in_default>1</show_in_default>
|
50 |
-
<show_in_website>
|
51 |
<show_in_store>1</show_in_store>
|
52 |
</group>
|
53 |
<api_key>
|
@@ -56,7 +56,7 @@
|
|
56 |
<sort_order>20</sort_order>
|
57 |
<show_in_default>1</show_in_default>
|
58 |
<show_in_website>0</show_in_website>
|
59 |
-
<show_in_store>
|
60 |
</api_key>
|
61 |
</fields>
|
62 |
</general>
|
38 |
<frontend_type>text</frontend_type>
|
39 |
<sort_order>3</sort_order>
|
40 |
<show_in_default>1</show_in_default>
|
41 |
+
<show_in_website>0</show_in_website>
|
42 |
<show_in_store>1</show_in_store>
|
43 |
</login>
|
44 |
<group>
|
47 |
<frontend_type>text</frontend_type>
|
48 |
<sort_order>5</sort_order>
|
49 |
<show_in_default>1</show_in_default>
|
50 |
+
<show_in_website>0</show_in_website>
|
51 |
<show_in_store>1</show_in_store>
|
52 |
</group>
|
53 |
<api_key>
|
56 |
<sort_order>20</sort_order>
|
57 |
<show_in_default>1</show_in_default>
|
58 |
<show_in_website>0</show_in_website>
|
59 |
+
<show_in_store>1</show_in_store>
|
60 |
</api_key>
|
61 |
</fields>
|
62 |
</general>
|
app/design/adminhtml/default/default/layout/lengow.xml
CHANGED
@@ -23,6 +23,7 @@
|
|
23 |
<block type="sync/adminhtml_log" name="manageorders.log.grid.container"></block>
|
24 |
</reference>
|
25 |
</adminhtml_lengow_log_index>
|
|
|
26 |
<adminhtml_lengow_export_index>
|
27 |
<reference name="head">
|
28 |
<action method="setTitle" translate="title">
|
23 |
<block type="sync/adminhtml_log" name="manageorders.log.grid.container"></block>
|
24 |
</reference>
|
25 |
</adminhtml_lengow_log_index>
|
26 |
+
|
27 |
<adminhtml_lengow_export_index>
|
28 |
<reference name="head">
|
29 |
<action method="setTitle" translate="title">
|
app/design/adminhtml/default/default/template/lengow/.DS_Store
DELETED
Binary file
|
app/design/adminhtml/default/default/template/lengow/export/.DS_Store
DELETED
Binary file
|
app/design/adminhtml/default/default/template/lengow/feed/grid.phtml
CHANGED
@@ -21,8 +21,14 @@
|
|
21 |
<?php if (!$this->isSingleStoreMode()): ?>
|
22 |
<?php echo $this->getChildHtml('store_switcher'); ?>
|
23 |
<?php endif; ?>
|
|
|
|
|
|
|
|
|
|
|
|
|
24 |
<div>
|
25 |
-
<form method="post" id="form_grid_feed" action="<?php echo $this->getUrl('*/*/migrate',
|
26 |
<input name="form_key" type="hidden" value="<?php echo Mage::getSingleton('core/session')->getFormKey() ?>" />
|
27 |
<?php echo $this->getGridHtml() ?>
|
28 |
</form>
|
21 |
<?php if (!$this->isSingleStoreMode()): ?>
|
22 |
<?php echo $this->getChildHtml('store_switcher'); ?>
|
23 |
<?php endif; ?>
|
24 |
+
<?php
|
25 |
+
$_store_id = $this->getRequest()->getParam('store');
|
26 |
+
$args = array();
|
27 |
+
if(!empty($_store_id))
|
28 |
+
$args['store'] = $_store_id;
|
29 |
+
?>
|
30 |
<div>
|
31 |
+
<form method="post" id="form_grid_feed" action="<?php echo $this->getUrl('*/*/migrate', $args); ?>">
|
32 |
<input name="form_key" type="hidden" value="<?php echo Mage::getSingleton('core/session')->getFormKey() ?>" />
|
33 |
<?php echo $this->getGridHtml() ?>
|
34 |
</form>
|
app/design/adminhtml/default/default/template/lengow/sales/.DS_Store
DELETED
Binary file
|
app/design/frontend/base/default/layout/lengow.xml
CHANGED
@@ -1,14 +1,18 @@
|
|
1 |
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
<layout version="0.1.0">
|
3 |
<default>
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
<reference name="head">
|
5 |
<action method="addItem">
|
6 |
<type>skin_js</type>
|
7 |
<name>lengow/js/tracker.js</name>
|
8 |
</action>
|
9 |
</reference>
|
10 |
-
|
11 |
-
|
12 |
-
</reference>
|
13 |
-
</default>
|
14 |
</layout>
|
1 |
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
<layout version="0.1.0">
|
3 |
<default>
|
4 |
+
<reference name="before_body_end">
|
5 |
+
<block type="tracker/tracker" name="lengow_tracker" template="lengow/tracker/tag.phtml" />
|
6 |
+
</reference>
|
7 |
+
</default>
|
8 |
+
|
9 |
+
<checkout_onepage_index translate="label">
|
10 |
<reference name="head">
|
11 |
<action method="addItem">
|
12 |
<type>skin_js</type>
|
13 |
<name>lengow/js/tracker.js</name>
|
14 |
</action>
|
15 |
</reference>
|
16 |
+
</checkout_onepage_index>
|
17 |
+
|
|
|
|
|
18 |
</layout>
|
app/design/frontend/base/default/template/lengow/tracker/simpletag.phtml
CHANGED
@@ -1,4 +1,4 @@
|
|
1 |
<!-- Tag_Lengow -->
|
2 |
-
<img src="https://tracking.lengow.com/lead.php?idClient=<?php echo $this->
|
3 |
-
<img src="https://tracking.lengow.com/leadValidation.php?idClient=<?php echo $this->
|
4 |
<!-- /Tag_Lengow -->
|
1 |
<!-- Tag_Lengow -->
|
2 |
+
<img src="https://tracking.lengow.com/lead.php?idClient=<?php echo $this->getData('id_client'); ?>&idGroup=<?php echo $this->getData('id_group'); ?>&price=<?php echo $this->getData('total_paid'); ?>&idCommande=<?php echo $this->getDta('id_order'); ?>&modePaiement=<?php echo $this->getData('mode_paiement'); ?>&listingProduit=<?php echo $this->getData('ids_products'); ?>" alt="" style="width: 1px; height: 1px; border: none;" />
|
3 |
+
<img src="https://tracking.lengow.com/leadValidation.php?idClient=<?php echo $this->getData('id_client'); ?>&idGroup=<?php echo $this->getData('id_group'); ?>&idCommande=<?php echo $this->getData('id_order'); ?>" alt="" style="width: 1px; height: 1px; border: none;" />
|
4 |
<!-- /Tag_Lengow -->
|
package.xml
CHANGED
@@ -1,8 +1,8 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>Lengow_Export</name>
|
4 |
-
<version>2.0.
|
5 |
-
<stability>
|
6 |
<license>GPL</license>
|
7 |
<channel>community</channel>
|
8 |
<extends/>
|
@@ -11,9 +11,9 @@
|
|
11 |
Export your catalog, import your orders from all Marketplaces.</description>
|
12 |
<notes>New version of Lengow's Connector</notes>
|
13 |
<authors><author><name>Ludovic</name><user>ludo</user><email>ludovic@lengow.com</email></author><author><name>Romain</name><user>romain</user><email>romain@lengow.com</email></author></authors>
|
14 |
-
<date>2014-
|
15 |
-
<time>
|
16 |
-
<contents><target name="magecommunity"><dir name="Lengow"><dir name="Dashboard"><dir name="Block"><dir name="Adminhtml"><dir name="Dashboard"><file name="Charts.php" hash="dae1bbed1ede93b06f62589e93857396"/><file name="Diagrams.php" hash="001995ea1916ca192021ba52c155a466"/></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="7129af0e9ab390e0695f84865a02fdb5"/></dir><dir name="Model"><file name="Config.php" hash="9ac1d092bffd109f02518885f89142c7"/></dir><dir name="etc"><file name="config.xml" hash="daa7dcee32a0d093d9e660e0c7a839ad"/></dir></dir><dir name="Export"><dir name="Block"><dir name="Adminhtml"><dir name="Product"><file name="Grid.php" hash="5ceb46d0b2ba6ab2e64e95eacad57cf4"/></dir><file name="Product.php" hash="b4802cfa8249bfe8c7378d65a5147c1b"/></dir><file name=".DS_Store" hash="194577a7e20bdcc7afbb718f502c134c"/></dir><dir name="Helper"><file name="Data.php" hash="622a7252f4b7fa358c22dc8763ad1b39"/><file name="Security.php" hash="3ad6b6925ef05884a1501afa6e64a685"/></dir><dir name="Model"><dir name="Catalog"><file name="Product.php" hash="1617a1fd0176e9785eb4182a9a460d00"/></dir><file name="Config.php" hash="99e3221d774542191026baff3776f8b6"/><dir name="Convert"><dir name="Parser"><file name="Product.php" hash="bc664380ca9d37256460613ecdbd8f92"/></dir></dir><dir name="Export"><dir name="Rewrite"><dir name="Catalog"><file name="Config.php" hash="e192cd30c6ed7e4cc370953c3ecd2367"/></dir></dir></dir><dir name="Feed"><file name="Abstract.php" hash="ed13409ab1c507b48b9460c8886bef8d"/><file name="Csv.php" hash="9e53191b25324292f962dec130c0c80a"/><file name="Json.php" hash="4df743bce6647eea36d2677ab7f6a9a8"/><file name="Xml.php" hash="dee5abfe1fa6f066a89a7de9ca3c9f3e"/><file name="Yaml.php" hash="f0c24bd481039c4fc13fa26ef7a4d1b9"/></dir><file name="Generate.php" hash="f2ef1f6fce7c34e4143ced99500dd2b8"/><file name="Observer.php" hash="df1db3722a4621a0b96f8a94c60cdbe7"/><dir name="Shipping"><dir name="Carrier"><file name="Lengow.php" hash="685809c2367ec3509ecbf9f4d07f4661"/></dir></dir><dir name="Source"><file name="Attributes.php" hash="95b485a452aee5b27af0af618211f13c"/><file name="Types.php" hash="6b125e9e5c0dfd5c93cf304441ed47ac"/><file name=".DS_Store" hash="194577a7e20bdcc7afbb718f502c134c"/></dir><dir name="System"><dir name="Config"><dir name="Backend"><file name="Apikey.php" hash="111617eb86ef8dd7374efa0d4eabf781"/></dir><dir name="Source"><dir name="Category"><file name="Level.php" hash="b35d3367815682e0ed2827ae8c722e9a"/></dir><file name="Format.php" hash="fd069f484cc3ae0d914fb7a965789d9f"/><file name="Getattributes.php" hash="9ed9accf926ee7ad15a361d45eae5ff6"/><file name="Images.php" hash="e6ec93f301599ea91d69a1f4847e240d"/><file name="Status.php" hash="15db435978f73431541b66db57a91506"/><file name="Types.php" hash="56de65acbb13ee5425b95cc5f9c3f2d2"/></dir></dir></dir><file name=".DS_Store" hash="194577a7e20bdcc7afbb718f502c134c"/></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Lengow"><file name="ExportController.php" hash="a9945fb7906fb30523599d19b97ef3a1"/></dir><file name=".DS_Store" hash="194577a7e20bdcc7afbb718f502c134c"/></dir><file name="FeedController.php" hash="e8fe620214eb352ff4d7cfbb06547a33"/><file name=".DS_Store" hash="194577a7e20bdcc7afbb718f502c134c"/></dir><dir name="etc"><file name="config.xml" hash="61ecd0d49063ce9224bc33354d103a12"/><file name="system.xml" hash="0fc8294856d3d5ef5288af7c9b0d4e06"/></dir></dir><dir name="Feed"><dir name="Block"><dir name="Adminhtml"><dir name="Feed"><file name="Grid.php" hash="164d0069752cf6327128e2da873c6466"/><dir name="Renderer"><file name="Migrate.php" hash="e59d5a72241165ec1c8194fc257d6e11"/><file name="Select.php" hash="78808e9061b7a5aa73c2273f18bc0746"/><file name="Url.php" hash="c9060f99ffa7f47140392c4392f793e7"/></dir></dir><file name="Feed.php" hash="96aa5aa6ed7c9e4a708df5b391621421"/></dir></dir><dir name="Helper"><file name="Data.php" hash="23ab67ab3d66ce8c35cfe9c8bff76f76"/></dir><dir name="Model"><file name="Config.php" hash="7487c73a3fe292614c9f4a2b66d8a664"/><file name="Feed.php" hash="75e01d41749b61db15f2603ed00f09a4"/></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Lengow"><file name="FeedController.php" hash="7a5f760a1768ddd6dca7b04affb1681f"/></dir></dir></dir><dir name="etc"><file name="config.xml" hash="6dc1efafcceeabff6ca544c8b38d5364"/><file name="system.xml" hash="22ba605f2529396e4edb41c5ec8e65e6"/></dir></dir><dir name="Sync"><dir name="Block"><dir name="Adminhtml"><file name="Import.php" hash="832bc82dde18ae4bc886933b28f41885"/><dir name="Log"><file name="Grid.php" hash="ca9a55f848bccb6e8a34e0217cf905f5"/></dir><file name="Log.php" hash="c8434ba0a97fb13c25fbfbc4f1841b53"/><dir name="Order"><file name="Grid.php" hash="f5423e0e9f88c29a39e494e8ce72c0e1"/><file name="Tab.php" hash="4c913f7d42506bd3e60e10a5142d9b8a"/></dir><file name="Order.php" hash="2ddb7553c4c67faf0bae5bbbe1be16fe"/></dir><dir name="Payment"><dir name="Info"><file name="Purchaseorder.php" hash="72bbeb480299903b16e505ffdd5d73fe"/></dir></dir><file name=".DS_Store" hash="194577a7e20bdcc7afbb718f502c134c"/></dir><dir name="Helper"><file name="Data.php" hash="05e0c035a6400f6b4b56b33e6bbf424d"/></dir><dir name="Model"><file name="Config.php" hash="e356e499cd34db77a17954fb52443a4f"/><dir name="Connector"><file name="Exception.php" hash="de1fa1b69e24fe7b976c03f1ed1ca7f7"/></dir><file name="Connector.php" hash="7d3af652eec85aedd2d7d836a73a4513"/><dir name="Customer"><file name="Customer.php" hash="e195621601071a4f15d0724839e9aaaa"/></dir><file name="Import.php" hash="e0e4cd8691b6b17158dcd6f2b3284033"/><file name="Log.php" hash="3dd56825227289f380bf5c0e2f8e848e"/><dir name="Marketplace"><file name="Exception.php" hash="bd7ab8db94e241d022cd6e467e8596ec"/></dir><file name="Marketplace.php" hash="40f6243e4e106a7f4f77f0985b775d6a"/><dir name="Mysql4"><dir name="Log"><file name="Collection.php" hash="e3c7a389004afa2a116560e5501cb9fa"/></dir><file name="Log.php" hash="3cc46747828dc075638b115cb8bdbf68"/><file name=".DS_Store" hash="194577a7e20bdcc7afbb718f502c134c"/></dir><file name="Observer.php" hash="b798657837ade214c3bf3e8a4b53ec64"/><file name="Order.php" hash="23f4aef35689e08b0b30305df5eea3fb"/><dir name="Payment"><dir name="Method"><file name="Lengow.php" hash="41344a615275c14d06707ed63ec58e59"/></dir><file name=".DS_Store" hash="194577a7e20bdcc7afbb718f502c134c"/></dir><dir name="Quote"><file name="Item.php" hash="30f9faf6b299ef64f10785ba16030a17"/></dir><dir name="Shipping"><dir name="Carrier"><file name="Lengow.php" hash="64627df21b7d1d089ce7caa6fb3837a9"/></dir></dir><dir name="System"><dir name="Config"><dir name="Source"><dir name="Customer"><file name="Group.php" hash="640638dcee398949ec4d0c1e2731005d"/></dir></dir></dir></dir><file name=".DS_Store" hash="194577a7e20bdcc7afbb718f502c134c"/></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Lengow"><file name="LogController.php" hash="37ced95b8c2bb8ac9d5e865feee8a3d3"/><file name="OrderController.php" hash="6d348a79987f24919d32beb454fa9b13"/></dir><file name=".DS_Store" hash="194577a7e20bdcc7afbb718f502c134c"/></dir><file name="ApiController.php" hash="7386c653ad093a891ffc75f0326d163f"/><file name=".DS_Store" hash="194577a7e20bdcc7afbb718f502c134c"/></dir><dir name="etc"><file name="config.xml" hash="67d16dee513f249b0d87f1539ff82e68"/><file name="marketplaces.xml" hash="484c97c5081604acdc0a3b300685ee1b"/><file name="system.xml" hash="ed101051303c9bc20ae3ee7c02df09f7"/><file name="wsdl.xml" hash="d299fecf68e9f795e26037be4f2115b3"/></dir><dir name="sql"><dir name="lengow_setup"><file name="mysql4-install-2.0.0.0.php" hash="ec6f4fbc56eb98d2439d9e53a6d5906f"/><file name="mysql4-upgrade-2.0.0.0-2.0.0.1.php" hash="8a452156d98da3e2508e7e67fd6b3006"/></dir></dir><file name=".DS_Store" hash="dc971dc7108101d485bfc11f9d1bd4c0"/></dir><dir name="Tracker"><dir name="Block"><dir name="Adminhtml"><dir name="System"><dir name="Config"><dir name="Check"><file name="Point.php" hash="b1b7be8e668e789ddfa26a615b4a5040"/></dir><file name="Check.php" hash="bc55760cc20b6ef21bf894f49454ea1e"/></dir></dir></dir><dir name="Tag"><file name="Capsule.php" hash="14256e8019240284092096ec888a4f58"/><file name="Simple.php" hash="5cae14470caf8393ed8eaf0b7b006996"/></dir><file name="Tracker.php" hash="b12dc4b32f1de2fb396620f317ce63bb"/><file name=".DS_Store" hash="194577a7e20bdcc7afbb718f502c134c"/></dir><dir name="Helper"><file name="Check.php" hash="8ac8d07d45494fb39bec90ec9f11cdf9"/><file name="Data.php" hash="e526694354fe760f266bf925e5e4ac39"/></dir><dir name="Model"><file name="Capsule.php" hash="55504d0b6398f5a88b5977bf54f5b54b"/><file name="Config.php" hash="d475fd6dd049ed712f69e4a1bfc2036c"/><dir name="System"><dir name="Config"><dir name="Source"><file name="Identifiant.php" hash="51943c288cab9456c62a2130405b695b"/><file name="Tracker.php" hash="8fdc4f1d9f02300525aeb295e9cd3dfc"/></dir></dir></dir><file name="Tracker.php" hash="8897c38fe557f52bbaaf8532529f149c"/></dir><dir name="etc"><file name="config.xml" hash="9a303500d667b9544fee8b6ed50cbc3c"/><file name="plugins.xml" hash="1e7c7bb1f31ece66e9d61adfcc9aabd8"/><file name="system.xml" hash="79f9f43e00295f51c428023e8349ac0d"/><file name=".DS_Store" hash="194577a7e20bdcc7afbb718f502c134c"/></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="lengow.xml" hash="8bd6d3c25e5911481a5f105fe55833f1"/></dir><dir name="template"><dir name="lengow"><dir name="check"><file name="point.phtml" hash="8e221f846b0731f8e3f1a6229e342166"/></dir><dir name="dashboard"><file name="charts.phtml" hash="e03c9e77fe69066ed335669c38d56266"/></dir><dir name="export"><file name="product.phtml" hash="fcab2dbf0f9ff81992d9b1e75cc1b5c5"/><file name=".DS_Store" hash="194577a7e20bdcc7afbb718f502c134c"/></dir><dir name="feed"><file name="grid.phtml" hash="7e965f793beb4847fad559506865a35e"/></dir><dir name="sales"><dir name="order"><dir name="tab"><file name="info.phtml" hash="fd76ca51399fd00b52f8430acce8555c"/></dir></dir><dir name="payment"><dir name="info"><file name="purchaseorder.phtml" hash="8e9e7a287ef57fe72023e28747fb0864"/></dir></dir><file name=".DS_Store" hash="194577a7e20bdcc7afbb718f502c134c"/></dir><file name=".DS_Store" hash="194577a7e20bdcc7afbb718f502c134c"/></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="lengow.xml" hash="823da63da3444c91f7e0197cc3f57225"/></dir><dir name="template"><dir name="lengow"><dir name="tracker"><file name="simpletag.phtml" hash="2b761f6da02185a6931b30fddd679d64"/><file name="tag.phtml" hash="619f7bc6fe20c3dd6c1d82cdf12811b5"/><file name="tagcapsule.phtml" hash="2916e7693ef8ec9fcce5f5a8079d2beb"/></dir></dir></dir></dir></dir></dir></target><target name="magelocale"><dir name="fr_FR"><file name="Lengow_Connector.csv" hash="fc9d13f3b25c8aaf83b906f6d02dad0c"/></dir></target><target name="mageetc"><dir name="modules"><file name="Lengow_Connector.xml" hash="34b39beecc725740ea1e0bc8d339287a"/></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="lengow"><dir name="css"><file name="admin.css" hash="aa78dc26e735d8110b88d9974f72a502"/></dir><dir name="js"><file name="charts.min.js" hash="6806368c6a0bf73a5236b452fd5c2332"/><file name=".DS_Store" hash="194577a7e20bdcc7afbb718f502c134c"/></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="lengow"><dir name="js"><file name="tracker.js" hash="6402a4fbbb81a3b0587ec8c4c375e0a0"/></dir><file name=".DS_Store" hash="194577a7e20bdcc7afbb718f502c134c"/></dir></dir></dir></dir></target></contents>
|
17 |
<compatible/>
|
18 |
<dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
|
19 |
</package>
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>Lengow_Export</name>
|
4 |
+
<version>2.0.2</version>
|
5 |
+
<stability>beta</stability>
|
6 |
<license>GPL</license>
|
7 |
<channel>community</channel>
|
8 |
<extends/>
|
11 |
Export your catalog, import your orders from all Marketplaces.</description>
|
12 |
<notes>New version of Lengow's Connector</notes>
|
13 |
<authors><author><name>Ludovic</name><user>ludo</user><email>ludovic@lengow.com</email></author><author><name>Romain</name><user>romain</user><email>romain@lengow.com</email></author></authors>
|
14 |
+
<date>2014-10-01</date>
|
15 |
+
<time>13:17:54</time>
|
16 |
+
<contents><target name="magecommunity"><dir name="Lengow"><dir name="Dashboard"><dir name="Block"><dir name="Adminhtml"><dir name="Dashboard"><file name="Charts.php" hash="dae1bbed1ede93b06f62589e93857396"/><file name="Diagrams.php" hash="001995ea1916ca192021ba52c155a466"/></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="7129af0e9ab390e0695f84865a02fdb5"/></dir><dir name="Model"><file name="Config.php" hash="9ac1d092bffd109f02518885f89142c7"/></dir><dir name="etc"><file name="config.xml" hash="be1872bbc46e4827d91b548e26343b5a"/></dir></dir><dir name="Export"><dir name="Block"><dir name="Adminhtml"><dir name="Product"><file name="Grid.php" hash="5ceb46d0b2ba6ab2e64e95eacad57cf4"/></dir><file name="Product.php" hash="b4802cfa8249bfe8c7378d65a5147c1b"/></dir></dir><dir name="Helper"><file name="Data.php" hash="00b4fd0b1eccda884ad12c0d2b61eb7d"/><file name="Security.php" hash="dbf9a95967d3fb6055e50da5dea2b359"/></dir><dir name="Model"><dir name="Catalog"><file name="Product.php" hash="54f3c2eb7c2d7f734ff3830a6fbf4c4a"/></dir><file name="Config.php" hash="99e3221d774542191026baff3776f8b6"/><dir name="Convert"><dir name="Parser"><file name="Product.php" hash="bc664380ca9d37256460613ecdbd8f92"/></dir></dir><dir name="Export"><dir name="Rewrite"><dir name="Catalog"><file name="Config.php" hash="e192cd30c6ed7e4cc370953c3ecd2367"/></dir></dir></dir><dir name="Feed"><file name="Abstract.php" hash="ed13409ab1c507b48b9460c8886bef8d"/><file name="Csv.php" hash="9e53191b25324292f962dec130c0c80a"/><file name="Json.php" hash="4df743bce6647eea36d2677ab7f6a9a8"/><file name="Xml.php" hash="dee5abfe1fa6f066a89a7de9ca3c9f3e"/><file name="Yaml.php" hash="f0c24bd481039c4fc13fa26ef7a4d1b9"/></dir><file name="Generate.php" hash="e8d88c4962f8a913e801040d74829852"/><file name="Observer.php" hash="19847eb801ba2d21d92baaf3474188b7"/><dir name="Shipping"><dir name="Carrier"><file name="Lengow.php" hash="685809c2367ec3509ecbf9f4d07f4661"/></dir></dir><dir name="Source"><file name="Attributes.php" hash="95b485a452aee5b27af0af618211f13c"/><file name="Types.php" hash="6b125e9e5c0dfd5c93cf304441ed47ac"/></dir><dir name="System"><dir name="Config"><dir name="Backend"><file name="Apikey.php" hash="111617eb86ef8dd7374efa0d4eabf781"/></dir><dir name="Source"><dir name="Category"><file name="Level.php" hash="b35d3367815682e0ed2827ae8c722e9a"/></dir><file name="Format.php" hash="fd069f484cc3ae0d914fb7a965789d9f"/><file name="Getattributes.php" hash="9ed9accf926ee7ad15a361d45eae5ff6"/><file name="Images.php" hash="e6ec93f301599ea91d69a1f4847e240d"/><file name="Status.php" hash="15db435978f73431541b66db57a91506"/><file name="Types.php" hash="56de65acbb13ee5425b95cc5f9c3f2d2"/></dir></dir></dir><file name=".DS_Store" hash="2e9d9e206608d44ac12e376d529a7440"/></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Lengow"><file name="ExportController.php" hash="9d14316a80004e570439c05f5e516368"/></dir></dir><file name="FeedController.php" hash="ddd767d9cf57aa8885ccbec58b59f16d"/></dir><dir name="etc"><file name="config.xml" hash="591d66bc318dcb5a91e98eab94f246b0"/><file name="system.xml" hash="11fa172632e95c372b2de2ffedfba79d"/></dir><file name=".DS_Store" hash="94f3372c1eac7f1e5bacd2a64a662c3a"/></dir><dir name="Feed"><dir name="Block"><dir name="Adminhtml"><dir name="Feed"><file name="Grid.php" hash="6ab140fe779bc7b38c1b004f24ed705c"/><dir name="Renderer"><file name="Migrate.php" hash="e59d5a72241165ec1c8194fc257d6e11"/><file name="Select.php" hash="78808e9061b7a5aa73c2273f18bc0746"/><file name="Url.php" hash="c9060f99ffa7f47140392c4392f793e7"/></dir></dir><file name="Feed.php" hash="96aa5aa6ed7c9e4a708df5b391621421"/></dir></dir><dir name="Helper"><file name="Data.php" hash="23ab67ab3d66ce8c35cfe9c8bff76f76"/></dir><dir name="Model"><file name="Config.php" hash="7487c73a3fe292614c9f4a2b66d8a664"/><file name="Feed.php" hash="2acd56249c12ee3985f699aa65b22295"/></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Lengow"><file name="FeedController.php" hash="7a40d4616879c4cb131ca394187113be"/></dir></dir></dir><dir name="etc"><file name="config.xml" hash="afbd0d62d8605c3d1228ebe6caada6a0"/><file name="system.xml" hash="22ba605f2529396e4edb41c5ec8e65e6"/></dir></dir><dir name="Sync"><dir name="Block"><dir name="Adminhtml"><file name="Import.php" hash="832bc82dde18ae4bc886933b28f41885"/><dir name="Log"><file name="Grid.php" hash="b699cedfd647ecde78909cc2440b1f03"/></dir><file name="Log.php" hash="c8434ba0a97fb13c25fbfbc4f1841b53"/><dir name="Order"><file name="Grid.php" hash="f5423e0e9f88c29a39e494e8ce72c0e1"/><file name="Tab.php" hash="4c913f7d42506bd3e60e10a5142d9b8a"/></dir><file name="Order.php" hash="2ddb7553c4c67faf0bae5bbbe1be16fe"/></dir><dir name="Payment"><dir name="Info"><file name="Purchaseorder.php" hash="72bbeb480299903b16e505ffdd5d73fe"/></dir></dir></dir><dir name="Helper"><file name="Api.php" hash="e8846c81d34c1025579151c7372492fb"/><file name="Data.php" hash="05e0c035a6400f6b4b56b33e6bbf424d"/></dir><dir name="Model"><file name="Config.php" hash="f9c20dd17637d203b5de49d6dd6aa3a7"/><dir name="Connector"><file name="Exception.php" hash="de1fa1b69e24fe7b976c03f1ed1ca7f7"/></dir><file name="Connector.php" hash="68eb49a02343c1ef4c2509d3f762fd23"/><dir name="Customer"><file name="Customer.php" hash="6c19bb3c13465edafb961aa57184417e"/></dir><file name="Import.php" hash="85dc8dd337f42f08e8536da73bad21d4"/><file name="Log.php" hash="3dd56825227289f380bf5c0e2f8e848e"/><dir name="Marketplace"><file name="Exception.php" hash="bd7ab8db94e241d022cd6e467e8596ec"/></dir><file name="Marketplace.php" hash="39ff91f3da12da0f7a679ce3b7844a36"/><dir name="Mysql4"><dir name="Log"><file name="Collection.php" hash="e3c7a389004afa2a116560e5501cb9fa"/></dir><file name="Log.php" hash="3cc46747828dc075638b115cb8bdbf68"/></dir><file name="Observer.php" hash="35e6671e260525b799c1bb6f39f278aa"/><file name="Order.php" hash="ccf347620fab224efd625284319270a2"/><dir name="Payment"><dir name="Method"><file name="Lengow.php" hash="f49bb516bebb86ceeb822f07c1ca5849"/></dir></dir><dir name="Quote"><file name="Item.php" hash="30f9faf6b299ef64f10785ba16030a17"/></dir><dir name="Shipping"><dir name="Carrier"><file name="Lengow.php" hash="64627df21b7d1d089ce7caa6fb3837a9"/></dir></dir><dir name="System"><dir name="Config"><dir name="Source"><dir name="Customer"><file name="Group.php" hash="640638dcee398949ec4d0c1e2731005d"/></dir></dir></dir></dir></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Lengow"><file name="LogController.php" hash="37ced95b8c2bb8ac9d5e865feee8a3d3"/><file name="OrderController.php" hash="ed81163099b035ebbf74e32272c3d75c"/></dir></dir><file name="ApiController.php" hash="ecfc5b4ffc5974bd24907b7b5e719bca"/></dir><dir name="etc"><file name="config.xml" hash="67f88e961c4a3e5348bf30b480f2a96a"/><file name="marketplaces.xml" hash="8da8c63b0a18f3ed6655c1acca23ca20"/><file name="system.xml" hash="a0f410779bc2fccf01ba626ea272a557"/><file name="wsdl.xml" hash="d299fecf68e9f795e26037be4f2115b3"/></dir><dir name="sql"><dir name="lengow_setup"><file name="mysql4-install-2.0.0.0.php" hash="4438ce9c3fa9b2b16162d54e4689e415"/><file name="mysql4-upgrade-2.0.0.0-2.0.0.1.php" hash="8a452156d98da3e2508e7e67fd6b3006"/></dir></dir></dir><dir name="Tracker"><dir name="Block"><dir name="Adminhtml"><dir name="System"><dir name="Config"><dir name="Check"><file name="Point.php" hash="b1b7be8e668e789ddfa26a615b4a5040"/></dir><file name="Check.php" hash="bc55760cc20b6ef21bf894f49454ea1e"/></dir></dir></dir><dir name="Tag"><file name="Capsule.php" hash="05369b685fbaa27ad5da96e2b606e4ef"/><file name="Simple.php" hash="14b977c269cdb60a6082e24fef0923dc"/></dir><file name="Tracker.php" hash="b12dc4b32f1de2fb396620f317ce63bb"/></dir><dir name="Helper"><file name="Check.php" hash="8ac8d07d45494fb39bec90ec9f11cdf9"/><file name="Data.php" hash="e526694354fe760f266bf925e5e4ac39"/></dir><dir name="Model"><file name="Capsule.php" hash="55504d0b6398f5a88b5977bf54f5b54b"/><file name="Config.php" hash="d475fd6dd049ed712f69e4a1bfc2036c"/><dir name="System"><dir name="Config"><dir name="Source"><file name="Identifiant.php" hash="51943c288cab9456c62a2130405b695b"/><file name="Tracker.php" hash="8fdc4f1d9f02300525aeb295e9cd3dfc"/></dir></dir></dir><file name="Tracker.php" hash="8897c38fe557f52bbaaf8532529f149c"/></dir><dir name="etc"><file name="config.xml" hash="04affc706c0942eec0581b397237733c"/><file name="plugins.xml" hash="d20aa020815fefccac44c1e86b38eb2f"/><file name="system.xml" hash="fa2d44f4591f423264ac792cb50d03f6"/></dir></dir><file name=".DS_Store" hash="9c2c1b22881e97a820d4e7565a869c34"/></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="lengow.xml" hash="5074e8b0efa14c4da96849a31d69b78b"/></dir><dir name="template"><dir name="lengow"><dir name="check"><file name="point.phtml" hash="8e221f846b0731f8e3f1a6229e342166"/></dir><dir name="dashboard"><file name="charts.phtml" hash="e03c9e77fe69066ed335669c38d56266"/></dir><dir name="export"><file name="product.phtml" hash="fcab2dbf0f9ff81992d9b1e75cc1b5c5"/></dir><dir name="feed"><file name="grid.phtml" hash="cb839fc15b928cffaf1aa803a50a370a"/></dir><dir name="sales"><dir name="order"><dir name="tab"><file name="info.phtml" hash="fd76ca51399fd00b52f8430acce8555c"/></dir></dir><dir name="payment"><dir name="info"><file name="purchaseorder.phtml" hash="8e9e7a287ef57fe72023e28747fb0864"/></dir></dir></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="lengow.xml" hash="4d0e2b553b6dc69c10aa7d7e0e78cfb0"/></dir><dir name="template"><dir name="lengow"><dir name="tracker"><file name="simpletag.phtml" hash="1d03ddc50e35828a35bd0cd92306f770"/><file name="tag.phtml" hash="619f7bc6fe20c3dd6c1d82cdf12811b5"/><file name="tagcapsule.phtml" hash="2916e7693ef8ec9fcce5f5a8079d2beb"/></dir></dir></dir></dir></dir></dir></target><target name="magelocale"><dir name="fr_FR"><file name="Lengow_Connector.csv" hash="fc9d13f3b25c8aaf83b906f6d02dad0c"/></dir></target><target name="mageetc"><dir name="modules"><file name="Lengow_Connector.xml" hash="34b39beecc725740ea1e0bc8d339287a"/></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="lengow"><dir name="css"><file name="admin.css" hash="aa78dc26e735d8110b88d9974f72a502"/></dir><dir name="js"><file name="charts.min.js" hash="6806368c6a0bf73a5236b452fd5c2332"/></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="lengow"><dir name="js"><file name="tracker.js" hash="6402a4fbbb81a3b0587ec8c4c375e0a0"/></dir></dir></dir></dir></dir></target></contents>
|
17 |
<compatible/>
|
18 |
<dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
|
19 |
</package>
|
skin/adminhtml/default/default/lengow/js/.DS_Store
DELETED
Binary file
|
skin/frontend/base/default/lengow/.DS_Store
DELETED
Binary file
|