Version Notes
New version of Lengow's Connector
Download this release
Release Info
Developer | Ludovic |
Extension | Lengow_Export |
Version | 2.1.0 |
Comparing to | |
See all releases |
Code changes from version 2.0.2 to 2.1.0
- app/code/community/Lengow/.DS_Store +0 -0
- app/code/community/Lengow/Dashboard/Block/Adminhtml/Dashboard/Charts.php +1 -1
- app/code/community/Lengow/Dashboard/Block/Adminhtml/Dashboard/Diagrams.php +1 -1
- app/code/community/Lengow/Dashboard/Model/Config.php +2 -2
- app/code/community/Lengow/Dashboard/etc/config.xml +14 -14
- app/code/community/Lengow/Export/.DS_Store +0 -0
- app/code/community/Lengow/Export/Block/Adminhtml/Product.php +3 -3
- app/code/community/Lengow/Export/Block/Adminhtml/Product/Grid.php +3 -3
- app/code/community/Lengow/Export/Helper/Data.php +4 -5
- app/code/community/Lengow/Export/Helper/Security.php +10 -10
- app/code/community/Lengow/Export/Model/.DS_Store +0 -0
- app/code/community/Lengow/Export/Model/Catalog/Product.php +129 -46
- app/code/community/Lengow/Export/Model/Config.php +110 -55
- app/code/community/Lengow/Export/Model/Feed/Csv.php +1 -1
- app/code/community/Lengow/Export/Model/Feed/Xml.php +1 -1
- app/code/community/Lengow/Export/Model/Generate.php +293 -139
- app/code/community/Lengow/Export/Model/Observer.php +42 -26
- app/code/community/Lengow/Export/Model/Source/Attributes.php +1 -1
- app/code/community/Lengow/Export/Model/Source/Types.php +1 -1
- app/code/community/Lengow/Export/Model/System/Config/Backend/Apikey.php +2 -2
- app/code/community/Lengow/Export/Model/System/Config/Source/Category/Level.php +5 -16
- app/code/community/Lengow/Export/Model/System/Config/Source/Getattributes.php +4 -1
- app/code/community/Lengow/Export/Model/System/Config/Source/Status.php +1 -1
- app/code/community/Lengow/Export/Model/System/Config/Source/Types.php +7 -7
- app/code/community/Lengow/Export/controllers/Adminhtml/Lengow/ExportController.php +25 -13
- app/code/community/Lengow/Export/controllers/FeedController.php +64 -37
- app/code/community/Lengow/Export/etc/config.xml +47 -38
- app/code/community/Lengow/Export/etc/system.xml +129 -120
- app/code/community/Lengow/Feed/Block/Adminhtml/Feed.php +3 -3
- app/code/community/Lengow/Feed/Block/Adminhtml/Feed/Grid.php +40 -50
- app/code/community/Lengow/Feed/Block/Adminhtml/Feed/Renderer/Migrate.php +1 -1
- app/code/community/Lengow/Feed/Block/Adminhtml/Feed/Renderer/Url.php +1 -1
- app/code/community/Lengow/Feed/Helper/Data.php +3 -3
- app/code/community/Lengow/Feed/Model/Feed.php +25 -25
- app/code/community/Lengow/Feed/controllers/Adminhtml/Lengow/FeedController.php +16 -16
- app/code/community/Lengow/Feed/etc/config.xml +20 -20
- app/code/community/Lengow/Feed/etc/system.xml +3 -3
- app/code/community/Lengow/Sync/Block/Adminhtml/Log.php +2 -2
- app/code/community/Lengow/Sync/Block/Adminhtml/Log/Grid.php +4 -4
- app/code/community/Lengow/Sync/Block/Adminhtml/Order.php +1 -1
- app/code/community/Lengow/Sync/Block/Adminhtml/Order/Grid.php +3 -3
- app/code/community/Lengow/Sync/Block/Adminhtml/Order/Tab.php +24 -16
- app/code/community/Lengow/Sync/Block/Payment/Info/Purchaseorder.php +2 -2
- app/code/community/Lengow/Sync/Helper/Data.php +56 -17
- app/code/community/Lengow/Sync/Model/Config.php +118 -78
- app/code/community/Lengow/Sync/Model/Connector.php +10 -10
- app/code/community/Lengow/Sync/Model/Customer/Customer.php +116 -24
- app/code/community/Lengow/Sync/Model/File.php +27 -0
- app/code/community/Lengow/Sync/Model/Import.php +443 -190
- app/code/community/Lengow/Sync/Model/Log.php +6 -4
- app/code/community/Lengow/Sync/Model/Marketplace.php +36 -17
- app/code/community/Lengow/Sync/Model/Mysql4/Log.php +1 -1
- app/code/community/Lengow/Sync/Model/Mysql4/Log/Collection.php +1 -1
- app/code/community/Lengow/Sync/Model/Observer.php +139 -78
- app/code/community/Lengow/Sync/Model/Order.php +140 -288
- app/code/community/Lengow/Sync/Model/Payment/Method/Lengow.php +5 -7
- app/code/community/Lengow/Sync/Model/Quote.php +147 -0
- app/code/community/Lengow/Sync/Model/Quote/Exception.php +54 -0
- app/code/community/Lengow/Sync/Model/Shipping/Carrier/Lengow.php +8 -10
- app/code/community/Lengow/Sync/Model/System/Config/Source/Shipping/Carrier.php +24 -0
- app/code/community/Lengow/Sync/Model/System/Config/Source/Shipping/Method.php +52 -0
- app/code/community/Lengow/Sync/controllers/Adminhtml/Lengow/LogController.php +4 -4
- app/code/community/Lengow/Sync/controllers/Adminhtml/Lengow/OrderController.php +137 -85
- app/code/community/Lengow/Sync/controllers/ApiController.php +2 -2
- app/code/community/Lengow/Sync/etc/config.xml +49 -31
- app/code/community/Lengow/Sync/etc/marketplaces.xml +3456 -450
- app/code/community/Lengow/Sync/etc/system.xml +96 -47
- app/code/community/Lengow/Sync/sql/lengow_setup/mysql4-install-2.0.0.0.php +8 -6
- app/code/community/Lengow/Sync/sql/lengow_setup/mysql4-upgrade-2.0.0.0-2.0.0.1.php +2 -1
- app/code/community/Lengow/Sync/sql/lengow_setup/mysql4-upgrade-2.0.2-2.1.0.php +94 -0
- app/code/community/Lengow/Tracker/Block/Adminhtml/System/Config/Check.php +1 -1
- app/code/community/Lengow/Tracker/Block/Adminhtml/System/Config/Check/Point.php +3 -3
- app/code/community/Lengow/Tracker/Block/Tag/Capsule.php +18 -13
- app/code/community/Lengow/Tracker/Block/Tag/Simple.php +2 -2
- app/code/community/Lengow/Tracker/Block/Tracker.php +13 -13
- app/code/community/Lengow/Tracker/Helper/Check.php +4 -4
- app/code/community/Lengow/Tracker/Model/Config.php +24 -5
- app/code/community/Lengow/Tracker/Model/Tracker.php +1 -1
- app/code/community/Lengow/Tracker/etc/config.xml +20 -20
- app/code/community/Lengow/Tracker/etc/plugins.xml +1 -1
- app/code/community/Lengow/Tracker/etc/system.xml +10 -10
- app/design/adminhtml/default/default/layout/lengow.xml +5 -6
- app/design/adminhtml/default/default/template/lengow/check/point.phtml +5 -5
- app/design/adminhtml/default/default/template/lengow/dashboard/charts.phtml +7 -7
- app/design/adminhtml/default/default/template/lengow/export/product.phtml +3 -3
- app/design/adminhtml/default/default/template/lengow/feed/grid.phtml +1 -1
- app/design/adminhtml/default/default/template/lengow/sales/order/tab/info.phtml +2 -2
- app/design/frontend/base/default/layout/lengow.xml +1 -1
- app/design/frontend/base/default/template/lengow/tracker/simpletag.phtml +1 -1
- app/locale/fr_FR/Lengow_Connector.csv +24 -3
- media/lengow/import.flag +0 -0
- package.xml +6 -6
app/code/community/Lengow/.DS_Store
DELETED
Binary file
|
app/code/community/Lengow/Dashboard/Block/Adminhtml/Dashboard/Charts.php
CHANGED
@@ -14,7 +14,7 @@ class Lengow_Dashboard_Block_Adminhtml_Dashboard_Charts extends Mage_Core_Block_
|
|
14 |
public function __construct() {
|
15 |
parent::__construct();
|
16 |
|
17 |
-
$this->setData('config_model', Mage::getSingleton('
|
18 |
$this->setData('id_client', $this->getData('config_model')->get('general/login'));
|
19 |
$this->setData('id_group', $this->getData('config_model')->get('general/group'));
|
20 |
$this->setData('api_key', $this->getData('config_model')->get('general/api_key'));
|
14 |
public function __construct() {
|
15 |
parent::__construct();
|
16 |
|
17 |
+
$this->setData('config_model', Mage::getSingleton('lendashboard/config'));
|
18 |
$this->setData('id_client', $this->getData('config_model')->get('general/login'));
|
19 |
$this->setData('id_group', $this->getData('config_model')->get('general/group'));
|
20 |
$this->setData('api_key', $this->getData('config_model')->get('general/api_key'));
|
app/code/community/Lengow/Dashboard/Block/Adminhtml/Dashboard/Diagrams.php
CHANGED
@@ -21,7 +21,7 @@ class Lengow_Dashboard_Block_Adminhtml_Dashboard_Diagrams extends Mage_Adminhtml
|
|
21 |
parent::_prepareLayout();
|
22 |
$this->addTab('lengow', array(
|
23 |
'label' => Mage::helper('adminhtml')->__('Lengow'),
|
24 |
-
'content' => $this->getLayout()->createBlock('
|
25 |
'active' => false
|
26 |
));
|
27 |
}
|
21 |
parent::_prepareLayout();
|
22 |
$this->addTab('lengow', array(
|
23 |
'label' => Mage::helper('adminhtml')->__('Lengow'),
|
24 |
+
'content' => $this->getLayout()->createBlock('lendashboard/adminhtml_dashboard_charts')->toHtml(),
|
25 |
'active' => false
|
26 |
));
|
27 |
}
|
app/code/community/Lengow/Dashboard/Model/Config.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
* @category Lengow
|
7 |
* @package Lengow_Dashboard
|
8 |
* @author Romain Le Polh <romain@lengow.com>
|
9 |
-
* @copyright 2013 Lengow SAS
|
10 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
11 |
*/
|
12 |
class Lengow_Dashboard_Model_Config extends Varien_Object {
|
@@ -16,7 +16,7 @@ class Lengow_Dashboard_Model_Config extends Varien_Object {
|
|
16 |
}
|
17 |
|
18 |
public function get($key) {
|
19 |
-
return Mage::getStoreConfig('
|
20 |
}
|
21 |
|
22 |
}
|
6 |
* @category Lengow
|
7 |
* @package Lengow_Dashboard
|
8 |
* @author Romain Le Polh <romain@lengow.com>
|
9 |
+
* @copyright 2013 Lengow SAS
|
10 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
11 |
*/
|
12 |
class Lengow_Dashboard_Model_Config extends Varien_Object {
|
16 |
}
|
17 |
|
18 |
public function get($key) {
|
19 |
+
return Mage::getStoreConfig('lentracker/' . $key, $this->_id_store);
|
20 |
}
|
21 |
|
22 |
}
|
app/code/community/Lengow/Dashboard/etc/config.xml
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Lengow_Dashboard>
|
5 |
-
<version>2.
|
6 |
</Lengow_Dashboard>
|
7 |
</modules>
|
8 |
<admin>
|
@@ -10,7 +10,7 @@
|
|
10 |
<adminhtml>
|
11 |
<args>
|
12 |
<modules>
|
13 |
-
<
|
14 |
</modules>
|
15 |
</args>
|
16 |
</adminhtml>
|
@@ -18,10 +18,10 @@
|
|
18 |
</admin>
|
19 |
<global>
|
20 |
<models>
|
21 |
-
<
|
22 |
<class>Lengow_Dashboard_Model</class>
|
23 |
<resourceModel>dashboard_mysql4</resourceModel>
|
24 |
-
</
|
25 |
<dashboard_mysql4>
|
26 |
<class>Lengow_Dashboard_Model_Mysql4</class>
|
27 |
<entities>
|
@@ -32,21 +32,21 @@
|
|
32 |
</dashboard_mysql4>
|
33 |
</models>
|
34 |
<resources>
|
35 |
-
<
|
36 |
<connection>
|
37 |
<use>core_setup</use>
|
38 |
</connection>
|
39 |
-
</
|
40 |
-
<
|
41 |
<connection>
|
42 |
<use>core_write</use>
|
43 |
</connection>
|
44 |
-
</
|
45 |
-
<
|
46 |
<connection>
|
47 |
<use>core_read</use>
|
48 |
</connection>
|
49 |
-
</
|
50 |
</resources>
|
51 |
<blocks>
|
52 |
<adminhtml>
|
@@ -54,14 +54,14 @@
|
|
54 |
<dashboard_diagrams>Lengow_Dashboard_Block_Adminhtml_Dashboard_Diagrams</dashboard_diagrams>
|
55 |
</rewrite>
|
56 |
</adminhtml>
|
57 |
-
<
|
58 |
<class>Lengow_Dashboard_Block</class>
|
59 |
-
</
|
60 |
</blocks>
|
61 |
<helpers>
|
62 |
-
<
|
63 |
<class>Lengow_Dashboard_Helper</class>
|
64 |
-
</
|
65 |
</helpers>
|
66 |
</global>
|
67 |
<adminhtml>
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Lengow_Dashboard>
|
5 |
+
<version>2.1.0</version>
|
6 |
</Lengow_Dashboard>
|
7 |
</modules>
|
8 |
<admin>
|
10 |
<adminhtml>
|
11 |
<args>
|
12 |
<modules>
|
13 |
+
<lendashboard before="Mage_Adminhtml">Lengow_Dashboard_Adminhtml</lendashboard>
|
14 |
</modules>
|
15 |
</args>
|
16 |
</adminhtml>
|
18 |
</admin>
|
19 |
<global>
|
20 |
<models>
|
21 |
+
<lendashboard>
|
22 |
<class>Lengow_Dashboard_Model</class>
|
23 |
<resourceModel>dashboard_mysql4</resourceModel>
|
24 |
+
</lendashboard>
|
25 |
<dashboard_mysql4>
|
26 |
<class>Lengow_Dashboard_Model_Mysql4</class>
|
27 |
<entities>
|
32 |
</dashboard_mysql4>
|
33 |
</models>
|
34 |
<resources>
|
35 |
+
<lendashboard_setup>
|
36 |
<connection>
|
37 |
<use>core_setup</use>
|
38 |
</connection>
|
39 |
+
</lendashboard_setup>
|
40 |
+
<lendashboard_write>
|
41 |
<connection>
|
42 |
<use>core_write</use>
|
43 |
</connection>
|
44 |
+
</lendashboard_write>
|
45 |
+
<lendashboard_read>
|
46 |
<connection>
|
47 |
<use>core_read</use>
|
48 |
</connection>
|
49 |
+
</lendashboard_read>
|
50 |
</resources>
|
51 |
<blocks>
|
52 |
<adminhtml>
|
54 |
<dashboard_diagrams>Lengow_Dashboard_Block_Adminhtml_Dashboard_Diagrams</dashboard_diagrams>
|
55 |
</rewrite>
|
56 |
</adminhtml>
|
57 |
+
<lendashboard>
|
58 |
<class>Lengow_Dashboard_Block</class>
|
59 |
+
</lendashboard>
|
60 |
</blocks>
|
61 |
<helpers>
|
62 |
+
<lendashboard>
|
63 |
<class>Lengow_Dashboard_Helper</class>
|
64 |
+
</lendashboard>
|
65 |
</helpers>
|
66 |
</global>
|
67 |
<adminhtml>
|
app/code/community/Lengow/Export/.DS_Store
DELETED
Binary file
|
app/code/community/Lengow/Export/Block/Adminhtml/Product.php
CHANGED
@@ -24,11 +24,11 @@ class Lengow_Export_Block_Adminhtml_Product extends Mage_Adminhtml_Block_Widget_
|
|
24 |
*/
|
25 |
protected function _prepareLayout() {
|
26 |
$this->_addButton('export', array(
|
27 |
-
'label' => Mage::helper('
|
28 |
-
'onclick' => 'popWin(\''.$this->getUrl('lengow/feed').'\', \'_blank\')',
|
29 |
'class' => 'add'
|
30 |
));
|
31 |
-
$this->setChild('grid', $this->getLayout()->createBlock('
|
32 |
return parent::_prepareLayout();
|
33 |
}
|
34 |
|
24 |
*/
|
25 |
protected function _prepareLayout() {
|
26 |
$this->_addButton('export', array(
|
27 |
+
'label' => Mage::helper('lenexport')->__('See the export feed'),
|
28 |
+
'onclick' => 'popWin(\''.$this->getUrl('lengow/feed', array('_current'=>true)).'\', \'_blank\')',
|
29 |
'class' => 'add'
|
30 |
));
|
31 |
+
$this->setChild('grid', $this->getLayout()->createBlock('lenexport/adminhtml_product_grid', 'product.grid'));
|
32 |
return parent::_prepareLayout();
|
33 |
}
|
34 |
|
app/code/community/Lengow/Export/Block/Adminhtml/Product/Grid.php
CHANGED
@@ -41,7 +41,7 @@ class Lengow_Export_Block_Adminhtml_Product_Grid extends Mage_Adminhtml_Block_Wi
|
|
41 |
'left');
|
42 |
|
43 |
if ($store->getId()) {
|
44 |
-
|
45 |
$collection->addStoreFilter($store);
|
46 |
$collection->joinAttribute('custom_name', 'catalog_product/name', 'entity_id', null, 'inner', $store->getId());
|
47 |
$collection->joinAttribute('status', 'catalog_product/status', 'entity_id', null, 'inner', $store->getId());
|
@@ -154,7 +154,7 @@ class Lengow_Export_Block_Adminhtml_Product_Grid extends Mage_Adminhtml_Block_Wi
|
|
154 |
1 => Mage::helper('catalog')->__('Yes'));
|
155 |
$this->addColumn('lengow_product',
|
156 |
array(
|
157 |
-
'header'=> Mage::helper('
|
158 |
'width' => '70px',
|
159 |
'index' => 'lengow_product',
|
160 |
'type' => 'options',
|
@@ -180,7 +180,7 @@ class Lengow_Export_Block_Adminhtml_Product_Grid extends Mage_Adminhtml_Block_Wi
|
|
180 |
$options = array(0 => Mage::helper('catalog')->__('No'),
|
181 |
1 => Mage::helper('catalog')->__('Yes'));
|
182 |
$this->getMassactionBlock()->addItem('publish', array(
|
183 |
-
'label'=> Mage::helper('
|
184 |
'url' => $this->getUrl('*/*/massPublish', array('_current'=>true)),
|
185 |
'additional' => array(
|
186 |
'visibility' => array(
|
41 |
'left');
|
42 |
|
43 |
if ($store->getId()) {
|
44 |
+
$collection->setStoreId($store->getId());
|
45 |
$collection->addStoreFilter($store);
|
46 |
$collection->joinAttribute('custom_name', 'catalog_product/name', 'entity_id', null, 'inner', $store->getId());
|
47 |
$collection->joinAttribute('status', 'catalog_product/status', 'entity_id', null, 'inner', $store->getId());
|
154 |
1 => Mage::helper('catalog')->__('Yes'));
|
155 |
$this->addColumn('lengow_product',
|
156 |
array(
|
157 |
+
'header'=> Mage::helper('lenexport')->__('Publish on Lengow'),
|
158 |
'width' => '70px',
|
159 |
'index' => 'lengow_product',
|
160 |
'type' => 'options',
|
180 |
$options = array(0 => Mage::helper('catalog')->__('No'),
|
181 |
1 => Mage::helper('catalog')->__('Yes'));
|
182 |
$this->getMassactionBlock()->addItem('publish', array(
|
183 |
+
'label'=> Mage::helper('lenexport')->__('Change Lengow\'s publication'),
|
184 |
'url' => $this->getUrl('*/*/massPublish', array('_current'=>true)),
|
185 |
'additional' => array(
|
186 |
'visibility' => array(
|
app/code/community/Lengow/Export/Helper/Data.php
CHANGED
@@ -55,7 +55,7 @@ class Lengow_Export_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
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))
|
61 |
return $value;
|
@@ -93,11 +93,11 @@ class Lengow_Export_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
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'))) {
|
@@ -105,5 +105,4 @@ class Lengow_Export_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
105 |
}
|
106 |
return $content;
|
107 |
}
|
108 |
-
|
109 |
}
|
55 |
* @return string $value
|
56 |
*/
|
57 |
public function cleanData($value, $convert = false, $html = false) {
|
58 |
+
if ($convert && $html)
|
59 |
$value = htmlentities($value);
|
60 |
if(is_array($value))
|
61 |
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'))) {
|
105 |
}
|
106 |
return $content;
|
107 |
}
|
|
|
108 |
}
|
app/code/community/Lengow/Export/Helper/Security.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_Helper_Security extends Mage_Core_Helper_Abstract {
|
@@ -14,13 +14,13 @@ class Lengow_Export_Helper_Security extends Mage_Core_Helper_Abstract {
|
|
14 |
* Lengow IP.
|
15 |
*/
|
16 |
public static $IPS_LENGOW = array(
|
17 |
-
'127.0.0.1' ,
|
18 |
-
'95.131.137.18' ,
|
19 |
-
'95.131.137.19' ,
|
20 |
-
'95.131.137.21' ,
|
21 |
-
'95.131.137.26' ,
|
22 |
-
'95.131.137.27' ,
|
23 |
-
'88.164.17.227' ,
|
24 |
'88.164.17.216' ,
|
25 |
'109.190.78.5' ,
|
26 |
'80.11.36.123' ,
|
@@ -30,7 +30,7 @@ class Lengow_Export_Helper_Security extends Mage_Core_Helper_Abstract {
|
|
30 |
'82.127.207.67' ,
|
31 |
'80.14.226.127' ,
|
32 |
'80.236.15.223' ,
|
33 |
-
);
|
34 |
|
35 |
/**
|
36 |
* Check if current IP is authorized.
|
@@ -38,7 +38,7 @@ class Lengow_Export_Helper_Security extends Mage_Core_Helper_Abstract {
|
|
38 |
* @return boolean.
|
39 |
*/
|
40 |
public function checkIP() {
|
41 |
-
$ips = Mage::getStoreConfig('
|
42 |
$ips = trim(str_replace(array("\r\n", ',', '-', '|', ' '), ';', $ips), ';');
|
43 |
$ips = explode(';', $ips);
|
44 |
$authorized_ips = array_merge($ips, self::$IPS_LENGOW);
|
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_Helper_Security extends Mage_Core_Helper_Abstract {
|
14 |
* Lengow IP.
|
15 |
*/
|
16 |
public static $IPS_LENGOW = array(
|
17 |
+
'127.0.0.1' ,
|
18 |
+
'95.131.137.18' ,
|
19 |
+
'95.131.137.19' ,
|
20 |
+
'95.131.137.21' ,
|
21 |
+
'95.131.137.26' ,
|
22 |
+
'95.131.137.27' ,
|
23 |
+
'88.164.17.227' ,
|
24 |
'88.164.17.216' ,
|
25 |
'109.190.78.5' ,
|
26 |
'80.11.36.123' ,
|
30 |
'82.127.207.67' ,
|
31 |
'80.14.226.127' ,
|
32 |
'80.236.15.223' ,
|
33 |
+
);
|
34 |
|
35 |
/**
|
36 |
* Check if current IP is authorized.
|
38 |
* @return boolean.
|
39 |
*/
|
40 |
public function checkIP() {
|
41 |
+
$ips = Mage::getStoreConfig('lenexport/performances/valid_ip');
|
42 |
$ips = trim(str_replace(array("\r\n", ',', '-', '|', ' '), ';', $ips), ';');
|
43 |
$ips = explode(';', $ips);
|
44 |
$authorized_ips = array_merge($ips, self::$IPS_LENGOW);
|
app/code/community/Lengow/Export/Model/.DS_Store
DELETED
Binary file
|
app/code/community/Lengow/Export/Model/Catalog/Product.php
CHANGED
@@ -4,12 +4,12 @@
|
|
4 |
*
|
5 |
* @category Lengow
|
6 |
* @package Lengow_Export
|
7 |
-
* @author Ludovic Drin <ludovic@lengow.com>
|
8 |
-
* @copyright
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
class Lengow_Export_Model_Catalog_Product extends Mage_Catalog_Model_Product {
|
12 |
-
|
13 |
/**
|
14 |
* Config model export
|
15 |
*
|
@@ -20,32 +20,52 @@ class Lengow_Export_Model_Catalog_Product extends Mage_Catalog_Model_Product {
|
|
20 |
/**
|
21 |
* Initialize resources
|
22 |
*/
|
23 |
-
protected function _construct()
|
|
|
24 |
$this->_init('catalog/product');
|
25 |
-
$this->_config_model = Mage::getSingleton('
|
26 |
}
|
27 |
|
28 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
29 |
$data['shipping-name'] = '';
|
30 |
$data['shipping-price'] = '';
|
|
|
31 |
$carrier = $this->_config_model->get('data/default_shipping_method');
|
32 |
if(empty($carrier))
|
33 |
return $data;
|
34 |
$carrierTab = explode('_',$carrier);
|
35 |
-
list($carrierCode,$methodCode) = $carrierTab;
|
36 |
$data['shipping-name'] = ucfirst($methodCode);
|
37 |
-
$shippingPrice = 0;
|
38 |
$countryCode = $this->_config_model->get('data/shipping_price_based_on');
|
39 |
$shippingPrice = $this->_getShippingPrice($product_instance, $carrier, $countryCode);
|
40 |
if(!$shippingPrice) {
|
41 |
$shippingPrice = $this->_config_model->get('data/default_shipping_price');
|
42 |
}
|
43 |
$data['shipping-price'] = $shippingPrice;
|
44 |
-
|
45 |
return $data;
|
46 |
}
|
47 |
-
|
48 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
49 |
$carrierTab = explode('_', $carrierValue);
|
50 |
list($carrierCode, $methodCode) = $carrierTab;
|
51 |
$shipping = Mage::getModel('shipping/shipping');
|
@@ -66,8 +86,17 @@ class Lengow_Export_Model_Catalog_Product extends Mage_Catalog_Model_Product {
|
|
66 |
}
|
67 |
return false;
|
68 |
}
|
69 |
-
|
70 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
71 |
/** @var $request Mage_Shipping_Model_Rate_Request */
|
72 |
$request = Mage::getModel('shipping/rate_request');
|
73 |
$storeId = $request->getStoreId();
|
@@ -76,7 +105,7 @@ class Lengow_Export_Model_Catalog_Product extends Mage_Catalog_Model_Product {
|
|
76 |
->setRegionId('')
|
77 |
->setCity('')
|
78 |
->setPostcode('');
|
79 |
-
}
|
80 |
$item = Mage::getModel('sales/quote_item');
|
81 |
$item->setStoreId($storeId);
|
82 |
$item->setOptions($this->getCustomOptions())
|
@@ -97,8 +126,23 @@ class Lengow_Export_Model_Catalog_Product extends Mage_Catalog_Model_Product {
|
|
97 |
$request->setPackageCurrency(Mage::app()->getStore()->getCurrentCurrency());
|
98 |
return $request;
|
99 |
}
|
100 |
-
|
101 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
102 |
/* @var $configurable_instance Mage_Catalog_Model_Product */
|
103 |
if ($configurable_instance) {
|
104 |
$price = $configurable_instance->getPrice();
|
@@ -118,7 +162,7 @@ class Lengow_Export_Model_Catalog_Product extends Mage_Catalog_Model_Product {
|
|
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 |
}
|
@@ -129,21 +173,15 @@ class Lengow_Export_Model_Catalog_Product extends Mage_Catalog_Model_Product {
|
|
129 |
array('product' => $configurable_instance)
|
130 |
);
|
131 |
$configurablePrice = $configurable_instance->getConfigurablePrice();
|
132 |
-
$
|
133 |
-
|
134 |
-
$product_instance->getPrice() + $configurableOldPrice
|
135 |
-
);
|
136 |
-
$final_price_including_tax = Mage::helper('tax')->getPrice(
|
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('
|
147 |
$price += $product->getPrice();
|
148 |
$final_price += $product->getFinalPrice();
|
149 |
}
|
@@ -158,26 +196,58 @@ class Lengow_Export_Model_Catalog_Product extends Mage_Catalog_Model_Product {
|
|
158 |
true
|
159 |
);
|
160 |
} else {
|
161 |
-
$
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
$
|
166 |
-
|
167 |
-
|
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;
|
176 |
-
$data['end-date-discount'] = $product_instance->getSpecialToDate;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
177 |
return $data;
|
178 |
}
|
179 |
-
|
180 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
181 |
$id_root_category = Mage::app()->getStore($id_store)->getRootCategoryId();
|
182 |
if($product_instance->getVisibility() == Mage_Catalog_Model_Product_Visibility::VISIBILITY_NOT_VISIBLE && isset($parent_instance)) {
|
183 |
$categories = $parent_instance->getCategoryCollection()
|
@@ -188,6 +258,11 @@ class Lengow_Export_Model_Catalog_Product extends Mage_Catalog_Model_Product {
|
|
188 |
->addPathsFilter('1/' . $id_root_category . '/')
|
189 |
->exportToArray();
|
190 |
}
|
|
|
|
|
|
|
|
|
|
|
191 |
$max_level = $this->_config_model->get('data/levelcategory');
|
192 |
$current_level = 0;
|
193 |
$category_buffer = false;
|
@@ -204,7 +279,7 @@ class Lengow_Export_Model_Catalog_Product extends Mage_Catalog_Model_Product {
|
|
204 |
else
|
205 |
$categories = array();
|
206 |
$data['category'] = '';
|
207 |
-
$data['category-url'] = '';
|
208 |
for($i = 1; $i <= $max_level; $i++) {
|
209 |
$data['category-sub-'.($i)] = '';
|
210 |
$data['category-url-sub-'.($i)] = '';
|
@@ -232,18 +307,25 @@ class Lengow_Export_Model_Catalog_Product extends Mage_Catalog_Model_Product {
|
|
232 |
$c->clearInstance();
|
233 |
}
|
234 |
$data['category-breadcrumb'] = implode(' > ', $ariane);
|
|
|
|
|
|
|
|
|
235 |
unset($categories, $category, $ariane);
|
|
|
236 |
return $data;
|
237 |
}
|
238 |
|
239 |
/**
|
240 |
* Merge images child with images' parents.
|
241 |
*
|
242 |
-
*
|
243 |
-
*
|
244 |
-
*
|
|
|
245 |
*/
|
246 |
-
public function getImages($images, $parentimages = false)
|
|
|
247 |
if($parentimages !== false) {
|
248 |
$images = array_merge($parentimages, $images);
|
249 |
$_images = array();
|
@@ -258,17 +340,18 @@ class Lengow_Export_Model_Catalog_Product extends Mage_Catalog_Model_Product {
|
|
258 |
unset($_images, $_ids, $parentimages);
|
259 |
}
|
260 |
$data = array();
|
261 |
-
|
|
|
262 |
$data['image-url-'.$i] = '';
|
263 |
}
|
264 |
$c = 1;
|
265 |
foreach($images as $i) {
|
266 |
$url = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA) . 'catalog/product' . $i['file'];
|
267 |
$data['image-url-' . $c++] = $url;
|
268 |
-
if($i ==
|
269 |
break;
|
270 |
}
|
271 |
-
return $data;
|
272 |
}
|
273 |
|
274 |
}
|
4 |
*
|
5 |
* @category Lengow
|
6 |
* @package Lengow_Export
|
7 |
+
* @author Ludovic Drin <ludovic@lengow.com> & Benjamin Le Nevé <benjamin.le-neve@lengow.com>
|
8 |
+
* @copyright 2015 Lengow SAS
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
class Lengow_Export_Model_Catalog_Product extends Mage_Catalog_Model_Product {
|
12 |
+
|
13 |
/**
|
14 |
* Config model export
|
15 |
*
|
20 |
/**
|
21 |
* Initialize resources
|
22 |
*/
|
23 |
+
protected function _construct()
|
24 |
+
{
|
25 |
$this->_init('catalog/product');
|
26 |
+
$this->_config_model = Mage::getSingleton('lenexport/config');
|
27 |
}
|
28 |
|
29 |
+
/**
|
30 |
+
* Get Shipping info
|
31 |
+
*
|
32 |
+
* @param Mage_Catalog_Model_Product $product_instance
|
33 |
+
*
|
34 |
+
* @return array
|
35 |
+
*/
|
36 |
+
public function getShippingInfo($product_instance)
|
37 |
+
{
|
38 |
$data['shipping-name'] = '';
|
39 |
$data['shipping-price'] = '';
|
40 |
+
$data['shipping-delay'] = $this->_config_model->get('data/default_shipping_delay');
|
41 |
$carrier = $this->_config_model->get('data/default_shipping_method');
|
42 |
if(empty($carrier))
|
43 |
return $data;
|
44 |
$carrierTab = explode('_',$carrier);
|
45 |
+
list($carrierCode,$methodCode) = $carrierTab;
|
46 |
$data['shipping-name'] = ucfirst($methodCode);
|
47 |
+
$shippingPrice = 0;
|
48 |
$countryCode = $this->_config_model->get('data/shipping_price_based_on');
|
49 |
$shippingPrice = $this->_getShippingPrice($product_instance, $carrier, $countryCode);
|
50 |
if(!$shippingPrice) {
|
51 |
$shippingPrice = $this->_config_model->get('data/default_shipping_price');
|
52 |
}
|
53 |
$data['shipping-price'] = $shippingPrice;
|
54 |
+
|
55 |
return $data;
|
56 |
}
|
57 |
+
|
58 |
+
/**
|
59 |
+
* Get shipping price
|
60 |
+
*
|
61 |
+
* @param Mage_Catalog_Model_Product $product_instance
|
62 |
+
* @param string $carrierValue
|
63 |
+
* @param string $countryCode
|
64 |
+
*
|
65 |
+
* @return mixed
|
66 |
+
*/
|
67 |
+
protected function _getShippingPrice($product_instance, $carrierValue, $countryCode = 'FR')
|
68 |
+
{
|
69 |
$carrierTab = explode('_', $carrierValue);
|
70 |
list($carrierCode, $methodCode) = $carrierTab;
|
71 |
$shipping = Mage::getModel('shipping/shipping');
|
86 |
}
|
87 |
return false;
|
88 |
}
|
89 |
+
|
90 |
+
/**
|
91 |
+
* Get Shipping rate request
|
92 |
+
*
|
93 |
+
* @param Mage_Catalog_Model_Product $product_instance
|
94 |
+
* @param string $countryCode
|
95 |
+
*
|
96 |
+
* @return Mage_Shipping_Model_Rate_Request
|
97 |
+
*/
|
98 |
+
protected function _getShippingRateRequest($product_instance, $countryCode = 'FR')
|
99 |
+
{
|
100 |
/** @var $request Mage_Shipping_Model_Rate_Request */
|
101 |
$request = Mage::getModel('shipping/rate_request');
|
102 |
$storeId = $request->getStoreId();
|
105 |
->setRegionId('')
|
106 |
->setCity('')
|
107 |
->setPostcode('');
|
108 |
+
}
|
109 |
$item = Mage::getModel('sales/quote_item');
|
110 |
$item->setStoreId($storeId);
|
111 |
$item->setOptions($this->getCustomOptions())
|
126 |
$request->setPackageCurrency(Mage::app()->getStore()->getCurrentCurrency());
|
127 |
return $request;
|
128 |
}
|
129 |
+
|
130 |
+
/**
|
131 |
+
* Get price
|
132 |
+
*
|
133 |
+
* @param Mage_Catalog_Model_Product $product_instance
|
134 |
+
* @param Mage_Catalog_Model_Product $configurable_instance
|
135 |
+
*
|
136 |
+
* @return array
|
137 |
+
*/
|
138 |
+
public function getPrices($product_instance, $configurable_instance = null)
|
139 |
+
{
|
140 |
+
$store = Mage::app()->getStore();
|
141 |
+
$config = Mage::helper('tax')->priceIncludesTax($store);
|
142 |
+
$calculator = Mage::getSingleton('tax/calculation');
|
143 |
+
$taxClassId = $product_instance->getTaxClassId();
|
144 |
+
$request = $calculator->getRateRequest(null, null, null, $store);
|
145 |
+
$taxPercent = $calculator->getRate($request->setProductClassId($taxClassId));
|
146 |
/* @var $configurable_instance Mage_Catalog_Model_Product */
|
147 |
if ($configurable_instance) {
|
148 |
$price = $configurable_instance->getPrice();
|
162 |
$configurableOldPrice += (float) ( $priceChange['is_percent'] ? ( ( (float) $priceChange['pricing_value'] ) * $price / 100 ) : $priceChange['pricing_value'] );
|
163 |
$configurablePrice += (float) ( $priceChange['is_percent'] ? ( ( (float) $priceChange['pricing_value'] ) * $finalPrice / 100 ) : $priceChange['pricing_value'] );
|
164 |
}
|
165 |
+
}
|
166 |
}
|
167 |
}
|
168 |
}
|
173 |
array('product' => $configurable_instance)
|
174 |
);
|
175 |
$configurablePrice = $configurable_instance->getConfigurablePrice();
|
176 |
+
$price = $product_instance->getPrice() + $configurableOldPrice;
|
177 |
+
$final_price = $product_instance->getFinalPrice() + $configurablePrice;
|
|
|
|
|
|
|
|
|
|
|
|
|
178 |
} else if($product_instance->getTypeId() == 'grouped') {
|
179 |
$price = 0;
|
180 |
$final_price = 0;
|
181 |
$childs = Mage::getModel('catalog/product_type_grouped')->getChildrenIds($product_instance->getId());
|
182 |
$childs = $childs[Mage_Catalog_Model_Product_Link::LINK_TYPE_GROUPED];
|
183 |
foreach ($childs as $value) {
|
184 |
+
$product = Mage::getModel('lenexport/catalog_product')->load($value);
|
185 |
$price += $product->getPrice();
|
186 |
$final_price += $product->getFinalPrice();
|
187 |
}
|
196 |
true
|
197 |
);
|
198 |
} else {
|
199 |
+
$price = $product_instance->getPrice();
|
200 |
+
$final_price = $product_instance->getFinalPrice();
|
201 |
+
}
|
202 |
+
if(!$config) {
|
203 |
+
$price_including_tax = $price + $calculator->calcTaxAmount($price, $taxPercent, false);
|
204 |
+
$final_price_including_tax = $final_price + $calculator->calcTaxAmount($final_price, $taxPercent, false);
|
205 |
+
} else {
|
206 |
+
$price_including_tax = $price;
|
207 |
+
$final_price_including_tax = $final_price;
|
208 |
}
|
209 |
$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());
|
210 |
$data['price-ttc'] = round(Mage::helper('directory')->currencyConvert($final_price_including_tax, $this->getOriginalCurrency(), $this->getCurrentCurrencyCode()), 2);
|
211 |
$data['price-before-discount'] = round(Mage::helper('directory')->currencyConvert($price_including_tax, $this->getOriginalCurrency(), $this->getCurrentCurrencyCode()), 2);
|
212 |
$data['discount-amount'] = $discount_amount > 0 ? round($discount_amount, 2) : '0';
|
213 |
$data['discount-percent'] = $discount_amount > 0 ? round(($discount_amount * 100) / $price_including_tax, 0) : '0';
|
214 |
+
$data['start-date-discount'] = $product_instance->getSpecialFromDate();
|
215 |
+
$data['end-date-discount'] = $product_instance->getSpecialToDate();
|
216 |
+
// retrieving promotions
|
217 |
+
$dateTs = Mage::app()->getLocale()->storeTimeStamp($product_instance->getStoreId());
|
218 |
+
if (method_exists(Mage::getResourceModel('catalogrule/rule'), 'getRulesFromProduct'))
|
219 |
+
$promo = Mage::getResourceModel('catalogrule/rule')->getRulesFromProduct($dateTs, $product_instance->getStoreId(), 1, $product_instance->getId());
|
220 |
+
elseif (method_exists(Mage::getResourceModel('catalogrule/rule'), 'getRulesForProduct'))
|
221 |
+
$promo = Mage::getResourceModel('catalogrule/rule')->getRulesForProduct($dateTs, $product_instance->getStoreId(), $product_instance->getId());
|
222 |
+
if (count($promo))
|
223 |
+
{
|
224 |
+
$promo = $promo[0];
|
225 |
+
if (isset($promo['from_time']))
|
226 |
+
$from = $promo['from_time'];
|
227 |
+
else
|
228 |
+
$from = $promo['from_date'];
|
229 |
+
|
230 |
+
if (isset($promo['to_time']))
|
231 |
+
$to = $promo['to_time'];
|
232 |
+
else
|
233 |
+
$to = $promo['to_date'];
|
234 |
+
$data['start-date-discount'] = date('Y-m-d H:i:s', strtotime($from));
|
235 |
+
$data['end-date-discount'] = is_null($to) ? '' : date('Y-m-d H:i:s', strtotime($to));
|
236 |
+
}
|
237 |
return $data;
|
238 |
}
|
239 |
+
|
240 |
+
/**
|
241 |
+
* Get categories and breadcrumb
|
242 |
+
*
|
243 |
+
* @param Mage_Catalog_Model_Product $product_instance
|
244 |
+
* @param Mage_Catalog_Model_Product $parent_instance
|
245 |
+
* @param integer $id_store
|
246 |
+
*
|
247 |
+
* @return array
|
248 |
+
*/
|
249 |
+
public function getCategories($product_instance, $parent_instance, $id_store, &$categoryCache = array())
|
250 |
+
{
|
251 |
$id_root_category = Mage::app()->getStore($id_store)->getRootCategoryId();
|
252 |
if($product_instance->getVisibility() == Mage_Catalog_Model_Product_Visibility::VISIBILITY_NOT_VISIBLE && isset($parent_instance)) {
|
253 |
$categories = $parent_instance->getCategoryCollection()
|
258 |
->addPathsFilter('1/' . $id_root_category . '/')
|
259 |
->exportToArray();
|
260 |
}
|
261 |
+
if (isset($categoryCache[key($categories)])){
|
262 |
+
return $categoryCache[key($categories)];
|
263 |
+
}
|
264 |
+
|
265 |
+
|
266 |
$max_level = $this->_config_model->get('data/levelcategory');
|
267 |
$current_level = 0;
|
268 |
$category_buffer = false;
|
279 |
else
|
280 |
$categories = array();
|
281 |
$data['category'] = '';
|
282 |
+
$data['category-url'] = '';
|
283 |
for($i = 1; $i <= $max_level; $i++) {
|
284 |
$data['category-sub-'.($i)] = '';
|
285 |
$data['category-url-sub-'.($i)] = '';
|
307 |
$c->clearInstance();
|
308 |
}
|
309 |
$data['category-breadcrumb'] = implode(' > ', $ariane);
|
310 |
+
$maxDimension = count($categories)-1;
|
311 |
+
if ($maxDimension>=0){
|
312 |
+
$categoryCache[$categories[count($categories)-1]] = $data;
|
313 |
+
}
|
314 |
unset($categories, $category, $ariane);
|
315 |
+
|
316 |
return $data;
|
317 |
}
|
318 |
|
319 |
/**
|
320 |
* Merge images child with images' parents.
|
321 |
*
|
322 |
+
* @param array $images of child's product
|
323 |
+
* @param array $parentimages of parent's product
|
324 |
+
*
|
325 |
+
* @return array images merged
|
326 |
*/
|
327 |
+
public function getImages($images, $parentimages = false)
|
328 |
+
{
|
329 |
if($parentimages !== false) {
|
330 |
$images = array_merge($parentimages, $images);
|
331 |
$_images = array();
|
340 |
unset($_images, $_ids, $parentimages);
|
341 |
}
|
342 |
$data = array();
|
343 |
+
$max_image = $this->_config_model->getCountExportImages();
|
344 |
+
for($i = 1; $i < $max_image + 1; $i++) {
|
345 |
$data['image-url-'.$i] = '';
|
346 |
}
|
347 |
$c = 1;
|
348 |
foreach($images as $i) {
|
349 |
$url = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA) . 'catalog/product' . $i['file'];
|
350 |
$data['image-url-' . $c++] = $url;
|
351 |
+
if($i == $max_image + 1)
|
352 |
break;
|
353 |
}
|
354 |
+
return $data;
|
355 |
}
|
356 |
|
357 |
}
|
app/code/community/Lengow/Export/Model/Config.php
CHANGED
@@ -4,43 +4,43 @@
|
|
4 |
*
|
5 |
* @category Lengow
|
6 |
* @package Lengow_Export
|
7 |
-
* @author Ludovic Drin <ludovic@lengow.com>
|
8 |
-
* @copyright
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
class Lengow_Export_Model_Config extends Varien_Object {
|
12 |
|
13 |
-
|
14 |
/**
|
15 |
* Config key "Enable manage orders"
|
16 |
*/
|
17 |
const ENABLED = 'active';
|
18 |
-
|
19 |
/**
|
20 |
* Config key "Filter by attribute"
|
21 |
*/
|
22 |
const EXPORT_ONLY_SELECTED = 'global/export_only_selected';
|
23 |
-
|
24 |
/**
|
25 |
* Config key "Export soldout"
|
26 |
*/
|
27 |
-
const EXPORT_SOLDOUT = 'export_soldout';
|
28 |
|
29 |
/**
|
30 |
* Config key "Export count images"
|
31 |
*/
|
32 |
const COUNT_IMAGES = 'data/count_images';
|
33 |
-
|
34 |
/**
|
35 |
* Config key "Filter by attribute"
|
36 |
*/
|
37 |
const LIMIT_PRODUCT = 'limit_product';
|
38 |
-
|
39 |
/**
|
40 |
* Config key "Attributes kow"
|
41 |
*/
|
42 |
const ATTRIBUTES_KNOW = 'attributes_know';
|
43 |
-
|
44 |
/**
|
45 |
* Config key "Attributes unkow"
|
46 |
*/
|
@@ -50,139 +50,175 @@ class Lengow_Export_Model_Config extends Varien_Object {
|
|
50 |
* Config key "Auto export product"
|
51 |
*/
|
52 |
const AUTOEXPORT_NEWPRODUCT = 'autoexport_newproduct';
|
53 |
-
|
54 |
/*
|
55 |
* @var array $_attributesKnow
|
56 |
*/
|
57 |
protected $_attributesKnow = null;
|
58 |
-
|
59 |
/**
|
60 |
* @var array $_attributesUnKnow
|
61 |
*/
|
62 |
protected $_attributesUnKnow = null;
|
63 |
-
|
64 |
protected $_attributesSelected = null;
|
65 |
|
|
|
|
|
66 |
protected $_id_store;
|
67 |
|
68 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
69 |
$this->_id_store = $id_store;
|
70 |
}
|
71 |
|
72 |
-
|
73 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
74 |
}
|
75 |
-
|
76 |
/**
|
77 |
* Return config var
|
78 |
*
|
79 |
* @param string $key Var path key
|
80 |
* @param int $id_store Store View Id
|
|
|
81 |
* @return mixed
|
82 |
*/
|
83 |
-
public function getConfigData($key, $group = 'global', $id_store = null)
|
|
|
84 |
if (!$this->hasData($key)) {
|
85 |
-
$value = Mage::getStoreConfig('
|
86 |
$this->setData($key, $value);
|
87 |
}
|
88 |
return $this->getData($key);
|
89 |
}
|
90 |
-
|
91 |
/**
|
92 |
* Return config var
|
93 |
*
|
94 |
* @param string $key Var path key
|
95 |
* @param int $id_store Store View Id
|
|
|
96 |
* @return mixed
|
97 |
*/
|
98 |
-
public function getConfigFlag($key, $group = 'global', $id_store = null)
|
|
|
99 |
if (!$this->hasData($key)) {
|
100 |
-
$value = Mage::getStoreConfigFlag('
|
101 |
$this->setData($key, $value);
|
102 |
}
|
103 |
return $this->getData($key);
|
104 |
}
|
105 |
-
|
106 |
-
|
107 |
-
public function getAny($group, $key, $id_store = null)
|
108 |
-
|
|
|
109 |
}
|
110 |
|
111 |
/**
|
112 |
* Retrieve if export is active
|
113 |
-
*
|
114 |
* @return boolean
|
115 |
*/
|
116 |
-
public function isEnabled()
|
|
|
117 |
return $this->getConfigFlag(self::ENABLED);
|
118 |
}
|
119 |
-
|
120 |
/**
|
121 |
* Retrieve if export is active
|
122 |
-
*
|
123 |
* @return boolean
|
124 |
*/
|
125 |
-
public function onlySelectedProducts()
|
|
|
126 |
return $this->get(self::EXPORT_ONLY_SELECTED);
|
127 |
}
|
128 |
-
|
129 |
/**
|
130 |
* Retrieve if export sold out products
|
131 |
*
|
132 |
* @return boolean
|
133 |
*/
|
134 |
-
public function isExportSoldout()
|
135 |
-
|
|
|
136 |
}
|
137 |
-
|
138 |
/**
|
139 |
* Retrieve limit of product in query
|
140 |
-
*
|
141 |
* @return int
|
142 |
*/
|
143 |
-
public function getLimitProduct()
|
|
|
144 |
return (int) $this->getConfigData(self::LIMIT_PRODUCT);
|
145 |
}
|
146 |
-
|
147 |
/**
|
148 |
* Retrieve limit of product in query
|
149 |
-
*
|
150 |
* @return int
|
151 |
*/
|
152 |
-
public function getCountExportImages()
|
153 |
-
|
|
|
154 |
}
|
155 |
|
156 |
/**
|
157 |
* Auto export new product
|
158 |
-
*
|
159 |
* @return int
|
160 |
*/
|
161 |
-
public function isAutoExportProduct()
|
|
|
162 |
return (int) $this->getConfigData(self::AUTOEXPORT_NEWPRODUCT);
|
163 |
}
|
164 |
-
|
165 |
/**
|
166 |
* Return Attributes Unknowed in array with key=>value
|
167 |
* key = node adn value = inner text
|
168 |
* @param int $id_store
|
169 |
-
*
|
|
|
170 |
*/
|
171 |
-
public function getMappgingAttributesUnKnow($id_store = null)
|
|
|
172 |
//if(is_null($this->_attributesUnKnow))
|
173 |
if($this->_attributesUnKnow === null || !isset($this->_attributesUnKnow) || empty($this->_attributesUnKnow)) {
|
174 |
-
$this->_attributesUnKnow = Mage::getStoreConfig('
|
175 |
}
|
176 |
-
|
177 |
return $this->_attributesUnKnow;
|
178 |
}
|
179 |
-
|
180 |
-
public function getSelectedAttributes($id_store = null) {
|
181 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
182 |
$tab = array();
|
183 |
-
$this->_attributesSelected = array();
|
184 |
if($this->_attributesSelected === null || !isset($this->_attributesSelected) || empty($this->_attributesSelected)) {
|
185 |
-
$val = Mage::getStoreConfig('
|
186 |
if(!empty($val)) {
|
187 |
$tab = explode(',',$val);
|
188 |
$this->_attributesSelected = array_flip($tab);
|
@@ -195,16 +231,35 @@ class Lengow_Export_Model_Config extends Varien_Object {
|
|
195 |
}
|
196 |
return $this->_attributesSelected;
|
197 |
}
|
198 |
-
|
199 |
/**
|
200 |
* Return ALL Attributes Knowed and Unknowed in array with key=>value
|
201 |
* key = node adn value = inner text
|
202 |
-
*
|
203 |
* @param int $id_store
|
|
|
|
|
204 |
*/
|
205 |
-
public function getMappingAllAttributes($id_store = null)
|
|
|
206 |
return $this->getSelectedAttributes($id_store);
|
207 |
}
|
208 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
209 |
|
210 |
}
|
4 |
*
|
5 |
* @category Lengow
|
6 |
* @package Lengow_Export
|
7 |
+
* @author Ludovic Drin <ludovic@lengow.com> & Benjamin Le Nevé <benjamin.le-neve@lengow.com>
|
8 |
+
* @copyright 2015 Lengow SAS
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
class Lengow_Export_Model_Config extends Varien_Object {
|
12 |
|
13 |
+
|
14 |
/**
|
15 |
* Config key "Enable manage orders"
|
16 |
*/
|
17 |
const ENABLED = 'active';
|
18 |
+
|
19 |
/**
|
20 |
* Config key "Filter by attribute"
|
21 |
*/
|
22 |
const EXPORT_ONLY_SELECTED = 'global/export_only_selected';
|
23 |
+
|
24 |
/**
|
25 |
* Config key "Export soldout"
|
26 |
*/
|
27 |
+
const EXPORT_SOLDOUT = 'global/export_soldout';
|
28 |
|
29 |
/**
|
30 |
* Config key "Export count images"
|
31 |
*/
|
32 |
const COUNT_IMAGES = 'data/count_images';
|
33 |
+
|
34 |
/**
|
35 |
* Config key "Filter by attribute"
|
36 |
*/
|
37 |
const LIMIT_PRODUCT = 'limit_product';
|
38 |
+
|
39 |
/**
|
40 |
* Config key "Attributes kow"
|
41 |
*/
|
42 |
const ATTRIBUTES_KNOW = 'attributes_know';
|
43 |
+
|
44 |
/**
|
45 |
* Config key "Attributes unkow"
|
46 |
*/
|
50 |
* Config key "Auto export product"
|
51 |
*/
|
52 |
const AUTOEXPORT_NEWPRODUCT = 'autoexport_newproduct';
|
53 |
+
|
54 |
/*
|
55 |
* @var array $_attributesKnow
|
56 |
*/
|
57 |
protected $_attributesKnow = null;
|
58 |
+
|
59 |
/**
|
60 |
* @var array $_attributesUnKnow
|
61 |
*/
|
62 |
protected $_attributesUnKnow = null;
|
63 |
+
|
64 |
protected $_attributesSelected = null;
|
65 |
|
66 |
+
protected $_attributesHtml = array();
|
67 |
+
|
68 |
protected $_id_store;
|
69 |
|
70 |
+
/**
|
71 |
+
* Set Store
|
72 |
+
*
|
73 |
+
* @param int $id_store
|
74 |
+
*/
|
75 |
+
public function setStore($id_store)
|
76 |
+
{
|
77 |
$this->_id_store = $id_store;
|
78 |
}
|
79 |
|
80 |
+
/**
|
81 |
+
* Get any paramater for lenexport
|
82 |
+
*
|
83 |
+
* @param string $key
|
84 |
+
*
|
85 |
+
* @return mixed
|
86 |
+
*/
|
87 |
+
public function get($key)
|
88 |
+
{
|
89 |
+
return Mage::getStoreConfig('lenexport/' . $key, $this->_id_store);
|
90 |
}
|
91 |
+
|
92 |
/**
|
93 |
* Return config var
|
94 |
*
|
95 |
* @param string $key Var path key
|
96 |
* @param int $id_store Store View Id
|
97 |
+
*
|
98 |
* @return mixed
|
99 |
*/
|
100 |
+
public function getConfigData($key, $group = 'global', $id_store = null)
|
101 |
+
{
|
102 |
if (!$this->hasData($key)) {
|
103 |
+
$value = Mage::getStoreConfig('lenexport/' . $group . '/' . $key, $id_store);
|
104 |
$this->setData($key, $value);
|
105 |
}
|
106 |
return $this->getData($key);
|
107 |
}
|
108 |
+
|
109 |
/**
|
110 |
* Return config var
|
111 |
*
|
112 |
* @param string $key Var path key
|
113 |
* @param int $id_store Store View Id
|
114 |
+
*
|
115 |
* @return mixed
|
116 |
*/
|
117 |
+
public function getConfigFlag($key, $group = 'global', $id_store = null)
|
118 |
+
{
|
119 |
if (!$this->hasData($key)) {
|
120 |
+
$value = Mage::getStoreConfigFlag('lenexport/' . $group . '/' . $key, $id_store);
|
121 |
$this->setData($key, $value);
|
122 |
}
|
123 |
return $this->getData($key);
|
124 |
}
|
125 |
+
|
126 |
+
|
127 |
+
public function getAny($group, $key, $id_store = null)
|
128 |
+
{
|
129 |
+
return Mage::getStoreConfig('lenexport/' . $group . '/' . $key, $id_store);
|
130 |
}
|
131 |
|
132 |
/**
|
133 |
* Retrieve if export is active
|
134 |
+
*
|
135 |
* @return boolean
|
136 |
*/
|
137 |
+
public function isEnabled()
|
138 |
+
{
|
139 |
return $this->getConfigFlag(self::ENABLED);
|
140 |
}
|
141 |
+
|
142 |
/**
|
143 |
* Retrieve if export is active
|
144 |
+
*
|
145 |
* @return boolean
|
146 |
*/
|
147 |
+
public function onlySelectedProducts()
|
148 |
+
{
|
149 |
return $this->get(self::EXPORT_ONLY_SELECTED);
|
150 |
}
|
151 |
+
|
152 |
/**
|
153 |
* Retrieve if export sold out products
|
154 |
*
|
155 |
* @return boolean
|
156 |
*/
|
157 |
+
public function isExportSoldout()
|
158 |
+
{
|
159 |
+
return $this->get(self::EXPORT_SOLDOUT);
|
160 |
}
|
161 |
+
|
162 |
/**
|
163 |
* Retrieve limit of product in query
|
164 |
+
*
|
165 |
* @return int
|
166 |
*/
|
167 |
+
public function getLimitProduct()
|
168 |
+
{
|
169 |
return (int) $this->getConfigData(self::LIMIT_PRODUCT);
|
170 |
}
|
171 |
+
|
172 |
/**
|
173 |
* Retrieve limit of product in query
|
174 |
+
*
|
175 |
* @return int
|
176 |
*/
|
177 |
+
public function getCountExportImages()
|
178 |
+
{
|
179 |
+
return (int) $this->get(self::COUNT_IMAGES);
|
180 |
}
|
181 |
|
182 |
/**
|
183 |
* Auto export new product
|
184 |
+
*
|
185 |
* @return int
|
186 |
*/
|
187 |
+
public function isAutoExportProduct()
|
188 |
+
{
|
189 |
return (int) $this->getConfigData(self::AUTOEXPORT_NEWPRODUCT);
|
190 |
}
|
191 |
+
|
192 |
/**
|
193 |
* Return Attributes Unknowed in array with key=>value
|
194 |
* key = node adn value = inner text
|
195 |
* @param int $id_store
|
196 |
+
*
|
197 |
+
* @return array
|
198 |
*/
|
199 |
+
public function getMappgingAttributesUnKnow($id_store = null)
|
200 |
+
{
|
201 |
//if(is_null($this->_attributesUnKnow))
|
202 |
if($this->_attributesUnKnow === null || !isset($this->_attributesUnKnow) || empty($this->_attributesUnKnow)) {
|
203 |
+
$this->_attributesUnKnow = Mage::getStoreConfig('lenexport/attributes_unknow', $id_store);
|
204 |
}
|
205 |
+
|
206 |
return $this->_attributesUnKnow;
|
207 |
}
|
|
|
|
|
208 |
|
209 |
+
/**
|
210 |
+
* Get Selected attributes
|
211 |
+
*
|
212 |
+
* @param int $id_store
|
213 |
+
*
|
214 |
+
* @return array
|
215 |
+
*/
|
216 |
+
public function getSelectedAttributes($id_store = null)
|
217 |
+
{
|
218 |
$tab = array();
|
219 |
+
$this->_attributesSelected = array();
|
220 |
if($this->_attributesSelected === null || !isset($this->_attributesSelected) || empty($this->_attributesSelected)) {
|
221 |
+
$val = Mage::getStoreConfig('lenexport/attributelist/attributes', $id_store);
|
222 |
if(!empty($val)) {
|
223 |
$tab = explode(',',$val);
|
224 |
$this->_attributesSelected = array_flip($tab);
|
231 |
}
|
232 |
return $this->_attributesSelected;
|
233 |
}
|
234 |
+
|
235 |
/**
|
236 |
* Return ALL Attributes Knowed and Unknowed in array with key=>value
|
237 |
* key = node adn value = inner text
|
238 |
+
*
|
239 |
* @param int $id_store
|
240 |
+
*
|
241 |
+
* @return array
|
242 |
*/
|
243 |
+
public function getMappingAllAttributes($id_store = null)
|
244 |
+
{
|
245 |
return $this->getSelectedAttributes($id_store);
|
246 |
}
|
247 |
+
|
248 |
+
/**
|
249 |
+
* Get Html attributes
|
250 |
+
*
|
251 |
+
* @param int $id_store
|
252 |
+
*
|
253 |
+
* @return array
|
254 |
+
*/
|
255 |
+
public function getHtmlAttributes($id_store = null)
|
256 |
+
{
|
257 |
+
if (count($this->_attributesHtml) == 0) {
|
258 |
+
$attributes = Mage::getStoreConfig('lenexport/data/html_attributes', $id_store);
|
259 |
+
if(!empty($attributes))
|
260 |
+
$this->_attributesHtml = explode(',', $attributes);
|
261 |
+
}
|
262 |
+
return $this->_attributesHtml;
|
263 |
+
}
|
264 |
|
265 |
}
|
app/code/community/Lengow/Export/Model/Feed/Csv.php
CHANGED
@@ -25,7 +25,7 @@ class Lengow_Export_Model_Feed_Csv extends Lengow_Export_Model_Feed_Abstract {
|
|
25 |
*/
|
26 |
public static $CSV_EOL = "\r\n";
|
27 |
|
28 |
-
protected $_content_type = 'text/
|
29 |
|
30 |
public function getContentType() {
|
31 |
return $this->_content_type;
|
25 |
*/
|
26 |
public static $CSV_EOL = "\r\n";
|
27 |
|
28 |
+
protected $_content_type = 'text/csv';
|
29 |
|
30 |
public function getContentType() {
|
31 |
return $this->_content_type;
|
app/code/community/Lengow/Export/Model/Feed/Xml.php
CHANGED
@@ -10,7 +10,7 @@
|
|
10 |
*/
|
11 |
class Lengow_Export_Model_Feed_Xml extends Lengow_Export_Model_Feed_Abstract {
|
12 |
|
13 |
-
protected $_content_type = '
|
14 |
|
15 |
public function getContentType() {
|
16 |
return $this->_content_type;
|
10 |
*/
|
11 |
class Lengow_Export_Model_Feed_Xml extends Lengow_Export_Model_Feed_Abstract {
|
12 |
|
13 |
+
protected $_content_type = 'application/xml';
|
14 |
|
15 |
public function getContentType() {
|
16 |
return $this->_content_type;
|
app/code/community/Lengow/Export/Model/Generate.php
CHANGED
@@ -4,8 +4,8 @@
|
|
4 |
*
|
5 |
* @category Lengow
|
6 |
* @package Lengow_Export
|
7 |
-
* @author Ludovic Drin <ludovic@lengow.com>
|
8 |
-
* @copyright
|
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,68 +30,87 @@ class Lengow_Export_Model_Generate extends Varien_Object {
|
|
30 |
|
31 |
protected $_time = null;
|
32 |
|
|
|
|
|
|
|
|
|
|
|
|
|
33 |
protected $_excludes = array('media_gallery',
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
/**
|
39 |
* Default fields.
|
40 |
*/
|
41 |
public static $DEFAULT_FIELDS = array('sku' => 'sku' ,
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
|
53 |
/**
|
54 |
* Construct generator
|
55 |
* Set models
|
56 |
*/
|
57 |
-
public function __construct()
|
58 |
-
|
59 |
-
$this->
|
|
|
60 |
$this->_eav_model = Mage::getResourceModel('eav/entity_attribute_collection');
|
61 |
$this->_stream = $this->_config_model->get('performances/usesavefile') ? false : true;
|
62 |
-
$this->_helper = Mage::helper('
|
|
|
63 |
}
|
64 |
|
65 |
/**
|
66 |
* Make the feed
|
67 |
*
|
68 |
-
* @param integer $id_store
|
69 |
-
* @param varchar $mode
|
70 |
-
*
|
71 |
-
*
|
72 |
-
*
|
73 |
-
* @param varchar $format
|
74 |
-
* @param varchar $types
|
75 |
-
* @param varchar $status
|
76 |
-
* @param boolean $export_child
|
77 |
-
* @param boolean $out_of_stock
|
|
|
|
|
|
|
|
|
|
|
78 |
*
|
79 |
* @return Mage_Catalog_Model_Product
|
80 |
*/
|
81 |
public function exec($id_store,
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
|
|
|
|
|
|
|
|
|
|
93 |
$this->_id_store = $id_store;
|
94 |
-
|
|
|
95 |
// Get products list to export
|
96 |
$products = $this->_getProductsCollection($types, $status, $export_child, $out_of_stock, $selected_products, $limit, $offset, $ids_product);
|
97 |
// Mode size, return count of products
|
@@ -101,11 +120,11 @@ class Lengow_Export_Model_Generate extends Varien_Object {
|
|
101 |
$this->_stream = $stream;
|
102 |
if(!$this->_stream) {
|
103 |
header('Content-Type: text/html; charset=utf-8');
|
104 |
-
echo date('Y-m-d h:i:s') . ' - Start export<br />';
|
105 |
flush();
|
106 |
}
|
107 |
// Gestion des attributs à exporter
|
108 |
-
$attributes_to_export = $this->_config_model->getMappingAllAttributes();
|
109 |
$products_data = array();
|
110 |
$this->_attrs = array();
|
111 |
$feed = Mage::getModel('Lengow_Export_Model_Feed_' . ucfirst($this->_format));
|
@@ -113,10 +132,18 @@ class Lengow_Export_Model_Generate extends Varien_Object {
|
|
113 |
$last = false;
|
114 |
$total_product = count($products);
|
115 |
$pi = 1;
|
|
|
116 |
if(!$this->_stream) {
|
117 |
-
echo date('Y-m-d h:i:s') . ' - Find ' . $total_product . '
|
118 |
flush();
|
119 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
120 |
// Generate data
|
121 |
foreach($products as $p) {
|
122 |
$array_data = array();
|
@@ -124,33 +151,29 @@ class Lengow_Export_Model_Generate extends Varien_Object {
|
|
124 |
$pi++;
|
125 |
if($total_product < $pi)
|
126 |
$last = true;
|
127 |
-
$product =
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
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
|
140 |
-
$parents =
|
141 |
$parent_instance = null;
|
142 |
$configurable_instance = null;
|
143 |
$parent_id = null;
|
144 |
$product_type = 'simple';
|
145 |
$variation_name = '';
|
146 |
-
if($
|
|
|
147 |
$product_type = 'parent';
|
148 |
-
$
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
|
|
154 |
if($variations) {
|
155 |
foreach ($variations as $variation) {
|
156 |
$variation_name .= $variation['frontend_label'] . ',';
|
@@ -158,12 +181,47 @@ class Lengow_Export_Model_Generate extends Varien_Object {
|
|
158 |
$variation_name = rtrim($variation_name, ',');
|
159 |
}
|
160 |
}
|
161 |
-
if($
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
162 |
$parents = Mage::getModel('catalog/product_type_configurable')->getParentIdsByChild($p['entity_id']);
|
163 |
if(!empty($parents)) {
|
164 |
-
|
|
|
|
|
165 |
// Exclude if parent is disabled
|
166 |
-
if(
|
|
|
167 |
if(!$this->_stream) {
|
168 |
if($pi % 20 == 0)
|
169 |
echo date('Y-m-d h:i:s') .' - Export ' . $pi . ' products<br />';
|
@@ -182,19 +240,9 @@ class Lengow_Export_Model_Generate extends Varien_Object {
|
|
182 |
}
|
183 |
if($parent_instance && $parent_instance->getId() && $parent_instance->getTypeId() == 'configurable') {
|
184 |
$parent_id = $parent_instance->getId();
|
185 |
-
|
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 |
-
|
198 |
if($variations) {
|
199 |
foreach ($variations as $variation) {
|
200 |
$variation_name .= $variation['frontend_label'] . ',';
|
@@ -207,69 +255,64 @@ class Lengow_Export_Model_Generate extends Varien_Object {
|
|
207 |
}
|
208 |
$parents = Mage::getModel('catalog/product_type_grouped')->getParentIdsByChild($parent_id ? $parent_id : $p['entity_id']);
|
209 |
if(!empty($parents)) {
|
210 |
-
$
|
|
|
|
|
|
|
211 |
->getCollection()
|
212 |
->addAttributeToFilter('type_id','grouped')
|
213 |
->addAttributeToFilter('entity_id', array('in' => $parents))
|
214 |
->getFirstItem();
|
215 |
-
|
216 |
-
|
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 = $
|
230 |
// Default data
|
231 |
-
$array_data['sku'] = $
|
232 |
-
$array_data['product_id'] = $
|
233 |
$array_data['qty'] = (integer) $qty->getQty();
|
234 |
if($this->_config_model->get('data/without_product_ordering'))
|
235 |
$array_data['qty'] = $array_data['qty'] - (integer) $qty->getQtyOrdered();
|
236 |
-
$
|
237 |
-
|
238 |
-
$array_data =
|
|
|
|
|
|
|
239 |
// Images, gestion de la fusion parent / enfant
|
240 |
-
if($this->_config_model->get('data/parentsimages') && $
|
241 |
-
$array_data = array_merge($array_data, $product->getImages($data['media_gallery']['images'], $
|
242 |
else
|
243 |
$array_data = array_merge($array_data, $product->getImages($data['media_gallery']['images']));
|
244 |
-
|
245 |
-
|
|
|
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(),
|
249 |
-
$array_data['short_description'] = $this->_helper->cleanData($parent_instance->getShortDescription(),
|
250 |
} else {
|
251 |
-
$array_data['product-url'] = $
|
252 |
-
$array_data['
|
253 |
-
$array_data['
|
|
|
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;
|
259 |
-
$array_data['image_default'] = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA) . 'catalog/product' . $
|
260 |
-
$array_data['child_name'] = $
|
261 |
// Selected attributes to export with Frond End value of current shop
|
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($
|
266 |
$array_data[$attr] = '';
|
267 |
-
else if(is_array($
|
268 |
-
$array_data[$attr] = implode(',', $
|
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
|
272 |
-
$array_data[$attr] = $this->_helper->cleanData($
|
273 |
}
|
274 |
}
|
275 |
}
|
@@ -294,25 +337,94 @@ class Lengow_Export_Model_Generate extends Varien_Object {
|
|
294 |
}
|
295 |
// Fix Sébastien Ledan
|
296 |
if(method_exists($product, 'clearInstance')) {
|
297 |
-
|
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());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
307 |
if(!$this->_stream) {
|
|
|
|
|
308 |
$this->_copyFile();
|
309 |
$store_code = Mage::app()->getStore($this->_id_store)->getCode();
|
310 |
-
Mage::app()->setCurrentStore($this->getCurrentStore());
|
311 |
$url_file = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA) . 'lengow' . DS . $store_code . DS . $this->_filename . '.' . $this->_format;
|
312 |
echo $this->_helper->__('Your feed is available here : %s' , '<a href="' . $url_file . '">' . $url_file . '</a>');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
313 |
}
|
314 |
}
|
315 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
316 |
protected function _getProductsCollection($types = null,
|
317 |
$status = null,
|
318 |
$export_child = null,
|
@@ -320,7 +432,8 @@ class Lengow_Export_Model_Generate extends Varien_Object {
|
|
320 |
$selected_products = null,
|
321 |
$limit = null,
|
322 |
$offset = null,
|
323 |
-
$ids_product = null)
|
|
|
324 |
// Filter types
|
325 |
if($types) {
|
326 |
$_types = explode(',', $types);
|
@@ -334,15 +447,16 @@ class Lengow_Export_Model_Generate extends Varien_Object {
|
|
334 |
$products = $this->_product_model
|
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');
|
343 |
-
if($status
|
344 |
$products->addAttributeToFilter('status', array('eq' => Mage_Catalog_Model_Product_Status::STATUS_ENABLED));
|
345 |
-
else if($status
|
346 |
$products->addAttributeToFilter('status', array('eq' => Mage_Catalog_Model_Product_Status::STATUS_DISABLED));
|
347 |
// Export only selected products
|
348 |
if($selected_products) {
|
@@ -373,14 +487,19 @@ class Lengow_Export_Model_Generate extends Varien_Object {
|
|
373 |
}
|
374 |
|
375 |
/**
|
376 |
-
|
377 |
-
|
378 |
-
|
|
|
|
|
|
|
|
|
|
|
379 |
// Filter product without stock
|
380 |
if(!$out_of_stock) {
|
381 |
$config = (int)Mage::getStoreConfigFlag(Mage_CatalogInventory_Model_Stock_Item::XML_PATH_MANAGE_STOCK);
|
382 |
$sql = '({{table}}.`is_in_stock` = 1) '
|
383 |
-
|
384 |
unset($config);
|
385 |
return $sql;
|
386 |
}
|
@@ -388,8 +507,11 @@ class Lengow_Export_Model_Generate extends Varien_Object {
|
|
388 |
|
389 |
/**
|
390 |
* Return attributes to export
|
|
|
|
|
391 |
*/
|
392 |
-
protected function _getAttributesFromConfig()
|
|
|
393 |
$attributes = $this->_config_model->getSelectedAttributes();
|
394 |
foreach($attributes as $name => $value)
|
395 |
self::$DEFAULT_FIELDS[$name] = $value;
|
@@ -397,9 +519,14 @@ class Lengow_Export_Model_Generate extends Varien_Object {
|
|
397 |
}
|
398 |
|
399 |
/**
|
400 |
-
*
|
|
|
|
|
|
|
|
|
401 |
*/
|
402 |
-
protected function getAttributesFromConfig($exist = false)
|
|
|
403 |
$attributes = $this->_config_model->getMappingAllAttributes();
|
404 |
if($exist) {
|
405 |
$product = Mage::getModel('catalog/product');
|
@@ -415,9 +542,11 @@ class Lengow_Export_Model_Generate extends Varien_Object {
|
|
415 |
|
416 |
/**
|
417 |
* File generation
|
|
|
|
|
418 |
*/
|
419 |
-
|
420 |
-
|
421 |
if($this->_stream == false) {
|
422 |
if(!$this->_file) {
|
423 |
$this->_initFile();
|
@@ -431,7 +560,11 @@ class Lengow_Export_Model_Generate extends Varien_Object {
|
|
431 |
}
|
432 |
}
|
433 |
|
434 |
-
|
|
|
|
|
|
|
|
|
435 |
$this->_time = time();
|
436 |
$store_code = Mage::app()->getStore($this->_id_store)->getCode();
|
437 |
$file_path = Mage::getBaseDir('media') . DS . 'lengow' . DS . $store_code . DS;
|
@@ -441,10 +574,31 @@ class Lengow_Export_Model_Generate extends Varien_Object {
|
|
441 |
$this->_file->streamOpen($this->_filename . '.' . $this->_time . '.' . $this->_format, 'w+');
|
442 |
}
|
443 |
|
444 |
-
|
|
|
|
|
|
|
|
|
445 |
$store_code = Mage::app()->getStore($this->_id_store)->getCode();
|
446 |
$file_path = Mage::getBaseDir('media') . DS . 'lengow' . DS . $store_code . DS;
|
447 |
copy($file_path . $this->_filename . '.' . $this->_time . '.' . $this->_format, $file_path . $this->_filename . '.' . $this->_format);
|
448 |
unlink($file_path . $this->_filename . '.' . $this->_time . '.' . $this->_format);
|
449 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
450 |
}
|
4 |
*
|
5 |
* @category Lengow
|
6 |
* @package Lengow_Export
|
7 |
+
* @author Ludovic Drin <ludovic@lengow.com> & Benjamin Le Nevé <benjamin.le-neve@lengow.com>
|
8 |
+
* @copyright 2015 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 $_clear_parent_cache = 0;
|
34 |
+
|
35 |
+
protected $categoryCache = array();
|
36 |
+
|
37 |
+
var $storeParents = array();
|
38 |
+
|
39 |
protected $_excludes = array('media_gallery',
|
40 |
+
'tier_price',
|
41 |
+
'short_description',
|
42 |
+
'description',
|
43 |
+
'quantity');
|
44 |
/**
|
45 |
* Default fields.
|
46 |
*/
|
47 |
public static $DEFAULT_FIELDS = array('sku' => 'sku' ,
|
48 |
+
'entity_id' => 'product-id' ,
|
49 |
+
'parent-id' => 'parent-id' ,
|
50 |
+
'qty' => 'qty' ,
|
51 |
+
'name' => 'name' ,
|
52 |
+
'description' => 'description' ,
|
53 |
+
'short_description' => 'short_description' ,
|
54 |
+
'price-ttc' => 'price-ttc' ,
|
55 |
+
'shipping-name' => 'shipping-name' ,
|
56 |
+
'image-url-1' => 'image-url-1' ,
|
57 |
+
'product-url' => 'product-url');
|
58 |
|
59 |
/**
|
60 |
* Construct generator
|
61 |
* Set models
|
62 |
*/
|
63 |
+
public function __construct()
|
64 |
+
{
|
65 |
+
$this->_config_model = Mage::getSingleton('lenexport/config');
|
66 |
+
$this->_product_model = Mage::getModel('lenexport/catalog_product');
|
67 |
$this->_eav_model = Mage::getResourceModel('eav/entity_attribute_collection');
|
68 |
$this->_stream = $this->_config_model->get('performances/usesavefile') ? false : true;
|
69 |
+
$this->_helper = Mage::helper('lenexport/data');
|
70 |
+
$this->_format = $this->_config_model->get('data/format');
|
71 |
}
|
72 |
|
73 |
/**
|
74 |
* Make the feed
|
75 |
*
|
76 |
+
* @param integer $id_store ID of store
|
77 |
+
* @param varchar $mode The mode of export
|
78 |
+
* size : display only count of products to export
|
79 |
+
* full : export simple product + configured product
|
80 |
+
* xxx,yyy : export xxx type product + yyy type product
|
81 |
+
* @param varchar $format Format of export
|
82 |
+
* @param varchar $types Type(s) of product
|
83 |
+
* @param varchar $status Status of product to export
|
84 |
+
* @param boolean $export_child Export child of product
|
85 |
+
* @param boolean $out_of_stock Export product out of stock
|
86 |
+
* @param boolean $selected_products Export selected product
|
87 |
+
* @param boolean $stream Export in file or not
|
88 |
+
* @param integer $limit The number of product to be exported
|
89 |
+
* @param integer $offset From what product export
|
90 |
+
* @param array $ids_product Ids product to export
|
91 |
*
|
92 |
* @return Mage_Catalog_Model_Product
|
93 |
*/
|
94 |
public function exec($id_store,
|
95 |
+
$mode = null,
|
96 |
+
$format = null,
|
97 |
+
$types = null,
|
98 |
+
$status = null,
|
99 |
+
$export_child = null,
|
100 |
+
$out_of_stock = null,
|
101 |
+
$selected_products = null,
|
102 |
+
$stream = null,
|
103 |
+
$limit = null,
|
104 |
+
$offset = null,
|
105 |
+
$ids_product = null)
|
106 |
+
{
|
107 |
+
|
108 |
+
//store start time export
|
109 |
+
$time_start = $this->microtime_float();
|
110 |
+
|
111 |
$this->_id_store = $id_store;
|
112 |
+
if (!is_null($format))
|
113 |
+
$this->_format = $format;
|
114 |
// Get products list to export
|
115 |
$products = $this->_getProductsCollection($types, $status, $export_child, $out_of_stock, $selected_products, $limit, $offset, $ids_product);
|
116 |
// Mode size, return count of products
|
120 |
$this->_stream = $stream;
|
121 |
if(!$this->_stream) {
|
122 |
header('Content-Type: text/html; charset=utf-8');
|
123 |
+
echo date('Y-m-d h:i:s') . ' - Start export in store ' . Mage::app()->getStore($this->_id_store)->getName() . '(' . $this->_id_store . ')<br />';
|
124 |
flush();
|
125 |
}
|
126 |
// Gestion des attributs à exporter
|
127 |
+
$attributes_to_export = $this->_config_model->getMappingAllAttributes($this->_id_store);
|
128 |
$products_data = array();
|
129 |
$this->_attrs = array();
|
130 |
$feed = Mage::getModel('Lengow_Export_Model_Feed_' . ucfirst($this->_format));
|
132 |
$last = false;
|
133 |
$total_product = count($products);
|
134 |
$pi = 1;
|
135 |
+
Mage::helper('lensync/data')->log('Find ' . $total_product . ' product' . ($total_product > 1 ? 's ' : ' '));
|
136 |
if(!$this->_stream) {
|
137 |
+
echo date('Y-m-d h:i:s') . ' - Find ' . $total_product . ' product' . ($total_product > 1 ? 's ' : ' ') . '<br />';
|
138 |
flush();
|
139 |
}
|
140 |
+
// Product counter
|
141 |
+
$count_simple = 0;
|
142 |
+
$count_simple_disabled = 0;
|
143 |
+
$count_configurable = 0;
|
144 |
+
$count_bundle = 0;
|
145 |
+
$count_grouped = 0;
|
146 |
+
$count_virtual = 0;
|
147 |
// Generate data
|
148 |
foreach($products as $p) {
|
149 |
$array_data = array();
|
151 |
$pi++;
|
152 |
if($total_product < $pi)
|
153 |
$last = true;
|
154 |
+
$product = Mage::getModel('lenexport/catalog_product')
|
155 |
+
->setStoreId($this->_id_store)
|
156 |
+
->setOriginalCurrency($this->getOriginalCurrency())
|
157 |
+
->setCurrentCurrencyCode($this->getCurrentCurrencyCode())
|
158 |
+
->load($p['entity_id']);
|
|
|
|
|
|
|
|
|
|
|
|
|
159 |
$data = $product->getData();
|
160 |
// Load first parent if exist
|
161 |
+
$parents = null;
|
162 |
$parent_instance = null;
|
163 |
$configurable_instance = null;
|
164 |
$parent_id = null;
|
165 |
$product_type = 'simple';
|
166 |
$variation_name = '';
|
167 |
+
if($product->getTypeId() == 'configurable') {
|
168 |
+
$count_configurable++;
|
169 |
$product_type = 'parent';
|
170 |
+
$product_temp = $product;
|
171 |
+
$variations = $product_temp
|
172 |
+
->setOriginalCurrency($this->getOriginalCurrency())
|
173 |
+
->setCurrentCurrencyCode($this->getCurrentCurrencyCode())
|
174 |
+
->setStoreId($this->_id_store)
|
175 |
+
->getTypeInstance(true)
|
176 |
+
->getConfigurableAttributesAsArray($product);
|
177 |
if($variations) {
|
178 |
foreach ($variations as $variation) {
|
179 |
$variation_name .= $variation['frontend_label'] . ',';
|
181 |
$variation_name = rtrim($variation_name, ',');
|
182 |
}
|
183 |
}
|
184 |
+
if($product->getTypeId() == 'virtual') {
|
185 |
+
$count_virtual++;
|
186 |
+
$product_type = 'virtual';
|
187 |
+
}
|
188 |
+
if($product->getTypeId() == 'grouped' || $product->getTypeId() == 'bundle') {
|
189 |
+
if($product->getTypeId() == 'bundle') {
|
190 |
+
$count_bundle++;
|
191 |
+
$product_type = 'bundle';
|
192 |
+
} else {
|
193 |
+
$count_grouped++;
|
194 |
+
$product_type = 'grouped';
|
195 |
+
}
|
196 |
+
// get quantity for bundle or grouped products
|
197 |
+
$childrenIds = array();
|
198 |
+
$qtys = array();
|
199 |
+
$childrenIds = array_reduce(
|
200 |
+
$product->getTypeInstance(true)->getChildrenIds($product->getId()),
|
201 |
+
function (array $reduce, $value) {
|
202 |
+
return array_merge($reduce, $value);
|
203 |
+
}, []);
|
204 |
+
foreach ($childrenIds as $childrenId) {
|
205 |
+
$product_temporary = Mage::getModel('catalog/product')
|
206 |
+
->setOriginalCurrency($this->getOriginalCurrency())
|
207 |
+
->setCurrentCurrencyCode($this->getCurrentCurrencyCode())
|
208 |
+
->setStoreId($this->_id_store)
|
209 |
+
->load($childrenId);
|
210 |
+
$qtys[] = $product_temporary->getData('stock_item')->getQty();
|
211 |
+
unset($product_temporary);
|
212 |
+
}
|
213 |
+
$qty_temp = min($qtys) > 0 ? min($qtys) : 0;
|
214 |
+
}
|
215 |
+
if($product->getTypeId() == 'simple') {
|
216 |
+
$count_simple++;
|
217 |
$parents = Mage::getModel('catalog/product_type_configurable')->getParentIdsByChild($p['entity_id']);
|
218 |
if(!empty($parents)) {
|
219 |
+
|
220 |
+
$parent_instance = $this->_getParentEntity((int)$parents[0]);
|
221 |
+
|
222 |
// Exclude if parent is disabled
|
223 |
+
if($parent_instance && $parent_instance->getStatus() == Mage_Catalog_Model_Product_Status::STATUS_DISABLED) {
|
224 |
+
$count_simple_disabled++;
|
225 |
if(!$this->_stream) {
|
226 |
if($pi % 20 == 0)
|
227 |
echo date('Y-m-d h:i:s') .' - Export ' . $pi . ' products<br />';
|
240 |
}
|
241 |
if($parent_instance && $parent_instance->getId() && $parent_instance->getTypeId() == 'configurable') {
|
242 |
$parent_id = $parent_instance->getId();
|
243 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
244 |
$variations = $parent_instance->getTypeInstance(true)
|
245 |
+
->getConfigurableAttributesAsArray($parent_instance);
|
246 |
if($variations) {
|
247 |
foreach ($variations as $variation) {
|
248 |
$variation_name .= $variation['frontend_label'] . ',';
|
255 |
}
|
256 |
$parents = Mage::getModel('catalog/product_type_grouped')->getParentIdsByChild($parent_id ? $parent_id : $p['entity_id']);
|
257 |
if(!empty($parents)) {
|
258 |
+
$temp_instance = Mage::getModel('catalog/product')
|
259 |
+
->setOriginalCurrency($this->getOriginalCurrency())
|
260 |
+
->setCurrentCurrencyCode($this->getCurrentCurrencyCode())
|
261 |
+
->setStoreId($this->_id_store)
|
262 |
->getCollection()
|
263 |
->addAttributeToFilter('type_id','grouped')
|
264 |
->addAttributeToFilter('entity_id', array('in' => $parents))
|
265 |
->getFirstItem();
|
266 |
+
|
267 |
+
$parent_instance = $this->_getParentEntity($temp_instance->getId());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
268 |
}
|
269 |
+
$qty = $product->getData('stock_item');
|
270 |
// Default data
|
271 |
+
$array_data['sku'] = $product->getSku();
|
272 |
+
$array_data['product_id'] = $product->getId();
|
273 |
$array_data['qty'] = (integer) $qty->getQty();
|
274 |
if($this->_config_model->get('data/without_product_ordering'))
|
275 |
$array_data['qty'] = $array_data['qty'] - (integer) $qty->getQtyOrdered();
|
276 |
+
if($product->getTypeId() == 'grouped' || $product->getTypeId() == 'bundle')
|
277 |
+
$array_data['qty'] = (integer) $qty_temp;
|
278 |
+
$array_data['status'] = $product->getStatus() == Mage_Catalog_Model_Product_Status::STATUS_DISABLED ? 'Disabled' : 'Enabled';
|
279 |
+
$array_data = array_merge($array_data, $product->getCategories($product, $parent_instance, $this->_id_store, $this->categoryCache));
|
280 |
+
$array_data = array_merge($array_data, $product->getPrices($product, $configurable_instance));
|
281 |
+
$array_data = array_merge($array_data, $product->getShippingInfo($product));
|
282 |
// Images, gestion de la fusion parent / enfant
|
283 |
+
if($this->_config_model->get('data/parentsimages') && isset($parent_instance) && $parent_instance !== false)
|
284 |
+
$array_data = array_merge($array_data, $product->getImages($data['media_gallery']['images'], $parent_instance->getData('media_gallery')));
|
285 |
else
|
286 |
$array_data = array_merge($array_data, $product->getImages($data['media_gallery']['images']));
|
287 |
+
// formatdata -> replace special chars with html chars
|
288 |
+
$formatData = $this->_config_model->get('data/formatdata') == 1 ? true : false;
|
289 |
+
if($product->getVisibility() == Mage_Catalog_Model_Product_Visibility::VISIBILITY_NOT_VISIBLE && isset($parent_instance)) {
|
290 |
$array_data['product-url'] = $parent_instance->getUrlInStore() ? $parent_instance->getUrlInStore() : $parent_instance->getProductUrl();
|
291 |
+
$array_data['name'] = $this->_helper->cleanData($parent_instance->getName(), $formatData, in_array('name', $this->_config_model->getHtmlAttributes()));
|
292 |
+
$array_data['description'] = $this->_helper->cleanData($parent_instance->getDescription(), $formatData, in_array('description', $this->_config_model->getHtmlAttributes()));
|
293 |
+
$array_data['short_description'] = $this->_helper->cleanData($parent_instance->getShortDescription(), $formatData, in_array('short_description', $this->_config_model->getHtmlAttributes()));
|
294 |
} else {
|
295 |
+
$array_data['product-url'] = $product->getUrlInStore() ? $product->getUrlInStore() : $product->getProductUrl();
|
296 |
+
$array_data['name'] = $this->_helper->cleanData($product->getName(), $formatData, in_array('name', $this->_config_model->getHtmlAttributes()));
|
297 |
+
$array_data['description'] = $this->_helper->cleanData($product->getDescription(), $formatData, in_array('description', $this->_config_model->getHtmlAttributes()));
|
298 |
+
$array_data['short_description'] = $this->_helper->cleanData($product->getShortDescription(), $formatData, in_array('short_description', $this->_config_model->getHtmlAttributes()));
|
299 |
}
|
300 |
$array_data['parent_id'] = $parent_id;
|
301 |
// Product variation
|
302 |
$array_data['product_type'] = $product_type;
|
303 |
$array_data['product_variation'] = $variation_name;
|
304 |
+
$array_data['image_default'] = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA) . 'catalog/product' . $product->getImage();
|
305 |
+
$array_data['child_name'] = $product->getName();
|
306 |
// Selected attributes to export with Frond End value of current shop
|
307 |
if(!empty($attributes_to_export)) {
|
308 |
foreach($attributes_to_export as $field => $attr) {
|
309 |
if(!in_array($field, $this->_excludes) && !isset($array_data[$field])) {
|
310 |
+
if($product->getData($field) === null)
|
311 |
$array_data[$attr] = '';
|
312 |
+
else if(is_array($product->getData($field)))
|
313 |
+
$array_data[$attr] = implode(',', $product->getData($field));
|
|
|
|
|
314 |
else
|
315 |
+
$array_data[$attr] = $this->_helper->cleanData($product->getResource()->getAttribute($field)->getFrontend()->getValue($product), $formatData, in_array($field, $this->_config_model->getHtmlAttributes()));
|
316 |
}
|
317 |
}
|
318 |
}
|
337 |
}
|
338 |
// Fix Sébastien Ledan
|
339 |
if(method_exists($product, 'clearInstance')) {
|
340 |
+
$product->clearInstance();
|
|
|
|
|
|
|
|
|
|
|
341 |
}
|
342 |
unset($array_data);
|
343 |
}
|
344 |
$this->_write($feed->makeFooter());
|
345 |
+
// Product counter and warning
|
346 |
+
$total_simple = $count_simple - $count_simple_disabled;
|
347 |
+
$total = $count_configurable + $count_grouped + $count_bundle + $count_virtual + $total_simple;
|
348 |
+
$message_count = 'Export ' . $total . ' product' . ($total_product > 1 ? 's ' : '') . ' ('
|
349 |
+
. $total_simple . ' simple product' . ($total_simple > 1 ? 's ' : '') . ', '
|
350 |
+
. $count_configurable . ' configurable product' . ($count_configurable > 1 ? 's ' : '') . ', '
|
351 |
+
. $count_bundle . ' bundle product' . ($count_bundle > 1 ? 's ' : '') . ', '
|
352 |
+
. $count_grouped . ' grouped product' . ($count_grouped > 1 ? 's ' : '') . ', '
|
353 |
+
. $count_virtual . ' virtual product' . ($count_virtual > 1 ? 's ' : '') . ')';
|
354 |
+
Mage::helper('lensync/data')->log($message_count);
|
355 |
+
if ($count_simple_disabled > 1) {
|
356 |
+
if ($count_simple_disabled == 1)
|
357 |
+
$message_warning = 'WARNING ! 1 simple product is associated with a disabled configurable product';
|
358 |
+
else
|
359 |
+
$message_warning = 'WARNING ! ' . $count_simple_disabled . ' simple products are associated with configurable products disabled';
|
360 |
+
Mage::helper('lensync/data')->log($message_warning);
|
361 |
+
if (!$this->_stream) {
|
362 |
+
echo date('Y-m-d h:i:s') .' - ' . $message_warning . '<br />';
|
363 |
+
flush();
|
364 |
+
}
|
365 |
+
}
|
366 |
if(!$this->_stream) {
|
367 |
+
echo date('Y-m-d h:i:s') .' - ' . $message_count . '<br />';
|
368 |
+
flush();
|
369 |
$this->_copyFile();
|
370 |
$store_code = Mage::app()->getStore($this->_id_store)->getCode();
|
|
|
371 |
$url_file = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA) . 'lengow' . DS . $store_code . DS . $this->_filename . '.' . $this->_format;
|
372 |
echo $this->_helper->__('Your feed is available here : %s' , '<a href="' . $url_file . '">' . $url_file . '</a>');
|
373 |
+
Mage::helper('lensync/data')->log('Export of the store ' . Mage::app()->getStore($this->_id_store)->getName() . '(' . $this->_id_store . ') generated a file here : ' . $url_file);
|
374 |
+
}
|
375 |
+
|
376 |
+
$time_end = $this->microtime_float();
|
377 |
+
$time = $time_end - $time_start;
|
378 |
+
if(!$this->_stream) {
|
379 |
+
echo "<br/> Memory Usage ".memory_get_usage()/1000000;
|
380 |
+
echo "<br/> Execution time $time secondes";
|
381 |
}
|
382 |
}
|
383 |
|
384 |
+
/**
|
385 |
+
* Temporary store Parent Identity
|
386 |
+
*
|
387 |
+
* @param integer $parent_id Parent Entity Id
|
388 |
+
*
|
389 |
+
* @return object Catalog/product
|
390 |
+
*/
|
391 |
+
protected function _getParentEntity($parent_id){
|
392 |
+
$this->_clear_parent_cache ++;
|
393 |
+
if (!isset($this->storeParents[$parent_id])){
|
394 |
+
$parent = Mage::getModel('lenexport/catalog_product')
|
395 |
+
->setStoreId($this->_id_store)
|
396 |
+
->setOriginalCurrency($this->getOriginalCurrency())
|
397 |
+
->setCurrentCurrencyCode($this->getCurrentCurrencyCode())
|
398 |
+
->load($parent_id);
|
399 |
+
$this->storeParents[$parent_id] = $parent;
|
400 |
+
}
|
401 |
+
if ($this->_clear_parent_cache>300){
|
402 |
+
if(method_exists($this->storeParents[0], 'clearInstance')) {
|
403 |
+
$maxStoreParent = count($this->storeParents);
|
404 |
+
for ($i = 0; $i < $maxStoreParent; $i++) {
|
405 |
+
$this->storeParents[0]->clearInstance();
|
406 |
+
}
|
407 |
+
}
|
408 |
+
$this->_clear_parent_cache = 0;
|
409 |
+
$this->storeParents = null;
|
410 |
+
}
|
411 |
+
return $this->storeParents[$parent_id];
|
412 |
+
}
|
413 |
+
|
414 |
+
/**
|
415 |
+
* Get products collection for export
|
416 |
+
*
|
417 |
+
* @param varchar $types Type(s) of product
|
418 |
+
* @param varchar $status Status of product to export
|
419 |
+
* @param boolean $export_child Export child of product
|
420 |
+
* @param boolean $out_of_stock Export product out of stock
|
421 |
+
* @param boolean $selected_products Export selected product
|
422 |
+
* @param integer $limit The number of product to be exported
|
423 |
+
* @param integer $offset From what product export
|
424 |
+
* @param array $ids_product Ids product to export
|
425 |
+
*
|
426 |
+
* @return array
|
427 |
+
*/
|
428 |
protected function _getProductsCollection($types = null,
|
429 |
$status = null,
|
430 |
$export_child = null,
|
432 |
$selected_products = null,
|
433 |
$limit = null,
|
434 |
$offset = null,
|
435 |
+
$ids_product = null)
|
436 |
+
{
|
437 |
// Filter types
|
438 |
if($types) {
|
439 |
$_types = explode(',', $types);
|
447 |
$products = $this->_product_model
|
448 |
->getCollection()
|
449 |
->addAttributeToSelect('sku')
|
450 |
+
->setStoreId($this->_id_store)
|
451 |
->addStoreFilter($this->_id_store)
|
452 |
->addAttributeToFilter('type_id', array('in' => $_types))
|
453 |
->joinField('store_id', Mage::getConfig()->getTablePrefix() . 'catalog_category_product_index', 'store_id', 'product_id=entity_id', '{{table}}.store_id = '.$this->_id_store, 'left');
|
454 |
// Filter status
|
455 |
if(is_null($status))
|
456 |
+
$status = (string) $this->_config_model->get('global/productstatus');
|
457 |
+
if($status === (string) Mage_Catalog_Model_Product_Status::STATUS_ENABLED)
|
458 |
$products->addAttributeToFilter('status', array('eq' => Mage_Catalog_Model_Product_Status::STATUS_ENABLED));
|
459 |
+
else if($status === (string) Mage_Catalog_Model_Product_Status::STATUS_DISABLED)
|
460 |
$products->addAttributeToFilter('status', array('eq' => Mage_Catalog_Model_Product_Status::STATUS_DISABLED));
|
461 |
// Export only selected products
|
462 |
if($selected_products) {
|
487 |
}
|
488 |
|
489 |
/**
|
490 |
+
* Filter out of stock product
|
491 |
+
*
|
492 |
+
* @param boolean $out_of_stock
|
493 |
+
*
|
494 |
+
* @return string
|
495 |
+
**/
|
496 |
+
protected function _getOutOfStockSQL($out_of_stock = false)
|
497 |
+
{
|
498 |
// Filter product without stock
|
499 |
if(!$out_of_stock) {
|
500 |
$config = (int)Mage::getStoreConfigFlag(Mage_CatalogInventory_Model_Stock_Item::XML_PATH_MANAGE_STOCK);
|
501 |
$sql = '({{table}}.`is_in_stock` = 1) '
|
502 |
+
. ' OR IF({{table}}.`use_config_manage_stock` = 1, ' . $config . ', {{table}}.`manage_stock`) = 0';
|
503 |
unset($config);
|
504 |
return $sql;
|
505 |
}
|
507 |
|
508 |
/**
|
509 |
* Return attributes to export
|
510 |
+
*
|
511 |
+
* @return array
|
512 |
*/
|
513 |
+
protected function _getAttributesFromConfig()
|
514 |
+
{
|
515 |
$attributes = $this->_config_model->getSelectedAttributes();
|
516 |
foreach($attributes as $name => $value)
|
517 |
self::$DEFAULT_FIELDS[$name] = $value;
|
519 |
}
|
520 |
|
521 |
/**
|
522 |
+
* Return attributes match by the customer
|
523 |
+
*
|
524 |
+
* @param boolean $exist
|
525 |
+
*
|
526 |
+
* @return array
|
527 |
*/
|
528 |
+
protected function getAttributesFromConfig($exist = false)
|
529 |
+
{
|
530 |
$attributes = $this->_config_model->getMappingAllAttributes();
|
531 |
if($exist) {
|
532 |
$product = Mage::getModel('catalog/product');
|
542 |
|
543 |
/**
|
544 |
* File generation
|
545 |
+
*
|
546 |
+
* @param array $data
|
547 |
*/
|
548 |
+
protected function _write($data)
|
549 |
+
{
|
550 |
if($this->_stream == false) {
|
551 |
if(!$this->_file) {
|
552 |
$this->_initFile();
|
560 |
}
|
561 |
}
|
562 |
|
563 |
+
/**
|
564 |
+
* Create File for export
|
565 |
+
*/
|
566 |
+
protected function _initFile()
|
567 |
+
{
|
568 |
$this->_time = time();
|
569 |
$store_code = Mage::app()->getStore($this->_id_store)->getCode();
|
570 |
$file_path = Mage::getBaseDir('media') . DS . 'lengow' . DS . $store_code . DS;
|
574 |
$this->_file->streamOpen($this->_filename . '.' . $this->_time . '.' . $this->_format, 'w+');
|
575 |
}
|
576 |
|
577 |
+
/**
|
578 |
+
* Copies the file to the correct folder
|
579 |
+
*/
|
580 |
+
protected function _copyFile()
|
581 |
+
{
|
582 |
$store_code = Mage::app()->getStore($this->_id_store)->getCode();
|
583 |
$file_path = Mage::getBaseDir('media') . DS . 'lengow' . DS . $store_code . DS;
|
584 |
copy($file_path . $this->_filename . '.' . $this->_time . '.' . $this->_format, $file_path . $this->_filename . '.' . $this->_format);
|
585 |
unlink($file_path . $this->_filename . '.' . $this->_time . '.' . $this->_format);
|
586 |
}
|
587 |
+
|
588 |
+
/**
|
589 |
+
* get microtime float
|
590 |
+
*/
|
591 |
+
protected function microtime_float()
|
592 |
+
{
|
593 |
+
list($usec, $sec) = explode(" ", microtime());
|
594 |
+
return ((float)$usec + (float)$sec);
|
595 |
+
}
|
596 |
+
|
597 |
+
|
598 |
+
protected function stop($time_start, $string){
|
599 |
+
$time_end = $this->microtime_float();
|
600 |
+
$time = $time_end - $time_start;
|
601 |
+
if ($time<0.0001){ $time = 0;}
|
602 |
+
echo round($time,4)." $string secondes <br/>";
|
603 |
+
}
|
604 |
}
|
app/code/community/Lengow/Export/Model/Observer.php
CHANGED
@@ -1,48 +1,64 @@
|
|
1 |
<?php
|
|
|
2 |
/**
|
3 |
* Lengow export model observer
|
4 |
*
|
5 |
* @category Lengow
|
6 |
* @package Lengow_Export
|
7 |
-
* @author Ludovic Drin <ludovic@lengow.com>
|
8 |
-
* @copyright
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
class Lengow_Export_Model_Observer {
|
12 |
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
23 |
}
|
24 |
-
} catch (Exception $e) {
|
25 |
-
Mage::log($e->getMessage());
|
26 |
-
Mage::log($e->getTraceAsString());
|
27 |
}
|
|
|
28 |
}
|
29 |
return $this;
|
30 |
}
|
31 |
|
32 |
-
|
33 |
-
|
|
|
|
|
|
|
|
|
34 |
if($_config->isAutoExportProduct()) {
|
35 |
$_product = $observer->getEvent()->getProduct();
|
36 |
-
$_product->setData('lengow_product', 1);
|
37 |
-
$_resource = Mage::getResourceModel('catalog/product');
|
38 |
-
$_entity_type_id = $_resource->getEntityType()->getId();
|
39 |
try {
|
40 |
-
$
|
41 |
-
'id' => $_product->getId(),
|
42 |
-
'entity_type_id' => $_entity_type_id,
|
43 |
-
'store_id' => Mage::app()->getStore()->getId(),
|
44 |
-
'lengow_product' => 1));
|
45 |
-
$_resource->saveAttribute($_product_ressource, 'lengow_product');
|
46 |
} catch (Exception $e) {
|
47 |
Mage::log($e->getMessage());
|
48 |
Mage::log($e->getTraceAsString());
|
1 |
<?php
|
2 |
+
|
3 |
/**
|
4 |
* Lengow export model observer
|
5 |
*
|
6 |
* @category Lengow
|
7 |
* @package Lengow_Export
|
8 |
+
* @author Ludovic Drin <ludovic@lengow.com> & Benjamin Le Nevé <benjamin.le-neve@lengow.com>
|
9 |
+
* @copyright 2015 Lengow SAS
|
10 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
11 |
*/
|
12 |
class Lengow_Export_Model_Observer {
|
13 |
|
14 |
+
/**
|
15 |
+
* Exports products for each store with cron job
|
16 |
+
*/
|
17 |
+
public function export($observer)
|
18 |
+
{
|
19 |
+
if(Mage::getStoreConfig('lenexport/performances/active_cron')) {
|
20 |
+
// clean old log (20 days)
|
21 |
+
Mage::helper('lensync/data')->cleanLog();
|
22 |
+
Mage::helper('lensync/data')->log('## Start cron export ##');
|
23 |
+
set_time_limit(0);
|
24 |
+
ini_set('memory_limit', '1G');
|
25 |
+
$store_collection = Mage::getResourceModel('core/store_collection')
|
26 |
+
->addFieldToFilter('is_active', 1);
|
27 |
+
$exceptions = array();
|
28 |
+
foreach($store_collection as $store) {
|
29 |
+
try {
|
30 |
+
if(Mage::getStoreConfig('lenexport/global/active_store', $store)) {
|
31 |
+
Mage::helper('lensync/data')->log('Start cron export in Store ' . $store->getName() . '(' . $store->getId() . ')');
|
32 |
+
$_configModel = Mage::getSingleton('lenexport/config');
|
33 |
+
$_configModel->setStore($store->getId());
|
34 |
+
$format =Mage::getStoreConfig('lenexport/data/format', $store);
|
35 |
+
$generate = Mage::getModel('lenexport/generate');
|
36 |
+
$generate->setCurrentStore($store->getId());
|
37 |
+
$generate->setOriginalCurrency($store->getCurrentCurrencyCode());
|
38 |
+
$generate->exec($store->getId(), null, $format, null, null, null, null, null, false, false);
|
39 |
+
} else {
|
40 |
+
Mage::helper('lensync/data')->log('Stop cron export - Store ' . $store->getName() . '(' . $store->getId() . ') is disabled');
|
41 |
+
}
|
42 |
+
} catch (Exception $e) {
|
43 |
+
Mage::log($e->getMessage());
|
44 |
+
Mage::log($e->getTraceAsString());
|
45 |
}
|
|
|
|
|
|
|
46 |
}
|
47 |
+
Mage::helper('lensync/data')->log('## End cron export ##');
|
48 |
}
|
49 |
return $this;
|
50 |
}
|
51 |
|
52 |
+
/**
|
53 |
+
* Adds new products to the selection Lengow
|
54 |
+
*/
|
55 |
+
public function autoExportProduct($observer)
|
56 |
+
{
|
57 |
+
$_config = Mage::getSingleton('lenexport/config');
|
58 |
if($_config->isAutoExportProduct()) {
|
59 |
$_product = $observer->getEvent()->getProduct();
|
|
|
|
|
|
|
60 |
try {
|
61 |
+
$_product->setLengowProduct(1);
|
|
|
|
|
|
|
|
|
|
|
62 |
} catch (Exception $e) {
|
63 |
Mage::log($e->getMessage());
|
64 |
Mage::log($e->getTraceAsString());
|
app/code/community/Lengow/Export/Model/Source/Attributes.php
CHANGED
@@ -11,7 +11,7 @@
|
|
11 |
class Lengow_Export_Model_Source_Attributes {
|
12 |
|
13 |
public function toOptionArray() {
|
14 |
-
$attributes = Mage::getSingleton('
|
15 |
array_unshift($attributes, array('value' => 'none' ,
|
16 |
'label' => Mage::helper('adminhtml')->__('Select attribut to map')));
|
17 |
return $attributes;
|
11 |
class Lengow_Export_Model_Source_Attributes {
|
12 |
|
13 |
public function toOptionArray() {
|
14 |
+
$attributes = Mage::getSingleton('lenexport/convert_parser_product')->getExternalAttributes();
|
15 |
array_unshift($attributes, array('value' => 'none' ,
|
16 |
'label' => Mage::helper('adminhtml')->__('Select attribut to map')));
|
17 |
return $attributes;
|
app/code/community/Lengow/Export/Model/Source/Types.php
CHANGED
@@ -11,7 +11,7 @@
|
|
11 |
class Lengow_Export_Model_Source_Types {
|
12 |
|
13 |
public function toOptionArray() {
|
14 |
-
$attributes = Mage::getSingleton('
|
15 |
array_unshift($attributes, array('value' => 'none' ,
|
16 |
'label' => $this->__('Sélectionnez l\'attribut à mapper')));
|
17 |
return $attributes;
|
11 |
class Lengow_Export_Model_Source_Types {
|
12 |
|
13 |
public function toOptionArray() {
|
14 |
+
$attributes = Mage::getSingleton('lenexport/convert_parser_product')->getExternalAttributes();
|
15 |
array_unshift($attributes, array('value' => 'none' ,
|
16 |
'label' => $this->__('Sélectionnez l\'attribut à mapper')));
|
17 |
return $attributes;
|
app/code/community/Lengow/Export/Model/System/Config/Backend/Apikey.php
CHANGED
@@ -11,12 +11,12 @@ class Lengow_Export_Model_System_Config_Backend_Apikey extends Mage_Core_Model_C
|
|
11 |
protected function _beforeSave() {
|
12 |
parent::_beforeSave();
|
13 |
if((boolean)$this->getFieldsetDataValue('enabled') && $this->getValue() == '')
|
14 |
-
Mage::throwException(Mage::helper('
|
15 |
if($this->isValueChanged()) {
|
16 |
/* @var $service Lengow_Export_Model_ManageOrders_Service */
|
17 |
$service = Mage::getSingleton('Lengow_Export/manageorders_service');
|
18 |
if((boolean)$this->getFieldsetDataValue('enabled') && !$service->checkApiKey($this->getValue()))
|
19 |
-
Mage::throwException(Mage::helper('
|
20 |
|
21 |
}
|
22 |
}
|
11 |
protected function _beforeSave() {
|
12 |
parent::_beforeSave();
|
13 |
if((boolean)$this->getFieldsetDataValue('enabled') && $this->getValue() == '')
|
14 |
+
Mage::throwException(Mage::helper('lensync')->__('API Key (Token) is empty'));
|
15 |
if($this->isValueChanged()) {
|
16 |
/* @var $service Lengow_Export_Model_ManageOrders_Service */
|
17 |
$service = Mage::getSingleton('Lengow_Export/manageorders_service');
|
18 |
if((boolean)$this->getFieldsetDataValue('enabled') && !$service->checkApiKey($this->getValue()))
|
19 |
+
Mage::throwException(Mage::helper('lensync')->__('API key (Token) not valid'));
|
20 |
|
21 |
}
|
22 |
}
|
app/code/community/Lengow/Export/Model/System/Config/Source/Category/Level.php
CHANGED
@@ -12,22 +12,11 @@
|
|
12 |
class Lengow_Export_Model_System_Config_Source_Category_Level extends Mage_Core_Model_Config_Data {
|
13 |
|
14 |
public function toOptionArray() {
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
array('value' => 3,
|
21 |
-
'label' => 3),
|
22 |
-
array('value' => 4,
|
23 |
-
'label' => 4),
|
24 |
-
array('value' => 5,
|
25 |
-
'label' => 5),
|
26 |
-
array('value' => 6,
|
27 |
-
'label' => 6),
|
28 |
-
array('value' => 'all',
|
29 |
-
'label' => Mage::helper('adminhtml')->__('All')),
|
30 |
-
);
|
31 |
}
|
32 |
|
33 |
}
|
12 |
class Lengow_Export_Model_System_Config_Source_Category_Level extends Mage_Core_Model_Config_Data {
|
13 |
|
14 |
public function toOptionArray() {
|
15 |
+
$array = array();
|
16 |
+
for($i = 1; $i <= 10; $i++) {
|
17 |
+
$array[] = array('value' => $i, 'label' => $i);
|
18 |
+
}
|
19 |
+
return $array;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
20 |
}
|
21 |
|
22 |
}
|
app/code/community/Lengow/Export/Model/System/Config/Source/Getattributes.php
CHANGED
@@ -15,7 +15,10 @@ class Lengow_Export_Model_System_Config_Source_Getattributes extends Mage_Core_M
|
|
15 |
->setEntityTypeFilter(Mage::getModel('catalog/product')
|
16 |
->getResource()
|
17 |
->getTypeId());
|
18 |
-
$attributeArray = array();
|
|
|
|
|
|
|
19 |
foreach ($attribute as $option) {
|
20 |
$attributeArray[] = array(
|
21 |
'value' => $option->getAttributeCode(),
|
15 |
->setEntityTypeFilter(Mage::getModel('catalog/product')
|
16 |
->getResource()
|
17 |
->getTypeId());
|
18 |
+
$attributeArray = array();
|
19 |
+
$attributeArray[] = array('value' => 'none',
|
20 |
+
'label' => '',
|
21 |
+
);
|
22 |
foreach ($attribute as $option) {
|
23 |
$attributeArray[] = array(
|
24 |
'value' => $option->getAttributeCode(),
|
app/code/community/Lengow/Export/Model/System/Config/Source/Status.php
CHANGED
@@ -18,7 +18,7 @@ class Lengow_Export_Model_System_Config_Source_Status extends Mage_Core_Model_Co
|
|
18 |
array('value' => Mage_Catalog_Model_Product_Status::STATUS_DISABLED,
|
19 |
'label' => Mage::helper('adminhtml')->__('Disabled')),
|
20 |
array('value' => Mage_Catalog_Model_Product_Status::STATUS_ENABLED . ',' . Mage_Catalog_Model_Product_Status::STATUS_DISABLED,
|
21 |
-
'label' => Mage::helper('adminhtml')->__('
|
22 |
);
|
23 |
}
|
24 |
|
18 |
array('value' => Mage_Catalog_Model_Product_Status::STATUS_DISABLED,
|
19 |
'label' => Mage::helper('adminhtml')->__('Disabled')),
|
20 |
array('value' => Mage_Catalog_Model_Product_Status::STATUS_ENABLED . ',' . Mage_Catalog_Model_Product_Status::STATUS_DISABLED,
|
21 |
+
'label' => Mage::helper('adminhtml')->__('Enabled') . ', ' . Mage::helper('adminhtml')->__('Disabled')),
|
22 |
);
|
23 |
}
|
24 |
|
app/code/community/Lengow/Export/Model/System/Config/Source/Types.php
CHANGED
@@ -6,26 +6,26 @@
|
|
6 |
* @category Lengow
|
7 |
* @package Lengow_Export
|
8 |
* @author Ludovic Drin <ludovic@lengow.com>
|
9 |
-
* @copyright 2013 Lengow SAS
|
10 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
11 |
*/
|
12 |
class Lengow_Export_Model_System_Config_Source_Types extends Mage_Core_Model_Config_Data {
|
13 |
|
14 |
public function toOptionArray() {
|
15 |
return array(
|
16 |
-
array('value' => 'configurable',
|
17 |
'label' => Mage::helper('adminhtml')->__('Configurable')),
|
18 |
-
array('value' => 'simple',
|
19 |
'label' => Mage::helper('adminhtml')->__('Simple')),
|
20 |
-
array('value' => 'bundle',
|
21 |
'label' => Mage::helper('adminhtml')->__('Bundle')),
|
22 |
-
array('value' => 'grouped',
|
23 |
'label' => Mage::helper('adminhtml')->__('Grouped')),
|
24 |
-
array('value' => 'virtual',
|
25 |
'label' => Mage::helper('adminhtml')->__('Virtual')),
|
26 |
);
|
27 |
}
|
28 |
-
|
29 |
public function toSelectArray() {
|
30 |
$select = array();
|
31 |
foreach($this->toOptionArray() as $option) {
|
6 |
* @category Lengow
|
7 |
* @package Lengow_Export
|
8 |
* @author Ludovic Drin <ludovic@lengow.com>
|
9 |
+
* @copyright 2013 Lengow SAS
|
10 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
11 |
*/
|
12 |
class Lengow_Export_Model_System_Config_Source_Types extends Mage_Core_Model_Config_Data {
|
13 |
|
14 |
public function toOptionArray() {
|
15 |
return array(
|
16 |
+
array('value' => 'configurable',
|
17 |
'label' => Mage::helper('adminhtml')->__('Configurable')),
|
18 |
+
array('value' => 'simple',
|
19 |
'label' => Mage::helper('adminhtml')->__('Simple')),
|
20 |
+
array('value' => 'bundle',
|
21 |
'label' => Mage::helper('adminhtml')->__('Bundle')),
|
22 |
+
array('value' => 'grouped',
|
23 |
'label' => Mage::helper('adminhtml')->__('Grouped')),
|
24 |
+
array('value' => 'virtual',
|
25 |
'label' => Mage::helper('adminhtml')->__('Virtual')),
|
26 |
);
|
27 |
}
|
28 |
+
|
29 |
public function toSelectArray() {
|
30 |
$select = array();
|
31 |
foreach($this->toOptionArray() as $option) {
|
app/code/community/Lengow/Export/controllers/Adminhtml/Lengow/ExportController.php
CHANGED
@@ -22,35 +22,47 @@ class Lengow_Export_Adminhtml_Lengow_ExportController extends Mage_Adminhtml_Con
|
|
22 |
public function gridAction() {
|
23 |
$this->loadLayout();
|
24 |
$this->getResponse()->setBody(
|
25 |
-
$this->getLayout()->createBlock('
|
26 |
);
|
27 |
}
|
28 |
|
29 |
public function massPublishAction() {
|
30 |
$_product_ids = (array) $this->getRequest()->getParam('product');
|
31 |
-
$_store_id = (
|
32 |
-
$_publish = (
|
33 |
$resource = Mage::getResourceModel('catalog/product');
|
34 |
$_entity_type_id = $resource->getEntityType()->getId();
|
35 |
try {
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
44 |
}
|
45 |
$this->_getSession()->addSuccess(
|
46 |
-
Mage::helper('
|
47 |
);
|
48 |
}
|
49 |
catch (Mage_Core_Model_Exception $e) {
|
50 |
$this->_getSession()->addError($e->getMessage());
|
51 |
}
|
52 |
catch (Exception $e) {
|
53 |
-
$this->_getSession()->addException($e, $e->getMessage() . Mage::helper('
|
54 |
}
|
55 |
|
56 |
$this->_redirect('*/*/', array('store'=> $_store_id));
|
22 |
public function gridAction() {
|
23 |
$this->loadLayout();
|
24 |
$this->getResponse()->setBody(
|
25 |
+
$this->getLayout()->createBlock('lenexport/adminhtml_product_grid')->toHtml()
|
26 |
);
|
27 |
}
|
28 |
|
29 |
public function massPublishAction() {
|
30 |
$_product_ids = (array) $this->getRequest()->getParam('product');
|
31 |
+
$_store_id = (integer) $this->getRequest()->getParam('store', Mage::app()->getStore()->getId());
|
32 |
+
$_publish = (integer) $this->getRequest()->getParam('publish');
|
33 |
$resource = Mage::getResourceModel('catalog/product');
|
34 |
$_entity_type_id = $resource->getEntityType()->getId();
|
35 |
try {
|
36 |
+
//update all attribute in one query
|
37 |
+
$product_action = Mage::getSingleton('catalog/product_action');
|
38 |
+
if ($_store_id != 0) {
|
39 |
+
$defaultStoreProductToUpdate = array();
|
40 |
+
foreach ($_product_ids as $_product_id) {
|
41 |
+
$lengow_product_value = Mage::getResourceModel('catalog/product')->getAttributeRawValue($_product_id, 'lengow_product', 0);
|
42 |
+
if ($lengow_product_value === false){
|
43 |
+
$defaultStoreProductToUpdate[] = $_product_id;
|
44 |
+
}
|
45 |
+
}
|
46 |
+
//need to set default value if not set
|
47 |
+
if (count($defaultStoreProductToUpdate)>0){
|
48 |
+
$product_action->updateAttributes($defaultStoreProductToUpdate, array('lengow_product' => 0), 0);
|
49 |
+
}
|
50 |
+
if ($_store_id != 0){
|
51 |
+
//set value for other store
|
52 |
+
$product_action->updateAttributes($_product_ids, array('lengow_product' => $_publish), $_store_id);
|
53 |
+
}
|
54 |
+
} else {
|
55 |
+
$product_action->updateAttributes($_product_ids, array('lengow_product' => $_publish), $_store_id);
|
56 |
}
|
57 |
$this->_getSession()->addSuccess(
|
58 |
+
Mage::helper('lenexport')->__('Total of %d record(s) were successfully updated', count($_product_ids))
|
59 |
);
|
60 |
}
|
61 |
catch (Mage_Core_Model_Exception $e) {
|
62 |
$this->_getSession()->addError($e->getMessage());
|
63 |
}
|
64 |
catch (Exception $e) {
|
65 |
+
$this->_getSession()->addException($e, $e->getMessage() . Mage::helper('lenexport')->__('There was an error while updating product(s) publication'));
|
66 |
}
|
67 |
|
68 |
$this->_redirect('*/*/', array('store'=> $_store_id));
|
app/code/community/Lengow/Export/controllers/FeedController.php
CHANGED
@@ -4,58 +4,85 @@
|
|
4 |
*
|
5 |
* @category Lengow
|
6 |
* @package Lengow_Export
|
7 |
-
* @author Ludovic Drin <ludovic@lengow.com>
|
8 |
-
* @copyright
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
class Lengow_Export_FeedController extends Mage_Core_Controller_Front_Action {
|
12 |
|
13 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
set_time_limit(0);
|
15 |
-
ini_set('memory_limit', '1G');
|
16 |
$mode = $this->getRequest()->getParam('mode');
|
17 |
-
$helper = Mage::helper('
|
18 |
if($helper->checkIp()) {
|
19 |
-
|
|
|
20 |
try {
|
21 |
$this->loadLayout(false);
|
22 |
$this->renderLayout();
|
23 |
} catch (Exception $e) {
|
24 |
Mage::throwException($e);
|
25 |
}
|
26 |
-
|
27 |
-
|
28 |
-
$
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
|
|
|
|
34 |
Mage::app()->getStore()->setCurrentStore($id_store);
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
55 |
}
|
56 |
-
|
57 |
} else {
|
58 |
-
echo Mage::helper('
|
59 |
}
|
60 |
-
}
|
61 |
}
|
4 |
*
|
5 |
* @category Lengow
|
6 |
* @package Lengow_Export
|
7 |
+
* @author Ludovic Drin <ludovic@lengow.com> & Benjamin Le Nevé <benjamin.le-neve@lengow.com>
|
8 |
+
* @copyright 2015 Lengow SAS
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
class Lengow_Export_FeedController extends Mage_Core_Controller_Front_Action {
|
12 |
|
13 |
+
/**
|
14 |
+
* Exports products for each store
|
15 |
+
*/
|
16 |
+
public function indexAction()
|
17 |
+
{
|
18 |
+
// clean old log (20 days)
|
19 |
+
Mage::helper('lensync/data')->cleanLog();
|
20 |
set_time_limit(0);
|
21 |
+
ini_set('memory_limit', '1G');
|
22 |
$mode = $this->getRequest()->getParam('mode');
|
23 |
+
$helper = Mage::helper('lenexport/security');
|
24 |
if($helper->checkIp()) {
|
25 |
+
Mage::helper('lensync/data')->log('## Start manual export ##');
|
26 |
+
$_configModel = Mage::getSingleton('lenexport/config');
|
27 |
try {
|
28 |
$this->loadLayout(false);
|
29 |
$this->renderLayout();
|
30 |
} catch (Exception $e) {
|
31 |
Mage::throwException($e);
|
32 |
}
|
33 |
+
|
34 |
+
// get store
|
35 |
+
$storeCode = $this->getRequest()->getParam('code', null);
|
36 |
+
if ($storeCode) //if store code is in URL
|
37 |
+
$id_store = (int) Mage::getModel('core/store')->load($storeCode, 'code')->getId();
|
38 |
+
else // if store id is in URL
|
39 |
+
$id_store = (integer) $this->getRequest()->getParam('store', Mage::app()->getStore()->getId());
|
40 |
+
|
41 |
+
// config store
|
42 |
+
$_configModel->setStore($id_store);
|
43 |
Mage::app()->getStore()->setCurrentStore($id_store);
|
44 |
+
|
45 |
+
// check if store is enable for export
|
46 |
+
if(Mage::getStoreConfig('lenexport/global/active_store', Mage::app()->getStore($id_store))) {
|
47 |
+
|
48 |
+
$generate = Mage::getSingleton('lenexport/generate');
|
49 |
+
$generate->setCurrentStore($id_store);
|
50 |
+
$generate->setOriginalCurrency(Mage::app()->getStore()->getCurrentCurrencyCode());
|
51 |
+
|
52 |
+
// other params
|
53 |
+
$format = $this->getRequest()->getParam('format', null);
|
54 |
+
$types = $this->getRequest()->getParam('product_type', null);
|
55 |
+
$export_child = $this->getRequest()->getParam('export_child', null);
|
56 |
+
$status = $this->getRequest()->getParam('product_status', null);
|
57 |
+
$out_of_stock = $this->getRequest()->getParam('product_out_of_stock', null);
|
58 |
+
$selected_products = $this->getRequest()->getParam('selected_products', null);
|
59 |
+
$stream = $this->getRequest()->getParam('stream', null);
|
60 |
+
$limit = $this->getRequest()->getParam('limit', null);
|
61 |
+
$offset = $this->getRequest()->getParam('offset', null);
|
62 |
+
$ids_product = $this->getRequest()->getParam('ids_product', null);
|
63 |
+
|
64 |
+
if ($locale = $this->getRequest()->getParam('locale', null)) {
|
65 |
+
// changing locale works!
|
66 |
+
Mage::app()->getLocale()->setLocale($locale);
|
67 |
+
// needed to add this
|
68 |
+
Mage::app()->getTranslator()->setLocale($locale);
|
69 |
+
// translation now works
|
70 |
+
Mage::app()->getTranslator()->init('frontend', true);
|
71 |
+
}
|
72 |
+
if($currency = $this->getRequest()->getParam('currency', null)) {
|
73 |
+
$generate->setCurrentCurrencyCode($currency);
|
74 |
+
}
|
75 |
+
Mage::helper('lensync/data')->log('Start manual export in store ' . Mage::app()->getStore($id_store)->getName() . '(' . $id_store . ')');
|
76 |
+
$generate->exec($id_store, $mode, $format, $types, $status, $export_child, $out_of_stock, $selected_products, $stream, $limit, $offset, $ids_product);
|
77 |
+
} else {
|
78 |
+
Mage::helper('lensync/data')->log('Stop manual export - Store ' . Mage::app()->getStore($id_store)->getName() . '(' . $id_store . ') is disabled');
|
79 |
+
header('Content-Type: text/html; charset=utf-8');
|
80 |
+
echo 'Stop manual export - Store ' . Mage::app()->getStore($id_store)->getName() . '(' . $id_store . ') is disabled';
|
81 |
+
flush();
|
82 |
}
|
83 |
+
Mage::helper('lensync/data')->log('## End manual export ##');
|
84 |
} else {
|
85 |
+
echo Mage::helper('lenexport')->__('Unauthorised IP : %s', $_SERVER['REMOTE_ADDR']);
|
86 |
}
|
87 |
+
}
|
88 |
}
|
app/code/community/Lengow/Export/etc/config.xml
CHANGED
@@ -2,22 +2,22 @@
|
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Lengow_Export>
|
5 |
-
<version>2.
|
6 |
</Lengow_Export>
|
7 |
</modules>
|
8 |
<admin>
|
9 |
<routers>
|
10 |
-
<
|
11 |
<use>admin</use>
|
12 |
<args>
|
13 |
<module>Lengow_Export</module>
|
14 |
<frontName>lengow</frontName>
|
15 |
</args>
|
16 |
-
</
|
17 |
<adminhtml>
|
18 |
<args>
|
19 |
<modules>
|
20 |
-
<
|
21 |
</modules>
|
22 |
</args>
|
23 |
</adminhtml>
|
@@ -25,10 +25,10 @@
|
|
25 |
</admin>
|
26 |
<global>
|
27 |
<models>
|
28 |
-
<
|
29 |
<class>Lengow_Export_Model</class>
|
30 |
<resourceModel>export_mysql4</resourceModel>
|
31 |
-
</
|
32 |
<export_mysql4>
|
33 |
<class>Lengow_Export_Model_Mysql4</class>
|
34 |
<entities>
|
@@ -39,42 +39,42 @@
|
|
39 |
</export_mysql4>
|
40 |
</models>
|
41 |
<resources>
|
42 |
-
<
|
43 |
<connection>
|
44 |
<use>core_setup</use>
|
45 |
</connection>
|
46 |
-
</
|
47 |
-
<
|
48 |
<connection>
|
49 |
<use>core_write</use>
|
50 |
</connection>
|
51 |
-
</
|
52 |
-
<
|
53 |
<connection>
|
54 |
<use>core_read</use>
|
55 |
</connection>
|
56 |
-
</
|
57 |
</resources>
|
58 |
<blocks>
|
59 |
-
<
|
60 |
<class>Lengow_Export_Block</class>
|
61 |
-
</
|
62 |
</blocks>
|
63 |
<helpers>
|
64 |
-
<
|
65 |
<class>Lengow_Export_Helper</class>
|
66 |
-
</
|
67 |
</helpers>
|
68 |
<events>
|
69 |
-
<
|
70 |
<observers>
|
71 |
-
<
|
72 |
<type>singleton</type>
|
73 |
<class>Lengow_Export_Model_Observer</class>
|
74 |
<method>autoExportProduct</method>
|
75 |
-
</
|
76 |
</observers>
|
77 |
-
</
|
78 |
</events>
|
79 |
</global>
|
80 |
<frontend>
|
@@ -103,7 +103,7 @@
|
|
103 |
<title>Lengow</title>
|
104 |
<sort_order>20</sort_order>
|
105 |
<children>
|
106 |
-
<export translate="title" module="
|
107 |
<title>Manage Products Export</title>
|
108 |
<action>adminhtml/lengow_export</action>
|
109 |
<sort_order>200</sort_order>
|
@@ -119,19 +119,19 @@
|
|
119 |
<children>
|
120 |
<config>
|
121 |
<children>
|
122 |
-
<
|
123 |
<title>Products</title>
|
124 |
-
</
|
125 |
</children>
|
126 |
</config>
|
127 |
</children>
|
128 |
</system>
|
129 |
-
<lengow translate="title" module="
|
130 |
<title>Lengow</title>
|
131 |
<children>
|
132 |
-
<
|
133 |
<title>Manage Products Export</title>
|
134 |
-
</
|
135 |
</children>
|
136 |
</lengow>
|
137 |
</children>
|
@@ -141,38 +141,47 @@
|
|
141 |
</adminhtml>
|
142 |
<crontab>
|
143 |
<jobs>
|
144 |
-
<
|
145 |
<schedule>
|
146 |
<cron_expr>0 */4 * * *</cron_expr>
|
147 |
</schedule>
|
148 |
<run>
|
149 |
-
<model>
|
150 |
</run>
|
151 |
-
</
|
152 |
</jobs>
|
153 |
</crontab>
|
154 |
<default>
|
155 |
-
<
|
156 |
<global>
|
157 |
-
<
|
158 |
<export_only_selected>0</export_only_selected>
|
|
|
159 |
<export_soldout>0</export_soldout>
|
160 |
<producttype>simple,configurable</producttype>
|
|
|
161 |
</global>
|
162 |
<data>
|
163 |
-
<
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
164 |
<default_shipping_price></default_shipping_price>
|
165 |
<default_shipping_method>flatrate_flatrate</default_shipping_method>
|
166 |
-
<
|
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>
|
174 |
<active_cron>0</active_cron>
|
175 |
</performances>
|
176 |
-
</
|
177 |
</default>
|
178 |
</config>
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Lengow_Export>
|
5 |
+
<version>2.1.0</version>
|
6 |
</Lengow_Export>
|
7 |
</modules>
|
8 |
<admin>
|
9 |
<routers>
|
10 |
+
<lenexport>
|
11 |
<use>admin</use>
|
12 |
<args>
|
13 |
<module>Lengow_Export</module>
|
14 |
<frontName>lengow</frontName>
|
15 |
</args>
|
16 |
+
</lenexport>
|
17 |
<adminhtml>
|
18 |
<args>
|
19 |
<modules>
|
20 |
+
<lenexport before="Mage_Adminhtml">Lengow_Export_Adminhtml</lenexport>
|
21 |
</modules>
|
22 |
</args>
|
23 |
</adminhtml>
|
25 |
</admin>
|
26 |
<global>
|
27 |
<models>
|
28 |
+
<lenexport>
|
29 |
<class>Lengow_Export_Model</class>
|
30 |
<resourceModel>export_mysql4</resourceModel>
|
31 |
+
</lenexport>
|
32 |
<export_mysql4>
|
33 |
<class>Lengow_Export_Model_Mysql4</class>
|
34 |
<entities>
|
39 |
</export_mysql4>
|
40 |
</models>
|
41 |
<resources>
|
42 |
+
<lenexport_setup>
|
43 |
<connection>
|
44 |
<use>core_setup</use>
|
45 |
</connection>
|
46 |
+
</lenexport_setup>
|
47 |
+
<lenexport_write>
|
48 |
<connection>
|
49 |
<use>core_write</use>
|
50 |
</connection>
|
51 |
+
</lenexport_write>
|
52 |
+
<lenexport_read>
|
53 |
<connection>
|
54 |
<use>core_read</use>
|
55 |
</connection>
|
56 |
+
</lenexport_read>
|
57 |
</resources>
|
58 |
<blocks>
|
59 |
+
<lenexport>
|
60 |
<class>Lengow_Export_Block</class>
|
61 |
+
</lenexport>
|
62 |
</blocks>
|
63 |
<helpers>
|
64 |
+
<lenexport>
|
65 |
<class>Lengow_Export_Helper</class>
|
66 |
+
</lenexport>
|
67 |
</helpers>
|
68 |
<events>
|
69 |
+
<catalog_product_save_before>
|
70 |
<observers>
|
71 |
+
<yourmodule>
|
72 |
<type>singleton</type>
|
73 |
<class>Lengow_Export_Model_Observer</class>
|
74 |
<method>autoExportProduct</method>
|
75 |
+
</yourmodule>
|
76 |
</observers>
|
77 |
+
</catalog_product_save_before>
|
78 |
</events>
|
79 |
</global>
|
80 |
<frontend>
|
103 |
<title>Lengow</title>
|
104 |
<sort_order>20</sort_order>
|
105 |
<children>
|
106 |
+
<export translate="title" module="lenexport">
|
107 |
<title>Manage Products Export</title>
|
108 |
<action>adminhtml/lengow_export</action>
|
109 |
<sort_order>200</sort_order>
|
119 |
<children>
|
120 |
<config>
|
121 |
<children>
|
122 |
+
<lenexport translate="title" module="lenexport">
|
123 |
<title>Products</title>
|
124 |
+
</lenexport>
|
125 |
</children>
|
126 |
</config>
|
127 |
</children>
|
128 |
</system>
|
129 |
+
<lengow translate="title" module="lenexport">
|
130 |
<title>Lengow</title>
|
131 |
<children>
|
132 |
+
<lenexport translate="title" module="lenexport">
|
133 |
<title>Manage Products Export</title>
|
134 |
+
</lenexport>
|
135 |
</children>
|
136 |
</lengow>
|
137 |
</children>
|
141 |
</adminhtml>
|
142 |
<crontab>
|
143 |
<jobs>
|
144 |
+
<export_feed_lengow>
|
145 |
<schedule>
|
146 |
<cron_expr>0 */4 * * *</cron_expr>
|
147 |
</schedule>
|
148 |
<run>
|
149 |
+
<model>lenexport/observer::export</model>
|
150 |
</run>
|
151 |
+
</export_feed_lengow>
|
152 |
</jobs>
|
153 |
</crontab>
|
154 |
<default>
|
155 |
+
<lenexport>
|
156 |
<global>
|
157 |
+
<active_store>0</active_store>
|
158 |
<export_only_selected>0</export_only_selected>
|
159 |
+
<autoexport_newproduct>0</autoexport_newproduct>
|
160 |
<export_soldout>0</export_soldout>
|
161 |
<producttype>simple,configurable</producttype>
|
162 |
+
<productstatus></productstatus>
|
163 |
</global>
|
164 |
<data>
|
165 |
+
<format>csv</format>
|
166 |
+
<count_images>5</count_images>
|
167 |
+
<parentsimages>0</parentsimages>
|
168 |
+
<levelcategory>5</levelcategory>
|
169 |
+
<without_product_ordering>0</without_product_ordering>
|
170 |
+
<formatdata>0</formatdata>
|
171 |
+
<html_attribute>0</html_attribute>
|
172 |
+
<shipping_price_based_on>FR</shipping_price_based_on>
|
173 |
<default_shipping_price></default_shipping_price>
|
174 |
<default_shipping_method>flatrate_flatrate</default_shipping_method>
|
175 |
+
<default_shipping_delay>2</default_shipping_delay>
|
|
|
|
|
|
|
|
|
176 |
</data>
|
177 |
+
<attributelist>
|
178 |
+
<attributes>0</attributes>
|
179 |
+
</attributelist>
|
180 |
<performances>
|
181 |
+
<valid_ip></valid_ip>
|
182 |
<usesavefile>0</usesavefile>
|
183 |
<active_cron>0</active_cron>
|
184 |
</performances>
|
185 |
+
</lenexport>
|
186 |
</default>
|
187 |
</config>
|
app/code/community/Lengow/Export/etc/system.xml
CHANGED
@@ -1,44 +1,45 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<config>
|
3 |
<tabs>
|
4 |
-
<lengow translate="label" module="
|
5 |
<label>Lengow</label>
|
6 |
<sort_order>210</sort_order>
|
7 |
</lengow>
|
8 |
</tabs>
|
9 |
<sections>
|
10 |
-
<
|
11 |
<label>Export Configuration</label>
|
12 |
<tab>lengow</tab>
|
13 |
<frontend_type>text</frontend_type>
|
14 |
<sort_order>90</sort_order>
|
15 |
<show_in_default>1</show_in_default>
|
16 |
-
<show_in_website>
|
17 |
<show_in_store>1</show_in_store>
|
18 |
<groups>
|
19 |
<global translate="label comment">
|
20 |
<label>Global</label>
|
21 |
<show_in_default>1</show_in_default>
|
22 |
-
<show_in_website>
|
23 |
<show_in_store>1</show_in_store>
|
24 |
<sort_order>1</sort_order>
|
25 |
<fields>
|
26 |
-
<
|
27 |
-
<label>
|
28 |
-
<
|
29 |
-
<
|
30 |
-
<sort_order>6</sort_order>
|
31 |
<show_in_default>1</show_in_default>
|
32 |
-
<show_in_website>
|
33 |
<show_in_store>1</show_in_store>
|
34 |
-
|
|
|
|
|
35 |
<export_only_selected>
|
36 |
<label>Export only selected product</label>
|
37 |
<comment></comment>
|
38 |
<frontend_type>select</frontend_type>
|
39 |
-
<sort_order>
|
40 |
<show_in_default>1</show_in_default>
|
41 |
-
<show_in_website>
|
42 |
<show_in_store>1</show_in_store>
|
43 |
<source_model>adminhtml/system_config_source_yesno</source_model>
|
44 |
</export_only_selected>
|
@@ -46,45 +47,45 @@
|
|
46 |
<label><![CDATA[Auto export new product]]></label>
|
47 |
<comment><![CDATA[Auto export a new product on Lengow]]></comment>
|
48 |
<frontend_type>select</frontend_type>
|
49 |
-
<sort_order>
|
50 |
<show_in_default>1</show_in_default>
|
51 |
-
<show_in_website>
|
52 |
<show_in_store>1</show_in_store>
|
53 |
<source_model>adminhtml/system_config_source_yesno</source_model>
|
54 |
-
</autoexport_newproduct>
|
55 |
<export_soldout>
|
56 |
<label>Export product out of stock</label>
|
57 |
-
<comment></comment>
|
58 |
<frontend_type>select</frontend_type>
|
59 |
-
<sort_order>
|
60 |
<show_in_default>1</show_in_default>
|
61 |
-
<show_in_website>
|
62 |
<show_in_store>1</show_in_store>
|
63 |
<source_model>adminhtml/system_config_source_yesno</source_model>
|
64 |
</export_soldout>
|
65 |
<producttype>
|
66 |
<label>Product type to export</label>
|
67 |
-
<comment></comment>
|
68 |
<frontend_type>multiselect</frontend_type>
|
69 |
-
<sort_order>
|
70 |
<show_in_default>1</show_in_default>
|
71 |
-
<show_in_website>
|
72 |
<show_in_store>1</show_in_store>
|
73 |
-
<source_model>
|
74 |
-
</producttype>
|
75 |
<productstatus>
|
76 |
<label>Status of product to export</label>
|
77 |
-
<comment></comment>
|
78 |
<frontend_type>select</frontend_type>
|
79 |
-
<sort_order>
|
80 |
<show_in_default>1</show_in_default>
|
81 |
-
<show_in_website>
|
82 |
<show_in_store>1</show_in_store>
|
83 |
-
<source_model>
|
84 |
</productstatus>
|
85 |
<!--<productchildren>
|
86 |
<label>Export child product</label>
|
87 |
-
<comment>Export child for configurable product</comment>
|
88 |
<frontend_type>select</frontend_type>
|
89 |
<sort_order>90</sort_order>
|
90 |
<show_in_default>1</show_in_default>
|
@@ -98,76 +99,93 @@
|
|
98 |
<label>Data</label>
|
99 |
<comment></comment>
|
100 |
<show_in_default>1</show_in_default>
|
101 |
-
<show_in_website>
|
102 |
<show_in_store>1</show_in_store>
|
103 |
<sort_order>2</sort_order>
|
104 |
<fields>
|
105 |
-
<
|
106 |
-
<label>
|
107 |
-
<comment></comment>
|
108 |
<frontend_type>select</frontend_type>
|
109 |
<sort_order>10</sort_order>
|
110 |
<show_in_default>1</show_in_default>
|
111 |
-
<show_in_website>
|
112 |
<show_in_store>1</show_in_store>
|
113 |
-
<source_model>
|
114 |
-
</
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
115 |
<parentsimages>
|
116 |
<label>Merge images with parents products if exist</label>
|
117 |
-
<comment></comment>
|
118 |
<frontend_type>select</frontend_type>
|
119 |
-
<sort_order>
|
120 |
<show_in_default>1</show_in_default>
|
121 |
-
<show_in_website>
|
122 |
<show_in_store>1</show_in_store>
|
123 |
<source_model>adminhtml/system_config_source_yesno</source_model>
|
124 |
</parentsimages>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
125 |
<formatdata>
|
126 |
<label>Convert data</label>
|
127 |
-
<comment><![CDATA[Replace
|
128 |
<frontend_type>select</frontend_type>
|
129 |
-
<sort_order>
|
130 |
<show_in_default>1</show_in_default>
|
131 |
-
<show_in_website>
|
132 |
<show_in_store>1</show_in_store>
|
133 |
<source_model>adminhtml/system_config_source_yesno</source_model>
|
134 |
</formatdata>
|
135 |
-
<
|
136 |
-
<label>Keep html</label>
|
137 |
-
<
|
138 |
-
<
|
139 |
-
<sort_order>
|
140 |
<show_in_default>1</show_in_default>
|
141 |
-
<show_in_website>
|
142 |
<show_in_store>1</show_in_store>
|
143 |
-
|
144 |
-
</keephtml>
|
145 |
<shipping_price_based_on>
|
146 |
<label>Country shipping</label>
|
147 |
<comment>Default country for shipping cost</comment>
|
148 |
<frontend_type>select</frontend_type>
|
149 |
<source_model>adminhtml/system_config_source_country</source_model>
|
150 |
-
<sort_order>
|
151 |
-
<show_in_default>1</show_in_default>
|
152 |
-
<show_in_website>1</show_in_website>
|
153 |
-
<show_in_store>1</show_in_store>
|
154 |
-
</shipping_price_based_on>
|
155 |
-
<default_shipping_delay>
|
156 |
-
<label>Delay of shipping</label>
|
157 |
-
<comment></comment>
|
158 |
-
<frontend_type>text</frontend_type>
|
159 |
-
<sort_order>40</sort_order>
|
160 |
<show_in_default>1</show_in_default>
|
161 |
-
<show_in_website>
|
162 |
<show_in_store>1</show_in_store>
|
163 |
-
</
|
164 |
<default_shipping_price>
|
165 |
<label>Shipping cost</label>
|
166 |
<comment>Default shipping cost if matching find</comment>
|
167 |
<frontend_type>text</frontend_type>
|
168 |
-
<sort_order>
|
169 |
<show_in_default>1</show_in_default>
|
170 |
-
<show_in_website>
|
171 |
<show_in_store>1</show_in_store>
|
172 |
</default_shipping_price>
|
173 |
<default_shipping_method>
|
@@ -175,89 +193,80 @@
|
|
175 |
<comment>Default shipping method to calculate shipping cost</comment>
|
176 |
<frontend_type>select</frontend_type>
|
177 |
<source_model>adminhtml/system_config_source_shipping_allmethods</source_model>
|
178 |
-
<sort_order>
|
179 |
-
<show_in_default>1</show_in_default>
|
180 |
-
<show_in_website>1</show_in_website>
|
181 |
-
<show_in_store>1</show_in_store>
|
182 |
-
</default_shipping_method>
|
183 |
-
<format>
|
184 |
-
<label>Format</label>
|
185 |
-
<frontend_type>select</frontend_type>
|
186 |
-
<sort_order>10</sort_order>
|
187 |
<show_in_default>1</show_in_default>
|
188 |
-
<show_in_website>
|
189 |
<show_in_store>1</show_in_store>
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
<
|
194 |
-
<frontend_type>
|
195 |
-
<sort_order>
|
196 |
<show_in_default>1</show_in_default>
|
197 |
-
<show_in_website>
|
198 |
<show_in_store>1</show_in_store>
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
205 |
<show_in_default>1</show_in_default>
|
206 |
-
<show_in_website>
|
207 |
<show_in_store>1</show_in_store>
|
208 |
-
|
209 |
-
</count_images>
|
210 |
</fields>
|
211 |
-
</
|
212 |
<performances translate="label comment">
|
213 |
<label>Performances</label>
|
214 |
<show_in_default>1</show_in_default>
|
215 |
-
<show_in_website>
|
216 |
-
<show_in_store>
|
217 |
-
<sort_order>
|
218 |
<fields>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
219 |
<usesavefile>
|
220 |
<label>Save feed on file</label>
|
221 |
<comment><![CDATA[Save the feed on a file]]></comment>
|
222 |
<frontend_type>select</frontend_type>
|
223 |
-
<sort_order>
|
224 |
<show_in_default>1</show_in_default>
|
225 |
-
<show_in_website>
|
226 |
-
<show_in_store>
|
227 |
<source_model>adminhtml/system_config_source_yesno</source_model>
|
228 |
</usesavefile>
|
229 |
<active_cron>
|
230 |
<label><![CDATA[Active cron]]></label>
|
231 |
<comment><![CDATA[Active the scheduled task for export your feed every 4h]]></comment>
|
232 |
<frontend_type>select</frontend_type>
|
233 |
-
<sort_order>
|
234 |
<show_in_default>1</show_in_default>
|
235 |
-
<show_in_website>
|
236 |
-
<show_in_store>
|
237 |
<source_model>adminhtml/system_config_source_yesno</source_model>
|
238 |
</active_cron>
|
239 |
</fields>
|
240 |
</performances>
|
241 |
-
<!-- selection des attributs -->
|
242 |
-
<attributelist translate="label">
|
243 |
-
<label>Products attributes</label>
|
244 |
-
<show_in_default>1</show_in_default>
|
245 |
-
<show_in_website>1</show_in_website>
|
246 |
-
<show_in_store>1</show_in_store>
|
247 |
-
<sort_order>20</sort_order>
|
248 |
-
<fields>
|
249 |
-
<attributes translate="label">
|
250 |
-
<label>Select attributes to export</label>
|
251 |
-
<frontend_type>multiselect</frontend_type>
|
252 |
-
<source_model>export/system_config_source_getattributes</source_model>
|
253 |
-
<sort_order>4</sort_order>
|
254 |
-
<show_in_default>1</show_in_default>
|
255 |
-
<show_in_website>1</show_in_website>
|
256 |
-
<show_in_store>1</show_in_store>
|
257 |
-
</attributes>
|
258 |
-
</fields>
|
259 |
-
</attributelist>
|
260 |
</groups>
|
261 |
-
</
|
262 |
</sections>
|
263 |
</config>
|
1 |
<?xml version="1.0"?>
|
2 |
<config>
|
3 |
<tabs>
|
4 |
+
<lengow translate="label" module="lenexport">
|
5 |
<label>Lengow</label>
|
6 |
<sort_order>210</sort_order>
|
7 |
</lengow>
|
8 |
</tabs>
|
9 |
<sections>
|
10 |
+
<lenexport translate="label" module="lenexport">
|
11 |
<label>Export Configuration</label>
|
12 |
<tab>lengow</tab>
|
13 |
<frontend_type>text</frontend_type>
|
14 |
<sort_order>90</sort_order>
|
15 |
<show_in_default>1</show_in_default>
|
16 |
+
<show_in_website>0</show_in_website>
|
17 |
<show_in_store>1</show_in_store>
|
18 |
<groups>
|
19 |
<global translate="label comment">
|
20 |
<label>Global</label>
|
21 |
<show_in_default>1</show_in_default>
|
22 |
+
<show_in_website>0</show_in_website>
|
23 |
<show_in_store>1</show_in_store>
|
24 |
<sort_order>1</sort_order>
|
25 |
<fields>
|
26 |
+
<active_store>
|
27 |
+
<label>Enabled store</label>
|
28 |
+
<frontend_type>select</frontend_type>
|
29 |
+
<sort_order>10</sort_order>
|
|
|
30 |
<show_in_default>1</show_in_default>
|
31 |
+
<show_in_website>0</show_in_website>
|
32 |
<show_in_store>1</show_in_store>
|
33 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
34 |
+
<comment>Enable store to export</comment>
|
35 |
+
</active_store>
|
36 |
<export_only_selected>
|
37 |
<label>Export only selected product</label>
|
38 |
<comment></comment>
|
39 |
<frontend_type>select</frontend_type>
|
40 |
+
<sort_order>20</sort_order>
|
41 |
<show_in_default>1</show_in_default>
|
42 |
+
<show_in_website>0</show_in_website>
|
43 |
<show_in_store>1</show_in_store>
|
44 |
<source_model>adminhtml/system_config_source_yesno</source_model>
|
45 |
</export_only_selected>
|
47 |
<label><![CDATA[Auto export new product]]></label>
|
48 |
<comment><![CDATA[Auto export a new product on Lengow]]></comment>
|
49 |
<frontend_type>select</frontend_type>
|
50 |
+
<sort_order>30</sort_order>
|
51 |
<show_in_default>1</show_in_default>
|
52 |
+
<show_in_website>0</show_in_website>
|
53 |
<show_in_store>1</show_in_store>
|
54 |
<source_model>adminhtml/system_config_source_yesno</source_model>
|
55 |
+
</autoexport_newproduct>
|
56 |
<export_soldout>
|
57 |
<label>Export product out of stock</label>
|
58 |
+
<comment></comment>
|
59 |
<frontend_type>select</frontend_type>
|
60 |
+
<sort_order>40</sort_order>
|
61 |
<show_in_default>1</show_in_default>
|
62 |
+
<show_in_website>0</show_in_website>
|
63 |
<show_in_store>1</show_in_store>
|
64 |
<source_model>adminhtml/system_config_source_yesno</source_model>
|
65 |
</export_soldout>
|
66 |
<producttype>
|
67 |
<label>Product type to export</label>
|
68 |
+
<comment></comment>
|
69 |
<frontend_type>multiselect</frontend_type>
|
70 |
+
<sort_order>50</sort_order>
|
71 |
<show_in_default>1</show_in_default>
|
72 |
+
<show_in_website>0</show_in_website>
|
73 |
<show_in_store>1</show_in_store>
|
74 |
+
<source_model>lenexport/system_config_source_types</source_model>
|
75 |
+
</producttype>
|
76 |
<productstatus>
|
77 |
<label>Status of product to export</label>
|
78 |
+
<comment></comment>
|
79 |
<frontend_type>select</frontend_type>
|
80 |
+
<sort_order>60</sort_order>
|
81 |
<show_in_default>1</show_in_default>
|
82 |
+
<show_in_website>0</show_in_website>
|
83 |
<show_in_store>1</show_in_store>
|
84 |
+
<source_model>lenexport/system_config_source_status</source_model>
|
85 |
</productstatus>
|
86 |
<!--<productchildren>
|
87 |
<label>Export child product</label>
|
88 |
+
<comment>Export child for configurable product</comment>
|
89 |
<frontend_type>select</frontend_type>
|
90 |
<sort_order>90</sort_order>
|
91 |
<show_in_default>1</show_in_default>
|
99 |
<label>Data</label>
|
100 |
<comment></comment>
|
101 |
<show_in_default>1</show_in_default>
|
102 |
+
<show_in_website>0</show_in_website>
|
103 |
<show_in_store>1</show_in_store>
|
104 |
<sort_order>2</sort_order>
|
105 |
<fields>
|
106 |
+
<format>
|
107 |
+
<label>Format</label>
|
|
|
108 |
<frontend_type>select</frontend_type>
|
109 |
<sort_order>10</sort_order>
|
110 |
<show_in_default>1</show_in_default>
|
111 |
+
<show_in_website>0</show_in_website>
|
112 |
<show_in_store>1</show_in_store>
|
113 |
+
<source_model>lenexport/system_config_source_format</source_model>
|
114 |
+
</format>
|
115 |
+
<count_images>
|
116 |
+
<label>Images max</label>
|
117 |
+
<frontend_type>select</frontend_type>
|
118 |
+
<sort_order>20</sort_order>
|
119 |
+
<show_in_default>1</show_in_default>
|
120 |
+
<show_in_website>0</show_in_website>
|
121 |
+
<show_in_store>1</show_in_store>
|
122 |
+
<source_model>lenexport/system_config_source_images</source_model>
|
123 |
+
</count_images>
|
124 |
<parentsimages>
|
125 |
<label>Merge images with parents products if exist</label>
|
126 |
+
<comment></comment>
|
127 |
<frontend_type>select</frontend_type>
|
128 |
+
<sort_order>30</sort_order>
|
129 |
<show_in_default>1</show_in_default>
|
130 |
+
<show_in_website>0</show_in_website>
|
131 |
<show_in_store>1</show_in_store>
|
132 |
<source_model>adminhtml/system_config_source_yesno</source_model>
|
133 |
</parentsimages>
|
134 |
+
<levelcategory>
|
135 |
+
<label>Level max for category</label>
|
136 |
+
<comment></comment>
|
137 |
+
<frontend_type>select</frontend_type>
|
138 |
+
<sort_order>40</sort_order>
|
139 |
+
<show_in_default>1</show_in_default>
|
140 |
+
<show_in_website>0</show_in_website>
|
141 |
+
<show_in_store>1</show_in_store>
|
142 |
+
<source_model>lenexport/system_config_source_category_level</source_model>
|
143 |
+
</levelcategory>
|
144 |
+
<without_product_ordering>
|
145 |
+
<label>Stock without products ordering</label>
|
146 |
+
<frontend_type>select</frontend_type>
|
147 |
+
<sort_order>50</sort_order>
|
148 |
+
<show_in_default>1</show_in_default>
|
149 |
+
<show_in_website>0</show_in_website>
|
150 |
+
<show_in_store>1</show_in_store>
|
151 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
152 |
+
</without_product_ordering>
|
153 |
<formatdata>
|
154 |
<label>Convert data</label>
|
155 |
+
<comment><![CDATA[Replace special chars with html chars]]></comment>
|
156 |
<frontend_type>select</frontend_type>
|
157 |
+
<sort_order>60</sort_order>
|
158 |
<show_in_default>1</show_in_default>
|
159 |
+
<show_in_website>0</show_in_website>
|
160 |
<show_in_store>1</show_in_store>
|
161 |
<source_model>adminhtml/system_config_source_yesno</source_model>
|
162 |
</formatdata>
|
163 |
+
<html_attributes>
|
164 |
+
<label>Keep html for the selected fields</label>
|
165 |
+
<frontend_type>multiselect</frontend_type>
|
166 |
+
<source_model>lenexport/system_config_source_getattributes</source_model>
|
167 |
+
<sort_order>70</sort_order>
|
168 |
<show_in_default>1</show_in_default>
|
169 |
+
<show_in_website>0</show_in_website>
|
170 |
<show_in_store>1</show_in_store>
|
171 |
+
</html_attributes>
|
|
|
172 |
<shipping_price_based_on>
|
173 |
<label>Country shipping</label>
|
174 |
<comment>Default country for shipping cost</comment>
|
175 |
<frontend_type>select</frontend_type>
|
176 |
<source_model>adminhtml/system_config_source_country</source_model>
|
177 |
+
<sort_order>80</sort_order>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
178 |
<show_in_default>1</show_in_default>
|
179 |
+
<show_in_website>0</show_in_website>
|
180 |
<show_in_store>1</show_in_store>
|
181 |
+
</shipping_price_based_on>
|
182 |
<default_shipping_price>
|
183 |
<label>Shipping cost</label>
|
184 |
<comment>Default shipping cost if matching find</comment>
|
185 |
<frontend_type>text</frontend_type>
|
186 |
+
<sort_order>90</sort_order>
|
187 |
<show_in_default>1</show_in_default>
|
188 |
+
<show_in_website>0</show_in_website>
|
189 |
<show_in_store>1</show_in_store>
|
190 |
</default_shipping_price>
|
191 |
<default_shipping_method>
|
193 |
<comment>Default shipping method to calculate shipping cost</comment>
|
194 |
<frontend_type>select</frontend_type>
|
195 |
<source_model>adminhtml/system_config_source_shipping_allmethods</source_model>
|
196 |
+
<sort_order>100</sort_order>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
197 |
<show_in_default>1</show_in_default>
|
198 |
+
<show_in_website>0</show_in_website>
|
199 |
<show_in_store>1</show_in_store>
|
200 |
+
</default_shipping_method>
|
201 |
+
<default_shipping_delay>
|
202 |
+
<label>Delay of shipping</label>
|
203 |
+
<comment></comment>
|
204 |
+
<frontend_type>text</frontend_type>
|
205 |
+
<sort_order>110</sort_order>
|
206 |
<show_in_default>1</show_in_default>
|
207 |
+
<show_in_website>0</show_in_website>
|
208 |
<show_in_store>1</show_in_store>
|
209 |
+
</default_shipping_delay>
|
210 |
+
</fields>
|
211 |
+
</data>
|
212 |
+
<!-- selection des attributs -->
|
213 |
+
<attributelist translate="label">
|
214 |
+
<label>Product attributes</label>
|
215 |
+
<show_in_default>1</show_in_default>
|
216 |
+
<show_in_website>0</show_in_website>
|
217 |
+
<show_in_store>1</show_in_store>
|
218 |
+
<sort_order>3</sort_order>
|
219 |
+
<fields>
|
220 |
+
<attributes translate="label">
|
221 |
+
<label>Select attributes to export</label>
|
222 |
+
<frontend_type>multiselect</frontend_type>
|
223 |
+
<source_model>lenexport/system_config_source_getattributes</source_model>
|
224 |
+
<sort_order>10</sort_order>
|
225 |
<show_in_default>1</show_in_default>
|
226 |
+
<show_in_website>0</show_in_website>
|
227 |
<show_in_store>1</show_in_store>
|
228 |
+
</attributes>
|
|
|
229 |
</fields>
|
230 |
+
</attributelist>
|
231 |
<performances translate="label comment">
|
232 |
<label>Performances</label>
|
233 |
<show_in_default>1</show_in_default>
|
234 |
+
<show_in_website>0</show_in_website>
|
235 |
+
<show_in_store>0</show_in_store>
|
236 |
+
<sort_order>4</sort_order>
|
237 |
<fields>
|
238 |
+
<valid_ip>
|
239 |
+
<label>Ip authorised to export</label>
|
240 |
+
<comment><![CDATA[Authorized acces to catalog export by IP, separated by ;]]></comment>
|
241 |
+
<frontend_type>text</frontend_type>
|
242 |
+
<sort_order>10</sort_order>
|
243 |
+
<show_in_default>1</show_in_default>
|
244 |
+
<show_in_website>0</show_in_website>
|
245 |
+
<show_in_store>0</show_in_store>
|
246 |
+
</valid_ip>
|
247 |
<usesavefile>
|
248 |
<label>Save feed on file</label>
|
249 |
<comment><![CDATA[Save the feed on a file]]></comment>
|
250 |
<frontend_type>select</frontend_type>
|
251 |
+
<sort_order>10</sort_order>
|
252 |
<show_in_default>1</show_in_default>
|
253 |
+
<show_in_website>0</show_in_website>
|
254 |
+
<show_in_store>0</show_in_store>
|
255 |
<source_model>adminhtml/system_config_source_yesno</source_model>
|
256 |
</usesavefile>
|
257 |
<active_cron>
|
258 |
<label><![CDATA[Active cron]]></label>
|
259 |
<comment><![CDATA[Active the scheduled task for export your feed every 4h]]></comment>
|
260 |
<frontend_type>select</frontend_type>
|
261 |
+
<sort_order>20</sort_order>
|
262 |
<show_in_default>1</show_in_default>
|
263 |
+
<show_in_website>0</show_in_website>
|
264 |
+
<show_in_store>0</show_in_store>
|
265 |
<source_model>adminhtml/system_config_source_yesno</source_model>
|
266 |
</active_cron>
|
267 |
</fields>
|
268 |
</performances>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
269 |
</groups>
|
270 |
+
</lenexport>
|
271 |
</sections>
|
272 |
</config>
|
app/code/community/Lengow/Feed/Block/Adminhtml/Feed.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
* @category Lengow
|
7 |
* @package Lengow_Feed
|
8 |
* @author Romain Le Polh <romain@lengow.com>
|
9 |
-
* @copyright 2013 Lengow SAS
|
10 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
11 |
*/
|
12 |
class Lengow_Feed_Block_Adminhtml_Feed extends Mage_Adminhtml_Block_Widget_Container {
|
@@ -25,11 +25,11 @@ class Lengow_Feed_Block_Adminhtml_Feed extends Mage_Adminhtml_Block_Widget_Conta
|
|
25 |
*/
|
26 |
protected function _prepareLayout() {
|
27 |
$this->_addButton('migrate', array(
|
28 |
-
'label' => Mage::helper('
|
29 |
'onclick' => 'form_grid_feed.submit()',
|
30 |
'class' => 'save'
|
31 |
));
|
32 |
-
$this->setChild('grid', $this->getLayout()->createBlock('
|
33 |
return parent::_prepareLayout();
|
34 |
}
|
35 |
|
6 |
* @category Lengow
|
7 |
* @package Lengow_Feed
|
8 |
* @author Romain Le Polh <romain@lengow.com>
|
9 |
+
* @copyright 2013 Lengow SAS
|
10 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
11 |
*/
|
12 |
class Lengow_Feed_Block_Adminhtml_Feed extends Mage_Adminhtml_Block_Widget_Container {
|
25 |
*/
|
26 |
protected function _prepareLayout() {
|
27 |
$this->_addButton('migrate', array(
|
28 |
+
'label' => Mage::helper('lenfeed')->__('Migrate all selected feeds'),
|
29 |
'onclick' => 'form_grid_feed.submit()',
|
30 |
'class' => 'save'
|
31 |
));
|
32 |
+
$this->setChild('grid', $this->getLayout()->createBlock('lenfeed/adminhtml_feed_grid', 'feed.grid'));
|
33 |
return parent::_prepareLayout();
|
34 |
}
|
35 |
|
app/code/community/Lengow/Feed/Block/Adminhtml/Feed/Grid.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
* @category Lengow
|
7 |
* @package Lengow_Feed
|
8 |
* @author Romain Le Polh <romain@lengow.com>
|
9 |
-
* @copyright 2013 Lengow SAS
|
10 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
11 |
*/
|
12 |
class Lengow_Feed_Block_Adminhtml_Feed_Grid extends Mage_Adminhtml_Block_Widget_Grid {
|
@@ -23,31 +23,21 @@ class Lengow_Feed_Block_Adminhtml_Feed_Grid extends Mage_Adminhtml_Block_Widget_
|
|
23 |
$this->setUseAjax(true);
|
24 |
$this->_filterVisibility = false;
|
25 |
$this->_pagerVisibility = false;
|
26 |
-
$this->_config_model = Mage::getSingleton('
|
27 |
|
28 |
// Set datas
|
29 |
-
$this->setData('id_client', $this->_config_model->get('
|
30 |
$_lengow_ids_group = array();
|
31 |
$_store_id = $this->getRequest()->getParam('store');
|
32 |
-
|
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('
|
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('
|
50 |
-
|
51 |
}
|
52 |
|
53 |
protected function _getStore() {
|
@@ -55,9 +45,9 @@ class Lengow_Feed_Block_Adminhtml_Feed_Grid extends Mage_Adminhtml_Block_Widget_
|
|
55 |
return Mage::app()->getStore($storeId);
|
56 |
}
|
57 |
|
58 |
-
|
59 |
protected function _prepareCollection() {
|
60 |
-
$connector = Mage::helper('
|
61 |
|
62 |
$args = array(
|
63 |
'idClient' => (integer) $this->getData('id_client'),
|
@@ -84,18 +74,18 @@ class Lengow_Feed_Block_Adminhtml_Feed_Grid extends Mage_Adminhtml_Block_Widget_
|
|
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
|
88 |
-
$obj_feed->setData('selected_products', $this->_config_model->get('
|
89 |
-
$obj_feed->setData('product_out_stock', $this->_config_model->get('
|
90 |
-
$obj_feed->setData('product_type', explode(',', $this->_config_model->get('
|
91 |
-
$obj_feed->setData('product_status', $this->_config_model->get('
|
92 |
-
$obj_feed->setData('product_child', $this->_config_model->get('
|
93 |
-
$obj_feed->setData('format', $this->_config_model->get('
|
94 |
}
|
95 |
$collection->addItem($obj_feed);
|
96 |
}
|
97 |
} else {
|
98 |
-
Mage::getSingleton('core/session')->addError(Mage::helper('
|
99 |
}
|
100 |
$this->setCollection($collection);
|
101 |
parent::_prepareCollection();
|
@@ -111,28 +101,28 @@ class Lengow_Feed_Block_Adminhtml_Feed_Grid extends Mage_Adminhtml_Block_Widget_
|
|
111 |
'field_name' => 'feed_id[]',
|
112 |
));
|
113 |
$this->addColumn('id', array(
|
114 |
-
'header' => Mage::helper('
|
115 |
'width' => '50px',
|
116 |
'index' => 'id',
|
117 |
'filter' => false,
|
118 |
'sortable' => false
|
119 |
));
|
120 |
$this->addColumn('name', array(
|
121 |
-
'header' => Mage::helper('
|
122 |
'index' => 'name',
|
123 |
'filter' => false,
|
124 |
'sortable' => false,
|
125 |
));
|
126 |
$this->addColumn('url', array(
|
127 |
-
'header' => Mage::helper('
|
128 |
'index' => 'url',
|
129 |
'width' => '100px',
|
130 |
'filter' => false,
|
131 |
'sortable' => false,
|
132 |
-
'renderer' => '
|
133 |
));
|
134 |
$this->addColumn('selected_products', array(
|
135 |
-
'header' => Mage::helper('
|
136 |
'index' => 'selected_products',
|
137 |
'type' => 'select',
|
138 |
'width' => '50px',
|
@@ -140,42 +130,42 @@ class Lengow_Feed_Block_Adminhtml_Feed_Grid extends Mage_Adminhtml_Block_Widget_
|
|
140 |
1 => __('Yes'),
|
141 |
0 => __('No'),
|
142 |
),
|
143 |
-
'renderer' => '
|
144 |
'filter' => false,
|
145 |
'sortable' => false,
|
146 |
));
|
147 |
$this->addColumn('product_out_stock', array(
|
148 |
-
'header' => Mage::helper('
|
149 |
'index' => 'product_out_stock',
|
150 |
'options' => array(
|
151 |
1 => __('Yes'),
|
152 |
0 => __('No'),
|
153 |
),
|
154 |
-
'renderer' => '
|
155 |
'filter' => false,
|
156 |
'sortable' => false,
|
157 |
));
|
158 |
$this->addColumn('product_type', array(
|
159 |
-
'header' => Mage::helper('
|
160 |
'index' => 'product_type',
|
161 |
-
'options' => Mage::getModel('
|
162 |
-
'renderer' => '
|
163 |
'filter' => false,
|
164 |
'sortable' => false,
|
165 |
'multiple' => true,
|
166 |
));
|
167 |
$this->addColumn('product_status', array(
|
168 |
-
'header' => Mage::helper('
|
169 |
'index' => 'product_status',
|
170 |
'width' => '50px',
|
171 |
-
'options' => Mage::getModel('
|
172 |
'filter' => false,
|
173 |
'sortable' => false,
|
174 |
-
'renderer' => '
|
175 |
));
|
176 |
/*
|
177 |
$this->addColumn('product_child', array(
|
178 |
-
'header' => Mage::helper('
|
179 |
'index' => 'product_child',
|
180 |
'width' => '50px',
|
181 |
'options' => array(
|
@@ -184,28 +174,28 @@ class Lengow_Feed_Block_Adminhtml_Feed_Grid extends Mage_Adminhtml_Block_Widget_
|
|
184 |
),
|
185 |
'filter' => false,
|
186 |
'sortable' => false,
|
187 |
-
'renderer' => '
|
188 |
));*/
|
189 |
$this->addColumn('format', array(
|
190 |
-
'header' => Mage::helper('
|
191 |
'index' => 'format',
|
192 |
'width' => '50px',
|
193 |
-
'options' => Mage::getModel('
|
194 |
'filter' => false,
|
195 |
'sortable' => false,
|
196 |
-
'renderer' => '
|
197 |
));
|
198 |
$this->addColumn('action', array(
|
199 |
-
'header' => Mage::helper('
|
200 |
'width' => '120',
|
201 |
'align' => 'left',
|
202 |
'filter' => false,
|
203 |
'sortable' => false,
|
204 |
-
'renderer' => '
|
205 |
));
|
206 |
return parent::_prepareColumns();
|
207 |
}
|
208 |
-
|
209 |
protected function _prepareMassaction() {
|
210 |
|
211 |
return $this;
|
@@ -217,7 +207,7 @@ class Lengow_Feed_Block_Adminhtml_Feed_Grid extends Mage_Adminhtml_Block_Widget_
|
|
217 |
|
218 |
public function getRowUrl($row) {
|
219 |
return '';
|
220 |
-
}
|
221 |
|
222 |
private function _getGroups($data) {
|
223 |
$_groups = trim(str_replace(array("\r\n", ';', '-', '|', ' '), ';', $data), ',');
|
6 |
* @category Lengow
|
7 |
* @package Lengow_Feed
|
8 |
* @author Romain Le Polh <romain@lengow.com>
|
9 |
+
* @copyright 2013 Lengow SAS
|
10 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
11 |
*/
|
12 |
class Lengow_Feed_Block_Adminhtml_Feed_Grid extends Mage_Adminhtml_Block_Widget_Grid {
|
23 |
$this->setUseAjax(true);
|
24 |
$this->_filterVisibility = false;
|
25 |
$this->_pagerVisibility = false;
|
26 |
+
$this->_config_model = Mage::getSingleton('lenfeed/config');
|
27 |
|
28 |
// Set datas
|
29 |
+
$this->setData('id_client', $this->_config_model->get('lentracker/general/login'));
|
30 |
$_lengow_ids_group = array();
|
31 |
$_store_id = $this->getRequest()->getParam('store');
|
32 |
+
$_group = Mage::getModel('lensync/config')->setStore($_store_id)->getConfig('lentracker/general/group');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
33 |
$this->setData('id_group', $_group);
|
34 |
+
$this->setData('api_key', $this->_config_model->get('lentracker/general/api_key'));
|
35 |
$args = array();
|
36 |
if(!empty($_store_id))
|
37 |
$args['store'] = $_store_id;
|
38 |
$this->setData('form_url', $this->getUrl('*/*/migrate', $args));
|
39 |
+
$this->setData('json_feed', $this->_config_model->get('lenfeed/general/json_feed'));
|
40 |
+
|
41 |
}
|
42 |
|
43 |
protected function _getStore() {
|
45 |
return Mage::app()->getStore($storeId);
|
46 |
}
|
47 |
|
48 |
+
|
49 |
protected function _prepareCollection() {
|
50 |
+
$connector = Mage::helper('lenfeed/data')->getConnector($this->getData('id_client'), $this->getData('api_key'));
|
51 |
|
52 |
$args = array(
|
53 |
'idClient' => (integer) $this->getData('id_client'),
|
74 |
$obj_feed->setData('product_child', (!empty($data_feeds->{$key}->product_child) ? $data_feeds->{$key}->product_child : ''));
|
75 |
$obj_feed->setData('format', $data_feeds->{$key}->format);
|
76 |
} else {
|
77 |
+
// Apply default parameters
|
78 |
+
$obj_feed->setData('selected_products', $this->_config_model->get('lenexport/global/export_only_selected'));
|
79 |
+
$obj_feed->setData('product_out_stock', $this->_config_model->get('lenexport/global/export_soldout'));
|
80 |
+
$obj_feed->setData('product_type', explode(',', $this->_config_model->get('lenexport/global/producttype')));
|
81 |
+
$obj_feed->setData('product_status', $this->_config_model->get('lenexport/global/productstatus'));
|
82 |
+
$obj_feed->setData('product_child', $this->_config_model->get('lenexport/global/productchildren'));
|
83 |
+
$obj_feed->setData('format', $this->_config_model->get('lenexport/data/format'));
|
84 |
}
|
85 |
$collection->addItem($obj_feed);
|
86 |
}
|
87 |
} else {
|
88 |
+
Mage::getSingleton('core/session')->addError(Mage::helper('lenfeed')->__('Error API, please try to refresh the page.'));
|
89 |
}
|
90 |
$this->setCollection($collection);
|
91 |
parent::_prepareCollection();
|
101 |
'field_name' => 'feed_id[]',
|
102 |
));
|
103 |
$this->addColumn('id', array(
|
104 |
+
'header' => Mage::helper('lenfeed')->__('Feed ID'),
|
105 |
'width' => '50px',
|
106 |
'index' => 'id',
|
107 |
'filter' => false,
|
108 |
'sortable' => false
|
109 |
));
|
110 |
$this->addColumn('name', array(
|
111 |
+
'header' => Mage::helper('lenfeed')->__('Feed Name'),
|
112 |
'index' => 'name',
|
113 |
'filter' => false,
|
114 |
'sortable' => false,
|
115 |
));
|
116 |
$this->addColumn('url', array(
|
117 |
+
'header' => Mage::helper('lenfeed')->__('Current Feed'),
|
118 |
'index' => 'url',
|
119 |
'width' => '100px',
|
120 |
'filter' => false,
|
121 |
'sortable' => false,
|
122 |
+
'renderer' => 'lenfeed/adminhtml_feed_renderer_url',
|
123 |
));
|
124 |
$this->addColumn('selected_products', array(
|
125 |
+
'header' => Mage::helper('lenfeed')->__('Export only selected product'),
|
126 |
'index' => 'selected_products',
|
127 |
'type' => 'select',
|
128 |
'width' => '50px',
|
130 |
1 => __('Yes'),
|
131 |
0 => __('No'),
|
132 |
),
|
133 |
+
'renderer' => 'lenfeed/adminhtml_feed_renderer_select',
|
134 |
'filter' => false,
|
135 |
'sortable' => false,
|
136 |
));
|
137 |
$this->addColumn('product_out_stock', array(
|
138 |
+
'header' => Mage::helper('lenfeed')->__('Export product out of stock'),
|
139 |
'index' => 'product_out_stock',
|
140 |
'options' => array(
|
141 |
1 => __('Yes'),
|
142 |
0 => __('No'),
|
143 |
),
|
144 |
+
'renderer' => 'lenfeed/adminhtml_feed_renderer_select',
|
145 |
'filter' => false,
|
146 |
'sortable' => false,
|
147 |
));
|
148 |
$this->addColumn('product_type', array(
|
149 |
+
'header' => Mage::helper('lenfeed')->__('Product type to export'),
|
150 |
'index' => 'product_type',
|
151 |
+
'options' => Mage::getModel('lenexport/system_config_source_types')->toSelectArray(),
|
152 |
+
'renderer' => 'lenfeed/adminhtml_feed_renderer_select',
|
153 |
'filter' => false,
|
154 |
'sortable' => false,
|
155 |
'multiple' => true,
|
156 |
));
|
157 |
$this->addColumn('product_status', array(
|
158 |
+
'header' => Mage::helper('lenfeed')->__('Status of product to export'),
|
159 |
'index' => 'product_status',
|
160 |
'width' => '50px',
|
161 |
+
'options' => Mage::getModel('lenexport/system_config_source_status')->toSelectArray(),
|
162 |
'filter' => false,
|
163 |
'sortable' => false,
|
164 |
+
'renderer' => 'lenfeed/adminhtml_feed_renderer_select',
|
165 |
));
|
166 |
/*
|
167 |
$this->addColumn('product_child', array(
|
168 |
+
'header' => Mage::helper('lenfeed')->__('Export child product'),
|
169 |
'index' => 'product_child',
|
170 |
'width' => '50px',
|
171 |
'options' => array(
|
174 |
),
|
175 |
'filter' => false,
|
176 |
'sortable' => false,
|
177 |
+
'renderer' => 'lenfeed/adminhtml_feed_renderer_select',
|
178 |
));*/
|
179 |
$this->addColumn('format', array(
|
180 |
+
'header' => Mage::helper('lenfeed')->__('Format export'),
|
181 |
'index' => 'format',
|
182 |
'width' => '50px',
|
183 |
+
'options' => Mage::getModel('lenexport/system_config_source_format')->toSelectArray(),
|
184 |
'filter' => false,
|
185 |
'sortable' => false,
|
186 |
+
'renderer' => 'lenfeed/adminhtml_feed_renderer_select',
|
187 |
));
|
188 |
$this->addColumn('action', array(
|
189 |
+
'header' => Mage::helper('lenfeed')->__('Action'),
|
190 |
'width' => '120',
|
191 |
'align' => 'left',
|
192 |
'filter' => false,
|
193 |
'sortable' => false,
|
194 |
+
'renderer' => 'lenfeed/adminhtml_feed_renderer_migrate',
|
195 |
));
|
196 |
return parent::_prepareColumns();
|
197 |
}
|
198 |
+
|
199 |
protected function _prepareMassaction() {
|
200 |
|
201 |
return $this;
|
207 |
|
208 |
public function getRowUrl($row) {
|
209 |
return '';
|
210 |
+
}
|
211 |
|
212 |
private function _getGroups($data) {
|
213 |
$_groups = trim(str_replace(array("\r\n", ';', '-', '|', ' '), ';', $data), ',');
|
app/code/community/Lengow/Feed/Block/Adminhtml/Feed/Renderer/Migrate.php
CHANGED
@@ -20,7 +20,7 @@ class Lengow_Feed_Block_Adminhtml_Feed_Renderer_Migrate extends Mage_Adminhtml_B
|
|
20 |
public function render(Varien_Object $row) {
|
21 |
return sprintf('<button type="submit" class="scalable save" name="submit" value="%s">%s</button>',
|
22 |
$row->getData('id'),
|
23 |
-
Mage::helper('
|
24 |
}
|
25 |
|
26 |
}
|
20 |
public function render(Varien_Object $row) {
|
21 |
return sprintf('<button type="submit" class="scalable save" name="submit" value="%s">%s</button>',
|
22 |
$row->getData('id'),
|
23 |
+
Mage::helper('lenfeed')->__('Migrate Feed'));
|
24 |
}
|
25 |
|
26 |
}
|
app/code/community/Lengow/Feed/Block/Adminhtml/Feed/Renderer/Url.php
CHANGED
@@ -19,7 +19,7 @@ class Lengow_Feed_Block_Adminhtml_Feed_Renderer_Url extends Mage_Adminhtml_Block
|
|
19 |
*/
|
20 |
public function render(Varien_Object $row) {
|
21 |
$url = $row->getData('url');
|
22 |
-
echo '<a class="popup-link" target="_blank" data-link="' . $url . '" href="' . $url . '">' . Mage::helper('
|
23 |
}
|
24 |
|
25 |
}
|
19 |
*/
|
20 |
public function render(Varien_Object $row) {
|
21 |
$url = $row->getData('url');
|
22 |
+
echo '<a class="popup-link" target="_blank" data-link="' . $url . '" href="' . $url . '">' . Mage::helper('lenfeed')->__('View feed') . '</a>';
|
23 |
}
|
24 |
|
25 |
}
|
app/code/community/Lengow/Feed/Helper/Data.php
CHANGED
@@ -16,7 +16,7 @@ class Lengow_Feed_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
16 |
* @return array File format
|
17 |
*/
|
18 |
public function getArrayFormat() {
|
19 |
-
$format_array = Mage::getModel('
|
20 |
$formats = array();
|
21 |
foreach($format_array as $format) {
|
22 |
$formats[] = $format['value'];
|
@@ -30,7 +30,7 @@ class Lengow_Feed_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
30 |
* @return array Product type
|
31 |
*/
|
32 |
public function getProductTypeFormat() {
|
33 |
-
$product_type_array = Mage::getModel('
|
34 |
$types = array();
|
35 |
foreach($product_type_array as $type) {
|
36 |
$types[] = $type['value'];
|
@@ -43,7 +43,7 @@ class Lengow_Feed_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
43 |
* @return mixed Lengow connector object
|
44 |
*/
|
45 |
public function getConnector($id_client, $api_key) {
|
46 |
-
$connector = Mage::getSingleton('
|
47 |
$connector->init((integer) $id_client, $api_key);
|
48 |
return $connector;
|
49 |
}
|
16 |
* @return array File format
|
17 |
*/
|
18 |
public function getArrayFormat() {
|
19 |
+
$format_array = Mage::getModel('lenexport/system_config_source_format')->toOptionArray();
|
20 |
$formats = array();
|
21 |
foreach($format_array as $format) {
|
22 |
$formats[] = $format['value'];
|
30 |
* @return array Product type
|
31 |
*/
|
32 |
public function getProductTypeFormat() {
|
33 |
+
$product_type_array = Mage::getModel('lenexport/system_config_source_types')->toOptionArray();
|
34 |
$types = array();
|
35 |
foreach($product_type_array as $type) {
|
36 |
$types[] = $type['value'];
|
43 |
* @return mixed Lengow connector object
|
44 |
*/
|
45 |
public function getConnector($id_client, $api_key) {
|
46 |
+
$connector = Mage::getSingleton('lensync/connector');
|
47 |
$connector->init((integer) $id_client, $api_key);
|
48 |
return $connector;
|
49 |
}
|
app/code/community/Lengow/Feed/Model/Feed.php
CHANGED
@@ -6,68 +6,68 @@
|
|
6 |
* @category Lengow
|
7 |
* @package Lengow_Feed
|
8 |
* @author Romain Le Polh <romain@lengow.com>
|
9 |
-
* @copyright 2013 Lengow SAS
|
10 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
11 |
*/
|
12 |
class Lengow_Feed_Model_Feed extends Varien_Object {
|
13 |
|
14 |
protected $_id;
|
15 |
-
|
16 |
/**
|
17 |
*
|
18 |
* @var boolean Export only selected product
|
19 |
*/
|
20 |
protected $_selected_products;
|
21 |
-
|
22 |
/**
|
23 |
*
|
24 |
* @var boolean Export product out of stock
|
25 |
*/
|
26 |
protected $_product_out_stock;
|
27 |
-
|
28 |
/**
|
29 |
*
|
30 |
* @var string Product type to export
|
31 |
*/
|
32 |
protected $_product_type;
|
33 |
-
|
34 |
/**
|
35 |
*
|
36 |
* @var string Status of product to export
|
37 |
*/
|
38 |
protected $_product_status;
|
39 |
-
|
40 |
/**
|
41 |
*
|
42 |
-
* @var boolean Export product child
|
43 |
*/
|
44 |
protected $_product_child;
|
45 |
-
|
46 |
/**
|
47 |
*
|
48 |
-
* @var string Export Format
|
49 |
*/
|
50 |
protected $_format;
|
51 |
-
|
52 |
/**
|
53 |
-
*
|
54 |
* @var string Url feed
|
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;
|
67 |
-
|
68 |
/**
|
69 |
* Buid feed object
|
70 |
-
*
|
71 |
* @param integer $id
|
72 |
* @param boolean $selected_products
|
73 |
* @param boolean $product_out_stock
|
@@ -84,17 +84,17 @@ class Lengow_Feed_Model_Feed extends Varien_Object {
|
|
84 |
$this->_product_status = $args['product_status'];
|
85 |
//$this->_product_child = $args['product_child'];
|
86 |
$this->_format = $args['format'];
|
87 |
-
|
88 |
-
$this->_config_model = Mage::getSingleton('
|
89 |
-
|
90 |
-
$this->_idClient = $this->_config_model->get('
|
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('
|
95 |
parent::__construct();
|
96 |
}
|
97 |
-
|
98 |
/**
|
99 |
* Build url before update
|
100 |
*/
|
@@ -111,20 +111,20 @@ class Lengow_Feed_Model_Feed extends Varien_Object {
|
|
111 |
$new_flow = Mage::getUrl('lengow/feed/index') . $params;
|
112 |
$this->_url = $new_flow;
|
113 |
}
|
114 |
-
|
115 |
/**
|
116 |
* Update feed on Lengow
|
117 |
*/
|
118 |
public function update() {
|
119 |
$this->_buildUrl();
|
120 |
-
$connector = Mage::helper('
|
121 |
$args = array(
|
122 |
'idClient' => $this->_idClient,
|
123 |
'idGroup' => $this->_idGroup,
|
124 |
'urlFlux' => $this->_url,
|
125 |
'idFlux' => $this->_id
|
126 |
);
|
127 |
-
Mage::helper('
|
128 |
return true;
|
129 |
return $connector->api('updateRootFeed', $args);
|
130 |
}
|
6 |
* @category Lengow
|
7 |
* @package Lengow_Feed
|
8 |
* @author Romain Le Polh <romain@lengow.com>
|
9 |
+
* @copyright 2013 Lengow SAS
|
10 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
11 |
*/
|
12 |
class Lengow_Feed_Model_Feed extends Varien_Object {
|
13 |
|
14 |
protected $_id;
|
15 |
+
|
16 |
/**
|
17 |
*
|
18 |
* @var boolean Export only selected product
|
19 |
*/
|
20 |
protected $_selected_products;
|
21 |
+
|
22 |
/**
|
23 |
*
|
24 |
* @var boolean Export product out of stock
|
25 |
*/
|
26 |
protected $_product_out_stock;
|
27 |
+
|
28 |
/**
|
29 |
*
|
30 |
* @var string Product type to export
|
31 |
*/
|
32 |
protected $_product_type;
|
33 |
+
|
34 |
/**
|
35 |
*
|
36 |
* @var string Status of product to export
|
37 |
*/
|
38 |
protected $_product_status;
|
39 |
+
|
40 |
/**
|
41 |
*
|
42 |
+
* @var boolean Export product child
|
43 |
*/
|
44 |
protected $_product_child;
|
45 |
+
|
46 |
/**
|
47 |
*
|
48 |
+
* @var string Export Format
|
49 |
*/
|
50 |
protected $_format;
|
51 |
+
|
52 |
/**
|
53 |
+
*
|
54 |
* @var string Url feed
|
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;
|
67 |
+
|
68 |
/**
|
69 |
* Buid feed object
|
70 |
+
*
|
71 |
* @param integer $id
|
72 |
* @param boolean $selected_products
|
73 |
* @param boolean $product_out_stock
|
84 |
$this->_product_status = $args['product_status'];
|
85 |
//$this->_product_child = $args['product_child'];
|
86 |
$this->_format = $args['format'];
|
87 |
+
|
88 |
+
$this->_config_model = Mage::getSingleton('lenfeed/config');
|
89 |
+
|
90 |
+
$this->_idClient = $this->_config_model->get('lentracker/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('lentracker/general/api_key');
|
95 |
parent::__construct();
|
96 |
}
|
97 |
+
|
98 |
/**
|
99 |
* Build url before update
|
100 |
*/
|
111 |
$new_flow = Mage::getUrl('lengow/feed/index') . $params;
|
112 |
$this->_url = $new_flow;
|
113 |
}
|
114 |
+
|
115 |
/**
|
116 |
* Update feed on Lengow
|
117 |
*/
|
118 |
public function update() {
|
119 |
$this->_buildUrl();
|
120 |
+
$connector = Mage::helper('lenfeed/data')->getConnector($this->_idClient, $this->_api_key);
|
121 |
$args = array(
|
122 |
'idClient' => $this->_idClient,
|
123 |
'idGroup' => $this->_idGroup,
|
124 |
'urlFlux' => $this->_url,
|
125 |
'idFlux' => $this->_id
|
126 |
);
|
127 |
+
Mage::helper('lensync/data')->log('Test udate group ' . $this->_idGroup . ' : ' . $this->_url);
|
128 |
return true;
|
129 |
return $connector->api('updateRootFeed', $args);
|
130 |
}
|
app/code/community/Lengow/Feed/controllers/Adminhtml/Lengow/FeedController.php
CHANGED
@@ -5,7 +5,7 @@
|
|
5 |
* @category Lengow
|
6 |
* @package Lengow_Feed
|
7 |
* @author Romain Le Polh <romain@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_Feed_Adminhtml_Lengow_FeedController extends Mage_Adminhtml_Controller_Action {
|
@@ -22,7 +22,7 @@ class Lengow_Feed_Adminhtml_Lengow_FeedController extends Mage_Adminhtml_Control
|
|
22 |
public function gridAction() {
|
23 |
$this->loadLayout();
|
24 |
$this->getResponse()->setBody(
|
25 |
-
$this->getLayout()->createBlock('
|
26 |
);
|
27 |
}
|
28 |
|
@@ -34,7 +34,7 @@ class Lengow_Feed_Adminhtml_Lengow_FeedController extends Mage_Adminhtml_Control
|
|
34 |
* Migrate feed
|
35 |
*/
|
36 |
public function migrateAction() {
|
37 |
-
|
38 |
$feed_ids = $this->getRequest()->getParam('feed_id');
|
39 |
$selected_products = $this->getRequest()->getParam('selected_products');
|
40 |
$product_out_stock = $this->getRequest()->getParam('product_out_stock');
|
@@ -44,21 +44,21 @@ class Lengow_Feed_Adminhtml_Lengow_FeedController extends Mage_Adminhtml_Control
|
|
44 |
$format = $this->getRequest()->getParam('format');
|
45 |
$_lengow_ids_group = array();
|
46 |
$_store_id = $this->getRequest()->getParam('store');
|
47 |
-
Mage::helper('
|
48 |
-
$_group = Mage::getModel('
|
49 |
-
|
50 |
if($this->getRequest()->getParam('submit')) {
|
51 |
$feed_ids = array($this->getRequest()->getParam('submit'));
|
52 |
}
|
53 |
-
|
54 |
$error = false;
|
55 |
$message = '';
|
56 |
-
$data_feeds = json_decode(Mage::getSingleton('
|
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,
|
@@ -69,25 +69,25 @@ class Lengow_Feed_Adminhtml_Lengow_FeedController extends Mage_Adminhtml_Control
|
|
69 |
'product_status' => $product_status[$feed_id],
|
70 |
//'product_child' => $product_child[$feed_id],
|
71 |
'format' => $format[$feed_id]);
|
72 |
-
|
73 |
-
$feed = Mage::getModel('
|
74 |
if(!$feed->update()) {
|
75 |
$error = true;
|
76 |
-
$message .= Mage::helper('
|
77 |
} else {
|
78 |
$data_feeds->{$feed_id} = $args;
|
79 |
}
|
80 |
}
|
81 |
-
Mage::getConfig()->saveConfig('
|
82 |
} else {
|
83 |
$error = 'true';
|
84 |
-
$message = Mage::helper('
|
85 |
}
|
86 |
-
|
87 |
if($error)
|
88 |
Mage::getSingleton('core/session')->addError($message);
|
89 |
else
|
90 |
-
Mage::getSingleton('core/session')->addSuccess(Mage::helper('
|
91 |
if(!empty($_store_id))
|
92 |
$this->_redirect('*/*/index/', array('store' => $_store_id));
|
93 |
else
|
5 |
* @category Lengow
|
6 |
* @package Lengow_Feed
|
7 |
* @author Romain Le Polh <romain@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_Feed_Adminhtml_Lengow_FeedController extends Mage_Adminhtml_Controller_Action {
|
22 |
public function gridAction() {
|
23 |
$this->loadLayout();
|
24 |
$this->getResponse()->setBody(
|
25 |
+
$this->getLayout()->createBlock('lenfeed/adminhtml_feed')->toHtml()
|
26 |
);
|
27 |
}
|
28 |
|
34 |
* Migrate feed
|
35 |
*/
|
36 |
public function migrateAction() {
|
37 |
+
|
38 |
$feed_ids = $this->getRequest()->getParam('feed_id');
|
39 |
$selected_products = $this->getRequest()->getParam('selected_products');
|
40 |
$product_out_stock = $this->getRequest()->getParam('product_out_stock');
|
44 |
$format = $this->getRequest()->getParam('format');
|
45 |
$_lengow_ids_group = array();
|
46 |
$_store_id = $this->getRequest()->getParam('store');
|
47 |
+
Mage::helper('lensync/data')->log('Test store : ' . $_store_id);
|
48 |
+
$_group = Mage::getModel('lensync/config')->setStore($_store_id)->getConfig('lentracker/general/group');
|
49 |
+
|
50 |
if($this->getRequest()->getParam('submit')) {
|
51 |
$feed_ids = array($this->getRequest()->getParam('submit'));
|
52 |
}
|
53 |
+
|
54 |
$error = false;
|
55 |
$message = '';
|
56 |
+
$data_feeds = json_decode(Mage::getSingleton('lenfeed/config')->get('lenfeed/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,
|
69 |
'product_status' => $product_status[$feed_id],
|
70 |
//'product_child' => $product_child[$feed_id],
|
71 |
'format' => $format[$feed_id]);
|
72 |
+
|
73 |
+
$feed = Mage::getModel('lenfeed/feed', $args);
|
74 |
if(!$feed->update()) {
|
75 |
$error = true;
|
76 |
+
$message .= Mage::helper('lenfeed')->__('Error update feed %s', '#' . $feed_id . '<br />');
|
77 |
} else {
|
78 |
$data_feeds->{$feed_id} = $args;
|
79 |
}
|
80 |
}
|
81 |
+
Mage::getConfig()->saveConfig('lenfeed/general/json_feed', json_encode($data_feeds));
|
82 |
} else {
|
83 |
$error = 'true';
|
84 |
+
$message = Mage::helper('lenfeed')->__('');
|
85 |
}
|
86 |
+
|
87 |
if($error)
|
88 |
Mage::getSingleton('core/session')->addError($message);
|
89 |
else
|
90 |
+
Mage::getSingleton('core/session')->addSuccess(Mage::helper('lenfeed')->__('Update success'));
|
91 |
if(!empty($_store_id))
|
92 |
$this->_redirect('*/*/index/', array('store' => $_store_id));
|
93 |
else
|
app/code/community/Lengow/Feed/etc/config.xml
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Lengow_Feed>
|
5 |
-
<version>2.
|
6 |
</Lengow_Feed>
|
7 |
</modules>
|
8 |
<admin>
|
@@ -10,7 +10,7 @@
|
|
10 |
<adminhtml>
|
11 |
<args>
|
12 |
<modules>
|
13 |
-
<
|
14 |
</modules>
|
15 |
</args>
|
16 |
</adminhtml>
|
@@ -18,10 +18,10 @@
|
|
18 |
</admin>
|
19 |
<global>
|
20 |
<models>
|
21 |
-
<
|
22 |
<class>Lengow_Feed_Model</class>
|
23 |
<resourceModel>feed_mysql4</resourceModel>
|
24 |
-
</
|
25 |
<feed_mysql4>
|
26 |
<class>Lengow_Feed_Model_Mysql4</class>
|
27 |
<entities>
|
@@ -32,31 +32,31 @@
|
|
32 |
</feed_mysql4>
|
33 |
</models>
|
34 |
<resources>
|
35 |
-
<
|
36 |
<connection>
|
37 |
<use>core_setup</use>
|
38 |
</connection>
|
39 |
-
</
|
40 |
-
<
|
41 |
<connection>
|
42 |
<use>core_write</use>
|
43 |
</connection>
|
44 |
-
</
|
45 |
-
<
|
46 |
<connection>
|
47 |
<use>core_read</use>
|
48 |
</connection>
|
49 |
-
</
|
50 |
</resources>
|
51 |
<blocks>
|
52 |
-
<
|
53 |
<class>Lengow_Feed_Block</class>
|
54 |
-
</
|
55 |
</blocks>
|
56 |
<helpers>
|
57 |
-
<
|
58 |
<class>Lengow_Feed_Helper</class>
|
59 |
-
</
|
60 |
</helpers>
|
61 |
</global>
|
62 |
<adminhtml>
|
@@ -74,7 +74,7 @@
|
|
74 |
<title>Lengow</title>
|
75 |
<sort_order>20</sort_order>
|
76 |
<children>
|
77 |
-
<feed translate="title" module="
|
78 |
<title>Manage Feeds</title>
|
79 |
<action>adminhtml/lengow_feed</action>
|
80 |
<sort_order>300</sort_order>
|
@@ -90,18 +90,18 @@
|
|
90 |
<children>
|
91 |
<config>
|
92 |
<children>
|
93 |
-
<
|
94 |
<title>Products</title>
|
95 |
-
</
|
96 |
</children>
|
97 |
</config>
|
98 |
</children>
|
99 |
</system>
|
100 |
-
<lengow translate="title" module="
|
101 |
<children>
|
102 |
-
<
|
103 |
<title>Manage Feeds</title>
|
104 |
-
</
|
105 |
</children>
|
106 |
</lengow>
|
107 |
</children>
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Lengow_Feed>
|
5 |
+
<version>2.1.0</version>
|
6 |
</Lengow_Feed>
|
7 |
</modules>
|
8 |
<admin>
|
10 |
<adminhtml>
|
11 |
<args>
|
12 |
<modules>
|
13 |
+
<lenfeed before="Mage_Adminhtml">Lengow_Feed_Adminhtml</lenfeed>
|
14 |
</modules>
|
15 |
</args>
|
16 |
</adminhtml>
|
18 |
</admin>
|
19 |
<global>
|
20 |
<models>
|
21 |
+
<lenfeed>
|
22 |
<class>Lengow_Feed_Model</class>
|
23 |
<resourceModel>feed_mysql4</resourceModel>
|
24 |
+
</lenfeed>
|
25 |
<feed_mysql4>
|
26 |
<class>Lengow_Feed_Model_Mysql4</class>
|
27 |
<entities>
|
32 |
</feed_mysql4>
|
33 |
</models>
|
34 |
<resources>
|
35 |
+
<lenfeed_setup>
|
36 |
<connection>
|
37 |
<use>core_setup</use>
|
38 |
</connection>
|
39 |
+
</lenfeed_setup>
|
40 |
+
<lenfeed_write>
|
41 |
<connection>
|
42 |
<use>core_write</use>
|
43 |
</connection>
|
44 |
+
</lenfeed_write>
|
45 |
+
<lenfeed_read>
|
46 |
<connection>
|
47 |
<use>core_read</use>
|
48 |
</connection>
|
49 |
+
</lenfeed_read>
|
50 |
</resources>
|
51 |
<blocks>
|
52 |
+
<lenfeed>
|
53 |
<class>Lengow_Feed_Block</class>
|
54 |
+
</lenfeed>
|
55 |
</blocks>
|
56 |
<helpers>
|
57 |
+
<lenfeed>
|
58 |
<class>Lengow_Feed_Helper</class>
|
59 |
+
</lenfeed>
|
60 |
</helpers>
|
61 |
</global>
|
62 |
<adminhtml>
|
74 |
<title>Lengow</title>
|
75 |
<sort_order>20</sort_order>
|
76 |
<children>
|
77 |
+
<feed translate="title" module="lenfeed">
|
78 |
<title>Manage Feeds</title>
|
79 |
<action>adminhtml/lengow_feed</action>
|
80 |
<sort_order>300</sort_order>
|
90 |
<children>
|
91 |
<config>
|
92 |
<children>
|
93 |
+
<lenfeed translate="title" module="lenfeed">
|
94 |
<title>Products</title>
|
95 |
+
</lenfeed>
|
96 |
</children>
|
97 |
</config>
|
98 |
</children>
|
99 |
</system>
|
100 |
+
<lengow translate="title" module="lenfeed">
|
101 |
<children>
|
102 |
+
<lenfeed translate="title" module="lenfeed">
|
103 |
<title>Manage Feeds</title>
|
104 |
+
</lenfeed>
|
105 |
</children>
|
106 |
</lengow>
|
107 |
</children>
|
app/code/community/Lengow/Feed/etc/system.xml
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<config>
|
3 |
<tabs>
|
4 |
-
<lengow translate="label" module="
|
5 |
<label>Lengow</label>
|
6 |
<sort_order>210</sort_order>
|
7 |
</lengow>
|
8 |
</tabs>
|
9 |
<sections>
|
10 |
-
<
|
11 |
<label>Feed configuration</label>
|
12 |
<tab>lengow</tab>
|
13 |
<frontend_type>text</frontend_type>
|
@@ -35,6 +35,6 @@
|
|
35 |
</fields>
|
36 |
</general>
|
37 |
</groups>
|
38 |
-
</
|
39 |
</sections>
|
40 |
</config>
|
1 |
<?xml version="1.0"?>
|
2 |
<config>
|
3 |
<tabs>
|
4 |
+
<lengow translate="label" module="lenfeed">
|
5 |
<label>Lengow</label>
|
6 |
<sort_order>210</sort_order>
|
7 |
</lengow>
|
8 |
</tabs>
|
9 |
<sections>
|
10 |
+
<lenfeed translate="label" module="lenfeed">
|
11 |
<label>Feed configuration</label>
|
12 |
<tab>lengow</tab>
|
13 |
<frontend_type>text</frontend_type>
|
35 |
</fields>
|
36 |
</general>
|
37 |
</groups>
|
38 |
+
</lenfeed>
|
39 |
</sections>
|
40 |
</config>
|
app/code/community/Lengow/Sync/Block/Adminhtml/Log.php
CHANGED
@@ -13,11 +13,11 @@ class Lengow_Sync_Block_Adminhtml_Log extends Mage_Adminhtml_Block_Widget_Grid_C
|
|
13 |
public function __construct() {
|
14 |
parent::__construct();
|
15 |
$this->_controller = 'adminhtml_log';
|
16 |
-
$this->_blockGroup = '
|
17 |
$this->_headerText = $this->__('Lengow logs');
|
18 |
$this->_removeButton('add');
|
19 |
$this->_addButton('deleteAll', array(
|
20 |
-
'label' => Mage::helper('
|
21 |
'onclick' => 'setLocation(\'' . $this->getUrl('*/*/delete') . '\')',
|
22 |
'class' => 'delete'
|
23 |
));
|
13 |
public function __construct() {
|
14 |
parent::__construct();
|
15 |
$this->_controller = 'adminhtml_log';
|
16 |
+
$this->_blockGroup = 'lensync';
|
17 |
$this->_headerText = $this->__('Lengow logs');
|
18 |
$this->_removeButton('add');
|
19 |
$this->_addButton('deleteAll', array(
|
20 |
+
'label' => Mage::helper('lensync')->__('Flush logs'),
|
21 |
'onclick' => 'setLocation(\'' . $this->getUrl('*/*/delete') . '\')',
|
22 |
'class' => 'delete'
|
23 |
));
|
app/code/community/Lengow/Sync/Block/Adminhtml/Log/Grid.php
CHANGED
@@ -20,26 +20,26 @@ class Lengow_Sync_Block_Adminhtml_Log_Grid extends Mage_Adminhtml_Block_Widget_G
|
|
20 |
}
|
21 |
|
22 |
protected function _prepareCollection() {
|
23 |
-
$collection = Mage::getModel('
|
24 |
$this->setCollection($collection);
|
25 |
return parent::_prepareCollection();
|
26 |
}
|
27 |
|
28 |
protected function _prepareColumns() {
|
29 |
$this->addColumn('id', array(
|
30 |
-
'header'=> Mage::helper('
|
31 |
'width' => '80px',
|
32 |
'type' => 'text',
|
33 |
'index' => 'id',
|
34 |
));
|
35 |
$this->addColumn('date', array(
|
36 |
-
'header' => Mage::helper('
|
37 |
'index' => 'date',
|
38 |
'type' => 'datetime',
|
39 |
'width' => '100px',
|
40 |
));
|
41 |
$this->addColumn('message', array(
|
42 |
-
'header' => Mage::helper('
|
43 |
'index' => 'message',
|
44 |
));
|
45 |
return parent::_prepareColumns();
|
20 |
}
|
21 |
|
22 |
protected function _prepareCollection() {
|
23 |
+
$collection = Mage::getModel('lensync/log')->getCollection();
|
24 |
$this->setCollection($collection);
|
25 |
return parent::_prepareCollection();
|
26 |
}
|
27 |
|
28 |
protected function _prepareColumns() {
|
29 |
$this->addColumn('id', array(
|
30 |
+
'header'=> Mage::helper('lensync')->__('ID'),
|
31 |
'width' => '80px',
|
32 |
'type' => 'text',
|
33 |
'index' => 'id',
|
34 |
));
|
35 |
$this->addColumn('date', array(
|
36 |
+
'header' => Mage::helper('lensync')->__('Created at'),
|
37 |
'index' => 'date',
|
38 |
'type' => 'datetime',
|
39 |
'width' => '100px',
|
40 |
));
|
41 |
$this->addColumn('message', array(
|
42 |
+
'header' => Mage::helper('lensync')->__('Message'),
|
43 |
'index' => 'message',
|
44 |
));
|
45 |
return parent::_prepareColumns();
|
app/code/community/Lengow/Sync/Block/Adminhtml/Order.php
CHANGED
@@ -13,7 +13,7 @@ class Lengow_Sync_Block_Adminhtml_Order extends Mage_Adminhtml_Block_Widget_Grid
|
|
13 |
public function __construct() {
|
14 |
parent::__construct();
|
15 |
$this->_controller = 'adminhtml_order';
|
16 |
-
$this->_blockGroup = '
|
17 |
$this->_headerText = $this->__('Lengow orders');
|
18 |
}
|
19 |
|
13 |
public function __construct() {
|
14 |
parent::__construct();
|
15 |
$this->_controller = 'adminhtml_order';
|
16 |
+
$this->_blockGroup = 'lensync';
|
17 |
$this->_headerText = $this->__('Lengow orders');
|
18 |
}
|
19 |
|
app/code/community/Lengow/Sync/Block/Adminhtml/Order/Grid.php
CHANGED
@@ -98,17 +98,17 @@ class Lengow_Sync_Block_Adminhtml_Order_Grid extends Mage_Adminhtml_Block_Widget
|
|
98 |
));
|
99 |
// Add datas from Lengow
|
100 |
$this->addColumn('order_id_lengow', array(
|
101 |
-
'header' => Mage::helper('
|
102 |
'index' => 'order_id_lengow',
|
103 |
));
|
104 |
|
105 |
$this->addColumn('marketplace_lengow', array(
|
106 |
-
'header' => Mage::helper('
|
107 |
'index' => 'marketplace_lengow',
|
108 |
));
|
109 |
|
110 |
$this->addColumn('fees_lengow', array(
|
111 |
-
'header'=> Mage::helper('
|
112 |
'type' => 'currency',
|
113 |
'index' => 'fees_lengow',
|
114 |
'currency' => 'base_currency_code',
|
98 |
));
|
99 |
// Add datas from Lengow
|
100 |
$this->addColumn('order_id_lengow', array(
|
101 |
+
'header' => Mage::helper('lensync')->__('Id lengow'),
|
102 |
'index' => 'order_id_lengow',
|
103 |
));
|
104 |
|
105 |
$this->addColumn('marketplace_lengow', array(
|
106 |
+
'header' => Mage::helper('lensync')->__('Marketplace'),
|
107 |
'index' => 'marketplace_lengow',
|
108 |
));
|
109 |
|
110 |
$this->addColumn('fees_lengow', array(
|
111 |
+
'header'=> Mage::helper('lensync')->__('Fees'),
|
112 |
'type' => 'currency',
|
113 |
'index' => 'fees_lengow',
|
114 |
'currency' => 'base_currency_code',
|
app/code/community/Lengow/Sync/Block/Adminhtml/Order/Tab.php
CHANGED
@@ -5,12 +5,12 @@
|
|
5 |
* @category Lengow
|
6 |
* @package Lengow_Sync
|
7 |
* @author Romain Le Pohl <romain@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_Block_Adminhtml_Order_Tab extends Mage_Adminhtml_Block_Sales_Order_Abstract
|
12 |
implements Mage_Adminhtml_Block_Widget_Tab_Interface {
|
13 |
-
|
14 |
protected function _construct() {
|
15 |
$this->setTemplate('lengow/sales/order/tab/info.phtml');
|
16 |
}
|
@@ -49,55 +49,63 @@ class Lengow_Sync_Block_Adminhtml_Order_Tab extends Mage_Adminhtml_Block_Sales_O
|
|
49 |
public function isHidden() {
|
50 |
return false;
|
51 |
}
|
52 |
-
|
53 |
/**
|
54 |
* Get fields array
|
55 |
-
*
|
56 |
* @return Array
|
57 |
*/
|
58 |
public function getFields() {
|
59 |
$fields = array();
|
60 |
$order = $this->getOrder();
|
61 |
-
|
62 |
$fields[] = array(
|
63 |
-
'label' => Mage::helper('
|
64 |
'value' => $order->getData('order_id_lengow'),
|
65 |
);
|
66 |
$fields[] = array(
|
67 |
-
'label' => Mage::helper('
|
68 |
'value' => $order->getData('feed_id_lengow'),
|
69 |
);
|
70 |
$fields[] = array(
|
71 |
-
'label' => Mage::helper('
|
72 |
'value' => $order->getData('marketplace_lengow'),
|
73 |
);
|
74 |
$fields[] = array(
|
75 |
-
'label' => Mage::helper('
|
76 |
'value' => $order->getData('total_paid_lengow'),
|
77 |
);
|
78 |
$fields[] = array(
|
79 |
-
'label' => Mage::helper('
|
80 |
'value' => $order->getData('carrier_lengow'),
|
81 |
);
|
82 |
$fields[] = array(
|
83 |
-
'label' => Mage::helper('
|
84 |
'value' => $order->getData('carrier_method_lengow'),
|
85 |
);
|
86 |
$fields[] = array(
|
87 |
-
'label' => Mage::helper('
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
88 |
'value' => $order->getData('message_lengow'),
|
89 |
);
|
90 |
$fields[] = array(
|
91 |
-
'label' => Mage::helper('
|
92 |
'value' => '<textarea disabled="disabled">' . $order->getData('xml_node_lengow') . '</textarea>',
|
93 |
);
|
94 |
-
|
95 |
return $fields;
|
96 |
}
|
97 |
-
|
98 |
/**
|
99 |
* Check if is a Lengow order
|
100 |
-
*
|
101 |
* @return boolean
|
102 |
*/
|
103 |
public function isLengowOrder() {
|
5 |
* @category Lengow
|
6 |
* @package Lengow_Sync
|
7 |
* @author Romain Le Pohl <romain@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_Block_Adminhtml_Order_Tab extends Mage_Adminhtml_Block_Sales_Order_Abstract
|
12 |
implements Mage_Adminhtml_Block_Widget_Tab_Interface {
|
13 |
+
|
14 |
protected function _construct() {
|
15 |
$this->setTemplate('lengow/sales/order/tab/info.phtml');
|
16 |
}
|
49 |
public function isHidden() {
|
50 |
return false;
|
51 |
}
|
52 |
+
|
53 |
/**
|
54 |
* Get fields array
|
55 |
+
*
|
56 |
* @return Array
|
57 |
*/
|
58 |
public function getFields() {
|
59 |
$fields = array();
|
60 |
$order = $this->getOrder();
|
61 |
+
|
62 |
$fields[] = array(
|
63 |
+
'label' => Mage::helper('lensync')->__('Lengow order ID'),
|
64 |
'value' => $order->getData('order_id_lengow'),
|
65 |
);
|
66 |
$fields[] = array(
|
67 |
+
'label' => Mage::helper('lensync')->__('Feed ID'),
|
68 |
'value' => $order->getData('feed_id_lengow'),
|
69 |
);
|
70 |
$fields[] = array(
|
71 |
+
'label' => Mage::helper('lensync')->__('Marketplace'),
|
72 |
'value' => $order->getData('marketplace_lengow'),
|
73 |
);
|
74 |
$fields[] = array(
|
75 |
+
'label' => Mage::helper('lensync')->__('Total paid'),
|
76 |
'value' => $order->getData('total_paid_lengow'),
|
77 |
);
|
78 |
$fields[] = array(
|
79 |
+
'label' => Mage::helper('lensync')->__('Carrier'),
|
80 |
'value' => $order->getData('carrier_lengow'),
|
81 |
);
|
82 |
$fields[] = array(
|
83 |
+
'label' => Mage::helper('lensync')->__('Carrier method'),
|
84 |
'value' => $order->getData('carrier_method_lengow'),
|
85 |
);
|
86 |
$fields[] = array(
|
87 |
+
'label' => Mage::helper('lensync')->__('Carrier tracking'),
|
88 |
+
'value' => $order->getData('carrier_tracking_lengow'),
|
89 |
+
);
|
90 |
+
$fields[] = array(
|
91 |
+
'label' => Mage::helper('lensync')->__('Carrier id relay'),
|
92 |
+
'value' => $order->getData('carrier_id_relay_lengow'),
|
93 |
+
);
|
94 |
+
$fields[] = array(
|
95 |
+
'label' => Mage::helper('lensync')->__('Message'),
|
96 |
'value' => $order->getData('message_lengow'),
|
97 |
);
|
98 |
$fields[] = array(
|
99 |
+
'label' => Mage::helper('lensync')->__('Json Node'),
|
100 |
'value' => '<textarea disabled="disabled">' . $order->getData('xml_node_lengow') . '</textarea>',
|
101 |
);
|
102 |
+
|
103 |
return $fields;
|
104 |
}
|
105 |
+
|
106 |
/**
|
107 |
* Check if is a Lengow order
|
108 |
+
*
|
109 |
* @return boolean
|
110 |
*/
|
111 |
public function isLengowOrder() {
|
app/code/community/Lengow/Sync/Block/Payment/Info/Purchaseorder.php
CHANGED
@@ -5,11 +5,11 @@
|
|
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_Block_Payment_Info_Purchaseorder extends Mage_Payment_Block_Info {
|
12 |
-
|
13 |
protected function _construct() {
|
14 |
parent::_construct();
|
15 |
$this->setTemplate('lengow/sales/payment/info/purchaseorder.phtml');
|
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_Block_Payment_Info_Purchaseorder extends Mage_Payment_Block_Info {
|
12 |
+
|
13 |
protected function _construct() {
|
14 |
parent::_construct();
|
15 |
$this->setTemplate('lengow/sales/payment/info/purchaseorder.phtml');
|
app/code/community/Lengow/Sync/Helper/Data.php
CHANGED
@@ -4,8 +4,8 @@
|
|
4 |
*
|
5 |
* @category Lengow
|
6 |
* @package Lengow_Sync
|
7 |
-
* @author Ludovic Drin <ludovic@lengow.com>
|
8 |
-
* @copyright
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
class Lengow_Sync_Helper_Data extends Mage_Core_Helper_Abstract {
|
@@ -17,11 +17,12 @@ class Lengow_Sync_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
17 |
* @param SimpleXMLElement $xml
|
18 |
* @return array
|
19 |
*/
|
20 |
-
public function xmlToAssoc(SimpleXMLElement $xml)
|
|
|
21 |
$array = array();
|
22 |
foreach ($xml as $key => $value) {
|
23 |
$array[$key] = trim((string)$value);
|
24 |
-
if (empty($array[$key]) && !empty($value))
|
25 |
$array[$key] = self::xmlToAssoc($value);
|
26 |
else
|
27 |
$array[$key] = (string)$value;
|
@@ -36,7 +37,8 @@ class Lengow_Sync_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
36 |
* @param bool $isCanonical - whether to ignore attributes
|
37 |
* @return array|string
|
38 |
*/
|
39 |
-
public function asArray(SimpleXMLElement $xml,$isCanonical = true)
|
|
|
40 |
$result = array();
|
41 |
if (!$isCanonical) {
|
42 |
// add attributes
|
@@ -52,7 +54,7 @@ class Lengow_Sync_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
52 |
if(!$child->hasChildren())
|
53 |
$result[$childName] = $this->asArray($child,$isCanonical);
|
54 |
else
|
55 |
-
$result[$childName][] = $this->asArray($child,$isCanonical);
|
56 |
}
|
57 |
} else {
|
58 |
if (empty($result)) {
|
@@ -65,20 +67,42 @@ class Lengow_Sync_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
65 |
}
|
66 |
return $result;
|
67 |
}
|
68 |
-
|
69 |
-
|
70 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
71 |
$log_model->log($message, $id_order);
|
72 |
return $this;
|
73 |
}
|
74 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
75 |
/**
|
76 |
* Clean None utf-8 characters
|
77 |
* @param string $value
|
78 |
* @return string $value
|
79 |
*/
|
80 |
-
public function cleanNotUtf8($value)
|
81 |
-
|
|
|
82 |
//reject overly long 2 byte sequences, as well as characters above U+10000 and replace with blank
|
83 |
$value = preg_replace('/[\x00-\x08\x10\x0B\x0C\x0E-\x19\x7F]'.
|
84 |
'|[\x00-\x7F][\x80-\xBF]+'.
|
@@ -88,16 +112,31 @@ class Lengow_Sync_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
88 |
'', $value );
|
89 |
//reject overly long 3 byte sequences and UTF-16 surrogates and replace with blank
|
90 |
$value = preg_replace('/\xE0[\x80-\x9F][\x80-\xBF]'.
|
91 |
-
'|\xED[\xA0-\xBF][\x80-\xBF]/S','', $value );
|
92 |
/*$value = preg_replace("/([\x80-\xFF])/e",
|
93 |
"chr(0xC0|ord('\\1')>>6).chr(0x80|ord('\\1')&0x3F)",
|
94 |
-
$value);*/
|
95 |
$value = str_replace(chr(31),"", $value);
|
96 |
$value = str_replace(chr(30),"", $value);
|
97 |
$value = str_replace(chr(29),"", $value);
|
98 |
-
$value = str_replace(chr(28),"", $value);
|
99 |
-
//$value = iconv("UTF-8","UTF-8//IGNORE",$value);
|
100 |
return $value;
|
101 |
}
|
102 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
103 |
}
|
4 |
*
|
5 |
* @category Lengow
|
6 |
* @package Lengow_Sync
|
7 |
+
* @author Ludovic Drin <ludovic@lengow.com> & Benjamin Le Nevé <benjamin.le-neve@lengow.com>
|
8 |
+
* @copyright 2015 Lengow SAS
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
class Lengow_Sync_Helper_Data extends Mage_Core_Helper_Abstract {
|
17 |
* @param SimpleXMLElement $xml
|
18 |
* @return array
|
19 |
*/
|
20 |
+
public function xmlToAssoc(SimpleXMLElement $xml)
|
21 |
+
{
|
22 |
$array = array();
|
23 |
foreach ($xml as $key => $value) {
|
24 |
$array[$key] = trim((string)$value);
|
25 |
+
if (empty($array[$key]) && !empty($value))
|
26 |
$array[$key] = self::xmlToAssoc($value);
|
27 |
else
|
28 |
$array[$key] = (string)$value;
|
37 |
* @param bool $isCanonical - whether to ignore attributes
|
38 |
* @return array|string
|
39 |
*/
|
40 |
+
public function asArray(SimpleXMLElement $xml,$isCanonical = true)
|
41 |
+
{
|
42 |
$result = array();
|
43 |
if (!$isCanonical) {
|
44 |
// add attributes
|
54 |
if(!$child->hasChildren())
|
55 |
$result[$childName] = $this->asArray($child,$isCanonical);
|
56 |
else
|
57 |
+
$result[$childName][] = $this->asArray($child,$isCanonical);
|
58 |
}
|
59 |
} else {
|
60 |
if (empty($result)) {
|
67 |
}
|
68 |
return $result;
|
69 |
}
|
70 |
+
|
71 |
+
/**
|
72 |
+
* Writes log
|
73 |
+
*
|
74 |
+
* @param string $message log message
|
75 |
+
* @param string $id_order lengow order id
|
76 |
+
*
|
77 |
+
* @return Lengow_Sync_Helper_Data
|
78 |
+
*/
|
79 |
+
public function log($message, $id_order = null)
|
80 |
+
{
|
81 |
+
$log_model = Mage::getModel('lensync/log');
|
82 |
$log_model->log($message, $id_order);
|
83 |
return $this;
|
84 |
}
|
85 |
+
|
86 |
+
/**
|
87 |
+
* Suppress log files when too old.
|
88 |
+
*/
|
89 |
+
public function cleanLog()
|
90 |
+
{
|
91 |
+
$resource = Mage::getSingleton('core/resource');
|
92 |
+
$writeConnection = $resource->getConnection('core_write');
|
93 |
+
$table = $resource->getTableName('lensync/log');
|
94 |
+
$query = "DELETE FROM ".$table." WHERE date < DATE_SUB(NOW(),INTERVAL 20 DAY)";
|
95 |
+
$writeConnection->query($query);
|
96 |
+
}
|
97 |
+
|
98 |
/**
|
99 |
* Clean None utf-8 characters
|
100 |
* @param string $value
|
101 |
* @return string $value
|
102 |
*/
|
103 |
+
public function cleanNotUtf8($value)
|
104 |
+
{
|
105 |
+
$value = Mage::helper('core/string')->cleanString($value);
|
106 |
//reject overly long 2 byte sequences, as well as characters above U+10000 and replace with blank
|
107 |
$value = preg_replace('/[\x00-\x08\x10\x0B\x0C\x0E-\x19\x7F]'.
|
108 |
'|[\x00-\x7F][\x80-\xBF]+'.
|
112 |
'', $value );
|
113 |
//reject overly long 3 byte sequences and UTF-16 surrogates and replace with blank
|
114 |
$value = preg_replace('/\xE0[\x80-\x9F][\x80-\xBF]'.
|
115 |
+
'|\xED[\xA0-\xBF][\x80-\xBF]/S','', $value );
|
116 |
/*$value = preg_replace("/([\x80-\xFF])/e",
|
117 |
"chr(0xC0|ord('\\1')>>6).chr(0x80|ord('\\1')&0x3F)",
|
118 |
+
$value);*/
|
119 |
$value = str_replace(chr(31),"", $value);
|
120 |
$value = str_replace(chr(30),"", $value);
|
121 |
$value = str_replace(chr(29),"", $value);
|
122 |
+
$value = str_replace(chr(28),"", $value);
|
123 |
+
//$value = iconv("UTF-8","UTF-8//IGNORE",$value);
|
124 |
return $value;
|
125 |
}
|
126 |
+
|
127 |
+
/**
|
128 |
+
* Updates marketplace.xml
|
129 |
+
*/
|
130 |
+
public function updateMarketplaceXML()
|
131 |
+
{
|
132 |
+
$config = Mage::getSingleton('lensync/config');
|
133 |
+
$mp_update = $config->get('hidden/last_synchro');
|
134 |
+
if (!$mp_update || !$mp_update == '0000-00-00' ||$mp_update != date('Y-m-d'))
|
135 |
+
$config->updateMarketPlaceConfiguration();
|
136 |
+
}
|
137 |
+
|
138 |
+
public function cleanMethod($method)
|
139 |
+
{
|
140 |
+
return str_replace(array(' ', '-', '\''), '_', $method);
|
141 |
+
}
|
142 |
}
|
app/code/community/Lengow/Sync/Model/Config.php
CHANGED
@@ -4,20 +4,20 @@
|
|
4 |
*
|
5 |
* @category Lengow
|
6 |
* @package Lengow_Sync
|
7 |
-
* @author Ludovic Drin <ludovic@lengow.com>
|
8 |
-
* @copyright
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
class Lengow_Sync_Model_Config extends Varien_Object {
|
12 |
-
|
13 |
/**
|
14 |
* Config key "Debug mode"
|
15 |
*/
|
16 |
-
const DEBUG_MODE = '
|
17 |
-
|
18 |
const MP_CONF_LENGOW = 'http://kml.lengow.com/mp.xml';
|
19 |
-
|
20 |
-
protected $
|
21 |
|
22 |
protected $_file;
|
23 |
|
@@ -39,53 +39,75 @@ class Lengow_Sync_Model_Config extends Varien_Object {
|
|
39 |
'vat_id' => 'na',
|
40 |
);
|
41 |
|
42 |
-
|
43 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
44 |
return $this;
|
45 |
}
|
46 |
|
47 |
-
|
48 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
49 |
}
|
50 |
|
51 |
-
|
52 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
53 |
}
|
54 |
|
55 |
/**
|
56 |
* Map Magento address attribute codes with Neteven ones
|
57 |
*
|
58 |
-
* @param string $
|
|
|
59 |
* @return mixed
|
60 |
*/
|
61 |
-
public function getMappedAddressAttributeCode($attribute_code)
|
|
|
62 |
return self::$ADDRESS_ATTRIBUTES[$attribute_code];
|
63 |
}
|
64 |
|
65 |
-
public function getOrderState($lengow) {
|
66 |
-
switch ($lengow) {
|
67 |
-
case 'new':
|
68 |
-
return Mage_Sales_Model_Order::STATE_NEW;
|
69 |
-
break;
|
70 |
-
case 'processing':
|
71 |
-
return Mage_Sales_Model_Order::STATE_PROCESSING;
|
72 |
-
break;
|
73 |
-
case 'shipped':
|
74 |
-
return Mage_Sales_Model_Order::STATE_COMPLETE;
|
75 |
-
break;
|
76 |
-
case 'canceled':
|
77 |
-
return Mage_Sales_Model_Order::STATE_CANCELED;
|
78 |
-
break;
|
79 |
-
}
|
80 |
-
}
|
81 |
-
|
82 |
/**
|
83 |
* Is debug mode
|
84 |
*
|
85 |
* @return boolean
|
86 |
*/
|
87 |
-
public function isDebugMode()
|
88 |
-
|
|
|
89 |
}
|
90 |
|
91 |
/**
|
@@ -93,13 +115,14 @@ class Lengow_Sync_Model_Config extends Varien_Object {
|
|
93 |
*
|
94 |
* @return boolean.
|
95 |
*/
|
96 |
-
public function updateMarketPlaceConfiguration()
|
|
|
97 |
if ($xml = fopen(self::MP_CONF_LENGOW, 'r')) {
|
98 |
-
$markeplace = Mage::getModel('
|
99 |
$handle = fopen(Mage::getModuleDir('etc', 'Lengow_Sync') . DS . $markeplace::$XML_MARKETPLACES . '', 'w');
|
100 |
stream_copy_to_stream($xml, $handle);
|
101 |
fclose($handle);
|
102 |
-
Mage::getModel('core/config')->saveConfig('
|
103 |
}
|
104 |
}
|
105 |
|
@@ -108,32 +131,67 @@ class Lengow_Sync_Model_Config extends Varien_Object {
|
|
108 |
*
|
109 |
* @return boolean.
|
110 |
*/
|
111 |
-
public function importCanStart()
|
112 |
-
|
113 |
-
if($
|
114 |
-
$this->
|
115 |
-
|
116 |
-
|
117 |
-
|
|
|
|
|
|
|
118 |
return false;
|
119 |
-
}
|
120 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
121 |
return true;
|
122 |
}
|
|
|
|
|
123 |
}
|
124 |
|
125 |
/**
|
126 |
-
*
|
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 {
|
@@ -142,35 +200,17 @@ class Lengow_Sync_Model_Config extends Varien_Object {
|
|
142 |
}
|
143 |
|
144 |
/**
|
145 |
-
* Create file flag
|
146 |
*
|
147 |
-
* @return boolean
|
148 |
*/
|
149 |
-
public function
|
150 |
-
|
151 |
-
|
152 |
-
else
|
153 |
-
$_time = time();
|
154 |
$file_path = Mage::getBaseDir('media') . DS . 'lengow' . DS;
|
155 |
-
$this->_file->
|
156 |
-
$this->_file->
|
157 |
$this->_file->streamOpen('import.flag', 'w+');
|
158 |
-
|
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 |
}
|
4 |
*
|
5 |
* @category Lengow
|
6 |
* @package Lengow_Sync
|
7 |
+
* @author Ludovic Drin <ludovic@lengow.com> & Benjamin Le Nevé <benjamin.le-neve@lengow.com>
|
8 |
+
* @copyright 2015 Lengow SAS
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
class Lengow_Sync_Model_Config extends Varien_Object {
|
12 |
+
|
13 |
/**
|
14 |
* Config key "Debug mode"
|
15 |
*/
|
16 |
+
const DEBUG_MODE = 'performances/debug';
|
17 |
+
|
18 |
const MP_CONF_LENGOW = 'http://kml.lengow.com/mp.xml';
|
19 |
+
|
20 |
+
protected $store;
|
21 |
|
22 |
protected $_file;
|
23 |
|
39 |
'vat_id' => 'na',
|
40 |
);
|
41 |
|
42 |
+
/**
|
43 |
+
* Constructor
|
44 |
+
*/
|
45 |
+
public function __construct($args = null)
|
46 |
+
{
|
47 |
+
parent::__construct();
|
48 |
+
if (isset($args['store']))
|
49 |
+
$this->setStore($args['store']);
|
50 |
+
}
|
51 |
+
|
52 |
+
/**
|
53 |
+
* Set store
|
54 |
+
*
|
55 |
+
* @param $store
|
56 |
+
*
|
57 |
+
* @return Lengow_Sync_Model_Config
|
58 |
+
*/
|
59 |
+
public function setStore($store)
|
60 |
+
{
|
61 |
+
$this->store = $store;
|
62 |
return $this;
|
63 |
}
|
64 |
|
65 |
+
/**
|
66 |
+
* Get store from config
|
67 |
+
*
|
68 |
+
* @return
|
69 |
+
*/
|
70 |
+
public function getStore()
|
71 |
+
{
|
72 |
+
return $this->store;
|
73 |
}
|
74 |
|
75 |
+
/**
|
76 |
+
* Get data from config
|
77 |
+
*
|
78 |
+
* @param string $key
|
79 |
+
*
|
80 |
+
* @return mixed
|
81 |
+
*/
|
82 |
+
public function get($key)
|
83 |
+
{
|
84 |
+
if (is_null($this->store))
|
85 |
+
$id_store = null;
|
86 |
+
else
|
87 |
+
$id_store = $this->store->getId();
|
88 |
+
return Mage::getStoreConfig('lensync/' . $key, $id_store);
|
89 |
}
|
90 |
|
91 |
/**
|
92 |
* Map Magento address attribute codes with Neteven ones
|
93 |
*
|
94 |
+
* @param string $attribute_code
|
95 |
+
*
|
96 |
* @return mixed
|
97 |
*/
|
98 |
+
public function getMappedAddressAttributeCode($attribute_code)
|
99 |
+
{
|
100 |
return self::$ADDRESS_ATTRIBUTES[$attribute_code];
|
101 |
}
|
102 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
103 |
/**
|
104 |
* Is debug mode
|
105 |
*
|
106 |
* @return boolean
|
107 |
*/
|
108 |
+
public function isDebugMode()
|
109 |
+
{
|
110 |
+
return $this->get(self::DEBUG_MODE) == 1 ? true : false;
|
111 |
}
|
112 |
|
113 |
/**
|
115 |
*
|
116 |
* @return boolean.
|
117 |
*/
|
118 |
+
public function updateMarketPlaceConfiguration()
|
119 |
+
{
|
120 |
if ($xml = fopen(self::MP_CONF_LENGOW, 'r')) {
|
121 |
+
$markeplace = Mage::getModel('lensync/marketplace');
|
122 |
$handle = fopen(Mage::getModuleDir('etc', 'Lengow_Sync') . DS . $markeplace::$XML_MARKETPLACES . '', 'w');
|
123 |
stream_copy_to_stream($xml, $handle);
|
124 |
fclose($handle);
|
125 |
+
Mage::getModel('core/config')->saveConfig('lensync/hidden/last_synchro', date('Y-m-d'));
|
126 |
}
|
127 |
}
|
128 |
|
131 |
*
|
132 |
* @return boolean.
|
133 |
*/
|
134 |
+
public function importCanStart()
|
135 |
+
{
|
136 |
+
if (is_null($this->_file))
|
137 |
+
$this->getFlagFile();
|
138 |
+
if (!$this->addFlagToFile()) {
|
139 |
+
$timestamp = $this->readFlagFile();
|
140 |
+
if ($timestamp !== false && (time() - (integer) $timestamp) > (60*25)) {
|
141 |
+
$this->addFlagToFile();
|
142 |
+
return true;
|
143 |
+
}
|
144 |
return false;
|
145 |
+
}
|
146 |
+
return true;
|
147 |
+
}
|
148 |
+
|
149 |
+
/**
|
150 |
+
* Finish import
|
151 |
+
*
|
152 |
+
*/
|
153 |
+
public function importSetEnd()
|
154 |
+
{
|
155 |
+
$this->getFlagFile();
|
156 |
+
$this->_file->streamUnlock();
|
157 |
+
$this->addFlagToFile(true);
|
158 |
+
$this->_file->streamClose();
|
159 |
+
}
|
160 |
+
|
161 |
+
/**
|
162 |
+
* Add flag to file
|
163 |
+
*
|
164 |
+
* @param boolean $reset
|
165 |
+
*
|
166 |
+
* @return boolean
|
167 |
+
*/
|
168 |
+
public function addFlagToFile($reset = false)
|
169 |
+
{
|
170 |
+
|
171 |
+
if ($this->_file->streamLock()) {
|
172 |
+
if ($reset) {
|
173 |
+
if ($this->_file->streamErase())
|
174 |
+
$this->_file->streamWrite('0');
|
175 |
+
}
|
176 |
+
else {
|
177 |
+
$this->_file->streamWrite(time());
|
178 |
+
}
|
179 |
return true;
|
180 |
}
|
181 |
+
else
|
182 |
+
return false;
|
183 |
}
|
184 |
|
185 |
/**
|
186 |
+
* Read file flag
|
187 |
*
|
188 |
+
* @return boolean
|
189 |
*/
|
190 |
+
public function readFlagFile()
|
191 |
+
{
|
192 |
$file_path = Mage::getBaseDir('media') . DS . 'lengow' . DS;
|
193 |
if(is_file($file_path . 'import.flag')) {
|
|
|
|
|
194 |
$this->_file->cd($file_path);
|
|
|
195 |
$this->_file->streamLock();
|
196 |
return $this->_file->streamRead(4096);
|
197 |
} else {
|
200 |
}
|
201 |
|
202 |
/**
|
203 |
+
* Create file flag
|
204 |
*
|
205 |
+
* @return boolean
|
206 |
*/
|
207 |
+
public function getFlagFile()
|
208 |
+
{
|
209 |
+
$this->_file = new Lengow_Sync_Model_File();
|
|
|
|
|
210 |
$file_path = Mage::getBaseDir('media') . DS . 'lengow' . DS;
|
211 |
+
$this->_file->checkAndCreateFolder($file_path);
|
212 |
+
$this->_file->cd($file_path);
|
213 |
$this->_file->streamOpen('import.flag', 'w+');
|
214 |
+
Mage::helper('lensync/data')->log('Write on file log');
|
|
|
|
|
215 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
216 |
}
|
app/code/community/Lengow/Sync/Model/Connector.php
CHANGED
@@ -33,12 +33,12 @@ if (!function_exists('simplexml_load_string')) {
|
|
33 |
* @copyright 2013 Lengow SAS
|
34 |
*/
|
35 |
class Lengow_Sync_Model_Connector {
|
36 |
-
|
37 |
/**
|
38 |
* Version.
|
39 |
*/
|
40 |
const VERSION = '1.0.1';
|
41 |
-
|
42 |
/**
|
43 |
* Error.
|
44 |
*/
|
@@ -128,7 +128,7 @@ class Lengow_Sync_Model_Connector {
|
|
128 |
}
|
129 |
return true;
|
130 |
}
|
131 |
-
|
132 |
/**
|
133 |
* The API method.
|
134 |
*
|
@@ -148,7 +148,7 @@ class Lengow_Sync_Model_Connector {
|
|
148 |
}
|
149 |
return $data;
|
150 |
}
|
151 |
-
|
152 |
/**
|
153 |
* Call the Lengow service with accepted method.
|
154 |
*
|
@@ -173,7 +173,7 @@ class Lengow_Sync_Model_Connector {
|
|
173 |
$result = $this->_makeRequest($url);
|
174 |
return $this->_format($result, self::$DOMAIN_LENGOW[$service]['format']);
|
175 |
}
|
176 |
-
|
177 |
/**
|
178 |
* Makes the Service API Url.
|
179 |
*
|
@@ -216,7 +216,7 @@ class Lengow_Sync_Model_Connector {
|
|
216 |
. (isset($array['state']) && !empty($array['state']) ? $array['state'] . '/' : '');
|
217 |
return $url;
|
218 |
}
|
219 |
-
|
220 |
/**
|
221 |
* Makes the Statisctics API Url.
|
222 |
*
|
@@ -232,7 +232,7 @@ class Lengow_Sync_Model_Connector {
|
|
232 |
. $array['dateFrom'] . '/'
|
233 |
. $array['dateTo'] . '/'
|
234 |
. $this->id_customer .'/'
|
235 |
-
. $array['id']
|
236 |
. '/total-All/';
|
237 |
return $url;
|
238 |
}
|
@@ -268,7 +268,7 @@ class Lengow_Sync_Model_Connector {
|
|
268 |
}
|
269 |
return null;
|
270 |
}
|
271 |
-
|
272 |
/**
|
273 |
* Makes an HTTP request.
|
274 |
*
|
@@ -277,7 +277,7 @@ class Lengow_Sync_Model_Connector {
|
|
277 |
* @return string The response text
|
278 |
*/
|
279 |
protected function _makeRequest($url) {
|
280 |
-
Mage::helper('
|
281 |
$ch = curl_init();
|
282 |
// Options
|
283 |
$opts = self::$CURL_OPTS;
|
@@ -286,7 +286,7 @@ class Lengow_Sync_Model_Connector {
|
|
286 |
curl_setopt_array($ch, $opts);
|
287 |
$result = curl_exec($ch);
|
288 |
if ($result === false) {
|
289 |
-
Mage::helper('
|
290 |
throw new Lengow_Sync_Model_Connector_Exception(
|
291 |
array('message' => curl_error($ch),
|
292 |
'type' => 'CurlException',
|
33 |
* @copyright 2013 Lengow SAS
|
34 |
*/
|
35 |
class Lengow_Sync_Model_Connector {
|
36 |
+
|
37 |
/**
|
38 |
* Version.
|
39 |
*/
|
40 |
const VERSION = '1.0.1';
|
41 |
+
|
42 |
/**
|
43 |
* Error.
|
44 |
*/
|
128 |
}
|
129 |
return true;
|
130 |
}
|
131 |
+
|
132 |
/**
|
133 |
* The API method.
|
134 |
*
|
148 |
}
|
149 |
return $data;
|
150 |
}
|
151 |
+
|
152 |
/**
|
153 |
* Call the Lengow service with accepted method.
|
154 |
*
|
173 |
$result = $this->_makeRequest($url);
|
174 |
return $this->_format($result, self::$DOMAIN_LENGOW[$service]['format']);
|
175 |
}
|
176 |
+
|
177 |
/**
|
178 |
* Makes the Service API Url.
|
179 |
*
|
216 |
. (isset($array['state']) && !empty($array['state']) ? $array['state'] . '/' : '');
|
217 |
return $url;
|
218 |
}
|
219 |
+
|
220 |
/**
|
221 |
* Makes the Statisctics API Url.
|
222 |
*
|
232 |
. $array['dateFrom'] . '/'
|
233 |
. $array['dateTo'] . '/'
|
234 |
. $this->id_customer .'/'
|
235 |
+
. $array['id']
|
236 |
. '/total-All/';
|
237 |
return $url;
|
238 |
}
|
268 |
}
|
269 |
return null;
|
270 |
}
|
271 |
+
|
272 |
/**
|
273 |
* Makes an HTTP request.
|
274 |
*
|
277 |
* @return string The response text
|
278 |
*/
|
279 |
protected function _makeRequest($url) {
|
280 |
+
Mage::helper('lensync/data')->log('Connector ' . $url);
|
281 |
$ch = curl_init();
|
282 |
// Options
|
283 |
$opts = self::$CURL_OPTS;
|
286 |
curl_setopt_array($ch, $opts);
|
287 |
$result = curl_exec($ch);
|
288 |
if ($result === false) {
|
289 |
+
Mage::helper('lensync/data')->log('Connector Error (' . curl_error($ch) . ')' . $result);
|
290 |
throw new Lengow_Sync_Model_Connector_Exception(
|
291 |
array('message' => curl_error($ch),
|
292 |
'type' => 'CurlException',
|
app/code/community/Lengow/Sync/Model/Customer/Customer.php
CHANGED
@@ -4,54 +4,81 @@
|
|
4 |
*
|
5 |
* @category Lengow
|
6 |
* @package Lengow_Sync
|
7 |
-
* @author Ludovic Drin <ludovic@lengow.com>
|
8 |
-
* @copyright
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
class Lengow_Sync_Model_Customer_Customer extends Mage_Customer_Model_Customer {
|
12 |
-
|
13 |
/**
|
14 |
* Convert xml node to customer model
|
15 |
*
|
16 |
* @param $xml_node SimpleXMLElement
|
17 |
*/
|
18 |
-
public function setFromNode(SimpleXMLElement $xml_node, $
|
19 |
-
|
20 |
-
$
|
21 |
-
|
22 |
-
|
23 |
-
if(empty($array['billing_address']['
|
24 |
-
$array['billing_address']['
|
25 |
-
|
26 |
-
|
27 |
-
$this->setWebsiteId($
|
28 |
-
->loadByEmail($array['billing_address']['billing_email']);
|
|
|
29 |
if(!$this->getId()) {
|
30 |
-
$this->setImportMode(true);
|
31 |
-
$this->setWebsiteId($
|
32 |
$this->setConfirmation(null);
|
33 |
$this->setForceConfirmed(true);
|
34 |
$this->setPasswordHash($this->hashPassword($this->generatePassword(8)));
|
35 |
$this->setFromLengow(1);
|
36 |
}
|
|
|
37 |
// Billing address
|
38 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
39 |
$this->addAddress($billing_address);
|
|
|
40 |
// Shipping address
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
41 |
$shipping_address = $this->convertAddress($array['delivery_address'], 'shipping');
|
42 |
$this->addAddress($shipping_address);
|
43 |
Mage::helper('core')->copyFieldset('lengow_convert_billing_address', 'to_customer', $array['billing_address'], $this);
|
|
|
|
|
|
|
|
|
44 |
$this->save();
|
45 |
return $this;
|
46 |
}
|
47 |
-
|
48 |
/**
|
49 |
* Convert xml node to customer address model
|
50 |
*
|
51 |
-
* @param
|
|
|
|
|
52 |
* @return Mage_Customer_Model_Address
|
53 |
*/
|
54 |
-
public function convertAddress(array $data, $type = 'billing')
|
|
|
55 |
$address = Mage::getModel('customer/address');
|
56 |
$address->setId(null);
|
57 |
$address->setIsDefaultBilling(true);
|
@@ -60,7 +87,7 @@ class Lengow_Sync_Model_Customer_Customer extends Mage_Customer_Model_Customer {
|
|
60 |
$address->setIsDefaultBilling(false);
|
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'];
|
@@ -70,27 +97,92 @@ class Lengow_Sync_Model_Customer_Customer extends Mage_Customer_Model_Customer {
|
|
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'];
|
77 |
if(!empty($address_3))
|
78 |
$address_1 = $address_1 . "\n" . $address_3;
|
|
|
|
|
|
|
79 |
$address->setStreet($address_1);
|
80 |
$tel_1 = $data[$type . '_phone_office'];
|
81 |
$tel_2 = $data[$type . '_phone_mobile'];
|
82 |
// Fix tel
|
|
|
|
|
|
|
|
|
83 |
if(!empty($tel_1))
|
84 |
$address->setFax($tel_1);
|
85 |
else if(!empty($tel_2))
|
86 |
$address->setFax($tel_2);
|
87 |
-
$codeRegion = substr(str_pad($address->getPostcode(), 5, '0', STR_PAD_LEFT), 0, 2);
|
88 |
$id_region = Mage::getModel('directory/region')->getCollection()
|
89 |
->addRegionCodeFilter($codeRegion)
|
90 |
->addCountryFilter($address->getCountry())
|
91 |
->getFirstItem()
|
92 |
-
->getId();
|
93 |
$address->setRegionId($id_region);
|
|
|
94 |
return $address;
|
95 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
96 |
}
|
4 |
*
|
5 |
* @category Lengow
|
6 |
* @package Lengow_Sync
|
7 |
+
* @author Ludovic Drin <ludovic@lengow.com> & Benjamin Le Nevé <benjamin.le-neve@lengow.com>
|
8 |
+
* @copyright 2015 Lengow SAS
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
class Lengow_Sync_Model_Customer_Customer extends Mage_Customer_Model_Customer {
|
12 |
+
|
13 |
/**
|
14 |
* Convert xml node to customer model
|
15 |
*
|
16 |
* @param $xml_node SimpleXMLElement
|
17 |
*/
|
18 |
+
public function setFromNode(SimpleXMLElement $xml_node, $config)
|
19 |
+
{
|
20 |
+
$id_store = $config->getStore()->getStoreId();
|
21 |
+
$id_website = Mage::getModel('core/store')->load($id_store)->getWebsiteId();
|
22 |
+
$array = Mage::helper('lensync')->xmlToAssoc($xml_node);
|
23 |
+
if(empty($array['billing_address']['billing_email']) || $config->isDebugMode() || $config->get('orders/fake_email'))
|
24 |
+
$array['billing_address']['billing_email'] = $array['order_id'] . '-' . $array['marketplace'] . '@lengow.com';
|
25 |
+
|
26 |
+
// first get by email
|
27 |
+
$this->setWebsiteId($id_website)
|
28 |
+
->loadByEmail($array['billing_address']['billing_email']);
|
29 |
+
|
30 |
if(!$this->getId()) {
|
31 |
+
$this->setImportMode(true);
|
32 |
+
$this->setWebsiteId($id_website);
|
33 |
$this->setConfirmation(null);
|
34 |
$this->setForceConfirmed(true);
|
35 |
$this->setPasswordHash($this->hashPassword($this->generatePassword(8)));
|
36 |
$this->setFromLengow(1);
|
37 |
}
|
38 |
+
|
39 |
// Billing address
|
40 |
+
$temp_names = array(
|
41 |
+
'firstname' => $array['billing_address']['billing_firstname'],
|
42 |
+
'lastname' => $array['billing_address']['billing_lastname'],
|
43 |
+
);
|
44 |
+
$billing_names = self::getNames($temp_names, $config->get('orders/split_name'));
|
45 |
+
$array['billing_address']['billing_firstname'] = $billing_names['firstname'];
|
46 |
+
$array['billing_address']['billing_lastname'] = $billing_names['lastname'];
|
47 |
+
$billing_address = $this->convertAddress($array['billing_address']);
|
48 |
$this->addAddress($billing_address);
|
49 |
+
|
50 |
// Shipping address
|
51 |
+
$temp_names = array(
|
52 |
+
'firstname' => $array['delivery_address']['delivery_firstname'],
|
53 |
+
'lastname' => $array['delivery_address']['delivery_lastname'],
|
54 |
+
);
|
55 |
+
$billing_names = self::getNames($temp_names, $config->get('orders/split_name'));
|
56 |
+
$array['delivery_address']['delivery_firstname'] = $billing_names['firstname'];
|
57 |
+
$array['delivery_address']['delivery_lastname'] = $billing_names['lastname'];
|
58 |
+
|
59 |
+
if ($array['tracking_informations']['tracking_relay'] != '')
|
60 |
+
$array['delivery_address']['tracking_relay'] = $array['tracking_informations']['tracking_relay'];
|
61 |
$shipping_address = $this->convertAddress($array['delivery_address'], 'shipping');
|
62 |
$this->addAddress($shipping_address);
|
63 |
Mage::helper('core')->copyFieldset('lengow_convert_billing_address', 'to_customer', $array['billing_address'], $this);
|
64 |
+
|
65 |
+
// set group
|
66 |
+
$this->setGroupId($config->get('orders/customer_group'));
|
67 |
+
|
68 |
$this->save();
|
69 |
return $this;
|
70 |
}
|
71 |
+
|
72 |
/**
|
73 |
* Convert xml node to customer address model
|
74 |
*
|
75 |
+
* @param array $data
|
76 |
+
* @param string $type
|
77 |
+
*
|
78 |
* @return Mage_Customer_Model_Address
|
79 |
*/
|
80 |
+
public function convertAddress(array $data, $type = 'billing')
|
81 |
+
{
|
82 |
$address = Mage::getModel('customer/address');
|
83 |
$address->setId(null);
|
84 |
$address->setIsDefaultBilling(true);
|
87 |
$address->setIsDefaultBilling(false);
|
88 |
$address->setIsDefaultShipping(true);
|
89 |
}
|
90 |
+
Mage::helper('core')->copyFieldset('lengow_convert_' . $type . '_address', 'to_' . $type . '_address', $data, $address);
|
91 |
if($type == 'shipping')
|
92 |
$type = 'delivery';
|
93 |
$address_1 = $data[$type . '_address'];
|
97 |
$address_1 = $address_2;
|
98 |
$address_2 = null;
|
99 |
}
|
100 |
+
// Fix address 2
|
101 |
if(!empty($address_2))
|
102 |
$address_1 = $address_1 . "\n" . $address_2;
|
103 |
$address_3 = $data[$type . '_address_complement'];
|
104 |
if(!empty($address_3))
|
105 |
$address_1 = $address_1 . "\n" . $address_3;
|
106 |
+
// adding relay to address
|
107 |
+
if (isset($data['tracking_relay']))
|
108 |
+
$address_1 .= ' - Relay : ' . $data['tracking_relay'];
|
109 |
$address->setStreet($address_1);
|
110 |
$tel_1 = $data[$type . '_phone_office'];
|
111 |
$tel_2 = $data[$type . '_phone_mobile'];
|
112 |
// Fix tel
|
113 |
+
$tel_1 = empty($tel_1) ? $tel_2 : $tel_1;
|
114 |
+
|
115 |
+
if (!empty($tel_1))
|
116 |
+
$this->setTelephone($tel_1);
|
117 |
if(!empty($tel_1))
|
118 |
$address->setFax($tel_1);
|
119 |
else if(!empty($tel_2))
|
120 |
$address->setFax($tel_2);
|
121 |
+
$codeRegion = (integer) substr(str_pad($address->getPostcode(), 5, '0', STR_PAD_LEFT), 0, 2);
|
122 |
$id_region = Mage::getModel('directory/region')->getCollection()
|
123 |
->addRegionCodeFilter($codeRegion)
|
124 |
->addCountryFilter($address->getCountry())
|
125 |
->getFirstItem()
|
126 |
+
->getId();
|
127 |
$address->setRegionId($id_region);
|
128 |
+
$address->setCustomer($this);
|
129 |
return $address;
|
130 |
}
|
131 |
+
|
132 |
+
/**
|
133 |
+
* Check if firstname or lastname are empty
|
134 |
+
*
|
135 |
+
* @param array $array
|
136 |
+
* @param boolean $split
|
137 |
+
*
|
138 |
+
* @return array
|
139 |
+
*/
|
140 |
+
protected static function getNames($array, $split)
|
141 |
+
{
|
142 |
+
if(empty($array['firstname'])) {
|
143 |
+
if (!empty($array['lastname'])) {
|
144 |
+
if ($split)
|
145 |
+
$array = self::splitNames($array['lastname']);
|
146 |
+
}
|
147 |
+
}
|
148 |
+
if (empty($array['lastname'])) {
|
149 |
+
if (!empty($array['firstname'])) {
|
150 |
+
if ($split)
|
151 |
+
$array = self::splitNames($array['firstname']);
|
152 |
+
}
|
153 |
+
}
|
154 |
+
if (empty($array['lastname']))
|
155 |
+
$array['lastname'] = '__';
|
156 |
+
if (empty($array['firstname'])) {
|
157 |
+
$array['firstname'] = '__';
|
158 |
+
}
|
159 |
+
return $array;
|
160 |
+
}
|
161 |
+
|
162 |
+
/**
|
163 |
+
* Split fullname
|
164 |
+
*
|
165 |
+
* @param string $fullname
|
166 |
+
*
|
167 |
+
* @return array
|
168 |
+
*/
|
169 |
+
protected static function splitNames($fullname)
|
170 |
+
{
|
171 |
+
$split = explode(' ', $fullname);
|
172 |
+
if($split && count($split)) {
|
173 |
+
$names['firstname'] = $split[0];
|
174 |
+
$names['lastname'] = '';
|
175 |
+
for ($i=1; $i<count($split); $i++) {
|
176 |
+
if(!empty($names['lastname']))
|
177 |
+
$names['lastname'] .= ' ';
|
178 |
+
|
179 |
+
$names['lastname'] .= $split[$i];
|
180 |
+
}
|
181 |
+
} else {
|
182 |
+
$names['firstname'] = '__';
|
183 |
+
$names['lastname'] = empty($fullname) ? '__' : $fullname;
|
184 |
+
}
|
185 |
+
return $names;
|
186 |
+
}
|
187 |
+
|
188 |
}
|
app/code/community/Lengow/Sync/Model/File.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Lengow_Sync_Model_File extends Varien_Io_File
|
4 |
+
{
|
5 |
+
/**
|
6 |
+
* Override adding the LOCK_NB option
|
7 |
+
* @param bool $exclusive
|
8 |
+
* @return bool
|
9 |
+
*/
|
10 |
+
public function streamLock($exclusive = true)
|
11 |
+
{
|
12 |
+
if (!$this->_streamHandler) {
|
13 |
+
return false;
|
14 |
+
}
|
15 |
+
$this->_streamLocked = true;
|
16 |
+
$lock = $exclusive ? LOCK_EX : LOCK_SH;
|
17 |
+
return flock($this->_streamHandler, $lock | LOCK_NB);
|
18 |
+
}
|
19 |
+
|
20 |
+
public function streamErase()
|
21 |
+
{
|
22 |
+
if (!$this->_streamHandler) {
|
23 |
+
return false;
|
24 |
+
}
|
25 |
+
return ftruncate($this->_streamHandler, 0);
|
26 |
+
}
|
27 |
+
}
|
app/code/community/Lengow/Sync/Model/Import.php
CHANGED
@@ -1,11 +1,12 @@
|
|
1 |
<?php
|
|
|
2 |
/**
|
3 |
* Lengow sync model import
|
4 |
*
|
5 |
* @category Lengow
|
6 |
* @package Lengow_Sync
|
7 |
-
* @author Ludovic Drin <ludovic@lengow.com>
|
8 |
-
* @copyright
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
class Lengow_Sync_Model_Import extends Varien_Object {
|
@@ -14,239 +15,491 @@ class Lengow_Sync_Model_Import extends Varien_Object {
|
|
14 |
* @var Mage_Sales_Model_Quote
|
15 |
*/
|
16 |
protected $_quote = null;
|
17 |
-
|
18 |
/**
|
19 |
* @var Mage_Customer_Model_Customer
|
20 |
*/
|
21 |
protected $_customer = null;
|
22 |
-
|
23 |
-
/**
|
24 |
-
* Config Data of Module Manageorders
|
25 |
-
* @var Profileolabs_Lengow_Model_Manageorders_Config
|
26 |
-
*/
|
27 |
-
protected $_config = null;
|
28 |
-
|
29 |
protected $_ordersIdsImported = array();
|
30 |
-
|
31 |
protected $_orderIdsAlreadyImported = array();
|
32 |
-
|
33 |
protected $_result;
|
34 |
-
|
35 |
protected $_resultSendOrder = "";
|
36 |
-
|
37 |
protected $_isUnderVersion14 = null;
|
38 |
-
|
|
|
39 |
* Product model
|
40 |
*
|
41 |
* @var Mage_Catalog_Model_Product
|
42 |
*/
|
43 |
protected $_productModel;
|
44 |
|
45 |
-
protected $
|
46 |
|
47 |
-
protected $_helper;
|
48 |
|
49 |
public static $import_start = false;
|
50 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
51 |
|
52 |
/**
|
53 |
-
*
|
54 |
-
*
|
55 |
-
* @param $command varchar The command of import
|
56 |
-
* @param mixed
|
57 |
*/
|
58 |
-
public function
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
|
|
|
|
|
|
|
|
|
|
64 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
65 |
}
|
66 |
|
67 |
/**
|
68 |
* Makes the Orders API Url and imports all orders
|
69 |
*
|
70 |
-
* @param
|
|
|
|
|
71 |
*/
|
72 |
-
protected function
|
73 |
-
|
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;
|
81 |
$count_orders_updated = 0;
|
82 |
$count_orders_added = 0;
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
$
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
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');
|
120 |
-
$marketplace->set((string) $lengow_order->marketplace);
|
121 |
-
$id_flux = (integer) $lengow_order->idFlux;
|
122 |
-
if((string) $lengow_order->order_status->marketplace == '') {
|
123 |
-
$this->_helper->log('Order ' . $lengow_order_id . ' : no order\'s status');
|
124 |
continue;
|
125 |
}
|
126 |
-
|
127 |
-
|
|
|
|
|
128 |
continue;
|
129 |
}
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
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);
|
148 |
-
$this->_helper->log('Order ' . $lengow_order_id . ' : update state to shipped');
|
149 |
-
$count_orders_updated++;
|
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 |
-
}
|
157 |
-
}
|
158 |
} else {
|
159 |
// Import only process order or shipped order and not imported with previous module
|
160 |
-
$
|
161 |
-
$
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
$
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
191 |
}
|
192 |
-
$
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
// Sync to lengow
|
202 |
-
if(!$this->_config->isDebugMode()) {
|
203 |
-
$orders = $connector->api('getInternalOrderId', array(
|
204 |
-
'idClient' => (integer) $this->_config->getConfig('tracker/general/login'),
|
205 |
-
'idFlux' => $this->_config->getConfig('tracker/general/api_key'),
|
206 |
-
'Marketplace' => (string) $lengow_order->marketplace,
|
207 |
-
'idCommandeMP' => $lengow_order_id,
|
208 |
-
'idCommandeMage' => $order->getId(),
|
209 |
-
'statutCommandeMP' => (string) $lengow_order->order_status->lengow,
|
210 |
-
'statutCommandeMage' => $order->getState(),
|
211 |
-
'idQuoteMage' => $quote->getId(),
|
212 |
-
'Message' => 'Import depuis: ' . (string) $lengow_order->marketplace . '<br/>idOrder: '.$lengow_order_id,
|
213 |
-
'type' => 'Magento'
|
214 |
-
));
|
215 |
-
$this->_helper->log('Order ' . $lengow_order_id . ' : sync with Lengow (Order ' . $order->getId() . ')');
|
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 |
-
|
233 |
-
|
234 |
-
|
235 |
-
} else {
|
236 |
-
$this->_helper->log('Order ' . $lengow_order_id . ' : order\'s status ( ' . $lengow_order_state . ') not available to import');
|
237 |
}
|
|
|
|
|
|
|
|
|
|
|
238 |
}
|
|
|
239 |
}
|
240 |
}
|
241 |
self::$import_start = false;
|
242 |
-
|
243 |
-
|
|
|
244 |
}
|
245 |
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
251 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
252 |
}
|
1 |
<?php
|
2 |
+
|
3 |
/**
|
4 |
* Lengow sync model import
|
5 |
*
|
6 |
* @category Lengow
|
7 |
* @package Lengow_Sync
|
8 |
+
* @author Ludovic Drin <ludovic@lengow.com> & Benjamin Le Nevé <benjamin.le-neve@lengow.com>
|
9 |
+
* @copyright 2015 Lengow SAS
|
10 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
11 |
*/
|
12 |
class Lengow_Sync_Model_Import extends Varien_Object {
|
15 |
* @var Mage_Sales_Model_Quote
|
16 |
*/
|
17 |
protected $_quote = null;
|
18 |
+
|
19 |
/**
|
20 |
* @var Mage_Customer_Model_Customer
|
21 |
*/
|
22 |
protected $_customer = null;
|
23 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
24 |
protected $_ordersIdsImported = array();
|
25 |
+
|
26 |
protected $_orderIdsAlreadyImported = array();
|
27 |
+
|
28 |
protected $_result;
|
29 |
+
|
30 |
protected $_resultSendOrder = "";
|
31 |
+
|
32 |
protected $_isUnderVersion14 = null;
|
33 |
+
|
34 |
+
/**
|
35 |
* Product model
|
36 |
*
|
37 |
* @var Mage_Catalog_Model_Product
|
38 |
*/
|
39 |
protected $_productModel;
|
40 |
|
41 |
+
protected $_connector;
|
42 |
|
43 |
+
protected $_helper;
|
44 |
|
45 |
public static $import_start = false;
|
46 |
|
47 |
+
protected $_dateFrom;
|
48 |
+
|
49 |
+
protected $_dateTo;
|
50 |
+
|
51 |
+
protected $_config;
|
52 |
+
|
53 |
+
protected $_idCustomer;
|
54 |
+
|
55 |
+
protected $_idGroup;
|
56 |
+
|
57 |
+
protected $_apiToken;
|
58 |
|
59 |
/**
|
60 |
+
* Constructor
|
|
|
|
|
|
|
61 |
*/
|
62 |
+
public function __construct($args)
|
63 |
+
{
|
64 |
+
parent::__construct();
|
65 |
+
if(Mage::app()->getStore()->getCode() != 'admin')
|
66 |
+
Mage::app()->setCurrentStore('admin');
|
67 |
+
|
68 |
+
if (!is_array($args))
|
69 |
+
return;
|
70 |
+
|
71 |
+
foreach ($args as $key => $value) {
|
72 |
+
$this->{'_'.$key} = $value;
|
73 |
}
|
74 |
+
$this->_helper = Mage::helper('lensync/data');
|
75 |
+
return $this;
|
76 |
+
}
|
77 |
+
|
78 |
+
/**
|
79 |
+
* Execute import process
|
80 |
+
*/
|
81 |
+
public function exec()
|
82 |
+
{
|
83 |
+
self::$import_start = true;
|
84 |
+
Mage::getSingleton('core/session')->setIsFromlengow('true');
|
85 |
+
$orders = $this->getLengowOrders();
|
86 |
+
if(!is_object($orders) || isset($orders->error)) {
|
87 |
+
$error = (string) $orders->error;
|
88 |
+
if (strtolower($error) == 'no way')
|
89 |
+
$message = $this->_helper->__('API\'s connection refused with IP %s', (string) $orders->ip);
|
90 |
+
$error = $this->_helper->__('Error on lengow webservice'.isset($message) ? ': ' . $message : json_encode($orders));
|
91 |
+
$this->_helper->log($error);
|
92 |
+
return array('new' => 0, 'update' => 0, 'error' => $error);
|
93 |
+
} else {
|
94 |
+
$count_orders = count($orders->orders->order);
|
95 |
+
if ($count_orders === 0) {
|
96 |
+
$this->_helper->log(
|
97 |
+
'No orders to import between ' . $this->_dateFrom . ' and ' . $this->_dateTo,
|
98 |
+
$this->force_log_output
|
99 |
+
);
|
100 |
+
return false;
|
101 |
+
}
|
102 |
+
$this->_helper->log($count_orders . ' order' . ($count_orders > 1 ? 's ' : ' ') . 'found');
|
103 |
+
}
|
104 |
+
return $this->importOrders($orders);
|
105 |
+
}
|
106 |
+
|
107 |
+
/**
|
108 |
+
* Retrieve Lengow orders
|
109 |
+
*
|
110 |
+
* @return SimpleXmlElement list of orders to be imported
|
111 |
+
*/
|
112 |
+
protected function getLengowOrders()
|
113 |
+
{
|
114 |
+
$this->_connector = Mage::getSingleton('lensync/connector');
|
115 |
+
$this->_connector->init((integer) $this->_idCustomer, $this->_apiToken);
|
116 |
+
|
117 |
+
if ($this->_connector->error)
|
118 |
+
return $connector;
|
119 |
+
|
120 |
+
return $this->_connector->api(
|
121 |
+
'commands',
|
122 |
+
array(
|
123 |
+
'dateFrom' => $this->_dateFrom,
|
124 |
+
'dateTo' => $this->_dateTo,
|
125 |
+
'id_group' => $this->_idGroup,
|
126 |
+
'state' => 'plugin',
|
127 |
+
)
|
128 |
+
);
|
129 |
}
|
130 |
|
131 |
/**
|
132 |
* Makes the Orders API Url and imports all orders
|
133 |
*
|
134 |
+
* @param SimpleXmlElement $orders List of orders to be imported
|
135 |
+
*
|
136 |
+
* @return array Number of new and update orders
|
137 |
*/
|
138 |
+
protected function importOrders($orders)
|
139 |
+
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
140 |
$count_orders_updated = 0;
|
141 |
$count_orders_added = 0;
|
142 |
+
|
143 |
+
foreach($orders->orders->order as $key => $order_data) {
|
144 |
+
$model_order = Mage::getModel('lensync/order');
|
145 |
+
$model_order->setConfig($this->_config);
|
146 |
+
|
147 |
+
$id_lengow_order = (string) $order_data->order_id;
|
148 |
+
|
149 |
+
if($this->_config->isDebugMode())
|
150 |
+
$id_lengow_order .= '--'.time();
|
151 |
+
|
152 |
+
// check if order has a status
|
153 |
+
$marketplace_status = (string) $order_data->order_status->marketplace;
|
154 |
+
if (empty($marketplace_status)) {
|
155 |
+
$this->_helper->log('no order\'s status', $id_lengow_order);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
156 |
continue;
|
157 |
}
|
158 |
+
|
159 |
+
// first check if not shipped by marketplace
|
160 |
+
if ((integer) $order_data->tracking_informations->tracking_deliveringByMarketPlace == 1) {
|
161 |
+
$this->_helper->log('delivery by marketplace (' . (string) $order_data->marketplace . ')', $id_lengow_order);
|
162 |
continue;
|
163 |
}
|
164 |
+
|
165 |
+
// convert marketplace status to Lengow equivalent
|
166 |
+
$marketplace = Mage::getModel('lensync/marketplace');
|
167 |
+
$marketplace->set((string) $order_data->marketplace);
|
168 |
+
$lengow_status = $marketplace->getStateLengow($marketplace_status);
|
169 |
+
|
170 |
+
// check if order has already been imported
|
171 |
+
$id_order = $model_order->isAlreadyImported($id_lengow_order, (integer) $order_data->idFlux);
|
172 |
+
if ($id_order) {
|
173 |
+
$order_imported = Mage::getModel('sales/order')->load($id_order);
|
174 |
+
$this->_helper->log('already imported in Magento with order ID ' . $order_imported->getIncrementId(), $id_lengow_order);
|
175 |
+
if ($model_order->updateState($order_imported, $lengow_status, $order_data))
|
176 |
+
$count_orders_updated++;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
177 |
} else {
|
178 |
// Import only process order or shipped order and not imported with previous module
|
179 |
+
$id_order_magento = $this->_config->isDebugMode() ? null : (string) $order_data->order_external_id;
|
180 |
+
if ($lengow_status == 'processing' || $lengow_status == 'shipped' && !$id_order_magento) {
|
181 |
+
|
182 |
+
// Create or Update customer with addresses
|
183 |
+
$customer = Mage::getModel('lensync/customer_customer');
|
184 |
+
$customer->setFromNode($order_data, $this->_config);
|
185 |
+
|
186 |
+
// rewrite order if processing fees not included
|
187 |
+
if(!$this->_config->get('orders/processing_fee')) {
|
188 |
+
$total_wt_proc_fees = (float) $order_data->order_amount - (float) $order_data->order_processing_fee;
|
189 |
+
$order_data->order_amount = new SimpleXMLElement('<order_amount><![CDATA[' . ($total_wt_proc_fees) . ']]></order_amount>');
|
190 |
+
$order_data->order_processing_fee = new SimpleXMLElement('<order_processing_fee><![CDATA[ ]]></order_processing_fee>');
|
191 |
+
$this->_helper->log('rewrite amount without processing fee', $id_lengow_order);
|
192 |
+
unset($total_wt_proc_fees);
|
193 |
+
}
|
194 |
+
|
195 |
+
try {
|
196 |
+
$quote = $this->_createQuote($id_lengow_order, $order_data, $customer, $marketplace);
|
197 |
+
} catch (Lengow_Sync_Model_Quote_Exception $e) {
|
198 |
+
$this->_helper->log('create quote fail : ' . $e->getMessage(), $id_lengow_order);
|
199 |
+
continue;
|
200 |
+
}
|
201 |
+
try {
|
202 |
+
$order = $this->makeOrder($id_lengow_order, $order_data, $quote, $model_order, true);
|
203 |
+
} catch (Exception $e) {
|
204 |
+
$this->_helper->log('create order fail : ' . $e->getMessage(), $id_lengow_order);
|
205 |
+
}
|
206 |
+
|
207 |
+
if($order) {
|
208 |
+
// Sync to lengow
|
209 |
+
if(!$this->_config->isDebugMode()) {
|
210 |
+
$orders = $this->_connector->api('getInternalOrderId', array(
|
211 |
+
'idClient' => (integer) $this->_idCustomer,
|
212 |
+
'idFlux' => (integer) $order_data->idFlux,
|
213 |
+
'Marketplace' => (string) $order_data->marketplace,
|
214 |
+
'idCommandeMP' => $id_lengow_order,
|
215 |
+
'idCommandeMage' => $order->getId(),
|
216 |
+
'statutCommandeMP' => (string) $order_data->order_status->lengow,
|
217 |
+
'statutCommandeMage' => $order->getState(),
|
218 |
+
'idQuoteMage' => $quote->getId(),
|
219 |
+
'Message' => 'Import depuis: ' . (string) $order_data->marketplace . '<br/>idOrder: '.$id_lengow_order,
|
220 |
+
'type' => 'Magento'
|
221 |
+
));
|
222 |
+
$this->_helper->log('order successfully synchronised with Lengow webservice (Order ' . $order->getIncrementId() . ')', $id_lengow_order);
|
223 |
}
|
224 |
+
$count_orders_added++;
|
225 |
+
$this->_helper->log('order successfully imported (Order ' . $order->getIncrementId() . ')', $id_lengow_order);
|
226 |
+
if($lengow_status == 'shipped') {
|
227 |
+
$model_order->toShip($order,
|
228 |
+
(string) $order_data->tracking_informations->tracking_carrier,
|
229 |
+
(string) $order_data->tracking_informations->tracking_method,
|
230 |
+
(string) $order_data->tracking_informations->tracking_number
|
231 |
+
);
|
232 |
+
$this->_helper->log('update state to "shipped" (Order ' . $order->getIncrementId() . ')', $id_lengow_order);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
233 |
}
|
234 |
+
unset($customer);
|
235 |
+
unset($quote);
|
236 |
+
unset($order);
|
|
|
|
|
237 |
}
|
238 |
+
} else {
|
239 |
+
if($id_order_magento)
|
240 |
+
$this->_helper->log('already imported in Magento with order ID ' . $id_order_magento, $id_lengow_order);
|
241 |
+
else
|
242 |
+
$this->_helper->log('order\'s status (' . $lengow_status . ') not available to import', $id_lengow_order);
|
243 |
}
|
244 |
+
unset($model_order);
|
245 |
}
|
246 |
}
|
247 |
self::$import_start = false;
|
248 |
+
// Clear session
|
249 |
+
Mage::getSingleton('core/session')->clear();
|
250 |
+
return array('new' => $count_orders_added, 'update' => $count_orders_updated);
|
251 |
}
|
252 |
|
253 |
+
/**
|
254 |
+
* Create quote
|
255 |
+
*
|
256 |
+
* @param string $id_lengow_order
|
257 |
+
* @param SimpleXMLelement $order_data
|
258 |
+
* @param Lengow_Sync_Model_Customer_Customer $customer
|
259 |
+
* @param Lengow_Sync_Model_Marketplace $marketplace
|
260 |
+
*
|
261 |
+
* @return Lengow_Sync_Model_Quote
|
262 |
+
*/
|
263 |
+
protected function _createQuote($id_lengow_order, SimpleXMLelement $order_data, Lengow_Sync_Model_Customer_Customer $customer, Lengow_Sync_Model_Marketplace $marketplace)
|
264 |
+
{
|
265 |
+
$quote = Mage::getModel('lensync/quote')
|
266 |
+
->setIsMultiShipping(false)
|
267 |
+
->setStore($this->_config->getStore())
|
268 |
+
->setIsSuperMode(true);
|
269 |
+
|
270 |
+
// import customer addresses into quote
|
271 |
+
// Set billing Address
|
272 |
+
$customer_billing_address = Mage::getModel('customer/address')
|
273 |
+
->load($customer->getDefaultBilling());
|
274 |
+
$billing_address = Mage::getModel('sales/quote_address')
|
275 |
+
->setShouldIgnoreValidation(true)
|
276 |
+
->importCustomerAddress($customer_billing_address)
|
277 |
+
->setSaveInAddressBook(0);
|
278 |
+
|
279 |
+
// Set shipping Address
|
280 |
+
$customer_shipping_address = Mage::getModel('customer/address')
|
281 |
+
->load($customer->getDefaultShipping());
|
282 |
+
$shipping_address = Mage::getModel('sales/quote_address')
|
283 |
+
->setShouldIgnoreValidation(true)
|
284 |
+
->importCustomerAddress($customer_shipping_address)
|
285 |
+
->setSaveInAddressBook(0)
|
286 |
+
->setSameAsBilling(0);
|
287 |
+
$quote->assignCustomerWithAddressChange($customer, $billing_address, $shipping_address);
|
288 |
+
|
289 |
+
// check if store include tax (Product and shipping cost)
|
290 |
+
$priceIncludeTax = Mage::helper('tax')->priceIncludesTax($quote->getStore());
|
291 |
+
$shippingIncludeTax = Mage::helper('tax')->shippingPriceIncludesTax($quote->getStore());
|
292 |
+
|
293 |
+
// add product in quote
|
294 |
+
$quote->addLengowProducts($order_data->cart->products->product, $marketplace, $id_lengow_order, $priceIncludeTax);
|
295 |
+
|
296 |
+
// get shipping cost with tax
|
297 |
+
$shipping_cost = (float) $order_data->order_processing_fee + (float) $order_data->order_shipping;
|
298 |
+
|
299 |
+
// if shipping cost not include tax -> get shipping cost without tax
|
300 |
+
if(!$shippingIncludeTax) {
|
301 |
+
$basedOn = Mage::getStoreConfig(Mage_Tax_Model_Config::CONFIG_XML_PATH_BASED_ON, $quote->getStore());
|
302 |
+
$country_id = ($basedOn == 'shipping') ? $shipping_address->getCountryId() : $billing_address->getCountryId();
|
303 |
+
$shippingTaxClass = Mage::getStoreConfig(Mage_Tax_Model_Config::CONFIG_XML_PATH_SHIPPING_TAX_CLASS, $quote->getStore());
|
304 |
+
$taxCalculator = Mage::getModel('tax/calculation');
|
305 |
+
$taxRequest = new Varien_Object();
|
306 |
+
$taxRequest->setCountryId($country_id)
|
307 |
+
->setCustomerClassId($customer->getTaxClassId())
|
308 |
+
->setProductClassId($shippingTaxClass);
|
309 |
+
$tax_rate = (float) $taxCalculator->getRate($taxRequest);
|
310 |
+
$tax_shipping_cost = (float) $taxCalculator->calcTaxAmount($shipping_cost, $tax_rate, true);
|
311 |
+
$shipping_cost = $shipping_cost - $tax_shipping_cost;
|
312 |
+
}
|
313 |
+
|
314 |
+
// get and update shipping rates for current order
|
315 |
+
$rates = $quote->getShippingAddress()
|
316 |
+
->setCollectShippingRates(true)
|
317 |
+
->collectShippingRates()
|
318 |
+
->getShippingRatesCollection();
|
319 |
+
$shipping_method = $this->updateRates($rates, $id_lengow_order, $shipping_cost);
|
320 |
+
|
321 |
+
// set shipping price and shipping method for current order
|
322 |
+
$quote->getShippingAddress()
|
323 |
+
->setShippingPrice($shipping_cost)
|
324 |
+
->setShippingMethod($shipping_method);
|
325 |
+
|
326 |
+
// collect totals
|
327 |
+
$quote->collectTotals();
|
328 |
+
|
329 |
+
// Re-ajuste cents for item quote
|
330 |
+
// Conversion Tax Include > Tax Exclude > Tax Include maybe make 0.01 amount error
|
331 |
+
if (!$priceIncludeTax) {
|
332 |
+
if($quote->getGrandTotal() != (float) $order_data->order_amount) {
|
333 |
+
$quote_items = $quote->getAllItems();
|
334 |
+
foreach ($quote_items as $item) {
|
335 |
+
$row_total_lengow = (float) $quote->getRowTotalLengow((string) $item->getProduct()->getId());
|
336 |
+
if ($row_total_lengow != $item->getRowTotalInclTax()) {
|
337 |
+
$diff = $row_total_lengow - $item->getRowTotalInclTax();
|
338 |
+
$item->setPriceInclTax($item->getPriceInclTax() + ($diff / $item->getQty()));
|
339 |
+
$item->setBasePriceInclTax($item->getPriceInclTax());
|
340 |
+
$item->setPrice($item->getPrice() + ($diff / $item->getQty()));
|
341 |
+
$item->setOriginalPrice($item->getPrice());
|
342 |
+
$item->setRowTotal($item->getRowTotal() + $diff);
|
343 |
+
$item->setBaseRowTotal($item->getRowTotal());
|
344 |
+
$item->setRowTotalInclTax((float) $row_total_lengow);
|
345 |
+
$item->setBaseRowTotalInclTax($item->getRowTotalInclTax());
|
346 |
+
}
|
347 |
+
}
|
348 |
+
}
|
349 |
+
}
|
350 |
+
|
351 |
+
// set payment method lengow
|
352 |
+
$quote->getPayment()
|
353 |
+
->importData(
|
354 |
+
array(
|
355 |
+
'method' => 'lengow',
|
356 |
+
'marketplace' => (string) $order_data->marketplace . ' - ' . (string) $order_data->order_payment->payment_type,
|
357 |
+
)
|
358 |
+
);
|
359 |
+
|
360 |
+
$quote->save();
|
361 |
+
return $quote;
|
362 |
+
}
|
363 |
|
364 |
+
/**
|
365 |
+
* Create order
|
366 |
+
*
|
367 |
+
* @param string $id_lengow_order
|
368 |
+
* @param SimpleXMLelement $order_data
|
369 |
+
* @param Lengow_Sync_Model_Quote $quote
|
370 |
+
* @param Lengow_Sync_Model_Order $model_order
|
371 |
+
* @param boolean $invoice
|
372 |
+
*
|
373 |
+
* @return Mage_Sales_Model_Order
|
374 |
+
*/
|
375 |
+
protected function makeOrder($id_lengow_order, SimpleXMLelement $order_data, Lengow_Sync_Model_Quote $quote, Mage_Sales_Model_Order $model_order, $invoice = true)
|
376 |
+
{
|
377 |
+
try {
|
378 |
+
$additional_data = array('from_lengow' => true ,
|
379 |
+
'marketplace_lengow' => (string) $order_data->marketplace ,
|
380 |
+
'fees_lengow' => (float) $order_data->order_commission ,
|
381 |
+
'order_id_lengow' => $id_lengow_order ,
|
382 |
+
'feed_id_lengow' => (integer) $order_data->idFlux ,
|
383 |
+
'xml_node_lengow' => Mage::helper('Core')->jsonEncode($order_data) ,
|
384 |
+
'message_lengow' => (string) $order_data->order_comments ,
|
385 |
+
'total_paid_lengow' => (float) $order_data->order_amount ,
|
386 |
+
'carrier_lengow' => (string) $order_data->tracking_informations->tracking_carrier ,
|
387 |
+
'carrier_method_lengow' => (string) $order_data->tracking_informations->tracking_method ,
|
388 |
+
'carrier_tracking_lengow' => (string) $order_data->tracking_informations->tracking_number ,
|
389 |
+
'carrier_id_relay_lengow' => (string) $order_data->tracking_informations->tracking_relay ,
|
390 |
+
'global_currency_code' => (string) $order_data->order_currency ,
|
391 |
+
'base_currency_code' => (string) $order_data->order_currency ,
|
392 |
+
'store_currency_code' => (string) $order_data->order_currency ,
|
393 |
+
'order_currency_code' => (string) $order_data->order_currency ,
|
394 |
+
);
|
395 |
+
|
396 |
+
$service = Mage::getModel('sales/service_quote', $quote);
|
397 |
+
$service->setOrderData($additional_data);
|
398 |
+
$order = false;
|
399 |
+
if(method_exists($service, 'submitAll')) {
|
400 |
+
$service->submitAll();
|
401 |
+
$order = $service->getOrder();
|
402 |
+
} else {
|
403 |
+
$order = $service->submit();
|
404 |
+
}
|
405 |
+
if (!$order)
|
406 |
+
throw new Exception('service unable to create order based on given quote');
|
407 |
+
|
408 |
+
$order->setIsFromLengow(true);
|
409 |
+
// modify order dates to use actual dates
|
410 |
+
if ($this->_config->get('orders/date_import')) {
|
411 |
+
$date_mp = (string) $order_data->order_purchase_date . ' ' . (string) $order_data->order_purchase_heure;
|
412 |
+
$server_timezone = date_default_timezone_get();
|
413 |
+
date_default_timezone_set(Mage::getStoreConfig('general/locale/timezone'));
|
414 |
+
$date_UTC = gmdate('Y-m-d H:i:s', strtotime($date_mp));
|
415 |
+
date_default_timezone_set($server_timezone);
|
416 |
+
$order->setCreatedAt($date_UTC);
|
417 |
+
$order->setUpdatedAt($date_UTC);
|
418 |
+
}
|
419 |
+
$order->save();
|
420 |
+
|
421 |
+
// Re-ajuste cents for total and shipping cost
|
422 |
+
// Conversion Tax Include > Tax Exclude > Tax Include maybe make 0.01 amount error
|
423 |
+
$priceIncludeTax = Mage::helper('tax')->priceIncludesTax($quote->getStore());
|
424 |
+
$shippingIncludeTax = Mage::helper('tax')->shippingPriceIncludesTax($quote->getStore());
|
425 |
+
if (!$priceIncludeTax || !$shippingIncludeTax) {
|
426 |
+
if($order->getGrandTotal() != (float) $order_data->order_amount) {
|
427 |
+
// check Grand Total
|
428 |
+
$diff = (((float) $order_data->order_amount) - $order->getGrandTotal());
|
429 |
+
$order->setGrandTotal((float) $order_data->order_amount);
|
430 |
+
$order->setBaseGrandTotal($order->getGrandTotal());
|
431 |
+
// if the difference is only on the grand total, removing the difference of shipping cost
|
432 |
+
if (($order->getSubtotalInclTax() + $order->getShippingInclTax()) == (float) $order_data->order_amount) {
|
433 |
+
$order->setShippingAmount($order->getShippingAmount() + $diff);
|
434 |
+
$order->setBaseShippingAmount($order->getShippingAmount());
|
435 |
+
} else {
|
436 |
+
// check Shipping Cost
|
437 |
+
$diff_shipping = 0;
|
438 |
+
$shipping_cost = (float) $order_data->order_processing_fee + (float) $order_data->order_shipping;
|
439 |
+
if($order->getShippingInclTax() != (float) $shipping_cost) {
|
440 |
+
$diff_shipping = ($shipping_cost - $order->getShippingInclTax());
|
441 |
+
$order->setShippingAmount($order->getShippingAmount() + $diff_shipping);
|
442 |
+
$order->setBaseShippingAmount($order->getShippingAmount());
|
443 |
+
$order->setShippingInclTax($shipping_cost);
|
444 |
+
$order->setBaseShippingInclTax($order->getShippingInclTax());
|
445 |
+
}
|
446 |
+
// update Subtotal without shipping cost
|
447 |
+
$order->setSubtotalInclTax($order->getSubtotalInclTax() + ($diff - $diff_shipping));
|
448 |
+
$order->setBaseSubtotalInclTax($order->getSubtotalInclTax());
|
449 |
+
$order->setSubtotal($order->getSubtotal() + ($diff - $diff_shipping));
|
450 |
+
$order->setBaseSubtotal($order->getSubtotal());
|
451 |
+
}
|
452 |
+
}
|
453 |
+
$order->save();
|
454 |
+
}
|
455 |
+
|
456 |
+
// generate invoice for order
|
457 |
+
if ($invoice && $order->canInvoice()) {
|
458 |
+
$model_order->toInvoice($order);
|
459 |
+
}
|
460 |
+
|
461 |
+
$carrier_name = (string) $order_data->tracking_informations->tracking_carrier;
|
462 |
+
if ((string) $carrier_name === 'None' || $carrier_name == '')
|
463 |
+
$carrier_name = (string) $order_data->tracking_informations->tracking_method;
|
464 |
+
$order->setShippingDescription($order->getShippingDescription() . ' [marketplace shipping method : ' . $carrier_name . ']');
|
465 |
+
|
466 |
+
$order->save();
|
467 |
+
} catch (Exception $e){
|
468 |
+
Mage::helper('lensync')->log('error create order : ' . $e->getMessage(), $id_lengow_order);
|
469 |
+
}
|
470 |
+
return $order;
|
471 |
+
}
|
472 |
+
|
473 |
+
/**
|
474 |
+
* Update Rates with shipping cost
|
475 |
+
*
|
476 |
+
* @param $rates
|
477 |
+
* @param string $id_lengow_order
|
478 |
+
* @param float $shipping_cost
|
479 |
+
* @param string $shipping_method
|
480 |
+
* @param boolean $first stop recursive effect
|
481 |
+
*
|
482 |
+
* @return boolean
|
483 |
+
*/
|
484 |
+
protected function updateRates($rates, $id_lengow_order, $shipping_cost, $shipping_method = null, $first = true)
|
485 |
+
{
|
486 |
+
if (!$shipping_method)
|
487 |
+
$shipping_method = $this->_config->get('orders/default_shipping');
|
488 |
+
foreach ($rates as &$rate) {
|
489 |
+
// make sure the chosen shipping method is correct
|
490 |
+
if ($rate->getCode() == $shipping_method) {
|
491 |
+
if ($rate->getPrice() != $shipping_cost) {
|
492 |
+
$rate->setPrice($shipping_cost);
|
493 |
+
$rate->setCost($shipping_cost);
|
494 |
+
}
|
495 |
+
return $rate->getCode();
|
496 |
+
}
|
497 |
+
}
|
498 |
+
// stop recursive effect
|
499 |
+
if (!$first)
|
500 |
+
return 'lengow_lengow';
|
501 |
+
// get lengow shipping method if selected shipping method is unavailable
|
502 |
+
$this->_helper->log('the selected shipping method is unavailable for current order. Lengow shipping method assigned.', $id_lengow_order);
|
503 |
+
return $this->updateRates($rates, $id_lengow_order, $shipping_cost, 'lengow_lengow', false);
|
504 |
+
}
|
505 |
}
|
app/code/community/Lengow/Sync/Model/Log.php
CHANGED
@@ -10,8 +10,9 @@
|
|
10 |
*/
|
11 |
class Lengow_Sync_Model_Log extends Mage_Core_Model_Abstract {
|
12 |
|
13 |
-
protected function _construct()
|
14 |
-
|
|
|
15 |
}
|
16 |
|
17 |
/**
|
@@ -19,10 +20,11 @@ class Lengow_Sync_Model_Log extends Mage_Core_Model_Abstract {
|
|
19 |
* @param $message string
|
20 |
* @param $id_order int
|
21 |
*/
|
22 |
-
public function log($message, $id_order = null)
|
|
|
23 |
$order_message = '';
|
24 |
if(!is_null($id_order)) {
|
25 |
-
$order_message = Mage::helper('
|
26 |
}
|
27 |
$message = $order_message . $message;
|
28 |
$this->setMessage($message);
|
10 |
*/
|
11 |
class Lengow_Sync_Model_Log extends Mage_Core_Model_Abstract {
|
12 |
|
13 |
+
protected function _construct()
|
14 |
+
{
|
15 |
+
$this->_init('lensync/log');
|
16 |
}
|
17 |
|
18 |
/**
|
20 |
* @param $message string
|
21 |
* @param $id_order int
|
22 |
*/
|
23 |
+
public function log($message, $id_order = null)
|
24 |
+
{
|
25 |
$order_message = '';
|
26 |
if(!is_null($id_order)) {
|
27 |
+
$order_message = Mage::helper('lensync')->__('ID Order') . ' Lengow #' . $id_order . ' ';
|
28 |
}
|
29 |
$message = $order_message . $message;
|
30 |
$this->setMessage($message);
|
app/code/community/Lengow/Sync/Model/Marketplace.php
CHANGED
@@ -52,8 +52,8 @@ class Lengow_Sync_Model_Marketplace {
|
|
52 |
*
|
53 |
* @param string $name The name of the marketplace
|
54 |
*/
|
55 |
-
public function set($name) {
|
56 |
-
$this->_helper = Mage::helper('
|
57 |
$this->_loadXml();
|
58 |
$this->name = strtolower($name);
|
59 |
$object = self::$DOM->xpath('/marketplaces/marketplace[@name=\'' . $this->name . '\']');
|
@@ -104,7 +104,7 @@ class Lengow_Sync_Model_Marketplace {
|
|
104 |
}
|
105 |
|
106 |
/**
|
107 |
-
* Get the real lengow's state
|
108 |
*
|
109 |
* @param string $name The marketplace state
|
110 |
*
|
@@ -115,7 +115,7 @@ class Lengow_Sync_Model_Marketplace {
|
|
115 |
}
|
116 |
|
117 |
/**
|
118 |
-
* Get the marketplace's state
|
119 |
*
|
120 |
* @param string $name The lengow state
|
121 |
*
|
@@ -126,7 +126,7 @@ class Lengow_Sync_Model_Marketplace {
|
|
126 |
}
|
127 |
|
128 |
/**
|
129 |
-
* Get the real lengow's payment
|
130 |
*
|
131 |
* @param string $name The payment state
|
132 |
*
|
@@ -137,7 +137,7 @@ class Lengow_Sync_Model_Marketplace {
|
|
137 |
}
|
138 |
|
139 |
/**
|
140 |
-
* Get the marketplace's payment
|
141 |
*
|
142 |
* @param string $name The lengow payment
|
143 |
*
|
@@ -170,7 +170,7 @@ class Lengow_Sync_Model_Marketplace {
|
|
170 |
}
|
171 |
|
172 |
/**
|
173 |
-
* Call the Lengow WSDL for current marketplace
|
174 |
*
|
175 |
* @param string $action The name of the action
|
176 |
* @param string $id_feed The flux ID
|
@@ -245,7 +245,7 @@ class Lengow_Sync_Model_Marketplace {
|
|
245 |
}
|
246 |
$call_url .= '?' . implode('&', $url);
|
247 |
}
|
248 |
-
break;
|
249 |
case 'refuse' :
|
250 |
$call_url = $this->api_url;
|
251 |
$call_url = str_replace('#ID_FLUX#', $id_feed, $call_url);
|
@@ -264,7 +264,7 @@ class Lengow_Sync_Model_Marketplace {
|
|
264 |
if(count($gets) > 0)
|
265 |
$call_url .= '?' . implode('&', $gets);
|
266 |
}
|
267 |
-
break;
|
268 |
case 'link' :
|
269 |
$call_url = self::$WSDL_LINK_ORDER;
|
270 |
$call_url = str_replace('#MP#', $this->name, $call_url);
|
@@ -272,18 +272,17 @@ class Lengow_Sync_Model_Marketplace {
|
|
272 |
$call_url = str_replace('#ID_FLUX#', $id_feed, $call_url);
|
273 |
$call_url = str_replace('#ORDER_ID#', $order->getData('order_id_lengow'), $call_url);
|
274 |
$call_url = str_replace('#INTERNAL_ORDER_ID#', $order->getData('entity_id'), $call_url);
|
275 |
-
|
276 |
}
|
277 |
try {
|
278 |
if($call_url) {
|
279 |
-
if(!Mage::getSingleton('
|
280 |
$this->_makeRequest($call_url);
|
281 |
}
|
282 |
-
Mage::helper('
|
283 |
}
|
284 |
} catch(Lengow_Sync_Model_Marketplace_Exception $e) {
|
285 |
-
Mage::helper('
|
286 |
-
Mage::helper('
|
287 |
}
|
288 |
}
|
289 |
|
@@ -306,12 +305,32 @@ class Lengow_Sync_Model_Marketplace {
|
|
306 |
return $value;
|
307 |
|
308 |
}
|
|
|
309 |
// Approximately match
|
310 |
foreach($param['accepted_values'] as $value) {
|
311 |
$value = (string) $value;
|
312 |
-
if(preg_match('`.*?
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
313 |
return $value;
|
314 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
315 |
}
|
316 |
return $param['accepted_values_default'];
|
317 |
}
|
@@ -323,7 +342,7 @@ class Lengow_Sync_Model_Marketplace {
|
|
323 |
if(!self::$DOM) {
|
324 |
self::$DOM = simplexml_load_file(Mage::getModuleDir('etc', 'Lengow_Sync') . DS . self::$XML_MARKETPLACES);
|
325 |
}
|
326 |
-
}
|
327 |
|
328 |
/**
|
329 |
* Makes an HTTP request.
|
@@ -335,7 +354,7 @@ class Lengow_Sync_Model_Marketplace {
|
|
335 |
protected function _makeRequest($url) {
|
336 |
$ch = curl_init();
|
337 |
// Options
|
338 |
-
$connector = Mage::getSingleton('
|
339 |
$opts = $connector::$CURL_OPTS;
|
340 |
$opts[CURLOPT_URL] = $url;
|
341 |
// Exectute url request
|
52 |
*
|
53 |
* @param string $name The name of the marketplace
|
54 |
*/
|
55 |
+
public function set($name) {
|
56 |
+
$this->_helper = Mage::helper('lensync/data');
|
57 |
$this->_loadXml();
|
58 |
$this->name = strtolower($name);
|
59 |
$object = self::$DOM->xpath('/marketplaces/marketplace[@name=\'' . $this->name . '\']');
|
104 |
}
|
105 |
|
106 |
/**
|
107 |
+
* Get the real lengow's state
|
108 |
*
|
109 |
* @param string $name The marketplace state
|
110 |
*
|
115 |
}
|
116 |
|
117 |
/**
|
118 |
+
* Get the marketplace's state
|
119 |
*
|
120 |
* @param string $name The lengow state
|
121 |
*
|
126 |
}
|
127 |
|
128 |
/**
|
129 |
+
* Get the real lengow's payment
|
130 |
*
|
131 |
* @param string $name The payment state
|
132 |
*
|
137 |
}
|
138 |
|
139 |
/**
|
140 |
+
* Get the marketplace's payment
|
141 |
*
|
142 |
* @param string $name The lengow payment
|
143 |
*
|
170 |
}
|
171 |
|
172 |
/**
|
173 |
+
* Call the Lengow WSDL for current marketplace
|
174 |
*
|
175 |
* @param string $action The name of the action
|
176 |
* @param string $id_feed The flux ID
|
245 |
}
|
246 |
$call_url .= '?' . implode('&', $url);
|
247 |
}
|
248 |
+
break;
|
249 |
case 'refuse' :
|
250 |
$call_url = $this->api_url;
|
251 |
$call_url = str_replace('#ID_FLUX#', $id_feed, $call_url);
|
264 |
if(count($gets) > 0)
|
265 |
$call_url .= '?' . implode('&', $gets);
|
266 |
}
|
267 |
+
break;
|
268 |
case 'link' :
|
269 |
$call_url = self::$WSDL_LINK_ORDER;
|
270 |
$call_url = str_replace('#MP#', $this->name, $call_url);
|
272 |
$call_url = str_replace('#ID_FLUX#', $id_feed, $call_url);
|
273 |
$call_url = str_replace('#ORDER_ID#', $order->getData('order_id_lengow'), $call_url);
|
274 |
$call_url = str_replace('#INTERNAL_ORDER_ID#', $order->getData('entity_id'), $call_url);
|
|
|
275 |
}
|
276 |
try {
|
277 |
if($call_url) {
|
278 |
+
if(!Mage::getSingleton('lensync/config')->isDebugMode()) {
|
279 |
$this->_makeRequest($call_url);
|
280 |
}
|
281 |
+
Mage::helper('lensync')->log('WSDL call Lengow : ' . $call_url, $order->getData('order_id_lengow'));
|
282 |
}
|
283 |
} catch(Lengow_Sync_Model_Marketplace_Exception $e) {
|
284 |
+
Mage::helper('lensync')->log('call error WSDL ' . $call_url, $order->getData('order_id_lengow'));
|
285 |
+
Mage::helper('lensync')->log('exception ' . $e->getMessage(), $order->getData('order_id_lengow'));
|
286 |
}
|
287 |
}
|
288 |
|
305 |
return $value;
|
306 |
|
307 |
}
|
308 |
+
|
309 |
// Approximately match
|
310 |
foreach($param['accepted_values'] as $value) {
|
311 |
$value = (string) $value;
|
312 |
+
if(preg_match('`.*?' . $value . '.*?`i', $name))
|
313 |
+
return $value;
|
314 |
+
|
315 |
+
}
|
316 |
+
|
317 |
+
// search by title
|
318 |
+
if (strtoupper($title) == 'GLS S')
|
319 |
+
$title = 'GLS';
|
320 |
+
// Exact match
|
321 |
+
foreach($param['accepted_values'] as $value) {
|
322 |
+
$value = (string) $value;
|
323 |
+
if(preg_match('`' . $value . '`i', trim($title)))
|
324 |
return $value;
|
325 |
|
326 |
+
}
|
327 |
+
|
328 |
+
// Approximately match
|
329 |
+
foreach($param['accepted_values'] as $value) {
|
330 |
+
$value = (string) $value;
|
331 |
+
if(preg_match('`.*?' . $value . '.*?`i', $title))
|
332 |
+
return $value;
|
333 |
+
|
334 |
}
|
335 |
return $param['accepted_values_default'];
|
336 |
}
|
342 |
if(!self::$DOM) {
|
343 |
self::$DOM = simplexml_load_file(Mage::getModuleDir('etc', 'Lengow_Sync') . DS . self::$XML_MARKETPLACES);
|
344 |
}
|
345 |
+
}
|
346 |
|
347 |
/**
|
348 |
* Makes an HTTP request.
|
354 |
protected function _makeRequest($url) {
|
355 |
$ch = curl_init();
|
356 |
// Options
|
357 |
+
$connector = Mage::getSingleton('lensync/connector');
|
358 |
$opts = $connector::$CURL_OPTS;
|
359 |
$opts[CURLOPT_URL] = $url;
|
360 |
// Exectute url request
|
app/code/community/Lengow/Sync/Model/Mysql4/Log.php
CHANGED
@@ -11,6 +11,6 @@
|
|
11 |
class Lengow_Sync_Model_Mysql4_Log extends Mage_Core_Model_Mysql4_Abstract {
|
12 |
|
13 |
protected function _construct() {
|
14 |
-
$this->_init('
|
15 |
}
|
16 |
}
|
11 |
class Lengow_Sync_Model_Mysql4_Log extends Mage_Core_Model_Mysql4_Abstract {
|
12 |
|
13 |
protected function _construct() {
|
14 |
+
$this->_init('lensync/log', 'id');
|
15 |
}
|
16 |
}
|
app/code/community/Lengow/Sync/Model/Mysql4/Log/Collection.php
CHANGED
@@ -11,6 +11,6 @@
|
|
11 |
class Lengow_Sync_Model_Mysql4_Log_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract {
|
12 |
|
13 |
protected function _construct() {
|
14 |
-
$this->_init('
|
15 |
}
|
16 |
}
|
11 |
class Lengow_Sync_Model_Mysql4_Log_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract {
|
12 |
|
13 |
protected function _construct() {
|
14 |
+
$this->_init('lensync/log');
|
15 |
}
|
16 |
}
|
app/code/community/Lengow/Sync/Model/Observer.php
CHANGED
@@ -4,118 +4,179 @@
|
|
4 |
*
|
5 |
* @category Lengow
|
6 |
* @package Lengow_Sync
|
7 |
-
* @author Ludovic Drin <ludovic@lengow.com>
|
8 |
-
* @copyright
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
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 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
$
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
67 |
$result_new += $result['new'];
|
68 |
$result_update += $result['update'];
|
69 |
}
|
|
|
|
|
70 |
}
|
71 |
-
}
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
|
|
|
|
|
|
|
|
|
|
78 |
|
79 |
-
|
|
|
|
|
|
|
|
|
80 |
$shipment = $observer->getEvent()->getShipment();
|
81 |
$order = $shipment->getOrder();
|
82 |
-
if($order->getData('from_lengow') == 1) {
|
83 |
-
$marketplace = Mage::getModel('
|
84 |
$marketplace->set($order->getMarketplaceLengow());
|
85 |
-
if ($order->getState() == Mage::getSingleton('
|
86 |
-
Mage::helper('
|
87 |
$marketplace->wsdl('shipped', $order->getData('feed_id_lengow'), $order, $shipment);
|
88 |
}
|
89 |
}
|
90 |
return $this;
|
91 |
}
|
92 |
|
93 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
94 |
$payment = $observer->getEvent()->getPayment();
|
95 |
$order = $payment->getOrder();
|
96 |
-
if($order->getData('from_lengow') == 1) {
|
97 |
-
$marketplace = Mage::getModel('
|
98 |
$marketplace->set($order->getMarketplaceLengow());
|
99 |
-
if ($order->getState() == Mage::getSingleton('
|
100 |
-
Mage::helper('
|
101 |
$marketplace->wsdl('refuse', $order->getData('feed_id_lengow'), $order);
|
102 |
}
|
103 |
}
|
|
|
104 |
}
|
105 |
|
106 |
-
public function salesOrderSaveCommitAfter(Varien_Event_Observer $observer)
|
|
|
107 |
$order = $observer->getEvent();
|
108 |
-
if($order->getData('from_lengow') == 1) {
|
109 |
$marketplace = Mage::getModel('sync/marketplace');
|
110 |
$marketplace->set($order->getMarketplaceLengow());
|
111 |
-
if ($order->getState() == self::STATE_COMPLETE && $order->getState() == Mage::getSingleton('
|
112 |
-
Mage::helper('
|
113 |
$marketplace->wsdl('shipped', $order->getData('feed_id_lengow'), $order);
|
114 |
}
|
115 |
}
|
|
|
116 |
}
|
117 |
|
118 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
119 |
return trim(str_replace(array("\r\n", ';', '-', '|', ' '), ';', $data), ',');
|
120 |
}
|
121 |
|
4 |
*
|
5 |
* @category Lengow
|
6 |
* @package Lengow_Sync
|
7 |
+
* @author Ludovic Drin <ludovic@lengow.com> & Benjamin Le Nevé <benjamin.le-neve@lengow.com>
|
8 |
+
* @copyright 2015 Lengow SAS
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
class Lengow_Sync_Model_Observer {
|
12 |
|
13 |
+
/**
|
14 |
+
* Imports orders for each store with cron job
|
15 |
+
*/
|
16 |
+
public function import($observer)
|
17 |
+
{
|
18 |
+
if(Mage::getStoreConfig('lensync/performances/active_cron')) {
|
19 |
+
// update marketplace file
|
20 |
+
Mage::helper('lensync/data')->updateMarketplaceXML();
|
21 |
+
// clean old log (20 days)
|
22 |
+
Mage::helper('lensync/data')->cleanLog();
|
23 |
+
// check if import is not already in process
|
24 |
+
if (!Mage::getSingleton('lensync/config')->importCanStart()) {
|
25 |
+
Mage::helper('lensync/data')->log('## Error cron import : import is already started ##');
|
26 |
+
} else {
|
27 |
+
Mage::helper('lensync/data')->log('## Start cron import ##');
|
28 |
+
|
29 |
+
if(Mage::getStoreConfig('lensync/performances/debug'))
|
30 |
+
Mage::helper('lensync/data')->log('WARNING ! Debug mode is activated');
|
31 |
+
|
32 |
+
$result_new = 0;
|
33 |
+
$result_update = 0;
|
34 |
+
$lengow_groups = array();
|
35 |
+
|
36 |
+
$store_collection = Mage::getResourceModel('core/store_collection')
|
37 |
+
->addFieldToFilter('is_active', 1);
|
38 |
+
// Import different view if is different
|
39 |
+
foreach($store_collection as $store) {
|
40 |
+
try {
|
41 |
+
if(!$store->getId())
|
42 |
+
continue;
|
43 |
+
|
44 |
+
Mage::helper('lensync/data')->log('Start cron import in store ' . $store->getName() . ' (' . $store->getId() . ')');
|
45 |
+
|
46 |
+
$lensync_config = Mage::getModel('lensync/config', array('store' => $store));
|
47 |
+
// if store is enabled -> stop import
|
48 |
+
if(!$lensync_config->get('orders/active_store')) {
|
49 |
+
Mage::helper('lensync/data')->log('Stop cron import - Store ' . $store->getName() . '(' . $store->getId() . ') is disabled');
|
50 |
+
continue;
|
51 |
+
}
|
52 |
+
// get login informations
|
53 |
+
$error_import = false;
|
54 |
+
$lentracker_config = Mage::getModel('lentracker/config', array('store' => $store));
|
55 |
+
$id_lengow_customer = $lentracker_config->get('general/login');
|
56 |
+
$id_lengow_group = $this->_cleanGroup($lentracker_config->get('general/group'));
|
57 |
+
$api_token_lengow = $lentracker_config->get('general/api_key');
|
58 |
+
// if ID Customer or group are empty -> stop import for this store
|
59 |
+
if (empty($id_lengow_customer) || !is_numeric($id_lengow_customer) || empty($id_lengow_group)) {
|
60 |
+
$message = 'id customer or id group is empty. Please make sure it is saved in your plugin configuration';
|
61 |
+
Mage::helper('lensync/data')->log('Stop cron import in store ' . $store->getName() . '(' . $store->getId() . ') : ' . $message);
|
62 |
+
$error_import = true;
|
63 |
+
}
|
64 |
+
// check if group was already imported
|
65 |
+
$new_id_lengow_group = false;
|
66 |
+
$id_groups = explode(';', $id_lengow_group);
|
67 |
+
foreach ($id_groups as $id_group) {
|
68 |
+
if (is_numeric($id_group) && !in_array($id_group, $lengow_groups)) {
|
69 |
+
$lengow_groups[] = $id_group;
|
70 |
+
$new_id_lengow_group .= !$new_id_lengow_group ? $id_group : ';'.$id_group;
|
71 |
+
}
|
72 |
+
}
|
73 |
+
|
74 |
+
if (!$error_import && $new_id_lengow_group) {
|
75 |
+
$days = $lensync_config->get('orders/period');
|
76 |
+
$args = array(
|
77 |
+
'dateFrom' => date('Y-m-d', strtotime(date('Y-m-d') . '-' . $days . 'days')),
|
78 |
+
'dateTo' => date('Y-m-d'),
|
79 |
+
'config' => $lensync_config,
|
80 |
+
'idCustomer' => $id_lengow_customer,
|
81 |
+
'idGroup' => $new_id_lengow_group,
|
82 |
+
'apiToken' => $api_token_lengow,
|
83 |
+
);
|
84 |
+
$import = Mage::getModel('lensync/import', $args);
|
85 |
+
$result = $import->exec();
|
86 |
$result_new += $result['new'];
|
87 |
$result_update += $result['update'];
|
88 |
}
|
89 |
+
} catch(Exception $e) {
|
90 |
+
Mage::helper('lensync/data')->log('Error ' . $e->getMessage() . '');
|
91 |
}
|
92 |
+
}
|
93 |
+
if($result_new > 0)
|
94 |
+
Mage::helper('lensync/data')->log(Mage::helper('lensync')->__('%d orders are imported', $result_new));
|
95 |
+
if($result_update > 0)
|
96 |
+
Mage::helper('lensync/data')->log(Mage::helper('lensync')->__('%d orders are updated', $result_update));
|
97 |
+
if($result_new == 0 && $result_update == 0)
|
98 |
+
Mage::helper('lensync/data')->log(Mage::helper('lensync')->__('No order available to import'));
|
99 |
+
Mage::helper('lensync/data')->log('## End cron import ##');
|
100 |
+
Mage::getSingleton('lensync/config')->importSetEnd();
|
101 |
+
}
|
102 |
+
}
|
103 |
+
}
|
104 |
|
105 |
+
/**
|
106 |
+
* Sending a call WSDL for a new order shipment
|
107 |
+
*/
|
108 |
+
public function salesOrderShipmentSaveAfter(Varien_Event_Observer $observer)
|
109 |
+
{
|
110 |
$shipment = $observer->getEvent()->getShipment();
|
111 |
$order = $shipment->getOrder();
|
112 |
+
if($order->getData('from_lengow') == 1) {
|
113 |
+
$marketplace = Mage::getModel('lensync/marketplace');
|
114 |
$marketplace->set($order->getMarketplaceLengow());
|
115 |
+
if ($order->getState() == Mage::getSingleton('lensync/order')->getOrderState('processing')) {
|
116 |
+
Mage::helper('lensync')->log('WSDL : send tracking to ' . $order->getData('marketplace_lengow') . ' - ' . $order->getData('feed_id_lengow'), $order->getData('order_id_lengow'));
|
117 |
$marketplace->wsdl('shipped', $order->getData('feed_id_lengow'), $order, $shipment);
|
118 |
}
|
119 |
}
|
120 |
return $this;
|
121 |
}
|
122 |
|
123 |
+
// /**
|
124 |
+
// * Sending a call WSDL for a new tracking
|
125 |
+
// */
|
126 |
+
// public function salesOrderShipmentTrackSaveAfter(Varien_Event_Observer $observer) {
|
127 |
+
// $track = $observer->getEvent()->getTrack();
|
128 |
+
// $shipment = $track->getShipment();
|
129 |
+
// $order = $shipment->getOrder();
|
130 |
+
// if($order->getData('from_lengow') == 1) {
|
131 |
+
// $marketplace = Mage::getModel('lensync/marketplace');
|
132 |
+
// $marketplace->set($order->getMarketplaceLengow());
|
133 |
+
// if ($order->getState() == Mage::getSingleton('lensync/order')->getOrderState('shipped')) {
|
134 |
+
// Mage::helper('lensync')->log('WSDL : send tracking to ' . $order->getData('marketplace_lengow') . ' - ' . $order->getData('feed_id_lengow'), $order->getData('order_id_lengow'));
|
135 |
+
// $marketplace->wsdl('shipped', $order->getData('feed_id_lengow'), $order, $shipment);
|
136 |
+
// }
|
137 |
+
// }
|
138 |
+
// return $this;
|
139 |
+
// }
|
140 |
+
|
141 |
+
/**
|
142 |
+
* Sending a call for a cancellation of order
|
143 |
+
*/
|
144 |
+
public function salesOrderPaymentCancel(Varien_Event_Observer $observer)
|
145 |
+
{
|
146 |
$payment = $observer->getEvent()->getPayment();
|
147 |
$order = $payment->getOrder();
|
148 |
+
if($order->getData('from_lengow') == 1) {
|
149 |
+
$marketplace = Mage::getModel('lensync/marketplace');
|
150 |
$marketplace->set($order->getMarketplaceLengow());
|
151 |
+
if ($order->getState() == Mage::getSingleton('lensync/order')->getOrderState('processing')) {
|
152 |
+
Mage::helper('lensync')->log('WSDL : send cancel to ' . $order->getData('marketplace_lengow') . ' - ' . $order->getData('feed_id_lengow'), $order->getData('order_id_lengow'));
|
153 |
$marketplace->wsdl('refuse', $order->getData('feed_id_lengow'), $order);
|
154 |
}
|
155 |
}
|
156 |
+
return $this;
|
157 |
}
|
158 |
|
159 |
+
public function salesOrderSaveCommitAfter(Varien_Event_Observer $observer)
|
160 |
+
{
|
161 |
$order = $observer->getEvent();
|
162 |
+
if($order->getData('from_lengow') == 1) {
|
163 |
$marketplace = Mage::getModel('sync/marketplace');
|
164 |
$marketplace->set($order->getMarketplaceLengow());
|
165 |
+
if ($order->getState() == self::STATE_COMPLETE && $order->getState() == Mage::getSingleton('lensync/order')->getOrderState('processing')) {
|
166 |
+
Mage::helper('lensync')->log('WSDL : send cancel to ' . $order->getData('marketplace_lengow') . ' - ' . $order->getData('feed_id_lengow'), $order->getData('order_id_lengow'));
|
167 |
$marketplace->wsdl('shipped', $order->getData('feed_id_lengow'), $order);
|
168 |
}
|
169 |
}
|
170 |
+
return $this;
|
171 |
}
|
172 |
|
173 |
+
/**
|
174 |
+
* Clean group id
|
175 |
+
*
|
176 |
+
* @param string $data
|
177 |
+
*/
|
178 |
+
private function _cleanGroup($data)
|
179 |
+
{
|
180 |
return trim(str_replace(array("\r\n", ';', '-', '|', ' '), ';', $data), ',');
|
181 |
}
|
182 |
|
app/code/community/Lengow/Sync/Model/Order.php
CHANGED
@@ -1,55 +1,52 @@
|
|
1 |
<?php
|
|
|
2 |
/**
|
3 |
* Lengow sync model order
|
4 |
*
|
5 |
* @category Lengow
|
6 |
* @package Lengow_Sync
|
7 |
-
* @author Ludovic Drin <ludovic@lengow.com>
|
8 |
-
* @copyright
|
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 |
|
28 |
-
|
29 |
-
$this->_store = Mage::getModel('core/store')->load($id_store);
|
30 |
-
parent::__construct();
|
31 |
-
}
|
32 |
|
33 |
-
|
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 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
53 |
}
|
54 |
|
55 |
/**
|
@@ -57,271 +54,58 @@ class Lengow_Sync_Model_Order extends Mage_Sales_Model_Order {
|
|
57 |
*
|
58 |
* @return Lengow_Sync_Model_Config
|
59 |
*/
|
60 |
-
public function getConfig()
|
|
|
61 |
if(is_null($this->_config)) {
|
62 |
-
$this->_config = Mage::getSingleton('
|
63 |
}
|
64 |
return $this->_config;
|
65 |
}
|
66 |
|
67 |
/**
|
68 |
-
*
|
69 |
*
|
70 |
-
* @param
|
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)) {
|
86 |
-
return false;
|
87 |
-
}
|
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
|
95 |
-
$shipping_address = $quote->getShippingAddress();
|
96 |
-
$shipping_address->setShouldIgnoreValidation(true);
|
97 |
-
$customerAddressShipping = Mage::getModel('customer/address')->load($customer->getDefaultShipping());
|
98 |
-
$shipping_address->importCustomerAddress($customerAddressShipping)->setSaveInAddressBook(0);
|
99 |
-
$shipping_address->setSameAsBilling(0);
|
100 |
-
// Create Shipment
|
101 |
-
$shipping_cost = (float) $data->order_processing_fee + (float) $data->order_shipping;
|
102 |
-
if(!Mage::getSingleton('tax/config')->shippingPriceIncludesTax($quote->getStore())) {
|
103 |
-
$pseudo_product = new Varien_Object();
|
104 |
-
$pseudo_product->setTaxClassId(Mage::getSingleton('tax/config')->getShippingTaxClass($quote->getStore()));
|
105 |
-
$shipping_cost = Mage::helper('tax')->getPrice(
|
106 |
-
$pseudo_product,
|
107 |
-
$shipping_cost,
|
108 |
-
false,
|
109 |
-
$shipping_address,
|
110 |
-
$billing_address,
|
111 |
-
null,
|
112 |
-
$quote->getStore(),
|
113 |
-
true
|
114 |
-
);
|
115 |
-
}
|
116 |
-
Mage::getSingleton('checkout/session')
|
117 |
-
->setShippingPrice($shipping_cost)
|
118 |
-
->setIsFromlengow(true);
|
119 |
-
$quote->getShippingAddress()
|
120 |
-
->setShippingMethod('lengow_lengow')
|
121 |
-
->setCollectShippingRates(true)
|
122 |
-
->collectShippingRates();
|
123 |
-
// Create Payment
|
124 |
-
$quote->getShippingAddress()
|
125 |
-
->setPaymentMethod('lengow');
|
126 |
-
$payment = $quote->getPayment();
|
127 |
-
$payment->importData(array('method' => 'lengow' ,
|
128 |
-
'marketplace' => (string) $data->marketplace . ' - ' . (string) $data->order_payment->payment_type ));
|
129 |
-
// Create quote
|
130 |
-
$quote->collectTotals();
|
131 |
-
$quote->save();
|
132 |
-
return $quote;
|
133 |
-
}
|
134 |
-
|
135 |
-
/**
|
136 |
-
* Add item to quote
|
137 |
-
*
|
138 |
-
* @param Varien_Object $lengowItem
|
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);
|
148 |
-
$product_field = strtolower((string) $lengow_product->sku['field'][0]);
|
149 |
-
$product = $product_model;
|
150 |
-
/*if($product_model->hasData($product_field))
|
151 |
-
$product = $product_model->loadByAttribute($product_field, $sku);*/
|
152 |
-
$attributeModel = Mage::getSingleton('eav/config')
|
153 |
-
->getAttribute('catalog_product', $product_field);
|
154 |
-
if($attributeModel->getAttributeId()) {
|
155 |
-
$collection = Mage::getResourceModel('catalog/product_collection')
|
156 |
-
->setStoreId($quote->getStore()->getStoreId())
|
157 |
-
->addAttributeToSelect('*')
|
158 |
-
->addAttributeToFilter($product_field, $sku)
|
159 |
-
->setPage(1,1)
|
160 |
-
->getData();
|
161 |
-
if(is_array($collection) && count($collection) > 0) {
|
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 |
-
}
|
191 |
-
}
|
192 |
-
}
|
193 |
-
}
|
194 |
-
}
|
195 |
-
}
|
196 |
-
}
|
197 |
-
$quote_item = Mage::getModel('sync/quote_item');
|
198 |
-
$quote_item
|
199 |
-
->setProduct($product)
|
200 |
-
->setPrice((float) $lengow_product->price_unit)
|
201 |
-
->setCustomPrice((float) $lengow_product->price_unit)
|
202 |
-
->setOriginalCustomPrice((float) $lengow_product->price_unit)
|
203 |
-
->setQuote($quote)
|
204 |
-
->setQty((integer) $lengow_product->quantity)
|
205 |
-
->initPrice((float) $lengow_product->price_unit);
|
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 |
-
* @
|
217 |
-
* @return Mage_Sales_Model_Order
|
218 |
*/
|
219 |
-
public function
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
$grand_total = 0;
|
224 |
-
if (!Mage::helper('tax')->priceIncludesTax($store)) {
|
225 |
-
$grand_total = $quote->getGrandTotal();
|
226 |
-
}
|
227 |
-
$quote->setGrandTotal((float) $data->order_amount);
|
228 |
-
$quote->setBaseGrandTotal((float) $data->order_amount);
|
229 |
-
$additional_data = array('from_lengow' => true ,
|
230 |
-
'marketplace_lengow' => (string) $data->marketplace ,
|
231 |
-
'fees_lengow' => (float) $data->order_commission ,
|
232 |
-
'order_id_lengow' => (string) $data->order_id ,
|
233 |
-
'feed_id_lengow' => (integer) $data->idFlux ,
|
234 |
-
'xml_node_lengow' => Mage::helper('Core')->jsonEncode($data) ,
|
235 |
-
'message_lengow' => (string) $data->order_comments ,
|
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) {
|
260 |
-
$order->setBaseShippingInclTax((float) $data->order_shipping);
|
261 |
-
}
|
262 |
-
if($grand_total != (float) $data->order_amount) {
|
263 |
-
$order->setGrandTotal((float) $data->order_amount);
|
264 |
-
$order->setBaseGrandTotal((float) $data->order_amount);
|
265 |
-
$diff = (((float) $data->order_amount) - $grand_total);
|
266 |
-
$order->setTaxAmount($order->getTaxAmount() + $diff);
|
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());
|
278 |
-
$product->setBaseTaxInvoiced($product->getTaxAmount());
|
279 |
-
$product->setBasePriceInclTax($product->getPriceInclTax());
|
280 |
-
$product->setBaseRowTotalInclTax($product->getRowTotalInclTax());
|
281 |
-
$product->save();
|
282 |
-
}
|
283 |
-
$order->setBaseTaxAmount($order->getTaxAmount());
|
284 |
-
$order->setBaseTaxInvoiced($order->getTaxAmount());
|
285 |
-
$order->setBaseTotalInvoiced($order->getTotalPaid());
|
286 |
-
$order->setBaseTotalPaid($order->getTotalPaid());
|
287 |
-
$order->setBaseGrandTotal($order->getTotalPaid());
|
288 |
-
$order->setBaseSubtotalInclTax($order->getSubtotalInclTax());
|
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 |
-
*
|
301 |
*/
|
302 |
-
public function toInvoice(
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
}
|
314 |
}
|
315 |
-
return $order;
|
316 |
}
|
317 |
|
318 |
/**
|
319 |
* Ship order
|
320 |
*
|
321 |
-
* @param Mage_Sales_Model_Order
|
322 |
-
* @
|
|
|
|
|
|
|
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) {
|
@@ -343,42 +127,38 @@ class Lengow_Sync_Model_Order extends Mage_Sales_Model_Order {
|
|
343 |
}
|
344 |
try {
|
345 |
$shipment->save();
|
346 |
-
$track
|
|
|
347 |
} catch (Mage_Core_Exception $e) {
|
348 |
-
Mage::helper('
|
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 |
*
|
363 |
-
* @param Mage_Sales_Model_Order
|
364 |
-
*
|
365 |
*/
|
366 |
-
public function toCancel(
|
367 |
-
|
|
|
368 |
$order->cancel();
|
369 |
$this->_isCanceled = true;
|
370 |
}
|
371 |
-
|
372 |
-
return $this;
|
373 |
}
|
374 |
|
375 |
/**
|
376 |
* Refund order
|
377 |
*
|
378 |
* @param Mage_Sales_Model_Order
|
|
|
379 |
* @return Lengow_Sync_Model_Order
|
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) {
|
@@ -418,9 +198,11 @@ class Lengow_Sync_Model_Order extends Mage_Sales_Model_Order {
|
|
418 |
* Retrieve country id based on country name
|
419 |
*
|
420 |
* @param string $country_name
|
|
|
421 |
* @return string
|
422 |
*/
|
423 |
-
protected function _getCountryId($country_name)
|
|
|
424 |
if(is_null($this->_countryCollection)) {
|
425 |
$this->_countryCollection = Mage::getResourceModel('directory/country_collection')->toOptionArray();
|
426 |
}
|
@@ -431,4 +213,74 @@ class Lengow_Sync_Model_Order extends Mage_Sales_Model_Order {
|
|
431 |
}
|
432 |
return $country_name;
|
433 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
434 |
}
|
1 |
<?php
|
2 |
+
|
3 |
/**
|
4 |
* Lengow sync model order
|
5 |
*
|
6 |
* @category Lengow
|
7 |
* @package Lengow_Sync
|
8 |
+
* @author Ludovic Drin <ludovic@lengow.com> & Benjamin Le Nevé <benjamin.le-neve@lengow.com>
|
9 |
+
* @copyright 2015 Lengow SAS
|
10 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
11 |
*/
|
12 |
class Lengow_Sync_Model_Order extends Mage_Sales_Model_Order {
|
13 |
|
14 |
protected $_countryCollection;
|
15 |
+
|
16 |
protected $_config;
|
17 |
|
18 |
protected $_canInvoice = false;
|
19 |
+
|
20 |
protected $_canShip = false;
|
21 |
+
|
22 |
protected $_canCancel = false;
|
23 |
+
|
24 |
protected $_canRefund = false;
|
25 |
|
26 |
protected $_hasInvoices = false;
|
|
|
|
|
|
|
27 |
|
28 |
+
protected $_hasShipments = false;
|
29 |
|
30 |
+
protected $_isCanceled = false;
|
|
|
|
|
|
|
31 |
|
32 |
+
protected $_isRefunded = false;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
33 |
|
34 |
+
/**
|
35 |
+
* is Already Imported
|
36 |
+
*
|
37 |
+
* @param integer $idLengow Lengow order id
|
38 |
+
* @param integer $idFlux Id flux Lengow
|
39 |
+
*
|
40 |
+
* @return mixed
|
41 |
+
*/
|
42 |
+
public function isAlreadyImported($idLengow, $idFlux)
|
43 |
+
{
|
44 |
+
$order_collection = $this->getCollection()
|
45 |
+
->addAttributeToFilter('order_id_lengow', $idLengow)
|
46 |
+
->addAttributeToFilter('feed_id_lengow', $idFlux)
|
47 |
+
->addAttributeToSelect('entity_id')
|
48 |
+
->getData();
|
49 |
+
return isset($order_collection[0]['entity_id']) ? $order_collection[0]['entity_id'] : false;
|
50 |
}
|
51 |
|
52 |
/**
|
54 |
*
|
55 |
* @return Lengow_Sync_Model_Config
|
56 |
*/
|
57 |
+
public function getConfig()
|
58 |
+
{
|
59 |
if(is_null($this->_config)) {
|
60 |
+
$this->_config = Mage::getSingleton('lensync/config');
|
61 |
}
|
62 |
return $this->_config;
|
63 |
}
|
64 |
|
65 |
/**
|
66 |
+
* Set config
|
67 |
*
|
68 |
+
* @param Lengow_Sync_Model_Config $config
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
69 |
*
|
70 |
+
* @return Lengow_Sync_Model_Order
|
|
|
71 |
*/
|
72 |
+
public function setConfig($config)
|
73 |
+
{
|
74 |
+
$this->_config = $config;
|
75 |
+
return $this;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
76 |
}
|
77 |
|
78 |
/**
|
79 |
* Create invoice
|
80 |
*
|
81 |
+
* @param Mage_Sales_Model_Order $order
|
82 |
+
*
|
83 |
*/
|
84 |
+
public function toInvoice($order)
|
85 |
+
{
|
86 |
+
$invoice = Mage::getModel('sales/service_order', $order)->prepareInvoice();
|
87 |
+
if($invoice) {
|
88 |
+
$invoice->register();
|
89 |
+
$invoice->getOrder()->setIsInProcess(true);
|
90 |
+
$transactionSave = Mage::getModel('core/resource_transaction')
|
91 |
+
->addObject($invoice)
|
92 |
+
->addObject($invoice->getOrder());
|
93 |
+
$transactionSave->save();
|
94 |
+
$order->_hasInvoices = true;
|
|
|
95 |
}
|
|
|
96 |
}
|
97 |
|
98 |
/**
|
99 |
* Ship order
|
100 |
*
|
101 |
+
* @param Mage_Sales_Model_Order $order
|
102 |
+
* @param string $carrier
|
103 |
+
* @param string $title
|
104 |
+
* @param string $tracking
|
105 |
+
*
|
106 |
*/
|
107 |
+
public function toShip($order, $carrier = null, $title = '', $tracking = '')
|
108 |
+
{
|
109 |
if($order->canShip()) {
|
110 |
$shipment = Mage::getModel('sales/service_order', $order)->prepareShipment();
|
111 |
if($shipment) {
|
127 |
}
|
128 |
try {
|
129 |
$shipment->save();
|
130 |
+
if(isset($track))
|
131 |
+
$track->save();
|
132 |
} catch (Mage_Core_Exception $e) {
|
133 |
+
Mage::helper('lensync/data')->log('ERROR create shipment : ' . $e->getMessage(), $order->getOrderIdLengow());
|
134 |
}
|
|
|
|
|
|
|
|
|
|
|
135 |
}
|
136 |
}
|
|
|
137 |
}
|
138 |
|
139 |
/**
|
140 |
* Cancel order
|
141 |
*
|
142 |
+
* @param Mage_Sales_Model_Order $order
|
143 |
+
*
|
144 |
*/
|
145 |
+
public function toCancel($order)
|
146 |
+
{
|
147 |
+
if($this->_canCancel && $order->canCancel()) {
|
148 |
$order->cancel();
|
149 |
$this->_isCanceled = true;
|
150 |
}
|
|
|
|
|
151 |
}
|
152 |
|
153 |
/**
|
154 |
* Refund order
|
155 |
*
|
156 |
* @param Mage_Sales_Model_Order
|
157 |
+
*
|
158 |
* @return Lengow_Sync_Model_Order
|
159 |
*/
|
160 |
+
public function toRefund(Lengow_Sync_Model_Order $order)
|
161 |
+
{
|
162 |
if($this->_canRefund && $order->canCreditmemo()) {
|
163 |
$invoice_id = $order->getInvoiceCollection()->getFirstItem()->getId();
|
164 |
if(!$invoice_id) {
|
198 |
* Retrieve country id based on country name
|
199 |
*
|
200 |
* @param string $country_name
|
201 |
+
*
|
202 |
* @return string
|
203 |
*/
|
204 |
+
protected function _getCountryId($country_name)
|
205 |
+
{
|
206 |
if(is_null($this->_countryCollection)) {
|
207 |
$this->_countryCollection = Mage::getResourceModel('directory/country_collection')->toOptionArray();
|
208 |
}
|
213 |
}
|
214 |
return $country_name;
|
215 |
}
|
216 |
+
|
217 |
+
/**
|
218 |
+
* Get Magento equivalent to lengow order state
|
219 |
+
*
|
220 |
+
* @param string $lengow_status lengow state
|
221 |
+
*
|
222 |
+
* @return string
|
223 |
+
*/
|
224 |
+
public function getOrderState($lengow_status)
|
225 |
+
{
|
226 |
+
switch ($lengow_status) {
|
227 |
+
case 'new':
|
228 |
+
return Mage_Sales_Model_Order::STATE_NEW;
|
229 |
+
break;
|
230 |
+
case 'processing':
|
231 |
+
return Mage_Sales_Model_Order::STATE_PROCESSING;
|
232 |
+
break;
|
233 |
+
case 'shipped':
|
234 |
+
return Mage_Sales_Model_Order::STATE_COMPLETE;
|
235 |
+
break;
|
236 |
+
case 'canceled':
|
237 |
+
return Mage_Sales_Model_Order::STATE_CANCELED;
|
238 |
+
break;
|
239 |
+
}
|
240 |
+
}
|
241 |
+
|
242 |
+
/**
|
243 |
+
* Update order state to marketplace state
|
244 |
+
*
|
245 |
+
* @param Mage_Sales_Model_Order $order Magento Order
|
246 |
+
* @param string $lengow_status marketplace status
|
247 |
+
* @param string $order_data order data
|
248 |
+
*
|
249 |
+
* @return bool true if order has been updated
|
250 |
+
*/
|
251 |
+
public function updateState($order, $lengow_status, SimpleXMLelement $order_data)
|
252 |
+
{
|
253 |
+
$helper = Mage::helper('lensync/data');
|
254 |
+
// Update order's status only if in process, shipped, or canceled
|
255 |
+
if ($order->getState() != self::getOrderState($lengow_status) && $order->getData('from_lengow') == 1) {
|
256 |
+
if ($order->getState() == self::getOrderState('new') && $lengow_status == 'processing') {
|
257 |
+
// generate invoice
|
258 |
+
$this->toInvoice($order);
|
259 |
+
$helper->log('state updated to "processing" (Order ' . $order->getIncrementId() . ')', $order->getOrderIdLengow());
|
260 |
+
return true;
|
261 |
+
} elseif (($order->getState() == self::getOrderState('processing') || $order->getState() == self::getOrderState('new'))
|
262 |
+
&& $lengow_status == 'shipped') {
|
263 |
+
// if order is new -> generate invoice
|
264 |
+
if ($order->getState() == self::getOrderState('new'))
|
265 |
+
$this->toInvoice($order);
|
266 |
+
$this->toShip(
|
267 |
+
$order,
|
268 |
+
(string) $order_data->tracking_informations->tracking_carrier,
|
269 |
+
(string) $order_data->tracking_informations->tracking_method,
|
270 |
+
(string) $order_data->tracking_informations->tracking_number
|
271 |
+
);
|
272 |
+
$helper->log('state updated to "shipped" (Order ' . $order->getIncrementId() . ')', $order->getOrderIdLengow());
|
273 |
+
return true;
|
274 |
+
} else if (($order->getState() == self::getOrderState('processing') || $order->getState() == self::getOrderState('shipped'))
|
275 |
+
&& $lengow_status == 'canceled') {
|
276 |
+
$this->toCancel($order);
|
277 |
+
if ($this->_isCanceled) {
|
278 |
+
$helper->log('state update to "canceled" (Order ' . $order->getIncrementId() . ')', $order->getOrderIdLengow());
|
279 |
+
return true;
|
280 |
+
}
|
281 |
+
return false;
|
282 |
+
}
|
283 |
+
}
|
284 |
+
return false;
|
285 |
+
}
|
286 |
}
|
app/code/community/Lengow/Sync/Model/Payment/Method/Lengow.php
CHANGED
@@ -10,8 +10,8 @@
|
|
10 |
*/
|
11 |
class Lengow_Sync_Model_Payment_Method_Lengow extends Mage_Payment_Model_Method_Abstract {
|
12 |
|
13 |
-
|
14 |
-
protected $_infoBlockType = '
|
15 |
|
16 |
/**
|
17 |
* Assign data to info model instance
|
@@ -27,14 +27,12 @@ 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 |
-
|
37 |
-
|
38 |
-
return false;
|
39 |
-
}
|
40 |
}
|
10 |
*/
|
11 |
class Lengow_Sync_Model_Payment_Method_Lengow extends Mage_Payment_Model_Method_Abstract {
|
12 |
|
13 |
+
protected $_code = 'lengow';
|
14 |
+
protected $_infoBlockType = 'lensync/payment_info_purchaseorder';
|
15 |
|
16 |
/**
|
17 |
* Assign data to info model instance
|
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 |
+
return Mage::getSingleton('core/session')->getIsFromlengow();
|
37 |
+
}
|
|
|
|
|
38 |
}
|
app/code/community/Lengow/Sync/Model/Quote.php
ADDED
@@ -0,0 +1,147 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Lengow sync model quote
|
5 |
+
*
|
6 |
+
* @category Lengow
|
7 |
+
* @package Lengow_Sync
|
8 |
+
* @author Benjamin Le Nevé <benjamin.le-neve@lengow.com>
|
9 |
+
* @copyright 2015 Lengow SAS
|
10 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
11 |
+
*/
|
12 |
+
class Lengow_Sync_Model_Quote extends Mage_Sales_Model_Quote {
|
13 |
+
|
14 |
+
protected $_rowTotalLengow = array();
|
15 |
+
|
16 |
+
/**
|
17 |
+
* Add products from API to current quote
|
18 |
+
*
|
19 |
+
* @param SimpleXMLelement $products product list to be added
|
20 |
+
* @param Lengow_Sync_Model_Marketplace $marketplace
|
21 |
+
* @param String $id_lengow_order
|
22 |
+
* @param boolean $priceIncludeTax
|
23 |
+
*
|
24 |
+
* @return Lengow_Sync_Model_Quote
|
25 |
+
*/
|
26 |
+
public function addLengowProducts(SimpleXMLelement $products, Lengow_Sync_Model_Marketplace $marketplace, $id_lengow_order, $priceIncludeTax = true)
|
27 |
+
{
|
28 |
+
$order_lineid = '';
|
29 |
+
$first = true;
|
30 |
+
foreach ($products as $product_line) {
|
31 |
+
if ($first || empty($order_lineid) || $order_lineid != (string) $product_line->order_lineid) {
|
32 |
+
$first = false;
|
33 |
+
$order_lineid = (string) $product_line->order_lineid;
|
34 |
+
// check whether the product is canceled
|
35 |
+
if (!empty($product_line->status)) {
|
36 |
+
if ($marketplace->getStateLengow((string) $product_line->status) == 'canceled') {
|
37 |
+
Mage::helper('lensync')->log('product ' . $product_line->sku . ' could not be added to cart - status: ' . $marketplace->getStateLengow((string) $product_line->status), $id_lengow_order);
|
38 |
+
continue;
|
39 |
+
}
|
40 |
+
}
|
41 |
+
$product = $this->_findProduct($product_line);
|
42 |
+
if ($product) {
|
43 |
+
// get unit price with tax
|
44 |
+
$price = (float) $product_line->price_unit;
|
45 |
+
// save total row Lengow for each product
|
46 |
+
$this->_rowTotalLengow[(string) $product->getId()] = $price * $product_line->quantity;
|
47 |
+
// if price not include tax -> get shipping cost without tax
|
48 |
+
if (!$priceIncludeTax) {
|
49 |
+
$basedOn = Mage::getStoreConfig(Mage_Tax_Model_Config::CONFIG_XML_PATH_BASED_ON, $this->getStore());
|
50 |
+
$country_id = ($basedOn == 'shipping') ? $this->getShippingAddress()->getCountryId() : $this->getBillingAddress()->getCountryId();
|
51 |
+
$taxCalculator = Mage::getModel('tax/calculation');
|
52 |
+
$taxRequest = new Varien_Object();
|
53 |
+
$taxRequest->setCountryId($country_id)
|
54 |
+
->setCustomerClassId($this->getCustomer()->getTaxClassId())
|
55 |
+
->setProductClassId($product->getTaxClassId());
|
56 |
+
$tax_rate = $taxCalculator->getRate($taxRequest);
|
57 |
+
$tax = (float) $taxCalculator->calcTaxAmount($price, $tax_rate, true);
|
58 |
+
$price = $price - $tax;
|
59 |
+
}
|
60 |
+
$product->setPrice($price);
|
61 |
+
$product->setFinalPrice($price);
|
62 |
+
//option "import with product's title from Lengow"
|
63 |
+
if (Mage::getStoreConfig('lensync/orders/title', $this->getStore()))
|
64 |
+
$product->setName((string) $product_line->title);
|
65 |
+
// add item to quote
|
66 |
+
$quote_item = Mage::getModel('sales/quote_item')
|
67 |
+
->setProduct($product)
|
68 |
+
->setQty((int) $product_line->quantity);
|
69 |
+
$this->addItem($quote_item);
|
70 |
+
}
|
71 |
+
}
|
72 |
+
}
|
73 |
+
return $this;
|
74 |
+
}
|
75 |
+
|
76 |
+
/**
|
77 |
+
* Find product in Magento based on API data
|
78 |
+
*
|
79 |
+
* @param SimpleXMLelement $lengow_product product data
|
80 |
+
*
|
81 |
+
* @return Mage_Catalog_Model_Product product found to be added
|
82 |
+
*/
|
83 |
+
protected function _findProduct(SimpleXMLelement $lengow_product)
|
84 |
+
{
|
85 |
+
$api_fields = array(
|
86 |
+
'sku',
|
87 |
+
'idLengow',
|
88 |
+
'idMP',
|
89 |
+
'ean',
|
90 |
+
);
|
91 |
+
$product_field = strtolower((string) $lengow_product->sku['field'][0]);
|
92 |
+
$product_model = Mage::getModel('catalog/product');
|
93 |
+
// search product foreach sku
|
94 |
+
$i = 0;
|
95 |
+
$found = false;
|
96 |
+
$count = count($api_fields);
|
97 |
+
while(!$found && $i < $count) {
|
98 |
+
// search with sku type field first
|
99 |
+
$sku = (string) $lengow_product->{$api_fields[$i]};
|
100 |
+
$i++;
|
101 |
+
if (empty($sku))
|
102 |
+
continue;
|
103 |
+
// search by field if exists
|
104 |
+
$attributeModel = Mage::getSingleton('eav/config')->getAttribute('catalog_product', $product_field);
|
105 |
+
if ($attributeModel->getAttributeId()) {
|
106 |
+
$collection = Mage::getResourceModel('catalog/product_collection')
|
107 |
+
->setStoreId($this->getStore()->getStoreId())
|
108 |
+
->addAttributeToSelect($product_field)
|
109 |
+
->addAttributeToFilter($product_field, $sku)
|
110 |
+
->setPage(1,1)
|
111 |
+
->getData();
|
112 |
+
if(is_array($collection) && count($collection) > 0) {
|
113 |
+
$product = $product_model->load($collection[0]['entity_id']);
|
114 |
+
}
|
115 |
+
}
|
116 |
+
// search by id or sku
|
117 |
+
if (!$product || !$product->getId()) {
|
118 |
+
if (is_integer($sku) && $sku != 0) {
|
119 |
+
$product = $product_model->load((integer) $sku);
|
120 |
+
} else {
|
121 |
+
$sku = str_replace('\_', '_', $sku);
|
122 |
+
$product = $product_model->load($product_model->getIdBySku($sku));
|
123 |
+
}
|
124 |
+
}
|
125 |
+
if ($product && $product->getId())
|
126 |
+
$found = true;
|
127 |
+
}
|
128 |
+
if (!$found)
|
129 |
+
throw new Lengow_Sync_Model_Quote_Exception('product ' . (string) $lengow_product->sku . ' could not be found.');
|
130 |
+
elseif ($product->getTypeId() == Mage_Catalog_Model_Product_Type::TYPE_CONFIGURABLE)
|
131 |
+
throw new Lengow_Sync_Model_Quote_Exception('product ' . (string) $lengow_product->sku . ' is a parent product.');
|
132 |
+
return $product;
|
133 |
+
}
|
134 |
+
|
135 |
+
/**
|
136 |
+
* Get row Total from Lengow
|
137 |
+
*
|
138 |
+
* @param string $product_id product id
|
139 |
+
*
|
140 |
+
* @return string
|
141 |
+
*/
|
142 |
+
public function getRowTotalLengow($product_id)
|
143 |
+
{
|
144 |
+
return $this->_rowTotalLengow[$product_id];
|
145 |
+
}
|
146 |
+
|
147 |
+
}
|
app/code/community/Lengow/Sync/Model/Quote/Exception.php
ADDED
@@ -0,0 +1,54 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Lengow_Sync_Model_Quote_Exception extends Exception
|
4 |
+
{
|
5 |
+
/**
|
6 |
+
* The result from the WSDL server that represents the exception information.
|
7 |
+
*/
|
8 |
+
protected $result;
|
9 |
+
|
10 |
+
/**
|
11 |
+
* Make a new WSDL Exception with the given result.
|
12 |
+
*
|
13 |
+
* @param array $result The error result
|
14 |
+
*/
|
15 |
+
public function __construct($result, $noerror) {
|
16 |
+
$this->result = $result;
|
17 |
+
if(is_array($result))
|
18 |
+
$msg = $result['message'];
|
19 |
+
else
|
20 |
+
$msg = $result;
|
21 |
+
parent::__construct($msg, $noerror);
|
22 |
+
}
|
23 |
+
|
24 |
+
/**
|
25 |
+
* Return the associated result object returned by the WSDL server.
|
26 |
+
*
|
27 |
+
* @return array The result from the WSDL server
|
28 |
+
*/
|
29 |
+
public function getResult() {
|
30 |
+
return $this->result;
|
31 |
+
}
|
32 |
+
|
33 |
+
/**
|
34 |
+
* Returns the associated type for the error.
|
35 |
+
*
|
36 |
+
* @return string
|
37 |
+
*/
|
38 |
+
public function getType() {
|
39 |
+
if(isset($this->result['type']))
|
40 |
+
return $this->result['type'];
|
41 |
+
return 'Lengow_Sync_Model_Quote_Exception';
|
42 |
+
}
|
43 |
+
|
44 |
+
/**
|
45 |
+
* To make debugging easier.
|
46 |
+
*
|
47 |
+
* @return string The string representation of the error
|
48 |
+
*/
|
49 |
+
public function __toString() {
|
50 |
+
if(isset($this->result['message']))
|
51 |
+
return $this->result['message'];
|
52 |
+
return $this->message;
|
53 |
+
}
|
54 |
+
}
|
app/code/community/Lengow/Sync/Model/Shipping/Carrier/Lengow.php
CHANGED
@@ -5,7 +5,7 @@
|
|
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_Shipping_Carrier_Lengow extends Mage_Shipping_Model_Carrier_Abstract implements Mage_Shipping_Model_Carrier_Interface {
|
@@ -30,11 +30,11 @@ class Lengow_Sync_Model_Shipping_Carrier_Lengow extends Mage_Shipping_Model_Carr
|
|
30 |
$method->setMethod('lengow');
|
31 |
$method->setMethodTitle($this->getConfigData('name'));
|
32 |
$method->setPrice($this->getSession()->getShippingPrice());
|
33 |
-
$method->setCost($this->getSession()->getShippingPrice());
|
34 |
-
$result->append($method);
|
35 |
return $result;
|
36 |
}
|
37 |
-
|
38 |
/**
|
39 |
* Processing additional validation to check is carrier applicable.
|
40 |
*
|
@@ -43,18 +43,16 @@ class Lengow_Sync_Model_Shipping_Carrier_Lengow extends Mage_Shipping_Model_Carr
|
|
43 |
*/
|
44 |
public function proccessAdditionalValidation(Mage_Shipping_Model_Rate_Request $request) {
|
45 |
if(Mage::getVersion() == '1.4.1.0')
|
46 |
-
return $this->isActive();
|
47 |
return parent::proccessAdditionalValidation($request);
|
48 |
}
|
49 |
-
|
50 |
public function getSession() {
|
51 |
return Mage::getSingleton('checkout/session');
|
52 |
}
|
53 |
-
|
54 |
public function isActive() {
|
55 |
-
|
56 |
-
return true;
|
57 |
-
return false;
|
58 |
}
|
59 |
|
60 |
public function getAllowedMethods() {
|
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_Shipping_Carrier_Lengow extends Mage_Shipping_Model_Carrier_Abstract implements Mage_Shipping_Model_Carrier_Interface {
|
30 |
$method->setMethod('lengow');
|
31 |
$method->setMethodTitle($this->getConfigData('name'));
|
32 |
$method->setPrice($this->getSession()->getShippingPrice());
|
33 |
+
$method->setCost($this->getSession()->getShippingPrice());
|
34 |
+
$result->append($method);
|
35 |
return $result;
|
36 |
}
|
37 |
+
|
38 |
/**
|
39 |
* Processing additional validation to check is carrier applicable.
|
40 |
*
|
43 |
*/
|
44 |
public function proccessAdditionalValidation(Mage_Shipping_Model_Rate_Request $request) {
|
45 |
if(Mage::getVersion() == '1.4.1.0')
|
46 |
+
return $this->isActive();
|
47 |
return parent::proccessAdditionalValidation($request);
|
48 |
}
|
49 |
+
|
50 |
public function getSession() {
|
51 |
return Mage::getSingleton('checkout/session');
|
52 |
}
|
53 |
+
|
54 |
public function isActive() {
|
55 |
+
return Mage::getSingleton('core/session')->getIsFromlengow();
|
|
|
|
|
56 |
}
|
57 |
|
58 |
public function getAllowedMethods() {
|
app/code/community/Lengow/Sync/Model/System/Config/Source/Shipping/Carrier.php
ADDED
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
|
4 |
+
class Lengow_Sync_Model_System_Config_Source_Shipping_Carrier extends Mage_Core_Model_Config_Data
|
5 |
+
{
|
6 |
+
public function toOptionArray() {
|
7 |
+
$carriers = Mage::getModel('shipping/config')->getActiveCarriers();
|
8 |
+
$select = array();
|
9 |
+
foreach ($carriers as $code => $model) {
|
10 |
+
$title = Mage::getStoreConfig('carriers/'.$code.'/title');
|
11 |
+
$select[$code] = empty($title) ? $code : $title;
|
12 |
+
}
|
13 |
+
return $select;
|
14 |
+
}
|
15 |
+
|
16 |
+
public function toSelectArray() {
|
17 |
+
$carriers = Mage::getModel('shipping/config')->getActiveCarriers();
|
18 |
+
$select = array();
|
19 |
+
foreach ($carriers as $code => $model) {
|
20 |
+
$select[$code] = Mage::getStoreConfig('carriers/'.$code.'/title');;
|
21 |
+
}
|
22 |
+
return $select;
|
23 |
+
}
|
24 |
+
}
|
app/code/community/Lengow/Sync/Model/System/Config/Source/Shipping/Method.php
ADDED
@@ -0,0 +1,52 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
|
4 |
+
class Lengow_Sync_Model_System_Config_Source_Shipping_Method extends Mage_Core_Model_Config_Data
|
5 |
+
{
|
6 |
+
public function toOptionArray() {
|
7 |
+
$store = Mage::getModel('core/store')
|
8 |
+
->load(Mage::getSingleton('adminhtml/config_data')->getStore());
|
9 |
+
|
10 |
+
$carrier_code = Mage::getSingleton('lensync/config')
|
11 |
+
->setStore($store)
|
12 |
+
->get('orders/default_carrier');
|
13 |
+
if (!$carrier_code)
|
14 |
+
return array();
|
15 |
+
$carrier = Mage::getModel('shipping/shipping')
|
16 |
+
->getCarrierByCode($carrier_code, $store->getId());
|
17 |
+
$methods = $carrier->getAllowedMethods();
|
18 |
+
if (count($methods) == 0 )
|
19 |
+
return array();
|
20 |
+
|
21 |
+
$select = array();
|
22 |
+
$index = 0;
|
23 |
+
foreach ($methods as $method) {
|
24 |
+
|
25 |
+
$select[$carrier_code.'--'.Mage::helper('lensync/data')->cleanMethod($method)] = $method;
|
26 |
+
}
|
27 |
+
return $select;
|
28 |
+
}
|
29 |
+
|
30 |
+
public function toSelectArray() {
|
31 |
+
$store = Mage::getModel('core/store')
|
32 |
+
->load(Mage::getSingleton('adminhtml/config_data')->getStore());
|
33 |
+
|
34 |
+
$carrier_code = Mage::getSingleton('lensync/config')
|
35 |
+
->setStore($store)
|
36 |
+
->get('orders/default_carrier');
|
37 |
+
if (!$carrier_code)
|
38 |
+
return array();
|
39 |
+
$carrier = Mage::getModel('shipping/shipping')
|
40 |
+
->getCarrierByCode($carrier_code, $store->getId());
|
41 |
+
$methods = $carrier->getAllowedMethods();
|
42 |
+
if (count($methods) == 0 )
|
43 |
+
return array();
|
44 |
+
|
45 |
+
$select = array();
|
46 |
+
$index = 0;
|
47 |
+
foreach ($methods as $method) {
|
48 |
+
$select[$index] = $method;
|
49 |
+
}
|
50 |
+
return $select;
|
51 |
+
}
|
52 |
+
}
|
app/code/community/Lengow/Sync/controllers/Adminhtml/Lengow/LogController.php
CHANGED
@@ -13,7 +13,7 @@ class Lengow_Sync_Adminhtml_Lengow_LogController extends Mage_Adminhtml_Controll
|
|
13 |
protected function _initAction() {
|
14 |
$this->loadLayout()
|
15 |
->_setActiveMenu('lengow/log')
|
16 |
-
->_addBreadcrumb(Mage::helper('
|
17 |
return $this;
|
18 |
}
|
19 |
|
@@ -24,16 +24,16 @@ class Lengow_Sync_Adminhtml_Lengow_LogController extends Mage_Adminhtml_Controll
|
|
24 |
}
|
25 |
|
26 |
public function deleteAction() {
|
27 |
-
$collection = Mage::getModel('
|
28 |
foreach($collection as $log)
|
29 |
$log->delete();
|
30 |
-
$this->_getSession()->addSuccess(Mage::helper('
|
31 |
$this->_redirect('*/*/index');
|
32 |
|
33 |
}
|
34 |
|
35 |
public function gridAction() {
|
36 |
-
$this->getResponse()->setBody($this->getLayout()->createBlock('
|
37 |
return $this;
|
38 |
}
|
39 |
|
13 |
protected function _initAction() {
|
14 |
$this->loadLayout()
|
15 |
->_setActiveMenu('lengow/log')
|
16 |
+
->_addBreadcrumb(Mage::helper('lensync')->__('Lengow orders'), Mage::helper('lensync')->__('Lengow orders'));
|
17 |
return $this;
|
18 |
}
|
19 |
|
24 |
}
|
25 |
|
26 |
public function deleteAction() {
|
27 |
+
$collection = Mage::getModel('lensync/log')->getCollection();
|
28 |
foreach($collection as $log)
|
29 |
$log->delete();
|
30 |
+
$this->_getSession()->addSuccess(Mage::helper('lensync')->__('Log is empty'));
|
31 |
$this->_redirect('*/*/index');
|
32 |
|
33 |
}
|
34 |
|
35 |
public function gridAction() {
|
36 |
+
$this->getResponse()->setBody($this->getLayout()->createBlock('lensync/adminhtml_log_grid')->toHtml());
|
37 |
return $this;
|
38 |
}
|
39 |
|
app/code/community/Lengow/Sync/controllers/Adminhtml/Lengow/OrderController.php
CHANGED
@@ -4,133 +4,185 @@
|
|
4 |
*
|
5 |
* @category Lengow
|
6 |
* @package Lengow_Sync
|
7 |
-
* @author Ludovic Drin <ludovic@lengow.com>
|
8 |
-
* @copyright
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
class Lengow_Sync_Adminhtml_Lengow_OrderController extends Mage_Adminhtml_Controller_Action {
|
12 |
|
13 |
-
|
|
|
|
|
|
|
|
|
14 |
$this->loadLayout()
|
15 |
->_setActiveMenu('lengow/order')
|
16 |
-
->_addBreadcrumb(Mage::helper('
|
17 |
return $this;
|
18 |
}
|
19 |
-
|
20 |
-
|
|
|
|
|
21 |
public function indexAction() {
|
22 |
$this->_initAction()
|
23 |
-
->renderLayout();
|
24 |
return $this;
|
25 |
}
|
26 |
-
|
|
|
|
|
|
|
27 |
public function gridAction() {
|
28 |
$this->getResponse()->setBody(
|
29 |
-
$this->getLayout()->createBlock('
|
30 |
);
|
31 |
return $this;
|
32 |
}
|
33 |
-
|
34 |
/**
|
35 |
* Export order grid to CSV format
|
36 |
*/
|
37 |
-
public function exportCsvAction()
|
|
|
38 |
$filename = 'orders_lengow.csv';
|
39 |
-
$grid = $this->getLayout()->createBlock('
|
40 |
$this->_prepareDownloadResponse($filename, $grid->getCsvFile());
|
41 |
}
|
42 |
|
43 |
/**
|
44 |
* Export order grid to Excel XML format
|
45 |
*/
|
46 |
-
public function exportExcelAction()
|
|
|
47 |
$filename = 'orders_lengow.xml';
|
48 |
-
$grid = $this->getLayout()->createBlock('
|
49 |
$this->_prepareDownloadResponse($filename, $grid->getExcelFile($filename));
|
50 |
}
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
//
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
$
|
65 |
-
$
|
66 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
67 |
$result_new = 0;
|
68 |
$result_update = 0;
|
69 |
-
$
|
70 |
-
|
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 |
-
|
95 |
foreach($store_collection as $store) {
|
96 |
try {
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
114 |
}
|
115 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
116 |
} catch(Exception $e) {
|
117 |
$this->_getSession()->addError($e->getMessage());
|
118 |
-
Mage::helper('
|
119 |
-
}
|
120 |
-
}
|
121 |
-
if($result_new > 0)
|
122 |
-
$this->_getSession()->addSuccess(Mage::helper('
|
123 |
-
|
124 |
-
|
125 |
-
if($
|
126 |
-
$this->_getSession()->addSuccess(Mage::helper('
|
127 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
128 |
$this->_redirect('*/*/index');
|
129 |
-
|
130 |
}
|
131 |
|
132 |
-
|
133 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
134 |
}
|
135 |
-
|
136 |
}
|
4 |
*
|
5 |
* @category Lengow
|
6 |
* @package Lengow_Sync
|
7 |
+
* @author Ludovic Drin <ludovic@lengow.com> & Benjamin Le Nevé <benjamin.le-neve@lengow.com>
|
8 |
+
* @copyright 2015 Lengow SAS
|
9 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
10 |
*/
|
11 |
class Lengow_Sync_Adminhtml_Lengow_OrderController extends Mage_Adminhtml_Controller_Action {
|
12 |
|
13 |
+
/**
|
14 |
+
* Init Lengow orders menu
|
15 |
+
*/
|
16 |
+
protected function _initAction()
|
17 |
+
{
|
18 |
$this->loadLayout()
|
19 |
->_setActiveMenu('lengow/order')
|
20 |
+
->_addBreadcrumb(Mage::helper('lensync')->__('Lengow manage orders'), Mage::helper('lensync')->__('Lengow orders'));
|
21 |
return $this;
|
22 |
}
|
23 |
+
|
24 |
+
/**
|
25 |
+
* Render the layout
|
26 |
+
*/
|
27 |
public function indexAction() {
|
28 |
$this->_initAction()
|
29 |
+
->renderLayout();
|
30 |
return $this;
|
31 |
}
|
32 |
+
|
33 |
+
/**
|
34 |
+
* Create the order grid
|
35 |
+
*/
|
36 |
public function gridAction() {
|
37 |
$this->getResponse()->setBody(
|
38 |
+
$this->getLayout()->createBlock('lensync/adminhtml_order_grid')->toHtml()
|
39 |
);
|
40 |
return $this;
|
41 |
}
|
42 |
+
|
43 |
/**
|
44 |
* Export order grid to CSV format
|
45 |
*/
|
46 |
+
public function exportCsvAction()
|
47 |
+
{
|
48 |
$filename = 'orders_lengow.csv';
|
49 |
+
$grid = $this->getLayout()->createBlock('lensync/adminhtml_order_grid');
|
50 |
$this->_prepareDownloadResponse($filename, $grid->getCsvFile());
|
51 |
}
|
52 |
|
53 |
/**
|
54 |
* Export order grid to Excel XML format
|
55 |
*/
|
56 |
+
public function exportExcelAction()
|
57 |
+
{
|
58 |
$filename = 'orders_lengow.xml';
|
59 |
+
$grid = $this->getLayout()->createBlock('lensync/adminhtml_order_grid');
|
60 |
$this->_prepareDownloadResponse($filename, $grid->getExcelFile($filename));
|
61 |
}
|
62 |
+
|
63 |
+
/**
|
64 |
+
* Imports orders for each store
|
65 |
+
*/
|
66 |
+
public function importAction()
|
67 |
+
{
|
68 |
+
// update marketplace.xml file
|
69 |
+
Mage::helper('lensync/data')->updateMarketplaceXML();
|
70 |
+
// clean old log (20 days)
|
71 |
+
Mage::helper('lensync/data')->cleanLog();
|
72 |
+
// check if import is not already in process
|
73 |
+
if (!Mage::getSingleton('lensync/config')->importCanStart()) {
|
74 |
+
Mage::helper('lensync/data')->log('## Error manuel import : import is already started ##');
|
75 |
+
$this->_getSession()->addError(Mage::helper('lensync')->__('Import is already started'));
|
76 |
+
$this->_redirect('*/*/index');
|
77 |
+
} else {
|
78 |
+
Mage::helper('lensync/data')->log('## Start manual import ##');
|
79 |
+
|
80 |
+
if(Mage::getStoreConfig('lensync/performances/debug'))
|
81 |
+
Mage::helper('lensync/data')->log('WARNING ! Debug mode is activated');
|
82 |
+
|
83 |
+
$store_count = 0;
|
84 |
+
$store_disabled = 0;
|
85 |
$result_new = 0;
|
86 |
$result_update = 0;
|
87 |
+
$lengow_groups = array();
|
88 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
89 |
$store_collection = Mage::getResourceModel('core/store_collection')
|
90 |
->addFieldToFilter('is_active', 1);
|
91 |
+
|
92 |
foreach($store_collection as $store) {
|
93 |
try {
|
94 |
+
if(!$store->getId())
|
95 |
+
continue;
|
96 |
+
|
97 |
+
$store_count++;
|
98 |
+
Mage::helper('lensync/data')->log('Start manual import in store ' . $store->getName() . ' (' . $store->getId() . ')');
|
99 |
+
|
100 |
+
$lensync_config = Mage::getModel('lensync/config', array('store' => $store));
|
101 |
+
// if store is enabled -> stop import
|
102 |
+
if(!$lensync_config->get('orders/active_store')) {
|
103 |
+
Mage::helper('lensync/data')->log('Stop manual import - Store ' . $store->getName() . '(' . $store->getId() . ') is disabled');
|
104 |
+
$store_disabled++;
|
105 |
+
continue;
|
106 |
+
}
|
107 |
+
// get login informations
|
108 |
+
$error_import = false;
|
109 |
+
$lentracker_config = Mage::getModel('lentracker/config', array('store' => $store));
|
110 |
+
$id_lengow_customer = $lentracker_config->get('general/login');
|
111 |
+
$id_lengow_group = $this->_cleanGroup($lentracker_config->get('general/group'));
|
112 |
+
$api_token_lengow = $lentracker_config->get('general/api_key');
|
113 |
+
// if ID Customer or token API are empty -> stop import
|
114 |
+
if (empty($id_lengow_customer) || !is_numeric($id_lengow_customer) || empty($api_token_lengow)) {
|
115 |
+
$message = 'ID customer or token API is empty. Please make sure it is saved in your plugin configuration';
|
116 |
+
$this->_getSession()->addError(Mage::helper('lensync')->__($message));
|
117 |
+
Mage::helper('lensync/data')->log($message);
|
118 |
+
break;
|
119 |
+
}
|
120 |
+
// if ID group is empty -> stop import for current store
|
121 |
+
if (empty($id_lengow_group)) {
|
122 |
+
$message = 'ID group is empty. Please make sure it is saved in your plugin configuration';
|
123 |
+
Mage::helper('lensync/data')->log('Stop manual import in store ' . $store->getName() . '(' . $store->getId() . ') : ' . $message);
|
124 |
+
$error_import = true;
|
125 |
+
}
|
126 |
+
// check if group was already imported
|
127 |
+
$new_id_lengow_group = false;
|
128 |
+
$id_groups = explode(';', $id_lengow_group);
|
129 |
+
foreach ($id_groups as $id_group) {
|
130 |
+
if (is_numeric($id_group) && !in_array($id_group, $lengow_groups)) {
|
131 |
+
$lengow_groups[] = $id_group;
|
132 |
+
$new_id_lengow_group .= !$new_id_lengow_group ? $id_group : ';'.$id_group;
|
133 |
}
|
134 |
}
|
135 |
+
// start import for current store
|
136 |
+
if (!$error_import && $new_id_lengow_group) {
|
137 |
+
$days = $lensync_config->get('orders/period');
|
138 |
+
$args = array(
|
139 |
+
'dateFrom' => date('Y-m-d', strtotime(date('Y-m-d') . '-' . $days . 'days')),
|
140 |
+
'dateTo' => date('Y-m-d'),
|
141 |
+
'config' => $lensync_config,
|
142 |
+
'idCustomer' => $id_lengow_customer,
|
143 |
+
'idGroup' => $new_id_lengow_group,
|
144 |
+
'apiToken' => $api_token_lengow,
|
145 |
+
);
|
146 |
+
$import = Mage::getModel('lensync/import', $args);
|
147 |
+
$result = $import->exec();
|
148 |
+
$result_new += $result['new'];
|
149 |
+
$result_update += $result['update'];
|
150 |
+
}
|
151 |
} catch(Exception $e) {
|
152 |
$this->_getSession()->addError($e->getMessage());
|
153 |
+
Mage::helper('lensync/data')->log('Error ' . $e->getMessage() . '');
|
154 |
+
}
|
155 |
+
}
|
156 |
+
if($result_new > 0) {
|
157 |
+
$this->_getSession()->addSuccess(Mage::helper('lensync')->__('%d orders are imported', $result_new));
|
158 |
+
Mage::helper('lensync/data')->log(Mage::helper('lensync')->__('%d orders are imported', $result_new));
|
159 |
+
}
|
160 |
+
if($result_update > 0) {
|
161 |
+
$this->_getSession()->addSuccess(Mage::helper('lensync')->__('%d orders are updated', $result_update));
|
162 |
+
Mage::helper('lensync/data')->log(Mage::helper('lensync')->__('%d orders are updated', $result_update));
|
163 |
+
}
|
164 |
+
if($result_new == 0 && $result_update == 0) {
|
165 |
+
$this->_getSession()->addSuccess(Mage::helper('lensync')->__('No order available to import'));
|
166 |
+
Mage::helper('lensync/data')->log(Mage::helper('lensync')->__('No order available to import'));
|
167 |
+
}
|
168 |
+
if ($store_count == $store_disabled) {
|
169 |
+
$this->_getSession()->addError(Mage::helper('lensync')->__('No store enabled to import. Please check lengow import configuration'));
|
170 |
+
Mage::helper('lensync/data')->log(Mage::helper('lensync')->__('No store enabled to import. Please check lengow import configuration'));
|
171 |
+
}
|
172 |
+
Mage::helper('lensync/data')->log('## End manual import ##');
|
173 |
+
Mage::getSingleton('lensync/config')->importSetEnd();
|
174 |
$this->_redirect('*/*/index');
|
175 |
+
}
|
176 |
}
|
177 |
|
178 |
+
/**
|
179 |
+
* Clean group id
|
180 |
+
*
|
181 |
+
* @param string $data
|
182 |
+
*/
|
183 |
+
private function _cleanGroup($data)
|
184 |
+
{
|
185 |
+
return trim(str_replace(array("\r\n", ';', '-', '|', ' '), ';', $data), ';');
|
186 |
}
|
187 |
+
|
188 |
}
|
app/code/community/Lengow/Sync/controllers/ApiController.php
CHANGED
@@ -15,8 +15,8 @@ class Lengow_Sync_ApiController extends Mage_Core_Controller_Front_Action {
|
|
15 |
}
|
16 |
|
17 |
public function checkAction() {
|
18 |
-
$_helper_export = Mage::helper('
|
19 |
-
$_helper_api = Mage::helper('
|
20 |
if($_helper_export->checkIp()) {
|
21 |
$return = array('magento_version' => Mage::getVersion(),
|
22 |
'lengow_version' => $_helper_api->getVersion());
|
15 |
}
|
16 |
|
17 |
public function checkAction() {
|
18 |
+
$_helper_export = Mage::helper('lenexport/security');
|
19 |
+
$_helper_api = Mage::helper('lensync/api');
|
20 |
if($_helper_export->checkIp()) {
|
21 |
$return = array('magento_version' => Mage::getVersion(),
|
22 |
'lengow_version' => $_helper_api->getVersion());
|
app/code/community/Lengow/Sync/etc/config.xml
CHANGED
@@ -2,18 +2,18 @@
|
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Lengow_Sync>
|
5 |
-
<version>2.
|
6 |
</Lengow_Sync>
|
7 |
</modules>
|
8 |
<admin>
|
9 |
<routers>
|
10 |
-
<
|
11 |
<use>admin</use>
|
12 |
<args>
|
13 |
<module>Lengow_Sync</module>
|
14 |
-
<frontName>lengow</frontName>
|
15 |
</args>
|
16 |
-
</
|
17 |
<adminhtml>
|
18 |
<args>
|
19 |
<modules>
|
@@ -25,10 +25,10 @@
|
|
25 |
</admin>
|
26 |
<global>
|
27 |
<models>
|
28 |
-
<
|
29 |
<class>Lengow_Sync_Model</class>
|
30 |
<resourceModel>sync_mysql4</resourceModel>
|
31 |
-
</
|
32 |
<sync_mysql4>
|
33 |
<class>Lengow_Sync_Model_Mysql4</class>
|
34 |
<entities>
|
@@ -48,26 +48,26 @@
|
|
48 |
<use>core_setup</use>
|
49 |
</connection>
|
50 |
</lengow_setup>
|
51 |
-
<
|
52 |
<connection>
|
53 |
<use>core_write</use>
|
54 |
</connection>
|
55 |
-
</
|
56 |
-
<
|
57 |
<connection>
|
58 |
<use>core_read</use>
|
59 |
</connection>
|
60 |
-
</
|
61 |
</resources>
|
62 |
<blocks>
|
63 |
-
<
|
64 |
<class>Lengow_Sync_Block</class>
|
65 |
-
</
|
66 |
</blocks>
|
67 |
<helpers>
|
68 |
-
<
|
69 |
<class>Lengow_Sync_Helper</class>
|
70 |
-
</
|
71 |
</helpers>
|
72 |
<events>
|
73 |
<sales_order_shipment_save_after>
|
@@ -78,6 +78,14 @@
|
|
78 |
</lengow_shipment_save_after>
|
79 |
</observers>
|
80 |
</sales_order_shipment_save_after>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
81 |
<sales_order_payment_cancel>
|
82 |
<observers>
|
83 |
<lengow_payment_cancel>
|
@@ -175,12 +183,12 @@
|
|
175 |
<title>Lengow</title>
|
176 |
<sort_order>20</sort_order>
|
177 |
<children>
|
178 |
-
<sync translate="title" module="
|
179 |
<title>Manage Orders</title>
|
180 |
<action>adminhtml/lengow_order</action>
|
181 |
<sort_order>200</sort_order>
|
182 |
</sync>
|
183 |
-
<log translate="title" module="
|
184 |
<title>Logs</title>
|
185 |
<action>adminhtml/lengow_log</action>
|
186 |
<sort_order>400</sort_order>
|
@@ -196,20 +204,20 @@
|
|
196 |
<children>
|
197 |
<config>
|
198 |
<children>
|
199 |
-
<
|
200 |
<title>Manage orders</title>
|
201 |
-
</
|
202 |
</children>
|
203 |
</config>
|
204 |
</children>
|
205 |
</system>
|
206 |
-
<lengow translate="title" module="
|
207 |
<title>Lengow</title>
|
208 |
<children>
|
209 |
-
<
|
210 |
<title>Manage Orders</title>
|
211 |
-
</
|
212 |
-
<log translate="title" module="
|
213 |
<title>Manage Logs</title>
|
214 |
</log>
|
215 |
</children>
|
@@ -226,27 +234,37 @@
|
|
226 |
<cron_expr>*/30 * * * *</cron_expr>
|
227 |
</schedule>
|
228 |
<run>
|
229 |
-
<model>
|
230 |
</run>
|
231 |
</sync_orders_lengow>
|
232 |
</jobs>
|
233 |
</crontab>
|
234 |
<default>
|
235 |
-
<
|
236 |
<orders>
|
|
|
237 |
<period>3</period>
|
238 |
-
<
|
239 |
-
<pending>0</pending>
|
240 |
<processing_fee>1</processing_fee>
|
|
|
|
|
|
|
|
|
|
|
|
|
241 |
</orders>
|
|
|
|
|
|
|
|
|
242 |
<hidden>
|
243 |
<last_synchro>0000-00-00</last_synchro>
|
244 |
</hidden>
|
245 |
-
</
|
246 |
<payment>
|
247 |
<lengow>
|
248 |
<active>1</active>
|
249 |
-
<model>
|
250 |
<order_status>pending</order_status>
|
251 |
<title>Lengow Payment</title>
|
252 |
<allowspecific>0</allowspecific>
|
@@ -254,7 +272,7 @@
|
|
254 |
</lengow>
|
255 |
<lengow_purchaseorder>
|
256 |
<active>1</active>
|
257 |
-
<model>
|
258 |
<order_status>new</order_status>
|
259 |
<title>Lengow Payment (version 1.x)</title>
|
260 |
<allowspecific>0</allowspecific>
|
@@ -262,10 +280,10 @@
|
|
262 |
</lengow_purchaseorder>
|
263 |
</payment>
|
264 |
<carriers>
|
265 |
-
<lengow translate="name title" module="
|
266 |
<active>1</active>
|
267 |
<sallowspecific>0</sallowspecific>
|
268 |
-
<model>
|
269 |
<name>Shipping from marketplace</name>
|
270 |
<title>Lengow</title>
|
271 |
</lengow>
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Lengow_Sync>
|
5 |
+
<version>2.1.0</version>
|
6 |
</Lengow_Sync>
|
7 |
</modules>
|
8 |
<admin>
|
9 |
<routers>
|
10 |
+
<lensync> <!-- module name -->
|
11 |
<use>admin</use>
|
12 |
<args>
|
13 |
<module>Lengow_Sync</module>
|
14 |
+
<frontName>lengow</frontName> <!-- URL call of controller -->
|
15 |
</args>
|
16 |
+
</lensync>
|
17 |
<adminhtml>
|
18 |
<args>
|
19 |
<modules>
|
25 |
</admin>
|
26 |
<global>
|
27 |
<models>
|
28 |
+
<lensync>
|
29 |
<class>Lengow_Sync_Model</class>
|
30 |
<resourceModel>sync_mysql4</resourceModel>
|
31 |
+
</lensync>
|
32 |
<sync_mysql4>
|
33 |
<class>Lengow_Sync_Model_Mysql4</class>
|
34 |
<entities>
|
48 |
<use>core_setup</use>
|
49 |
</connection>
|
50 |
</lengow_setup>
|
51 |
+
<lensync_write>
|
52 |
<connection>
|
53 |
<use>core_write</use>
|
54 |
</connection>
|
55 |
+
</lensync_write>
|
56 |
+
<lensync_read>
|
57 |
<connection>
|
58 |
<use>core_read</use>
|
59 |
</connection>
|
60 |
+
</lensync_read>
|
61 |
</resources>
|
62 |
<blocks>
|
63 |
+
<lensync>
|
64 |
<class>Lengow_Sync_Block</class>
|
65 |
+
</lensync>
|
66 |
</blocks>
|
67 |
<helpers>
|
68 |
+
<lensync>
|
69 |
<class>Lengow_Sync_Helper</class>
|
70 |
+
</lensync>
|
71 |
</helpers>
|
72 |
<events>
|
73 |
<sales_order_shipment_save_after>
|
78 |
</lengow_shipment_save_after>
|
79 |
</observers>
|
80 |
</sales_order_shipment_save_after>
|
81 |
+
<!-- <sales_order_shipment_track_save_after>
|
82 |
+
<observers>
|
83 |
+
<lengow_shipment_track_save_after>
|
84 |
+
<class>Lengow_Sync_Model_Observer</class>
|
85 |
+
<method>salesOrderShipmentTrackSaveAfter</method>
|
86 |
+
</lengow_shipment_track_save_after>
|
87 |
+
</observers>
|
88 |
+
</sales_order_shipment_track_save_after> -->
|
89 |
<sales_order_payment_cancel>
|
90 |
<observers>
|
91 |
<lengow_payment_cancel>
|
183 |
<title>Lengow</title>
|
184 |
<sort_order>20</sort_order>
|
185 |
<children>
|
186 |
+
<sync translate="title" module="lensync">
|
187 |
<title>Manage Orders</title>
|
188 |
<action>adminhtml/lengow_order</action>
|
189 |
<sort_order>200</sort_order>
|
190 |
</sync>
|
191 |
+
<log translate="title" module="lensync">
|
192 |
<title>Logs</title>
|
193 |
<action>adminhtml/lengow_log</action>
|
194 |
<sort_order>400</sort_order>
|
204 |
<children>
|
205 |
<config>
|
206 |
<children>
|
207 |
+
<lensync translate="title" module="lensync">
|
208 |
<title>Manage orders</title>
|
209 |
+
</lensync>
|
210 |
</children>
|
211 |
</config>
|
212 |
</children>
|
213 |
</system>
|
214 |
+
<lengow translate="title" module="lensync">
|
215 |
<title>Lengow</title>
|
216 |
<children>
|
217 |
+
<lensync translate="title" module="lensync">
|
218 |
<title>Manage Orders</title>
|
219 |
+
</lensync>
|
220 |
+
<log translate="title" module="lensync">
|
221 |
<title>Manage Logs</title>
|
222 |
</log>
|
223 |
</children>
|
234 |
<cron_expr>*/30 * * * *</cron_expr>
|
235 |
</schedule>
|
236 |
<run>
|
237 |
+
<model>lensync/observer::import</model>
|
238 |
</run>
|
239 |
</sync_orders_lengow>
|
240 |
</jobs>
|
241 |
</crontab>
|
242 |
<default>
|
243 |
+
<lensync>
|
244 |
<orders>
|
245 |
+
<active_store>0</active_store>
|
246 |
<period>3</period>
|
247 |
+
<date_import>0</date_import>
|
|
|
248 |
<processing_fee>1</processing_fee>
|
249 |
+
<customer_group>0</customer_group>
|
250 |
+
<title>0</title>
|
251 |
+
<!-- <pending>0</pending> -->
|
252 |
+
<split_name>0</split_name>
|
253 |
+
<default_shipping>lengow_lengow</default_shipping>
|
254 |
+
<fake_email>0</fake_email>
|
255 |
</orders>
|
256 |
+
<performances>
|
257 |
+
<active_cron>0</active_cron>
|
258 |
+
<debug>0</debug>
|
259 |
+
</performances>
|
260 |
<hidden>
|
261 |
<last_synchro>0000-00-00</last_synchro>
|
262 |
</hidden>
|
263 |
+
</lensync>
|
264 |
<payment>
|
265 |
<lengow>
|
266 |
<active>1</active>
|
267 |
+
<model>lensync/payment_method_lengow</model>
|
268 |
<order_status>pending</order_status>
|
269 |
<title>Lengow Payment</title>
|
270 |
<allowspecific>0</allowspecific>
|
272 |
</lengow>
|
273 |
<lengow_purchaseorder>
|
274 |
<active>1</active>
|
275 |
+
<model>lensync/payment_method_lengow</model>
|
276 |
<order_status>new</order_status>
|
277 |
<title>Lengow Payment (version 1.x)</title>
|
278 |
<allowspecific>0</allowspecific>
|
280 |
</lengow_purchaseorder>
|
281 |
</payment>
|
282 |
<carriers>
|
283 |
+
<lengow translate="name title" module="lensync">
|
284 |
<active>1</active>
|
285 |
<sallowspecific>0</sallowspecific>
|
286 |
+
<model>lensync/shipping_carrier_lengow</model>
|
287 |
<name>Shipping from marketplace</name>
|
288 |
<title>Lengow</title>
|
289 |
</lengow>
|
app/code/community/Lengow/Sync/etc/marketplaces.xml
CHANGED
@@ -74,7 +74,6 @@
|
|
74 |
<state name="ToShip">
|
75 |
<actions>
|
76 |
<action type="shipped">Shipped</action>
|
77 |
-
<action type="refuse">refuseOrder</action>
|
78 |
</actions>
|
79 |
<lengow>processing</lengow>
|
80 |
</state>
|
@@ -131,7 +130,10 @@
|
|
131 |
<state name="refusesale">
|
132 |
<lengow>canceled</lengow>
|
133 |
</state>
|
134 |
-
<state name="
|
|
|
|
|
|
|
135 |
<lengow>shipped</lengow>
|
136 |
</state>
|
137 |
<state name="CANCELLED">
|
@@ -240,28 +242,28 @@
|
|
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">
|
@@ -270,412 +272,391 @@
|
|
270 |
</param>
|
271 |
</additional_params>
|
272 |
</marketplace>
|
273 |
-
<marketplace name="
|
274 |
-
<api>https://wsdl.lengow.com/wsdl/
|
275 |
<states>
|
276 |
-
<state name="
|
277 |
-
<actions>
|
278 |
-
<action type="accept">acceptOrder</action>
|
279 |
-
<action type="refuse">refuseOrder</action>
|
280 |
-
</actions>
|
281 |
-
<lengow>new</lengow>
|
282 |
-
</state>
|
283 |
-
<state name="AcceptedBySeller">
|
284 |
-
<lengow>new</lengow>
|
285 |
-
</state>
|
286 |
-
<state name="PaymentinProgress">
|
287 |
-
<lengow>new</lengow>
|
288 |
-
</state>
|
289 |
-
<state name="ValidatedFianet">
|
290 |
<lengow>new</lengow>
|
291 |
</state>
|
292 |
-
<state name="
|
293 |
<actions>
|
294 |
<action type="shipped">shippedOrder</action>
|
295 |
-
<action type="refuse">refuseShipment</action>
|
296 |
</actions>
|
297 |
<lengow>processing</lengow>
|
298 |
</state>
|
299 |
-
<state name="
|
300 |
<lengow>shipped</lengow>
|
301 |
</state>
|
302 |
-
<state name="">
|
303 |
-
<lengow>canceled</lengow>
|
304 |
-
</state>
|
305 |
-
<state name="ShipmentRefusedBySeller">
|
306 |
-
<lengow>canceled</lengow>
|
307 |
-
</state>
|
308 |
-
<state name="PaymentRefused">
|
309 |
-
<lengow>canceled</lengow>
|
310 |
-
</state>
|
311 |
-
<state name="CancelledByCustomer">
|
312 |
-
<lengow>canceled</lengow>
|
313 |
-
</state>
|
314 |
-
<state name="RefusedNotShipment">
|
315 |
-
<lengow>canceled</lengow>
|
316 |
-
</state>
|
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"
|
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>
|
349 |
-
<value label="UPS">UPS</value>
|
350 |
-
<value label="TAT Express">TAT</value>
|
351 |
-
<value label="TNT">TNT</value>
|
352 |
-
<value label="Mondial Relay">MONDIALRELAY</value>
|
353 |
-
<value label="SERNAM">SERNAM</value>
|
354 |
-
<value label="Geodis Calberson">GEODISCALBERSON</value>
|
355 |
-
<value label="France Express">FRANCEEXPRESS</value>
|
356 |
-
<value label="SDEN">FRANCSDENEEXPRESS</value>
|
357 |
-
<value label="CHRONOPOST">Chronopost</value>
|
358 |
-
<value label="TATEX">TATEX</value>
|
359 |
-
<value label="SCHENKER JOYAU">SCHENKER_JOYAU</value>
|
360 |
-
<value label="Relais colis">Relais_colis</value>
|
361 |
-
<value label="Gefco">Gefco</value>
|
362 |
-
<value label="MORY">MORY</value>
|
363 |
-
<value label="Heppner">Heppner</value>
|
364 |
-
<value label="Exapaq">Exapaq</value>
|
365 |
-
<value label="Mazet">Mazet</value>
|
366 |
-
<value label="SIC EXPRESS">SICEXPRESS</value>
|
367 |
-
<value label="TMB">TMB</value>
|
368 |
-
</accepted_values>
|
369 |
-
</param>
|
370 |
-
<param usedby="shipped">
|
371 |
-
<type>tracking_url</type>
|
372 |
-
<name>TrackingUrl</name>
|
373 |
-
</param>
|
374 |
</additional_params>
|
375 |
</marketplace>
|
376 |
-
<marketplace name="
|
377 |
-
<api>https://wsdl.lengow.com/wsdl/
|
378 |
-
<apibyline>https://wsdl.lengow.com/wsdl/laredoute/#ID_FLUX#/#ORDER_ID#/#ORDER_LINE_ID#/#QTY_TO_REFUND#/#FDP#/#ACTION#.xml</apibyline>
|
379 |
<states>
|
380 |
-
<state name="
|
381 |
-
<actions>
|
382 |
-
<action type="cancel">cancelOrder</action>
|
383 |
-
</actions>
|
384 |
-
<lengow>new</lengow>
|
385 |
-
</state>
|
386 |
-
<state name="Created">
|
387 |
-
<actions>
|
388 |
-
<action type="accept">acceptOrder</action>
|
389 |
-
<action type="refuse">refuseOrder</action>
|
390 |
-
</actions>
|
391 |
-
<lengow>new</lengow>
|
392 |
-
</state>
|
393 |
-
<state name="Accepted">
|
394 |
<lengow>new</lengow>
|
395 |
</state>
|
396 |
<state name="ToShip">
|
397 |
<actions>
|
398 |
<action type="shipped">shippedOrder</action>
|
399 |
-
<action type="refund">refundOrder</action>
|
400 |
-
<action type="refundLine" usedbyline="true">refundOrder</action>
|
401 |
</actions>
|
402 |
<lengow>processing</lengow>
|
403 |
</state>
|
404 |
-
<state name="
|
405 |
-
<lengow>processing</lengow>
|
406 |
-
</state>
|
407 |
-
<state name="Shipped">
|
408 |
-
<actions>
|
409 |
-
<action type="refund">refundOrder</action>
|
410 |
-
<action type="refundLine" usedbyline="true">refundOrder</action>
|
411 |
-
</actions>
|
412 |
<lengow>shipped</lengow>
|
413 |
</state>
|
414 |
-
<state name="Refunded">
|
415 |
-
<lengow>canceled</lengow>
|
416 |
-
</state>
|
417 |
<state name="Cancelled">
|
418 |
<lengow>canceled</lengow>
|
419 |
</state>
|
420 |
-
<state name="Refused">
|
421 |
-
<lengow>canceled</lengow>
|
422 |
-
</state>
|
423 |
</states>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
424 |
<additional_params>
|
425 |
<param usedby="shipped">
|
426 |
<type>tracking</type>
|
427 |
<name>TrackingColis</name>
|
428 |
</param>
|
429 |
-
<param usedby="shipped">
|
430 |
-
<type>carrier</type>
|
431 |
-
<name>Transporteur</name>
|
432 |
-
</param>
|
433 |
-
<param usedby="shipped">
|
434 |
-
<type>tracking_url</type>
|
435 |
-
<name>url</name>
|
436 |
-
</param>
|
437 |
-
<param usedby="shipped" usedbyline="true">
|
438 |
-
<type>shipping_price</type>
|
439 |
-
<name>fdp</name>
|
440 |
-
</param>
|
441 |
-
<param usedby="shipped" usedbyline="true">
|
442 |
-
<type>order_line</type>
|
443 |
-
<name>orderlineid</name>
|
444 |
-
</param>
|
445 |
-
<param usedby="shipped" usedbyline="true">
|
446 |
-
<type>quantity</type>
|
447 |
-
<name>qty</name>
|
448 |
-
</param>
|
449 |
</additional_params>
|
450 |
</marketplace>
|
451 |
-
<marketplace name="
|
452 |
-
<api>https://wsdl.lengow.com/wsdl/
|
453 |
<states>
|
454 |
-
<state name="
|
455 |
-
<actions>
|
456 |
-
<action type="accept">acceptOrder</action>
|
457 |
-
<action type="refuse">refuseOrder</action>
|
458 |
-
</actions>
|
459 |
<lengow>new</lengow>
|
460 |
</state>
|
461 |
-
<state name="
|
|
|
|
|
|
|
462 |
<lengow>processing</lengow>
|
463 |
</state>
|
464 |
-
<state name="
|
465 |
<lengow>shipped</lengow>
|
466 |
</state>
|
467 |
-
<state name="
|
468 |
<lengow>canceled</lengow>
|
469 |
</state>
|
470 |
</states>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
471 |
<additional_params>
|
472 |
<param usedby="shipped">
|
473 |
<type>tracking</type>
|
474 |
<name>TrackingColis</name>
|
475 |
</param>
|
476 |
-
<param usedby="shipped">
|
477 |
-
<type>carrier</type>
|
478 |
-
<name>Transporteur</name>
|
479 |
-
</param>
|
480 |
</additional_params>
|
481 |
</marketplace>
|
482 |
-
<marketplace name="
|
483 |
-
<api>https://wsdl.lengow.com/wsdl/
|
484 |
<states>
|
485 |
-
<state name="
|
486 |
-
<actions>
|
487 |
-
<action type="refuse">refuseOrder</action>
|
488 |
-
</actions>
|
489 |
<lengow>new</lengow>
|
490 |
</state>
|
491 |
-
<state name="
|
492 |
-
<lengow>processing</lengow>
|
493 |
-
</state>
|
494 |
-
<state name="processing">
|
495 |
<actions>
|
496 |
<action type="shipped">shippedOrder</action>
|
497 |
</actions>
|
498 |
<lengow>processing</lengow>
|
499 |
</state>
|
500 |
-
<state name="
|
501 |
-
<lengow>processing</lengow>
|
502 |
-
</state>
|
503 |
-
<state name="in">
|
504 |
-
<lengow>processing</lengow>
|
505 |
-
</state>
|
506 |
-
<state name="payment_review">
|
507 |
-
<lengow>processing</lengow>
|
508 |
-
</state>
|
509 |
-
<state name="complete">
|
510 |
<lengow>shipped</lengow>
|
511 |
</state>
|
512 |
-
<state name="
|
513 |
<lengow>canceled</lengow>
|
514 |
</state>
|
515 |
</states>
|
516 |
-
<
|
517 |
-
<
|
518 |
-
<
|
519 |
-
|
520 |
-
|
521 |
-
|
522 |
-
|
523 |
-
|
524 |
-
<
|
525 |
-
|
526 |
-
|
527 |
-
|
528 |
-
|
529 |
-
|
530 |
-
|
531 |
-
|
532 |
-
|
533 |
-
|
534 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
535 |
</param>
|
536 |
</additional_params>
|
537 |
</marketplace>
|
538 |
-
<marketplace name="
|
539 |
-
<api>https://wsdl.lengow.com/wsdl/
|
540 |
<states>
|
541 |
-
<state name="
|
542 |
-
<actions>
|
543 |
-
<action type="refuse">refuseOrder</action>
|
544 |
-
</actions>
|
545 |
<lengow>new</lengow>
|
546 |
</state>
|
547 |
-
<state name="
|
548 |
<actions>
|
549 |
<action type="shipped">shippedOrder</action>
|
550 |
</actions>
|
551 |
<lengow>processing</lengow>
|
552 |
</state>
|
553 |
-
<state name="
|
554 |
<lengow>shipped</lengow>
|
555 |
</state>
|
556 |
-
<state name="
|
557 |
<lengow>canceled</lengow>
|
558 |
</state>
|
559 |
</states>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
560 |
<additional_params>
|
561 |
<param usedby="shipped">
|
562 |
<type>tracking</type>
|
563 |
<name>TrackingColis</name>
|
564 |
</param>
|
565 |
-
<param usedby="shipped">
|
566 |
-
<type>carrier</type>
|
567 |
-
<name>Transporteur</name>
|
568 |
-
</param>
|
569 |
</additional_params>
|
570 |
</marketplace>
|
571 |
-
<marketplace name="
|
572 |
-
<api>https://wsdl.lengow.com/wsdl/
|
573 |
<states>
|
574 |
-
<state name="
|
575 |
<lengow>new</lengow>
|
576 |
</state>
|
577 |
-
<state name="
|
578 |
<actions>
|
579 |
-
<action type="
|
580 |
-
<action type="accept">acceptOrder</action>
|
581 |
</actions>
|
582 |
<lengow>processing</lengow>
|
583 |
</state>
|
584 |
-
<state name="
|
585 |
<lengow>shipped</lengow>
|
586 |
</state>
|
587 |
-
<state name="
|
588 |
<lengow>canceled</lengow>
|
589 |
</state>
|
590 |
</states>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
591 |
<additional_params>
|
592 |
<param usedby="shipped">
|
593 |
<type>tracking</type>
|
594 |
<name>TrackingColis</name>
|
595 |
</param>
|
596 |
-
<param usedby="shipped">
|
597 |
-
<type>carrier</type>
|
598 |
-
<name>Transporteur</name>
|
599 |
-
</param>
|
600 |
</additional_params>
|
601 |
</marketplace>
|
602 |
-
<marketplace name="
|
603 |
-
<api>https://wsdl.lengow.com/wsdl/
|
604 |
<states>
|
605 |
-
<state name="
|
|
|
|
|
|
|
606 |
<actions>
|
607 |
-
<action type="
|
608 |
-
<action type="accept">acceptOrder</action>
|
609 |
</actions>
|
610 |
<lengow>processing</lengow>
|
611 |
</state>
|
612 |
-
<state name="
|
613 |
<lengow>shipped</lengow>
|
614 |
</state>
|
615 |
-
<state name="cancel">
|
616 |
-
<lengow>canceled</lengow>
|
617 |
-
</state>
|
618 |
-
</states>
|
619 |
-
</marketplace>
|
620 |
-
<marketplace name="pixplace">
|
621 |
-
<states>
|
622 |
-
<state name="accepted">
|
623 |
-
<lengow>processing</lengow>
|
624 |
-
</state>
|
625 |
-
<state name="processing">
|
626 |
-
<lengow>processing</lengow>
|
627 |
-
</state>
|
628 |
-
<state name="NotReceived">
|
629 |
-
<lengow>processing</lengow>
|
630 |
-
</state>
|
631 |
<state name="Cancelled">
|
632 |
<lengow>canceled</lengow>
|
633 |
</state>
|
634 |
-
<state name="Refused">
|
635 |
-
<lengow>canceled</lengow>
|
636 |
-
</state>
|
637 |
-
<state name="Refunded">
|
638 |
-
<lengow>canceled</lengow>
|
639 |
-
</state>
|
640 |
-
</states>
|
641 |
-
</marketplace>
|
642 |
-
<marketplace name="leoo">
|
643 |
-
<states>
|
644 |
-
<state name="Confirmé">
|
645 |
-
<lengow>processing</lengow>
|
646 |
-
</state>
|
647 |
-
<state name="Expédié">
|
648 |
-
<lengow>shipped</lengow>
|
649 |
-
</state>
|
650 |
-
<state name="Annulation">
|
651 |
-
<lengow>canceled</lengow>
|
652 |
-
</state>
|
653 |
</states>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
654 |
</marketplace>
|
655 |
-
<marketplace name="
|
656 |
-
<api>https://wsdl.lengow.com/wsdl/
|
657 |
<states>
|
658 |
-
<state name="
|
659 |
<lengow>new</lengow>
|
660 |
-
<actions>
|
661 |
-
<action type="accept">accepted</action>
|
662 |
-
<action type="refuse">refused</action>
|
663 |
-
</actions>
|
664 |
</state>
|
665 |
-
<state name="
|
666 |
<actions>
|
667 |
-
<action type="shipped">
|
668 |
-
<action type="refuse">refused</action>
|
669 |
</actions>
|
670 |
<lengow>processing</lengow>
|
671 |
</state>
|
672 |
-
<state name="
|
673 |
<lengow>shipped</lengow>
|
674 |
</state>
|
675 |
-
<state name="
|
676 |
<lengow>canceled</lengow>
|
677 |
</state>
|
678 |
</states>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
679 |
<additional_params>
|
680 |
<param usedby="shipped">
|
681 |
<type>tracking</type>
|
@@ -683,296 +664,3261 @@
|
|
683 |
</param>
|
684 |
</additional_params>
|
685 |
</marketplace>
|
686 |
-
<marketplace name="
|
687 |
-
<
|
688 |
-
<state name="Confirmé">
|
689 |
-
<lengow>processing</lengow>
|
690 |
-
</state>
|
691 |
-
<state name="Expédié">
|
692 |
-
<lengow>shipped</lengow>
|
693 |
-
</state>
|
694 |
-
<state name="Annulation">
|
695 |
-
<lengow>canceled</lengow>
|
696 |
-
</state>
|
697 |
-
</states>
|
698 |
-
</marketplace>
|
699 |
-
<marketplace name="discounteo">
|
700 |
-
<api>https://wsdl.lengow.com/wsdl/discounteo/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
701 |
<states>
|
702 |
-
<state name="
|
703 |
<lengow>new</lengow>
|
704 |
</state>
|
705 |
-
<state name="
|
706 |
<actions>
|
707 |
-
<action type="shipped">
|
708 |
-
<action type="refuse">refused</action>
|
709 |
</actions>
|
710 |
<lengow>processing</lengow>
|
711 |
</state>
|
712 |
-
<state name="
|
713 |
<lengow>shipped</lengow>
|
714 |
</state>
|
715 |
-
<state name="
|
716 |
<lengow>canceled</lengow>
|
717 |
</state>
|
718 |
</states>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
719 |
<additional_params>
|
720 |
<param usedby="shipped">
|
721 |
<type>tracking</type>
|
722 |
<name>TrackingColis</name>
|
723 |
</param>
|
724 |
-
<param usedby="shipped">
|
725 |
-
<type>carrier</type>
|
726 |
-
<name>Transporteur</name>
|
727 |
-
</param>
|
728 |
</additional_params>
|
729 |
</marketplace>
|
730 |
-
<marketplace name="
|
731 |
-
<api>https://wsdl.lengow.com/wsdl/
|
732 |
<states>
|
733 |
-
<state name="
|
734 |
<lengow>new</lengow>
|
735 |
</state>
|
736 |
-
<state name="
|
737 |
<actions>
|
738 |
-
<action type="shipped">
|
739 |
</actions>
|
740 |
<lengow>processing</lengow>
|
741 |
</state>
|
742 |
-
<state name="
|
743 |
<lengow>shipped</lengow>
|
744 |
</state>
|
745 |
-
<state name="
|
746 |
<lengow>canceled</lengow>
|
747 |
</state>
|
748 |
</states>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
749 |
<additional_params>
|
750 |
<param usedby="shipped">
|
751 |
<type>tracking</type>
|
752 |
<name>TrackingColis</name>
|
753 |
</param>
|
754 |
-
<param usedby="shipped">
|
755 |
-
<type>carrier</type>
|
756 |
-
<name>TrackingCarrier</name>
|
757 |
-
<accepted_values>
|
758 |
-
<value label="Divers" default="true">1</value>
|
759 |
-
<value label="Colissimo">2</value>
|
760 |
-
<value label="Lettre Max">3</value>
|
761 |
-
</accepted_values>
|
762 |
-
</param>
|
763 |
</additional_params>
|
764 |
</marketplace>
|
765 |
-
<marketplace name="
|
|
|
766 |
<states>
|
767 |
-
<state name="
|
|
|
|
|
|
|
|
|
|
|
|
|
768 |
<lengow>processing</lengow>
|
769 |
</state>
|
770 |
-
<state name="
|
771 |
<lengow>shipped</lengow>
|
772 |
</state>
|
|
|
|
|
|
|
773 |
</states>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
774 |
</marketplace>
|
775 |
-
<marketplace name="
|
|
|
776 |
<states>
|
777 |
-
<state name="
|
778 |
-
<lengow>new</lengow>
|
779 |
-
</state>
|
780 |
-
<state name="STAGING">
|
781 |
-
<lengow>new</lengow>
|
782 |
-
</state>
|
783 |
-
<state name="WAITING_ACCEPTANCE">
|
784 |
-
<lengow>new</lengow>
|
785 |
-
</state>
|
786 |
-
<state name="WAITING_DEBIT">
|
787 |
-
<lengow>new</lengow>
|
788 |
-
</state>
|
789 |
-
<state name="WAITING_DEBIT_PAYMENT">
|
790 |
<lengow>new</lengow>
|
791 |
</state>
|
792 |
-
<state name="
|
793 |
-
<
|
794 |
-
|
795 |
-
|
796 |
-
<lengow>processing</lengow>
|
797 |
-
</state>
|
798 |
-
<state name="REFUSED">
|
799 |
-
<lengow>canceled</lengow>
|
800 |
-
</state>
|
801 |
-
<state name="SHIPPING">
|
802 |
-
<lengow>shipped</lengow>
|
803 |
-
</state>
|
804 |
-
<state name="INCIDENT_OPEN">
|
805 |
<lengow>processing</lengow>
|
806 |
</state>
|
807 |
-
<state name="
|
808 |
<lengow>shipped</lengow>
|
809 |
</state>
|
810 |
-
<state name="
|
811 |
<lengow>canceled</lengow>
|
812 |
</state>
|
813 |
</states>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
814 |
</marketplace>
|
815 |
-
<marketplace name="
|
816 |
-
<api>https://wsdl.lengow.com/wsdl/
|
817 |
<states>
|
818 |
-
<state name="
|
819 |
-
<lengow>new</lengow>
|
820 |
-
</state>
|
821 |
-
<state name="STAGING">
|
822 |
<lengow>new</lengow>
|
823 |
</state>
|
824 |
-
<state name="
|
825 |
-
<lengow>new</lengow>
|
826 |
<actions>
|
827 |
-
<action type="
|
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="
|
853 |
<lengow>shipped</lengow>
|
854 |
</state>
|
855 |
-
<state name="
|
856 |
<lengow>canceled</lengow>
|
857 |
</state>
|
858 |
-
|
859 |
-
|
860 |
-
|
861 |
-
|
862 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
863 |
</state>
|
864 |
-
<state name="
|
|
|
|
|
|
|
865 |
<lengow>processing</lengow>
|
866 |
</state>
|
867 |
-
<state name="
|
868 |
-
<lengow>
|
869 |
</state>
|
870 |
-
<state name="
|
871 |
<lengow>canceled</lengow>
|
872 |
</state>
|
873 |
</states>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
874 |
</marketplace>
|
875 |
-
<marketplace name="
|
876 |
-
|
877 |
<states>
|
878 |
-
<state name="
|
879 |
<lengow>new</lengow>
|
880 |
</state>
|
881 |
-
<state name="
|
882 |
-
<lengow>processing</lengow>
|
883 |
<actions>
|
884 |
-
<action type="shipped">
|
885 |
</actions>
|
|
|
886 |
</state>
|
887 |
-
<state name="
|
888 |
-
<lengow>shipped</lengow>
|
889 |
-
</state>
|
890 |
-
<state name="payout">
|
891 |
<lengow>shipped</lengow>
|
892 |
</state>
|
893 |
-
<state name="
|
894 |
<lengow>canceled</lengow>
|
895 |
</state>
|
896 |
</states>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
897 |
</marketplace>
|
898 |
-
<marketplace name="
|
899 |
-
<api>https://wsdl.lengow.com/wsdl/
|
|
|
900 |
<states>
|
901 |
-
<state name="
|
902 |
<lengow>new</lengow>
|
|
|
|
|
|
|
|
|
903 |
</state>
|
904 |
-
<state name="
|
|
|
905 |
<actions>
|
906 |
-
<action type="
|
907 |
-
<action type="
|
908 |
-
<action type="refund">refund</action>
|
909 |
</actions>
|
910 |
-
<lengow>new</lengow>
|
911 |
</state>
|
912 |
-
<state name="
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
913 |
<lengow>new</lengow>
|
914 |
<actions>
|
915 |
-
<action type="accept">processing</action>
|
916 |
-
<action type="
|
917 |
-
<action type="refund">refund</action>
|
918 |
</actions>
|
919 |
</state>
|
920 |
-
<state name="
|
|
|
921 |
<actions>
|
922 |
<action type="shipped" method="post">shipped</action>
|
923 |
-
<action type="
|
924 |
-
<action type="refund">refund</action>
|
925 |
</actions>
|
926 |
-
<lengow>processing</lengow>
|
927 |
</state>
|
928 |
-
<state name="
|
929 |
<lengow>shipped</lengow>
|
930 |
</state>
|
931 |
-
<state name="
|
932 |
<lengow>canceled</lengow>
|
933 |
</state>
|
934 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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="
|
946 |
-
<api>
|
|
|
947 |
<states>
|
948 |
-
<state name="
|
949 |
<lengow>new</lengow>
|
950 |
-
</state>
|
951 |
-
<state name="Approved">
|
952 |
<actions>
|
953 |
-
<action type="
|
954 |
-
<action type="
|
955 |
-
<action type="refund" method="post">NO_INVENTORY_CANCELED</action>
|
956 |
</actions>
|
957 |
-
<lengow>processing</lengow>
|
958 |
</state>
|
959 |
-
<state name="
|
|
|
960 |
<actions>
|
961 |
-
<action type="
|
|
|
962 |
</actions>
|
|
|
|
|
963 |
<lengow>shipped</lengow>
|
964 |
</state>
|
965 |
-
<state name="
|
966 |
<lengow>canceled</lengow>
|
967 |
</state>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
968 |
<state name="canceled">
|
969 |
<lengow>canceled</lengow>
|
970 |
</state>
|
971 |
</states>
|
972 |
<additional_params>
|
973 |
-
<param usedby="
|
974 |
-
<type>
|
975 |
-
<name>
|
|
|
|
|
|
|
|
|
976 |
</param>
|
977 |
<param usedby="shipped cancel refund returned">
|
978 |
<type>action</type>
|
@@ -992,32 +3938,92 @@
|
|
992 |
</param>
|
993 |
<param usedby="shipped">
|
994 |
<type>tracking</type>
|
995 |
-
<name>
|
996 |
</param>
|
997 |
<param usedby="shipped">
|
998 |
-
<type>
|
999 |
-
<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="
|
|
|
|
|
1008 |
<states>
|
1009 |
-
<state name="
|
1010 |
<lengow>new</lengow>
|
|
|
|
|
|
|
|
|
1011 |
</state>
|
1012 |
-
<state name="
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1013 |
<lengow>new</lengow>
|
1014 |
</state>
|
1015 |
-
<state name="
|
|
|
|
|
|
|
|
|
|
|
|
|
1016 |
<lengow>shipped</lengow>
|
1017 |
</state>
|
1018 |
-
<state name="
|
1019 |
<lengow>canceled</lengow>
|
1020 |
</state>
|
1021 |
-
|
1022 |
</marketplace>
|
1023 |
</marketplaces>
|
74 |
<state name="ToShip">
|
75 |
<actions>
|
76 |
<action type="shipped">Shipped</action>
|
|
|
77 |
</actions>
|
78 |
<lengow>processing</lengow>
|
79 |
</state>
|
130 |
<state name="refusesale">
|
131 |
<lengow>canceled</lengow>
|
132 |
</state>
|
133 |
+
<state name="closed">
|
134 |
+
<lengow>shipped</lengow>
|
135 |
+
</state>
|
136 |
+
<state name="CLOSED">
|
137 |
<lengow>shipped</lengow>
|
138 |
</state>
|
139 |
<state name="CANCELLED">
|
242 |
<lengow>canceled</lengow>
|
243 |
</state>
|
244 |
</states>
|
245 |
+
<payments>
|
246 |
<payment name="NoPaymentFailure">
|
247 |
<lengow>complete</lengow>
|
248 |
</payment>
|
249 |
+
<payment name="PayPalPaymentInProcess">
|
250 |
<lengow>pending</lengow>
|
251 |
</payment>
|
252 |
+
<payment name="PayPalPaymentInProcess">
|
253 |
<lengow>pending</lengow>
|
254 |
</payment>
|
255 |
<payment name="MoneyXferAcceptedInCheckout">
|
256 |
<lengow>pending</lengow>
|
257 |
</payment>
|
258 |
+
<payment name="Complete">
|
259 |
<lengow>complete</lengow>
|
260 |
</payment>
|
261 |
+
<payment name="Incomplete">
|
262 |
<lengow>pending</lengow>
|
263 |
</payment>
|
264 |
+
<payment name="PaymentInProcess">
|
265 |
<lengow>pending</lengow>
|
266 |
+
</payment>
|
267 |
</payments>
|
268 |
<additional_params>
|
269 |
<param usedby="shipped">
|
272 |
</param>
|
273 |
</additional_params>
|
274 |
</marketplace>
|
275 |
+
<marketplace name="ebay_fr">
|
276 |
+
<api>https://wsdl.lengow.com/wsdl/ebay_fr/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
277 |
<states>
|
278 |
+
<state name="New">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
279 |
<lengow>new</lengow>
|
280 |
</state>
|
281 |
+
<state name="ToShip">
|
282 |
<actions>
|
283 |
<action type="shipped">shippedOrder</action>
|
|
|
284 |
</actions>
|
285 |
<lengow>processing</lengow>
|
286 |
</state>
|
287 |
+
<state name="Completed">
|
288 |
<lengow>shipped</lengow>
|
289 |
</state>
|
290 |
+
<state name="Cancelled">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
291 |
<lengow>canceled</lengow>
|
292 |
</state>
|
|
|
|
|
|
|
293 |
</states>
|
294 |
+
<payments>
|
295 |
+
<payment name="NoPaymentFailure">
|
296 |
+
<lengow>complete</lengow>
|
297 |
+
</payment>
|
298 |
+
<payment name="PayPalPaymentInProcess">
|
299 |
+
<lengow>pending</lengow>
|
300 |
+
</payment>
|
301 |
+
<payment name="PayPalPaymentInProcess">
|
302 |
+
<lengow>pending</lengow>
|
303 |
+
</payment>
|
304 |
+
<payment name="MoneyXferAcceptedInCheckout">
|
305 |
+
<lengow>pending</lengow>
|
306 |
+
</payment>
|
307 |
+
<payment name="Complete">
|
308 |
+
<lengow>complete</lengow>
|
309 |
+
</payment>
|
310 |
+
<payment name="Incomplete">
|
311 |
+
<lengow>pending</lengow>
|
312 |
+
</payment>
|
313 |
+
<payment name="PaymentInProcess">
|
314 |
+
<lengow>pending</lengow>
|
315 |
+
</payment>
|
316 |
+
</payments>
|
317 |
<additional_params>
|
318 |
+
<param usedby="shipped">
|
319 |
<type>tracking</type>
|
320 |
<name>TrackingColis</name>
|
321 |
</param>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
322 |
</additional_params>
|
323 |
</marketplace>
|
324 |
+
<marketplace name="ebay_us">
|
325 |
+
<api>https://wsdl.lengow.com/wsdl/ebay_us/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
|
|
326 |
<states>
|
327 |
+
<state name="New">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
328 |
<lengow>new</lengow>
|
329 |
</state>
|
330 |
<state name="ToShip">
|
331 |
<actions>
|
332 |
<action type="shipped">shippedOrder</action>
|
|
|
|
|
333 |
</actions>
|
334 |
<lengow>processing</lengow>
|
335 |
</state>
|
336 |
+
<state name="Completed">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
337 |
<lengow>shipped</lengow>
|
338 |
</state>
|
|
|
|
|
|
|
339 |
<state name="Cancelled">
|
340 |
<lengow>canceled</lengow>
|
341 |
</state>
|
|
|
|
|
|
|
342 |
</states>
|
343 |
+
<payments>
|
344 |
+
<payment name="NoPaymentFailure">
|
345 |
+
<lengow>complete</lengow>
|
346 |
+
</payment>
|
347 |
+
<payment name="PayPalPaymentInProcess">
|
348 |
+
<lengow>pending</lengow>
|
349 |
+
</payment>
|
350 |
+
<payment name="PayPalPaymentInProcess">
|
351 |
+
<lengow>pending</lengow>
|
352 |
+
</payment>
|
353 |
+
<payment name="MoneyXferAcceptedInCheckout">
|
354 |
+
<lengow>pending</lengow>
|
355 |
+
</payment>
|
356 |
+
<payment name="Complete">
|
357 |
+
<lengow>complete</lengow>
|
358 |
+
</payment>
|
359 |
+
<payment name="Incomplete">
|
360 |
+
<lengow>pending</lengow>
|
361 |
+
</payment>
|
362 |
+
<payment name="PaymentInProcess">
|
363 |
+
<lengow>pending</lengow>
|
364 |
+
</payment>
|
365 |
+
</payments>
|
366 |
<additional_params>
|
367 |
<param usedby="shipped">
|
368 |
<type>tracking</type>
|
369 |
<name>TrackingColis</name>
|
370 |
</param>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
371 |
</additional_params>
|
372 |
</marketplace>
|
373 |
+
<marketplace name="ebay_at">
|
374 |
+
<api>https://wsdl.lengow.com/wsdl/ebay_at/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
375 |
<states>
|
376 |
+
<state name="New">
|
|
|
|
|
|
|
|
|
377 |
<lengow>new</lengow>
|
378 |
</state>
|
379 |
+
<state name="ToShip">
|
380 |
+
<actions>
|
381 |
+
<action type="shipped">shippedOrder</action>
|
382 |
+
</actions>
|
383 |
<lengow>processing</lengow>
|
384 |
</state>
|
385 |
+
<state name="Completed">
|
386 |
<lengow>shipped</lengow>
|
387 |
</state>
|
388 |
+
<state name="Cancelled">
|
389 |
<lengow>canceled</lengow>
|
390 |
</state>
|
391 |
</states>
|
392 |
+
<payments>
|
393 |
+
<payment name="NoPaymentFailure">
|
394 |
+
<lengow>complete</lengow>
|
395 |
+
</payment>
|
396 |
+
<payment name="PayPalPaymentInProcess">
|
397 |
+
<lengow>pending</lengow>
|
398 |
+
</payment>
|
399 |
+
<payment name="PayPalPaymentInProcess">
|
400 |
+
<lengow>pending</lengow>
|
401 |
+
</payment>
|
402 |
+
<payment name="MoneyXferAcceptedInCheckout">
|
403 |
+
<lengow>pending</lengow>
|
404 |
+
</payment>
|
405 |
+
<payment name="Complete">
|
406 |
+
<lengow>complete</lengow>
|
407 |
+
</payment>
|
408 |
+
<payment name="Incomplete">
|
409 |
+
<lengow>pending</lengow>
|
410 |
+
</payment>
|
411 |
+
<payment name="PaymentInProcess">
|
412 |
+
<lengow>pending</lengow>
|
413 |
+
</payment>
|
414 |
+
</payments>
|
415 |
<additional_params>
|
416 |
<param usedby="shipped">
|
417 |
<type>tracking</type>
|
418 |
<name>TrackingColis</name>
|
419 |
</param>
|
|
|
|
|
|
|
|
|
420 |
</additional_params>
|
421 |
</marketplace>
|
422 |
+
<marketplace name="ebay_au">
|
423 |
+
<api>https://wsdl.lengow.com/wsdl/ebay_au/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
424 |
<states>
|
425 |
+
<state name="New">
|
|
|
|
|
|
|
426 |
<lengow>new</lengow>
|
427 |
</state>
|
428 |
+
<state name="ToShip">
|
|
|
|
|
|
|
429 |
<actions>
|
430 |
<action type="shipped">shippedOrder</action>
|
431 |
</actions>
|
432 |
<lengow>processing</lengow>
|
433 |
</state>
|
434 |
+
<state name="Completed">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
435 |
<lengow>shipped</lengow>
|
436 |
</state>
|
437 |
+
<state name="Cancelled">
|
438 |
<lengow>canceled</lengow>
|
439 |
</state>
|
440 |
</states>
|
441 |
+
<payments>
|
442 |
+
<payment name="NoPaymentFailure">
|
443 |
+
<lengow>complete</lengow>
|
444 |
+
</payment>
|
445 |
+
<payment name="PayPalPaymentInProcess">
|
446 |
+
<lengow>pending</lengow>
|
447 |
+
</payment>
|
448 |
+
<payment name="PayPalPaymentInProcess">
|
449 |
+
<lengow>pending</lengow>
|
450 |
+
</payment>
|
451 |
+
<payment name="MoneyXferAcceptedInCheckout">
|
452 |
+
<lengow>pending</lengow>
|
453 |
+
</payment>
|
454 |
+
<payment name="Complete">
|
455 |
+
<lengow>complete</lengow>
|
456 |
+
</payment>
|
457 |
+
<payment name="Incomplete">
|
458 |
+
<lengow>pending</lengow>
|
459 |
+
</payment>
|
460 |
+
<payment name="PaymentInProcess">
|
461 |
+
<lengow>pending</lengow>
|
462 |
+
</payment>
|
463 |
+
</payments>
|
464 |
+
<additional_params>
|
465 |
+
<param usedby="shipped">
|
466 |
+
<type>tracking</type>
|
467 |
+
<name>TrackingColis</name>
|
468 |
</param>
|
469 |
</additional_params>
|
470 |
</marketplace>
|
471 |
+
<marketplace name="ebay_befr">
|
472 |
+
<api>https://wsdl.lengow.com/wsdl/ebay_befr/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
473 |
<states>
|
474 |
+
<state name="New">
|
|
|
|
|
|
|
475 |
<lengow>new</lengow>
|
476 |
</state>
|
477 |
+
<state name="ToShip">
|
478 |
<actions>
|
479 |
<action type="shipped">shippedOrder</action>
|
480 |
</actions>
|
481 |
<lengow>processing</lengow>
|
482 |
</state>
|
483 |
+
<state name="Completed">
|
484 |
<lengow>shipped</lengow>
|
485 |
</state>
|
486 |
+
<state name="Cancelled">
|
487 |
<lengow>canceled</lengow>
|
488 |
</state>
|
489 |
</states>
|
490 |
+
<payments>
|
491 |
+
<payment name="NoPaymentFailure">
|
492 |
+
<lengow>complete</lengow>
|
493 |
+
</payment>
|
494 |
+
<payment name="PayPalPaymentInProcess">
|
495 |
+
<lengow>pending</lengow>
|
496 |
+
</payment>
|
497 |
+
<payment name="PayPalPaymentInProcess">
|
498 |
+
<lengow>pending</lengow>
|
499 |
+
</payment>
|
500 |
+
<payment name="MoneyXferAcceptedInCheckout">
|
501 |
+
<lengow>pending</lengow>
|
502 |
+
</payment>
|
503 |
+
<payment name="Complete">
|
504 |
+
<lengow>complete</lengow>
|
505 |
+
</payment>
|
506 |
+
<payment name="Incomplete">
|
507 |
+
<lengow>pending</lengow>
|
508 |
+
</payment>
|
509 |
+
<payment name="PaymentInProcess">
|
510 |
+
<lengow>pending</lengow>
|
511 |
+
</payment>
|
512 |
+
</payments>
|
513 |
<additional_params>
|
514 |
<param usedby="shipped">
|
515 |
<type>tracking</type>
|
516 |
<name>TrackingColis</name>
|
517 |
</param>
|
|
|
|
|
|
|
|
|
518 |
</additional_params>
|
519 |
</marketplace>
|
520 |
+
<marketplace name="ebay_benl">
|
521 |
+
<api>https://wsdl.lengow.com/wsdl/ebay_benl/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
522 |
<states>
|
523 |
+
<state name="New">
|
524 |
<lengow>new</lengow>
|
525 |
</state>
|
526 |
+
<state name="ToShip">
|
527 |
<actions>
|
528 |
+
<action type="shipped">shippedOrder</action>
|
|
|
529 |
</actions>
|
530 |
<lengow>processing</lengow>
|
531 |
</state>
|
532 |
+
<state name="Completed">
|
533 |
<lengow>shipped</lengow>
|
534 |
</state>
|
535 |
+
<state name="Cancelled">
|
536 |
<lengow>canceled</lengow>
|
537 |
</state>
|
538 |
</states>
|
539 |
+
<payments>
|
540 |
+
<payment name="NoPaymentFailure">
|
541 |
+
<lengow>complete</lengow>
|
542 |
+
</payment>
|
543 |
+
<payment name="PayPalPaymentInProcess">
|
544 |
+
<lengow>pending</lengow>
|
545 |
+
</payment>
|
546 |
+
<payment name="PayPalPaymentInProcess">
|
547 |
+
<lengow>pending</lengow>
|
548 |
+
</payment>
|
549 |
+
<payment name="MoneyXferAcceptedInCheckout">
|
550 |
+
<lengow>pending</lengow>
|
551 |
+
</payment>
|
552 |
+
<payment name="Complete">
|
553 |
+
<lengow>complete</lengow>
|
554 |
+
</payment>
|
555 |
+
<payment name="Incomplete">
|
556 |
+
<lengow>pending</lengow>
|
557 |
+
</payment>
|
558 |
+
<payment name="PaymentInProcess">
|
559 |
+
<lengow>pending</lengow>
|
560 |
+
</payment>
|
561 |
+
</payments>
|
562 |
<additional_params>
|
563 |
<param usedby="shipped">
|
564 |
<type>tracking</type>
|
565 |
<name>TrackingColis</name>
|
566 |
</param>
|
|
|
|
|
|
|
|
|
567 |
</additional_params>
|
568 |
</marketplace>
|
569 |
+
<marketplace name="ebay_ca">
|
570 |
+
<api>https://wsdl.lengow.com/wsdl/ebay_ca/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
571 |
<states>
|
572 |
+
<state name="New">
|
573 |
+
<lengow>new</lengow>
|
574 |
+
</state>
|
575 |
+
<state name="ToShip">
|
576 |
<actions>
|
577 |
+
<action type="shipped">shippedOrder</action>
|
|
|
578 |
</actions>
|
579 |
<lengow>processing</lengow>
|
580 |
</state>
|
581 |
+
<state name="Completed">
|
582 |
<lengow>shipped</lengow>
|
583 |
</state>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
584 |
<state name="Cancelled">
|
585 |
<lengow>canceled</lengow>
|
586 |
</state>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
587 |
</states>
|
588 |
+
<payments>
|
589 |
+
<payment name="NoPaymentFailure">
|
590 |
+
<lengow>complete</lengow>
|
591 |
+
</payment>
|
592 |
+
<payment name="PayPalPaymentInProcess">
|
593 |
+
<lengow>pending</lengow>
|
594 |
+
</payment>
|
595 |
+
<payment name="PayPalPaymentInProcess">
|
596 |
+
<lengow>pending</lengow>
|
597 |
+
</payment>
|
598 |
+
<payment name="MoneyXferAcceptedInCheckout">
|
599 |
+
<lengow>pending</lengow>
|
600 |
+
</payment>
|
601 |
+
<payment name="Complete">
|
602 |
+
<lengow>complete</lengow>
|
603 |
+
</payment>
|
604 |
+
<payment name="Incomplete">
|
605 |
+
<lengow>pending</lengow>
|
606 |
+
</payment>
|
607 |
+
<payment name="PaymentInProcess">
|
608 |
+
<lengow>pending</lengow>
|
609 |
+
</payment>
|
610 |
+
</payments>
|
611 |
+
<additional_params>
|
612 |
+
<param usedby="shipped">
|
613 |
+
<type>tracking</type>
|
614 |
+
<name>TrackingColis</name>
|
615 |
+
</param>
|
616 |
+
</additional_params>
|
617 |
</marketplace>
|
618 |
+
<marketplace name="ebay_cafr">
|
619 |
+
<api>https://wsdl.lengow.com/wsdl/ebay_cafr/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
620 |
<states>
|
621 |
+
<state name="New">
|
622 |
<lengow>new</lengow>
|
|
|
|
|
|
|
|
|
623 |
</state>
|
624 |
+
<state name="ToShip">
|
625 |
<actions>
|
626 |
+
<action type="shipped">shippedOrder</action>
|
|
|
627 |
</actions>
|
628 |
<lengow>processing</lengow>
|
629 |
</state>
|
630 |
+
<state name="Completed">
|
631 |
<lengow>shipped</lengow>
|
632 |
</state>
|
633 |
+
<state name="Cancelled">
|
634 |
<lengow>canceled</lengow>
|
635 |
</state>
|
636 |
</states>
|
637 |
+
<payments>
|
638 |
+
<payment name="NoPaymentFailure">
|
639 |
+
<lengow>complete</lengow>
|
640 |
+
</payment>
|
641 |
+
<payment name="PayPalPaymentInProcess">
|
642 |
+
<lengow>pending</lengow>
|
643 |
+
</payment>
|
644 |
+
<payment name="PayPalPaymentInProcess">
|
645 |
+
<lengow>pending</lengow>
|
646 |
+
</payment>
|
647 |
+
<payment name="MoneyXferAcceptedInCheckout">
|
648 |
+
<lengow>pending</lengow>
|
649 |
+
</payment>
|
650 |
+
<payment name="Complete">
|
651 |
+
<lengow>complete</lengow>
|
652 |
+
</payment>
|
653 |
+
<payment name="Incomplete">
|
654 |
+
<lengow>pending</lengow>
|
655 |
+
</payment>
|
656 |
+
<payment name="PaymentInProcess">
|
657 |
+
<lengow>pending</lengow>
|
658 |
+
</payment>
|
659 |
+
</payments>
|
660 |
<additional_params>
|
661 |
<param usedby="shipped">
|
662 |
<type>tracking</type>
|
664 |
</param>
|
665 |
</additional_params>
|
666 |
</marketplace>
|
667 |
+
<marketplace name="ebay_ch">
|
668 |
+
<api>https://wsdl.lengow.com/wsdl/ebay_ch/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
669 |
<states>
|
670 |
+
<state name="New">
|
671 |
<lengow>new</lengow>
|
672 |
</state>
|
673 |
+
<state name="ToShip">
|
674 |
<actions>
|
675 |
+
<action type="shipped">shippedOrder</action>
|
|
|
676 |
</actions>
|
677 |
<lengow>processing</lengow>
|
678 |
</state>
|
679 |
+
<state name="Completed">
|
680 |
<lengow>shipped</lengow>
|
681 |
</state>
|
682 |
+
<state name="Cancelled">
|
683 |
<lengow>canceled</lengow>
|
684 |
</state>
|
685 |
</states>
|
686 |
+
<payments>
|
687 |
+
<payment name="NoPaymentFailure">
|
688 |
+
<lengow>complete</lengow>
|
689 |
+
</payment>
|
690 |
+
<payment name="PayPalPaymentInProcess">
|
691 |
+
<lengow>pending</lengow>
|
692 |
+
</payment>
|
693 |
+
<payment name="PayPalPaymentInProcess">
|
694 |
+
<lengow>pending</lengow>
|
695 |
+
</payment>
|
696 |
+
<payment name="MoneyXferAcceptedInCheckout">
|
697 |
+
<lengow>pending</lengow>
|
698 |
+
</payment>
|
699 |
+
<payment name="Complete">
|
700 |
+
<lengow>complete</lengow>
|
701 |
+
</payment>
|
702 |
+
<payment name="Incomplete">
|
703 |
+
<lengow>pending</lengow>
|
704 |
+
</payment>
|
705 |
+
<payment name="PaymentInProcess">
|
706 |
+
<lengow>pending</lengow>
|
707 |
+
</payment>
|
708 |
+
</payments>
|
709 |
<additional_params>
|
710 |
<param usedby="shipped">
|
711 |
<type>tracking</type>
|
712 |
<name>TrackingColis</name>
|
713 |
</param>
|
|
|
|
|
|
|
|
|
714 |
</additional_params>
|
715 |
</marketplace>
|
716 |
+
<marketplace name="ebay_de">
|
717 |
+
<api>https://wsdl.lengow.com/wsdl/ebay_de/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
718 |
<states>
|
719 |
+
<state name="New">
|
720 |
<lengow>new</lengow>
|
721 |
</state>
|
722 |
+
<state name="ToShip">
|
723 |
<actions>
|
724 |
+
<action type="shipped">shippedOrder</action>
|
725 |
</actions>
|
726 |
<lengow>processing</lengow>
|
727 |
</state>
|
728 |
+
<state name="Completed">
|
729 |
<lengow>shipped</lengow>
|
730 |
</state>
|
731 |
+
<state name="Cancelled">
|
732 |
<lengow>canceled</lengow>
|
733 |
</state>
|
734 |
</states>
|
735 |
+
<payments>
|
736 |
+
<payment name="NoPaymentFailure">
|
737 |
+
<lengow>complete</lengow>
|
738 |
+
</payment>
|
739 |
+
<payment name="PayPalPaymentInProcess">
|
740 |
+
<lengow>pending</lengow>
|
741 |
+
</payment>
|
742 |
+
<payment name="PayPalPaymentInProcess">
|
743 |
+
<lengow>pending</lengow>
|
744 |
+
</payment>
|
745 |
+
<payment name="MoneyXferAcceptedInCheckout">
|
746 |
+
<lengow>pending</lengow>
|
747 |
+
</payment>
|
748 |
+
<payment name="Complete">
|
749 |
+
<lengow>complete</lengow>
|
750 |
+
</payment>
|
751 |
+
<payment name="Incomplete">
|
752 |
+
<lengow>pending</lengow>
|
753 |
+
</payment>
|
754 |
+
<payment name="PaymentInProcess">
|
755 |
+
<lengow>pending</lengow>
|
756 |
+
</payment>
|
757 |
+
</payments>
|
758 |
<additional_params>
|
759 |
<param usedby="shipped">
|
760 |
<type>tracking</type>
|
761 |
<name>TrackingColis</name>
|
762 |
</param>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
763 |
</additional_params>
|
764 |
</marketplace>
|
765 |
+
<marketplace name="ebay_es">
|
766 |
+
<api>https://wsdl.lengow.com/wsdl/ebay_es/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
767 |
<states>
|
768 |
+
<state name="New">
|
769 |
+
<lengow>new</lengow>
|
770 |
+
</state>
|
771 |
+
<state name="ToShip">
|
772 |
+
<actions>
|
773 |
+
<action type="shipped">shippedOrder</action>
|
774 |
+
</actions>
|
775 |
<lengow>processing</lengow>
|
776 |
</state>
|
777 |
+
<state name="Completed">
|
778 |
<lengow>shipped</lengow>
|
779 |
</state>
|
780 |
+
<state name="Cancelled">
|
781 |
+
<lengow>canceled</lengow>
|
782 |
+
</state>
|
783 |
</states>
|
784 |
+
<payments>
|
785 |
+
<payment name="NoPaymentFailure">
|
786 |
+
<lengow>complete</lengow>
|
787 |
+
</payment>
|
788 |
+
<payment name="PayPalPaymentInProcess">
|
789 |
+
<lengow>pending</lengow>
|
790 |
+
</payment>
|
791 |
+
<payment name="PayPalPaymentInProcess">
|
792 |
+
<lengow>pending</lengow>
|
793 |
+
</payment>
|
794 |
+
<payment name="MoneyXferAcceptedInCheckout">
|
795 |
+
<lengow>pending</lengow>
|
796 |
+
</payment>
|
797 |
+
<payment name="Complete">
|
798 |
+
<lengow>complete</lengow>
|
799 |
+
</payment>
|
800 |
+
<payment name="Incomplete">
|
801 |
+
<lengow>pending</lengow>
|
802 |
+
</payment>
|
803 |
+
<payment name="PaymentInProcess">
|
804 |
+
<lengow>pending</lengow>
|
805 |
+
</payment>
|
806 |
+
</payments>
|
807 |
+
<additional_params>
|
808 |
+
<param usedby="shipped">
|
809 |
+
<type>tracking</type>
|
810 |
+
<name>TrackingColis</name>
|
811 |
+
</param>
|
812 |
+
</additional_params>
|
813 |
</marketplace>
|
814 |
+
<marketplace name="ebay_hk">
|
815 |
+
<api>https://wsdl.lengow.com/wsdl/ebay_hk/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
816 |
<states>
|
817 |
+
<state name="New">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
818 |
<lengow>new</lengow>
|
819 |
</state>
|
820 |
+
<state name="ToShip">
|
821 |
+
<actions>
|
822 |
+
<action type="shipped">shippedOrder</action>
|
823 |
+
</actions>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
824 |
<lengow>processing</lengow>
|
825 |
</state>
|
826 |
+
<state name="Completed">
|
827 |
<lengow>shipped</lengow>
|
828 |
</state>
|
829 |
+
<state name="Cancelled">
|
830 |
<lengow>canceled</lengow>
|
831 |
</state>
|
832 |
</states>
|
833 |
+
<payments>
|
834 |
+
<payment name="NoPaymentFailure">
|
835 |
+
<lengow>complete</lengow>
|
836 |
+
</payment>
|
837 |
+
<payment name="PayPalPaymentInProcess">
|
838 |
+
<lengow>pending</lengow>
|
839 |
+
</payment>
|
840 |
+
<payment name="PayPalPaymentInProcess">
|
841 |
+
<lengow>pending</lengow>
|
842 |
+
</payment>
|
843 |
+
<payment name="MoneyXferAcceptedInCheckout">
|
844 |
+
<lengow>pending</lengow>
|
845 |
+
</payment>
|
846 |
+
<payment name="Complete">
|
847 |
+
<lengow>complete</lengow>
|
848 |
+
</payment>
|
849 |
+
<payment name="Incomplete">
|
850 |
+
<lengow>pending</lengow>
|
851 |
+
</payment>
|
852 |
+
<payment name="PaymentInProcess">
|
853 |
+
<lengow>pending</lengow>
|
854 |
+
</payment>
|
855 |
+
</payments>
|
856 |
+
<additional_params>
|
857 |
+
<param usedby="shipped">
|
858 |
+
<type>tracking</type>
|
859 |
+
<name>TrackingColis</name>
|
860 |
+
</param>
|
861 |
+
</additional_params>
|
862 |
</marketplace>
|
863 |
+
<marketplace name="ebay_ie">
|
864 |
+
<api>https://wsdl.lengow.com/wsdl/ebay_ie/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
865 |
<states>
|
866 |
+
<state name="New">
|
|
|
|
|
|
|
867 |
<lengow>new</lengow>
|
868 |
</state>
|
869 |
+
<state name="ToShip">
|
|
|
870 |
<actions>
|
871 |
+
<action type="shipped">shippedOrder</action>
|
|
|
872 |
</actions>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
873 |
<lengow>processing</lengow>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
874 |
</state>
|
875 |
+
<state name="Completed">
|
876 |
<lengow>shipped</lengow>
|
877 |
</state>
|
878 |
+
<state name="Cancelled">
|
879 |
<lengow>canceled</lengow>
|
880 |
</state>
|
881 |
+
</states>
|
882 |
+
<payments>
|
883 |
+
<payment name="NoPaymentFailure">
|
884 |
+
<lengow>complete</lengow>
|
885 |
+
</payment>
|
886 |
+
<payment name="PayPalPaymentInProcess">
|
887 |
+
<lengow>pending</lengow>
|
888 |
+
</payment>
|
889 |
+
<payment name="PayPalPaymentInProcess">
|
890 |
+
<lengow>pending</lengow>
|
891 |
+
</payment>
|
892 |
+
<payment name="MoneyXferAcceptedInCheckout">
|
893 |
+
<lengow>pending</lengow>
|
894 |
+
</payment>
|
895 |
+
<payment name="Complete">
|
896 |
+
<lengow>complete</lengow>
|
897 |
+
</payment>
|
898 |
+
<payment name="Incomplete">
|
899 |
+
<lengow>pending</lengow>
|
900 |
+
</payment>
|
901 |
+
<payment name="PaymentInProcess">
|
902 |
+
<lengow>pending</lengow>
|
903 |
+
</payment>
|
904 |
+
</payments>
|
905 |
+
<additional_params>
|
906 |
+
<param usedby="shipped">
|
907 |
+
<type>tracking</type>
|
908 |
+
<name>TrackingColis</name>
|
909 |
+
</param>
|
910 |
+
</additional_params>
|
911 |
+
</marketplace>
|
912 |
+
<marketplace name="ebay_in">
|
913 |
+
<api>https://wsdl.lengow.com/wsdl/ebay_in/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
914 |
+
<states>
|
915 |
+
<state name="New">
|
916 |
+
<lengow>new</lengow>
|
917 |
</state>
|
918 |
+
<state name="ToShip">
|
919 |
+
<actions>
|
920 |
+
<action type="shipped">shippedOrder</action>
|
921 |
+
</actions>
|
922 |
<lengow>processing</lengow>
|
923 |
</state>
|
924 |
+
<state name="Completed">
|
925 |
+
<lengow>shipped</lengow>
|
926 |
</state>
|
927 |
+
<state name="Cancelled">
|
928 |
<lengow>canceled</lengow>
|
929 |
</state>
|
930 |
</states>
|
931 |
+
<payments>
|
932 |
+
<payment name="NoPaymentFailure">
|
933 |
+
<lengow>complete</lengow>
|
934 |
+
</payment>
|
935 |
+
<payment name="PayPalPaymentInProcess">
|
936 |
+
<lengow>pending</lengow>
|
937 |
+
</payment>
|
938 |
+
<payment name="PayPalPaymentInProcess">
|
939 |
+
<lengow>pending</lengow>
|
940 |
+
</payment>
|
941 |
+
<payment name="MoneyXferAcceptedInCheckout">
|
942 |
+
<lengow>pending</lengow>
|
943 |
+
</payment>
|
944 |
+
<payment name="Complete">
|
945 |
+
<lengow>complete</lengow>
|
946 |
+
</payment>
|
947 |
+
<payment name="Incomplete">
|
948 |
+
<lengow>pending</lengow>
|
949 |
+
</payment>
|
950 |
+
<payment name="PaymentInProcess">
|
951 |
+
<lengow>pending</lengow>
|
952 |
+
</payment>
|
953 |
+
</payments>
|
954 |
+
<additional_params>
|
955 |
+
<param usedby="shipped">
|
956 |
+
<type>tracking</type>
|
957 |
+
<name>TrackingColis</name>
|
958 |
+
</param>
|
959 |
+
</additional_params>
|
960 |
</marketplace>
|
961 |
+
<marketplace name="ebay_it">
|
962 |
+
<api>https://wsdl.lengow.com/wsdl/ebay_it/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
963 |
<states>
|
964 |
+
<state name="New">
|
965 |
<lengow>new</lengow>
|
966 |
</state>
|
967 |
+
<state name="ToShip">
|
|
|
968 |
<actions>
|
969 |
+
<action type="shipped">shippedOrder</action>
|
970 |
</actions>
|
971 |
+
<lengow>processing</lengow>
|
972 |
</state>
|
973 |
+
<state name="Completed">
|
|
|
|
|
|
|
974 |
<lengow>shipped</lengow>
|
975 |
</state>
|
976 |
+
<state name="Cancelled">
|
977 |
<lengow>canceled</lengow>
|
978 |
</state>
|
979 |
</states>
|
980 |
+
<payments>
|
981 |
+
<payment name="NoPaymentFailure">
|
982 |
+
<lengow>complete</lengow>
|
983 |
+
</payment>
|
984 |
+
<payment name="PayPalPaymentInProcess">
|
985 |
+
<lengow>pending</lengow>
|
986 |
+
</payment>
|
987 |
+
<payment name="PayPalPaymentInProcess">
|
988 |
+
<lengow>pending</lengow>
|
989 |
+
</payment>
|
990 |
+
<payment name="MoneyXferAcceptedInCheckout">
|
991 |
+
<lengow>pending</lengow>
|
992 |
+
</payment>
|
993 |
+
<payment name="Complete">
|
994 |
+
<lengow>complete</lengow>
|
995 |
+
</payment>
|
996 |
+
<payment name="Incomplete">
|
997 |
+
<lengow>pending</lengow>
|
998 |
+
</payment>
|
999 |
+
<payment name="PaymentInProcess">
|
1000 |
+
<lengow>pending</lengow>
|
1001 |
+
</payment>
|
1002 |
+
</payments>
|
1003 |
+
<additional_params>
|
1004 |
+
<param usedby="shipped">
|
1005 |
+
<type>tracking</type>
|
1006 |
+
<name>TrackingColis</name>
|
1007 |
+
</param>
|
1008 |
+
</additional_params>
|
1009 |
+
</marketplace>
|
1010 |
+
<marketplace name="ebay_my">
|
1011 |
+
<api>https://wsdl.lengow.com/wsdl/ebay_my/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
1012 |
+
<states>
|
1013 |
+
<state name="New">
|
1014 |
+
<lengow>new</lengow>
|
1015 |
+
</state>
|
1016 |
+
<state name="ToShip">
|
1017 |
+
<actions>
|
1018 |
+
<action type="shipped">shippedOrder</action>
|
1019 |
+
</actions>
|
1020 |
+
<lengow>processing</lengow>
|
1021 |
+
</state>
|
1022 |
+
<state name="Completed">
|
1023 |
+
<lengow>shipped</lengow>
|
1024 |
+
</state>
|
1025 |
+
<state name="Cancelled">
|
1026 |
+
<lengow>canceled</lengow>
|
1027 |
+
</state>
|
1028 |
+
</states>
|
1029 |
+
<payments>
|
1030 |
+
<payment name="NoPaymentFailure">
|
1031 |
+
<lengow>complete</lengow>
|
1032 |
+
</payment>
|
1033 |
+
<payment name="PayPalPaymentInProcess">
|
1034 |
+
<lengow>pending</lengow>
|
1035 |
+
</payment>
|
1036 |
+
<payment name="PayPalPaymentInProcess">
|
1037 |
+
<lengow>pending</lengow>
|
1038 |
+
</payment>
|
1039 |
+
<payment name="MoneyXferAcceptedInCheckout">
|
1040 |
+
<lengow>pending</lengow>
|
1041 |
+
</payment>
|
1042 |
+
<payment name="Complete">
|
1043 |
+
<lengow>complete</lengow>
|
1044 |
+
</payment>
|
1045 |
+
<payment name="Incomplete">
|
1046 |
+
<lengow>pending</lengow>
|
1047 |
+
</payment>
|
1048 |
+
<payment name="PaymentInProcess">
|
1049 |
+
<lengow>pending</lengow>
|
1050 |
+
</payment>
|
1051 |
+
</payments>
|
1052 |
+
<additional_params>
|
1053 |
+
<param usedby="shipped">
|
1054 |
+
<type>tracking</type>
|
1055 |
+
<name>TrackingColis</name>
|
1056 |
+
</param>
|
1057 |
+
</additional_params>
|
1058 |
+
</marketplace>
|
1059 |
+
<marketplace name="ebay_nl">
|
1060 |
+
<api>https://wsdl.lengow.com/wsdl/ebay_nl/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
1061 |
+
<states>
|
1062 |
+
<state name="New">
|
1063 |
+
<lengow>new</lengow>
|
1064 |
+
</state>
|
1065 |
+
<state name="ToShip">
|
1066 |
+
<actions>
|
1067 |
+
<action type="shipped">shippedOrder</action>
|
1068 |
+
</actions>
|
1069 |
+
<lengow>processing</lengow>
|
1070 |
+
</state>
|
1071 |
+
<state name="Completed">
|
1072 |
+
<lengow>shipped</lengow>
|
1073 |
+
</state>
|
1074 |
+
<state name="Cancelled">
|
1075 |
+
<lengow>canceled</lengow>
|
1076 |
+
</state>
|
1077 |
+
</states>
|
1078 |
+
<payments>
|
1079 |
+
<payment name="NoPaymentFailure">
|
1080 |
+
<lengow>complete</lengow>
|
1081 |
+
</payment>
|
1082 |
+
<payment name="PayPalPaymentInProcess">
|
1083 |
+
<lengow>pending</lengow>
|
1084 |
+
</payment>
|
1085 |
+
<payment name="PayPalPaymentInProcess">
|
1086 |
+
<lengow>pending</lengow>
|
1087 |
+
</payment>
|
1088 |
+
<payment name="MoneyXferAcceptedInCheckout">
|
1089 |
+
<lengow>pending</lengow>
|
1090 |
+
</payment>
|
1091 |
+
<payment name="Complete">
|
1092 |
+
<lengow>complete</lengow>
|
1093 |
+
</payment>
|
1094 |
+
<payment name="Incomplete">
|
1095 |
+
<lengow>pending</lengow>
|
1096 |
+
</payment>
|
1097 |
+
<payment name="PaymentInProcess">
|
1098 |
+
<lengow>pending</lengow>
|
1099 |
+
</payment>
|
1100 |
+
</payments>
|
1101 |
+
<additional_params>
|
1102 |
+
<param usedby="shipped">
|
1103 |
+
<type>tracking</type>
|
1104 |
+
<name>TrackingColis</name>
|
1105 |
+
</param>
|
1106 |
+
</additional_params>
|
1107 |
+
</marketplace>
|
1108 |
+
<marketplace name="ebay_ph">
|
1109 |
+
<api>https://wsdl.lengow.com/wsdl/ebay_ph/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
1110 |
+
<states>
|
1111 |
+
<state name="New">
|
1112 |
+
<lengow>new</lengow>
|
1113 |
+
</state>
|
1114 |
+
<state name="ToShip">
|
1115 |
+
<actions>
|
1116 |
+
<action type="shipped">shippedOrder</action>
|
1117 |
+
</actions>
|
1118 |
+
<lengow>processing</lengow>
|
1119 |
+
</state>
|
1120 |
+
<state name="Completed">
|
1121 |
+
<lengow>shipped</lengow>
|
1122 |
+
</state>
|
1123 |
+
<state name="Cancelled">
|
1124 |
+
<lengow>canceled</lengow>
|
1125 |
+
</state>
|
1126 |
+
</states>
|
1127 |
+
<payments>
|
1128 |
+
<payment name="NoPaymentFailure">
|
1129 |
+
<lengow>complete</lengow>
|
1130 |
+
</payment>
|
1131 |
+
<payment name="PayPalPaymentInProcess">
|
1132 |
+
<lengow>pending</lengow>
|
1133 |
+
</payment>
|
1134 |
+
<payment name="PayPalPaymentInProcess">
|
1135 |
+
<lengow>pending</lengow>
|
1136 |
+
</payment>
|
1137 |
+
<payment name="MoneyXferAcceptedInCheckout">
|
1138 |
+
<lengow>pending</lengow>
|
1139 |
+
</payment>
|
1140 |
+
<payment name="Complete">
|
1141 |
+
<lengow>complete</lengow>
|
1142 |
+
</payment>
|
1143 |
+
<payment name="Incomplete">
|
1144 |
+
<lengow>pending</lengow>
|
1145 |
+
</payment>
|
1146 |
+
<payment name="PaymentInProcess">
|
1147 |
+
<lengow>pending</lengow>
|
1148 |
+
</payment>
|
1149 |
+
</payments>
|
1150 |
+
<additional_params>
|
1151 |
+
<param usedby="shipped">
|
1152 |
+
<type>tracking</type>
|
1153 |
+
<name>TrackingColis</name>
|
1154 |
+
</param>
|
1155 |
+
</additional_params>
|
1156 |
+
</marketplace>
|
1157 |
+
<marketplace name="ebay_pl">
|
1158 |
+
<api>https://wsdl.lengow.com/wsdl/ebay_pl/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
1159 |
+
<states>
|
1160 |
+
<state name="New">
|
1161 |
+
<lengow>new</lengow>
|
1162 |
+
</state>
|
1163 |
+
<state name="ToShip">
|
1164 |
+
<actions>
|
1165 |
+
<action type="shipped">shippedOrder</action>
|
1166 |
+
</actions>
|
1167 |
+
<lengow>processing</lengow>
|
1168 |
+
</state>
|
1169 |
+
<state name="Completed">
|
1170 |
+
<lengow>shipped</lengow>
|
1171 |
+
</state>
|
1172 |
+
<state name="Cancelled">
|
1173 |
+
<lengow>canceled</lengow>
|
1174 |
+
</state>
|
1175 |
+
</states>
|
1176 |
+
<payments>
|
1177 |
+
<payment name="NoPaymentFailure">
|
1178 |
+
<lengow>complete</lengow>
|
1179 |
+
</payment>
|
1180 |
+
<payment name="PayPalPaymentInProcess">
|
1181 |
+
<lengow>pending</lengow>
|
1182 |
+
</payment>
|
1183 |
+
<payment name="PayPalPaymentInProcess">
|
1184 |
+
<lengow>pending</lengow>
|
1185 |
+
</payment>
|
1186 |
+
<payment name="MoneyXferAcceptedInCheckout">
|
1187 |
+
<lengow>pending</lengow>
|
1188 |
+
</payment>
|
1189 |
+
<payment name="Complete">
|
1190 |
+
<lengow>complete</lengow>
|
1191 |
+
</payment>
|
1192 |
+
<payment name="Incomplete">
|
1193 |
+
<lengow>pending</lengow>
|
1194 |
+
</payment>
|
1195 |
+
<payment name="PaymentInProcess">
|
1196 |
+
<lengow>pending</lengow>
|
1197 |
+
</payment>
|
1198 |
+
</payments>
|
1199 |
+
<additional_params>
|
1200 |
+
<param usedby="shipped">
|
1201 |
+
<type>tracking</type>
|
1202 |
+
<name>TrackingColis</name>
|
1203 |
+
</param>
|
1204 |
+
</additional_params>
|
1205 |
+
</marketplace>
|
1206 |
+
<marketplace name="ebay_sg">
|
1207 |
+
<api>https://wsdl.lengow.com/wsdl/ebay_sg/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
1208 |
+
<states>
|
1209 |
+
<state name="New">
|
1210 |
+
<lengow>new</lengow>
|
1211 |
+
</state>
|
1212 |
+
<state name="ToShip">
|
1213 |
+
<actions>
|
1214 |
+
<action type="shipped">shippedOrder</action>
|
1215 |
+
</actions>
|
1216 |
+
<lengow>processing</lengow>
|
1217 |
+
</state>
|
1218 |
+
<state name="Completed">
|
1219 |
+
<lengow>shipped</lengow>
|
1220 |
+
</state>
|
1221 |
+
<state name="Cancelled">
|
1222 |
+
<lengow>canceled</lengow>
|
1223 |
+
</state>
|
1224 |
+
</states>
|
1225 |
+
<payments>
|
1226 |
+
<payment name="NoPaymentFailure">
|
1227 |
+
<lengow>complete</lengow>
|
1228 |
+
</payment>
|
1229 |
+
<payment name="PayPalPaymentInProcess">
|
1230 |
+
<lengow>pending</lengow>
|
1231 |
+
</payment>
|
1232 |
+
<payment name="PayPalPaymentInProcess">
|
1233 |
+
<lengow>pending</lengow>
|
1234 |
+
</payment>
|
1235 |
+
<payment name="MoneyXferAcceptedInCheckout">
|
1236 |
+
<lengow>pending</lengow>
|
1237 |
+
</payment>
|
1238 |
+
<payment name="Complete">
|
1239 |
+
<lengow>complete</lengow>
|
1240 |
+
</payment>
|
1241 |
+
<payment name="Incomplete">
|
1242 |
+
<lengow>pending</lengow>
|
1243 |
+
</payment>
|
1244 |
+
<payment name="PaymentInProcess">
|
1245 |
+
<lengow>pending</lengow>
|
1246 |
+
</payment>
|
1247 |
+
</payments>
|
1248 |
+
<additional_params>
|
1249 |
+
<param usedby="shipped">
|
1250 |
+
<type>tracking</type>
|
1251 |
+
<name>TrackingColis</name>
|
1252 |
+
</param>
|
1253 |
+
</additional_params>
|
1254 |
+
</marketplace>
|
1255 |
+
<marketplace name="ebay_uk">
|
1256 |
+
<api>https://wsdl.lengow.com/wsdl/ebay_uk/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
1257 |
+
<states>
|
1258 |
+
<state name="New">
|
1259 |
+
<lengow>new</lengow>
|
1260 |
+
</state>
|
1261 |
+
<state name="ToShip">
|
1262 |
+
<actions>
|
1263 |
+
<action type="shipped">shippedOrder</action>
|
1264 |
+
</actions>
|
1265 |
+
<lengow>processing</lengow>
|
1266 |
+
</state>
|
1267 |
+
<state name="Completed">
|
1268 |
+
<lengow>shipped</lengow>
|
1269 |
+
</state>
|
1270 |
+
<state name="Cancelled">
|
1271 |
+
<lengow>canceled</lengow>
|
1272 |
+
</state>
|
1273 |
+
</states>
|
1274 |
+
<payments>
|
1275 |
+
<payment name="NoPaymentFailure">
|
1276 |
+
<lengow>complete</lengow>
|
1277 |
+
</payment>
|
1278 |
+
<payment name="PayPalPaymentInProcess">
|
1279 |
+
<lengow>pending</lengow>
|
1280 |
+
</payment>
|
1281 |
+
<payment name="PayPalPaymentInProcess">
|
1282 |
+
<lengow>pending</lengow>
|
1283 |
+
</payment>
|
1284 |
+
<payment name="MoneyXferAcceptedInCheckout">
|
1285 |
+
<lengow>pending</lengow>
|
1286 |
+
</payment>
|
1287 |
+
<payment name="Complete">
|
1288 |
+
<lengow>complete</lengow>
|
1289 |
+
</payment>
|
1290 |
+
<payment name="Incomplete">
|
1291 |
+
<lengow>pending</lengow>
|
1292 |
+
</payment>
|
1293 |
+
<payment name="PaymentInProcess">
|
1294 |
+
<lengow>pending</lengow>
|
1295 |
+
</payment>
|
1296 |
+
</payments>
|
1297 |
+
<additional_params>
|
1298 |
+
<param usedby="shipped">
|
1299 |
+
<type>tracking</type>
|
1300 |
+
<name>TrackingColis</name>
|
1301 |
+
</param>
|
1302 |
+
</additional_params>
|
1303 |
+
</marketplace>
|
1304 |
+
<marketplace name="cdiscount">
|
1305 |
+
<api>https://wsdl.lengow.com/wsdl/cdiscount/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
1306 |
+
<states>
|
1307 |
+
<state name="WaitingForSellerAcceptation">
|
1308 |
+
<actions>
|
1309 |
+
<action type="accept">acceptOrder</action>
|
1310 |
+
<action type="refuse">refuseOrder</action>
|
1311 |
+
</actions>
|
1312 |
+
<lengow>new</lengow>
|
1313 |
+
</state>
|
1314 |
+
<state name="AcceptedBySeller">
|
1315 |
+
<lengow>new</lengow>
|
1316 |
+
</state>
|
1317 |
+
<state name="PaymentInProgress">
|
1318 |
+
<lengow>new</lengow>
|
1319 |
+
</state>
|
1320 |
+
<state name="ValidatedFianet">
|
1321 |
+
<lengow>new</lengow>
|
1322 |
+
</state>
|
1323 |
+
<state name="WaitingForShipmentAcceptation">
|
1324 |
+
<actions>
|
1325 |
+
<action type="shipped">shippedOrder</action>
|
1326 |
+
<action type="refuse">refuseShipment</action>
|
1327 |
+
</actions>
|
1328 |
+
<lengow>processing</lengow>
|
1329 |
+
</state>
|
1330 |
+
<state name="Shipped">
|
1331 |
+
<lengow>shipped</lengow>
|
1332 |
+
</state>
|
1333 |
+
<state name="">
|
1334 |
+
<lengow>canceled</lengow>
|
1335 |
+
</state>
|
1336 |
+
<state name="ShipmentRefusedBySeller">
|
1337 |
+
<lengow>canceled</lengow>
|
1338 |
+
</state>
|
1339 |
+
<state name="PaymentRefused">
|
1340 |
+
<lengow>canceled</lengow>
|
1341 |
+
</state>
|
1342 |
+
<state name="CancelledByCustomer">
|
1343 |
+
<lengow>canceled</lengow>
|
1344 |
+
</state>
|
1345 |
+
<state name="RefusedNotShipment">
|
1346 |
+
<lengow>canceled</lengow>
|
1347 |
+
</state>
|
1348 |
+
<state name="AutomaticCancellation">
|
1349 |
+
<lengow>canceled</lengow>
|
1350 |
+
</state>
|
1351 |
+
<state name="CancelledBeforePaymentByCustomer">
|
1352 |
+
<lengow>canceled</lengow>
|
1353 |
+
</state>
|
1354 |
+
<state name="CancelledBeforeNotificationByCustomer">
|
1355 |
+
<lengow>canceled</lengow>
|
1356 |
+
</state>
|
1357 |
+
<state name="CancellationRequestPending">
|
1358 |
+
<lengow>canceled</lengow>
|
1359 |
+
</state>
|
1360 |
+
<state name="NonPickedUpByCustomer">
|
1361 |
+
<lengow>canceled</lengow>
|
1362 |
+
</state>
|
1363 |
+
<state name="RefusedBySeller">
|
1364 |
+
<lengow>canceled</lengow>
|
1365 |
+
</state>
|
1366 |
+
<state name="PickedUp">
|
1367 |
+
<lengow>shipped</lengow>
|
1368 |
+
</state>
|
1369 |
+
<state name="ShippedBySeller">
|
1370 |
+
<lengow>shipped</lengow>
|
1371 |
+
</state>
|
1372 |
+
</states>
|
1373 |
+
<additional_params>
|
1374 |
+
<param usedby="shipped" require="carrier">
|
1375 |
+
<type>tracking</type>
|
1376 |
+
<name>TrackingColis</name>
|
1377 |
+
</param>
|
1378 |
+
<param usedby="shipped" require="tracking">
|
1379 |
+
<type>carrier</type>
|
1380 |
+
<name>Transporteur</name>
|
1381 |
+
<accepted_values>
|
1382 |
+
<value label="La Poste" default="true">LAPOSTE</value>
|
1383 |
+
<value label="DHL">DHL</value>
|
1384 |
+
<value label="Fedex">FEDEX</value>
|
1385 |
+
<value label="GLS">GLS</value>
|
1386 |
+
<value label="UPS">UPS</value>
|
1387 |
+
<value label="TAT Express">TAT</value>
|
1388 |
+
<value label="TNT">TNT</value>
|
1389 |
+
<value label="Mondial Relay">MONDIALRELAY</value>
|
1390 |
+
<value label="SERNAM">SERNAM</value>
|
1391 |
+
<value label="Geodis Calberson">GEODISCALBERSON</value>
|
1392 |
+
<value label="France Express">FRANCEEXPRESS</value>
|
1393 |
+
<value label="SDEN">FRANCSDENEEXPRESS</value>
|
1394 |
+
<value label="CHRONOPOST">Chronopost</value>
|
1395 |
+
<value label="TATEX">TATEX</value>
|
1396 |
+
<value label="SCHENKER JOYAU">SCHENKER_JOYAU</value>
|
1397 |
+
<value label="Relais colis">Relais_colis</value>
|
1398 |
+
<value label="Gefco">Gefco</value>
|
1399 |
+
<value label="MORY">MORY</value>
|
1400 |
+
<value label="Heppner">Heppner</value>
|
1401 |
+
<value label="Exapaq">Exapaq</value>
|
1402 |
+
<value label="Mazet">Mazet</value>
|
1403 |
+
<value label="SIC EXPRESS">SICEXPRESS</value>
|
1404 |
+
<value label="TMB">TMB</value>
|
1405 |
+
<value label="DPD">DPD</value>
|
1406 |
+
</accepted_values>
|
1407 |
+
</param>
|
1408 |
+
<param usedby="shipped">
|
1409 |
+
<type>tracking_url</type>
|
1410 |
+
<name>TrackingUrl</name>
|
1411 |
+
</param>
|
1412 |
+
</additional_params>
|
1413 |
+
<carriers>
|
1414 |
+
<carrier code='SO1'>socolissimo</carrier>
|
1415 |
+
<carrier code='STD'>standard</carrier>
|
1416 |
+
<carrier code='TRK'>suivi</carrier>
|
1417 |
+
<carrier code='REG'>recommande</carrier>
|
1418 |
+
<carrier code='COL'>colissimo</carrier>
|
1419 |
+
<carrier code='RCO'>relaiscolis</carrier>
|
1420 |
+
<carrier code='REL'>mondialrelay</carrier>
|
1421 |
+
<carrier code='MAG'>inshop</carrier>
|
1422 |
+
</carriers>
|
1423 |
+
</marketplace>
|
1424 |
+
<marketplace name="moncornerdeco">
|
1425 |
+
<api>https://wsdl.lengow.com/wsdl/moncornerdeco/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
1426 |
+
<states>
|
1427 |
+
<state name="WaitingForSellerAcceptation">
|
1428 |
+
<actions>
|
1429 |
+
<action type="accept">acceptOrder</action>
|
1430 |
+
<action type="refuse">refuseOrder</action>
|
1431 |
+
</actions>
|
1432 |
+
<lengow>new</lengow>
|
1433 |
+
</state>
|
1434 |
+
<state name="AcceptedBySeller">
|
1435 |
+
<lengow>new</lengow>
|
1436 |
+
</state>
|
1437 |
+
<state name="PaymentInProgress">
|
1438 |
+
<lengow>new</lengow>
|
1439 |
+
</state>
|
1440 |
+
<state name="ValidatedFianet">
|
1441 |
+
<lengow>new</lengow>
|
1442 |
+
</state>
|
1443 |
+
<state name="WaitingForShipmentAcceptation">
|
1444 |
+
<actions>
|
1445 |
+
<action type="shipped">shippedOrder</action>
|
1446 |
+
<action type="refuse">refuseShipment</action>
|
1447 |
+
</actions>
|
1448 |
+
<lengow>processing</lengow>
|
1449 |
+
</state>
|
1450 |
+
<state name="Shipped">
|
1451 |
+
<lengow>shipped</lengow>
|
1452 |
+
</state>
|
1453 |
+
<state name="">
|
1454 |
+
<lengow>canceled</lengow>
|
1455 |
+
</state>
|
1456 |
+
<state name="ShipmentRefusedBySeller">
|
1457 |
+
<lengow>canceled</lengow>
|
1458 |
+
</state>
|
1459 |
+
<state name="PaymentRefused">
|
1460 |
+
<lengow>canceled</lengow>
|
1461 |
+
</state>
|
1462 |
+
<state name="CancelledByCustomer">
|
1463 |
+
<lengow>canceled</lengow>
|
1464 |
+
</state>
|
1465 |
+
<state name="RefusedNotShipment">
|
1466 |
+
<lengow>canceled</lengow>
|
1467 |
+
</state>
|
1468 |
+
<state name="AutomaticCancellation">
|
1469 |
+
<lengow>canceled</lengow>
|
1470 |
+
</state>
|
1471 |
+
<state name="CancelledBeforePaymentByCustomer">
|
1472 |
+
<lengow>canceled</lengow>
|
1473 |
+
</state>
|
1474 |
+
<state name="CancelledBeforeNotificationByCustomer">
|
1475 |
+
<lengow>canceled</lengow>
|
1476 |
+
</state>
|
1477 |
+
<state name="CancellationRequestPending">
|
1478 |
+
<lengow>canceled</lengow>
|
1479 |
+
</state>
|
1480 |
+
<state name="RefusedBySeller">
|
1481 |
+
<lengow>canceled</lengow>
|
1482 |
+
</state>
|
1483 |
+
<state name="PickedUp">
|
1484 |
+
<lengow>shipped</lengow>
|
1485 |
+
</state>
|
1486 |
+
</states>
|
1487 |
+
<additional_params>
|
1488 |
+
<param usedby="shipped" require="carrier">
|
1489 |
+
<type>tracking</type>
|
1490 |
+
<name>TrackingColis</name>
|
1491 |
+
</param>
|
1492 |
+
<param usedby="shipped" require="tracking">
|
1493 |
+
<type>carrier</type>
|
1494 |
+
<name>Transporteur</name>
|
1495 |
+
<accepted_values>
|
1496 |
+
<value label="La Poste" default="true">LAPOSTE</value>
|
1497 |
+
<value label="DHL">DHL</value>
|
1498 |
+
<value label="Fedex">FEDEX</value>
|
1499 |
+
<value label="GLS">GLS</value>
|
1500 |
+
<value label="UPS">UPS</value>
|
1501 |
+
<value label="TAT Express">TAT</value>
|
1502 |
+
<value label="TNT">TNT</value>
|
1503 |
+
<value label="Mondial Relay">MONDIALRELAY</value>
|
1504 |
+
<value label="SERNAM">SERNAM</value>
|
1505 |
+
<value label="Geodis Calberson">GEODISCALBERSON</value>
|
1506 |
+
<value label="France Express">FRANCEEXPRESS</value>
|
1507 |
+
<value label="SDEN">FRANCSDENEEXPRESS</value>
|
1508 |
+
<value label="CHRONOPOST">Chronopost</value>
|
1509 |
+
<value label="TATEX">TATEX</value>
|
1510 |
+
<value label="SCHENKER JOYAU">SCHENKER_JOYAU</value>
|
1511 |
+
<value label="Relais colis">Relais_colis</value>
|
1512 |
+
<value label="Gefco">Gefco</value>
|
1513 |
+
<value label="MORY">MORY</value>
|
1514 |
+
<value label="Heppner">Heppner</value>
|
1515 |
+
<value label="Exapaq">Exapaq</value>
|
1516 |
+
<value label="Mazet">Mazet</value>
|
1517 |
+
<value label="SIC EXPRESS">SICEXPRESS</value>
|
1518 |
+
<value label="TMB">TMB</value>
|
1519 |
+
<value label="DPD">DPD</value>
|
1520 |
+
</accepted_values>
|
1521 |
+
</param>
|
1522 |
+
<param usedby="shipped">
|
1523 |
+
<type>tracking_url</type>
|
1524 |
+
<name>TrackingUrl</name>
|
1525 |
+
</param>
|
1526 |
+
</additional_params>
|
1527 |
+
</marketplace>
|
1528 |
+
<marketplace name="moncornerbaby">
|
1529 |
+
<api>https://wsdl.lengow.com/wsdl/moncornerbaby/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
1530 |
+
<states>
|
1531 |
+
<state name="WaitingForSellerAcceptation">
|
1532 |
+
<actions>
|
1533 |
+
<action type="accept">acceptOrder</action>
|
1534 |
+
<action type="refuse">refuseOrder</action>
|
1535 |
+
</actions>
|
1536 |
+
<lengow>new</lengow>
|
1537 |
+
</state>
|
1538 |
+
<state name="AcceptedBySeller">
|
1539 |
+
<lengow>new</lengow>
|
1540 |
+
</state>
|
1541 |
+
<state name="PaymentInProgress">
|
1542 |
+
<lengow>new</lengow>
|
1543 |
+
</state>
|
1544 |
+
<state name="ValidatedFianet">
|
1545 |
+
<lengow>new</lengow>
|
1546 |
+
</state>
|
1547 |
+
<state name="WaitingForShipmentAcceptation">
|
1548 |
+
<actions>
|
1549 |
+
<action type="shipped">shippedOrder</action>
|
1550 |
+
<action type="refuse">refuseShipment</action>
|
1551 |
+
</actions>
|
1552 |
+
<lengow>processing</lengow>
|
1553 |
+
</state>
|
1554 |
+
<state name="Shipped">
|
1555 |
+
<lengow>shipped</lengow>
|
1556 |
+
</state>
|
1557 |
+
<state name="">
|
1558 |
+
<lengow>canceled</lengow>
|
1559 |
+
</state>
|
1560 |
+
<state name="ShipmentRefusedBySeller">
|
1561 |
+
<lengow>canceled</lengow>
|
1562 |
+
</state>
|
1563 |
+
<state name="PaymentRefused">
|
1564 |
+
<lengow>canceled</lengow>
|
1565 |
+
</state>
|
1566 |
+
<state name="CancelledByCustomer">
|
1567 |
+
<lengow>canceled</lengow>
|
1568 |
+
</state>
|
1569 |
+
<state name="RefusedNotShipment">
|
1570 |
+
<lengow>canceled</lengow>
|
1571 |
+
</state>
|
1572 |
+
<state name="AutomaticCancellation">
|
1573 |
+
<lengow>canceled</lengow>
|
1574 |
+
</state>
|
1575 |
+
<state name="CancelledBeforePaymentByCustomer">
|
1576 |
+
<lengow>canceled</lengow>
|
1577 |
+
</state>
|
1578 |
+
<state name="CancelledBeforeNotificationByCustomer">
|
1579 |
+
<lengow>canceled</lengow>
|
1580 |
+
</state>
|
1581 |
+
<state name="CancellationRequestPending">
|
1582 |
+
<lengow>canceled</lengow>
|
1583 |
+
</state>
|
1584 |
+
<state name="RefusedBySeller">
|
1585 |
+
<lengow>canceled</lengow>
|
1586 |
+
</state>
|
1587 |
+
<state name="PickedUp">
|
1588 |
+
<lengow>shipped</lengow>
|
1589 |
+
</state>
|
1590 |
+
</states>
|
1591 |
+
<additional_params>
|
1592 |
+
<param usedby="shipped" require="carrier">
|
1593 |
+
<type>tracking</type>
|
1594 |
+
<name>TrackingColis</name>
|
1595 |
+
</param>
|
1596 |
+
<param usedby="shipped" require="tracking">
|
1597 |
+
<type>carrier</type>
|
1598 |
+
<name>Transporteur</name>
|
1599 |
+
<accepted_values>
|
1600 |
+
<value label="La Poste" default="true">LAPOSTE</value>
|
1601 |
+
<value label="DHL">DHL</value>
|
1602 |
+
<value label="Fedex">FEDEX</value>
|
1603 |
+
<value label="GLS">GLS</value>
|
1604 |
+
<value label="UPS">UPS</value>
|
1605 |
+
<value label="TAT Express">TAT</value>
|
1606 |
+
<value label="TNT">TNT</value>
|
1607 |
+
<value label="Mondial Relay">MONDIALRELAY</value>
|
1608 |
+
<value label="SERNAM">SERNAM</value>
|
1609 |
+
<value label="Geodis Calberson">GEODISCALBERSON</value>
|
1610 |
+
<value label="France Express">FRANCEEXPRESS</value>
|
1611 |
+
<value label="SDEN">FRANCSDENEEXPRESS</value>
|
1612 |
+
<value label="CHRONOPOST">Chronopost</value>
|
1613 |
+
<value label="TATEX">TATEX</value>
|
1614 |
+
<value label="SCHENKER JOYAU">SCHENKER_JOYAU</value>
|
1615 |
+
<value label="Relais colis">Relais_colis</value>
|
1616 |
+
<value label="Gefco">Gefco</value>
|
1617 |
+
<value label="MORY">MORY</value>
|
1618 |
+
<value label="Heppner">Heppner</value>
|
1619 |
+
<value label="Exapaq">Exapaq</value>
|
1620 |
+
<value label="Mazet">Mazet</value>
|
1621 |
+
<value label="SIC EXPRESS">SICEXPRESS</value>
|
1622 |
+
<value label="TMB">TMB</value>
|
1623 |
+
<value label="DPD">DPD</value>
|
1624 |
+
</accepted_values>
|
1625 |
+
</param>
|
1626 |
+
<param usedby="shipped">
|
1627 |
+
<type>tracking_url</type>
|
1628 |
+
<name>TrackingUrl</name>
|
1629 |
+
</param>
|
1630 |
+
</additional_params>
|
1631 |
+
</marketplace>
|
1632 |
+
<marketplace name="moncornerjardin">
|
1633 |
+
<api>https://wsdl.lengow.com/wsdl/moncornerjardin/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
1634 |
+
<states>
|
1635 |
+
<state name="WaitingForSellerAcceptation">
|
1636 |
+
<actions>
|
1637 |
+
<action type="accept">acceptOrder</action>
|
1638 |
+
<action type="refuse">refuseOrder</action>
|
1639 |
+
</actions>
|
1640 |
+
<lengow>new</lengow>
|
1641 |
+
</state>
|
1642 |
+
<state name="AcceptedBySeller">
|
1643 |
+
<lengow>new</lengow>
|
1644 |
+
</state>
|
1645 |
+
<state name="PaymentInProgress">
|
1646 |
+
<lengow>new</lengow>
|
1647 |
+
</state>
|
1648 |
+
<state name="ValidatedFianet">
|
1649 |
+
<lengow>new</lengow>
|
1650 |
+
</state>
|
1651 |
+
<state name="WaitingForShipmentAcceptation">
|
1652 |
+
<actions>
|
1653 |
+
<action type="shipped">shippedOrder</action>
|
1654 |
+
<action type="refuse">refuseShipment</action>
|
1655 |
+
</actions>
|
1656 |
+
<lengow>processing</lengow>
|
1657 |
+
</state>
|
1658 |
+
<state name="Shipped">
|
1659 |
+
<lengow>shipped</lengow>
|
1660 |
+
</state>
|
1661 |
+
<state name="">
|
1662 |
+
<lengow>canceled</lengow>
|
1663 |
+
</state>
|
1664 |
+
<state name="ShipmentRefusedBySeller">
|
1665 |
+
<lengow>canceled</lengow>
|
1666 |
+
</state>
|
1667 |
+
<state name="PaymentRefused">
|
1668 |
+
<lengow>canceled</lengow>
|
1669 |
+
</state>
|
1670 |
+
<state name="CancelledByCustomer">
|
1671 |
+
<lengow>canceled</lengow>
|
1672 |
+
</state>
|
1673 |
+
<state name="RefusedNotShipment">
|
1674 |
+
<lengow>canceled</lengow>
|
1675 |
+
</state>
|
1676 |
+
<state name="AutomaticCancellation">
|
1677 |
+
<lengow>canceled</lengow>
|
1678 |
+
</state>
|
1679 |
+
<state name="CancelledBeforePaymentByCustomer">
|
1680 |
+
<lengow>canceled</lengow>
|
1681 |
+
</state>
|
1682 |
+
<state name="CancelledBeforeNotificationByCustomer">
|
1683 |
+
<lengow>canceled</lengow>
|
1684 |
+
</state>
|
1685 |
+
<state name="CancellationRequestPending">
|
1686 |
+
<lengow>canceled</lengow>
|
1687 |
+
</state>
|
1688 |
+
<state name="RefusedBySeller">
|
1689 |
+
<lengow>canceled</lengow>
|
1690 |
+
</state>
|
1691 |
+
<state name="PickedUp">
|
1692 |
+
<lengow>shipped</lengow>
|
1693 |
+
</state>
|
1694 |
+
</states>
|
1695 |
+
<additional_params>
|
1696 |
+
<param usedby="shipped" require="carrier">
|
1697 |
+
<type>tracking</type>
|
1698 |
+
<name>TrackingColis</name>
|
1699 |
+
</param>
|
1700 |
+
<param usedby="shipped" require="tracking">
|
1701 |
+
<type>carrier</type>
|
1702 |
+
<name>Transporteur</name>
|
1703 |
+
<accepted_values>
|
1704 |
+
<value label="La Poste" default="true">LAPOSTE</value>
|
1705 |
+
<value label="DHL">DHL</value>
|
1706 |
+
<value label="Fedex">FEDEX</value>
|
1707 |
+
<value label="GLS">GLS</value>
|
1708 |
+
<value label="UPS">UPS</value>
|
1709 |
+
<value label="TAT Express">TAT</value>
|
1710 |
+
<value label="TNT">TNT</value>
|
1711 |
+
<value label="Mondial Relay">MONDIALRELAY</value>
|
1712 |
+
<value label="SERNAM">SERNAM</value>
|
1713 |
+
<value label="Geodis Calberson">GEODISCALBERSON</value>
|
1714 |
+
<value label="France Express">FRANCEEXPRESS</value>
|
1715 |
+
<value label="SDEN">FRANCSDENEEXPRESS</value>
|
1716 |
+
<value label="CHRONOPOST">Chronopost</value>
|
1717 |
+
<value label="TATEX">TATEX</value>
|
1718 |
+
<value label="SCHENKER JOYAU">SCHENKER_JOYAU</value>
|
1719 |
+
<value label="Relais colis">Relais_colis</value>
|
1720 |
+
<value label="Gefco">Gefco</value>
|
1721 |
+
<value label="MORY">MORY</value>
|
1722 |
+
<value label="Heppner">Heppner</value>
|
1723 |
+
<value label="Exapaq">Exapaq</value>
|
1724 |
+
<value label="Mazet">Mazet</value>
|
1725 |
+
<value label="SIC EXPRESS">SICEXPRESS</value>
|
1726 |
+
<value label="TMB">TMB</value>
|
1727 |
+
<value label="DPD">DPD</value>
|
1728 |
+
</accepted_values>
|
1729 |
+
</param>
|
1730 |
+
<param usedby="shipped">
|
1731 |
+
<type>tracking_url</type>
|
1732 |
+
<name>TrackingUrl</name>
|
1733 |
+
</param>
|
1734 |
+
</additional_params>
|
1735 |
+
</marketplace>
|
1736 |
+
<marketplace name="moncornerbrico">
|
1737 |
+
<api>https://wsdl.lengow.com/wsdl/moncornerbrico/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
1738 |
+
<states>
|
1739 |
+
<state name="WaitingForSellerAcceptation">
|
1740 |
+
<actions>
|
1741 |
+
<action type="accept">acceptOrder</action>
|
1742 |
+
<action type="refuse">refuseOrder</action>
|
1743 |
+
</actions>
|
1744 |
+
<lengow>new</lengow>
|
1745 |
+
</state>
|
1746 |
+
<state name="AcceptedBySeller">
|
1747 |
+
<lengow>new</lengow>
|
1748 |
+
</state>
|
1749 |
+
<state name="PaymentInProgress">
|
1750 |
+
<lengow>new</lengow>
|
1751 |
+
</state>
|
1752 |
+
<state name="ValidatedFianet">
|
1753 |
+
<lengow>new</lengow>
|
1754 |
+
</state>
|
1755 |
+
<state name="WaitingForShipmentAcceptation">
|
1756 |
+
<actions>
|
1757 |
+
<action type="shipped">shippedOrder</action>
|
1758 |
+
<action type="refuse">refuseShipment</action>
|
1759 |
+
</actions>
|
1760 |
+
<lengow>processing</lengow>
|
1761 |
+
</state>
|
1762 |
+
<state name="Shipped">
|
1763 |
+
<lengow>shipped</lengow>
|
1764 |
+
</state>
|
1765 |
+
<state name="">
|
1766 |
+
<lengow>canceled</lengow>
|
1767 |
+
</state>
|
1768 |
+
<state name="ShipmentRefusedBySeller">
|
1769 |
+
<lengow>canceled</lengow>
|
1770 |
+
</state>
|
1771 |
+
<state name="PaymentRefused">
|
1772 |
+
<lengow>canceled</lengow>
|
1773 |
+
</state>
|
1774 |
+
<state name="CancelledByCustomer">
|
1775 |
+
<lengow>canceled</lengow>
|
1776 |
+
</state>
|
1777 |
+
<state name="RefusedNotShipment">
|
1778 |
+
<lengow>canceled</lengow>
|
1779 |
+
</state>
|
1780 |
+
<state name="AutomaticCancellation">
|
1781 |
+
<lengow>canceled</lengow>
|
1782 |
+
</state>
|
1783 |
+
<state name="CancelledBeforePaymentByCustomer">
|
1784 |
+
<lengow>canceled</lengow>
|
1785 |
+
</state>
|
1786 |
+
<state name="CancelledBeforeNotificationByCustomer">
|
1787 |
+
<lengow>canceled</lengow>
|
1788 |
+
</state>
|
1789 |
+
<state name="CancellationRequestPending">
|
1790 |
+
<lengow>canceled</lengow>
|
1791 |
+
</state>
|
1792 |
+
<state name="RefusedBySeller">
|
1793 |
+
<lengow>canceled</lengow>
|
1794 |
+
</state>
|
1795 |
+
<state name="PickedUp">
|
1796 |
+
<lengow>shipped</lengow>
|
1797 |
+
</state>
|
1798 |
+
</states>
|
1799 |
+
<additional_params>
|
1800 |
+
<param usedby="shipped" require="carrier">
|
1801 |
+
<type>tracking</type>
|
1802 |
+
<name>TrackingColis</name>
|
1803 |
+
</param>
|
1804 |
+
<param usedby="shipped" require="tracking">
|
1805 |
+
<type>carrier</type>
|
1806 |
+
<name>Transporteur</name>
|
1807 |
+
<accepted_values>
|
1808 |
+
<value label="La Poste" default="true">LAPOSTE</value>
|
1809 |
+
<value label="DHL">DHL</value>
|
1810 |
+
<value label="Fedex">FEDEX</value>
|
1811 |
+
<value label="GLS">GLS</value>
|
1812 |
+
<value label="UPS">UPS</value>
|
1813 |
+
<value label="TAT Express">TAT</value>
|
1814 |
+
<value label="TNT">TNT</value>
|
1815 |
+
<value label="Mondial Relay">MONDIALRELAY</value>
|
1816 |
+
<value label="SERNAM">SERNAM</value>
|
1817 |
+
<value label="Geodis Calberson">GEODISCALBERSON</value>
|
1818 |
+
<value label="France Express">FRANCEEXPRESS</value>
|
1819 |
+
<value label="SDEN">FRANCSDENEEXPRESS</value>
|
1820 |
+
<value label="CHRONOPOST">Chronopost</value>
|
1821 |
+
<value label="TATEX">TATEX</value>
|
1822 |
+
<value label="SCHENKER JOYAU">SCHENKER_JOYAU</value>
|
1823 |
+
<value label="Relais colis">Relais_colis</value>
|
1824 |
+
<value label="Gefco">Gefco</value>
|
1825 |
+
<value label="MORY">MORY</value>
|
1826 |
+
<value label="Heppner">Heppner</value>
|
1827 |
+
<value label="Exapaq">Exapaq</value>
|
1828 |
+
<value label="Mazet">Mazet</value>
|
1829 |
+
<value label="SIC EXPRESS">SICEXPRESS</value>
|
1830 |
+
<value label="TMB">TMB</value>
|
1831 |
+
<value label="DPD">DPD</value>
|
1832 |
+
</accepted_values>
|
1833 |
+
</param>
|
1834 |
+
<param usedby="shipped">
|
1835 |
+
<type>tracking_url</type>
|
1836 |
+
<name>TrackingUrl</name>
|
1837 |
+
</param>
|
1838 |
+
</additional_params>
|
1839 |
+
</marketplace>
|
1840 |
+
<marketplace name="moncornerhomme">
|
1841 |
+
<api>https://wsdl.lengow.com/wsdl/moncornerhomme/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
1842 |
+
<states>
|
1843 |
+
<state name="WaitingForSellerAcceptation">
|
1844 |
+
<actions>
|
1845 |
+
<action type="accept">acceptOrder</action>
|
1846 |
+
<action type="refuse">refuseOrder</action>
|
1847 |
+
</actions>
|
1848 |
+
<lengow>new</lengow>
|
1849 |
+
</state>
|
1850 |
+
<state name="AcceptedBySeller">
|
1851 |
+
<lengow>new</lengow>
|
1852 |
+
</state>
|
1853 |
+
<state name="PaymentInProgress">
|
1854 |
+
<lengow>new</lengow>
|
1855 |
+
</state>
|
1856 |
+
<state name="ValidatedFianet">
|
1857 |
+
<lengow>new</lengow>
|
1858 |
+
</state>
|
1859 |
+
<state name="WaitingForShipmentAcceptation">
|
1860 |
+
<actions>
|
1861 |
+
<action type="shipped">shippedOrder</action>
|
1862 |
+
<action type="refuse">refuseShipment</action>
|
1863 |
+
</actions>
|
1864 |
+
<lengow>processing</lengow>
|
1865 |
+
</state>
|
1866 |
+
<state name="Shipped">
|
1867 |
+
<lengow>shipped</lengow>
|
1868 |
+
</state>
|
1869 |
+
<state name="">
|
1870 |
+
<lengow>canceled</lengow>
|
1871 |
+
</state>
|
1872 |
+
<state name="ShipmentRefusedBySeller">
|
1873 |
+
<lengow>canceled</lengow>
|
1874 |
+
</state>
|
1875 |
+
<state name="PaymentRefused">
|
1876 |
+
<lengow>canceled</lengow>
|
1877 |
+
</state>
|
1878 |
+
<state name="CancelledByCustomer">
|
1879 |
+
<lengow>canceled</lengow>
|
1880 |
+
</state>
|
1881 |
+
<state name="RefusedNotShipment">
|
1882 |
+
<lengow>canceled</lengow>
|
1883 |
+
</state>
|
1884 |
+
<state name="AutomaticCancellation">
|
1885 |
+
<lengow>canceled</lengow>
|
1886 |
+
</state>
|
1887 |
+
<state name="CancelledBeforePaymentByCustomer">
|
1888 |
+
<lengow>canceled</lengow>
|
1889 |
+
</state>
|
1890 |
+
<state name="CancelledBeforeNotificationByCustomer">
|
1891 |
+
<lengow>canceled</lengow>
|
1892 |
+
</state>
|
1893 |
+
<state name="CancellationRequestPending">
|
1894 |
+
<lengow>canceled</lengow>
|
1895 |
+
</state>
|
1896 |
+
<state name="RefusedBySeller">
|
1897 |
+
<lengow>canceled</lengow>
|
1898 |
+
</state>
|
1899 |
+
<state name="PickedUp">
|
1900 |
+
<lengow>shipped</lengow>
|
1901 |
+
</state>
|
1902 |
+
</states>
|
1903 |
+
<additional_params>
|
1904 |
+
<param usedby="shipped" require="carrier">
|
1905 |
+
<type>tracking</type>
|
1906 |
+
<name>TrackingColis</name>
|
1907 |
+
</param>
|
1908 |
+
<param usedby="shipped" require="tracking">
|
1909 |
+
<type>carrier</type>
|
1910 |
+
<name>Transporteur</name>
|
1911 |
+
<accepted_values>
|
1912 |
+
<value label="La Poste" default="true">LAPOSTE</value>
|
1913 |
+
<value label="DHL">DHL</value>
|
1914 |
+
<value label="Fedex">FEDEX</value>
|
1915 |
+
<value label="GLS">GLS</value>
|
1916 |
+
<value label="UPS">UPS</value>
|
1917 |
+
<value label="TAT Express">TAT</value>
|
1918 |
+
<value label="TNT">TNT</value>
|
1919 |
+
<value label="Mondial Relay">MONDIALRELAY</value>
|
1920 |
+
<value label="SERNAM">SERNAM</value>
|
1921 |
+
<value label="Geodis Calberson">GEODISCALBERSON</value>
|
1922 |
+
<value label="France Express">FRANCEEXPRESS</value>
|
1923 |
+
<value label="SDEN">FRANCSDENEEXPRESS</value>
|
1924 |
+
<value label="CHRONOPOST">Chronopost</value>
|
1925 |
+
<value label="TATEX">TATEX</value>
|
1926 |
+
<value label="SCHENKER JOYAU">SCHENKER_JOYAU</value>
|
1927 |
+
<value label="Relais colis">Relais_colis</value>
|
1928 |
+
<value label="Gefco">Gefco</value>
|
1929 |
+
<value label="MORY">MORY</value>
|
1930 |
+
<value label="Heppner">Heppner</value>
|
1931 |
+
<value label="Exapaq">Exapaq</value>
|
1932 |
+
<value label="Mazet">Mazet</value>
|
1933 |
+
<value label="SIC EXPRESS">SICEXPRESS</value>
|
1934 |
+
<value label="TMB">TMB</value>
|
1935 |
+
<value label="DPD">DPD</value>
|
1936 |
+
</accepted_values>
|
1937 |
+
</param>
|
1938 |
+
<param usedby="shipped">
|
1939 |
+
<type>tracking_url</type>
|
1940 |
+
<name>TrackingUrl</name>
|
1941 |
+
</param>
|
1942 |
+
</additional_params>
|
1943 |
+
</marketplace>
|
1944 |
+
<marketplace name="gosport">
|
1945 |
+
<api>https://wsdl.lengow.com/wsdl/gosport/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
1946 |
+
<states>
|
1947 |
+
<state name="WaitingForSellerAcceptation">
|
1948 |
+
<actions>
|
1949 |
+
<action type="accept">acceptOrder</action>
|
1950 |
+
<action type="refuse">refuseOrder</action>
|
1951 |
+
</actions>
|
1952 |
+
<lengow>new</lengow>
|
1953 |
+
</state>
|
1954 |
+
<state name="AcceptedBySeller">
|
1955 |
+
<lengow>new</lengow>
|
1956 |
+
</state>
|
1957 |
+
<state name="PaymentInProgress">
|
1958 |
+
<lengow>new</lengow>
|
1959 |
+
</state>
|
1960 |
+
<state name="ValidatedFianet">
|
1961 |
+
<lengow>new</lengow>
|
1962 |
+
</state>
|
1963 |
+
<state name="WaitingForShipmentAcceptation">
|
1964 |
+
<actions>
|
1965 |
+
<action type="shipped">shippedOrder</action>
|
1966 |
+
<action type="refuse">refuseShipment</action>
|
1967 |
+
</actions>
|
1968 |
+
<lengow>processing</lengow>
|
1969 |
+
</state>
|
1970 |
+
<state name="Shipped">
|
1971 |
+
<lengow>shipped</lengow>
|
1972 |
+
</state>
|
1973 |
+
<state name="">
|
1974 |
+
<lengow>canceled</lengow>
|
1975 |
+
</state>
|
1976 |
+
<state name="ShipmentRefusedBySeller">
|
1977 |
+
<lengow>canceled</lengow>
|
1978 |
+
</state>
|
1979 |
+
<state name="PaymentRefused">
|
1980 |
+
<lengow>canceled</lengow>
|
1981 |
+
</state>
|
1982 |
+
<state name="CancelledByCustomer">
|
1983 |
+
<lengow>canceled</lengow>
|
1984 |
+
</state>
|
1985 |
+
<state name="RefusedNotShipment">
|
1986 |
+
<lengow>canceled</lengow>
|
1987 |
+
</state>
|
1988 |
+
<state name="AutomaticCancellation">
|
1989 |
+
<lengow>canceled</lengow>
|
1990 |
+
</state>
|
1991 |
+
<state name="CancelledBeforePaymentByCustomer">
|
1992 |
+
<lengow>canceled</lengow>
|
1993 |
+
</state>
|
1994 |
+
<state name="CancelledBeforeNotificationByCustomer">
|
1995 |
+
<lengow>canceled</lengow>
|
1996 |
+
</state>
|
1997 |
+
<state name="CancellationRequestPending">
|
1998 |
+
<lengow>canceled</lengow>
|
1999 |
+
</state>
|
2000 |
+
<state name="RefusedBySeller">
|
2001 |
+
<lengow>canceled</lengow>
|
2002 |
+
</state>
|
2003 |
+
<state name="PickedUp">
|
2004 |
+
<lengow>shipped</lengow>
|
2005 |
+
</state>
|
2006 |
+
</states>
|
2007 |
+
<additional_params>
|
2008 |
+
<param usedby="shipped" require="carrier">
|
2009 |
+
<type>tracking</type>
|
2010 |
+
<name>TrackingColis</name>
|
2011 |
+
</param>
|
2012 |
+
<param usedby="shipped" require="tracking">
|
2013 |
+
<type>carrier</type>
|
2014 |
+
<name>Transporteur</name>
|
2015 |
+
<accepted_values>
|
2016 |
+
<value label="La Poste" default="true">LAPOSTE</value>
|
2017 |
+
<value label="DHL">DHL</value>
|
2018 |
+
<value label="Fedex">FEDEX</value>
|
2019 |
+
<value label="GLS">GLS</value>
|
2020 |
+
<value label="UPS">UPS</value>
|
2021 |
+
<value label="TAT Express">TAT</value>
|
2022 |
+
<value label="TNT">TNT</value>
|
2023 |
+
<value label="Mondial Relay">MONDIALRELAY</value>
|
2024 |
+
<value label="SERNAM">SERNAM</value>
|
2025 |
+
<value label="Geodis Calberson">GEODISCALBERSON</value>
|
2026 |
+
<value label="France Express">FRANCEEXPRESS</value>
|
2027 |
+
<value label="SDEN">FRANCSDENEEXPRESS</value>
|
2028 |
+
<value label="CHRONOPOST">Chronopost</value>
|
2029 |
+
<value label="TATEX">TATEX</value>
|
2030 |
+
<value label="SCHENKER JOYAU">SCHENKER_JOYAU</value>
|
2031 |
+
<value label="Relais colis">Relais_colis</value>
|
2032 |
+
<value label="Gefco">Gefco</value>
|
2033 |
+
<value label="MORY">MORY</value>
|
2034 |
+
<value label="Heppner">Heppner</value>
|
2035 |
+
<value label="Exapaq">Exapaq</value>
|
2036 |
+
<value label="Mazet">Mazet</value>
|
2037 |
+
<value label="SIC EXPRESS">SICEXPRESS</value>
|
2038 |
+
<value label="TMB">TMB</value>
|
2039 |
+
<value label="DPD">DPD</value>
|
2040 |
+
</accepted_values>
|
2041 |
+
</param>
|
2042 |
+
<param usedby="shipped">
|
2043 |
+
<type>tracking_url</type>
|
2044 |
+
<name>TrackingUrl</name>
|
2045 |
+
</param>
|
2046 |
+
</additional_params>
|
2047 |
+
</marketplace>
|
2048 |
+
<marketplace name="laredoute">
|
2049 |
+
<api>https://wsdl.lengow.com/wsdl/laredoute/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
2050 |
+
<apibyline>https://wsdl.lengow.com/wsdl/laredoute/#ID_FLUX#/#ORDER_ID#/#ORDER_LINE_ID#/#QTY_TO_REFUND#/#FDP#/#ACTION#.xml</apibyline>
|
2051 |
+
<states>
|
2052 |
+
<state name="Created">
|
2053 |
+
<actions>
|
2054 |
+
<action type="accept">acceptOrder</action>
|
2055 |
+
<action type="refuse">refuseOrder</action>
|
2056 |
+
<action type="refuseLine" usedbyline="true">refuseOrder</action>
|
2057 |
+
</actions>
|
2058 |
+
<lengow>new</lengow>
|
2059 |
+
</state>
|
2060 |
+
<state name="Accepted">
|
2061 |
+
<lengow>new</lengow>
|
2062 |
+
</state>
|
2063 |
+
<state name="ToShip">
|
2064 |
+
<actions>
|
2065 |
+
<action type="shipped">shippedOrder</action>
|
2066 |
+
<action type="refund">refundOrder</action>
|
2067 |
+
<action type="refundLine" usedbyline="true">refundOrder</action>
|
2068 |
+
</actions>
|
2069 |
+
<lengow>processing</lengow>
|
2070 |
+
</state>
|
2071 |
+
<state name="ToCancel">
|
2072 |
+
<lengow>canceled</lengow>
|
2073 |
+
</state>
|
2074 |
+
<state name="Shipped">
|
2075 |
+
<actions>
|
2076 |
+
<action type="refund">refundOrder</action>
|
2077 |
+
<action type="refundLine" usedbyline="true">refundOrder</action>
|
2078 |
+
</actions>
|
2079 |
+
<lengow>shipped</lengow>
|
2080 |
+
</state>
|
2081 |
+
<state name="Refunded">
|
2082 |
+
<lengow>canceled</lengow>
|
2083 |
+
</state>
|
2084 |
+
<state name="Cancelled">
|
2085 |
+
<lengow>canceled</lengow>
|
2086 |
+
</state>
|
2087 |
+
<state name="Refused">
|
2088 |
+
<lengow>canceled</lengow>
|
2089 |
+
</state>
|
2090 |
+
</states>
|
2091 |
+
<additional_params>
|
2092 |
+
<param usedby="shipped">
|
2093 |
+
<type>tracking</type>
|
2094 |
+
<name>TrackingColis</name>
|
2095 |
+
</param>
|
2096 |
+
<param usedby="shipped">
|
2097 |
+
<type>carrier</type>
|
2098 |
+
<name>Transporteur</name>
|
2099 |
+
</param>
|
2100 |
+
<param usedby="shipped">
|
2101 |
+
<type>tracking_url</type>
|
2102 |
+
<name>url</name>
|
2103 |
+
</param>
|
2104 |
+
<param usedby="shipped" usedbyline="true">
|
2105 |
+
<type>shipping_price</type>
|
2106 |
+
<name>fdp</name>
|
2107 |
+
</param>
|
2108 |
+
<param usedby="shipped" usedbyline="true">
|
2109 |
+
<type>order_line</type>
|
2110 |
+
<name>orderlineid</name>
|
2111 |
+
</param>
|
2112 |
+
<param usedby="shipped" usedbyline="true">
|
2113 |
+
<type>quantity</type>
|
2114 |
+
<name>qty</name>
|
2115 |
+
</param>
|
2116 |
+
</additional_params>
|
2117 |
+
</marketplace>
|
2118 |
+
<marketplace name="frenchplace">
|
2119 |
+
<api>https://wsdl.lengow.com/wsdl/frenchplace/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
2120 |
+
<states>
|
2121 |
+
<state name="new">
|
2122 |
+
<actions>
|
2123 |
+
<action type="accept">acceptOrder</action>
|
2124 |
+
<action type="refuse">refuseOrder</action>
|
2125 |
+
</actions>
|
2126 |
+
<lengow>new</lengow>
|
2127 |
+
</state>
|
2128 |
+
<state name="Accepted">
|
2129 |
+
<lengow>processing</lengow>
|
2130 |
+
</state>
|
2131 |
+
<state name="shipped">
|
2132 |
+
<lengow>shipped</lengow>
|
2133 |
+
</state>
|
2134 |
+
<state name="Accepted">
|
2135 |
+
<lengow>canceled</lengow>
|
2136 |
+
</state>
|
2137 |
+
</states>
|
2138 |
+
<additional_params>
|
2139 |
+
<param usedby="shipped">
|
2140 |
+
<type>tracking</type>
|
2141 |
+
<name>TrackingColis</name>
|
2142 |
+
</param>
|
2143 |
+
<param usedby="shipped">
|
2144 |
+
<type>carrier</type>
|
2145 |
+
<name>Transporteur</name>
|
2146 |
+
</param>
|
2147 |
+
</additional_params>
|
2148 |
+
</marketplace>
|
2149 |
+
<marketplace name="greenrepublic">
|
2150 |
+
<api>https://wsdl.lengow.com/wsdl/greenrepublic/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
2151 |
+
<states>
|
2152 |
+
<state name="new">
|
2153 |
+
<actions>
|
2154 |
+
<action type="refuse">refuseOrder</action>
|
2155 |
+
</actions>
|
2156 |
+
<lengow>new</lengow>
|
2157 |
+
</state>
|
2158 |
+
<state name="pending_payment">
|
2159 |
+
<lengow>processing</lengow>
|
2160 |
+
</state>
|
2161 |
+
<state name="processing">
|
2162 |
+
<actions>
|
2163 |
+
<action type="shipped">shippedOrder</action>
|
2164 |
+
</actions>
|
2165 |
+
<lengow>processing</lengow>
|
2166 |
+
</state>
|
2167 |
+
<state name="holded">
|
2168 |
+
<lengow>processing</lengow>
|
2169 |
+
</state>
|
2170 |
+
<state name="in">
|
2171 |
+
<lengow>processing</lengow>
|
2172 |
+
</state>
|
2173 |
+
<state name="payment_review">
|
2174 |
+
<lengow>processing</lengow>
|
2175 |
+
</state>
|
2176 |
+
<state name="complete">
|
2177 |
+
<lengow>shipped</lengow>
|
2178 |
+
</state>
|
2179 |
+
<state name="canceled">
|
2180 |
+
<lengow>canceled</lengow>
|
2181 |
+
</state>
|
2182 |
+
</states>
|
2183 |
+
<additional_params>
|
2184 |
+
<param usedby="shipped">
|
2185 |
+
<type>tracking</type>
|
2186 |
+
<name>TrackingColis</name>
|
2187 |
+
</param>
|
2188 |
+
<param usedby="shipped">
|
2189 |
+
<type>carrier</type>
|
2190 |
+
<name>Transporteur</name>
|
2191 |
+
<accepted_values>
|
2192 |
+
<value>sc_calberson</value>
|
2193 |
+
<value>sc_fedex</value>
|
2194 |
+
<value>sc_relaypoint</value>
|
2195 |
+
<value>sc_gls</value>
|
2196 |
+
<value>sc_chronopost</value>
|
2197 |
+
<value>sc_tnt</value>
|
2198 |
+
<value>sc_dhl</value>
|
2199 |
+
<value default="true">sc_colissimo</value>
|
2200 |
+
<value>sc_export3j</value>
|
2201 |
+
</accepted_values>
|
2202 |
+
</param>
|
2203 |
+
</additional_params>
|
2204 |
+
</marketplace>
|
2205 |
+
<marketplace name="babyssima">
|
2206 |
+
<api>https://wsdl.lengow.com/wsdl/babyssima/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
2207 |
+
<states>
|
2208 |
+
<state name="new">
|
2209 |
+
<actions>
|
2210 |
+
<action type="refuse">refuseOrder</action>
|
2211 |
+
</actions>
|
2212 |
+
<lengow>new</lengow>
|
2213 |
+
</state>
|
2214 |
+
<state name="processing">
|
2215 |
+
<actions>
|
2216 |
+
<action type="shipped">shippedOrder</action>
|
2217 |
+
</actions>
|
2218 |
+
<lengow>processing</lengow>
|
2219 |
+
</state>
|
2220 |
+
<state name="complete">
|
2221 |
+
<lengow>shipped</lengow>
|
2222 |
+
</state>
|
2223 |
+
<state name="canceled">
|
2224 |
+
<lengow>canceled</lengow>
|
2225 |
+
</state>
|
2226 |
+
</states>
|
2227 |
+
<additional_params>
|
2228 |
+
<param usedby="shipped">
|
2229 |
+
<type>tracking</type>
|
2230 |
+
<name>TrackingColis</name>
|
2231 |
+
</param>
|
2232 |
+
<param usedby="shipped">
|
2233 |
+
<type>carrier</type>
|
2234 |
+
<name>Transporteur</name>
|
2235 |
+
</param>
|
2236 |
+
</additional_params>
|
2237 |
+
</marketplace>
|
2238 |
+
<marketplace name="monechelle">
|
2239 |
+
<api>https://wsdl.lengow.com/wsdl/monechelle/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
2240 |
+
<states>
|
2241 |
+
<state name="new">
|
2242 |
+
<lengow>new</lengow>
|
2243 |
+
</state>
|
2244 |
+
<state name="processing">
|
2245 |
+
<actions>
|
2246 |
+
<action type="refuse">refuseOrder</action>
|
2247 |
+
<action type="accept">acceptOrder</action>
|
2248 |
+
<action type="shipped">shippedOrder</action>
|
2249 |
+
</actions>
|
2250 |
+
<lengow>processing</lengow>
|
2251 |
+
</state>
|
2252 |
+
<state name="accepted">
|
2253 |
+
<lengow>processing</lengow>
|
2254 |
+
</state>
|
2255 |
+
<state name="shipped">
|
2256 |
+
<lengow>shipped</lengow>
|
2257 |
+
</state>
|
2258 |
+
<state name="refused">
|
2259 |
+
<lengow>canceled</lengow>
|
2260 |
+
</state>
|
2261 |
+
</states>
|
2262 |
+
<additional_params>
|
2263 |
+
<param usedby="shipped">
|
2264 |
+
<type>tracking</type>
|
2265 |
+
<name>TrackingColis</name>
|
2266 |
+
</param>
|
2267 |
+
<param usedby="shipped">
|
2268 |
+
<type>carrier</type>
|
2269 |
+
<name>Transporteur</name>
|
2270 |
+
</param>
|
2271 |
+
</additional_params>
|
2272 |
+
</marketplace>
|
2273 |
+
<marketplace name="brandalley">
|
2274 |
+
<api>https://wsdl.lengow.com/wsdl/brandalley/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
2275 |
+
<states>
|
2276 |
+
<state name="processing">
|
2277 |
+
<actions>
|
2278 |
+
<action type="refuse">refuseOrder</action>
|
2279 |
+
<action type="accept">acceptOrder</action>
|
2280 |
+
<action type="shipped">shippedOrder</action>
|
2281 |
+
</actions>
|
2282 |
+
<lengow>processing</lengow>
|
2283 |
+
</state>
|
2284 |
+
<state name="accepted">
|
2285 |
+
<lengow>shipped</lengow>
|
2286 |
+
</state>
|
2287 |
+
<state name="cancel">
|
2288 |
+
<lengow>canceled</lengow>
|
2289 |
+
</state>
|
2290 |
+
</states>
|
2291 |
+
<additional_params>
|
2292 |
+
<param usedby="shipped">
|
2293 |
+
<type>tracking</type>
|
2294 |
+
<name>TrackingColis</name>
|
2295 |
+
</param>
|
2296 |
+
<param usedby="shipped">
|
2297 |
+
<type>carrier</type>
|
2298 |
+
<name>Transporteur</name>
|
2299 |
+
</param>
|
2300 |
+
</additional_params>
|
2301 |
+
</marketplace>
|
2302 |
+
<marketplace name="pixplace">
|
2303 |
+
<states>
|
2304 |
+
<state name="accepted">
|
2305 |
+
<lengow>processing</lengow>
|
2306 |
+
</state>
|
2307 |
+
<state name="processing">
|
2308 |
+
<lengow>processing</lengow>
|
2309 |
+
</state>
|
2310 |
+
<state name="NotReceived">
|
2311 |
+
<lengow>processing</lengow>
|
2312 |
+
</state>
|
2313 |
+
<state name="Cancelled">
|
2314 |
+
<lengow>canceled</lengow>
|
2315 |
+
</state>
|
2316 |
+
<state name="Refused">
|
2317 |
+
<lengow>canceled</lengow>
|
2318 |
+
</state>
|
2319 |
+
<state name="Refunded">
|
2320 |
+
<lengow>canceled</lengow>
|
2321 |
+
</state>
|
2322 |
+
</states>
|
2323 |
+
</marketplace>
|
2324 |
+
<marketplace name="leoo">
|
2325 |
+
<states>
|
2326 |
+
<state name="Confirmé">
|
2327 |
+
<lengow>processing</lengow>
|
2328 |
+
</state>
|
2329 |
+
<state name="Expédié">
|
2330 |
+
<lengow>shipped</lengow>
|
2331 |
+
</state>
|
2332 |
+
<state name="Annulation">
|
2333 |
+
<lengow>canceled</lengow>
|
2334 |
+
</state>
|
2335 |
+
</states>
|
2336 |
+
</marketplace>
|
2337 |
+
<marketplace name="lechouchou">
|
2338 |
+
<api>https://wsdl.lengow.com/wsdl/lechouchou/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
2339 |
+
<states>
|
2340 |
+
<state name="new">
|
2341 |
+
<lengow>new</lengow>
|
2342 |
+
<actions>
|
2343 |
+
<action type="accept">accepted</action>
|
2344 |
+
<action type="refuse">refused</action>
|
2345 |
+
</actions>
|
2346 |
+
</state>
|
2347 |
+
<state name="processing">
|
2348 |
+
<actions>
|
2349 |
+
<action type="shipped">shipped</action>
|
2350 |
+
<action type="refuse">refused</action>
|
2351 |
+
</actions>
|
2352 |
+
<lengow>processing</lengow>
|
2353 |
+
</state>
|
2354 |
+
<state name="accept">
|
2355 |
+
<lengow>shipped</lengow>
|
2356 |
+
</state>
|
2357 |
+
<state name="refused">
|
2358 |
+
<lengow>canceled</lengow>
|
2359 |
+
</state>
|
2360 |
+
</states>
|
2361 |
+
<additional_params>
|
2362 |
+
<param usedby="shipped">
|
2363 |
+
<type>tracking</type>
|
2364 |
+
<name>TrackingColis</name>
|
2365 |
+
</param>
|
2366 |
+
</additional_params>
|
2367 |
+
</marketplace>
|
2368 |
+
<marketplace name="leoo">
|
2369 |
+
<states>
|
2370 |
+
<state name="Confirmé">
|
2371 |
+
<lengow>processing</lengow>
|
2372 |
+
</state>
|
2373 |
+
<state name="Expédié">
|
2374 |
+
<lengow>shipped</lengow>
|
2375 |
+
</state>
|
2376 |
+
<state name="Annulation">
|
2377 |
+
<lengow>canceled</lengow>
|
2378 |
+
</state>
|
2379 |
+
</states>
|
2380 |
+
</marketplace>
|
2381 |
+
<marketplace name="darty">
|
2382 |
+
<api>https://wsdl.lengow.com/wsdl/darty/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
2383 |
+
<states>
|
2384 |
+
<state name="STAGING">
|
2385 |
+
<lengow>new</lengow>
|
2386 |
+
</state>
|
2387 |
+
<state name="WAITING_ACCEPTANCE">
|
2388 |
+
<lengow>new</lengow>
|
2389 |
+
<actions>
|
2390 |
+
<action type="accept">accept</action>
|
2391 |
+
<action type="refuse">canceled</action>
|
2392 |
+
</actions>
|
2393 |
+
</state>
|
2394 |
+
<state name="WAITING_DEBIT">
|
2395 |
+
<lengow>new</lengow>
|
2396 |
+
</state>
|
2397 |
+
<state name="WAITING_DEBIT_PAYMENT">
|
2398 |
+
<lengow>new</lengow>
|
2399 |
+
</state>
|
2400 |
+
<state name="SHIPPING">
|
2401 |
+
<lengow>processing</lengow>
|
2402 |
+
<actions>
|
2403 |
+
<action type="shipped">shipped</action>
|
2404 |
+
</actions>
|
2405 |
+
</state>
|
2406 |
+
<state name="RECEIVED">
|
2407 |
+
<lengow>shipped</lengow>
|
2408 |
+
</state>
|
2409 |
+
<state name="SHIPPED">
|
2410 |
+
<lengow>shipped</lengow>
|
2411 |
+
</state>
|
2412 |
+
<state name="CANCELED">
|
2413 |
+
<lengow>canceled</lengow>
|
2414 |
+
</state>
|
2415 |
+
<state name="CLOSED">
|
2416 |
+
<lengow>shipped</lengow>
|
2417 |
+
</state>
|
2418 |
+
<state name="REFUSED">
|
2419 |
+
<lengow>canceled</lengow>
|
2420 |
+
</state>
|
2421 |
+
<state name="INCIDENT_OPEN">
|
2422 |
+
<lengow>processing</lengow>
|
2423 |
+
</state>
|
2424 |
+
<state name="INCIDENT_CLOSED">
|
2425 |
+
<lengow>processing</lengow>
|
2426 |
+
</state>
|
2427 |
+
<state name="WAITING_REFUND">
|
2428 |
+
<lengow>processing</lengow>
|
2429 |
+
</state>
|
2430 |
+
<state name="WAITING_REFUND_PAYMENT">
|
2431 |
+
<lengow>processing</lengow>
|
2432 |
+
</state>
|
2433 |
+
<state name="REFUNDED">
|
2434 |
+
<lengow>canceled</lengow>
|
2435 |
+
</state>
|
2436 |
+
</states>
|
2437 |
+
<additional_params>
|
2438 |
+
<param usedby="shipped">
|
2439 |
+
<type>tracking</type>
|
2440 |
+
<name>tracking_number</name>
|
2441 |
+
</param>
|
2442 |
+
<param usedby="shipped">
|
2443 |
+
<type>carrier</type>
|
2444 |
+
<name>carrier_name</name>
|
2445 |
+
</param>
|
2446 |
+
<param usedby="shipped">
|
2447 |
+
<type>tracking_url</type>
|
2448 |
+
<name>carrier_url</name>
|
2449 |
+
</param>
|
2450 |
+
</additional_params>
|
2451 |
+
</marketplace>
|
2452 |
+
<marketplace name="menlook">
|
2453 |
+
<api>https://wsdl.lengow.com/wsdl/menlook/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
2454 |
+
<states>
|
2455 |
+
<state name="STAGING">
|
2456 |
+
<lengow>new</lengow>
|
2457 |
+
</state>
|
2458 |
+
<state name="WAITING_ACCEPTANCE">
|
2459 |
+
<lengow>new</lengow>
|
2460 |
+
<actions>
|
2461 |
+
<action type="accept">accept</action>
|
2462 |
+
<action type="refuse">canceled</action>
|
2463 |
+
</actions>
|
2464 |
+
</state>
|
2465 |
+
<state name="WAITING_DEBIT">
|
2466 |
+
<lengow>new</lengow>
|
2467 |
+
</state>
|
2468 |
+
<state name="WAITING_DEBIT_PAYMENT">
|
2469 |
+
<lengow>new</lengow>
|
2470 |
+
</state>
|
2471 |
+
<state name="SHIPPING">
|
2472 |
+
<lengow>processing</lengow>
|
2473 |
+
<actions>
|
2474 |
+
<action type="shipped">shipped</action>
|
2475 |
+
</actions>
|
2476 |
+
</state>
|
2477 |
+
<state name="RECEIVED">
|
2478 |
+
<lengow>shipped</lengow>
|
2479 |
+
</state>
|
2480 |
+
<state name="SHIPPED">
|
2481 |
+
<lengow>shipped</lengow>
|
2482 |
+
</state>
|
2483 |
+
<state name="CANCELED">
|
2484 |
+
<lengow>canceled</lengow>
|
2485 |
+
</state>
|
2486 |
+
<state name="CLOSED">
|
2487 |
+
<lengow>shipped</lengow>
|
2488 |
+
</state>
|
2489 |
+
<state name="REFUSED">
|
2490 |
+
<lengow>canceled</lengow>
|
2491 |
+
</state>
|
2492 |
+
<state name="INCIDENT_OPEN">
|
2493 |
+
<lengow>processing</lengow>
|
2494 |
+
</state>
|
2495 |
+
<state name="INCIDENT_CLOSED">
|
2496 |
+
<lengow>processing</lengow>
|
2497 |
+
</state>
|
2498 |
+
<state name="WAITING_REFUND">
|
2499 |
+
<lengow>processing</lengow>
|
2500 |
+
</state>
|
2501 |
+
<state name="WAITING_REFUND_PAYMENT">
|
2502 |
+
<lengow>processing</lengow>
|
2503 |
+
</state>
|
2504 |
+
<state name="REFUNDED">
|
2505 |
+
<lengow>canceled</lengow>
|
2506 |
+
</state>
|
2507 |
+
</states>
|
2508 |
+
<additional_params>
|
2509 |
+
<param usedby="shipped">
|
2510 |
+
<type>tracking</type>
|
2511 |
+
<name>tracking_number</name>
|
2512 |
+
</param>
|
2513 |
+
<param usedby="shipped">
|
2514 |
+
<type>carrier</type>
|
2515 |
+
<name>carrier_name</name>
|
2516 |
+
</param>
|
2517 |
+
<param usedby="shipped">
|
2518 |
+
<type>tracking_url</type>
|
2519 |
+
<name>carrier_url</name>
|
2520 |
+
</param>
|
2521 |
+
</additional_params>
|
2522 |
+
</marketplace>
|
2523 |
+
<marketplace name="privalia">
|
2524 |
+
<api>https://wsdl.lengow.com/wsdl/privalia/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
2525 |
+
<states>
|
2526 |
+
<state name="STAGING">
|
2527 |
+
<lengow>new</lengow>
|
2528 |
+
</state>
|
2529 |
+
<state name="WAITING_ACCEPTANCE">
|
2530 |
+
<lengow>new</lengow>
|
2531 |
+
<actions>
|
2532 |
+
<action type="accept">accept</action>
|
2533 |
+
<action type="refuse">canceled</action>
|
2534 |
+
</actions>
|
2535 |
+
</state>
|
2536 |
+
<state name="WAITING_DEBIT">
|
2537 |
+
<lengow>new</lengow>
|
2538 |
+
</state>
|
2539 |
+
<state name="WAITING_DEBIT_PAYMENT">
|
2540 |
+
<lengow>new</lengow>
|
2541 |
+
</state>
|
2542 |
+
<state name="SHIPPING">
|
2543 |
+
<lengow>processing</lengow>
|
2544 |
+
<actions>
|
2545 |
+
<action type="shipped">shipped</action>
|
2546 |
+
</actions>
|
2547 |
+
</state>
|
2548 |
+
<state name="RECEIVED">
|
2549 |
+
<lengow>shipped</lengow>
|
2550 |
+
</state>
|
2551 |
+
<state name="SHIPPED">
|
2552 |
+
<lengow>shipped</lengow>
|
2553 |
+
</state>
|
2554 |
+
<state name="CANCELED">
|
2555 |
+
<lengow>canceled</lengow>
|
2556 |
+
</state>
|
2557 |
+
<state name="CLOSED">
|
2558 |
+
<lengow>shipped</lengow>
|
2559 |
+
</state>
|
2560 |
+
<state name="REFUSED">
|
2561 |
+
<lengow>canceled</lengow>
|
2562 |
+
</state>
|
2563 |
+
<state name="INCIDENT_OPEN">
|
2564 |
+
<lengow>processing</lengow>
|
2565 |
+
</state>
|
2566 |
+
<state name="INCIDENT_CLOSED">
|
2567 |
+
<lengow>processing</lengow>
|
2568 |
+
</state>
|
2569 |
+
<state name="WAITING_REFUND">
|
2570 |
+
<lengow>processing</lengow>
|
2571 |
+
</state>
|
2572 |
+
<state name="WAITING_REFUND_PAYMENT">
|
2573 |
+
<lengow>processing</lengow>
|
2574 |
+
</state>
|
2575 |
+
<state name="REFUNDED">
|
2576 |
+
<lengow>canceled</lengow>
|
2577 |
+
</state>
|
2578 |
+
</states>
|
2579 |
+
<additional_params>
|
2580 |
+
<param usedby="shipped">
|
2581 |
+
<type>tracking</type>
|
2582 |
+
<name>tracking_number</name>
|
2583 |
+
</param>
|
2584 |
+
<param usedby="shipped">
|
2585 |
+
<type>carrier</type>
|
2586 |
+
<name>carrier_name</name>
|
2587 |
+
<accepted_values>
|
2588 |
+
<value label="MRW" default="true">MRW</value>
|
2589 |
+
<value label="UPS">UPS</value>
|
2590 |
+
<value label="ASM">ASM</value>
|
2591 |
+
</accepted_values>
|
2592 |
+
</param>
|
2593 |
+
<param usedby="shipped">
|
2594 |
+
<type>tracking_url</type>
|
2595 |
+
<name>carrier_url</name>
|
2596 |
+
</param>
|
2597 |
+
</additional_params>
|
2598 |
+
</marketplace>
|
2599 |
+
<marketplace name="delamaison">
|
2600 |
+
<api>https://wsdl.lengow.com/wsdl/delamaison/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
2601 |
+
<states>
|
2602 |
+
<state name="STAGING">
|
2603 |
+
<lengow>new</lengow>
|
2604 |
+
</state>
|
2605 |
+
<state name="WAITING_ACCEPTANCE">
|
2606 |
+
<lengow>new</lengow>
|
2607 |
+
<actions>
|
2608 |
+
<action type="accept">accept</action>
|
2609 |
+
<action type="refuse">canceled</action>
|
2610 |
+
</actions>
|
2611 |
+
</state>
|
2612 |
+
<state name="WAITING_DEBIT">
|
2613 |
+
<lengow>new</lengow>
|
2614 |
+
</state>
|
2615 |
+
<state name="WAITING_DEBIT_PAYMENT">
|
2616 |
+
<lengow>new</lengow>
|
2617 |
+
</state>
|
2618 |
+
<state name="SHIPPING">
|
2619 |
+
<lengow>processing</lengow>
|
2620 |
+
<actions>
|
2621 |
+
<action type="shipped">shipped</action>
|
2622 |
+
</actions>
|
2623 |
+
</state>
|
2624 |
+
<state name="RECEIVED">
|
2625 |
+
<lengow>shipped</lengow>
|
2626 |
+
</state>
|
2627 |
+
<state name="SHIPPED">
|
2628 |
+
<lengow>shipped</lengow>
|
2629 |
+
</state>
|
2630 |
+
<state name="CANCELED">
|
2631 |
+
<lengow>canceled</lengow>
|
2632 |
+
</state>
|
2633 |
+
<state name="CLOSED">
|
2634 |
+
<lengow>shipped</lengow>
|
2635 |
+
</state>
|
2636 |
+
<state name="REFUSED">
|
2637 |
+
<lengow>canceled</lengow>
|
2638 |
+
</state>
|
2639 |
+
<state name="INCIDENT_OPEN">
|
2640 |
+
<lengow>processing</lengow>
|
2641 |
+
</state>
|
2642 |
+
<state name="INCIDENT_CLOSED">
|
2643 |
+
<lengow>processing</lengow>
|
2644 |
+
</state>
|
2645 |
+
<state name="WAITING_REFUND">
|
2646 |
+
<lengow>processing</lengow>
|
2647 |
+
</state>
|
2648 |
+
<state name="WAITING_REFUND_PAYMENT">
|
2649 |
+
<lengow>processing</lengow>
|
2650 |
+
</state>
|
2651 |
+
<state name="REFUNDED">
|
2652 |
+
<lengow>canceled</lengow>
|
2653 |
+
</state>
|
2654 |
+
</states>
|
2655 |
+
<additional_params>
|
2656 |
+
<param usedby="shipped">
|
2657 |
+
<type>tracking</type>
|
2658 |
+
<name>tracking_number</name>
|
2659 |
+
</param>
|
2660 |
+
<param usedby="shipped">
|
2661 |
+
<type>carrier</type>
|
2662 |
+
<name>carrier_name</name>
|
2663 |
+
<accepted_values>
|
2664 |
+
<value label="Colissimo" default="true">1</value>
|
2665 |
+
<value label="La Poste">2</value>
|
2666 |
+
<value label="Fedex">3</value>
|
2667 |
+
<value label="UPS">4</value>
|
2668 |
+
</accepted_values>
|
2669 |
+
</param>
|
2670 |
+
<param usedby="shipped">
|
2671 |
+
<type>tracking_url</type>
|
2672 |
+
<name>carrier_url</name>
|
2673 |
+
</param>
|
2674 |
+
</additional_params>
|
2675 |
+
</marketplace>
|
2676 |
+
<marketplace name="comptoirsante">
|
2677 |
+
<api>https://wsdl.lengow.com/wsdl/comptoirsante/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
2678 |
+
<states>
|
2679 |
+
<state name="STAGING">
|
2680 |
+
<lengow>new</lengow>
|
2681 |
+
</state>
|
2682 |
+
<state name="WAITING_ACCEPTANCE">
|
2683 |
+
<lengow>new</lengow>
|
2684 |
+
<actions>
|
2685 |
+
<action type="accept">accept</action>
|
2686 |
+
<action type="refuse">canceled</action>
|
2687 |
+
</actions>
|
2688 |
+
</state>
|
2689 |
+
<state name="WAITING_DEBIT">
|
2690 |
+
<lengow>new</lengow>
|
2691 |
+
</state>
|
2692 |
+
<state name="WAITING_DEBIT_PAYMENT">
|
2693 |
+
<lengow>new</lengow>
|
2694 |
+
</state>
|
2695 |
+
<state name="SHIPPING">
|
2696 |
+
<lengow>processing</lengow>
|
2697 |
+
<actions>
|
2698 |
+
<action type="shipped">shipped</action>
|
2699 |
+
</actions>
|
2700 |
+
</state>
|
2701 |
+
<state name="RECEIVED">
|
2702 |
+
<lengow>shipped</lengow>
|
2703 |
+
</state>
|
2704 |
+
<state name="SHIPPED">
|
2705 |
+
<lengow>shipped</lengow>
|
2706 |
+
</state>
|
2707 |
+
<state name="CANCELED">
|
2708 |
+
<lengow>canceled</lengow>
|
2709 |
+
</state>
|
2710 |
+
<state name="CLOSED">
|
2711 |
+
<lengow>shipped</lengow>
|
2712 |
+
</state>
|
2713 |
+
<state name="REFUSED">
|
2714 |
+
<lengow>canceled</lengow>
|
2715 |
+
</state>
|
2716 |
+
<state name="INCIDENT_OPEN">
|
2717 |
+
<lengow>processing</lengow>
|
2718 |
+
</state>
|
2719 |
+
<state name="INCIDENT_CLOSED">
|
2720 |
+
<lengow>processing</lengow>
|
2721 |
+
</state>
|
2722 |
+
<state name="WAITING_REFUND">
|
2723 |
+
<lengow>processing</lengow>
|
2724 |
+
</state>
|
2725 |
+
<state name="WAITING_REFUND_PAYMENT">
|
2726 |
+
<lengow>processing</lengow>
|
2727 |
+
</state>
|
2728 |
+
<state name="REFUNDED">
|
2729 |
+
<lengow>canceled</lengow>
|
2730 |
+
</state>
|
2731 |
+
</states>
|
2732 |
+
<additional_params>
|
2733 |
+
<param usedby="shipped">
|
2734 |
+
<type>tracking</type>
|
2735 |
+
<name>tracking_number</name>
|
2736 |
+
</param>
|
2737 |
+
<param usedby="shipped">
|
2738 |
+
<type>carrier</type>
|
2739 |
+
<name>carrier_name</name>
|
2740 |
+
<accepted_values>
|
2741 |
+
<value label="Colissimo" default="true">1</value>
|
2742 |
+
<value label="TNT">2</value>
|
2743 |
+
<value label="Mondial Relay">3</value>
|
2744 |
+
<value label="DHL">4</value>
|
2745 |
+
</accepted_values>
|
2746 |
+
</param>
|
2747 |
+
<param usedby="shipped">
|
2748 |
+
<type>tracking_url</type>
|
2749 |
+
<name>carrier_url</name>
|
2750 |
+
</param>
|
2751 |
+
</additional_params>
|
2752 |
+
</marketplace>
|
2753 |
+
<marketplace name="immochan_v2">
|
2754 |
+
<api>https://wsdl.lengow.com/wsdl/immochan_v2/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
2755 |
+
<states>
|
2756 |
+
<state name="STAGING">
|
2757 |
+
<lengow>new</lengow>
|
2758 |
+
</state>
|
2759 |
+
<state name="WAITING_ACCEPTANCE">
|
2760 |
+
<lengow>new</lengow>
|
2761 |
+
<actions>
|
2762 |
+
<action type="accept">accept</action>
|
2763 |
+
<action type="refuse">canceled</action>
|
2764 |
+
</actions>
|
2765 |
+
</state>
|
2766 |
+
<state name="WAITING_DEBIT">
|
2767 |
+
<lengow>new</lengow>
|
2768 |
+
</state>
|
2769 |
+
<state name="WAITING_DEBIT_PAYMENT">
|
2770 |
+
<lengow>new</lengow>
|
2771 |
+
</state>
|
2772 |
+
<state name="SHIPPING">
|
2773 |
+
<lengow>processing</lengow>
|
2774 |
+
<actions>
|
2775 |
+
<action type="shipped">shipped</action>
|
2776 |
+
</actions>
|
2777 |
+
</state>
|
2778 |
+
<state name="RECEIVED">
|
2779 |
+
<lengow>shipped</lengow>
|
2780 |
+
</state>
|
2781 |
+
<state name="SHIPPED">
|
2782 |
+
<lengow>shipped</lengow>
|
2783 |
+
</state>
|
2784 |
+
<state name="CANCELED">
|
2785 |
+
<lengow>canceled</lengow>
|
2786 |
+
</state>
|
2787 |
+
<state name="CLOSED">
|
2788 |
+
<lengow>shipped</lengow>
|
2789 |
+
</state>
|
2790 |
+
<state name="REFUSED">
|
2791 |
+
<lengow>canceled</lengow>
|
2792 |
+
</state>
|
2793 |
+
<state name="INCIDENT_OPEN">
|
2794 |
+
<lengow>processing</lengow>
|
2795 |
+
</state>
|
2796 |
+
<state name="INCIDENT_CLOSED">
|
2797 |
+
<lengow>processing</lengow>
|
2798 |
+
</state>
|
2799 |
+
<state name="WAITING_REFUND">
|
2800 |
+
<lengow>processing</lengow>
|
2801 |
+
</state>
|
2802 |
+
<state name="WAITING_REFUND_PAYMENT">
|
2803 |
+
<lengow>processing</lengow>
|
2804 |
+
</state>
|
2805 |
+
<state name="REFUNDED">
|
2806 |
+
<lengow>canceled</lengow>
|
2807 |
+
</state>
|
2808 |
+
</states>
|
2809 |
+
<additional_params>
|
2810 |
+
<param usedby="shipped">
|
2811 |
+
<type>tracking</type>
|
2812 |
+
<name>tracking_number</name>
|
2813 |
+
</param>
|
2814 |
+
<param usedby="shipped">
|
2815 |
+
<type>carrier</type>
|
2816 |
+
<name>carrier_name</name>
|
2817 |
+
</param>
|
2818 |
+
<param usedby="shipped">
|
2819 |
+
<type>tracking_url</type>
|
2820 |
+
<name>carrier_url</name>
|
2821 |
+
</param>
|
2822 |
+
</additional_params>
|
2823 |
+
</marketplace>
|
2824 |
+
<marketplace name="privalia">
|
2825 |
+
<api>https://wsdl.lengow.com/wsdl/privalia/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
2826 |
+
<states>
|
2827 |
+
<state name="STAGING">
|
2828 |
+
<lengow>new</lengow>
|
2829 |
+
</state>
|
2830 |
+
<state name="WAITING_ACCEPTANCE">
|
2831 |
+
<lengow>new</lengow>
|
2832 |
+
<actions>
|
2833 |
+
<action type="accept">accept</action>
|
2834 |
+
<action type="refuse">canceled</action>
|
2835 |
+
</actions>
|
2836 |
+
</state>
|
2837 |
+
<state name="WAITING_DEBIT">
|
2838 |
+
<lengow>new</lengow>
|
2839 |
+
</state>
|
2840 |
+
<state name="WAITING_DEBIT_PAYMENT">
|
2841 |
+
<lengow>new</lengow>
|
2842 |
+
</state>
|
2843 |
+
<state name="SHIPPING">
|
2844 |
+
<lengow>processing</lengow>
|
2845 |
+
<actions>
|
2846 |
+
<action type="shipped">shipped</action>
|
2847 |
+
</actions>
|
2848 |
+
</state>
|
2849 |
+
<state name="RECEIVED">
|
2850 |
+
<lengow>shipped</lengow>
|
2851 |
+
</state>
|
2852 |
+
<state name="SHIPPED">
|
2853 |
+
<lengow>shipped</lengow>
|
2854 |
+
</state>
|
2855 |
+
<state name="CANCELED">
|
2856 |
+
<lengow>canceled</lengow>
|
2857 |
+
</state>
|
2858 |
+
<state name="CLOSED">
|
2859 |
+
<lengow>shipped</lengow>
|
2860 |
+
</state>
|
2861 |
+
<state name="REFUSED">
|
2862 |
+
<lengow>canceled</lengow>
|
2863 |
+
</state>
|
2864 |
+
<state name="INCIDENT_OPEN">
|
2865 |
+
<lengow>processing</lengow>
|
2866 |
+
</state>
|
2867 |
+
<state name="INCIDENT_CLOSED">
|
2868 |
+
<lengow>processing</lengow>
|
2869 |
+
</state>
|
2870 |
+
<state name="WAITING_REFUND">
|
2871 |
+
<lengow>processing</lengow>
|
2872 |
+
</state>
|
2873 |
+
<state name="WAITING_REFUND_PAYMENT">
|
2874 |
+
<lengow>processing</lengow>
|
2875 |
+
</state>
|
2876 |
+
<state name="REFUNDED">
|
2877 |
+
<lengow>canceled</lengow>
|
2878 |
+
</state>
|
2879 |
+
</states>
|
2880 |
+
<additional_params>
|
2881 |
+
<param usedby="shipped">
|
2882 |
+
<type>tracking</type>
|
2883 |
+
<name>tracking_number</name>
|
2884 |
+
</param>
|
2885 |
+
<param usedby="shipped">
|
2886 |
+
<type>carrier</type>
|
2887 |
+
<name>carrier_name</name>
|
2888 |
+
<accepted_values>
|
2889 |
+
<value label="Colissimo" default="true">1</value>
|
2890 |
+
<value label="TNT">2</value>
|
2891 |
+
<value label="Mondial Relay">3</value>
|
2892 |
+
<value label="DHL">4</value>
|
2893 |
+
</accepted_values>
|
2894 |
+
</param>
|
2895 |
+
<param usedby="shipped">
|
2896 |
+
<type>tracking_url</type>
|
2897 |
+
<name>carrier_url</name>
|
2898 |
+
</param>
|
2899 |
+
</additional_params>
|
2900 |
+
</marketplace>
|
2901 |
+
<marketplace name="galeries_lafayette">
|
2902 |
+
<api>https://wsdl.lengow.com/wsdl/galeries_lafayette/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
2903 |
+
<states>
|
2904 |
+
<state name="STAGING">
|
2905 |
+
<lengow>new</lengow>
|
2906 |
+
</state>
|
2907 |
+
<state name="WAITING_ACCEPTANCE">
|
2908 |
+
<lengow>new</lengow>
|
2909 |
+
<actions>
|
2910 |
+
<action type="accept">accept</action>
|
2911 |
+
<action type="refuse">canceled</action>
|
2912 |
+
</actions>
|
2913 |
+
</state>
|
2914 |
+
<state name="WAITING_DEBIT">
|
2915 |
+
<lengow>new</lengow>
|
2916 |
+
</state>
|
2917 |
+
<state name="WAITING_DEBIT_PAYMENT">
|
2918 |
+
<lengow>new</lengow>
|
2919 |
+
</state>
|
2920 |
+
<state name="SHIPPING">
|
2921 |
+
<lengow>processing</lengow>
|
2922 |
+
<actions>
|
2923 |
+
<action type="shipped">shipped</action>
|
2924 |
+
</actions>
|
2925 |
+
</state>
|
2926 |
+
<state name="RECEIVED">
|
2927 |
+
<lengow>shipped</lengow>
|
2928 |
+
</state>
|
2929 |
+
<state name="SHIPPED">
|
2930 |
+
<lengow>shipped</lengow>
|
2931 |
+
</state>
|
2932 |
+
<state name="CANCELED">
|
2933 |
+
<lengow>canceled</lengow>
|
2934 |
+
</state>
|
2935 |
+
<state name="CLOSED">
|
2936 |
+
<lengow>shipped</lengow>
|
2937 |
+
</state>
|
2938 |
+
<state name="REFUSED">
|
2939 |
+
<lengow>canceled</lengow>
|
2940 |
+
</state>
|
2941 |
+
<state name="INCIDENT_OPEN">
|
2942 |
+
<lengow>processing</lengow>
|
2943 |
+
</state>
|
2944 |
+
<state name="INCIDENT_CLOSED">
|
2945 |
+
<lengow>processing</lengow>
|
2946 |
+
</state>
|
2947 |
+
<state name="WAITING_REFUND">
|
2948 |
+
<lengow>processing</lengow>
|
2949 |
+
</state>
|
2950 |
+
<state name="WAITING_REFUND_PAYMENT">
|
2951 |
+
<lengow>processing</lengow>
|
2952 |
+
</state>
|
2953 |
+
<state name="REFUNDED">
|
2954 |
+
<lengow>canceled</lengow>
|
2955 |
+
</state>
|
2956 |
+
</states>
|
2957 |
+
<additional_params>
|
2958 |
+
<param usedby="shipped">
|
2959 |
+
<type>tracking</type>
|
2960 |
+
<name>tracking_number</name>
|
2961 |
+
</param>
|
2962 |
+
<param usedby="shipped">
|
2963 |
+
<type>carrier</type>
|
2964 |
+
<name>carrier_name</name>
|
2965 |
+
</param>
|
2966 |
+
<param usedby="shipped">
|
2967 |
+
<type>tracking_url</type>
|
2968 |
+
<name>carrier_url</name>
|
2969 |
+
</param>
|
2970 |
+
</additional_params>
|
2971 |
+
</marketplace>
|
2972 |
+
<marketplace name="natdec">
|
2973 |
+
<api>https://wsdl.lengow.com/wsdl/natdec/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
2974 |
+
<states>
|
2975 |
+
<state name="STAGING">
|
2976 |
+
<lengow>new</lengow>
|
2977 |
+
</state>
|
2978 |
+
<state name="WAITING_ACCEPTANCE">
|
2979 |
+
<lengow>new</lengow>
|
2980 |
+
<actions>
|
2981 |
+
<action type="accept">accept</action>
|
2982 |
+
<action type="refuse">canceled</action>
|
2983 |
+
</actions>
|
2984 |
+
</state>
|
2985 |
+
<state name="WAITING_DEBIT">
|
2986 |
+
<lengow>new</lengow>
|
2987 |
+
</state>
|
2988 |
+
<state name="WAITING_DEBIT_PAYMENT">
|
2989 |
+
<lengow>new</lengow>
|
2990 |
+
</state>
|
2991 |
+
<state name="SHIPPING">
|
2992 |
+
<lengow>processing</lengow>
|
2993 |
+
<actions>
|
2994 |
+
<action type="shipped">shipped</action>
|
2995 |
+
</actions>
|
2996 |
+
</state>
|
2997 |
+
<state name="RECEIVED">
|
2998 |
+
<lengow>shipped</lengow>
|
2999 |
+
</state>
|
3000 |
+
<state name="SHIPPED">
|
3001 |
+
<lengow>shipped</lengow>
|
3002 |
+
</state>
|
3003 |
+
<state name="CANCELED">
|
3004 |
+
<lengow>canceled</lengow>
|
3005 |
+
</state>
|
3006 |
+
<state name="CLOSED">
|
3007 |
+
<lengow>shipped</lengow>
|
3008 |
+
</state>
|
3009 |
+
<state name="REFUSED">
|
3010 |
+
<lengow>canceled</lengow>
|
3011 |
+
</state>
|
3012 |
+
<state name="INCIDENT_OPEN">
|
3013 |
+
<lengow>processing</lengow>
|
3014 |
+
</state>
|
3015 |
+
<state name="INCIDENT_CLOSED">
|
3016 |
+
<lengow>processing</lengow>
|
3017 |
+
</state>
|
3018 |
+
<state name="WAITING_REFUND">
|
3019 |
+
<lengow>processing</lengow>
|
3020 |
+
</state>
|
3021 |
+
<state name="WAITING_REFUND_PAYMENT">
|
3022 |
+
<lengow>processing</lengow>
|
3023 |
+
</state>
|
3024 |
+
<state name="REFUNDED">
|
3025 |
+
<lengow>canceled</lengow>
|
3026 |
+
</state>
|
3027 |
+
</states>
|
3028 |
+
<additional_params>
|
3029 |
+
<param usedby="shipped">
|
3030 |
+
<type>tracking</type>
|
3031 |
+
<name>tracking_number</name>
|
3032 |
+
</param>
|
3033 |
+
<param usedby="shipped">
|
3034 |
+
<type>carrier</type>
|
3035 |
+
<name>carrier_name</name>
|
3036 |
+
</param>
|
3037 |
+
<param usedby="shipped">
|
3038 |
+
<type>tracking_url</type>
|
3039 |
+
<name>carrier_url</name>
|
3040 |
+
</param>
|
3041 |
+
</additional_params>
|
3042 |
+
</marketplace>
|
3043 |
+
<marketplace name="discounteo">
|
3044 |
+
<api>https://wsdl.lengow.com/wsdl/discounteo/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
3045 |
+
<states>
|
3046 |
+
<state name="new">
|
3047 |
+
<lengow>new</lengow>
|
3048 |
+
</state>
|
3049 |
+
<state name="processing">
|
3050 |
+
<actions>
|
3051 |
+
<action type="shipped">shipped</action>
|
3052 |
+
<action type="refuse">refused</action>
|
3053 |
+
</actions>
|
3054 |
+
<lengow>processing</lengow>
|
3055 |
+
</state>
|
3056 |
+
<state name="shipped">
|
3057 |
+
<lengow>shipped</lengow>
|
3058 |
+
</state>
|
3059 |
+
<state name="refused">
|
3060 |
+
<lengow>canceled</lengow>
|
3061 |
+
</state>
|
3062 |
+
</states>
|
3063 |
+
<additional_params>
|
3064 |
+
<param usedby="shipped">
|
3065 |
+
<type>tracking</type>
|
3066 |
+
<name>TrackingColis</name>
|
3067 |
+
</param>
|
3068 |
+
<param usedby="shipped">
|
3069 |
+
<type>carrier</type>
|
3070 |
+
<name>Transporteur</name>
|
3071 |
+
</param>
|
3072 |
+
</additional_params>
|
3073 |
+
</marketplace>
|
3074 |
+
<marketplace name="ecopresto">
|
3075 |
+
<api>https://wsdl.lengow.com/wsdl/ecopresto/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
3076 |
+
<states>
|
3077 |
+
<state name="new">
|
3078 |
+
<lengow>new</lengow>
|
3079 |
+
</state>
|
3080 |
+
<state name="processing">
|
3081 |
+
<actions>
|
3082 |
+
<action type="shipped">setTracking</action>
|
3083 |
+
</actions>
|
3084 |
+
<lengow>processing</lengow>
|
3085 |
+
</state>
|
3086 |
+
<state name="shipped">
|
3087 |
+
<lengow>shipped</lengow>
|
3088 |
+
</state>
|
3089 |
+
<state name="refused">
|
3090 |
+
<lengow>canceled</lengow>
|
3091 |
+
</state>
|
3092 |
+
</states>
|
3093 |
+
<additional_params>
|
3094 |
+
<param usedby="shipped">
|
3095 |
+
<type>tracking</type>
|
3096 |
+
<name>TrackingColis</name>
|
3097 |
+
</param>
|
3098 |
+
<param usedby="shipped">
|
3099 |
+
<type>carrier</type>
|
3100 |
+
<name>TrackingCarrier</name>
|
3101 |
+
<accepted_values>
|
3102 |
+
<value label="Divers" default="true">1</value>
|
3103 |
+
<value label="Colissimo">2</value>
|
3104 |
+
<value label="Lettre Max">3</value>
|
3105 |
+
</accepted_values>
|
3106 |
+
</param>
|
3107 |
+
</additional_params>
|
3108 |
+
</marketplace>
|
3109 |
+
<marketplace name="ecitizen">
|
3110 |
+
<states>
|
3111 |
+
<state name="processing">
|
3112 |
+
<lengow>processing</lengow>
|
3113 |
+
</state>
|
3114 |
+
<state name="shipped">
|
3115 |
+
<lengow>shipped</lengow>
|
3116 |
+
</state>
|
3117 |
+
</states>
|
3118 |
+
</marketplace>
|
3119 |
+
<marketplace name="godsavethekids">
|
3120 |
+
<api>https://wsdl.lengow.com/wsdl/godsavethekids/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
3121 |
+
<states>
|
3122 |
+
<state name="RECEIVED">
|
3123 |
+
<lengow>new</lengow>
|
3124 |
+
</state>
|
3125 |
+
<state name="STAGING">
|
3126 |
+
<lengow>new</lengow>
|
3127 |
+
</state>
|
3128 |
+
<state name="WAITING_ACCEPTANCE">
|
3129 |
+
<lengow>new</lengow>
|
3130 |
+
<actions>
|
3131 |
+
<action type="accept">accept</action>
|
3132 |
+
<action type="refuse">canceled</action>
|
3133 |
+
</actions>
|
3134 |
+
</state>
|
3135 |
+
<state name="WAITING_DEBIT">
|
3136 |
+
<lengow>new</lengow>
|
3137 |
+
</state>
|
3138 |
+
<state name="WAITING_DEBIT_PAYMENT">
|
3139 |
+
<lengow>new</lengow>
|
3140 |
+
</state>
|
3141 |
+
<state name="CANCELED">
|
3142 |
+
<lengow>canceled</lengow>
|
3143 |
+
</state>
|
3144 |
+
<state name="CLOSED">
|
3145 |
+
<lengow>shipped</lengow>
|
3146 |
+
</state>
|
3147 |
+
<state name="REFUSED">
|
3148 |
+
<lengow>canceled</lengow>
|
3149 |
+
</state>
|
3150 |
+
<state name="SHIPPING">
|
3151 |
+
<lengow>processing</lengow>
|
3152 |
+
<actions>
|
3153 |
+
<action type="shipped">shipped</action>
|
3154 |
+
</actions>
|
3155 |
+
</state>
|
3156 |
+
<state name="INCIDENT_OPEN">
|
3157 |
+
<lengow>processing</lengow>
|
3158 |
+
</state>
|
3159 |
+
<state name="INCIDENT_CLOSED">
|
3160 |
+
<lengow>processing</lengow>
|
3161 |
+
</state>
|
3162 |
+
<state name="SHIPPED">
|
3163 |
+
<lengow>shipped</lengow>
|
3164 |
+
</state>
|
3165 |
+
<state name="REFUNDED">
|
3166 |
+
<lengow>canceled</lengow>
|
3167 |
+
</state>
|
3168 |
+
<state name="RECEIVED">
|
3169 |
+
<lengow>shipped</lengow>
|
3170 |
+
</state>
|
3171 |
+
<state name="WAITING_REFUND">
|
3172 |
+
<lengow>processing</lengow>
|
3173 |
+
</state>
|
3174 |
+
<state name="WAITING_REFUND_PAYMENT">
|
3175 |
+
<lengow>processing</lengow>
|
3176 |
+
</state>
|
3177 |
+
</states>
|
3178 |
+
</marketplace>
|
3179 |
+
<marketplace name="mistergooddeal">
|
3180 |
+
<api>https://wsdl.lengow.com/wsdl/mistergooddeal/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
3181 |
+
<states>
|
3182 |
+
<state name="STAGING">
|
3183 |
+
<lengow>new</lengow>
|
3184 |
+
</state>
|
3185 |
+
<state name="WAITING_ACCEPTANCE">
|
3186 |
+
<lengow>new</lengow>
|
3187 |
+
<actions>
|
3188 |
+
<action type="accept">accept</action>
|
3189 |
+
<action type="refuse">canceled</action>
|
3190 |
+
</actions>
|
3191 |
+
</state>
|
3192 |
+
<state name="WAITING_DEBIT">
|
3193 |
+
<lengow>new</lengow>
|
3194 |
+
</state>
|
3195 |
+
<state name="WAITING_DEBIT_PAYMENT">
|
3196 |
+
<lengow>new</lengow>
|
3197 |
+
</state>
|
3198 |
+
<state name="SHIPPING">
|
3199 |
+
<lengow>processing</lengow>
|
3200 |
+
<actions>
|
3201 |
+
<action type="shipped">shipped</action>
|
3202 |
+
</actions>
|
3203 |
+
</state>
|
3204 |
+
<state name="RECEIVED">
|
3205 |
+
<lengow>shipped</lengow>
|
3206 |
+
</state>
|
3207 |
+
<state name="SHIPPED">
|
3208 |
+
<lengow>shipped</lengow>
|
3209 |
+
</state>
|
3210 |
+
<state name="CANCELED">
|
3211 |
+
<lengow>canceled</lengow>
|
3212 |
+
</state>
|
3213 |
+
<state name="CLOSED">
|
3214 |
+
<lengow>shipped</lengow>
|
3215 |
+
</state>
|
3216 |
+
<state name="REFUSED">
|
3217 |
+
<lengow>canceled</lengow>
|
3218 |
+
</state>
|
3219 |
+
<state name="INCIDENT_OPEN">
|
3220 |
+
<lengow>processing</lengow>
|
3221 |
+
</state>
|
3222 |
+
<state name="INCIDENT_CLOSED">
|
3223 |
+
<lengow>processing</lengow>
|
3224 |
+
</state>
|
3225 |
+
<state name="WAITING_REFUND">
|
3226 |
+
<lengow>processing</lengow>
|
3227 |
+
</state>
|
3228 |
+
<state name="WAITING_REFUND_PAYMENT">
|
3229 |
+
<lengow>processing</lengow>
|
3230 |
+
</state>
|
3231 |
+
<state name="REFUNDED">
|
3232 |
+
<lengow>canceled</lengow>
|
3233 |
+
</state>
|
3234 |
+
</states>
|
3235 |
+
<additional_params>
|
3236 |
+
<param usedby="shipped">
|
3237 |
+
<type>tracking</type>
|
3238 |
+
<name>tracking_number</name>
|
3239 |
+
</param>
|
3240 |
+
<param usedby="shipped">
|
3241 |
+
<type>carrier</type>
|
3242 |
+
<name>carrier_name</name>
|
3243 |
+
</param>
|
3244 |
+
<param usedby="shipped">
|
3245 |
+
<type>tracking_url</type>
|
3246 |
+
<name>carrier_url</name>
|
3247 |
+
</param>
|
3248 |
+
</additional_params>
|
3249 |
+
</marketplace>
|
3250 |
+
<marketplace name="rakuten_de">
|
3251 |
+
<api>https://wsdl.lengow.com/wsdl/rakutende/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
3252 |
+
<states>
|
3253 |
+
<state name="pending">
|
3254 |
+
<lengow>new</lengow>
|
3255 |
+
</state>
|
3256 |
+
<state name="editable">
|
3257 |
+
<lengow>processing</lengow>
|
3258 |
+
<actions>
|
3259 |
+
<action type="shipped">shipped</action>
|
3260 |
+
</actions>
|
3261 |
+
</state>
|
3262 |
+
<state name="shipped">
|
3263 |
+
<lengow>shipped</lengow>
|
3264 |
+
</state>
|
3265 |
+
<state name="payout">
|
3266 |
+
<lengow>shipped</lengow>
|
3267 |
+
</state>
|
3268 |
+
<state name="cancelled">
|
3269 |
+
<lengow>canceled</lengow>
|
3270 |
+
</state>
|
3271 |
+
</states>
|
3272 |
+
</marketplace>
|
3273 |
+
<marketplace name="rakuten_es">
|
3274 |
+
<api>https://wsdl.lengow.com/wsdl/rakutenes/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
3275 |
+
<states>
|
3276 |
+
<state name="Unfixed">
|
3277 |
+
<lengow>new</lengow>
|
3278 |
+
</state>
|
3279 |
+
<state name="AwaitingPayment">
|
3280 |
+
<lengow>new</lengow>
|
3281 |
+
</state>
|
3282 |
+
<state name="ProcessingPayment">
|
3283 |
+
<lengow>new</lengow>
|
3284 |
+
</state>
|
3285 |
+
<state name="NotShipped">
|
3286 |
+
<lengow>processing</lengow>
|
3287 |
+
<actions>
|
3288 |
+
<action type="shipped">shipped</action>
|
3289 |
+
</actions>
|
3290 |
+
</state>
|
3291 |
+
|
3292 |
+
<state name="AwaitingCompletion">
|
3293 |
+
<lengow>shipped</lengow>
|
3294 |
+
</state>
|
3295 |
+
<state name="Complete">
|
3296 |
+
<lengow>shipped</lengow>
|
3297 |
+
</state>
|
3298 |
+
<state name="Cancelled">
|
3299 |
+
<lengow>canceled</lengow>
|
3300 |
+
</state>
|
3301 |
+
<state name="CancelledAndRefund">
|
3302 |
+
<lengow>canceled</lengow>
|
3303 |
+
</state>
|
3304 |
+
</states>
|
3305 |
+
</marketplace>
|
3306 |
+
<marketplace name="rakuten_uk">
|
3307 |
+
<api>https://wsdl.lengow.com/wsdl/rakutenuk/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
3308 |
+
<states>
|
3309 |
+
<state name="Unfixed">
|
3310 |
+
<lengow>new</lengow>
|
3311 |
+
</state>
|
3312 |
+
<state name="AwaitingPayment">
|
3313 |
+
<lengow>new</lengow>
|
3314 |
+
</state>
|
3315 |
+
<state name="ProcessingPayment">
|
3316 |
+
<lengow>new</lengow>
|
3317 |
+
</state>
|
3318 |
+
<state name="NotShipped">
|
3319 |
+
<lengow>processing</lengow>
|
3320 |
+
<actions>
|
3321 |
+
<action type="shipped">shipped</action>
|
3322 |
+
</actions>
|
3323 |
+
</state>
|
3324 |
+
|
3325 |
+
<state name="AwaitingCompletion">
|
3326 |
+
<lengow>shipped</lengow>
|
3327 |
+
</state>
|
3328 |
+
<state name="Complete">
|
3329 |
+
<lengow>shipped</lengow>
|
3330 |
+
</state>
|
3331 |
+
<state name="Cancelled">
|
3332 |
+
<lengow>canceled</lengow>
|
3333 |
+
</state>
|
3334 |
+
<state name="CancelledAndRefund">
|
3335 |
+
<lengow>canceled</lengow>
|
3336 |
+
</state>
|
3337 |
+
</states>
|
3338 |
+
</marketplace>
|
3339 |
+
<marketplace name="spartoo">
|
3340 |
+
<api>https://wsdl.lengow.com/wsdl/spartoo/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
3341 |
+
<states>
|
3342 |
+
<state name="0">
|
3343 |
+
<lengow>new</lengow>
|
3344 |
+
</state>
|
3345 |
+
<state name="1">
|
3346 |
+
<actions>
|
3347 |
+
<action type="accept">processing</action>
|
3348 |
+
<action type="cancel">canceled</action>
|
3349 |
+
<action type="refund">refund</action>
|
3350 |
+
</actions>
|
3351 |
+
<lengow>new</lengow>
|
3352 |
+
</state>
|
3353 |
+
<state name="11">
|
3354 |
+
<lengow>new</lengow>
|
3355 |
+
<actions>
|
3356 |
+
<action type="accept">processing</action>
|
3357 |
+
<action type="cancel">canceled</action>
|
3358 |
+
<action type="refund">refund</action>
|
3359 |
+
</actions>
|
3360 |
+
</state>
|
3361 |
+
<state name="2">
|
3362 |
+
<actions>
|
3363 |
+
<action type="shipped" method="post">shipped</action>
|
3364 |
+
<action type="cancel">canceled</action>
|
3365 |
+
<action type="refund">refund</action>
|
3366 |
+
</actions>
|
3367 |
+
<lengow>processing</lengow>
|
3368 |
+
</state>
|
3369 |
+
<state name="3">
|
3370 |
+
<lengow>shipped</lengow>
|
3371 |
+
</state>
|
3372 |
+
<state name="4">
|
3373 |
+
<lengow>canceled</lengow>
|
3374 |
+
</state>
|
3375 |
+
<state name="41">
|
3376 |
+
<lengow>canceled</lengow>
|
3377 |
+
</state>
|
3378 |
+
<state name="48">
|
3379 |
+
<lengow>canceled</lengow>
|
3380 |
+
</state>
|
3381 |
+
</states>
|
3382 |
+
<additional_params>
|
3383 |
+
<param usedby="shipped">
|
3384 |
+
<type>tracking</type>
|
3385 |
+
<name>tracking_number</name>
|
3386 |
+
</param>
|
3387 |
+
</additional_params>
|
3388 |
+
</marketplace>
|
3389 |
+
<marketplace name="zalando">
|
3390 |
+
<api>https://wsdl.lengow.com/wsdl/zalando/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
3391 |
+
<states>
|
3392 |
+
<state name="New">
|
3393 |
+
<lengow>new</lengow>
|
3394 |
+
</state>
|
3395 |
+
<state name="Approved">
|
3396 |
+
<actions>
|
3397 |
+
<action type="shipped" method="post">shipped</action>
|
3398 |
+
<action type="cancel" method="post">canceled</action>
|
3399 |
+
</actions>
|
3400 |
+
<lengow>processing</lengow>
|
3401 |
+
</state>
|
3402 |
+
<state name="SHIPPED">
|
3403 |
+
<actions>
|
3404 |
+
<action type="returned" method="post">returned</action>
|
3405 |
+
</actions>
|
3406 |
+
<lengow>shipped</lengow>
|
3407 |
+
</state>
|
3408 |
+
<state name="RETURNED">
|
3409 |
+
<lengow>canceled</lengow>
|
3410 |
+
</state>
|
3411 |
+
<state name="ZALANDO_CANCELED">
|
3412 |
+
<lengow>canceled</lengow>
|
3413 |
+
</state>
|
3414 |
+
<state name="NO_INVENTORY_CANCELED">
|
3415 |
+
<lengow>canceled</lengow>
|
3416 |
+
</state>
|
3417 |
+
</states>
|
3418 |
+
<additional_params>
|
3419 |
+
<param usedby="shipped cancel refund returned">
|
3420 |
+
<type>client_token</type>
|
3421 |
+
<name>token</name>
|
3422 |
+
</param>
|
3423 |
+
<param usedby="shipped cancel refund returned">
|
3424 |
+
<type>action</type>
|
3425 |
+
<name>action</name>
|
3426 |
+
</param>
|
3427 |
+
<param usedby="shipped cancel refund returned">
|
3428 |
+
<type>sku</type>
|
3429 |
+
<name>sku</name>
|
3430 |
+
</param>
|
3431 |
+
<param usedby="shipped cancel refund returned">
|
3432 |
+
<type>quantity</type>
|
3433 |
+
<name>quantity</name>
|
3434 |
+
</param>
|
3435 |
+
<param usedby="shipped cancel refund returned">
|
3436 |
+
<type>line</type>
|
3437 |
+
<name>line</name>
|
3438 |
+
</param>
|
3439 |
+
<param usedby="shipped">
|
3440 |
+
<type>tracking</type>
|
3441 |
+
<name>trackingNumber</name>
|
3442 |
+
</param>
|
3443 |
+
<param usedby="shipped">
|
3444 |
+
<type>return_tracking</type>
|
3445 |
+
<name>returnTrackingNumber</name>
|
3446 |
+
</param>
|
3447 |
+
<param usedby="returned">
|
3448 |
+
<type>return_code</type>
|
3449 |
+
<name>returnReasonCode</name>
|
3450 |
+
</param>
|
3451 |
+
</additional_params>
|
3452 |
+
</marketplace>
|
3453 |
+
<marketplace name="placedumariage">
|
3454 |
+
<states>
|
3455 |
+
<state name="partielle">
|
3456 |
+
<lengow>new</lengow>
|
3457 |
+
</state>
|
3458 |
+
<state name="complète">
|
3459 |
+
<lengow>new</lengow>
|
3460 |
+
</state>
|
3461 |
+
<state name="expédiée">
|
3462 |
+
<lengow>shipped</lengow>
|
3463 |
+
</state>
|
3464 |
+
<state name="annulée">
|
3465 |
+
<lengow>canceled</lengow>
|
3466 |
+
</state>
|
3467 |
+
</states>
|
3468 |
+
</marketplace>
|
3469 |
+
<marketplace name="home24_de">
|
3470 |
+
<api>https://wsdl.lengow.com/wsdl/home24_de/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
3471 |
+
<apibyline>https://wsdl.lengow.com/wsdl/home24_de/#ID_FLUX#/#ORDER_ID#/#ORDER_LINE_ID#/#QUANTITY#/action_lines.xml</apibyline>
|
3472 |
+
<states>
|
3473 |
+
<state name="new">
|
3474 |
+
<lengow>new</lengow>
|
3475 |
+
<actions>
|
3476 |
+
<action type="accept" method="post">processing</action>
|
3477 |
+
<action type="refuse" method="post">canceled</action>
|
3478 |
+
</actions>
|
3479 |
+
</state>
|
3480 |
+
<state name="processing">
|
3481 |
+
<lengow>processing</lengow>
|
3482 |
+
<actions>
|
3483 |
+
<action type="shipped" method="post">shipped</action>
|
3484 |
+
<action type="refuse" method="post">canceled</action>
|
3485 |
+
</actions>
|
3486 |
+
</state>
|
3487 |
+
<state name="shipped">
|
3488 |
+
<lengow>shipped</lengow>
|
3489 |
+
</state>
|
3490 |
+
<state name="canceled">
|
3491 |
+
<lengow>canceled</lengow>
|
3492 |
+
</state>
|
3493 |
+
</states>
|
3494 |
+
<additional_params>
|
3495 |
+
<param usedby="accept">
|
3496 |
+
<type>date_shipped</type>
|
3497 |
+
<name>date_shipped</name>
|
3498 |
+
</param>
|
3499 |
+
<param usedby="accept">
|
3500 |
+
<type>date_delivered</type>
|
3501 |
+
<name>date_delivered</name>
|
3502 |
+
</param>
|
3503 |
+
<param usedby="shipped cancel refund returned">
|
3504 |
+
<type>action</type>
|
3505 |
+
<name>action</name>
|
3506 |
+
</param>
|
3507 |
+
<param usedby="shipped cancel refund returned">
|
3508 |
+
<type>sku</type>
|
3509 |
+
<name>sku</name>
|
3510 |
+
</param>
|
3511 |
+
<param usedby="shipped cancel refund returned">
|
3512 |
+
<type>quantity</type>
|
3513 |
+
<name>quantity</name>
|
3514 |
+
</param>
|
3515 |
+
<param usedby="shipped cancel refund returned">
|
3516 |
+
<type>line</type>
|
3517 |
+
<name>line</name>
|
3518 |
+
</param>
|
3519 |
+
<param usedby="shipped">
|
3520 |
+
<type>tracking</type>
|
3521 |
+
<name>tracking_number</name>
|
3522 |
+
</param>
|
3523 |
+
<param usedby="shipped">
|
3524 |
+
<type>carrier</type>
|
3525 |
+
<name>carrier_name</name>
|
3526 |
+
</param>
|
3527 |
+
</additional_params>
|
3528 |
+
</marketplace>
|
3529 |
+
<marketplace name="home24_fr">
|
3530 |
+
<api>https://wsdl.lengow.com/wsdl/home24_fr/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
3531 |
+
<apibyline>https://wsdl.lengow.com/wsdl/home24_fr/#ID_FLUX#/#ORDER_ID#/#ORDER_LINE_ID#/#QUANTITY#/action_lines.xml</apibyline>
|
3532 |
+
<states>
|
3533 |
+
<state name="new">
|
3534 |
+
<lengow>new</lengow>
|
3535 |
+
<actions>
|
3536 |
+
<action type="accept" method="post">processing</action>
|
3537 |
+
<action type="refuse" method="post">canceled</action>
|
3538 |
+
</actions>
|
3539 |
+
</state>
|
3540 |
+
<state name="processing">
|
3541 |
+
<lengow>processing</lengow>
|
3542 |
+
<actions>
|
3543 |
+
<action type="shipped" method="post">shipped</action>
|
3544 |
+
<action type="refuse" method="post">canceled</action>
|
3545 |
+
</actions>
|
3546 |
+
</state>
|
3547 |
+
<state name="shipped">
|
3548 |
+
<lengow>shipped</lengow>
|
3549 |
+
</state>
|
3550 |
+
<state name="canceled">
|
3551 |
+
<lengow>canceled</lengow>
|
3552 |
+
</state>
|
3553 |
+
</states>
|
3554 |
+
<additional_params>
|
3555 |
+
<param usedby="accept">
|
3556 |
+
<type>date_shipped</type>
|
3557 |
+
<name>date_shipped</name>
|
3558 |
+
</param>
|
3559 |
+
<param usedby="accept">
|
3560 |
+
<type>date_delivered</type>
|
3561 |
+
<name>date_delivered</name>
|
3562 |
+
</param>
|
3563 |
+
<param usedby="shipped cancel refund returned">
|
3564 |
+
<type>action</type>
|
3565 |
+
<name>action</name>
|
3566 |
+
</param>
|
3567 |
+
<param usedby="shipped cancel refund returned">
|
3568 |
+
<type>sku</type>
|
3569 |
+
<name>sku</name>
|
3570 |
+
</param>
|
3571 |
+
<param usedby="shipped cancel refund returned">
|
3572 |
+
<type>quantity</type>
|
3573 |
+
<name>quantity</name>
|
3574 |
+
</param>
|
3575 |
+
<param usedby="shipped cancel refund returned">
|
3576 |
+
<type>line</type>
|
3577 |
+
<name>line</name>
|
3578 |
+
</param>
|
3579 |
+
<param usedby="shipped">
|
3580 |
+
<type>tracking</type>
|
3581 |
+
<name>tracking_number</name>
|
3582 |
+
</param>
|
3583 |
+
<param usedby="shipped">
|
3584 |
+
<type>carrier</type>
|
3585 |
+
<name>carrier_name</name>
|
3586 |
+
</param>
|
3587 |
+
</additional_params>
|
3588 |
+
</marketplace>
|
3589 |
+
<marketplace name="home24_nl">
|
3590 |
+
<api>https://wsdl.lengow.com/wsdl/home24_nl/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
3591 |
+
<apibyline>https://wsdl.lengow.com/wsdl/home24_nl/#ID_FLUX#/#ORDER_ID#/#ORDER_LINE_ID#/#QUANTITY#/action_lines.xml</apibyline>
|
3592 |
+
<states>
|
3593 |
+
<state name="new">
|
3594 |
+
<lengow>new</lengow>
|
3595 |
+
<actions>
|
3596 |
+
<action type="accept" method="post">processing</action>
|
3597 |
+
<action type="refuse" method="post">canceled</action>
|
3598 |
+
</actions>
|
3599 |
+
</state>
|
3600 |
+
<state name="processing">
|
3601 |
+
<lengow>processing</lengow>
|
3602 |
+
<actions>
|
3603 |
+
<action type="shipped" method="post">shipped</action>
|
3604 |
+
<action type="refuse" method="post">canceled</action>
|
3605 |
+
</actions>
|
3606 |
+
</state>
|
3607 |
+
<state name="shipped">
|
3608 |
+
<lengow>shipped</lengow>
|
3609 |
+
</state>
|
3610 |
+
<state name="canceled">
|
3611 |
+
<lengow>canceled</lengow>
|
3612 |
+
</state>
|
3613 |
+
</states>
|
3614 |
+
<additional_params>
|
3615 |
+
<param usedby="accept">
|
3616 |
+
<type>date_shipped</type>
|
3617 |
+
<name>date_shipped</name>
|
3618 |
+
</param>
|
3619 |
+
<param usedby="accept">
|
3620 |
+
<type>date_delivered</type>
|
3621 |
+
<name>date_delivered</name>
|
3622 |
+
</param>
|
3623 |
+
<param usedby="shipped cancel refund returned">
|
3624 |
+
<type>action</type>
|
3625 |
+
<name>action</name>
|
3626 |
+
</param>
|
3627 |
+
<param usedby="shipped cancel refund returned">
|
3628 |
+
<type>sku</type>
|
3629 |
+
<name>sku</name>
|
3630 |
+
</param>
|
3631 |
+
<param usedby="shipped cancel refund returned">
|
3632 |
+
<type>quantity</type>
|
3633 |
+
<name>quantity</name>
|
3634 |
+
</param>
|
3635 |
+
<param usedby="shipped cancel refund returned">
|
3636 |
+
<type>line</type>
|
3637 |
+
<name>line</name>
|
3638 |
+
</param>
|
3639 |
+
<param usedby="shipped">
|
3640 |
+
<type>tracking</type>
|
3641 |
+
<name>tracking_number</name>
|
3642 |
+
</param>
|
3643 |
+
<param usedby="shipped">
|
3644 |
+
<type>carrier</type>
|
3645 |
+
<name>carrier_name</name>
|
3646 |
+
</param>
|
3647 |
+
</additional_params>
|
3648 |
</marketplace>
|
3649 |
+
<marketplace name="home24_at">
|
3650 |
+
<api>https://wsdl.lengow.com/wsdl/home24_at/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
3651 |
+
<apibyline>https://wsdl.lengow.com/wsdl/home24_at/#ID_FLUX#/#ORDER_ID#/#ORDER_LINE_ID#/#QUANTITY#/action_lines.xml</apibyline>
|
3652 |
<states>
|
3653 |
+
<state name="new">
|
3654 |
<lengow>new</lengow>
|
3655 |
+
<actions>
|
3656 |
+
<action type="accept" method="post">processing</action>
|
3657 |
+
<action type="refuse" method="post">canceled</action>
|
3658 |
+
</actions>
|
3659 |
</state>
|
3660 |
+
<state name="processing">
|
3661 |
+
<lengow>processing</lengow>
|
3662 |
<actions>
|
3663 |
+
<action type="shipped" method="post">shipped</action>
|
3664 |
+
<action type="refuse" method="post">canceled</action>
|
|
|
3665 |
</actions>
|
|
|
3666 |
</state>
|
3667 |
+
<state name="shipped">
|
3668 |
+
<lengow>shipped</lengow>
|
3669 |
+
</state>
|
3670 |
+
<state name="canceled">
|
3671 |
+
<lengow>canceled</lengow>
|
3672 |
+
</state>
|
3673 |
+
</states>
|
3674 |
+
<additional_params>
|
3675 |
+
<param usedby="accept">
|
3676 |
+
<type>date_shipped</type>
|
3677 |
+
<name>date_shipped</name>
|
3678 |
+
</param>
|
3679 |
+
<param usedby="accept">
|
3680 |
+
<type>date_delivered</type>
|
3681 |
+
<name>date_delivered</name>
|
3682 |
+
</param>
|
3683 |
+
<param usedby="shipped cancel refund returned">
|
3684 |
+
<type>action</type>
|
3685 |
+
<name>action</name>
|
3686 |
+
</param>
|
3687 |
+
<param usedby="shipped cancel refund returned">
|
3688 |
+
<type>sku</type>
|
3689 |
+
<name>sku</name>
|
3690 |
+
</param>
|
3691 |
+
<param usedby="shipped cancel refund returned">
|
3692 |
+
<type>quantity</type>
|
3693 |
+
<name>quantity</name>
|
3694 |
+
</param>
|
3695 |
+
<param usedby="shipped cancel refund returned">
|
3696 |
+
<type>line</type>
|
3697 |
+
<name>line</name>
|
3698 |
+
</param>
|
3699 |
+
<param usedby="shipped">
|
3700 |
+
<type>tracking</type>
|
3701 |
+
<name>tracking_number</name>
|
3702 |
+
</param>
|
3703 |
+
<param usedby="shipped">
|
3704 |
+
<type>carrier</type>
|
3705 |
+
<name>carrier_name</name>
|
3706 |
+
</param>
|
3707 |
+
</additional_params>
|
3708 |
+
</marketplace>
|
3709 |
+
<marketplace name="home24_bede">
|
3710 |
+
<api>https://wsdl.lengow.com/wsdl/home24_bede/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
3711 |
+
<apibyline>https://wsdl.lengow.com/wsdl/home24_bede/#ID_FLUX#/#ORDER_ID#/#ORDER_LINE_ID#/#QUANTITY#/action_lines.xml</apibyline>
|
3712 |
+
<states>
|
3713 |
+
<state name="new">
|
3714 |
<lengow>new</lengow>
|
3715 |
<actions>
|
3716 |
+
<action type="accept" method="post">processing</action>
|
3717 |
+
<action type="refuse" method="post">canceled</action>
|
|
|
3718 |
</actions>
|
3719 |
</state>
|
3720 |
+
<state name="processing">
|
3721 |
+
<lengow>processing</lengow>
|
3722 |
<actions>
|
3723 |
<action type="shipped" method="post">shipped</action>
|
3724 |
+
<action type="refuse" method="post">canceled</action>
|
|
|
3725 |
</actions>
|
|
|
3726 |
</state>
|
3727 |
+
<state name="shipped">
|
3728 |
<lengow>shipped</lengow>
|
3729 |
</state>
|
3730 |
+
<state name="canceled">
|
3731 |
<lengow>canceled</lengow>
|
3732 |
</state>
|
3733 |
+
</states>
|
3734 |
+
<additional_params>
|
3735 |
+
<param usedby="accept">
|
3736 |
+
<type>date_shipped</type>
|
3737 |
+
<name>date_shipped</name>
|
3738 |
+
</param>
|
3739 |
+
<param usedby="accept">
|
3740 |
+
<type>date_delivered</type>
|
3741 |
+
<name>date_delivered</name>
|
3742 |
+
</param>
|
3743 |
+
<param usedby="shipped cancel refund returned">
|
3744 |
+
<type>action</type>
|
3745 |
+
<name>action</name>
|
3746 |
+
</param>
|
3747 |
+
<param usedby="shipped cancel refund returned">
|
3748 |
+
<type>sku</type>
|
3749 |
+
<name>sku</name>
|
3750 |
+
</param>
|
3751 |
+
<param usedby="shipped cancel refund returned">
|
3752 |
+
<type>quantity</type>
|
3753 |
+
<name>quantity</name>
|
3754 |
+
</param>
|
3755 |
+
<param usedby="shipped cancel refund returned">
|
3756 |
+
<type>line</type>
|
3757 |
+
<name>line</name>
|
3758 |
+
</param>
|
3759 |
+
<param usedby="shipped">
|
3760 |
+
<type>tracking</type>
|
3761 |
+
<name>tracking_number</name>
|
3762 |
+
</param>
|
3763 |
+
<param usedby="shipped">
|
3764 |
+
<type>carrier</type>
|
3765 |
+
<name>carrier_name</name>
|
3766 |
+
</param>
|
3767 |
+
</additional_params>
|
3768 |
+
</marketplace>
|
3769 |
+
<marketplace name="home24_befr">
|
3770 |
+
<api>https://wsdl.lengow.com/wsdl/home24_befr/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
3771 |
+
<apibyline>https://wsdl.lengow.com/wsdl/home24_befr/#ID_FLUX#/#ORDER_ID#/#ORDER_LINE_ID#/#QUANTITY#/action_lines.xml</apibyline>
|
3772 |
+
<states>
|
3773 |
+
<state name="new">
|
3774 |
+
<lengow>new</lengow>
|
3775 |
+
<actions>
|
3776 |
+
<action type="accept" method="post">processing</action>
|
3777 |
+
<action type="refuse" method="post">canceled</action>
|
3778 |
+
</actions>
|
3779 |
+
</state>
|
3780 |
+
<state name="processing">
|
3781 |
+
<lengow>processing</lengow>
|
3782 |
+
<actions>
|
3783 |
+
<action type="shipped" method="post">shipped</action>
|
3784 |
+
<action type="refuse" method="post">canceled</action>
|
3785 |
+
</actions>
|
3786 |
+
</state>
|
3787 |
+
<state name="shipped">
|
3788 |
+
<lengow>shipped</lengow>
|
3789 |
+
</state>
|
3790 |
+
<state name="canceled">
|
3791 |
<lengow>canceled</lengow>
|
3792 |
</state>
|
3793 |
</states>
|
3794 |
<additional_params>
|
3795 |
+
<param usedby="accept">
|
3796 |
+
<type>date_shipped</type>
|
3797 |
+
<name>date_shipped</name>
|
3798 |
+
</param>
|
3799 |
+
<param usedby="accept">
|
3800 |
+
<type>date_delivered</type>
|
3801 |
+
<name>date_delivered</name>
|
3802 |
+
</param>
|
3803 |
+
<param usedby="shipped cancel refund returned">
|
3804 |
+
<type>action</type>
|
3805 |
+
<name>action</name>
|
3806 |
+
</param>
|
3807 |
+
<param usedby="shipped cancel refund returned">
|
3808 |
+
<type>sku</type>
|
3809 |
+
<name>sku</name>
|
3810 |
+
</param>
|
3811 |
+
<param usedby="shipped cancel refund returned">
|
3812 |
+
<type>quantity</type>
|
3813 |
+
<name>quantity</name>
|
3814 |
+
</param>
|
3815 |
+
<param usedby="shipped cancel refund returned">
|
3816 |
+
<type>line</type>
|
3817 |
+
<name>line</name>
|
3818 |
+
</param>
|
3819 |
<param usedby="shipped">
|
3820 |
<type>tracking</type>
|
3821 |
<name>tracking_number</name>
|
3822 |
</param>
|
3823 |
+
<param usedby="shipped">
|
3824 |
+
<type>carrier</type>
|
3825 |
+
<name>carrier_name</name>
|
3826 |
+
</param>
|
3827 |
</additional_params>
|
3828 |
</marketplace>
|
3829 |
+
<marketplace name="home24_it">
|
3830 |
+
<api>https://wsdl.lengow.com/wsdl/home24_it/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
3831 |
+
<apibyline>https://wsdl.lengow.com/wsdl/home24_it/#ID_FLUX#/#ORDER_ID#/#ORDER_LINE_ID#/#QUANTITY#/action_lines.xml</apibyline>
|
3832 |
<states>
|
3833 |
+
<state name="new">
|
3834 |
<lengow>new</lengow>
|
|
|
|
|
3835 |
<actions>
|
3836 |
+
<action type="accept" method="post">processing</action>
|
3837 |
+
<action type="refuse" method="post">canceled</action>
|
|
|
3838 |
</actions>
|
|
|
3839 |
</state>
|
3840 |
+
<state name="processing">
|
3841 |
+
<lengow>processing</lengow>
|
3842 |
<actions>
|
3843 |
+
<action type="shipped" method="post">shipped</action>
|
3844 |
+
<action type="refuse" method="post">canceled</action>
|
3845 |
</actions>
|
3846 |
+
</state>
|
3847 |
+
<state name="shipped">
|
3848 |
<lengow>shipped</lengow>
|
3849 |
</state>
|
3850 |
+
<state name="canceled">
|
3851 |
<lengow>canceled</lengow>
|
3852 |
</state>
|
3853 |
+
</states>
|
3854 |
+
<additional_params>
|
3855 |
+
<param usedby="accept">
|
3856 |
+
<type>date_shipped</type>
|
3857 |
+
<name>date_shipped</name>
|
3858 |
+
</param>
|
3859 |
+
<param usedby="accept">
|
3860 |
+
<type>date_delivered</type>
|
3861 |
+
<name>date_delivered</name>
|
3862 |
+
</param>
|
3863 |
+
<param usedby="shipped cancel refund returned">
|
3864 |
+
<type>action</type>
|
3865 |
+
<name>action</name>
|
3866 |
+
</param>
|
3867 |
+
<param usedby="shipped cancel refund returned">
|
3868 |
+
<type>sku</type>
|
3869 |
+
<name>sku</name>
|
3870 |
+
</param>
|
3871 |
+
<param usedby="shipped cancel refund returned">
|
3872 |
+
<type>quantity</type>
|
3873 |
+
<name>quantity</name>
|
3874 |
+
</param>
|
3875 |
+
<param usedby="shipped cancel refund returned">
|
3876 |
+
<type>line</type>
|
3877 |
+
<name>line</name>
|
3878 |
+
</param>
|
3879 |
+
<param usedby="shipped">
|
3880 |
+
<type>tracking</type>
|
3881 |
+
<name>tracking_number</name>
|
3882 |
+
</param>
|
3883 |
+
<param usedby="shipped">
|
3884 |
+
<type>carrier</type>
|
3885 |
+
<name>carrier_name</name>
|
3886 |
+
</param>
|
3887 |
+
</additional_params>
|
3888 |
+
</marketplace>
|
3889 |
+
<marketplace name="home24_swde">
|
3890 |
+
<api>https://wsdl.lengow.com/wsdl/home24_swde/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
3891 |
+
<apibyline>https://wsdl.lengow.com/wsdl/home24_swde/#ID_FLUX#/#ORDER_ID#/#ORDER_LINE_ID#/#QUANTITY#/action_lines.xml</apibyline>
|
3892 |
+
<states>
|
3893 |
+
<state name="new">
|
3894 |
+
<lengow>new</lengow>
|
3895 |
+
<actions>
|
3896 |
+
<action type="accept" method="post">processing</action>
|
3897 |
+
<action type="refuse" method="post">canceled</action>
|
3898 |
+
</actions>
|
3899 |
+
</state>
|
3900 |
+
<state name="processing">
|
3901 |
+
<lengow>processing</lengow>
|
3902 |
+
<actions>
|
3903 |
+
<action type="shipped" method="post">shipped</action>
|
3904 |
+
<action type="refuse" method="post">canceled</action>
|
3905 |
+
</actions>
|
3906 |
+
</state>
|
3907 |
+
<state name="shipped">
|
3908 |
+
<lengow>shipped</lengow>
|
3909 |
+
</state>
|
3910 |
<state name="canceled">
|
3911 |
<lengow>canceled</lengow>
|
3912 |
</state>
|
3913 |
</states>
|
3914 |
<additional_params>
|
3915 |
+
<param usedby="accept">
|
3916 |
+
<type>date_shipped</type>
|
3917 |
+
<name>date_shipped</name>
|
3918 |
+
</param>
|
3919 |
+
<param usedby="accept">
|
3920 |
+
<type>date_delivered</type>
|
3921 |
+
<name>date_delivered</name>
|
3922 |
</param>
|
3923 |
<param usedby="shipped cancel refund returned">
|
3924 |
<type>action</type>
|
3938 |
</param>
|
3939 |
<param usedby="shipped">
|
3940 |
<type>tracking</type>
|
3941 |
+
<name>tracking_number</name>
|
3942 |
</param>
|
3943 |
<param usedby="shipped">
|
3944 |
+
<type>carrier</type>
|
3945 |
+
<name>carrier_name</name>
|
|
|
|
|
|
|
|
|
3946 |
</param>
|
3947 |
</additional_params>
|
3948 |
</marketplace>
|
3949 |
+
<marketplace name="home24_swfr">
|
3950 |
+
<api>https://wsdl.lengow.com/wsdl/home24_swfr/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
3951 |
+
<apibyline>https://wsdl.lengow.com/wsdl/home24_swfr/#ID_FLUX#/#ORDER_ID#/#ORDER_LINE_ID#/#QUANTITY#/action_lines.xml</apibyline>
|
3952 |
<states>
|
3953 |
+
<state name="new">
|
3954 |
<lengow>new</lengow>
|
3955 |
+
<actions>
|
3956 |
+
<action type="accept" method="post">processing</action>
|
3957 |
+
<action type="refuse" method="post">canceled</action>
|
3958 |
+
</actions>
|
3959 |
</state>
|
3960 |
+
<state name="processing">
|
3961 |
+
<lengow>processing</lengow>
|
3962 |
+
<actions>
|
3963 |
+
<action type="shipped" method="post">shipped</action>
|
3964 |
+
<action type="refuse" method="post">canceled</action>
|
3965 |
+
</actions>
|
3966 |
+
</state>
|
3967 |
+
<state name="shipped">
|
3968 |
+
<lengow>shipped</lengow>
|
3969 |
+
</state>
|
3970 |
+
<state name="canceled">
|
3971 |
+
<lengow>canceled</lengow>
|
3972 |
+
</state>
|
3973 |
+
</states>
|
3974 |
+
<additional_params>
|
3975 |
+
<param usedby="accept">
|
3976 |
+
<type>date_shipped</type>
|
3977 |
+
<name>date_shipped</name>
|
3978 |
+
</param>
|
3979 |
+
<param usedby="accept">
|
3980 |
+
<type>date_delivered</type>
|
3981 |
+
<name>date_delivered</name>
|
3982 |
+
</param>
|
3983 |
+
<param usedby="shipped cancel refund returned">
|
3984 |
+
<type>action</type>
|
3985 |
+
<name>action</name>
|
3986 |
+
</param>
|
3987 |
+
<param usedby="shipped cancel refund returned">
|
3988 |
+
<type>sku</type>
|
3989 |
+
<name>sku</name>
|
3990 |
+
</param>
|
3991 |
+
<param usedby="shipped cancel refund returned">
|
3992 |
+
<type>quantity</type>
|
3993 |
+
<name>quantity</name>
|
3994 |
+
</param>
|
3995 |
+
<param usedby="shipped cancel refund returned">
|
3996 |
+
<type>line</type>
|
3997 |
+
<name>line</name>
|
3998 |
+
</param>
|
3999 |
+
<param usedby="shipped">
|
4000 |
+
<type>tracking</type>
|
4001 |
+
<name>tracking_number</name>
|
4002 |
+
</param>
|
4003 |
+
<param usedby="shipped">
|
4004 |
+
<type>carrier</type>
|
4005 |
+
<name>carrier_name</name>
|
4006 |
+
</param>
|
4007 |
+
</additional_params>
|
4008 |
+
</marketplace>
|
4009 |
+
<marketplace name="ricardo">
|
4010 |
+
<api>https://wsdl.lengow.com/wsdl/ricardo/#ID_FLUX#/#ORDER_ID#/#ACTION#.xml</api>
|
4011 |
+
<states>
|
4012 |
+
<state name="new">
|
4013 |
<lengow>new</lengow>
|
4014 |
</state>
|
4015 |
+
<state name="processing">
|
4016 |
+
<lengow>processing</lengow>
|
4017 |
+
<actions>
|
4018 |
+
<action type="shipped" method="post">ship</action>
|
4019 |
+
</actions>
|
4020 |
+
</state>
|
4021 |
+
<state name="shipped">
|
4022 |
<lengow>shipped</lengow>
|
4023 |
</state>
|
4024 |
+
<state name="canceled">
|
4025 |
<lengow>canceled</lengow>
|
4026 |
</state>
|
4027 |
+
</states>
|
4028 |
</marketplace>
|
4029 |
</marketplaces>
|
app/code/community/Lengow/Sync/etc/system.xml
CHANGED
@@ -1,108 +1,157 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<config>
|
3 |
<tabs>
|
4 |
-
<lengow translate="label" module="
|
5 |
<label>Lengow</label>
|
6 |
<sort_order>210</sort_order>
|
7 |
</lengow>
|
8 |
</tabs>
|
9 |
<sections>
|
10 |
-
<
|
11 |
<label>Manage Orders</label>
|
12 |
<tab>lengow</tab>
|
13 |
<frontend_type>text</frontend_type>
|
14 |
<sort_order>110</sort_order>
|
15 |
<show_in_default>1</show_in_default>
|
16 |
-
<show_in_website>
|
17 |
<show_in_store>1</show_in_store>
|
18 |
<groups>
|
19 |
-
<orders translate="label" module="
|
20 |
<label>Manage Orders</label>
|
21 |
<show_in_default>1</show_in_default>
|
22 |
-
<show_in_website>
|
23 |
<show_in_store>1</show_in_store>
|
24 |
<sort_order>1</sort_order>
|
25 |
<fields>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
26 |
<period>
|
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>
|
32 |
<comment>Choose period for Sync order</comment>
|
33 |
</period>
|
34 |
-
<customer_group>
|
35 |
-
<label>Customer group</label>
|
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>
|
44 |
-
<label>Use the real date of import's order</label>
|
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>
|
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>
|
53 |
-
<
|
54 |
-
|
55 |
-
<
|
56 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
57 |
<show_in_default>1</show_in_default>
|
58 |
<show_in_website>0</show_in_website>
|
59 |
-
<show_in_store>
|
60 |
-
<source_model>
|
61 |
-
|
62 |
-
</cron>
|
63 |
<title>
|
64 |
<label>Import with product's title from Lengow</label>
|
65 |
<comment>Import an order with the product's name from marketplace</comment>
|
66 |
<frontend_type>select</frontend_type>
|
67 |
-
<sort_order>
|
68 |
<show_in_default>1</show_in_default>
|
69 |
<show_in_website>0</show_in_website>
|
70 |
-
<show_in_store>
|
71 |
<source_model>adminhtml/system_config_source_yesno</source_model>
|
72 |
</title>
|
73 |
-
|
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>
|
80 |
-
<show_in_store>
|
81 |
<source_model>adminhtml/system_config_source_yesno</source_model>
|
82 |
-
</pending
|
83 |
-
|
84 |
-
|
85 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
86 |
<frontend_type>select</frontend_type>
|
87 |
-
<sort_order>
|
88 |
<show_in_default>1</show_in_default>
|
89 |
<show_in_website>0</show_in_website>
|
90 |
-
<show_in_store>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
91 |
<source_model>adminhtml/system_config_source_yesno</source_model>
|
92 |
-
|
|
|
93 |
<debug>
|
94 |
-
<label>Debug mode</label>
|
95 |
-
<frontend_type>select</frontend_type>
|
96 |
-
<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>
|
103 |
-
|
104 |
-
|
105 |
-
<hidden translate="label" module="
|
106 |
<label>Hidden fields</label>
|
107 |
<show_in_default>0</show_in_default>
|
108 |
<show_in_website>0</show_in_website>
|
@@ -110,7 +159,7 @@
|
|
110 |
<sort_order>1</sort_order>
|
111 |
<fields>
|
112 |
<last_synchro>
|
113 |
-
<label>Date of marketplace.xml sync</label>
|
114 |
<sort_order>1</sort_order>
|
115 |
<show_in_default>0</show_in_default>
|
116 |
<show_in_website>0</show_in_website>
|
@@ -120,6 +169,6 @@
|
|
120 |
</fields>
|
121 |
</hidden>
|
122 |
</groups>
|
123 |
-
</
|
124 |
</sections>
|
125 |
</config>
|
1 |
<?xml version="1.0"?>
|
2 |
<config>
|
3 |
<tabs>
|
4 |
+
<lengow translate="label" module="lensync">
|
5 |
<label>Lengow</label>
|
6 |
<sort_order>210</sort_order>
|
7 |
</lengow>
|
8 |
</tabs>
|
9 |
<sections>
|
10 |
+
<lensync translate="label" module="lensync">
|
11 |
<label>Manage Orders</label>
|
12 |
<tab>lengow</tab>
|
13 |
<frontend_type>text</frontend_type>
|
14 |
<sort_order>110</sort_order>
|
15 |
<show_in_default>1</show_in_default>
|
16 |
+
<show_in_website>0</show_in_website>
|
17 |
<show_in_store>1</show_in_store>
|
18 |
<groups>
|
19 |
+
<orders translate="label" module="lensync">
|
20 |
<label>Manage Orders</label>
|
21 |
<show_in_default>1</show_in_default>
|
22 |
+
<show_in_website>0</show_in_website>
|
23 |
<show_in_store>1</show_in_store>
|
24 |
<sort_order>1</sort_order>
|
25 |
<fields>
|
26 |
+
<active_store>
|
27 |
+
<label>Enabled store</label>
|
28 |
+
<frontend_type>select</frontend_type>
|
29 |
+
<sort_order>10</sort_order>
|
30 |
+
<show_in_default>1</show_in_default>
|
31 |
+
<show_in_website>0</show_in_website>
|
32 |
+
<show_in_store>1</show_in_store>
|
33 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
34 |
+
<comment>Enable store to import</comment>
|
35 |
+
</active_store>
|
36 |
<period>
|
37 |
+
<label>Import orders from x days</label>
|
38 |
<sort_order>20</sort_order>
|
39 |
<show_in_default>1</show_in_default>
|
40 |
<show_in_website>0</show_in_website>
|
41 |
+
<show_in_store>1</show_in_store>
|
42 |
<comment>Choose period for Sync order</comment>
|
43 |
</period>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
44 |
<date_import>
|
45 |
+
<label>Use the real date of import's order</label>
|
46 |
+
<frontend_type>select</frontend_type>
|
47 |
<sort_order>40</sort_order>
|
48 |
<show_in_default>1</show_in_default>
|
49 |
<show_in_website>0</show_in_website>
|
50 |
+
<show_in_store>1</show_in_store>
|
51 |
<source_model>adminhtml/system_config_source_yesno</source_model>
|
52 |
<comment>To change the date of import's order with the date of marketplace</comment>
|
53 |
</date_import>
|
54 |
+
<processing_fee>
|
55 |
+
<label>Import processing fee from Marketplace</label>
|
56 |
+
<comment>Import the processing fee</comment>
|
57 |
+
<frontend_type>select</frontend_type>
|
58 |
+
<sort_order>50</sort_order>
|
59 |
+
<show_in_default>1</show_in_default>
|
60 |
+
<show_in_website>0</show_in_website>
|
61 |
+
<show_in_store>1</show_in_store>
|
62 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
63 |
+
</processing_fee>
|
64 |
+
<customer_group>
|
65 |
+
<label>Customer group</label>
|
66 |
+
<frontend_type>select</frontend_type>
|
67 |
+
<sort_order>60</sort_order>
|
68 |
<show_in_default>1</show_in_default>
|
69 |
<show_in_website>0</show_in_website>
|
70 |
+
<show_in_store>1</show_in_store>
|
71 |
+
<source_model>lensync/system_config_source_customer_group</source_model>
|
72 |
+
</customer_group>
|
|
|
73 |
<title>
|
74 |
<label>Import with product's title from Lengow</label>
|
75 |
<comment>Import an order with the product's name from marketplace</comment>
|
76 |
<frontend_type>select</frontend_type>
|
77 |
+
<sort_order>70</sort_order>
|
78 |
<show_in_default>1</show_in_default>
|
79 |
<show_in_website>0</show_in_website>
|
80 |
+
<show_in_store>1</show_in_store>
|
81 |
<source_model>adminhtml/system_config_source_yesno</source_model>
|
82 |
</title>
|
83 |
+
<!--<pending>
|
84 |
<label>Import order in pending payment</label>
|
85 |
<comment>Import an order in pendinf payment (like check or money order)</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>1</show_in_website>
|
90 |
+
<show_in_store>1</show_in_store>
|
91 |
<source_model>adminhtml/system_config_source_yesno</source_model>
|
92 |
+
</pending>-->
|
93 |
+
<split_name>
|
94 |
+
<label>Split name</label>
|
95 |
+
<comment>If one of the name fields is empty, the non-empty field will be split to fill the empty name field</comment>
|
96 |
+
<frontend_type>select</frontend_type>
|
97 |
+
<sort_order>80</sort_order>
|
98 |
+
<show_in_default>1</show_in_default>
|
99 |
+
<show_in_website>0</show_in_website>
|
100 |
+
<show_in_store>1</show_in_store>
|
101 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
102 |
+
</split_name>
|
103 |
+
<default_shipping>
|
104 |
+
<label>Choose default shipping</label>
|
105 |
+
<comment>Default shipping method</comment>
|
106 |
<frontend_type>select</frontend_type>
|
107 |
+
<sort_order>90</sort_order>
|
108 |
<show_in_default>1</show_in_default>
|
109 |
<show_in_website>0</show_in_website>
|
110 |
+
<show_in_store>1</show_in_store>
|
111 |
+
<source_model>adminhtml/system_config_source_shipping_allmethods</source_model>
|
112 |
+
</default_shipping>
|
113 |
+
<fake_email>
|
114 |
+
<label>Use fake emails</label>
|
115 |
+
<comment>Use fake emails for customer creation</comment>
|
116 |
+
<frontend_type>select</frontend_type>
|
117 |
+
<sort_order>100</sort_order>
|
118 |
+
<show_in_default>1</show_in_default>
|
119 |
+
<show_in_website>0</show_in_website>
|
120 |
+
<show_in_store>1</show_in_store>
|
121 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
122 |
+
</fake_email>
|
123 |
+
</fields>
|
124 |
+
</orders>
|
125 |
+
<performances translate="label comment">
|
126 |
+
<label>Performances</label>
|
127 |
+
<show_in_default>1</show_in_default>
|
128 |
+
<show_in_website>0</show_in_website>
|
129 |
+
<show_in_store>0</show_in_store>
|
130 |
+
<sort_order>2</sort_order>
|
131 |
+
<fields>
|
132 |
+
<active_cron>
|
133 |
+
<label>Auto import</label>
|
134 |
+
<frontend_type>select</frontend_type>
|
135 |
+
<sort_order>10</sort_order>
|
136 |
+
<show_in_default>1</show_in_default>
|
137 |
+
<show_in_website>0</show_in_website>
|
138 |
+
<show_in_store>0</show_in_store>
|
139 |
<source_model>adminhtml/system_config_source_yesno</source_model>
|
140 |
+
<comment>Enable import every 30 minutes</comment>
|
141 |
+
</active_cron>
|
142 |
<debug>
|
143 |
+
<label>Debug mode</label>
|
144 |
+
<frontend_type>select</frontend_type>
|
145 |
+
<sort_order>20</sort_order>
|
146 |
<show_in_default>1</show_in_default>
|
147 |
<show_in_website>0</show_in_website>
|
148 |
<show_in_store>0</show_in_store>
|
149 |
<source_model>adminhtml/system_config_source_yesno</source_model>
|
150 |
<comment>Only for preproduction's mode : no sync orders with Lengow, import orders every time</comment>
|
151 |
</debug>
|
152 |
+
</fields>
|
153 |
+
</performances>
|
154 |
+
<hidden translate="label" module="lensync">
|
155 |
<label>Hidden fields</label>
|
156 |
<show_in_default>0</show_in_default>
|
157 |
<show_in_website>0</show_in_website>
|
159 |
<sort_order>1</sort_order>
|
160 |
<fields>
|
161 |
<last_synchro>
|
162 |
+
<label>Date of marketplace.xml sync</label>
|
163 |
<sort_order>1</sort_order>
|
164 |
<show_in_default>0</show_in_default>
|
165 |
<show_in_website>0</show_in_website>
|
169 |
</fields>
|
170 |
</hidden>
|
171 |
</groups>
|
172 |
+
</lensync>
|
173 |
</sections>
|
174 |
</config>
|
app/code/community/Lengow/Sync/sql/lengow_setup/mysql4-install-2.0.0.0.php
CHANGED
@@ -153,18 +153,19 @@ $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 |
$installer->addAttribute('catalog_product', 'lengow_product', array(
|
158 |
'type' => 'int',
|
159 |
'backend' => '',
|
160 |
'frontend' => '',
|
161 |
'label' => 'Publish on Lengow',
|
162 |
'input' => 'boolean',
|
163 |
-
'global' =>
|
164 |
'visible' => 1,
|
165 |
'required' => 0,
|
166 |
'user_defined' => 1,
|
167 |
-
'default' =>
|
168 |
'searchable' => 0,
|
169 |
'filterable' => 0,
|
170 |
'comparable' => 0,
|
@@ -172,10 +173,11 @@ if(!$attribute) {
|
|
172 |
'unique' => 0,
|
173 |
'used_in_product_listing' => 1
|
174 |
));
|
175 |
-
}
|
176 |
-
|
177 |
-
$
|
178 |
}
|
|
|
179 |
// TODO use Mage ORM
|
180 |
$installer->run(
|
181 |
"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 |
+
|
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' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_STORE,
|
165 |
'visible' => 1,
|
166 |
'required' => 0,
|
167 |
'user_defined' => 1,
|
168 |
+
'default' => 0,
|
169 |
'searchable' => 0,
|
170 |
'filterable' => 0,
|
171 |
'comparable' => 0,
|
173 |
'unique' => 0,
|
174 |
'used_in_product_listing' => 1
|
175 |
));
|
176 |
+
}else{
|
177 |
+
$installer->updateAttribute('catalog_product','lengow_product','default_value', 0);
|
178 |
+
$installer->updateAttribute('catalog_product','lengow_product','is_global', Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_STORE);
|
179 |
}
|
180 |
+
|
181 |
// TODO use Mage ORM
|
182 |
$installer->run(
|
183 |
"CREATE TABLE IF NOT EXISTS `{$this->getTable('lengow_log')}` (
|
app/code/community/Lengow/Sync/sql/lengow_setup/mysql4-upgrade-2.0.0.0-2.0.0.1.php
CHANGED
@@ -12,7 +12,8 @@ $installer->startSetup();
|
|
12 |
|
13 |
/*
|
14 |
* Add order infos
|
15 |
-
* -
|
|
|
16 |
*/
|
17 |
$order_entity_id = $installer->getEntityTypeId('order');
|
18 |
|
12 |
|
13 |
/*
|
14 |
* Add order infos
|
15 |
+
* - Carrier - text
|
16 |
+
* - Carrier method - text
|
17 |
*/
|
18 |
$order_entity_id = $installer->getEntityTypeId('order');
|
19 |
|
app/code/community/Lengow/Sync/sql/lengow_setup/mysql4-upgrade-2.0.2-2.1.0.php
ADDED
@@ -0,0 +1,94 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* @category Lengow
|
5 |
+
* @package Lengow_Sync
|
6 |
+
* @author Benjamin Le Nevé <benjamin.le-neve@lengow.com>
|
7 |
+
* @copyright 2015 Lengow SAS
|
8 |
+
*/
|
9 |
+
|
10 |
+
$installer = $this;
|
11 |
+
$installer->startSetup();
|
12 |
+
|
13 |
+
/*
|
14 |
+
* Add order infos
|
15 |
+
* - Carrier tracking - text
|
16 |
+
* - Carrier id relay - text
|
17 |
+
*/
|
18 |
+
$order_entity_id = $installer->getEntityTypeId('order');
|
19 |
+
|
20 |
+
$list_attribute[] = array(
|
21 |
+
'name' => 'carrier_tracking_lengow',
|
22 |
+
'label' => 'Carrier tracking',
|
23 |
+
'type' => 'text',
|
24 |
+
'input' => 'text',
|
25 |
+
'source' => '',
|
26 |
+
'default' => '',
|
27 |
+
'grid' => false,
|
28 |
+
);
|
29 |
+
|
30 |
+
$list_attribute[] = array(
|
31 |
+
'name' => 'carrier_id_relay_lengow',
|
32 |
+
'label' => 'Carrier id relay',
|
33 |
+
'type' => 'text',
|
34 |
+
'input' => 'text',
|
35 |
+
'source' => '',
|
36 |
+
'default' => '',
|
37 |
+
'grid' => false,
|
38 |
+
);
|
39 |
+
|
40 |
+
foreach($list_attribute as $attr) {
|
41 |
+
$order_attribute = $installer->getAttribute($order_entity_id, $attr['name']);
|
42 |
+
if(!$order_attribute) {
|
43 |
+
$installer->addAttribute('order', $attr['name'], array(
|
44 |
+
'name' => $attr['name'],
|
45 |
+
'label' => $attr['label'],
|
46 |
+
'type' => $attr['type'],
|
47 |
+
'visible' => true,
|
48 |
+
'required' => false,
|
49 |
+
'unique' => false,
|
50 |
+
'filterable' => 1,
|
51 |
+
'sort_order' => 700,
|
52 |
+
'default' => $attr['default'],
|
53 |
+
'input' => $attr['input'],
|
54 |
+
'source' => $attr['source'],
|
55 |
+
'grid' => $attr['grid'],
|
56 |
+
));
|
57 |
+
}
|
58 |
+
$usedInForms = array(
|
59 |
+
'adminhtml_order',
|
60 |
+
);
|
61 |
+
}
|
62 |
+
|
63 |
+
/*
|
64 |
+
* fix product selection by store
|
65 |
+
*/
|
66 |
+
|
67 |
+
$installer->updateAttribute('catalog_product','lengow_product','is_global', Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_STORE);
|
68 |
+
|
69 |
+
$order_entity_id = $installer->getEntityTypeId('order');
|
70 |
+
|
71 |
+
$new_attributes = array("lengow_product");
|
72 |
+
|
73 |
+
// Add new Attribute group
|
74 |
+
$groupName = 'Lengow';
|
75 |
+
|
76 |
+
$entityTypeId = $installer->getEntityTypeId('catalog_product');
|
77 |
+
|
78 |
+
//Add group Lengow in all Attribute Set
|
79 |
+
$attributeSetCollection = Mage::getResourceModel('eav/entity_attribute_set_collection')->load();
|
80 |
+
foreach ($attributeSetCollection as $id => $attributeSet) {
|
81 |
+
|
82 |
+
// Add group lengow in attribute set
|
83 |
+
$installer->addAttributeGroup($entityTypeId, $attributeSet->getId(), $groupName, 100);
|
84 |
+
$attributeGroupId = $installer->getAttributeGroupId($entityTypeId, $attributeSet->getId(), $groupName);
|
85 |
+
|
86 |
+
// Add new attribute (lengow_product) on Group (Lengow)
|
87 |
+
foreach($new_attributes as $attribute_code) {
|
88 |
+
$attributeId = $installer->getAttributeId('catalog_product', $attribute_code);
|
89 |
+
$entityTypeId = $attributeSet->getEntityTypeId();
|
90 |
+
$installer->addAttributeToGroup($entityTypeId, $attributeSet->getId(), $attributeGroupId, $attributeId, null);
|
91 |
+
}
|
92 |
+
}
|
93 |
+
|
94 |
+
$installer->endSetup();
|
app/code/community/Lengow/Tracker/Block/Adminhtml/System/Config/Check.php
CHANGED
@@ -43,7 +43,7 @@ class Lengow_Tracker_Block_Adminhtml_System_Config_Check extends Mage_Adminhtml_
|
|
43 |
* @see Mage_Adminhtml_Block_System_Config_Form_Field::_getElementHtml()
|
44 |
*/
|
45 |
public function render(Varien_Data_Form_Element_Abstract $element) {
|
46 |
-
$html = $this->getLayout()->createBlock('
|
47 |
->toHtml();
|
48 |
$element->setHtmlContent($html);
|
49 |
$this->_element = $element;
|
43 |
* @see Mage_Adminhtml_Block_System_Config_Form_Field::_getElementHtml()
|
44 |
*/
|
45 |
public function render(Varien_Data_Form_Element_Abstract $element) {
|
46 |
+
$html = $this->getLayout()->createBlock('lentracker/adminhtml_system_config_check_point', 'lengow_checkpoint')
|
47 |
->toHtml();
|
48 |
$element->setHtmlContent($html);
|
49 |
$this->_element = $element;
|
app/code/community/Lengow/Tracker/Block/Adminhtml/System/Config/Check/Point.php
CHANGED
@@ -25,15 +25,15 @@
|
|
25 |
*/
|
26 |
|
27 |
class Lengow_Tracker_Block_Adminhtml_System_Config_Check_Point extends Mage_Adminhtml_Block_Template {
|
28 |
-
|
29 |
protected $_element;
|
30 |
|
31 |
protected $_helper;
|
32 |
|
33 |
public function __construct() {
|
34 |
$this->setTemplate('lengow/check/point.phtml');
|
35 |
-
$this->_helper = Mage::helper('
|
36 |
-
parent::_construct();
|
37 |
}
|
38 |
|
39 |
public function getVersion() {
|
25 |
*/
|
26 |
|
27 |
class Lengow_Tracker_Block_Adminhtml_System_Config_Check_Point extends Mage_Adminhtml_Block_Template {
|
28 |
+
|
29 |
protected $_element;
|
30 |
|
31 |
protected $_helper;
|
32 |
|
33 |
public function __construct() {
|
34 |
$this->setTemplate('lengow/check/point.phtml');
|
35 |
+
$this->_helper = Mage::helper('lentracker/check');
|
36 |
+
parent::_construct();
|
37 |
}
|
38 |
|
39 |
public function getVersion() {
|
app/code/community/Lengow/Tracker/Block/Tag/Capsule.php
CHANGED
@@ -28,10 +28,15 @@ class Lengow_Tracker_Block_Tag_Capsule extends Mage_Core_Block_Template {
|
|
28 |
static private $_ID_CATEGORY = '';
|
29 |
|
30 |
public function __construct() {
|
31 |
-
$this->setData('config_model', Mage::getSingleton('
|
32 |
-
$this->setData('capsule_model', Mage::getSingleton('
|
33 |
$this->setData('id_client', $this->getData('config_model')->get('general/login'));
|
34 |
-
|
|
|
|
|
|
|
|
|
|
|
35 |
$this->setData('current_view', Mage::app()->getRequest()->getActionName());
|
36 |
}
|
37 |
|
@@ -42,7 +47,7 @@ class Lengow_Tracker_Block_Tag_Capsule extends Mage_Core_Block_Template {
|
|
42 |
$current_module = Mage::app()->getFrontController()->getRequest()->getModuleName();
|
43 |
$current_controller = Mage::app()->getFrontController()->getRequest()->getControllerName();
|
44 |
$current_action = '';
|
45 |
-
|
46 |
if(Mage::getBlockSingleton('page/html_header')->getIsHomePage()) {
|
47 |
self::$_CURRENT_PAGE_TYPE = self::LENGOW_TRACK_HOMEPAGE;
|
48 |
} else if ($current_module == 'catalog') {
|
@@ -51,9 +56,9 @@ class Lengow_Tracker_Block_Tag_Capsule extends Mage_Core_Block_Template {
|
|
51 |
else if ($current_controller == 'product')
|
52 |
self::$_CURRENT_PAGE_TYPE = self::LENGOW_TRACK_PAGE;
|
53 |
} else if ($current_module == 'checkout') {
|
54 |
-
|
55 |
$current_action = Mage::app()->getRequest()->getActionName();
|
56 |
-
|
57 |
if ($current_action == 'success')
|
58 |
self::$_CURRENT_PAGE_TYPE = self::LENGOW_TRACK_PAGE_CONFIRMATION;
|
59 |
else if ($current_controller == 'cart')
|
@@ -61,7 +66,7 @@ class Lengow_Tracker_Block_Tag_Capsule extends Mage_Core_Block_Template {
|
|
61 |
else if ($current_controller == 'onepage')
|
62 |
self::$_CURRENT_PAGE_TYPE = self::LENGOW_TRACK_PAGE;
|
63 |
}
|
64 |
-
|
65 |
// Order total
|
66 |
if (self::$_CURRENT_PAGE_TYPE == self::LENGOW_TRACK_PAGE_CART ||
|
67 |
self::$_CURRENT_PAGE_TYPE == self::LENGOW_TRACK_PAGE_PAYMENT ||
|
@@ -88,7 +93,7 @@ class Lengow_Tracker_Block_Tag_Capsule extends Mage_Core_Block_Template {
|
|
88 |
self::$_IDS_PRODUCTS = $this->getData('capsule_model')->getIdsProducts($quote);
|
89 |
} else if(self::$_CURRENT_PAGE_TYPE == self::LENGOW_TRACK_PAGE_LIST) {
|
90 |
self::$_IDS_PRODUCTS = $this->_getCurrentProductsIds();
|
91 |
-
} else if(self::$_CURRENT_PAGE_TYPE == self::LENGOW_TRACK_PAGE) {
|
92 |
self::$_IDS_PRODUCTS = $this->_getCurrentProductId();
|
93 |
} else if (self::$_CURRENT_PAGE_TYPE == self::LENGOW_TRACK_PAGE_CONFIRMATION) {
|
94 |
// Get last order
|
@@ -113,7 +118,7 @@ class Lengow_Tracker_Block_Tag_Capsule extends Mage_Core_Block_Template {
|
|
113 |
self::$_ID_CATEGORY = Mage::registry('current_category')->getName();
|
114 |
|
115 |
// Use SSL
|
116 |
-
if (isset($_SERVER['HTTPS']) && $_SERVER['
|
117 |
self::$_USE_SSL = true;
|
118 |
|
119 |
// Assign data
|
@@ -133,14 +138,14 @@ class Lengow_Tracker_Block_Tag_Capsule extends Mage_Core_Block_Template {
|
|
133 |
}
|
134 |
|
135 |
protected function _getCurrentProductId() {
|
136 |
-
$config = Mage::getModel('
|
137 |
if($product = Mage::registry('product'))
|
138 |
return $product->getData($config->get('tag/identifiant'));
|
139 |
return '';
|
140 |
}
|
141 |
|
142 |
protected function _getCurrentProductsIds($implode = true) {
|
143 |
-
$config = Mage::getModel('
|
144 |
$ids = array();
|
145 |
$products = $this->_getProductCollection()->getData();
|
146 |
if($products) {
|
@@ -199,9 +204,9 @@ class Lengow_Tracker_Block_Tag_Capsule extends Mage_Core_Block_Template {
|
|
199 |
|
200 |
protected function _beforeToHtml() {
|
201 |
if(self::$_CURRENT_PAGE_TYPE == self::LENGOW_TRACK_PAGE_LIST) {
|
202 |
-
$config = Mage::getModel('
|
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')];
|
28 |
static private $_ID_CATEGORY = '';
|
29 |
|
30 |
public function __construct() {
|
31 |
+
$this->setData('config_model', Mage::getSingleton('lentracker/config'));
|
32 |
+
$this->setData('capsule_model', Mage::getSingleton('lentracker/capsule'));
|
33 |
$this->setData('id_client', $this->getData('config_model')->get('general/login'));
|
34 |
+
|
35 |
+
// explode group id => force 1 group only
|
36 |
+
$id_groups = $this->getData('config_model')->get('general/group');
|
37 |
+
$id_groups = explode(',', $id_groups);
|
38 |
+
$this->setData('id_group', $id_groups[0]);
|
39 |
+
|
40 |
$this->setData('current_view', Mage::app()->getRequest()->getActionName());
|
41 |
}
|
42 |
|
47 |
$current_module = Mage::app()->getFrontController()->getRequest()->getModuleName();
|
48 |
$current_controller = Mage::app()->getFrontController()->getRequest()->getControllerName();
|
49 |
$current_action = '';
|
50 |
+
|
51 |
if(Mage::getBlockSingleton('page/html_header')->getIsHomePage()) {
|
52 |
self::$_CURRENT_PAGE_TYPE = self::LENGOW_TRACK_HOMEPAGE;
|
53 |
} else if ($current_module == 'catalog') {
|
56 |
else if ($current_controller == 'product')
|
57 |
self::$_CURRENT_PAGE_TYPE = self::LENGOW_TRACK_PAGE;
|
58 |
} else if ($current_module == 'checkout') {
|
59 |
+
|
60 |
$current_action = Mage::app()->getRequest()->getActionName();
|
61 |
+
|
62 |
if ($current_action == 'success')
|
63 |
self::$_CURRENT_PAGE_TYPE = self::LENGOW_TRACK_PAGE_CONFIRMATION;
|
64 |
else if ($current_controller == 'cart')
|
66 |
else if ($current_controller == 'onepage')
|
67 |
self::$_CURRENT_PAGE_TYPE = self::LENGOW_TRACK_PAGE;
|
68 |
}
|
69 |
+
|
70 |
// Order total
|
71 |
if (self::$_CURRENT_PAGE_TYPE == self::LENGOW_TRACK_PAGE_CART ||
|
72 |
self::$_CURRENT_PAGE_TYPE == self::LENGOW_TRACK_PAGE_PAYMENT ||
|
93 |
self::$_IDS_PRODUCTS = $this->getData('capsule_model')->getIdsProducts($quote);
|
94 |
} else if(self::$_CURRENT_PAGE_TYPE == self::LENGOW_TRACK_PAGE_LIST) {
|
95 |
self::$_IDS_PRODUCTS = $this->_getCurrentProductsIds();
|
96 |
+
} else if(self::$_CURRENT_PAGE_TYPE == self::LENGOW_TRACK_PAGE) {
|
97 |
self::$_IDS_PRODUCTS = $this->_getCurrentProductId();
|
98 |
} else if (self::$_CURRENT_PAGE_TYPE == self::LENGOW_TRACK_PAGE_CONFIRMATION) {
|
99 |
// Get last order
|
118 |
self::$_ID_CATEGORY = Mage::registry('current_category')->getName();
|
119 |
|
120 |
// Use SSL
|
121 |
+
if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on')
|
122 |
self::$_USE_SSL = true;
|
123 |
|
124 |
// Assign data
|
138 |
}
|
139 |
|
140 |
protected function _getCurrentProductId() {
|
141 |
+
$config = Mage::getModel('lentracker/config');
|
142 |
if($product = Mage::registry('product'))
|
143 |
return $product->getData($config->get('tag/identifiant'));
|
144 |
return '';
|
145 |
}
|
146 |
|
147 |
protected function _getCurrentProductsIds($implode = true) {
|
148 |
+
$config = Mage::getModel('lentracker/config');
|
149 |
$ids = array();
|
150 |
$products = $this->_getProductCollection()->getData();
|
151 |
if($products) {
|
204 |
|
205 |
protected function _beforeToHtml() {
|
206 |
if(self::$_CURRENT_PAGE_TYPE == self::LENGOW_TRACK_PAGE_LIST) {
|
207 |
+
$config = Mage::getModel('lentracker/config');
|
208 |
$_list = $this->getLayout()->getBlock('product_list');
|
209 |
+
$_products = $_list->getLoadedProductCollection();
|
210 |
if($_products) {
|
211 |
foreach ($_products as $product) {
|
212 |
$ids[] = $product[$config->get('tag/identifiant')];
|
app/code/community/Lengow/Tracker/Block/Tag/Simple.php
CHANGED
@@ -13,14 +13,14 @@ class Lengow_Tracker_Block_Tag_Simple extends Mage_Core_Block_Template {
|
|
13 |
protected $_config_model;
|
14 |
|
15 |
public function __construct() {
|
16 |
-
$this->_config_model = Mage::getSingleton('
|
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() {
|
22 |
parent::_prepareLayout();
|
23 |
-
$tracker_model = Mage::getSingleton('
|
24 |
if(Mage::app()->getRequest()->getActionName() == 'success') {
|
25 |
$order_id = Mage::getSingleton('checkout/session')->getLastOrderId();
|
26 |
$order = Mage::getModel('sales/order')->load($order_id);
|
13 |
protected $_config_model;
|
14 |
|
15 |
public function __construct() {
|
16 |
+
$this->_config_model = Mage::getSingleton('lentracker/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() {
|
22 |
parent::_prepareLayout();
|
23 |
+
$tracker_model = Mage::getSingleton('lentracker/tracker');
|
24 |
if(Mage::app()->getRequest()->getActionName() == 'success') {
|
25 |
$order_id = Mage::getSingleton('checkout/session')->getLastOrderId();
|
26 |
$order = Mage::getModel('sales/order')->load($order_id);
|
app/code/community/Lengow/Tracker/Block/Tracker.php
CHANGED
@@ -11,22 +11,22 @@
|
|
11 |
class Lengow_Tracker_Block_Tracker extends Mage_Core_Block_Template {
|
12 |
|
13 |
const URI_TAG_CAPSULE = 'https://tracking.lengow.com/tagcapsule.js';
|
14 |
-
const BLOCK_SIMPLE = '
|
15 |
-
const BLOCK_CAPSULE = '
|
16 |
-
|
17 |
protected $_id_client;
|
18 |
protected $_id_group;
|
19 |
protected $_tag;
|
20 |
|
21 |
protected function _construct() {
|
22 |
-
$config_model = Mage::getSingleton('
|
23 |
-
|
24 |
$this->_id_client = $config_model->get('general/login');
|
25 |
$this->_id_group = $config_model->get('general/group');
|
26 |
$this->_tag = $config_model->get('tag/type');
|
27 |
|
28 |
}
|
29 |
-
|
30 |
protected function _prepareLayout()
|
31 |
{
|
32 |
parent::_prepareLayout();
|
@@ -34,10 +34,10 @@ class Lengow_Tracker_Block_Tracker extends Mage_Core_Block_Template {
|
|
34 |
$this->setChild('tracker', $this->getLayout()->createBlock(self::BLOCK_CAPSULE, 'tag_capsule'));
|
35 |
elseif($this->_tag == 'simpletag')
|
36 |
$this->setChild('tracker', $this->getLayout()->createBlock(self::BLOCK_SIMPLE, 'simple_tag'));
|
37 |
-
|
38 |
return $this;
|
39 |
}
|
40 |
-
|
41 |
/**
|
42 |
* Prepare and return block's html output
|
43 |
*
|
@@ -46,10 +46,10 @@ class Lengow_Tracker_Block_Tracker extends Mage_Core_Block_Template {
|
|
46 |
protected function _toHtml() {
|
47 |
return parent::_toHtml();
|
48 |
}
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
/**
|
54 |
* Retrieve Page Type
|
55 |
*
|
@@ -78,7 +78,7 @@ class Lengow_Tracker_Block_Tracker extends Mage_Core_Block_Template {
|
|
78 |
}
|
79 |
|
80 |
/**
|
81 |
-
* Retrieve if SSL is used for display tag capsule
|
82 |
*
|
83 |
* @return string
|
84 |
*/
|
11 |
class Lengow_Tracker_Block_Tracker extends Mage_Core_Block_Template {
|
12 |
|
13 |
const URI_TAG_CAPSULE = 'https://tracking.lengow.com/tagcapsule.js';
|
14 |
+
const BLOCK_SIMPLE = 'lentracker/tag_simple';
|
15 |
+
const BLOCK_CAPSULE = 'lentracker/tag_capsule';
|
16 |
+
|
17 |
protected $_id_client;
|
18 |
protected $_id_group;
|
19 |
protected $_tag;
|
20 |
|
21 |
protected function _construct() {
|
22 |
+
$config_model = Mage::getSingleton('lentracker/config');
|
23 |
+
|
24 |
$this->_id_client = $config_model->get('general/login');
|
25 |
$this->_id_group = $config_model->get('general/group');
|
26 |
$this->_tag = $config_model->get('tag/type');
|
27 |
|
28 |
}
|
29 |
+
|
30 |
protected function _prepareLayout()
|
31 |
{
|
32 |
parent::_prepareLayout();
|
34 |
$this->setChild('tracker', $this->getLayout()->createBlock(self::BLOCK_CAPSULE, 'tag_capsule'));
|
35 |
elseif($this->_tag == 'simpletag')
|
36 |
$this->setChild('tracker', $this->getLayout()->createBlock(self::BLOCK_SIMPLE, 'simple_tag'));
|
37 |
+
|
38 |
return $this;
|
39 |
}
|
40 |
+
|
41 |
/**
|
42 |
* Prepare and return block's html output
|
43 |
*
|
46 |
protected function _toHtml() {
|
47 |
return parent::_toHtml();
|
48 |
}
|
49 |
+
|
50 |
+
|
51 |
+
|
52 |
+
|
53 |
/**
|
54 |
* Retrieve Page Type
|
55 |
*
|
78 |
}
|
79 |
|
80 |
/**
|
81 |
+
* Retrieve if SSL is used for display tag capsule
|
82 |
*
|
83 |
* @return string
|
84 |
*/
|
app/code/community/Lengow/Tracker/Helper/Check.php
CHANGED
@@ -5,7 +5,7 @@
|
|
5 |
* @category Lengow
|
6 |
* @package Lengow_Tracker
|
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_Tracker_Helper_Check extends Mage_Core_Helper_Abstract {
|
@@ -27,7 +27,7 @@ class Lengow_Tracker_Helper_Check extends Mage_Core_Helper_Abstract {
|
|
27 |
$this->_loadDom();
|
28 |
// Compare version
|
29 |
$object = $this->_dom->xpath('/plugins/plugin[@name=\'' . self::PLUGIN_NAME . '\']');
|
30 |
-
if(!empty($object))
|
31 |
return $object[0]->version;
|
32 |
else
|
33 |
return 'NULL';
|
@@ -40,14 +40,14 @@ class Lengow_Tracker_Helper_Check extends Mage_Core_Helper_Abstract {
|
|
40 |
* @return boolean
|
41 |
*/
|
42 |
public static function updatePluginsVersion() {
|
43 |
-
$mp_update = Mage::getModel('
|
44 |
if (!$mp_update || !$mp_update == '0000-00-00' ||$mp_update != date('Y-m-d')) {
|
45 |
$sep = DS;
|
46 |
if ($xml = fopen(self::LENGOW_PLUGINS_VERSION, 'r')) {
|
47 |
$handle = fopen(Mage::getModuleDir('etc', 'Lengow_Tracker') . DS . self::URI_TAG_CAPSULE . '', 'w');
|
48 |
stream_copy_to_stream($xml, $handle);
|
49 |
fclose($handle);
|
50 |
-
Mage::getModel('core/config')->saveConfig('
|
51 |
}
|
52 |
}
|
53 |
}
|
5 |
* @category Lengow
|
6 |
* @package Lengow_Tracker
|
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_Tracker_Helper_Check extends Mage_Core_Helper_Abstract {
|
27 |
$this->_loadDom();
|
28 |
// Compare version
|
29 |
$object = $this->_dom->xpath('/plugins/plugin[@name=\'' . self::PLUGIN_NAME . '\']');
|
30 |
+
if(!empty($object))
|
31 |
return $object[0]->version;
|
32 |
else
|
33 |
return 'NULL';
|
40 |
* @return boolean
|
41 |
*/
|
42 |
public static function updatePluginsVersion() {
|
43 |
+
$mp_update = Mage::getModel('lentracker/config')->get('hidden/last_synchro');
|
44 |
if (!$mp_update || !$mp_update == '0000-00-00' ||$mp_update != date('Y-m-d')) {
|
45 |
$sep = DS;
|
46 |
if ($xml = fopen(self::LENGOW_PLUGINS_VERSION, 'r')) {
|
47 |
$handle = fopen(Mage::getModuleDir('etc', 'Lengow_Tracker') . DS . self::URI_TAG_CAPSULE . '', 'w');
|
48 |
stream_copy_to_stream($xml, $handle);
|
49 |
fclose($handle);
|
50 |
+
Mage::getModel('core/config')->saveConfig('lentracker/hidden/last_synchro', date('Y-m-d'));
|
51 |
}
|
52 |
}
|
53 |
}
|
app/code/community/Lengow/Tracker/Model/Config.php
CHANGED
@@ -6,17 +6,36 @@
|
|
6 |
* @category Lengow
|
7 |
* @package Lengow_Tracker
|
8 |
* @author Romain Le Polh <romain@lengow.com>
|
9 |
-
* @copyright 2013 Lengow SAS
|
10 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
11 |
*/
|
12 |
class Lengow_Tracker_Model_Config extends Varien_Object {
|
13 |
|
14 |
-
|
15 |
-
|
|
|
|
|
|
|
|
|
|
|
16 |
}
|
17 |
|
18 |
-
public function
|
19 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
20 |
}
|
21 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
22 |
}
|
6 |
* @category Lengow
|
7 |
* @package Lengow_Tracker
|
8 |
* @author Romain Le Polh <romain@lengow.com>
|
9 |
+
* @copyright 2013 Lengow SAS
|
10 |
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
11 |
*/
|
12 |
class Lengow_Tracker_Model_Config extends Varien_Object {
|
13 |
|
14 |
+
protected $store;
|
15 |
+
|
16 |
+
public function __construct($args = null)
|
17 |
+
{
|
18 |
+
parent::__construct();
|
19 |
+
if (isset($args['store']))
|
20 |
+
$this->setStore($args['store']);
|
21 |
}
|
22 |
|
23 |
+
public function setStore($store)
|
24 |
+
{
|
25 |
+
$this->store = $store;
|
26 |
+
return $this;
|
27 |
+
}
|
28 |
+
|
29 |
+
public function getStore()
|
30 |
+
{
|
31 |
+
return $this->store;
|
32 |
}
|
33 |
|
34 |
+
public function get($key) {
|
35 |
+
if (is_null($this->store))
|
36 |
+
$id_store = null;
|
37 |
+
else
|
38 |
+
$id_store = $this->store->getId();
|
39 |
+
return Mage::getStoreConfig('lentracker/' . $key, $id_store);
|
40 |
+
}
|
41 |
}
|
app/code/community/Lengow/Tracker/Model/Tracker.php
CHANGED
@@ -40,7 +40,7 @@ class Lengow_Tracker_Model_Tracker extends Varien_Object {
|
|
40 |
* @return string
|
41 |
*/
|
42 |
protected function _getIdentifier() {
|
43 |
-
$config = Mage::getModel('
|
44 |
return $config->get('tag/identifiant');
|
45 |
}
|
46 |
|
40 |
* @return string
|
41 |
*/
|
42 |
protected function _getIdentifier() {
|
43 |
+
$config = Mage::getModel('lentracker/config');
|
44 |
return $config->get('tag/identifiant');
|
45 |
}
|
46 |
|
app/code/community/Lengow/Tracker/etc/config.xml
CHANGED
@@ -2,44 +2,44 @@
|
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Lengow_Tracker>
|
5 |
-
<version>2.
|
6 |
</Lengow_Tracker>
|
7 |
</modules>
|
8 |
<global>
|
9 |
<models>
|
10 |
-
<
|
11 |
<class>Lengow_Tracker_Model</class>
|
12 |
-
</
|
13 |
</models>
|
14 |
<blocks>
|
15 |
-
<
|
16 |
<class>Lengow_Tracker_Block</class>
|
17 |
-
</
|
18 |
</blocks>
|
19 |
<helpers>
|
20 |
-
<
|
21 |
<class>Lengow_Tracker_Helper</class>
|
22 |
-
</
|
23 |
</helpers>
|
24 |
<resources>
|
25 |
-
<
|
26 |
<setup>
|
27 |
<module>Lengow_Tracker</module>
|
28 |
</setup>
|
29 |
<connection>
|
30 |
<use>core_setup</use>
|
31 |
</connection>
|
32 |
-
</
|
33 |
-
<
|
34 |
<connection>
|
35 |
<use>core_write</use>
|
36 |
</connection>
|
37 |
-
</
|
38 |
-
<
|
39 |
<connection>
|
40 |
<use>core_read</use>
|
41 |
</connection>
|
42 |
-
</
|
43 |
</resources>
|
44 |
</global>
|
45 |
<admin>
|
@@ -47,7 +47,7 @@
|
|
47 |
<adminhtml>
|
48 |
<args>
|
49 |
<modules>
|
50 |
-
<
|
51 |
</modules>
|
52 |
</args>
|
53 |
</adminhtml>
|
@@ -56,9 +56,9 @@
|
|
56 |
<frontend>
|
57 |
<layout>
|
58 |
<updates>
|
59 |
-
<
|
60 |
<file>lengow.xml</file>
|
61 |
-
</
|
62 |
</updates>
|
63 |
</layout>
|
64 |
</frontend>
|
@@ -87,9 +87,9 @@
|
|
87 |
<children>
|
88 |
<config>
|
89 |
<children>
|
90 |
-
<
|
91 |
<title>Products</title>
|
92 |
-
</
|
93 |
</children>
|
94 |
</config>
|
95 |
</children>
|
@@ -100,10 +100,10 @@
|
|
100 |
</acl>
|
101 |
</adminhtml>
|
102 |
<default>
|
103 |
-
<
|
104 |
<tag>
|
105 |
<identifiant>sku</identifiant>
|
106 |
</tag>
|
107 |
-
</
|
108 |
</default>
|
109 |
</config>
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Lengow_Tracker>
|
5 |
+
<version>2.1.0</version>
|
6 |
</Lengow_Tracker>
|
7 |
</modules>
|
8 |
<global>
|
9 |
<models>
|
10 |
+
<lentracker>
|
11 |
<class>Lengow_Tracker_Model</class>
|
12 |
+
</lentracker>
|
13 |
</models>
|
14 |
<blocks>
|
15 |
+
<lentracker>
|
16 |
<class>Lengow_Tracker_Block</class>
|
17 |
+
</lentracker>
|
18 |
</blocks>
|
19 |
<helpers>
|
20 |
+
<lentracker>
|
21 |
<class>Lengow_Tracker_Helper</class>
|
22 |
+
</lentracker>
|
23 |
</helpers>
|
24 |
<resources>
|
25 |
+
<lentracker_setup>
|
26 |
<setup>
|
27 |
<module>Lengow_Tracker</module>
|
28 |
</setup>
|
29 |
<connection>
|
30 |
<use>core_setup</use>
|
31 |
</connection>
|
32 |
+
</lentracker_setup>
|
33 |
+
<lentracker_write>
|
34 |
<connection>
|
35 |
<use>core_write</use>
|
36 |
</connection>
|
37 |
+
</lentracker_write>
|
38 |
+
<lentracker_read>
|
39 |
<connection>
|
40 |
<use>core_read</use>
|
41 |
</connection>
|
42 |
+
</lentracker_read>
|
43 |
</resources>
|
44 |
</global>
|
45 |
<admin>
|
47 |
<adminhtml>
|
48 |
<args>
|
49 |
<modules>
|
50 |
+
<lentracker before="Mage_Adminhtml">Lengow_Tracker_Adminhtml</lentracker>
|
51 |
</modules>
|
52 |
</args>
|
53 |
</adminhtml>
|
56 |
<frontend>
|
57 |
<layout>
|
58 |
<updates>
|
59 |
+
<lentracker>
|
60 |
<file>lengow.xml</file>
|
61 |
+
</lentracker>
|
62 |
</updates>
|
63 |
</layout>
|
64 |
</frontend>
|
87 |
<children>
|
88 |
<config>
|
89 |
<children>
|
90 |
+
<lentracker translate="title" module="lentracker">
|
91 |
<title>Products</title>
|
92 |
+
</lentracker>
|
93 |
</children>
|
94 |
</config>
|
95 |
</children>
|
100 |
</acl>
|
101 |
</adminhtml>
|
102 |
<default>
|
103 |
+
<lentracker>
|
104 |
<tag>
|
105 |
<identifiant>sku</identifiant>
|
106 |
</tag>
|
107 |
+
</lentracker>
|
108 |
</default>
|
109 |
</config>
|
app/code/community/Lengow/Tracker/etc/plugins.xml
CHANGED
@@ -5,7 +5,7 @@
|
|
5 |
<release_date>2014-04-08</release_date>
|
6 |
</plugin>
|
7 |
<plugin name="magento">
|
8 |
-
<version>2.0.
|
9 |
<release_date>2014-04-25</release_date>
|
10 |
</plugin>
|
11 |
<plugin name="woomcommerce">
|
5 |
<release_date>2014-04-08</release_date>
|
6 |
</plugin>
|
7 |
<plugin name="magento">
|
8 |
+
<version>2.0.2</version>
|
9 |
<release_date>2014-04-25</release_date>
|
10 |
</plugin>
|
11 |
<plugin name="woomcommerce">
|
app/code/community/Lengow/Tracker/etc/system.xml
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<config>
|
3 |
<tabs>
|
4 |
-
<lengow translate="label" module="
|
5 |
<label>Lengow</label>
|
6 |
<sort_order>210</sort_order>
|
7 |
</lengow>
|
8 |
</tabs>
|
9 |
<sections>
|
10 |
-
<
|
11 |
<label>Customer Account</label>
|
12 |
<tab>lengow</tab>
|
13 |
<frontend_type>text</frontend_type>
|
@@ -26,7 +26,7 @@
|
|
26 |
<show_in_store>0</show_in_store>
|
27 |
</check>
|
28 |
<general translate="label, comment">
|
29 |
-
<label>Lengow API
|
30 |
<show_in_default>1</show_in_default>
|
31 |
<show_in_website>1</show_in_website>
|
32 |
<show_in_store>1</show_in_store>
|
@@ -39,14 +39,14 @@
|
|
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>
|
43 |
</login>
|
44 |
<group>
|
45 |
<label>Group ID</label>
|
46 |
<comment>Your Group ID of Lengow</comment>
|
47 |
<frontend_type>text</frontend_type>
|
48 |
<sort_order>5</sort_order>
|
49 |
-
<show_in_default>
|
50 |
<show_in_website>0</show_in_website>
|
51 |
<show_in_store>1</show_in_store>
|
52 |
</group>
|
@@ -56,14 +56,14 @@
|
|
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>
|
63 |
<tag translate="label, comment">
|
64 |
<label>TagCapsule</label>
|
65 |
<show_in_default>1</show_in_default>
|
66 |
-
<show_in_website>
|
67 |
<show_in_store>1</show_in_store>
|
68 |
<sort_order>2</sort_order>
|
69 |
<fields>
|
@@ -73,7 +73,7 @@
|
|
73 |
<source_model>Lengow_Tracker_Model_System_Config_Source_Tracker</source_model>
|
74 |
<sort_order>3</sort_order>
|
75 |
<show_in_default>1</show_in_default>
|
76 |
-
<show_in_website>
|
77 |
<show_in_store>1</show_in_store>
|
78 |
</type>
|
79 |
<identifiant>
|
@@ -82,7 +82,7 @@
|
|
82 |
<source_model>Lengow_Tracker_Model_System_Config_Source_Identifiant</source_model>
|
83 |
<sort_order>3</sort_order>
|
84 |
<show_in_default>1</show_in_default>
|
85 |
-
<show_in_website>
|
86 |
<show_in_store>1</show_in_store>
|
87 |
</identifiant>
|
88 |
</fields>
|
@@ -105,6 +105,6 @@
|
|
105 |
</fields>
|
106 |
</hidden>
|
107 |
</groups>
|
108 |
-
</
|
109 |
</sections>
|
110 |
</config>
|
1 |
<?xml version="1.0"?>
|
2 |
<config>
|
3 |
<tabs>
|
4 |
+
<lengow translate="label" module="lentracker">
|
5 |
<label>Lengow</label>
|
6 |
<sort_order>210</sort_order>
|
7 |
</lengow>
|
8 |
</tabs>
|
9 |
<sections>
|
10 |
+
<lentracker translate="label" module="lentracker">
|
11 |
<label>Customer Account</label>
|
12 |
<tab>lengow</tab>
|
13 |
<frontend_type>text</frontend_type>
|
26 |
<show_in_store>0</show_in_store>
|
27 |
</check>
|
28 |
<general translate="label, comment">
|
29 |
+
<label>Lengow API</label>
|
30 |
<show_in_default>1</show_in_default>
|
31 |
<show_in_website>1</show_in_website>
|
32 |
<show_in_store>1</show_in_store>
|
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>0</show_in_store>
|
43 |
</login>
|
44 |
<group>
|
45 |
<label>Group ID</label>
|
46 |
<comment>Your Group ID of Lengow</comment>
|
47 |
<frontend_type>text</frontend_type>
|
48 |
<sort_order>5</sort_order>
|
49 |
+
<show_in_default>0</show_in_default>
|
50 |
<show_in_website>0</show_in_website>
|
51 |
<show_in_store>1</show_in_store>
|
52 |
</group>
|
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>0</show_in_store>
|
60 |
</api_key>
|
61 |
</fields>
|
62 |
</general>
|
63 |
<tag translate="label, comment">
|
64 |
<label>TagCapsule</label>
|
65 |
<show_in_default>1</show_in_default>
|
66 |
+
<show_in_website>0</show_in_website>
|
67 |
<show_in_store>1</show_in_store>
|
68 |
<sort_order>2</sort_order>
|
69 |
<fields>
|
73 |
<source_model>Lengow_Tracker_Model_System_Config_Source_Tracker</source_model>
|
74 |
<sort_order>3</sort_order>
|
75 |
<show_in_default>1</show_in_default>
|
76 |
+
<show_in_website>0</show_in_website>
|
77 |
<show_in_store>1</show_in_store>
|
78 |
</type>
|
79 |
<identifiant>
|
82 |
<source_model>Lengow_Tracker_Model_System_Config_Source_Identifiant</source_model>
|
83 |
<sort_order>3</sort_order>
|
84 |
<show_in_default>1</show_in_default>
|
85 |
+
<show_in_website>0</show_in_website>
|
86 |
<show_in_store>1</show_in_store>
|
87 |
</identifiant>
|
88 |
</fields>
|
105 |
</fields>
|
106 |
</hidden>
|
107 |
</groups>
|
108 |
+
</lentracker>
|
109 |
</sections>
|
110 |
</config>
|
app/design/adminhtml/default/default/layout/lengow.xml
CHANGED
@@ -15,12 +15,12 @@
|
|
15 |
|
16 |
<adminhtml_lengow_order_index>
|
17 |
<reference name="content">
|
18 |
-
<block type="
|
19 |
</reference>
|
20 |
</adminhtml_lengow_order_index>
|
21 |
<adminhtml_lengow_log_index>
|
22 |
<reference name="content">
|
23 |
-
<block type="
|
24 |
</reference>
|
25 |
</adminhtml_lengow_log_index>
|
26 |
|
@@ -31,7 +31,7 @@
|
|
31 |
</action>
|
32 |
</reference>
|
33 |
<reference name="content">
|
34 |
-
<block type="
|
35 |
<block type="adminhtml/store_switcher" name="store_switcher" as="store_switcher">
|
36 |
<action method="setUseConfirm">
|
37 |
<params>0</params>
|
@@ -54,7 +54,7 @@
|
|
54 |
</action>
|
55 |
</reference>
|
56 |
<reference name="content">
|
57 |
-
<block type="
|
58 |
<block type="adminhtml/store_switcher" name="store_switcher" as="store_switcher">
|
59 |
<action method="setUseConfirm">
|
60 |
<params>0</params>
|
@@ -68,9 +68,8 @@
|
|
68 |
<reference name="sales_order_tabs">
|
69 |
<action method="addTab">
|
70 |
<name>TAB_NAME</name>
|
71 |
-
<block>
|
72 |
</action>
|
73 |
</reference>
|
74 |
</adminhtml_sales_order_view>
|
75 |
-
|
76 |
</layout>
|
15 |
|
16 |
<adminhtml_lengow_order_index>
|
17 |
<reference name="content">
|
18 |
+
<block type="lensync/adminhtml_order" name="manageorders.order.grid.container"></block>
|
19 |
</reference>
|
20 |
</adminhtml_lengow_order_index>
|
21 |
<adminhtml_lengow_log_index>
|
22 |
<reference name="content">
|
23 |
+
<block type="lensync/adminhtml_log" name="manageorders.log.grid.container"></block>
|
24 |
</reference>
|
25 |
</adminhtml_lengow_log_index>
|
26 |
|
31 |
</action>
|
32 |
</reference>
|
33 |
<reference name="content">
|
34 |
+
<block type="lenexport/adminhtml_product" name="product.grid" template="lengow/export/product.phtml">
|
35 |
<block type="adminhtml/store_switcher" name="store_switcher" as="store_switcher">
|
36 |
<action method="setUseConfirm">
|
37 |
<params>0</params>
|
54 |
</action>
|
55 |
</reference>
|
56 |
<reference name="content">
|
57 |
+
<block type="lenfeed/adminhtml_feed" name="feed.grid" template="lengow/feed/grid.phtml">
|
58 |
<block type="adminhtml/store_switcher" name="store_switcher" as="store_switcher">
|
59 |
<action method="setUseConfirm">
|
60 |
<params>0</params>
|
68 |
<reference name="sales_order_tabs">
|
69 |
<action method="addTab">
|
70 |
<name>TAB_NAME</name>
|
71 |
+
<block>lensync/adminhtml_order_tab</block>
|
72 |
</action>
|
73 |
</reference>
|
74 |
</adminhtml_sales_order_view>
|
|
|
75 |
</layout>
|
app/design/adminhtml/default/default/template/lengow/check/point.phtml
CHANGED
@@ -7,25 +7,25 @@
|
|
7 |
<tbody>
|
8 |
<tr id="row_update_module">
|
9 |
<td class="label">
|
10 |
-
<label for="update_module"><?php echo Mage::helper('
|
11 |
</td>
|
12 |
<td class="value">
|
13 |
<?php echo $this->getVersion(); ?>
|
14 |
<?php if($this->isLastVersion()): ?>
|
15 |
-
<span class="lengow-check lengow-updated"><?php echo Mage::helper('
|
16 |
<?php else: ?>
|
17 |
-
<span class="lengow-check lengow-must-be-updated"><?php echo Mage::helper('
|
18 |
<?php endif; ?>
|
19 |
</td>
|
20 |
</tr>
|
21 |
<tr id="row_ip_service">
|
22 |
<td class="label">
|
23 |
-
<label for="ip_service"><?php echo Mage::helper('
|
24 |
</td>
|
25 |
<td class="value">
|
26 |
<?php echo $this->getRealIP(); ?>
|
27 |
<p class="note">
|
28 |
-
<?php echo Mage::helper('
|
29 |
</p>
|
30 |
</td>
|
31 |
</tr>
|
7 |
<tbody>
|
8 |
<tr id="row_update_module">
|
9 |
<td class="label">
|
10 |
+
<label for="update_module"><?php echo Mage::helper('lentracker')->__('Module\'s version'); ?></label>
|
11 |
</td>
|
12 |
<td class="value">
|
13 |
<?php echo $this->getVersion(); ?>
|
14 |
<?php if($this->isLastVersion()): ?>
|
15 |
+
<span class="lengow-check lengow-updated"><?php echo Mage::helper('lentracker')->__('Your module is already updated'); ?></span>
|
16 |
<?php else: ?>
|
17 |
+
<span class="lengow-check lengow-must-be-updated"><?php echo Mage::helper('lentracker')->__('There is a new version %s of Lengow Module, please update it on your Magento Connect Manager !', $this->getLastVersion()); ?></span>
|
18 |
<?php endif; ?>
|
19 |
</td>
|
20 |
</tr>
|
21 |
<tr id="row_ip_service">
|
22 |
<td class="label">
|
23 |
+
<label for="ip_service"><?php echo Mage::helper('lentracker')->__('IP of your server'); ?></label>
|
24 |
</td>
|
25 |
<td class="value">
|
26 |
<?php echo $this->getRealIP(); ?>
|
27 |
<p class="note">
|
28 |
+
<?php echo Mage::helper('lentracker')->__('Make sure your website IP (%s) address is filled in your Lengow Dashboard.', $this->getRealIP()); ?> <a href="https://solution.lengow.com/api/" target="_blank"><?php echo Mage::helper('lentracker')->__('Click here to update it'); ?></a>
|
29 |
</p>
|
30 |
</td>
|
31 |
</tr>
|
app/design/adminhtml/default/default/template/lengow/dashboard/charts.phtml
CHANGED
@@ -60,7 +60,7 @@
|
|
60 |
</script>
|
61 |
<div style="margin: 20px;">
|
62 |
|
63 |
-
<div id="lengow-load"><?php echo Mage::helper('
|
64 |
|
65 |
<div class="switcher a-right" style="padding:5px 10px;" id="lengow-change-select"></div>
|
66 |
|
@@ -72,12 +72,12 @@
|
|
72 |
<table id="table-feeds">
|
73 |
<thead>
|
74 |
<tr>
|
75 |
-
<th><span><?php echo Mage::helper('
|
76 |
-
<th><span><?php echo Mage::helper('
|
77 |
-
<th><span><?php echo Mage::helper('
|
78 |
-
<th><span><?php echo Mage::helper('
|
79 |
-
<th><span><?php echo Mage::helper('
|
80 |
-
<th><span><?php echo Mage::helper('
|
81 |
</tr>
|
82 |
</thead>
|
83 |
<tbody></tbody>
|
60 |
</script>
|
61 |
<div style="margin: 20px;">
|
62 |
|
63 |
+
<div id="lengow-load"><?php echo Mage::helper('lendashboard')->__('Dashboard Lengow'); ?></div>
|
64 |
|
65 |
<div class="switcher a-right" style="padding:5px 10px;" id="lengow-change-select"></div>
|
66 |
|
72 |
<table id="table-feeds">
|
73 |
<thead>
|
74 |
<tr>
|
75 |
+
<th><span><?php echo Mage::helper('lendashboard')->__('ID'); ?></span></th>
|
76 |
+
<th><span><?php echo Mage::helper('lendashboard')->__('Type'); ?></span></th>
|
77 |
+
<th><span><?php echo Mage::helper('lendashboard')->__('Supplier'); ?></span></th>
|
78 |
+
<th><span><?php echo Mage::helper('lendashboard')->__('Name'); ?></span></th>
|
79 |
+
<th><span><?php echo Mage::helper('lendashboard')->__('Products'); ?></span></th>
|
80 |
+
<th><span><?php echo Mage::helper('lendashboard')->__('Enable\'s products'); ?></span></th>
|
81 |
</tr>
|
82 |
</thead>
|
83 |
<tbody></tbody>
|
app/design/adminhtml/default/default/template/lengow/export/product.phtml
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
-
* @var $this
|
4 |
-
* @see
|
5 |
*/
|
6 |
?>
|
7 |
<div class="content-header">
|
8 |
<table cellspacing="0">
|
9 |
<tr>
|
10 |
-
<td style="width:50%;"><h3 class="icon-head head-products"><?php echo Mage::helper('
|
11 |
<td class="a-right">
|
12 |
<?php echo $this->getButtonsHtml() ?>
|
13 |
</td>
|
1 |
<?php
|
2 |
/**
|
3 |
+
* @var $this Lengow_Block_Export_Adminhtml_Product
|
4 |
+
* @see Lengow_Block_Export_Adminhtml_Product
|
5 |
*/
|
6 |
?>
|
7 |
<div class="content-header">
|
8 |
<table cellspacing="0">
|
9 |
<tr>
|
10 |
+
<td style="width:50%;"><h3 class="icon-head head-products"><?php echo Mage::helper('lenexport')->__('Select products to export') ?></h3></td>
|
11 |
<td class="a-right">
|
12 |
<?php echo $this->getButtonsHtml() ?>
|
13 |
</td>
|
app/design/adminhtml/default/default/template/lengow/feed/grid.phtml
CHANGED
@@ -9,7 +9,7 @@
|
|
9 |
<tr>
|
10 |
<td style="width:50%;">
|
11 |
<h3 class="icon-head head-products">
|
12 |
-
<?php echo Mage::helper('
|
13 |
</h3>
|
14 |
</td>
|
15 |
<td class="a-right">
|
9 |
<tr>
|
10 |
<td style="width:50%;">
|
11 |
<h3 class="icon-head head-products">
|
12 |
+
<?php echo Mage::helper('lenfeed')->__('Feeds management') ?>
|
13 |
</h3>
|
14 |
</td>
|
15 |
<td class="a-right">
|
app/design/adminhtml/default/default/template/lengow/sales/order/tab/info.phtml
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
-
* @var $this
|
4 |
-
* @see
|
5 |
*/
|
6 |
?>
|
7 |
<?php
|
1 |
<?php
|
2 |
/**
|
3 |
+
* @var $this Lengow_Block_Export_Adminhtml_Product
|
4 |
+
* @see Lengow_Block_Export_Adminhtml_Product
|
5 |
*/
|
6 |
?>
|
7 |
<?php
|
app/design/frontend/base/default/layout/lengow.xml
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
<layout version="0.1.0">
|
3 |
<default>
|
4 |
<reference name="before_body_end">
|
5 |
-
<block type="
|
6 |
</reference>
|
7 |
</default>
|
8 |
|
2 |
<layout version="0.1.0">
|
3 |
<default>
|
4 |
<reference name="before_body_end">
|
5 |
+
<block type="lentracker/tracker" name="lengow_tracker" template="lengow/tracker/tag.phtml" />
|
6 |
</reference>
|
7 |
</default>
|
8 |
|
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->getData('id_client'); ?>&idGroup=<?php echo $this->getData('id_group'); ?>&price=<?php echo $this->getData('total_paid'); ?>&idCommande=<?php echo $this->
|
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 -->
|
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->getData('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 -->
|
app/locale/fr_FR/Lengow_Connector.csv
CHANGED
@@ -10,8 +10,9 @@
|
|
10 |
"Level max for category","Niveau maximum de profondeur de catégorie"
|
11 |
"Merge images with parents products if exist","Fusionner les images avec les parents si ils existent"
|
12 |
"Convert data","Convertir les données"
|
13 |
-
"Replace
|
14 |
"Country shipping","Pays de livraison par défaut"
|
|
|
15 |
"Delay of shipping","Délais de livraison"
|
16 |
"Shipping cost","Frais de la livraison"
|
17 |
"Default shipping cost if matching find","Coût par défaut de la livraison si aucune correspondance n'est trouvée"
|
@@ -37,7 +38,7 @@
|
|
37 |
"Only for preproduction's mode : no sync orders with Lengow, import orders every time","Seulement pour un environnement de préproduction : ne synchronise pas les commandes avec Lengow et permet d'importer plusieurs fois une même nouvelle commande"
|
38 |
"Logs","Logs"
|
39 |
"Customer Account","Compte utilisateur"
|
40 |
-
"Lengow API
|
41 |
"Customer ID","IdClient"
|
42 |
"Your Customer ID of Lengow","Votre ID client Lengow"
|
43 |
"Group ID","IdGroup"
|
@@ -90,6 +91,9 @@
|
|
90 |
"Feed ID","ID Flux"
|
91 |
"Feed Name","Nom du flux"
|
92 |
"Current Feed","Flux actuel"
|
|
|
|
|
|
|
93 |
"Export only selected product","Exporter seulement les produits sélectionnés"
|
94 |
"Export product out of stock","Exporter les produits sans stock"
|
95 |
"Product type to export","Type de produit à exporter"
|
@@ -148,4 +152,21 @@
|
|
148 |
"Change Lengow's publication","Changer la publication sur Lengow"
|
149 |
"Customer group","Groupe client"
|
150 |
"Use the real date of import's order","Utiliser la date des commandes pour l'import"
|
151 |
-
"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10 |
"Level max for category","Niveau maximum de profondeur de catégorie"
|
11 |
"Merge images with parents products if exist","Fusionner les images avec les parents si ils existent"
|
12 |
"Convert data","Convertir les données"
|
13 |
+
"Replace special chars with html chars","Remplacer les caractères spéciaux par des caractères html"
|
14 |
"Country shipping","Pays de livraison par défaut"
|
15 |
+
"Default country for shipping cost","Pays par défaut pour les frais de livraison"
|
16 |
"Delay of shipping","Délais de livraison"
|
17 |
"Shipping cost","Frais de la livraison"
|
18 |
"Default shipping cost if matching find","Coût par défaut de la livraison si aucune correspondance n'est trouvée"
|
38 |
"Only for preproduction's mode : no sync orders with Lengow, import orders every time","Seulement pour un environnement de préproduction : ne synchronise pas les commandes avec Lengow et permet d'importer plusieurs fois une même nouvelle commande"
|
39 |
"Logs","Logs"
|
40 |
"Customer Account","Compte utilisateur"
|
41 |
+
"Lengow API","Lengow API"
|
42 |
"Customer ID","IdClient"
|
43 |
"Your Customer ID of Lengow","Votre ID client Lengow"
|
44 |
"Group ID","IdGroup"
|
91 |
"Feed ID","ID Flux"
|
92 |
"Feed Name","Nom du flux"
|
93 |
"Current Feed","Flux actuel"
|
94 |
+
"Enabled store","Boutique activée"
|
95 |
+
"Enable store to export","Active la boutique pour l'exportation"
|
96 |
+
"Enable store to import","Active la boutique pour l'importation"
|
97 |
"Export only selected product","Exporter seulement les produits sélectionnés"
|
98 |
"Export product out of stock","Exporter les produits sans stock"
|
99 |
"Product type to export","Type de produit à exporter"
|
152 |
"Change Lengow's publication","Changer la publication sur Lengow"
|
153 |
"Customer group","Groupe client"
|
154 |
"Use the real date of import's order","Utiliser la date des commandes pour l'import"
|
155 |
+
"Importer les frais de traitement","Permet d'importer les frais de traitement provenant des marketplaces, cela modifiera le total de la commande"
|
156 |
+
"Import order in pending payment","Importer les commandes en attente de paiement"
|
157 |
+
"Import an order in pendinf payment (like check or money order)","Importer une commande si elle est en attente de paiement (par exemple, une commande payé par chèque ou par virement)"
|
158 |
+
"To change the date of import's order with the date of marketplace","Changer la date d'import de la commande avec la date d'achat sur les places de marchés"
|
159 |
+
"Split name","Scinder les noms"
|
160 |
+
"If one of the name fields is empty, the non-empty field will be split to fill the empty name field","Si le champs des marketplaces nom ou prénom est vide, le module sindéra le champs correctement renseigné en 2"
|
161 |
+
"Keep html","Conserver le html"
|
162 |
+
"Keep html chars in descrption","Conserver le <html> dans les descriptions"
|
163 |
+
"Auto export new product","Exporter les nouveaux produits automatiquement"
|
164 |
+
"Auto export a new product on Lengow","Export automatique des nouveaux produits dans Lengow"
|
165 |
+
"Choose Store View:","Sélectionner votre vue"
|
166 |
+
"Import processing fee from Marketplace","Importer les frais de traitement des markeplaces"
|
167 |
+
"Import the processing fee","Importer les frais de traitement"
|
168 |
+
"Keep html for the selected fields","Garder l'HTML pour les champs sélectionnés"
|
169 |
+
"Choose default shipping","Sélectionner le transporteur par défaut"
|
170 |
+
"Default shipping method","La méthode de transport par défaut"
|
171 |
+
"Use fake emails","Utilisation de faux emails"
|
172 |
+
"Use fake emails for customer creation","Utilisation de faux emails pour la création de client"
|
media/lengow/import.flag
ADDED
File without changes
|
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/>
|
@@ -10,10 +10,10 @@
|
|
10 |
<description>New module of Lengow.
|
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>
|
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="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>
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>Lengow_Export</name>
|
4 |
+
<version>2.1.0</version>
|
5 |
+
<stability>stable</stability>
|
6 |
<license>GPL</license>
|
7 |
<channel>community</channel>
|
8 |
<extends/>
|
10 |
<description>New module of Lengow.
|
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><author><name>Mathieu</name><user>mathieu</user><email>mathieu.sabourin@lengow.com</email></author><author><name>Benjamin</name><user>benjamin</user><email>benjamin.le-neve@lengow.com</email></author></authors>
|
14 |
+
<date>2015-11-24</date>
|
15 |
+
<time>09:25: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="71641cf5b1ccd6267b5566a025dc96a4"/><file name="Diagrams.php" hash="0aeb53d09f0a83d03ce66825283b0046"/></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="7129af0e9ab390e0695f84865a02fdb5"/></dir><dir name="Model"><file name="Config.php" hash="7e0b019175b5ad29f0b70a6e43b5ebce"/></dir><dir name="etc"><file name="config.xml" hash="15a0dde0e691bfb1e32d62ad3ca92cd0"/></dir></dir><dir name="Export"><dir name="Block"><dir name="Adminhtml"><dir name="Product"><file name="Grid.php" hash="9299bea84d78c5c852e0b8f6c05b17b6"/></dir><file name="Product.php" hash="e043c5abef03d0c46ccd51e49c868cf9"/></dir></dir><dir name="Helper"><file name="Data.php" hash="3f6f4b46059a479394786987d66eb027"/><file name="Security.php" hash="20cbf93d2c167c320ce8292d9bc186b4"/></dir><dir name="Model"><dir name="Catalog"><file name="Product.php" hash="5cefda415930c953311c8aad2cca5fda"/></dir><file name="Config.php" hash="fba4bed58d9c1a69d247b7cc7c0b6b64"/><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="5958c0bdfc04dd33f59245fded2949d7"/><file name="Json.php" hash="4df743bce6647eea36d2677ab7f6a9a8"/><file name="Xml.php" hash="3202baa8a64b22bd7c39c1022a9b48c8"/><file name="Yaml.php" hash="f0c24bd481039c4fc13fa26ef7a4d1b9"/></dir><file name="Generate.php" hash="c9e3836400937b94cd51a8087e5e75b8"/><file name="Observer.php" hash="dcfeae8ac1130cd4f8e952b3d75d59b4"/><dir name="Shipping"><dir name="Carrier"><file name="Lengow.php" hash="685809c2367ec3509ecbf9f4d07f4661"/></dir></dir><dir name="Source"><file name="Attributes.php" hash="f8cae8fe1a7a15c7b4cd76503bffd053"/><file name="Types.php" hash="513868577816d51f6cc61e75ba43a938"/></dir><dir name="System"><dir name="Config"><dir name="Backend"><file name="Apikey.php" hash="140ba6e9cce1204fe0e0c50cf81762ec"/></dir><dir name="Source"><dir name="Category"><file name="Level.php" hash="a1875080def0c89a2bb4b4088f57eac8"/></dir><file name="Format.php" hash="fd069f484cc3ae0d914fb7a965789d9f"/><file name="Getattributes.php" hash="d42c66b3f0ed0c21d5e824400c0b1dc5"/><file name="Images.php" hash="e6ec93f301599ea91d69a1f4847e240d"/><file name="Status.php" hash="449b2bf3c121c3a07aab6072aa629a90"/><file name="Types.php" hash="cab52d0a7e34ff4629ad17d0a2c96362"/></dir></dir></dir></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Lengow"><file name="ExportController.php" hash="1ee080105825d45ce474065e57a4e89e"/></dir></dir><file name="FeedController.php" hash="4ac4e3fa4f69099c89d951411bc51838"/></dir><dir name="etc"><file name="config.xml" hash="aa2d5443ed2061f9d053f38cfc3f0f63"/><file name="system.xml" hash="04d019632939dc948d3b1acd0c9bb32b"/></dir></dir><dir name="Feed"><dir name="Block"><dir name="Adminhtml"><dir name="Feed"><file name="Grid.php" hash="74fcb8c472666b89d9ba550357102c38"/><dir name="Renderer"><file name="Migrate.php" hash="a6a1fd08b4269b052d8c9ed447589ae3"/><file name="Select.php" hash="78808e9061b7a5aa73c2273f18bc0746"/><file name="Url.php" hash="2a3c4fa22460806dda478a088a17ced7"/></dir></dir><file name="Feed.php" hash="30e2d20268eb24bbcc9554ba97e5149e"/></dir></dir><dir name="Helper"><file name="Data.php" hash="799d69122855da8c287b86e663f3562d"/></dir><dir name="Model"><file name="Config.php" hash="7487c73a3fe292614c9f4a2b66d8a664"/><file name="Feed.php" hash="9e7096ba72dcb071662842c681e50928"/></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Lengow"><file name="FeedController.php" hash="964721ca7619b7c1f16b66d13fed2a54"/></dir></dir></dir><dir name="etc"><file name="config.xml" hash="b854253f0a8e41e5df2cc6de4b40892d"/><file name="system.xml" hash="81e6692a37fead4aaa02a4e255ce8464"/></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="31416dda25b833416ef9dad2143b2d9f"/></dir><file name="Log.php" hash="e4032e885dbbdd0c3f4112efbc8ef5a2"/><dir name="Order"><file name="Grid.php" hash="313ea7fde1df56b36159e5d37a757ac9"/><file name="Tab.php" hash="405c887f100b259ba9750088b1c17b44"/></dir><file name="Order.php" hash="c5cecae61feb8dacd348124ba3a2ffef"/></dir><dir name="Payment"><dir name="Info"><file name="Purchaseorder.php" hash="ccf3a1c41c21d1ffd315819be1808fec"/></dir></dir></dir><dir name="Helper"><file name="Api.php" hash="e8846c81d34c1025579151c7372492fb"/><file name="Data.php" hash="d66a6bf80a4d4cb86aa793ad10e4aef3"/></dir><dir name="Model"><file name="Config.php" hash="938e26ef034db15e8a3d977b1a665e25"/><dir name="Connector"><file name="Exception.php" hash="de1fa1b69e24fe7b976c03f1ed1ca7f7"/></dir><file name="Connector.php" hash="544000640f47a5e12482138b1d920ce8"/><dir name="Customer"><file name="Customer.php" hash="2cb9388279a880b8bd602f4b026c9162"/></dir><file name="File.php" hash="d5c9e6af9ca7c7c6013430327b2019df"/><file name="Import.php" hash="8b146e5409105164505b0cc0e316bb2b"/><file name="Log.php" hash="29e1e489b6d125fe64d91693f987a502"/><dir name="Marketplace"><file name="Exception.php" hash="bd7ab8db94e241d022cd6e467e8596ec"/></dir><file name="Marketplace.php" hash="19c8254e80a459b7304a75dc84afd280"/><dir name="Mysql4"><dir name="Log"><file name="Collection.php" hash="22e087b5cfee173440877dd0714fee55"/></dir><file name="Log.php" hash="ab90ef25ea4f6369f713325b6ba247e5"/></dir><file name="Observer.php" hash="32e0c71fa9b39308983efdee11eb8ac2"/><file name="Order.php" hash="fd722ee55aa18db7f0d84cd80f00547e"/><dir name="Payment"><dir name="Method"><file name="Lengow.php" hash="34c96c7a150ee18598301f57dbc707bc"/></dir></dir><dir name="Quote"><file name="Exception.php" hash="7002f0d752509f576352e7bbd78b590c"/><file name="Item.php" hash="30f9faf6b299ef64f10785ba16030a17"/></dir><file name="Quote.php" hash="725f739d4664e5bc5da424aa1f6b3df1"/><dir name="Shipping"><dir name="Carrier"><file name="Lengow.php" hash="8340d3cef16fc86306d626a71d2e9ebc"/></dir></dir><dir name="System"><dir name="Config"><dir name="Source"><dir name="Customer"><file name="Group.php" hash="640638dcee398949ec4d0c1e2731005d"/></dir><dir name="Shipping"><file name="Carrier.php" hash="f83fd1e7fb5c2bd50d2ba983e24b6240"/><file name="Method.php" hash="8df07e95712559dad4b37bde3acf9f77"/></dir></dir></dir></dir></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Lengow"><file name="LogController.php" hash="118fa3fdb4aa3fdd70a7bfb06c7174a2"/><file name="OrderController.php" hash="15406d8c409f6529922b6aa3d8e6f99f"/></dir></dir><file name="ApiController.php" hash="3d62e46fd860b326f288c5869fbe3389"/></dir><dir name="etc"><file name="config.xml" hash="23dae84449429adad6ba2a92ec627c96"/><file name="marketplaces.xml" hash="4645614d6219fe852cd370c4ce52743a"/><file name="system.xml" hash="0366aaf26d72400188bffbc11f85524c"/><file name="wsdl.xml" hash="d299fecf68e9f795e26037be4f2115b3"/></dir><dir name="sql"><dir name="lengow_setup"><file name="mysql4-install-2.0.0.0.php" hash="6856dcca18117fb112e6523139fb47c5"/><file name="mysql4-upgrade-2.0.0.0-2.0.0.1.php" hash="92edfe3518259e1a11213cc80ccaeb34"/><file name="mysql4-upgrade-2.0.2-2.1.0.php" hash="187da13f6ae76378f1118bbf5acaf683"/></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="de29cb19427434c1713d2dae9c97900a"/></dir><file name="Check.php" hash="877fd7a030feff2ad8bc561a3785be5b"/></dir></dir></dir><dir name="Tag"><file name="Capsule.php" hash="d2ed189be29fd76f6ceb0b8d68f21efe"/><file name="Simple.php" hash="ff8fe8fa9767b75de69f5f8e2dfa6ba1"/></dir><file name="Tracker.php" hash="3bdb94f577a831310f8f12f854739906"/></dir><dir name="Helper"><file name="Check.php" hash="508cf7578343c0807e1f010f7fd52dec"/><file name="Data.php" hash="e526694354fe760f266bf925e5e4ac39"/></dir><dir name="Model"><file name="Capsule.php" hash="55504d0b6398f5a88b5977bf54f5b54b"/><file name="Config.php" hash="7848ae5ddc1f2617effa39e27b3e838e"/><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="4c740aa3a311a93b8143a69fd1ea3221"/></dir><dir name="etc"><file name="config.xml" hash="5cd30ce68d418e921b7005f1b9afc579"/><file name="plugins.xml" hash="e35408d7ea61c7ccc669cfb5b7bb8567"/><file name="system.xml" hash="e80c43066774e6fdf6e164bf06bf38ee"/></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="lengow.xml" hash="6c61c98c9a6e2f32fa6b8f9d2eef09d4"/></dir><dir name="template"><dir name="lengow"><dir name="check"><file name="point.phtml" hash="9791a2a673d45bb6db850ec802c63a71"/></dir><dir name="dashboard"><file name="charts.phtml" hash="51964c7bcace68d8f4ef23e314f07a8c"/></dir><dir name="export"><file name="product.phtml" hash="8c0c893621573c316bb7da14a3533224"/></dir><dir name="feed"><file name="grid.phtml" hash="b34e7f8ce18ce9605e88a5bc8b806442"/></dir><dir name="sales"><dir name="order"><dir name="tab"><file name="info.phtml" hash="fcaa52401ea83b17e52d0db2f8367b93"/></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="0e6a4eb11f6433d54474bfed8061d560"/></dir><dir name="template"><dir name="lengow"><dir name="tracker"><file name="simpletag.phtml" hash="3b73552b323d00bd053e1086e6f5ff45"/><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="45a903abe80cd29994ec113b49e07199"/></dir></target><target name="mageetc"><dir name="modules"><file name="Lengow_Connector.xml" hash="34b39beecc725740ea1e0bc8d339287a"/></dir></target><target name="magemedia"><dir name="lengow"><file name="import.flag" hash="d41d8cd98f00b204e9800998ecf8427e"/></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>
|