Speedinfo_Opensi - Version 0.3.8

Version Notes

Mise à jour du module vers la version 0.3.8
Ajout de la gestion des multi-tarif et des statuts de commandes
Pour plus d'informations, se référer à la documentation.

Download this release

Release Info

Developer Magento Core Team
Extension Speedinfo_Opensi
Version 0.3.8
Comparing to
See all releases


Code changes from version 0.3.7 to 0.3.8

app/code/community/Speedinfo/Opensi/Block/Adminhtml/Edit/Tab/Attributs.php CHANGED
@@ -31,7 +31,7 @@ class Speedinfo_Opensi_Block_Adminhtml_Edit_Tab_Attributs extends Mage_Adminhtml
31
  'label' => Mage::helper('opensi')->__('Attribute')." 1 :",
32
  'title' => Mage::helper('opensi')->__('Attribute')." 1 :",
33
  'required' => false,
34
- 'value' => isset($client->attribut1) ? $client->attribut1 : '',
35
  'values' => $list_attr,
36
  ));
37
 
@@ -40,7 +40,7 @@ class Speedinfo_Opensi_Block_Adminhtml_Edit_Tab_Attributs extends Mage_Adminhtml
40
  'label' => Mage::helper('opensi')->__('Attribute')." 2 :",
41
  'title' => Mage::helper('opensi')->__('Attribute')." 2 :",
42
  'required' => false,
43
- 'value' => isset($client->attribut2) ? $client->attribut2 : '',
44
  'values' => $list_attr,
45
  ));
46
 
@@ -49,7 +49,7 @@ class Speedinfo_Opensi_Block_Adminhtml_Edit_Tab_Attributs extends Mage_Adminhtml
49
  'label' => Mage::helper('opensi')->__('Attribute')." 3 :",
50
  'title' => Mage::helper('opensi')->__('Attribute')." 3 :",
51
  'required' => false,
52
- 'value' => isset($client->attribut3) ? $client->attribut3 : '',
53
  'values' => $list_attr,
54
  ));
55
 
@@ -58,7 +58,7 @@ class Speedinfo_Opensi_Block_Adminhtml_Edit_Tab_Attributs extends Mage_Adminhtml
58
  'label' => Mage::helper('opensi')->__('Attribute')." 4 :",
59
  'title' => Mage::helper('opensi')->__('Attribute')." 4 :",
60
  'required' => false,
61
- 'value' => isset($client->attribut4) ? $client->attribut4 : '',
62
  'values' => $list_attr,
63
  ));
64
 
@@ -67,7 +67,7 @@ class Speedinfo_Opensi_Block_Adminhtml_Edit_Tab_Attributs extends Mage_Adminhtml
67
  'label' => Mage::helper('opensi')->__('Attribute')." 5 :",
68
  'title' => Mage::helper('opensi')->__('Attribute')." 5 :",
69
  'required' => false,
70
- 'value' => isset($client->attribut5) ? $client->attribut5 : '',
71
  'values' => $list_attr,
72
  ));
73
 
@@ -76,7 +76,7 @@ class Speedinfo_Opensi_Block_Adminhtml_Edit_Tab_Attributs extends Mage_Adminhtml
76
  'label' => Mage::helper('opensi')->__('Attribute')." 6 :",
77
  'title' => Mage::helper('opensi')->__('Attribute')." 6 :",
78
  'required' => false,
79
- 'value' => isset($client->attribut6) ? $client->attribut6 : '',
80
  'values' => $list_attr,
81
  ));
82
 
@@ -85,7 +85,7 @@ class Speedinfo_Opensi_Block_Adminhtml_Edit_Tab_Attributs extends Mage_Adminhtml
85
  'label' => Mage::helper('opensi')->__('Barcode :'),
86
  'title' => Mage::helper('opensi')->__('Barcode :'),
87
  'required' => false,
88
- 'value' => isset($client->code_barre) ? $client->code_barre : '',
89
  'values' => $list_attr,
90
  ));
91
 
@@ -94,7 +94,7 @@ class Speedinfo_Opensi_Block_Adminhtml_Edit_Tab_Attributs extends Mage_Adminhtml
94
  'label' => Mage::helper('opensi')->__('Volume in m³ :'),
95
  'title' => Mage::helper('opensi')->__('Volume in m³ :'),
96
  'required' => false,
97
- 'value' => isset($client->volume) ? $client->volume : '',
98
  'values' => $list_attr,
99
  ));
100
 
@@ -103,7 +103,7 @@ class Speedinfo_Opensi_Block_Adminhtml_Edit_Tab_Attributs extends Mage_Adminhtml
103
  'label' => Mage::helper('opensi')->__('Height in m :'),
104
  'title' => Mage::helper('opensi')->__('Height in m :'),
105
  'required' => false,
106
- 'value' => isset($client->hauteur) ? $client->hauteur : '',
107
  'values' => $list_attr,
108
  ));
109
 
@@ -112,7 +112,7 @@ class Speedinfo_Opensi_Block_Adminhtml_Edit_Tab_Attributs extends Mage_Adminhtml
112
  'label' => Mage::helper('opensi')->__('Length in m :'),
113
  'title' => Mage::helper('opensi')->__('Length in m :'),
114
  'required' => false,
115
- 'value' => isset($client->longueur) ? $client->longueur : '',
116
  'values' => $list_attr,
117
  ));
118
 
@@ -121,7 +121,7 @@ class Speedinfo_Opensi_Block_Adminhtml_Edit_Tab_Attributs extends Mage_Adminhtml
121
  'label' => Mage::helper('opensi')->__('Width in m :'),
122
  'title' => Mage::helper('opensi')->__('Width in m :'),
123
  'required' => false,
124
- 'value' => isset($client->largeur) ? $client->largeur : '',
125
  'values' => $list_attr,
126
  ));
127
 
31
  'label' => Mage::helper('opensi')->__('Attribute')." 1 :",
32
  'title' => Mage::helper('opensi')->__('Attribute')." 1 :",
33
  'required' => false,
34
+ 'value' => isset($client->attribut1) ? $client->attribut1 : '',
35
  'values' => $list_attr,
36
  ));
37
 
40
  'label' => Mage::helper('opensi')->__('Attribute')." 2 :",
41
  'title' => Mage::helper('opensi')->__('Attribute')." 2 :",
42
  'required' => false,
43
+ 'value' => isset($client->attribut2) ? $client->attribut2 : '',
44
  'values' => $list_attr,
45
  ));
46
 
49
  'label' => Mage::helper('opensi')->__('Attribute')." 3 :",
50
  'title' => Mage::helper('opensi')->__('Attribute')." 3 :",
51
  'required' => false,
