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>
|
