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 +1 -1
- app/code/community/Profileolabs/Shoppingflux/Helper/Data.php +12 -3
- app/code/community/Profileolabs/Shoppingflux/Model/Catalog/Product/Collection.php +26 -0
- app/code/community/Profileolabs/Shoppingflux/Model/Config.php +9 -0
- app/code/community/Profileolabs/Shoppingflux/Model/Export/Flux.php +74 -44
- app/code/community/Profileolabs/Shoppingflux/Model/Export/Observer.php +7 -9
- app/code/community/Profileolabs/Shoppingflux/Model/Manageorders/Observer.php +10 -5
- app/code/community/Profileolabs/Shoppingflux/Model/Manageorders/Order.php +1 -1
- app/code/community/Profileolabs/Shoppingflux/Model/Manageorders/Shipping/Method.php +1 -1
- app/code/community/Profileolabs/Shoppingflux/controllers/Export/FluxController.php +28 -0
- app/code/community/Profileolabs/Shoppingflux/etc/config.xml +4 -1
- app/code/community/Profileolabs/Shoppingflux/etc/system.xml +18 -31
- package.xml +4 -4
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('
|
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 |
-
|
114 |
-
|
115 |
-
|
116 |
-
if ($shouldExportOnly) {
|
117 |
-
$collection->addFieldToFilter('should_export', 1);
|
118 |
}
|
119 |
-
|
120 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
-
$
|
571 |
-
|
572 |
-
|
573 |
-
|
574 |
-
|
575 |
-
|
576 |
-
|
577 |
-
|
578 |
-
|
579 |
-
|
580 |
-
|
581 |
-
|
582 |
-
|
583 |
-
|
584 |
-
|
585 |
-
|
586 |
-
|
587 |
-
|
588 |
-
|
589 |
-
|
590 |
-
|
591 |
-
|
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 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
-
|
90 |
foreach($collection as $item) {
|
91 |
try {
|
92 |
-
$
|
93 |
-
$
|
|
|
|
|
|
|
|
|
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($
|
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.
|
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.
|
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 & improvements
|
12 |
</notes>
|
13 |
<authors><author><name>ShoppingFlux</name><user>ShoppingFlux</user><email>olivier.levy@gmail.com</email></author></authors>
|
14 |
-
<date>2014-06-
|
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="
|
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 & improvements
|
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>
|