52
+ 'value' => isset($client->attribut3) ? $client->attribut3 : '',
53
  'values' => $list_attr,
54
  ));
55
 
58
  'label' => Mage::helper('opensi')->__('Attribute')." 4 :",
59
  'title' => Mage::helper('opensi')->__('Attribute')." 4 :",
60
  'required' => false,
61
+ 'value' => isset($client->attribut4) ? $client->attribut4 : '',
62
  'values' => $list_attr,
63
  ));
64
 
67
  'label' => Mage::helper('opensi')->__('Attribute')." 5 :",
68
  'title' => Mage::helper('opensi')->__('Attribute')." 5 :",
69
  'required' => false,
70
+ 'value' => isset($client->attribut5) ? $client->attribut5 : '',
71
  'values' => $list_attr,
72
  ));
73
 
76
  'label' => Mage::helper('opensi')->__('Attribute')." 6 :",
77
  'title' => Mage::helper('opensi')->__('Attribute')." 6 :",
78
  'required' => false,
79
+ 'value' => isset($client->attribut6) ? $client->attribut6 : '',
80
  'values' => $list_attr,
81
  ));
82
 
85
  'label' => Mage::helper('opensi')->__('Barcode :'),
86
  'title' => Mage::helper('opensi')->__('Barcode :'),
87
  'required' => false,
88
+ 'value' => isset($client->code_barre) ? $client->code_barre : '',
89
  'values' => $list_attr,
90
  ));
91
 
94
  'label' => Mage::helper('opensi')->__('Volume in m³ :'),
95
  'title' => Mage::helper('opensi')->__('Volume in m³ :'),
96
  'required' => false,
97
+ 'value' => isset($client->volume) ? $client->volume : '',
98
  'values' => $list_attr,
99
  ));
100
 
103
  'label' => Mage::helper('opensi')->__('Height in m :'),
104
  'title' => Mage::helper('opensi')->__('Height in m :'),
105
  'required' => false,
106
+ 'value' => isset($client->hauteur) ? $client->hauteur : '',
107
  'values' => $list_attr,
108
  ));
109
 
112
  'label' => Mage::helper('opensi')->__('Length in m :'),
113
  'title' => Mage::helper('opensi')->__('Length in m :'),
114
  'required' => false,
115
+ 'value' => isset($client->longueur) ? $client->longueur : '',
116
  'values' => $list_attr,
117
  ));
118
 
121
  'label' => Mage::helper('opensi')->__('Width in m :'),
122
  'title' => Mage::helper('opensi')->__('Width in m :'),
123
  'required' => false,
124
+ 'value' => isset($client->largeur) ? $client->largeur : '',
125
  'values' => $list_attr,
126
  ));
127
 
app/code/community/Speedinfo/Opensi/Block/Adminhtml/Edit/Tab/OrdersStatus.php ADDED
@@ -0,0 +1,85 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Block Tab General
4
+ *
5
+ * @Author Speedinfo
6
+ * http://wwww.speedinfo.fr | http://www.opensi.fr
7
+ */
8
+
9
+ class Speedinfo_Opensi_Block_Adminhtml_Edit_Tab_OrdersStatus extends Mage_Adminhtml_Block_Widget_Form{
10
+
11
+ /**
12
+ * Initialize tab
13
+ *
14
+ */
15
+ public function __construct() {
16
+ parent::__construct();
17
+ }
18
+
19
+ public function _prepareLayout()
20
+ {
21
+ parent::_prepareLayout();
22
+ $form = new Varien_Data_Form();
23
+ $client = $this->getClient();
24
+
25
+ $fieldset = $form->addFieldset('prices_fieldset', array('legend'=>Mage::helper('opensi')->__('Statut des commandes')));
26
+
27
+ $list_attr = Mage::getSingleton('sales/order_config')->getStatuses();
28
+
29
+ $fieldset->addField('pending', 'select', array(
30
+ 'name' => 'opensi[statuses][pending]',
31
+ 'label' => Mage::helper('opensi')->__('En attente')." :",
32
+ 'title' => Mage::helper('opensi')->__('En attente')." :",
33
+ 'required' => false,
34
+ 'value' => isset($client->pending_status) ? $client->pending_status : 'pending',
35
+ 'values' => $list_attr,
36
+ ));
37
+
38
+ $fieldset->addField('processing', 'select', array(
39
+ 'name' => 'opensi[statuses][processing]',
40
+ 'label' => Mage::helper('opensi')->__('Préparation en cours')." :",
41
+ 'title' => Mage::helper('opensi')->__('Préparation en cours')." :",
42
+ 'required' => false,
43
+ 'value' => isset($client->processing_status) ? $client->processing_status : 'processing',
44
+ 'values' => $list_attr,
45
+ ));
46
+
47
+ $fieldset->addField('complete', 'select', array(
48
+ 'name' => 'opensi[statuses][complete]',
49
+ 'label' => Mage::helper('opensi')->__('Terminé')." :",
50
+ 'title' => Mage::helper('opensi')->__('Terminé')." :",
51
+ 'required' => false,
52
+ 'value' => isset($client->complete_status) ? $client->complete_status : 'complete',
53
+ 'values' => $list_attr,
54
+ ));
55
+
56
+ $fieldset->addField('canceled', 'select', array(
57
+ 'name' => 'opensi[statuses][canceled]',
58
+ 'label' => Mage::helper('opensi')->__('Annulé')." :",
59
+ 'title' => Mage::helper('opensi')->__('Annulé')." :",
60
+ 'required' => false,
61
+ 'value' => isset($client->canceled_status) ? $client->canceled_status : 'canceled',
62
+ 'values' => $list_attr,
63
+ ));
64
+
65
+ $this->setForm($form);
66
+ }
67
+
68
+ public function getStore()
69
+ {
70
+ if(Mage::registry('store_id') != ""){
71
+ $store_id = Mage::registry('store_id');
72
+ }else{
73
+ $store_id = $this->getRequest()->getParam('store');
74
+ if($store_id == ""){
75
+ $store_id = 0;
76
+ }
77
+ }
78
+ return $store_id;
79
+ }
80
+
81
+ public function getClient(){
82
+ return Mage::getModel("opensi/client")->loadByStore($this->getStore());
83
+ }
84
+
85
+ }
app/code/community/Speedinfo/Opensi/Block/Adminhtml/Edit/Tab/Prices.php ADDED
@@ -0,0 +1,70 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Block Tab General
4
+ *
5
+ * @Author Speedinfo
6
+ * http://wwww.speedinfo.fr | http://www.opensi.fr
7
+ */
8
+
9
+ class Speedinfo_Opensi_Block_Adminhtml_Edit_Tab_Prices extends Mage_Adminhtml_Block_Widget_Form{
10
+
11
+ /**
12
+ * Initialize tab
13
+ *
14
+ */
15
+ public function __construct() {
16
+ parent::__construct();
17
+ }
18
+
19
+ public function _prepareLayout()
20
+ {
21
+ parent::_prepareLayout();
22
+ $form = new Varien_Data_Form();
23
+ $client = $this->getClient();
24
+
25
+ $fieldset = $form->addFieldset('prices_fieldset', array('legend'=>Mage::helper('opensi')->__('Liaison des prix')));
26
+
27
+ $list_attr = $this->getPriceRatesList();
28
+
29
+ $fieldset->addField('price_rate', 'select', array(
30
+ 'name' => 'opensi[price_rate]',
31
+ 'label' => Mage::helper('opensi')->__('Tarif utilisé pour cette boutique')." :",
32
+ 'title' => Mage::helper('opensi')->__('Tarif utilisé pour cette boutique')." :",
33
+ 'required' => false,
34
+ 'value' => isset($client->price_rate) ? $client->price_rate : '',
35
+ 'values' => $list_attr,
36
+ 'note' => $this->__("Vous pouvez gérer jusqu'à 5 tarifs différents pour un même article dans OpenSi. Sélectionnez le tarif que vous souhaitez utiliser pour cette boutique.")
37
+ ));
38
+
39
+ $this->setForm($form);
40
+ }
41
+
42
+ public function getPriceRatesList(){
43
+ $list = array(
44
+ "1"=>"Tarif 1",
45
+ "2"=>"Tarif 2",
46
+ "3"=>"Tarif 3",
47
+ "4"=>"Tarif 4",
48
+ "5"=>"Tarif 5",
49
+ );
50
+ return $list;
51
+ }
52
+
53
+ public function getStore()
54
+ {
55
+ if(Mage::registry('store_id') != ""){
56
+ $store_id = Mage::registry('store_id');
57
+ }else{
58
+ $store_id = $this->getRequest()->getParam('store');
59
+ if($store_id == ""){
60
+ $store_id = 0;
61
+ }
62
+ }
63
+ return $store_id;
64
+ }
65
+
66
+ public function getClient(){
67
+ return Mage::getModel("opensi/client")->loadByStore($this->getStore());
68
+ }
69
+
70
+ }
app/code/community/Speedinfo/Opensi/Block/Adminhtml/Tabs.php CHANGED
@@ -9,47 +9,57 @@
9
  class Speedinfo_Opensi_Block_Adminhtml_Tabs extends Mage_Adminhtml_Block_Widget_Tabs
