Profileolabs_Shoppingflux - Version 0.7.5

Version Notes

- Minor bugfixes & improvements

Download this release

Release Info

Developer ShoppingFlux
Extension Profileolabs_Shoppingflux
Version 0.7.5
Comparing to
See all releases


Code changes from version 0.7.4 to 0.7.5

app/code/community/Profileolabs/Shoppingflux/Block/Export/Adminhtml/Product/Grid.php CHANGED
@@ -31,7 +31,7 @@ class Profileolabs_Shoppingflux_Block_Export_Adminhtml_Product_Grid extends Mage
31
  protected function _prepareCollection()
32
  {
33
  $store = $this->_getStore();
34
- $collection = Mage::getModel('catalog/product')->getCollection()
35
  ->addAttributeToSelect('sku')
36
  ->addAttributeToSelect('name')
37
  ->addAttributeToSelect('shoppingflux_product')
31
  protected function _prepareCollection()
32
  {
33
  $store = $this->_getStore();
34
+ $collection = Mage::getModel('profileolabs_shoppingflux/catalog_product_collection')
35
  ->addAttributeToSelect('sku')
36
  ->addAttributeToSelect('name')
37
  ->addAttributeToSelect('shoppingflux_product')
app/code/community/Profileolabs/Shoppingflux/Helper/Data.php CHANGED
@@ -235,11 +235,13 @@ class Profileolabs_Shoppingflux_Helper_Data extends Mage_Core_Helper_Abstract {
235
  }
236
 
237
  protected $_categoriesWithParents = null;
238
- public function getCategoriesWithParents($key = false, $storeId=null) {
239
 
240
 
241
  if(is_null($this->_categoriesWithParents)) {
242
  $mageCacheKey = 'shoppingflux_category_list' . (Mage::app()->getStore()->isAdmin() ? '_admin'.intval($storeId) : '_' . intval($storeId)) ;
 
 
243
  $cacheTags = array(Mage_Catalog_Model_Category::CACHE_TAG, 'shoppingflux');
244
  $this->_categoriesWithParents = unserialize(Mage::app()->loadCache($mageCacheKey));
245
  if (!$this->_categoriesWithParents) {
@@ -254,7 +256,14 @@ class Profileolabs_Shoppingflux_Helper_Data extends Mage_Core_Helper_Abstract {
254
  ->addAttributeToFilter('entity_id', array('neq' => 1))
255
  ->addAttributeToSort('path', 'ASC')
256
  ->addAttributeToSort('name', 'ASC');
257
-
 
 
 
 
 
 
 
258
  if(!Mage::getSingleton('profileolabs_shoppingflux/config')->getUseAllStoreCategories()) {
259
  $categories
260
  ->addAttributeToFilter('entity_id', array('neq' => $rootCategoryId));
@@ -320,7 +329,7 @@ class Profileolabs_Shoppingflux_Helper_Data extends Mage_Core_Helper_Abstract {
320
  $notification = Mage::getModel('adminnotification/inbox');
321
  $notification->setseverity(Mage_AdminNotification_Model_Inbox::SEVERITY_CRITICAL);
322
  $notification->setTitle(Mage::helper('profileolabs_shoppingflux')->__('Shoppingflux alert'));
323
- $notification->setDateAdded(date('Y-m-d H:i:s'));
324
  $notification->setDescription(Mage::helper('profileolabs_shoppingflux')->__('Shoppingflux alert : <br/> %s', $message));
325
  $notification->save();
326
  } catch (Exception $e) {
235
  }
236
 
237
  protected $_categoriesWithParents = null;
238
+ public function getCategoriesWithParents($key = false, $storeId=null, $withInactive=false, $withNotInMenu=true) {
239
 
240
 
241
  if(is_null($this->_categoriesWithParents)) {
242
  $mageCacheKey = 'shoppingflux_category_list' . (Mage::app()->getStore()->isAdmin() ? '_admin'.intval($storeId) : '_' . intval($storeId)) ;
243
+ $mageCacheKey .= $withInactive?'_inactive_':'_active_';
244
+ $mageCacheKey .= $withNotInMenu?'all':'inmenu';
245
  $cacheTags = array(Mage_Catalog_Model_Category::CACHE_TAG, 'shoppingflux');
246
  $this->_categoriesWithParents = unserialize(Mage::app()->loadCache($mageCacheKey));
247
  if (!$this->_categoriesWithParents) {
256
  ->addAttributeToFilter('entity_id', array('neq' => 1))
257
  ->addAttributeToSort('path', 'ASC')
258
  ->addAttributeToSort('name', 'ASC');
259
+
260
+ if(!$withInactive) {
261
+ $categories->addFieldToFilter('is_active', array('eq'=>'1'));
262
+ }
263
+ if(!$withNotInMenu) {
264
+ $categories->addFieldToFilter('include_in_menu', array('eq'=>'1'));
265
+ }
266
+
267
  if(!Mage::getSingleton('profileolabs_shoppingflux/config')->getUseAllStoreCategories()) {
268
  $categories
269
  ->addAttributeToFilter('entity_id', array('neq' => $rootCategoryId));
329
  $notification = Mage::getModel('adminnotification/inbox');
330
  $notification->setseverity(Mage_AdminNotification_Model_Inbox::SEVERITY_CRITICAL);
331
  $notification->setTitle(Mage::helper('profileolabs_shoppingflux')->__('Shoppingflux alert'));
332
+ $notification->setDateAdded(date('Y-m-d H:i:s', Mage::getModel('core/date')->timestamp(time())));
333
  $notification->setDescription(Mage::helper('profileolabs_shoppingflux')->__('Shoppingflux alert : <br/> %s', $message));
334
  $notification->save();
335
  } catch (Exception $e) {
app/code/community/Profileolabs/Shoppingflux/Model/Catalog/Product/Collection.php ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Shopping Flux Service
5
+ * @category ShoppingFlux
6
+ * @package Profileolabs_Shoppingflux
7
+ * @author vincent enjalbert @ web-cooking.net
8
+ */
9
+ class Profileolabs_Shoppingflux_Model_Catalog_Product_Collection extends Mage_Catalog_Model_Resource_Product_Collection {
10
+
11
+ /* WebCooking Fix to rewrite Varien_Data_Collection_Db::getSize() in order to solve pagination error caused by the groupBy clause */
12
+ public function getSize() {
13
+ if (is_null($this->_totalRecords)) {
14
+ $sql = $this->getSelectCountSql();
15
+
16
+ $result = $this->getConnection()->fetchAll($sql, $this->_bindParams);
17
+
18
+
19
+ foreach ($result as $row) {
20
+ $this->_totalRecords += reset($row);
21
+ }
22
+ }
23
+ return intval($this->_totalRecords);
24
+ }
25
+
26
+ }
app/code/community/Profileolabs/Shoppingflux/Model/Config.php CHANGED
@@ -248,6 +248,15 @@ class Profileolabs_Shoppingflux_Model_Config extends Varien_Object {
248
  $shippingMethod = Mage::getStoreConfig('shoppingflux_mo/advanced_shipping_method/' . $sfShippingMethodCode, $storeId);
249
  return $shippingMethod?$shippingMethod:($marketplaceShippingMode?$marketplaceShippingMode:$defaultShippingMethod);
250
  }
 
 
 
 
 
 
 
 
 
251
 
252
  /**
253
  * Retrieve if we must to create invoice
248
  $shippingMethod = Mage::getStoreConfig('shoppingflux_mo/advanced_shipping_method/' . $sfShippingMethodCode, $storeId);
249
  return $shippingMethod?$shippingMethod:($marketplaceShippingMode?$marketplaceShippingMode:$defaultShippingMethod);
250
  }
251
+
252
+ public function getShipmentUpdateLimit($storeId=null) {
253
+ $nbHours = Mage::getStoreConfig('shoppingflux_mo/shipment_update/limit_hours', $storeId);
254
+ $nbHours = intval($nbHours);
255
+ if(!$nbHours) {
256
+ return date('Y-m-d H:i:s', strtotime('-20 minutes'));
257
+ }
258
+ return date('Y-m-d H:i:s', strtotime('-'.$nbHours.' hours'));
259
+ }
260
 
261
  /**
262
  * Retrieve if we must to create invoice
app/code/community/Profileolabs/Shoppingflux/Model/Export/Flux.php CHANGED
@@ -109,17 +109,31 @@ class Profileolabs_Shoppingflux_Model_Export_Flux extends Mage_Core_Model_Abstra
109
  public function updateFlux($store_id = false, $maxImportLimit = 500, $shouldExportOnly = false) {
110
  foreach (Mage::app()->getStores() as $store) {
111
  $storeId = $store->getId();
 
112
  if (!$store_id || $store_id == $storeId) {
113
- $collection = Mage::getModel('profileolabs_shoppingflux/export_flux')->getCollection();
114
- $collection->addFieldToFilter('update_needed', 1);
115
- $collection->addFieldToFilter('store_id', $storeId);
116
- if ($shouldExportOnly) {
117
- $collection->addFieldToFilter('should_export', 1);
118
  }
119
- foreach ($collection as $item) {
120
- $this->updateProductInFlux($item->getSku(), $storeId);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
121
  }
122
- $this->checkForMissingProducts($storeId, $maxImportLimit);
123
  }
124
  }
125
  }
@@ -178,19 +192,22 @@ class Profileolabs_Shoppingflux_Model_Export_Flux extends Mage_Core_Model_Abstra
178
 
179
  protected $_attributes = array();
180
 
181
- protected function _getAttribute($attributeCode) {
182
  if (!isset($this->_attributes[$attributeCode])) {
183
  $this->_attributes[$attributeCode] = Mage::getSingleton('eav/config')->getAttribute('catalog_product', $attributeCode);
 
 
 
184
  }
185
  return $this->_attributes[$attributeCode];
186
  }
187
 
188
- protected function _getAttributeDataForProduct($nameNode, $attributeCode, $product) {
189
  $_helper = Mage::helper('catalog/output');
190
 
191
  $data = $product->getData($attributeCode);
192
 
193
- $attribute = $this->_getAttribute($attributeCode);
194
  if ($attribute) {
195
  if ($attribute->getFrontendInput() == 'date') {
196
  return $data;
@@ -275,7 +292,7 @@ class Profileolabs_Shoppingflux_Model_Export_Flux extends Mage_Core_Model_Abstra
275
  $fluxEntry = Mage::getModel('profileolabs_shoppingflux/export_flux')->getEntry($productSku, $storeId);
276
  $fluxEntry->setShouldExport(0);
277
  $fluxEntry->setUpdateNeeded(0);
278
- $fluxEntry->setUpdatedAt(date('Y-m-d H:i:s'));
279
  $fluxEntry->save();
280
  return;
281
  }
@@ -285,7 +302,7 @@ class Profileolabs_Shoppingflux_Model_Export_Flux extends Mage_Core_Model_Abstra
285
  $fluxEntry = Mage::getModel('profileolabs_shoppingflux/export_flux')->getEntry($product->getSku(), $storeId);
286
  $fluxEntry->setShouldExport(0);
287
  $fluxEntry->setUpdateNeeded(0);
288
- $fluxEntry->setUpdatedAt(date('Y-m-d H:i:s'));
289
  $fluxEntry->save();
290
  return;
291
  }
@@ -310,7 +327,7 @@ class Profileolabs_Shoppingflux_Model_Export_Flux extends Mage_Core_Model_Abstra
310
  );
311
 
312
  foreach ($this->getConfig()->getMappingAllAttributes($storeId) as $nameNode => $code) {
313
- $data[$nameNode] = $this->_getAttributeDataForProduct($nameNode, $code, $product); //trim($xmlObj->extractData($nameNode, $code, $product));
314
  }
315
 
316
  //Varien_Profiler::start("SF::Flux::getPrices");
@@ -333,7 +350,7 @@ class Profileolabs_Shoppingflux_Model_Export_Flux extends Mage_Core_Model_Abstra
333
  //Varien_Profiler::start("SF::Flux::getAdditionalAttributes");
334
  foreach ($this->getConfig()->getAdditionalAttributes() as $attributeCode) {
335
  if ($attributeCode) {
336
- $data[$attributeCode] = $this->_getAttributeDataForProduct($attributeCode, $attributeCode, $product);
337
  }
338
  }
339
 
@@ -359,7 +376,7 @@ class Profileolabs_Shoppingflux_Model_Export_Flux extends Mage_Core_Model_Abstra
359
  //Varien_Profiler::stop("SF::Flux::addEntry2");
360
  //Varien_Profiler::start("SF::Flux::saveProductFlux");
361
  $fluxEntry = Mage::getModel('profileolabs_shoppingflux/export_flux')->getEntry($product->getSku(), $storeId);
362
- $fluxEntry->setUpdatedAt(date('Y-m-d H:i:s'));
363
  $fluxEntry->setXml($xml);
364
  $fluxEntry->setUpdateNeeded(0);
365
  $fluxEntry->setStockValue($product->getStockItem()->getQty());
@@ -478,8 +495,8 @@ class Profileolabs_Shoppingflux_Model_Export_Flux extends Mage_Core_Model_Abstra
478
 
479
  $data['category-breadcrumb'] = trim(implode(' > ', $categoryNames));
480
 
481
- $data["category-main"] = trim($categoryNames[0]);
482
- $data["category-url-main"] = $categoryUrls[0];
483
 
484
 
485
  for ($i = 1; $i <= 5; $i++) {
@@ -507,7 +524,7 @@ class Profileolabs_Shoppingflux_Model_Export_Flux extends Mage_Core_Model_Abstra
507
  if (!$this->getConfig()->getUseOnlySFCategory()) {
508
  $rootCategoryId = Mage::app()->getStore($product->getStoreId())->getRootCategoryId();
509
 
510
- $categoryWithParents = Mage::helper('profileolabs_shoppingflux')->getCategoriesWithParents(false, $product->getStoreId());
511
  $maxLevelCategory = $this->getConfig()->getMaxCategoryLevel()>0?$this->getConfig()->getMaxCategoryLevel():5;
512
 
513
  /*$productCategoryCollection = $product->getCategoryCollection()
@@ -563,37 +580,50 @@ class Profileolabs_Shoppingflux_Model_Export_Flux extends Mage_Core_Model_Abstra
563
 
564
  unset($productCategoryCollection);*/
565
 
 
566
  $productCategoryIds = $product->getCategoryIds();
 
 
567
  foreach($productCategoryIds as $productCategoryId) {
568
  if(isset($categoryWithParents['name'][$productCategoryId])) {
569
  $categoryNames = explode(' > ', $categoryWithParents['name'][$productCategoryId]);
570
- $categoryUrls = explode(' > ', $categoryWithParents['url'][$productCategoryId]);
571
- //we drop root category, which is useless here
572
- array_shift($categoryNames);
573
- array_shift($categoryUrls);
574
- $categoryNames = array_slice($categoryNames, 0, $maxLevelCategory, true);
575
- $categoryUrls = array_slice($categoryUrls, 0, $maxLevelCategory, true);
576
- $data['category-breadcrumb'] = trim(implode(' > ', $categoryNames));
577
-
578
- $data["category-main"] = trim($categoryNames[0]);
579
- $data["category-url-main"] = $categoryUrls[0];
580
-
581
-
582
- for ($i = 1; $i <= 5; $i++) {
583
- if (isset($categoryNames[$i])) {
584
- $data["category-sub-" . ($i)] = trim($categoryNames[$i]);
585
- } else {
586
- $data["category-sub-" . ($i)] = '';
587
- }
588
- if (isset($categoryUrls[$i])) {
589
- $data["category-url-sub-" . ($i)] = $categoryUrls[$i];
590
- } else {
591
- $data["category-url-sub-" . ($i)] = '';
592
- }
 
 
 
 
 
 
 
 
593
  }
594
- break;
595
  }
596
  }
 
 
 
597
 
598
  }
599
 
@@ -890,7 +920,7 @@ class Profileolabs_Shoppingflux_Model_Export_Flux extends Mage_Core_Model_Abstra
890
  }
891
 
892
  foreach ($attributesFromConfig as $nameNode => $attributeCode) {
893
- $usedProductsArray[$usedProduct->getId()]['child'][$nameNode] = $this->_getAttributeDataForProduct($nameNode, $attributeCode, $usedProduct); //$xmlObj->extractData($nameNode, $attributeCode, $usedProduct);
894
  }
895
 
896
 
109
  public function updateFlux($store_id = false, $maxImportLimit = 500, $shouldExportOnly = false) {
110
  foreach (Mage::app()->getStores() as $store) {
111
  $storeId = $store->getId();
112
+ $isCurrentStore = (Mage::app()->getStore()->getId() == $storeId);
113
  if (!$store_id || $store_id == $storeId) {
114
+ if(!$isCurrentStore) {
115
+ $appEmulation = Mage::getSingleton('core/app_emulation');
116
+ $initialEnvironmentInfo = $appEmulation->startEnvironmentEmulation($storeId);
 
 
117
  }
118
+ try {
119
+ $collection = Mage::getModel('profileolabs_shoppingflux/export_flux')->getCollection();
120
+ $collection->addFieldToFilter('update_needed', 1);
121
+ $collection->addFieldToFilter('store_id', $storeId);
122
+ if ($shouldExportOnly) {
123
+ $collection->addFieldToFilter('should_export', 1);
124
+ }
125
+ foreach ($collection as $item) {
126
+ $this->updateProductInFlux($item->getSku(), $storeId);
127
+ }
128
+ $this->checkForMissingProducts($storeId, $maxImportLimit);
129
+ if(!$isCurrentStore) {
130
+ $appEmulation->stopEnvironmentEmulation($initialEnvironmentInfo);
131
+ }
132
+ } catch(Exception $e) {
133
+ if(!$isCurrentStore) {
134
+ $appEmulation->stopEnvironmentEmulation($initialEnvironmentInfo);
135
+ }
136
  }
 
137
  }
138
  }
139
  }
192
 
193
  protected $_attributes = array();
194
 
195
+ protected function _getAttribute($attributeCode, $storeId=null) {
196
  if (!isset($this->_attributes[$attributeCode])) {
197
  $this->_attributes[$attributeCode] = Mage::getSingleton('eav/config')->getAttribute('catalog_product', $attributeCode);
198
+ if($storeId) {
199
+ $this->_attributes[$attributeCode]->setStoreId($storeId);
200
+ }
201
  }
202
  return $this->_attributes[$attributeCode];
203
  }
204
 
205
+ protected function _getAttributeDataForProduct($nameNode, $attributeCode, $product, $storeId=null) {
206
  $_helper = Mage::helper('catalog/output');
207
 
208
  $data = $product->getData($attributeCode);
209
 
210
+ $attribute = $this->_getAttribute($attributeCode, $storeId);
211
  if ($attribute) {
212
  if ($attribute->getFrontendInput() == 'date') {
213
  return $data;
292
  $fluxEntry = Mage::getModel('profileolabs_shoppingflux/export_flux')->getEntry($productSku, $storeId);
293
  $fluxEntry->setShouldExport(0);
294
  $fluxEntry->setUpdateNeeded(0);
295
+ $fluxEntry->setUpdatedAt(date('Y-m-d H:i:s', Mage::getModel('core/date')->timestamp(time())));
296
  $fluxEntry->save();
297
  return;
298
  }
302
  $fluxEntry = Mage::getModel('profileolabs_shoppingflux/export_flux')->getEntry($product->getSku(), $storeId);
303
  $fluxEntry->setShouldExport(0);
304
  $fluxEntry->setUpdateNeeded(0);
305
+ $fluxEntry->setUpdatedAt(date('Y-m-d H:i:s', Mage::getModel('core/date')->timestamp(time())));
306
  $fluxEntry->save();
307
  return;
308
  }
327
  );
328
 
329
  foreach ($this->getConfig()->getMappingAllAttributes($storeId) as $nameNode => $code) {
330
+ $data[$nameNode] = $this->_getAttributeDataForProduct($nameNode, $code, $product, $storeId); //trim($xmlObj->extractData($nameNode, $code, $product));
331
  }
332
 
333
  //Varien_Profiler::start("SF::Flux::getPrices");
350
  //Varien_Profiler::start("SF::Flux::getAdditionalAttributes");
351
  foreach ($this->getConfig()->getAdditionalAttributes() as $attributeCode) {
352
  if ($attributeCode) {
353
+ $data[$attributeCode] = $this->_getAttributeDataForProduct($attributeCode, $attributeCode, $product, $storeId);
354
  }
355
  }
356
 
376
  //Varien_Profiler::stop("SF::Flux::addEntry2");
377
  //Varien_Profiler::start("SF::Flux::saveProductFlux");
378
  $fluxEntry = Mage::getModel('profileolabs_shoppingflux/export_flux')->getEntry($product->getSku(), $storeId);
379
+ $fluxEntry->setUpdatedAt(date('Y-m-d H:i:s', Mage::getModel('core/date')->timestamp(time())));
380
  $fluxEntry->setXml($xml);
381
  $fluxEntry->setUpdateNeeded(0);
382
  $fluxEntry->setStockValue($product->getStockItem()->getQty());
495
 
496
  $data['category-breadcrumb'] = trim(implode(' > ', $categoryNames));
497
 
498
+ $data["category-main"] = isset($categoryNames[0])?trim($categoryNames[0]):'';
499
+ $data["category-url-main"] = isset($categoryUrls[0])?$categoryUrls[0]:'';
500
 
501
 
502
  for ($i = 1; $i <= 5; $i++) {
524
  if (!$this->getConfig()->getUseOnlySFCategory()) {
525
  $rootCategoryId = Mage::app()->getStore($product->getStoreId())->getRootCategoryId();
526
 
527
+ $categoryWithParents = Mage::helper('profileolabs_shoppingflux')->getCategoriesWithParents(false, $product->getStoreId(), false, false);
528
  $maxLevelCategory = $this->getConfig()->getMaxCategoryLevel()>0?$this->getConfig()->getMaxCategoryLevel():5;
529
 
530
  /*$productCategoryCollection = $product->getCategoryCollection()
580
 
581
  unset($productCategoryCollection);*/
582
 
583
+ //Selection of the deepest category
584
  $productCategoryIds = $product->getCategoryIds();
585
+ $choosenProductCategoryId = false;
586
+ $choosenCategoryLevel = 0;
587
  foreach($productCategoryIds as $productCategoryId) {
588
  if(isset($categoryWithParents['name'][$productCategoryId])) {
589
  $categoryNames = explode(' > ', $categoryWithParents['name'][$productCategoryId]);
590
+ if(count($categoryNames) > $choosenCategoryLevel) {
591
+ $choosenProductCategoryId = $productCategoryId;
592
+ }
593
+ }
594
+ }
595
+
596
+ //Adding the deepest category to breadcrumb
597
+ if($choosenProductCategoryId) {
598
+ $categoryNames = explode(' > ', $categoryWithParents['name'][$choosenProductCategoryId]);
599
+ $categoryUrls = explode(' > ', $categoryWithParents['url'][$choosenProductCategoryId]);
600
+ //we drop root category, which is useless here
601
+ array_shift($categoryNames);
602
+ array_shift($categoryUrls);
603
+ $categoryNames = array_slice($categoryNames, 0, $maxLevelCategory, true);
604
+ $categoryUrls = array_slice($categoryUrls, 0, $maxLevelCategory, true);
605
+ $data['category-breadcrumb'] = trim(implode(' > ', $categoryNames));
606
+
607
+ $data["category-main"] = trim($categoryNames[0]);
608
+ $data["category-url-main"] = $categoryUrls[0];
609
+
610
+
611
+ for ($i = 1; $i <= 5; $i++) {
612
+ if (isset($categoryNames[$i])) {
613
+ $data["category-sub-" . ($i)] = trim($categoryNames[$i]);
614
+ } else {
615
+ $data["category-sub-" . ($i)] = '';
616
+ }
617
+ if (isset($categoryUrls[$i])) {
618
+ $data["category-url-sub-" . ($i)] = $categoryUrls[$i];
619
+ } else {
620
+ $data["category-url-sub-" . ($i)] = '';
621
  }
 
622
  }
623
  }
624
+
625
+
626
+
627
 
628
  }
629
 
920
  }
921
 
922
  foreach ($attributesFromConfig as $nameNode => $attributeCode) {
923
+ $usedProductsArray[$usedProduct->getId()]['child'][$nameNode] = $this->_getAttributeDataForProduct($nameNode, $attributeCode, $usedProduct, $storeId); //$xmlObj->extractData($nameNode, $attributeCode, $usedProduct);
924
  }
925
 
926
 
app/code/community/Profileolabs/Shoppingflux/Model/Export/Observer.php CHANGED
@@ -142,7 +142,6 @@ class Profileolabs_Shoppingflux_Model_Export_Observer {
142
  $products = array_keys($products);
143
  if (!empty($products)) {
144
  $currentVersion = Mage::getVersion();
145
- /* if (version_compare($currentVersion, '1.4.0') < 0) { */
146
  $product = Mage::getModel('catalog/product');
147
  foreach ($products as $productId) {
148
 
@@ -160,16 +159,15 @@ class Profileolabs_Shoppingflux_Model_Export_Observer {
160
  $dataChanged = $product->dataHasChangedFor('shoppingflux_default_category');
161
 
162
  if ($dataChanged) {
163
- $product->save();
 
 
 
 
 
 
164
  }
165
  }
166
- // This method may be faster alone, but put all updated products to "Need Update" even if no changes
167
- /* } else {
168
- Mage::getSingleton('catalog/product_action')
169
- ->updateAttributes($products, array('shoppingflux_default_category' => $category->getId()), $storeId);
170
-
171
- //var_dump($products);die();
172
- } */
173
  }
174
  }
175
 
142
  $products = array_keys($products);
143
  if (!empty($products)) {
144
  $currentVersion = Mage::getVersion();
 
145
  $product = Mage::getModel('catalog/product');
146
  foreach ($products as $productId) {
147
 
159
  $dataChanged = $product->dataHasChangedFor('shoppingflux_default_category');
160
 
161
  if ($dataChanged) {
162
+ if (version_compare($currentVersion, '1.4.0') < 0) {
163
+ $product->save();
164
+ } else {
165
+ //Note: we could use this directly, but it will put all updated products to "Need Update" even if no changes
166
+ Mage::getSingleton('catalog/product_action')
167
+ ->updateAttributes($products, array('shoppingflux_default_category' => $category->getId()), $storeId);
168
+ }
169
  }
170
  }
 
 
 
 
 
 
 
171
  }
172
  }
173
 
app/code/community/Profileolabs/Shoppingflux/Model/Manageorders/Observer.php CHANGED
@@ -86,11 +86,15 @@ class Profileolabs_Shoppingflux_Model_Manageorders_Observer {
86
 
87
  public function sendScheduledShipments() {
88
  $collection = Mage::getModel('profileolabs_shoppingflux/manageorders_export_shipments')->getCollection();
89
- $collection->addFieldToFilter('updated_at', array('lt'=>new Zend_Db_Expr("DATE_SUB('".date('Y-m-d H:i:s')."', INTERVAL 60 MINUTE)")));
90
  foreach($collection as $item) {
91
  try {
92
- $this->sendStatusShipped($item->getShipmentId());
93
- $item->delete();
 
 
 
 
94
  } catch(Exception $e) {
95
  $shipment = Mage::getModel('sales/order_shipment')->load($item->getShipmentId());
96
  $message = 'Erreur de mise à jour de l\'expédition #'.$shipment->getIncrementId().' (commande #'.$shipment->getOrder()->getIncrementId().') : <br/>' . $e->getMessage();
@@ -106,10 +110,11 @@ class Profileolabs_Shoppingflux_Model_Manageorders_Observer {
106
  return $this;
107
  }
108
 
109
- public function sendStatusShipped($shipmentId) {
110
- $shipment = Mage::getModel('sales/order_shipment')->load($shipmentId);
111
  if(!$shipment->getId())
112
  return $this;
 
 
113
  $order = $shipment->getOrder();
114
  $storeId = $order->getStoreId();
115
 
86
 
87
  public function sendScheduledShipments() {
88
  $collection = Mage::getModel('profileolabs_shoppingflux/manageorders_export_shipments')->getCollection();
89
+ //$collection->addFieldToFilter('updated_at', array('lt'=>new Zend_Db_Expr("DATE_SUB('".date('Y-m-d H:i:s', Mage::getModel('core/date')->timestamp(time()))."', INTERVAL 60 MINUTE)")));
90
  foreach($collection as $item) {
91
  try {
92
+ $shipment = Mage::getModel('sales/order_shipment')->load($item->getShipmentId());
93
+ $trakingInfos = $this->getShipmentTrackingNumber($shipment);
94
+ if($trakingInfos || $shipment->getUpdatedAt() < $this->getConfig()->getShipmentUpdateLimit()) {
95
+ $this->sendStatusShipped($shipment);
96
+ $item->delete();
97
+ }
98
  } catch(Exception $e) {
99
  $shipment = Mage::getModel('sales/order_shipment')->load($item->getShipmentId());
100
  $message = 'Erreur de mise à jour de l\'expédition #'.$shipment->getIncrementId().' (commande #'.$shipment->getOrder()->getIncrementId().') : <br/>' . $e->getMessage();
110
  return $this;
111
  }
112
 
113
+ public function sendStatusShipped($shipment) {
 
114
  if(!$shipment->getId())
115
  return $this;
116
+
117
+ $shipmentId = $shipment->getId();
118
  $order = $shipment->getOrder();
119
  $storeId = $order->getStoreId();
120
 
app/code/community/Profileolabs/Shoppingflux/Model/Manageorders/Order.php CHANGED
@@ -592,7 +592,7 @@ class Profileolabs_Shoppingflux_Model_Manageorders_Order extends Varien_Object {
592
 
593
 
594
  $processingStatus = $this->getConfig()->getConfigData('shoppingflux_mo/manageorders/processing_order_status', $order->getStoreId());
595
- if ($processingStatus) {
596
  $order->setStatus($processingStatus);
597
  $order->save();
598
  }
592
 
593
 
594
  $processingStatus = $this->getConfig()->getConfigData('shoppingflux_mo/manageorders/processing_order_status', $order->getStoreId());
595
+ if ($processingStatus && $order->getState() == 'processing') {
596
  $order->setStatus($processingStatus);
597
  $order->save();
598
  }
app/code/community/Profileolabs/Shoppingflux/Model/Manageorders/Shipping/Method.php CHANGED
@@ -39,7 +39,7 @@ class Profileolabs_Shoppingflux_Model_Manageorders_Shipping_Method extends Mage_
39
 
40
  public function saveShippingMethod($marketplace, $shippingMethod) {
41
  $model = $this->loadByMethod($marketplace, $shippingMethod);
42
- $model->setLastSeenAt(date('Y-m-d H:i:s'));
43
  $model->save();
44
  }
45
 
39
 
40
  public function saveShippingMethod($marketplace, $shippingMethod) {
41
  $model = $this->loadByMethod($marketplace, $shippingMethod);
42
+ $model->setLastSeenAt(date('Y-m-d H:i:s', Mage::getModel('core/date')->timestamp(time())));
43
  $model->save();
44
  }
45
 
app/code/community/Profileolabs/Shoppingflux/controllers/Export/FluxController.php CHANGED
@@ -26,7 +26,35 @@ class Profileolabs_Shoppingflux_Export_FluxController extends Mage_Core_Controll
26
  die('Le flux shopping flux sera mis a jour pour ce flux');
27
  }
28
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
29
  public function refreshEverythingAction() {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30
  $write = Mage::getSingleton('core/resource')->getConnection('core_write');
31
  $storeId = Mage::app()->getStore()->getId();
32
  $write->beginTransaction();
26
  die('Le flux shopping flux sera mis a jour pour ce flux');
27
  }
28
 
29
+ public function refreshAllAllStoresAction() {
30
+ $write = Mage::getSingleton('core/resource')->getConnection('core_write');
31
+ $storeId = Mage::app()->getStore()->getId();
32
+ $write->beginTransaction();
33
+ try {
34
+ $query = "update " . Mage::getSingleton('core/resource')->getTableName('profileolabs_shoppingflux/export_flux') . " set update_needed = 1 where should_export = 1";
35
+ $write->query($query);
36
+ $write->commit();
37
+ } catch (Exception $e) {
38
+ $write->rollback();
39
+ }
40
+ die('Le flux shopping flux sera mis a jour pour ce flux');
41
+ }
42
+
43
  public function refreshEverythingAction() {
44
+ $write = Mage::getSingleton('core/resource')->getConnection('core_write');
45
+ $storeId = Mage::app()->getStore()->getId();
46
+ $write->beginTransaction();
47
+ try {
48
+ $query = "update " . Mage::getSingleton('core/resource')->getTableName('profileolabs_shoppingflux/export_flux') . " set update_needed = 1, should_export = 1 where store_id = '" . $storeId . "'";
49
+ $write->query($query);
50
+ $write->commit();
51
+ } catch (Exception $e) {
52
+ $write->rollback();
53
+ }
54
+ die('Le flux shopping flux sera mis a jour pour ce flux');
55
+ }
56
+
57
+ public function refreshEverythingAllStoresAction() {
58
  $write = Mage::getSingleton('core/resource')->getConnection('core_write');
59
  $storeId = Mage::app()->getStore()->getId();
60
  $write->beginTransaction();
app/code/community/Profileolabs/Shoppingflux/etc/config.xml CHANGED
@@ -2,7 +2,7 @@
2
  <config>
3
  <modules>
4
  <Profileolabs_Shoppingflux>
5
- <version>0.7.4</version>
6
  </Profileolabs_Shoppingflux>
7
  </modules>
8
  <admin>
@@ -370,6 +370,9 @@
370
  <processing_order_status>processing</processing_order_status>
371
  <apply_tax>0</apply_tax>
372
  </manageorders>
 
 
 
373
  </shoppingflux_mo>
374
  <payment>
375
  <shoppingflux_purchaseorder>
2
  <config>
3
  <modules>
4
  <Profileolabs_Shoppingflux>
5
+ <version>0.7.5</version>
6
  </Profileolabs_Shoppingflux>
7
  </modules>
8
  <admin>
370
  <processing_order_status>processing</processing_order_status>
371
  <apply_tax>0</apply_tax>
372
  </manageorders>
373
+ <shipment_update>
374
+ <limit_hours>10</limit_hours>
375
+ </shipment_update>
376
  </shoppingflux_mo>
377
  <payment>
378
  <shoppingflux_purchaseorder>
app/code/community/Profileolabs/Shoppingflux/etc/system.xml CHANGED
@@ -133,37 +133,6 @@
133
  <show_in_website>1</show_in_website>
134
  <show_in_store>0</show_in_store>
135
  </processing_order_status>
136
- <!--<import_store>
137
- <label>Import Store</label>
138
- <comment>Orders will be imported in selected store</comment>
139
- <frontend_type>select</frontend_type>
140
- <sort_order>26</sort_order>
141
- <show_in_default>1</show_in_default>
142
- <show_in_website>0</show_in_website>
143
- <show_in_store>0</show_in_store>
144
- <source_model>adminhtml/system_config_source_store</source_model>
145
- </import_store>-->
146
- <!--<apply_tax>
147
- <label>Apply tax</label>
148
- <comment><![CDATA[Calculation of tax when order is created.<b style='color:red'>Do not active if you sell your products Excl. Tax</b>]]>
149
- </comment>
150
- <frontend_type>select</frontend_type>
151
- <sort_order>27</sort_order>
152
- <show_in_default>1</show_in_default>
153
- <show_in_website>1</show_in_website>
154
- <show_in_store>1</show_in_store>
155
- <source_model>adminhtml/system_config_source_yesno</source_model>
156
- </apply_tax>)-->
157
- <!-- <is_test>
158
- <label>Test</label>
159
- <frontend_type>select</frontend_type>
160
- <source_model>adminhtml/system_config_source_yesno</source_model>
161
- <comment>Si oui, la requête se fait su l'url test de shopping flux</comment>
162
- <sort_order>30</sort_order>
163
- <show_in_default>1</show_in_default>
164
- <show_in_website>0</show_in_website>
165
- <show_in_store>0</show_in_store>
166
- </is_test> -->
167
  </fields>
168
  </manageorders>
169
  <import_customer translate="label" module="profileolabs_shoppingflux">
@@ -701,6 +670,24 @@
701
  <show_in_store>1</show_in_store>
702
  <sort_order>4</sort_order>
703
  </advanced_shipping_method>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
704
  </groups>
705
  </shoppingflux_mo>
706
  <shoppingflux_export translate="label" module="profileolabs_shoppingflux">
133
  <show_in_website>1</show_in_website>
134
  <show_in_store>0</show_in_store>
135
  </processing_order_status>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
136
  </fields>
137
  </manageorders>
138
  <import_customer translate="label" module="profileolabs_shoppingflux">
670
  <show_in_store>1</show_in_store>
671
  <sort_order>4</sort_order>
672
  </advanced_shipping_method>
673
+ <shipment_update translate="label" module="profileolabs_shoppingflux">
674
+ <label>Shipment Update</label>
675
+ <show_in_default>1</show_in_default>
676
+ <show_in_website>1</show_in_website>
677
+ <show_in_store>1</show_in_store>
678
+ <sort_order>5</sort_order>
679
+ <fields>
680
+ <limit_hours>
681
+ <label>Max time before sending shipment update to marketplace</label>
682
+ <comment>In hours. If the shipment has still not any tracking number filled after X hours, the shipment is sent to the marketplace without tracking number.</comment>
683
+ <frontend_type>text</frontend_type>
684
+ <sort_order>10</sort_order>
685
+ <show_in_default>1</show_in_default>
686
+ <show_in_website>1</show_in_website>
687
+ <show_in_store>1</show_in_store>
688
+ </limit_hours>
689
+ </fields>
690
+ </shipment_update>
691
  </groups>
692
  </shoppingflux_mo>
693
  <shoppingflux_export translate="label" module="profileolabs_shoppingflux">
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Profileolabs_Shoppingflux</name>
4
- <version>0.7.4</version>
5
  <stability>stable</stability>
6
  <license uri="http://www.opensource.org/licenses/gpl-license.php">GNU General Public License (GPL)</license>
7
  <channel>community</channel>
@@ -11,9 +11,9 @@
11
  <notes>- Minor bugfixes &amp; improvements&#xD;
12
  </notes>
13
  <authors><author><name>ShoppingFlux</name><user>ShoppingFlux</user><email>olivier.levy@gmail.com</email></author></authors>
14
- <date>2014-06-16</date>
15
- <time>07:25:15</time>
16
- <contents><target name="magecommunity"><dir name="Profileolabs"><dir name="Shoppingflux"><dir name="Block"><dir name="Export"><dir name="Adminhtml"><dir name="Catalog"><dir name="Category"><dir name="Edit"><file name="Form.php" hash="da466a657f2b80567ef576711a190805"/></dir><dir name="Tab"><file name="Default.php" hash="7b1c1f77624493bd1017cd3cd71e4bba"/></dir></dir></dir><file name="Feed.php" hash="02274fcb2c95199c826d8e22be5bb16a"/><file name="Process.php" hash="2e5099bf9054280f351ea170ffeb419f"/><dir name="Product"><file name="Grid.php" hash="463fc0fc55a999c1150250159ef5e475"/></dir><file name="Product.php" hash="f71a0d0f25e2484f74f1ceaeee514d3f"/><dir name="Widget"><dir name="Grid"><dir name="Column"><dir name="Renderer"><file name="Bool.php" hash="2717fd3964299bb372c355427c8136d7"/></dir></dir></dir></dir></dir><file name="Flow.php" hash="aed0df354559ecb9d36d3ddf854c301a"/><file name="Flux.php" hash="c592023b56306258439287d28edf6c85"/><file name="Tracking.php" hash="a01f384121dda81f8ee3faa80ee3a32a"/><file name=".DS_Store" hash="194577a7e20bdcc7afbb718f502c134c"/></dir><dir name="Manageorders"><dir name="Adminhtml"><dir name="Cron"><file name="Grid.php" hash="ddfd5d9374446afafef1f545839e869e"/></dir><file name="Cron.php" hash="1a6a4042d3270b56e2dadc80f5c12cfa"/><file name="Import.php" hash="0d675a1731ca646ba57989b8545f4682"/><dir name="Log"><file name="Grid.php" hash="9170b01b3a6d3d558801faeba745390f"/></dir><file name="Log.php" hash="3336bc53002b82b4ab16d18a4e68e0cb"/><dir name="Order"><file name="Grid.php" hash="cdfc7764892dfb6df90f2d56337b448a"/></dir><file name="Order.php" hash="a6d45eb0146fb448f72348724c3151df"/><dir name="System"><dir name="Config"><dir name="Form"><dir name="Fieldset"><dir name="Shipping"><file name="Method.php" hash="e4cca2caf90ef55f13c3d55aff5c72bb"/></dir></dir></dir></dir></dir></dir><dir name="Payment"><dir name="Info"><file name="Purchaseorder.php" hash="df942f5c9a19506ef2bf70ca1d4da809"/></dir></dir></dir><dir name="Tracking"><file name="Buyline.php" hash="a60b19ed533b265a7a2aafe75c03c0fa"/><file name="Roi.php" hash="e34e26dffead694a35798d0397782d55"/></dir></dir><dir name="Helper"><file name="Data.php" hash="4fefcb781dccf27e10a02d4b21d0e9d8"/></dir><dir name="Model"><dir name="Attribute"><dir name="Source"><file name="Category.php" hash="49f1f7959c4741c22bbf79b7e0bd24e7"/></dir></dir><file name="Config.php" hash="3588ccba38be5863b90e5dcb02277818"/><dir name="Export"><dir name="Convert"><dir name="Parser"><file name="Product.php" hash="4e50613b82ba84c35eb87f991645c118"/></dir></dir><file name="Flow.php" hash="46659d199b712b0cd837bc10a05d53f0"/><file name="Flux.php" hash="cac940fab853fd4b890404587a682447"/><file name="Observer.php" hash="f3be6c9578df3150e750ae9e884660c9"/><dir name="Rewrite"><dir name="Catalog"><file name="Config.php" hash="c87b13b0141123b80cb1ac33eaf75715"/></dir><dir name="CatalogInventory"><dir name="Stock"><file name="Item.php" hash="5249964f31fda6d5b7ff9587e713ca81"/></dir></dir></dir><dir name="Source"><file name="Attributes.php" hash="bf113c8f1c7abc94cdabe467a7a1bdd7"/><file name="Attributesprice.php" hash="6cddf3b9562c8dbc56e670b377e341c1"/><dir name="Category"><file name="Level.php" hash="477d3dccefe5720eedc6b5d7a7110c9a"/></dir><file name="Visibility.php" hash="c2a1494bc2e554074d19c58523c450b2"/></dir><file name="Updates.php" hash="6a12528f1ba69f0e0240ba471b471578"/><file name="Xml.php" hash="d6574955d2a108a91c1ebf84feb1b02b"/><file name="Xmlflow.deprecated.php" hash="960d81e05b332cdb16449029b07f0eca"/><file name="Xmlflow.php" hash="82815362cf6b2127ef961be79e48c127"/></dir><dir name="Manageorders"><dir name="Convert"><file name="Customer.php" hash="cab61c630739661f594fdf1fc1193ce8"/></dir><dir name="Export"><file name="Shipments.php" hash="20e617e183366ef5447ea653aa989065"/></dir><file name="Log.php" hash="3ce67bed38c452615ba8cfd51f48cbf3"/><file name="Observer.php" hash="cb5fa21c1e339b0a8963a66aa9efda60"/><file name="Order.php" hash="24dbb279521678da35e991a1976d28f6"/><file name="OrderOLD.php" hash="f25b3ce2d3610eecf201e2d2421aa460"/><dir name="Payment"><dir name="Method"><file name="Purchaseorder.php" hash="4ed46b995590d286b3154e0bbf7ebc63"/></dir></dir><file name="Product.php" hash="0041c5ebcd0aa8ca17f5c1a4f07ec03d"/><dir name="Shipping"><dir name="Carrier"><file name="Shoppingflux.php" hash="1d56b8eac4d74d6f9cce1e8c5a6613bb"/></dir><file name="Method.php" hash="0ebc060042e201b605473ce50bc7aa90"/></dir></dir><dir name="Mysql4"><dir name="Export"><dir name="Flux"><file name="Collection.php" hash="25a6420bb66aeefb6a8ac0a9e6fc538f"/></dir><file name="Flux.php" hash="6140eeee9d40615eaaba736377aba17e"/><dir name="Updates"><file name="Collection.php" hash="21b355b1db82e4b8a5d1950ac2ffbd18"/></dir><file name="Updates.php" hash="02ef11d051020470231e470f3232f862"/></dir><dir name="Manageorders"><dir name="Export"><dir name="Shipments"><file name="Collection.php" hash="fcdf3c607a8d479beb10a53a618aa225"/></dir><file name="Shipments.php" hash="e06dfaf254a5fd3d8649685b56874258"/></dir><dir name="Log"><file name="Collection.php" hash="0efd8c68937edf98cc9f9bb35bd76f79"/></dir><file name="Log.php" hash="b30bbf3ead209d69993546b29f72ecd7"/><dir name="Shipping"><dir name="Method"><file name="Collection.php" hash="7b2c8fb56625953ea8cd79cc7ddcc9df"/></dir><file name="Method.php" hash="a919a6c61ad6ddefd19ffc287eaa7325"/></dir></dir></dir><dir name="Service"><dir name="Http"><dir name="Client"><dir name="Adapter"><file name="Curl.php" hash="659ab165cdd8492fdc7ee08b515732ac"/><file name="Stream.php" hash="c3a61972f5ffb625dba59ba53365965d"/></dir></dir></dir></dir><file name="Service.php" hash="3bbadfa583da0cb1ad46b4d0bebcdcc1"/><dir name="System"><dir name="Config"><dir name="Backend"><file name="Apikey.php" hash="90036cf58c627fcc68920af912171a0c"/><file name="Refresh.php" hash="d53cbdc6ae73c146af67ef5f20d9e4e8"/></dir></dir></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="GeneralController.php" hash="554d7ddd341b073dd566b3ba21f0bd19"/></dir><dir name="Export"><dir name="Adminhtml"><file name="CategoryController.php" hash="d882797e1e0fbff25b312768c6569f04"/><file name="ExportController.php" hash="b496415fe06e284c62692813d8000250"/></dir><file name="FluxController.php" hash="b4f6146a69f35d23bc1b3f29964d9779"/></dir><dir name="Manageorders"><dir name="Adminhtml"><file name="CronController.php" hash="9c43b1b18fb883b4140aaa1d3f82cb1c"/><file name="ImportController.php" hash="22d7190ab3d8374498d922616ba5795a"/><file name="LogController.php" hash="f941a1d2512c2461d614a94682afc8c3"/><file name="OrderController.php" hash="7e64c4b34250a1f949be5414bda7ae86"/></dir></dir></dir><dir name="doc"><file name="doc_module_1.4.pdf" hash="5590a49838bd67f70f0cacf9605cea2b"/></dir><dir name="etc"><file name="adminhtml.xml" hash="c7488b04c573bd896c74198b52211d1f"/><file name="config.xml" hash="f9bafbcd8242d9509c426b5148e17bc0"/><file name="system.xml" hash="771a38b0da6b20a026782b411dfaa4cf"/></dir><dir name="sql"><dir name="profileolabs_shoppingflux_setup"><file name="mysql4-install-0.1.0.php" hash="87c47ba97a55bd71dada152b52736be2"/><file name="mysql4-upgrade-0.1.0-0.1.1.php" hash="0f95646d855413c52928ed4c258aacb1"/><file name="mysql4-upgrade-0.3.13-0.3.14.php" hash="4f6a5399ad06457f0ebf57b33353ebe2"/><file name="mysql4-upgrade-0.3.14-0.3.15.php" hash="6215917eef61544fc6f4193d31956df4"/><file name="mysql4-upgrade-0.3.17-0.3.18.php" hash="112b34baecd80300682bda9ba69c8970"/><file name="mysql4-upgrade-0.4.2-0.4.3.php" hash="2322a9d2b5130bc78699c1953df87a04"/><file name="mysql4-upgrade-0.4.6-0.5.0.php" hash="02be6c02a8c77e642ef3e40ded1ba8be"/><file name="mysql4-upgrade-0.5.1-0.5.2.php" hash="0e5414628efee519deff6aff301651c7"/><file name="mysql4-upgrade-0.5.3-0.5.4.php" hash="9dfb5e5895a9a2973dba57a049d9d379"/><file name="mysql4-upgrade-0.5.5-0.5.6.php" hash="e0ebe03688b7eac8252efa0d5b9b4258"/><file name="mysql4-upgrade-0.6.5-0.6.6.php" hash="c58a1219b2858d50a3d72e77ac6ee43c"/></dir></dir></dir><file name=".DS_Store" hash="194577a7e20bdcc7afbb718f502c134c"/></dir></target><target name="mageetc"><dir name="modules"><file name="Profileolabs_Shoppingflux.xml" hash="73ec83cf32c72884815a3cac9f754a54"/></dir></target><target name="magelocale"><dir><dir name="fr_FR"><file name="Profileolabs_Shoppingflux.csv" hash="976e5917ba859e727c4468e2a06478ab"/></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="profileolabs_shoppingflux.xml" hash="7787fbcc03edc0b4b68d51e211e82049"/></dir><dir name="template"><dir name="profileolabs"><dir name="shoppingflux"><dir name="export"><dir name="category"><file name="edit.phtml" hash="8af812638245a0aa59a1c90aa6c20a4f"/></dir><file name="edit.phtml" hash="729868cce29296bbbc86207830e4061d"/><file name="feed.phtml" hash="e17cd27faf955480224f4b32bc75a6f5"/><file name="process.phtml" hash="1dee42b2f14c0862446e5b475aaccad3"/><file name="product.phtml" hash="cca57adec209091d1d80cebbbe0c1172"/></dir><dir name="manageorders"><file name="import.phtml" hash="397a0f85d61db23006e6cff181ddac5b"/><dir name="payment"><dir name="info"><file name="purchaseorder.phtml" hash="782768b0e4836b25f46443dda098db29"/></dir></dir><dir name="sales"><dir name="order"><file name="total.phtml" hash="ded51585527ad918412dd5f0d0a9b2a7"/></dir></dir></dir></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="profileolabs_shoppingflux.xml" hash="672feff0a0895f920d4037ff131bf5ac"/></dir></dir></dir><dir name="default"><dir name="default"><dir name="layout"><file name="profileolabs_shoppingflux.xml" hash="672feff0a0895f920d4037ff131bf5ac"/></dir></dir></dir></dir></target></contents>
17
  <compatible/>
18
  <dependencies><required><php><min>5.1.0</min><max>6.0.0</max></php></required></dependencies>
19
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Profileolabs_Shoppingflux</name>
4
+ <version>0.7.5</version>
5
  <stability>stable</stability>
6
  <license uri="http://www.opensource.org/licenses/gpl-license.php">GNU General Public License (GPL)</license>
7
  <channel>community</channel>
11
  <notes>- Minor bugfixes &amp; improvements&#xD;
12
  </notes>
13
  <authors><author><name>ShoppingFlux</name><user>ShoppingFlux</user><email>olivier.levy@gmail.com</email></author></authors>
14
+ <date>2014-06-26</date>
15
+ <time>09:05:48</time>
16
+ <contents><target name="magecommunity"><dir name="Profileolabs"><dir name="Shoppingflux"><dir name="Block"><dir name="Export"><dir name="Adminhtml"><dir name="Catalog"><dir name="Category"><dir name="Edit"><file name="Form.php" hash="da466a657f2b80567ef576711a190805"/></dir><dir name="Tab"><file name="Default.php" hash="7b1c1f77624493bd1017cd3cd71e4bba"/></dir></dir></dir><file name="Feed.php" hash="02274fcb2c95199c826d8e22be5bb16a"/><file name="Process.php" hash="2e5099bf9054280f351ea170ffeb419f"/><dir name="Product"><file name="Grid.php" hash="3e81bd09615ef766df233fd803afa3e1"/></dir><file name="Product.php" hash="f71a0d0f25e2484f74f1ceaeee514d3f"/><dir name="Widget"><dir name="Grid"><dir name="Column"><dir name="Renderer"><file name="Bool.php" hash="2717fd3964299bb372c355427c8136d7"/></dir></dir></dir></dir></dir><file name="Flow.php" hash="aed0df354559ecb9d36d3ddf854c301a"/><file name="Flux.php" hash="c592023b56306258439287d28edf6c85"/><file name="Tracking.php" hash="a01f384121dda81f8ee3faa80ee3a32a"/><file name=".DS_Store" hash="194577a7e20bdcc7afbb718f502c134c"/></dir><dir name="Manageorders"><dir name="Adminhtml"><dir name="Cron"><file name="Grid.php" hash="ddfd5d9374446afafef1f545839e869e"/></dir><file name="Cron.php" hash="1a6a4042d3270b56e2dadc80f5c12cfa"/><file name="Import.php" hash="0d675a1731ca646ba57989b8545f4682"/><dir name="Log"><file name="Grid.php" hash="9170b01b3a6d3d558801faeba745390f"/></dir><file name="Log.php" hash="3336bc53002b82b4ab16d18a4e68e0cb"/><dir name="Order"><file name="Grid.php" hash="cdfc7764892dfb6df90f2d56337b448a"/></dir><file name="Order.php" hash="a6d45eb0146fb448f72348724c3151df"/><dir name="System"><dir name="Config"><dir name="Form"><dir name="Fieldset"><dir name="Shipping"><file name="Method.php" hash="e4cca2caf90ef55f13c3d55aff5c72bb"/></dir></dir></dir></dir></dir></dir><dir name="Payment"><dir name="Info"><file name="Purchaseorder.php" hash="df942f5c9a19506ef2bf70ca1d4da809"/></dir></dir></dir><dir name="Tracking"><file name="Buyline.php" hash="a60b19ed533b265a7a2aafe75c03c0fa"/><file name="Roi.php" hash="e34e26dffead694a35798d0397782d55"/></dir></dir><dir name="Helper"><file name="Data.php" hash="e24753fee3f9da7913a72b7bd0d5be9b"/></dir><dir name="Model"><dir name="Attribute"><dir name="Source"><file name="Category.php" hash="49f1f7959c4741c22bbf79b7e0bd24e7"/></dir></dir><dir name="Catalog"><dir name="Product"><file name="Collection.php" hash="758ad14d4929d803811b4d5021e2549c"/></dir></dir><file name="Config.php" hash="732c9f88ff8126ab3523af7745dbe3db"/><dir name="Export"><dir name="Convert"><dir name="Parser"><file name="Product.php" hash="4e50613b82ba84c35eb87f991645c118"/></dir></dir><file name="Flow.php" hash="46659d199b712b0cd837bc10a05d53f0"/><file name="Flux.php" hash="a777b0936b3651dae40a2444ddd9f074"/><file name="Observer.php" hash="f2a957fd78ae41825fafae4cb1264f35"/><dir name="Rewrite"><dir name="Catalog"><file name="Config.php" hash="c87b13b0141123b80cb1ac33eaf75715"/></dir><dir name="CatalogInventory"><dir name="Stock"><file name="Item.php" hash="5249964f31fda6d5b7ff9587e713ca81"/></dir></dir></dir><dir name="Source"><file name="Attributes.php" hash="bf113c8f1c7abc94cdabe467a7a1bdd7"/><file name="Attributesprice.php" hash="6cddf3b9562c8dbc56e670b377e341c1"/><dir name="Category"><file name="Level.php" hash="477d3dccefe5720eedc6b5d7a7110c9a"/></dir><file name="Visibility.php" hash="c2a1494bc2e554074d19c58523c450b2"/></dir><file name="Updates.php" hash="6a12528f1ba69f0e0240ba471b471578"/><file name="Xml.php" hash="d6574955d2a108a91c1ebf84feb1b02b"/><file name="Xmlflow.deprecated.php" hash="960d81e05b332cdb16449029b07f0eca"/><file name="Xmlflow.php" hash="82815362cf6b2127ef961be79e48c127"/></dir><dir name="Manageorders"><dir name="Convert"><file name="Customer.php" hash="cab61c630739661f594fdf1fc1193ce8"/></dir><dir name="Export"><file name="Shipments.php" hash="20e617e183366ef5447ea653aa989065"/></dir><file name="Log.php" hash="3ce67bed38c452615ba8cfd51f48cbf3"/><file name="Observer.php" hash="e96d2700c6fd186171b5ba2c854c69be"/><file name="Order.php" hash="2fad4679b73f6228aef411e051dd0ba6"/><file name="OrderOLD.php" hash="f25b3ce2d3610eecf201e2d2421aa460"/><dir name="Payment"><dir name="Method"><file name="Purchaseorder.php" hash="4ed46b995590d286b3154e0bbf7ebc63"/></dir></dir><file name="Product.php" hash="0041c5ebcd0aa8ca17f5c1a4f07ec03d"/><dir name="Shipping"><dir name="Carrier"><file name="Shoppingflux.php" hash="1d56b8eac4d74d6f9cce1e8c5a6613bb"/></dir><file name="Method.php" hash="a71d621b210ecdb1e69290f3e0c6f6d2"/></dir></dir><dir name="Mysql4"><dir name="Export"><dir name="Flux"><file name="Collection.php" hash="25a6420bb66aeefb6a8ac0a9e6fc538f"/></dir><file name="Flux.php" hash="6140eeee9d40615eaaba736377aba17e"/><dir name="Updates"><file name="Collection.php" hash="21b355b1db82e4b8a5d1950ac2ffbd18"/></dir><file name="Updates.php" hash="02ef11d051020470231e470f3232f862"/></dir><dir name="Manageorders"><dir name="Export"><dir name="Shipments"><file name="Collection.php" hash="fcdf3c607a8d479beb10a53a618aa225"/></dir><file name="Shipments.php" hash="e06dfaf254a5fd3d8649685b56874258"/></dir><dir name="Log"><file name="Collection.php" hash="0efd8c68937edf98cc9f9bb35bd76f79"/></dir><file name="Log.php" hash="b30bbf3ead209d69993546b29f72ecd7"/><dir name="Shipping"><dir name="Method"><file name="Collection.php" hash="7b2c8fb56625953ea8cd79cc7ddcc9df"/></dir><file name="Method.php" hash="a919a6c61ad6ddefd19ffc287eaa7325"/></dir></dir></dir><dir name="Service"><dir name="Http"><dir name="Client"><dir name="Adapter"><file name="Curl.php" hash="659ab165cdd8492fdc7ee08b515732ac"/><file name="Stream.php" hash="c3a61972f5ffb625dba59ba53365965d"/></dir></dir></dir></dir><file name="Service.php" hash="3bbadfa583da0cb1ad46b4d0bebcdcc1"/><dir name="System"><dir name="Config"><dir name="Backend"><file name="Apikey.php" hash="90036cf58c627fcc68920af912171a0c"/><file name="Refresh.php" hash="d53cbdc6ae73c146af67ef5f20d9e4e8"/></dir></dir></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="GeneralController.php" hash="554d7ddd341b073dd566b3ba21f0bd19"/></dir><dir name="Export"><dir name="Adminhtml"><file name="CategoryController.php" hash="d882797e1e0fbff25b312768c6569f04"/><file name="ExportController.php" hash="b496415fe06e284c62692813d8000250"/></dir><file name="FluxController.php" hash="dd529a8f698136fe1612dd53becdf016"/></dir><dir name="Manageorders"><dir name="Adminhtml"><file name="CronController.php" hash="9c43b1b18fb883b4140aaa1d3f82cb1c"/><file name="ImportController.php" hash="22d7190ab3d8374498d922616ba5795a"/><file name="LogController.php" hash="f941a1d2512c2461d614a94682afc8c3"/><file name="OrderController.php" hash="7e64c4b34250a1f949be5414bda7ae86"/></dir></dir></dir><dir name="doc"><file name="doc_module_1.4.pdf" hash="5590a49838bd67f70f0cacf9605cea2b"/></dir><dir name="etc"><file name="adminhtml.xml" hash="c7488b04c573bd896c74198b52211d1f"/><file name="config.xml" hash="1c9a76bfbd01b6dff05a890fbb505711"/><file name="system.xml" hash="fdeb326124bdcf120b95ab1ae11a9a28"/></dir><dir name="sql"><dir name="profileolabs_shoppingflux_setup"><file name="mysql4-install-0.1.0.php" hash="87c47ba97a55bd71dada152b52736be2"/><file name="mysql4-upgrade-0.1.0-0.1.1.php" hash="0f95646d855413c52928ed4c258aacb1"/><file name="mysql4-upgrade-0.3.13-0.3.14.php" hash="4f6a5399ad06457f0ebf57b33353ebe2"/><file name="mysql4-upgrade-0.3.14-0.3.15.php" hash="6215917eef61544fc6f4193d31956df4"/><file name="mysql4-upgrade-0.3.17-0.3.18.php" hash="112b34baecd80300682bda9ba69c8970"/><file name="mysql4-upgrade-0.4.2-0.4.3.php" hash="2322a9d2b5130bc78699c1953df87a04"/><file name="mysql4-upgrade-0.4.6-0.5.0.php" hash="02be6c02a8c77e642ef3e40ded1ba8be"/><file name="mysql4-upgrade-0.5.1-0.5.2.php" hash="0e5414628efee519deff6aff301651c7"/><file name="mysql4-upgrade-0.5.3-0.5.4.php" hash="9dfb5e5895a9a2973dba57a049d9d379"/><file name="mysql4-upgrade-0.5.5-0.5.6.php" hash="e0ebe03688b7eac8252efa0d5b9b4258"/><file name="mysql4-upgrade-0.6.5-0.6.6.php" hash="c58a1219b2858d50a3d72e77ac6ee43c"/></dir></dir></dir><file name=".DS_Store" hash="194577a7e20bdcc7afbb718f502c134c"/></dir></target><target name="mageetc"><dir name="modules"><file name="Profileolabs_Shoppingflux.xml" hash="73ec83cf32c72884815a3cac9f754a54"/></dir></target><target name="magelocale"><dir><dir name="fr_FR"><file name="Profileolabs_Shoppingflux.csv" hash="976e5917ba859e727c4468e2a06478ab"/></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="profileolabs_shoppingflux.xml" hash="7787fbcc03edc0b4b68d51e211e82049"/></dir><dir name="template"><dir name="profileolabs"><dir name="shoppingflux"><dir name="export"><dir name="category"><file name="edit.phtml" hash="8af812638245a0aa59a1c90aa6c20a4f"/></dir><file name="edit.phtml" hash="729868cce29296bbbc86207830e4061d"/><file name="feed.phtml" hash="e17cd27faf955480224f4b32bc75a6f5"/><file name="process.phtml" hash="1dee42b2f14c0862446e5b475aaccad3"/><file name="product.phtml" hash="cca57adec209091d1d80cebbbe0c1172"/></dir><dir name="manageorders"><file name="import.phtml" hash="397a0f85d61db23006e6cff181ddac5b"/><dir name="payment"><dir name="info"><file name="purchaseorder.phtml" hash="782768b0e4836b25f46443dda098db29"/></dir></dir><dir name="sales"><dir name="order"><file name="total.phtml" hash="ded51585527ad918412dd5f0d0a9b2a7"/></dir></dir></dir></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="profileolabs_shoppingflux.xml" hash="672feff0a0895f920d4037ff131bf5ac"/></dir></dir></dir><dir name="default"><dir name="default"><dir name="layout"><file name="profileolabs_shoppingflux.xml" hash="672feff0a0895f920d4037ff131bf5ac"/></dir></dir></dir></dir></target></contents>
17
  <compatible/>
18
  <dependencies><required><php><min>5.1.0</min><max>6.0.0</max></php></required></dependencies>
19
  </package>