10
  {
11
 
12
- /**
13
- * Initialize Tabs
14
- *
15
- */
16
- public function __construct()
17
- {
18
- parent::__construct();
19
- $this->setId('opensi_tabs');
20
- $this->setDestElementId('edit_form');
21
- $this->setTitle(Mage::helper('opensi')->__('Opensi'));
22
- }
23
-
24
-
25
- /**
26
- * Prepare Layout Content
27
- *
28
- * @return Mage_Adminhtml_Block_Catalog_Category_Tabs
29
- */
30
- protected function _prepareLayout()
31
- {
32
-
33
- $this->addTab('general', array(
34
- 'label' => Mage::helper('opensi')->__('General Information'),
35
- 'content' => $this->getLayout()->createBlock('opensi/adminhtml_edit_tab_general')->toHtml(),
36
- ));
37
-
38
- $this->addTab('Liaison des familles', array(
39
- 'label' => Mage::helper('opensi')->__('Linking families'),
40
- 'content' => $this->getLayout()->createBlock('opensi/adminhtml_edit_tab_familles')->toHtml(),
41
- ));
42
 
43
- $this->addTab('Liaison des attributs', array(
44
- 'label' => Mage::helper('opensi')->__('Linking attributes'),
45
- 'content' => $this->getLayout()->createBlock('opensi/adminhtml_edit_tab_attributs')->toHtml(),
46
- ));
47
 
48
- $this->addTab('webservices', array(
49
- 'label' => Mage::helper('opensi')->__('Webservices'),
50
- 'content' => $this->getLayout()->createBlock('opensi/adminhtml_edit_tab_webservices')->toHtml(),
51
- ));
52
-
53
- return parent::_prepareLayout();
54
- }
 
 
 
 
 
 
 
 
 
 
55
  }
9
  class Speedinfo_Opensi_Block_Adminhtml_Tabs extends Mage_Adminhtml_Block_Widget_Tabs
10
  {
11
 
12
+ /**
13
+ * Initialize Tabs
14
+ *
15
+ */
16
+ public function __construct()
17
+ {
18
+ parent::__construct();
19
+ $this->setId('opensi_tabs');
20
+ $this->setDestElementId('edit_form');
21
+ $this->setTitle(Mage::helper('opensi')->__('Opensi'));
22
+ }
23
+
24
+
25
+ /**
26
+ * Prepare Layout Content
27
+ *
28
+ * @return Mage_Adminhtml_Block_Catalog_Category_Tabs
29
+ */
30
+ protected function _prepareLayout()
31
+ {
32
+
33
+ $this->addTab('general', array(
34
+ 'label' => Mage::helper('opensi')->__('General Information'),
35
+ 'content' => $this->getLayout()->createBlock('opensi/adminhtml_edit_tab_general')->toHtml(),
36
+ ));
37
+
38
+ $this->addTab('Liaison des familles', array(
39
+ 'label' => Mage::helper('opensi')->__('Linking families'),
40
+ 'content' => $this->getLayout()->createBlock('opensi/adminhtml_edit_tab_familles')->toHtml(),
41
+ ));
42
 
43
+ $this->addTab('Liaison des attributs', array(
44
+ 'label' => Mage::helper('opensi')->__('Linking attributes'),
45
+ 'content' => $this->getLayout()->createBlock('opensi/adminhtml_edit_tab_attributs')->toHtml(),
46
+ ));
47
 
48
+ $this->addTab('Liaison des prix', array(
49
+ 'label' => Mage::helper('opensi')->__('Linking price rates'),
50
+ 'content' => $this->getLayout()->createBlock('opensi/adminhtml_edit_tab_prices')->toHtml(),
51
+ ));
52
+
53
+ $this->addTab('Liaison des status de commandes', array(
54
+ 'label' => Mage::helper('opensi')->__('Linking orders status'),
55
+ 'content' => $this->getLayout()->createBlock('opensi/adminhtml_edit_tab_ordersStatus')->toHtml(),
56
+ ));
57
+
58
+ $this->addTab('webservices', array(
59
+ 'label' => Mage::helper('opensi')->__('Webservices'),
60
+ 'content' => $this->getLayout()->createBlock('opensi/adminhtml_edit_tab_webservices')->toHtml(),
61
+ ));
62
+
63
+ return parent::_prepareLayout();
64
+ }
65
  }
app/code/community/Speedinfo/Opensi/Model/Webservices.php CHANGED
@@ -151,6 +151,9 @@ class Speedinfo_Opensi_Model_Webservices extends Mage_Core_Model_Abstract {
151
  if ($taxClassId != 0) {
152
  // $taxRequest = Mage::getSingleton('tax/calculation')->getRateRequest($order->getShippingAddress(), $order->getBillingAddress(), "", $storeId);
153
  $taxRequest = Mage::getSingleton('tax/calculation')->getRateRequest();
 
 
 
154
  if ($taxRequest->getCustomerClassId()) {
155
  $percent = Mage::getSingleton('tax/calculation')->getRate($taxRequest->setProductClassId($taxClassId));
156
  } else if ($taxRequest->getProductClassId()) {
@@ -240,12 +243,14 @@ class Speedinfo_Opensi_Model_Webservices extends Mage_Core_Model_Abstract {
240
  $discountAmount = $item->getDiscountAmount();
241
 
242
  //Si il existe une remise en valeur
 
243
  if (!empty($discountAmount) && $itemTotal != 0) {
244
  $discount = (1 - (($itemTotal - ($item->getDiscountAmount()/$item->getQtyOrdered())) / $itemTotal)) * 100;
245
  $discount = round($discount, 2);
246
  }else{
247
- $ligneCommandeClient->setAttribute('Remise_Pourc', 0);
248
  }
 
249
 
250
  // $discountPourcent = $item->getDiscountPercent();
251
  // //Si il existe un poucentage de remise.
@@ -262,14 +267,12 @@ class Speedinfo_Opensi_Model_Webservices extends Mage_Core_Model_Abstract {
262
  // $discount = $discountPourcent;
263
  // Mage::log($discount, null, 'opensi.log');
264
  // }
265
-
266
- $ligneCommandeClient->setAttribute('Remise_Pourc', $discount);
267
  $ligneCommandeClient->setAttribute('Taux_Tva', round($item->getTaxPercent(),2));
268
 
269
  $commandeWeb->appendChild($ligneCommandeClient);
270
  }
271
 
272
- // Mage::log($docXml->saveXml(), null, 'opensi.log');
273
  $this->sendData('POST', 'create_commande_web', $docXml->saveXml(), $client);
274
  } // endforeach $ordercollection
275
 
@@ -282,15 +285,6 @@ class Speedinfo_Opensi_Model_Webservices extends Mage_Core_Model_Abstract {
282
  * Envoie des nouveaux produits vers OpenSI
283
  */
284
  public function createArticle($startedAt, $client, $storeId) {
285
- // if(Mage::getVersion() < '1.4.0.0'){
286
- // $productCollection = Mage::getModel('catalog/product')->getCollection()
287
- // ->addFieldToFilter('created_at', array('gteq' => $startedAt->format('Y-m-d H:i:s')))
288
- // ->addFieldToFilter('type_id', array('nin' => array('configurable', 'grouped')))
289
- // //->addFieldToFilter('category_ids', array('gteq' => NULL))
290
- // ->addStoreFilter($storeId)
291
- // ->addAttributeToSelect('*');
292
- // }else{
293
- // $startedAt = new DateTime('1970-01-01');
294
 
295
  $productCollection = Mage::getModel('catalog/product')->getCollection()
296
  ->addFieldToFilter('created_at', array('gteq' => $startedAt->format('Y-m-d H:i:s')))
@@ -298,7 +292,6 @@ class Speedinfo_Opensi_Model_Webservices extends Mage_Core_Model_Abstract {
298
  ->addStoreFilter($storeId)
299
  ->addAttributeToSelect('*');
300
  ini_set('max_execution_time', 50 );
301
- // $time_start = microtime(true);
302
  foreach ($productCollection as $product) {
303
  ini_set('max_execution_time', ini_get('max_execution_time')+1 );
304
  if (ini_get('max_execution_time') == 100)
@@ -313,11 +306,6 @@ class Speedinfo_Opensi_Model_Webservices extends Mage_Core_Model_Abstract {
313
  if($this->_error != "409")
314
  $this->setStockArticle($product,$client);
315
  } // endforeach $productCollection
316
- // $time_end = microtime(true);
317
- // $time = $time_end - $time_start;
318
- // Mage::log("CREATE ARTICLE",null,'opensiTimer.log');
319
- // Mage::log($time,null,'opensiTimer.log');
320
- // Mage::log("END CREATE ARTICLE",null,'opensiTimer.log');
321
  if ($productCollection->count() > 0)
322
  $this->setPubwebArticle($startedAt, $client, $storeId);
323
  }
@@ -410,15 +398,23 @@ class Speedinfo_Opensi_Model_Webservices extends Mage_Core_Model_Abstract {
410
  if ($type == 'create') {
411
  $includeTax = Mage::getStoreConfig('tax/calculation/price_includes_tax', $storeId);
412
  if ($includeTax) {
413
- $article->setAttribute('Tarif_TTC_1', $product->getFinalPrice());
 
 
 
 
 
414
  } else {
 
 
 
 
 
 
415
 
416
- $article->setAttribute('Tarif_HT_1', $product->getFinalPrice());
417
  }
418
  $product->getCost() != "" ? $article->setAttribute('Prix_Achat', $product->getCost()) : false;
419
- // $taxRequest = Mage::getSingleton('tax/calculation');
420
  // Mage::log(Mage::getSingleton('tax/calculation')->getRate($taxRequest->setProductClassId($product->getTaxClassId())),null,'opensi.log');
421
- // $product->getTaxPercent() != "" ? $article->setAttribute('Taux_Tva', $product->getTaxPercent()) : false;
422
  }
423
  $updatedAt = new Datetime($product->getUpdatedAt());
424
  $createdAt = new Datetime($product->getCreatedAt());
@@ -530,7 +526,6 @@ class Speedinfo_Opensi_Model_Webservices extends Mage_Core_Model_Abstract {
530
  $xmlDomDocument = new DomDocument();
531
  $result = $xmlDomDocument->loadXML($resultXML);
532
  $stockArticles = $xmlDomDocument->getElementsByTagName("Stock_Article");
533
- //$time_start = microtime(true);
534
  foreach ($stockArticles as $stockArticle) {
535
  ini_set('max_execution_time', ini_get('max_execution_time')+1 );
536
  if (ini_get('max_execution_time') == 100)
@@ -563,11 +558,6 @@ class Speedinfo_Opensi_Model_Webservices extends Mage_Core_Model_Abstract {
563
  Mage::log($e,null,'opensi.log');
564
  }
565
  }
566
- // $time_end = microtime(true);
567
- // $time = $time_end - $time_start;
568
- // Mage::log("GET STOCK",null,'opensiTimer.log');
569
- // Mage::log($time,null,'opensiTimer.log');
570
- // Mage::log("END GET STOCK",null,'opensiTimer.log');
571
  }
572
 
573
  /**
@@ -683,7 +673,6 @@ class Speedinfo_Opensi_Model_Webservices extends Mage_Core_Model_Abstract {
683
  continue;
684
  }
685
 
686
- $status = $order->getStatus();
687
  //Mage::log($order->getIncrementId()." ".$order->getStatus()." ".$etatCommande->getAttribute('Statut_Paiement')." ".$etatCommande->getAttribute('Statut_Logistique')." ".$etatCommande->getAttribute('Etat') ,null,'opensi.log');
688
  //recup du statut de paiement = si termine on facture pour considerer la commande paye
689
  if ($etatCommande->getAttribute('Statut_Paiement') == 'T') {
@@ -741,33 +730,49 @@ class Speedinfo_Opensi_Model_Webservices extends Mage_Core_Model_Abstract {
741
  foreach ($shipmentCollection as $shipment) {
742
  $shipmentId = $shipment->getIncrementId();
743
  }
744
- if (empty($shipmentId))
745
- $shipmentId = Mage::getModel('sales/order_shipment_api')->create($order->getIncrementId(), array());
 
 
 
 
 
 
 
 
 
 
 
 
746
  }
747
  $order->save();
748
  }
749
 
 
 
 
750
  //passer derniere valeur a true pour envoyer mail au client
751
  switch ($etatCommande->getAttribute('Etat')) {
752
  case 'N': //Non validée
753
- if ($status != 'pending' && $status != 'processing' && $status != 'holded' && $status != 'canceled')
754
- $order->setState('pending', true, 'changement de statut OpenSI (Pending)', true);
 
755
  break;
756
 
757
  case 'T': // En cours mais validée
758
- if ($status != 'processing' && $status != 'holded')
759
- $order->setState('processing', true, 'changement de statut OpenSI (Processing)', true);
 
760
  break;
761
 
762
  case 'A': // Annulée
763
- if ($status != 'canceled')
764
- $order->setState('canceled', true, 'changement de statut OpenSI (Canceled)', true);
765
  break;
766
 
767
  case 'C': // Cloturée expédiée et facturée
768
- if ($status != 'complete' && Mage::getVersion() < '1.4.0.0'){
769
- $order->setState('complete', true, 'changement de statut OpenSI (Complete)', true);
770
- }
771
  break;
772
  }
773
  $order->save();
@@ -897,8 +902,8 @@ class Speedinfo_Opensi_Model_Webservices extends Mage_Core_Model_Abstract {
897
  if (ini_get('max_execution_time') == 100)
898
  ini_set('max_execution_time', 50 );
899
  $reference = $prixArticle->getAttribute('Reference');
900
- $tarifHT = $prixArticle->getAttribute('Tarif_HT_1');
901
- $tarifTTC = $prixArticle->getAttribute('Tarif_TTC_1');
902
  $prixAchat = $prixArticle->getAttribute('Prix_Achat');
903
  $product = Mage::getModel('catalog/product')->loadByAttribute("sku", $reference);
904
  if ($product && $product->getTypeId() != "bundle") {
@@ -961,4 +966,4 @@ class Speedinfo_Opensi_Model_Webservices extends Mage_Core_Model_Abstract {
961
  return true;
962
  }
963
 
964
- }
151
  if ($taxClassId != 0) {
152
  // $taxRequest = Mage::getSingleton('tax/calculation')->getRateRequest($order->getShippingAddress(), $order->getBillingAddress(), "", $storeId);
153
  $taxRequest = Mage::getSingleton('tax/calculation')->getRateRequest();
154
+
155
+ //Préco à tester sur d'autres boutiques :
156
+ //$taxRequest = Mage::getSingleton('tax/calculation')->getRateRequest(false,false,false,Mage::getModel('core/store')->load($storeId));
157
  if ($taxRequest->getCustomerClassId()) {
158
  $percent = Mage::getSingleton('tax/calculation')->getRate($taxRequest->setProductClassId($taxClassId));
159
  } else if ($taxRequest->getProductClassId()) {
243
  $discountAmount = $item->getDiscountAmount();
244
 
245
  //Si il existe une remise en valeur
246
+ $discount = 0;
247
  if (!empty($discountAmount) && $itemTotal != 0) {
248
  $discount = (1 - (($itemTotal - ($item->getDiscountAmount()/$item->getQtyOrdered())) / $itemTotal)) * 100;
249
  $discount = round($discount, 2);
250
  }else{
251
+ $discount = 0;
252
  }
253
+ $ligneCommandeClient->setAttribute('Remise_Pourc', $discount);
254
 
255
  // $discountPourcent = $item->getDiscountPercent();
256
  // //Si il existe un poucentage de remise.
267
  // $discount = $discountPourcent;
268
  // Mage::log($discount, null, 'opensi.log');
269
  // }
 
 
270
  $ligneCommandeClient->setAttribute('Taux_Tva', round($item->getTaxPercent(),2));
271
 
272
  $commandeWeb->appendChild($ligneCommandeClient);
273
  }
274
 
275
+ // Mage::log($docXml->saveXml(), null, 'opensi.log');
276
  $this->sendData('POST', 'create_commande_web', $docXml->saveXml(), $client);
277
  } // endforeach $ordercollection
278
 
285
  * Envoie des nouveaux produits vers OpenSI
286
  */
287
  public function createArticle($startedAt, $client, $storeId) {
 
 
 
 
 
 
 
 
 
288
 
289
  $productCollection = Mage::getModel('catalog/product')->getCollection()
290
  ->addFieldToFilter('created_at', array('gteq' => $startedAt->format('Y-m-d H:i:s')))
292
  ->addStoreFilter($storeId)
293
  ->addAttributeToSelect('*');
294
  ini_set('max_execution_time', 50 );
 
295
  foreach ($productCollection as $product) {
296
  ini_set('max_execution_time', ini_get('max_execution_time')+1 );
297
  if (ini_get('max_execution_time') == 100)
306
  if($this->_error != "409")
307
  $this->setStockArticle($product,$client);
308
  } // endforeach $productCollection
 
 
 
 
 
309
  if ($productCollection->count() > 0)
310
  $this->setPubwebArticle($startedAt, $client, $storeId);
311
  }
398
  if ($type == 'create') {
399
  $includeTax = Mage::getStoreConfig('tax/calculation/price_includes_tax', $storeId);
400
  if ($includeTax) {
401
+ if($client->price_rate == 1){
402
+ $article->setAttribute('Tarif_TTC_'.$client->price_rate, $product->getFinalPrice());
403
+ }else{
404
+ $article->setAttribute('Tarif_TTC_1', 0);
405
+ $article->setAttribute('Tarif_TTC_'.$client->price_rate, $product->getFinalPrice());
406
+ }
407
  } else {
408
+ if($client->price_rate == 1){
409
+ $article->setAttribute('Tarif_HT_'.$client->price_rate, $product->getFinalPrice());
410
+ }else{
411
+ $article->setAttribute('Tarif_HT_1', 0);
412
+ $article->setAttribute('Tarif_HT_'.$client->price_rate, $product->getFinalPrice());
413
+ }
414
 
 
415
  }
416
  $product->getCost() != "" ? $article->setAttribute('Prix_Achat', $product->getCost()) : false;
 
417
  // Mage::log(Mage::getSingleton('tax/calculation')->getRate($taxRequest->setProductClassId($product->getTaxClassId())),null,'opensi.log');
 
418
  }
419
  $updatedAt = new Datetime($product->getUpdatedAt());
420
  $createdAt = new Datetime($product->getCreatedAt());
526
  $xmlDomDocument = new DomDocument();
527
  $result = $xmlDomDocument->loadXML($resultXML);
528
  $stockArticles = $xmlDomDocument->getElementsByTagName("Stock_Article");
 
529
  foreach ($stockArticles as $stockArticle) {
530
  ini_set('max_execution_time', ini_get('max_execution_time')+1 );
531
  if (ini_get('max_execution_time') == 100)
558
  Mage::log($e,null,'opensi.log');
559
  }
560
  }
 
 
 
 
 
561
  }
562
 
563
  /**
673
  continue;
674
  }
675
 
 
676
  //Mage::log($order->getIncrementId()." ".$order->getStatus()." ".$etatCommande->getAttribute('Statut_Paiement')." ".$etatCommande->getAttribute('Statut_Logistique')." ".$etatCommande->getAttribute('Etat') ,null,'opensi.log');
677
  //recup du statut de paiement = si termine on facture pour considerer la commande paye
678
  if ($etatCommande->getAttribute('Statut_Paiement') == 'T') {
730
  foreach ($shipmentCollection as $shipment) {
731
  $shipmentId = $shipment->getIncrementId();
732
  }
733
+ if (empty($shipmentId)){
734
+ $shipment = Mage::getModel('sales/service_order', $order)->prepareShipment();
735
+ if ($shipment) {
736
+ $shipment->register();
737
+ $shipment->getOrder()->setIsInProcess(true);
738
+ $transactionSave = Mage::getModel('core/resource_transaction')
739
+ ->addObject($shipment)
740
+ ->addObject($shipment->getOrder())
741
+ ->save();
742
+ }
743
+ }
744
+
745
+ // if (empty($shipmentId))
746
+ // $shipmentId = Mage::getModel('sales/order_shipment_api')->create($order->getIncrementId(), array());
747
  }
748
  $order->save();
749
  }
750
 
751
+ $status = $order->getStatus();
752
+ $statuses = Mage::getSingleton('sales/order_config')->getStatuses();
753
+
754
  //passer derniere valeur a true pour envoyer mail au client
755
  switch ($etatCommande->getAttribute('Etat')) {
756
  case 'N': //Non validée
757
+ if(isset($statuses['pending'])) unset($statuses['pending']);
758
+ if(!array_key_exists($status,$statuses) && $status != $client->pending_status)
759
+ $order->setState($client->pending_status, true, 'changement de statut OpenSI ('.$client->pending_status.')', true);
760
  break;
761
 
762
  case 'T': // En cours mais validée
763
+ unset($statuses[$client->pending_status]);
764
+ if(!array_key_exists($status,$statuses))
765
+ $order->setState($client->processing_status, true, 'changement de statut OpenSI ('.$client->processing_status.')', true);
766
  break;
767
 
768
  case 'A': // Annulée
769
+ if ($status != $client->canceled_status)
770
+ $order->setState($client->canceled_status, true, 'changement de statut OpenSI ('.$client->canceled_status.')', true);
771
  break;
772
 
773
  case 'C': // Cloturée expédiée et facturée
774
+ if ($status != $client->complete_status && $status != $client->canceled_status && Mage::getVersion() < '1.4.0.0')
775
+ $order->setState($client->complete_status, true, 'changement de statut OpenSI ('.$client->complete_status.')', true);
 
776
  break;
777
  }
778
  $order->save();
902
  if (ini_get('max_execution_time') == 100)
903
  ini_set('max_execution_time', 50 );
904
  $reference = $prixArticle->getAttribute('Reference');
905
+ $tarifHT = $prixArticle->getAttribute('Tarif_HT_'.$client->price_rate);
906
+ $tarifTTC = $prixArticle->getAttribute('Tarif_TTC_'.$client->price_rate);
907
  $prixAchat = $prixArticle->getAttribute('Prix_Achat');
908
  $product = Mage::getModel('catalog/product')->loadByAttribute("sku", $reference);
909
  if ($product && $product->getTypeId() != "bundle") {
966
  return true;
967
  }
968
 
969
+ }
app/code/community/Speedinfo/Opensi/controllers/IndexController.php CHANGED
@@ -59,8 +59,18 @@ class Speedinfo_Opensi_IndexController extends Mage_Adminhtml_Controller_Action
59
  $longueur = $params['longueur'];
60
  $largeur = $params['largeur'];
61
 
 
 
 
62
  //Mode Test
63
  $testMode = $params['test_mode'];
 
 
 
 
 
 
 
64
 
65
  // préparer les attributs
66
  $clientData = array(
@@ -84,7 +94,12 @@ class Speedinfo_Opensi_IndexController extends Mage_Adminhtml_Controller_Action
84
  'hauteur' => $hauteur,
85
  'longueur' => $longueur,
86
  'largeur' => $largeur,
 
87
  'test_mode' => $testMode,
 
 
 
 
88
  );
89
  $client->setData($clientData);
90
  $params['id'] != 0 ? $client->setId($params['id']) : '';
59
  $longueur = $params['longueur'];
60
  $largeur = $params['largeur'];
61
 
62
+ //Gestion des tarifs
63
+ $priceRate = $params['price_rate'];
64
+
65
  //Mode Test
66
  $testMode = $params['test_mode'];
67
+
68
+ //Gestion des statuts de commandes
69
+ $pending = $params['statuses']['pending'];
70
+ $processing = $params['statuses']['processing'];
71
+ $complete = $params['statuses']['complete'];
72
+ $canceled = $params['statuses']['canceled'];
73
+ Mage::log($pending);
74
 
75
  // préparer les attributs
76
  $clientData = array(
94
  'hauteur' => $hauteur,
95
  'longueur' => $longueur,
96
  'largeur' => $largeur,
97
+ 'price_rate' => $priceRate,
98
  'test_mode' => $testMode,
99
+ 'pending_status' => $pending,
100
+ 'processing_status' => $processing,
101
+ 'complete_status' => $complete,
102
+ 'canceled_status' => $canceled
103
  );
104
  $client->setData($clientData);
105
  $params['id'] != 0 ? $client->setId($params['id']) : '';
app/code/community/Speedinfo/Opensi/etc/config.xml CHANGED
@@ -2,7 +2,7 @@
2
  <config>
3
  <modules>
4
  <Speedinfo_Opensi>
5
- <version>0.3.7</version>
6
  </Speedinfo_Opensi>
7
  </modules>
8
  <global>
2
  <config>
3
  <modules>
4
  <Speedinfo_Opensi>
5
+ <version>0.3.8</version>
6
  </Speedinfo_Opensi>
7
  </modules>
8
  <global>
app/code/community/Speedinfo/Opensi/sql/opensi_setup/mysql4-upgrade-0.3.7-0.3.8.php ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Update des tables
4
+ *
5
+ * @Author Speedinfo
6
+ * http://wwww.speedinfo.fr | http://www.opensi.fr
7
+ */
8
+
9
+ $installer = $this;
10
+
11
+ $installer->startSetup();
12
+
13
+ $db = $installer->getConnection();
14
+ if(!$db->tableColumnExists($this->getTable('opensi_client'), 'price_rate')) {
15
+ $installer->run("
16
+ ALTER TABLE {$this->getTable('opensi_client')} ADD price_rate int(1) NOT NULL default '1';
17
+ ");
18
+ }
19
+ if(!$db->tableColumnExists($this->getTable('opensi_client'), 'pending_status')) {
20
+ $installer->run("
21
+ ALTER TABLE {$this->getTable('opensi_client')} ADD pending_status varchar(50) NOT NULL default 'pending';
22
+ ");
23
+ }
24
+ if(!$db->tableColumnExists($this->getTable('opensi_client'), 'processing_status')) {
25
+ $installer->run("
26
+ ALTER TABLE {$this->getTable('opensi_client')} ADD processing_status varchar(50) NOT NULL default 'processing';
27
+ ");
28
+ }
29
+ if(!$db->tableColumnExists($this->getTable('opensi_client'), 'complete_status')) {
30
+ $installer->run("
31
+ ALTER TABLE {$this->getTable('opensi_client')} ADD complete_status varchar(50) NOT NULL default 'complete';
32
+ ");
33
+ }
34
+ if(!$db->tableColumnExists($this->getTable('opensi_client'), 'canceled_status')) {
35
+ $installer->run("
36
+ ALTER TABLE {$this->getTable('opensi_client')} ADD canceled_status varchar(50) NOT NULL default 'canceled';
37
+ ");
38
+ }
39
+ //end
40
+ $installer->endSetup();
app/locale/fr_FR/Speedinfo_OpenSi.csv CHANGED
@@ -16,4 +16,6 @@
16
  "Width in m :","Largeur en m :"
17
  "Linking families","Liaison des familles"
18
  "Linking attributes","Liaison des attributs"
19
- "Family","Famille"
 
 
16
  "Width in m :","Largeur en m :"
17
  "Linking families","Liaison des familles"
18
  "Linking attributes","Liaison des attributs"
19
+ "Family","Famille"
20
+ "Linking price rates","Liaison des tarifs"
21
+ "Linking orders status","Liaison des statuts de commandes"
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Speedinfo_Opensi</name>
4
- <version>0.3.7</version>
5
  <stability>stable</stability>
6
  <license>GPL</license>
7
  <channel>community</channel>
@@ -10,13 +10,13 @@
10
  <description>Le module OpenSi Connect vous permet de coupler Magento au logiciel de gestion commerciale et de comptabilit&#xE9; OpenSi E-Commerce.
11
  Speedinfo a con&#xE7;u un connecteur pour OpenSi E-Commerce et Magento sous la forme du module OpenSi Connect
12
  OpenSi E-Commerce, est un logiciel de gestion commerciale et de comptabilit&#xE9; d&#xE9;di&#xE9; &#xE0; l'e-commerce.</description>
13
- <notes>Mise &#xE0; jour du module vers la version 0.3.7
14
- (Bug Fix : Pourcentage de remise)
15
  Pour plus d'informations, se r&#xE9;f&#xE9;rer &#xE0; la documentation.</notes>
16
  <authors><author><name>Dray</name><user>auto-converted</user><email>rony.dray@speedinfo.fr</email></author></authors>
17
- <date>2011-08-03</date>
18
- <time>08:44:41</time>
19
- <contents><target name="mage"><dir name="app"><dir name="design"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="opensi"><dir name="tab"><file name="webservices.phtml" hash="44197706123f54d5c2e17475cd64b9f1"/></dir></dir></dir></dir></dir></dir></dir><dir name="etc"><dir name="modules"><file name="Speedinfo_Opensi.xml" hash="16cc3fbf8e32ce7b8add016bfbc89c5f"/></dir></dir><dir name="locale"><dir name="fr_FR"><file name="Speedinfo_OpenSi.csv" hash="51f46b50056059d178766fa9111fe072"/></dir></dir></dir></target><target name="magecommunity"><dir name="Speedinfo"><dir name="Opensi"><dir name="Block"><dir name="Adminhtml"><dir name="Edit"><dir name="Tab"><file name="Attributs.php" hash="562e895af0d5f2a1cffa1be63d0b5fa4"/><file name="Familles.php" hash="317e2361f1dcb6c494ca9ab6bf0d5cae"/><file name="General.php" hash="485e888e215dde1762a42d147cced3e1"/><file name="Webservices.php" hash="09ccc564f6ba4e7cbb58e0357c43e035"/></dir><file name="Form.php" hash="3ce2dc7af0ec4c5a44178ac46d6178a8"/></dir><file name="Edit.php" hash="b91602dd06e9432d879db352fa2aaeaa"/><file name="Grid.php" hash="6ace416ae5264fed2bbc57aa5d152e6e"/><file name="Tabs.php" hash="4383dd11c3e1fffe43868e489f6b977f"/></dir></dir><dir name="controllers"><file name="IndexController.php" hash="9754ad25b294a0306d4e28090bf9e4cb"/></dir><dir name="etc"><file name="config.xml" hash="185446cd123b9187465cb78350a35896"/></dir><dir name="Helper"><file name="Data.php" hash="b5798cdae9319b34ada4c3de5964c0b4"/></dir><dir name="Model"><dir name="Mysql4"><dir name="Errorlog"><file name="Collection.php" hash="ad19bb95ad5e56f0dcaeff4db10cf52f"/></dir><dir name="Webservice"><file name="Collection.php" hash="3a5e5d973ffb834d4eadec4f9335b36e"/></dir><file name="Client.php" hash="0b47754c6aace0dc54340dfd807eb17a"/><file name="Errorlog.php" hash="9a8c882377bbdeada65c7c5d8346af35"/><file name="Webservice.php" hash="781eb93e76ba8bffe881f091904d0f98"/></dir><file name="Client.php" hash="f89aeb3dda8d8a27bf6a05e5082a945e"/><file name="Cron.php" hash="c2dccdfb120a3d8639ff88523c1e655e"/><file name="Errorlog.php" hash="d269ec20ae481684a1daa2c515848252"/><file name="Webservice.php" hash="c77708c3507d79a83e64a1801ea255c2"/><file name="Webservices.php" hash="b7fedf4d9a87391314c5899d285b53c7"/></dir><dir name="sql"><dir name="opensi_setup"><file name="mysql4-install-0.1.0.php" hash="ce8cef17aac76ccfadf09d7d84d23841"/><file name="mysql4-upgrade-0.2.0-0.2.1.php" hash="f207b0704a6cad542dced6b40ac25341"/><file name="mysql4-upgrade-0.2.4-0.2.5.php" hash="99fcd03734f514441005dd8af5c22809"/></dir></dir></dir></dir></target></contents>
20
  <compatible/>
21
  <dependencies/>
22
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Speedinfo_Opensi</name>
4
+ <version>0.3.8</version>
5
  <stability>stable</stability>
6
  <license>GPL</license>
7
  <channel>community</channel>
10
  <description>Le module OpenSi Connect vous permet de coupler Magento au logiciel de gestion commerciale et de comptabilit&#xE9; OpenSi E-Commerce.
11
  Speedinfo a con&#xE7;u un connecteur pour OpenSi E-Commerce et Magento sous la forme du module OpenSi Connect
12
  OpenSi E-Commerce, est un logiciel de gestion commerciale et de comptabilit&#xE9; d&#xE9;di&#xE9; &#xE0; l'e-commerce.</description>
13
+ <notes>Mise &#xE0; jour du module vers la version 0.3.8
14
+ Ajout de la gestion des multi-tarif et des statuts de commandes
15
  Pour plus d'informations, se r&#xE9;f&#xE9;rer &#xE0; la documentation.</notes>
16
  <authors><author><name>Dray</name><user>auto-converted</user><email>rony.dray@speedinfo.fr</email></author></authors>
17
+ <date>2011-10-19</date>
18
+ <time>08:58:17</time>
19
+ <contents><target name="mage"><dir name="app"><dir name="design"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="opensi"><dir name="tab"><file name="webservices.phtml" hash="44197706123f54d5c2e17475cd64b9f1"/></dir></dir></dir></dir></dir></dir></dir><dir name="etc"><dir name="modules"><file name="Speedinfo_Opensi.xml" hash="16cc3fbf8e32ce7b8add016bfbc89c5f"/></dir></dir><dir name="locale"><dir name="fr_FR"><file name="Speedinfo_OpenSi.csv" hash="5f9588a7c9400f4b4f2a9918aa982280"/></dir></dir></dir></target><target name="magecommunity"><dir name="Speedinfo"><dir name="Opensi"><dir name="Block"><dir name="Adminhtml"><dir name="Edit"><dir name="Tab"><file name="Attributs.php" hash="dc90c116fb478dfdf5ba32d5ad74b57b"/><file name="Familles.php" hash="317e2361f1dcb6c494ca9ab6bf0d5cae"/><file name="General.php" hash="485e888e215dde1762a42d147cced3e1"/><file name="OrdersStatus.php" hash="729eae4fb730f4248fa7438e15265b87"/><file name="Prices.php" hash="4f453dc3851c11ede9abbb796efae4ba"/><file name="Webservices.php" hash="09ccc564f6ba4e7cbb58e0357c43e035"/></dir><file name="Form.php" hash="3ce2dc7af0ec4c5a44178ac46d6178a8"/></dir><file name="Edit.php" hash="b91602dd06e9432d879db352fa2aaeaa"/><file name="Grid.php" hash="6ace416ae5264fed2bbc57aa5d152e6e"/><file name="Tabs.php" hash="927e3f9077573fcc0d43825527139954"/></dir></dir><dir name="controllers"><file name="IndexController.php" hash="0b5785aa403bd98974834f2115314d00"/></dir><dir name="etc"><file name="config.xml" hash="c75f2e985560c532e3b6a5235c00eeb0"/></dir><dir name="Helper"><file name="Data.php" hash="b5798cdae9319b34ada4c3de5964c0b4"/></dir><dir name="Model"><dir name="Mysql4"><dir name="Errorlog"><file name="Collection.php" hash="ad19bb95ad5e56f0dcaeff4db10cf52f"/></dir><dir name="Webservice"><file name="Collection.php" hash="3a5e5d973ffb834d4eadec4f9335b36e"/></dir><file name="Client.php" hash="0b47754c6aace0dc54340dfd807eb17a"/><file name="Errorlog.php" hash="9a8c882377bbdeada65c7c5d8346af35"/><file name="Webservice.php" hash="781eb93e76ba8bffe881f091904d0f98"/></dir><file name="Client.php" hash="f89aeb3dda8d8a27bf6a05e5082a945e"/><file name="Cron.php" hash="c2dccdfb120a3d8639ff88523c1e655e"/><file name="Errorlog.php" hash="d269ec20ae481684a1daa2c515848252"/><file name="Webservice.php" hash="c77708c3507d79a83e64a1801ea255c2"/><file name="Webservices.php" hash="46cee52bec4ba862a4886a690db79e4d"/></dir><dir name="sql"><dir name="opensi_setup"><file name="mysql4-install-0.1.0.php" hash="ce8cef17aac76ccfadf09d7d84d23841"/><file name="mysql4-upgrade-0.2.0-0.2.1.php" hash="f207b0704a6cad542dced6b40ac25341"/><file name="mysql4-upgrade-0.2.4-0.2.5.php" hash="99fcd03734f514441005dd8af5c22809"/><file name="mysql4-upgrade-0.3.7-0.3.8.php" hash="86bb9fffb78d2e3d5e6fa7dd3e1175dd"/></dir></dir></dir></dir></target></contents>
20
  <compatible/>
21
  <dependencies/>
22
  </package>