Profileolabs_Shoppingflux - Version 0.8.4

Version Notes

- Minor bugfixes & improvements

Download this release

Release Info

Developer ShoppingFlux
Extension Profileolabs_Shoppingflux
Version 0.8.4
Comparing to
See all releases


Code changes from version 0.7.9 to 0.8.4

Files changed (38) hide show
  1. app/code/community/Profileolabs/.DS_Store +0 -0
  2. app/code/community/Profileolabs/Shoppingflux/.DS_Store +0 -0
  3. app/code/community/Profileolabs/Shoppingflux/Block/Adminhtml/System/Config/Form/Fieldset/Abstract.php +65 -0
  4. app/code/community/Profileolabs/Shoppingflux/Block/Export/Adminhtml/Feed.php +1 -1
  5. app/code/community/Profileolabs/Shoppingflux/Block/Export/Adminhtml/Product/Grid.php +1 -1
  6. app/code/community/Profileolabs/Shoppingflux/Block/Export/Flow.php +6 -3
  7. app/code/community/Profileolabs/Shoppingflux/Block/Export/Flux.php +6 -1
  8. app/code/community/Profileolabs/Shoppingflux/Block/Manageorders/Adminhtml/Order/View/Tab/Shoppingflux.php +47 -0
  9. app/code/community/Profileolabs/Shoppingflux/Block/Manageorders/Adminhtml/System/Config/Form/Fieldset/Shipping/Method.php +5 -1
  10. app/code/community/Profileolabs/Shoppingflux/Helper/Data.php +33 -1
  11. app/code/community/Profileolabs/Shoppingflux/Model/Config.php +41 -6
  12. app/code/community/Profileolabs/Shoppingflux/Model/Export/Flux.php +242 -194
  13. app/code/community/Profileolabs/Shoppingflux/Model/Export/Observer.php +27 -9
  14. app/code/community/Profileolabs/Shoppingflux/Model/Export/Source/Attributes.php +3 -1
  15. app/code/community/Profileolabs/Shoppingflux/Model/Manageorders/Convert/Customer.php +7 -2
  16. app/code/community/Profileolabs/Shoppingflux/Model/Manageorders/Observer.php +14 -0
  17. app/code/community/Profileolabs/Shoppingflux/Model/Manageorders/Order.php +65 -13
  18. app/code/community/Profileolabs/Shoppingflux/Model/Manageorders/Source/Attributes.php +59 -0
  19. app/code/community/Profileolabs/Shoppingflux/Model/Service.php +21 -0
  20. app/code/community/Profileolabs/Shoppingflux/controllers/Adminhtml/GeneralController.php +3 -0
  21. app/code/community/Profileolabs/Shoppingflux/controllers/Export/FluxController.php +35 -1
  22. app/code/community/Profileolabs/Shoppingflux/controllers/Manageorders/Adminhtml/ImportController.php +9 -4
  23. app/code/community/Profileolabs/Shoppingflux/controllers/Manageorders/LaunchController.php +14 -0
  24. app/code/community/Profileolabs/Shoppingflux/doc/ShoppingFeed_US.pdf +0 -0
  25. app/code/community/Profileolabs/Shoppingflux/doc/{doc_module_1.4.pdf → ShoppingFlux_FR.pdf} +0 -0
  26. app/code/community/Profileolabs/Shoppingflux/etc/config.xml +40 -12
  27. app/code/community/Profileolabs/Shoppingflux/etc/system.xml +410 -312
  28. app/code/community/Profileolabs/Shoppingflux/sql/profileolabs_shoppingflux_setup/mysql4-install-0.8.0.php +301 -0
  29. app/code/community/Profileolabs/Shoppingflux/sql/profileolabs_shoppingflux_setup/mysql4-upgrade-0.7.9-0.8.0.php +86 -0
  30. app/code/local/Varien/Data/Form/Element/Wcmultiselect.php +147 -0
  31. app/design/adminhtml/default/default/layout/profileolabs_shoppingflux.xml +12 -0
  32. app/design/adminhtml/default/default/template/profileolabs/shoppingflux/manageorders/sales/order/view/tab/shoppingflux.phtml +44 -0
  33. app/design/adminhtml/default/default/template/profileolabs/shoppingflux/register.phtml +53 -0
  34. app/locale/en_US/Profileolabs_Shoppingflux.csv +10 -1
  35. app/locale/fr_FR/Profileolabs_Shoppingflux.csv +10 -1
  36. package.xml +4 -4
  37. skin/adminhtml/default/default/images/shoppingflux/ad.png +0 -0
  38. skin/adminhtml/default/default/images/shoppingflux/logo_us.jpg +0 -0
app/code/community/Profileolabs/.DS_Store CHANGED
Binary file
app/code/community/Profileolabs/Shoppingflux/.DS_Store CHANGED
Binary file
app/code/community/Profileolabs/Shoppingflux/Block/Adminhtml/System/Config/Form/Fieldset/Abstract.php ADDED
@@ -0,0 +1,65 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Profileolabs_Shoppingflux_Block_Adminhtml_System_Config_Form_Fieldset_Abstract extends Mage_Adminhtml_Block_System_Config_Form_Fieldset {
4
+
5
+ protected $_config = null;
6
+
7
+ public function getConfig() {
8
+ if (is_null($this->_config)) {
9
+ $this->_config = Mage::getSingleton('profileolabs_shoppingflux/config');
10
+ }
11
+
12
+ return $this->_config;
13
+ }
14
+
15
+ public function shouldRenderUnregistered() {
16
+ $storeCode = Mage::app()->getRequest()->getParam('store', null);
17
+ $store = Mage::app()->getStore($storeCode);
18
+ $apiKey = $this->getConfig()->getApiKey($store->getId());
19
+ $wsUri = $this->getConfig()->getWsUri($store->getId());
20
+ $service = new Profileolabs_Shoppingflux_Model_Service($apiKey, $wsUri);
21
+ return $service->isClient();
22
+ }
23
+
24
+
25
+ public function render(Varien_Data_Form_Element_Abstract $element) {
26
+ if($this->shouldRenderUnregistered()) {
27
+ return parent::render($element);
28
+ }
29
+
30
+ return $this->renderUnregistered($element);
31
+ }
32
+
33
+ public function renderUnregistered(Varien_Data_Form_Element_Abstract $element) {
34
+
35
+ if(Mage::registry('shoppingflux_unregistered_block')) {
36
+ return '';
37
+ }
38
+ $block = Mage::app()->getLayout()->createBlock('adminhtml/template');
39
+ $block->setTemplate('profileolabs/shoppingflux/register.phtml');
40
+
41
+ Mage::register('shoppingflux_unregistered_block', true);
42
+ return $block->toHtml();
43
+ }
44
+
45
+ protected function _getHeaderHtml($element) {
46
+ $html = parent::_getHeaderHtml($element);
47
+ return $html;
48
+ }
49
+
50
+ protected function _getFieldRenderer() {
51
+ if (empty($this->_fieldRenderer)) {
52
+ $this->_fieldRenderer = Mage::getBlockSingleton('adminhtml/system_config_form_field');
53
+ }
54
+ return $this->_fieldRenderer;
55
+ }
56
+
57
+ protected function _getDummyElement() {
58
+ if (empty($this->_dummyElement)) {
59
+ $this->_dummyElement = new Varien_Object(array('show_in_default' => 1, 'show_in_website' => 1, 'show_in_store' => 0));
60
+ }
61
+ return $this->_dummyElement;
62
+ }
63
+
64
+
65
+ }
app/code/community/Profileolabs/Shoppingflux/Block/Export/Adminhtml/Feed.php CHANGED
@@ -18,7 +18,7 @@ class Profileolabs_Shoppingflux_Block_Export_Adminhtml_Feed extends Mage_Adminht
18
  }
19
 
20
  public function getFeedUrl($store) {
21
- return preg_replace('%^(.*)\?.*$%i', '$1', $store->getUrl('shoppingflux/export_flux/index'));
22
  }
23
 
24
  public function storeHasFeed($store) {
18
  }
19
 
20
  public function getFeedUrl($store) {
21
+ return Mage::helper('profileolabs_shoppingflux')->getFeedUrl($store);
22
  }
23
 
24
  public function storeHasFeed($store) {
app/code/community/Profileolabs/Shoppingflux/Block/Export/Adminhtml/Product/Grid.php CHANGED
@@ -45,7 +45,7 @@ class Profileolabs_Shoppingflux_Block_Export_Adminhtml_Product_Grid extends Mage
45
  'left');
46
 
47
  if ($store->getId()) {
48
- //$collection->setStoreId($store->getId());
49
  $collection->addStoreFilter($store);
50
  $collection->joinAttribute('custom_name', 'catalog_product/name', 'entity_id', null, 'inner', $store->getId());
51
  $collection->joinAttribute('status', 'catalog_product/status', 'entity_id', null, 'inner', $store->getId());
45
  'left');
46
 
47
  if ($store->getId()) {
48
+ $collection->setStoreId($store->getId());
49
  $collection->addStoreFilter($store);
50
  $collection->joinAttribute('custom_name', 'catalog_product/name', 'entity_id', null, 'inner', $store->getId());
51
  $collection->joinAttribute('status', 'catalog_product/status', 'entity_id', null, 'inner', $store->getId());
app/code/community/Profileolabs/Shoppingflux/Block/Export/Flow.php CHANGED
@@ -1,5 +1,8 @@
1
  <?php
2
  // V1 DEPRECATED
 
 
 
3
  class Profileolabs_Shoppingflux_Block_Export_Flow extends Mage_Core_Block_Template {
4
 
5
  protected $_attributes = null;
@@ -278,7 +281,7 @@ class Profileolabs_Shoppingflux_Block_Export_Flow extends Mage_Core_Block_Templa
278
  'qty' => round($product->getQty()),
279
  );
280
 
281
- foreach ($this->getConfig()->getMappingAllAttributes($this->_getStoreId()) as $nameNode => $code) {
282
  $data[$nameNode] = trim($xmlObj->extractData($nameNode, $code, $product));
283
  }
284
 
@@ -558,7 +561,7 @@ class Profileolabs_Shoppingflux_Block_Export_Flow extends Mage_Core_Block_Templa
558
 
559
 
560
 
561
- foreach ($this->getConfig()->getMappingAllAttributes($this->_getStoreId()) as $nameNode => $attributeCode) {
562
  $attributeId = Mage::getModel('eav/entity_attribute')->getIdByCode('catalog_product', $attributeCode);
563
  $found = false;
564
  foreach ($attributes as $attribute) {
@@ -931,7 +934,7 @@ class Profileolabs_Shoppingflux_Block_Export_Flow extends Mage_Core_Block_Templa
931
 
932
  Varien_Profiler::start("SF::Flow::getAttributesFromConfig");
933
  if (is_null($this->_attributes)) {
934
- $attributes = $this->getConfig()->getMappingAllAttributes();
935
  if ($withAdditional) {
936
  $additionalAttributes = $this->getConfig()->getAdditionalAttributes();
937
  foreach ($additionalAttributes as $attributeCode) {
1
  <?php
2
  // V1 DEPRECATED
3
+ /**
4
+ * @deprecated
5
+ */
6
  class Profileolabs_Shoppingflux_Block_Export_Flow extends Mage_Core_Block_Template {
7
 
8
  protected $_attributes = null;
281
  'qty' => round($product->getQty()),
282
  );
283
 
284
+ foreach ($this->getConfig()->getMappingAttributes($this->_getStoreId()) as $nameNode => $code) {
285
  $data[$nameNode] = trim($xmlObj->extractData($nameNode, $code, $product));
286
  }
287
 
561
 
562
 
563
 
564
+ foreach ($this->getConfig()->getMappingAttributes($this->_getStoreId()) as $nameNode => $attributeCode) {
565
  $attributeId = Mage::getModel('eav/entity_attribute')->getIdByCode('catalog_product', $attributeCode);
566
  $found = false;
567
  foreach ($attributes as $attribute) {
934
 
935
  Varien_Profiler::start("SF::Flow::getAttributesFromConfig");
936
  if (is_null($this->_attributes)) {
937
+ $attributes = $this->getConfig()->getMappingAttributes();
938
  if ($withAdditional) {
939
  $additionalAttributes = $this->getConfig()->getAdditionalAttributes();
940
  foreach ($additionalAttributes as $attributeCode) {
app/code/community/Profileolabs/Shoppingflux/Block/Export/Flux.php CHANGED
@@ -13,6 +13,8 @@ class Profileolabs_Shoppingflux_Block_Export_Flux extends Mage_Core_Block_Templa
13
 
14
 
15
  protected function _toHtml() {
 
 
16
  $useAllStores = $this->getForceMultiStores() || $this->getConfig()->getUseAllStoreProducts();
17
  if ($this->getProductSku() && $this->getRequest()->getParam('update') == 1) {
18
  if($this->getConfig()->getUseAllStoreProducts()) {
@@ -33,6 +35,9 @@ class Profileolabs_Shoppingflux_Block_Export_Flux extends Mage_Core_Block_Templa
33
  $sizeTotal = $collection->count();
34
  $collection->clear();
35
 
 
 
 
36
  if (!$this->getConfig()->isExportSoldout()) {
37
  $collection->addFieldToFilter('is_in_stock', 1);
38
  }
@@ -44,7 +49,7 @@ class Profileolabs_Shoppingflux_Block_Export_Flux extends Mage_Core_Block_Templa
44
 
45
 
46
  $xmlObj = Mage::getModel('profileolabs_shoppingflux/export_xml');
47
- echo $xmlObj->startXml(array('size-exportable' => $sizeTotal, 'size-xml' => $collection->count(), 'with-out-of-stock' => intval($this->getConfig()->isExportSoldout()), 'selected-only' => intval($this->getConfig()->isExportFilteredByAttribute()), 'visibilities' => implode(',', $visibilities)));
48
 
49
 
50
  if ($this->getProductSku()) {
13
 
14
 
15
  protected function _toHtml() {
16
+ Profileolabs_Shoppingflux_Model_Export_Observer::checkStock();
17
+
18
  $useAllStores = $this->getForceMultiStores() || $this->getConfig()->getUseAllStoreProducts();
19
  if ($this->getProductSku() && $this->getRequest()->getParam('update') == 1) {
20
  if($this->getConfig()->getUseAllStoreProducts()) {
35
  $sizeTotal = $collection->count();
36
  $collection->clear();
37
 
38
+ if (!$this->getConfig()->isExportNotSalable()) {
39
+ $collection->addFieldToFilter('salable', 1);
40
+ }
41
  if (!$this->getConfig()->isExportSoldout()) {
42
  $collection->addFieldToFilter('is_in_stock', 1);
43
  }
49
 
50
 
51
  $xmlObj = Mage::getModel('profileolabs_shoppingflux/export_xml');
52
+ echo $xmlObj->startXml(array('generated-at' => date('d/m/Y H:i:s', Mage::getModel('core/date')->timestamp(time())), 'size-exportable' => $sizeTotal, 'size-xml' => $collection->count(), 'with-out-of-stock' => intval($this->getConfig()->isExportSoldout()), 'with-not-salable'=> intval($this->getConfig()->isExportNotSalable()) , 'selected-only' => intval($this->getConfig()->isExportFilteredByAttribute()), 'visibilities' => implode(',', $visibilities)));
53
 
54
 
55
  if ($this->getProductSku()) {
app/code/community/Profileolabs/Shoppingflux/Block/Manageorders/Adminhtml/Order/View/Tab/Shoppingflux.php ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Adminhtml sales orders shopping flux grid
4
+ *
5
+ * @category ShoppingFlux
6
+ * @package Profileolabs_Shoppingflux_ManageOrders
7
+ * @author kassim belghait
8
+ */
9
+ class Profileolabs_Shoppingflux_Block_Manageorders_Adminhtml_Order_View_Tab_Shoppingflux
10
+ extends Mage_Adminhtml_Block_Sales_Order_Abstract
11
+ implements Mage_Adminhtml_Block_Widget_Tab_Interface
12
+ {
13
+ protected function _construct()
14
+ {
15
+ parent::_construct();
16
+ $this->setTemplate('profileolabs/shoppingflux/manageorders/sales/order/view/tab/shoppingflux.phtml');
17
+ }
18
+
19
+
20
+ public function getOrder()
21
+ {
22
+ return Mage::registry('current_order');
23
+ }
24
+
25
+ public function getTabTitle()
26
+ {
27
+ return $this->getTabLabel();
28
+ }
29
+
30
+ public function getTabLabel()
31
+ {
32
+ return Mage::helper('profileolabs_shoppingflux')->__('Shopping Flux');
33
+ }
34
+
35
+ public function canShowTab()
36
+ {
37
+ return $this->getOrder()->getFromShoppingflux();
38
+ }
39
+
40
+
41
+ public function isHidden()
42
+ {
43
+ return false;
44
+ }
45
+
46
+
47
+ }
app/code/community/Profileolabs/Shoppingflux/Block/Manageorders/Adminhtml/System/Config/Form/Fieldset/Shipping/Method.php CHANGED
@@ -1,8 +1,12 @@
1
  <?php
2
 
3
- class Profileolabs_Shoppingflux_Block_Manageorders_Adminhtml_System_Config_Form_Fieldset_Shipping_Method extends Mage_Adminhtml_Block_System_Config_Form_Fieldset {
4
 
5
  public function render(Varien_Data_Form_Element_Abstract $element) {
 
 
 
 
6
  $html = $this->_getHeaderHtml($element);
7
 
8
  $collection = Mage::getModel('profileolabs_shoppingflux/manageorders_shipping_method')->getCollection();
1
  <?php
2
 
3
+ class Profileolabs_Shoppingflux_Block_Manageorders_Adminhtml_System_Config_Form_Fieldset_Shipping_Method extends Profileolabs_Shoppingflux_Block_Adminhtml_System_Config_Form_Fieldset_Abstract {
4
 
5
  public function render(Varien_Data_Form_Element_Abstract $element) {
6
+ if($this->shouldRenderUnregistered()) {
7
+ return parent::render($element);
8
+ }
9
+
10
  $html = $this->_getHeaderHtml($element);
11
 
12
  $collection = Mage::getModel('profileolabs_shoppingflux/manageorders_shipping_method')->getCollection();
app/code/community/Profileolabs/Shoppingflux/Helper/Data.php CHANGED
@@ -9,6 +9,28 @@
9
  class Profileolabs_Shoppingflux_Helper_Data extends Mage_Core_Helper_Abstract {
10
 
11
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12
  public function formatFeesDescription($fees, $marketplace) {
13
  return $this->__('%s fees', $marketplace);
14
  }
@@ -242,7 +264,7 @@ class Profileolabs_Shoppingflux_Helper_Data extends Mage_Core_Helper_Abstract {
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) {
248
 
@@ -253,6 +275,9 @@ class Profileolabs_Shoppingflux_Helper_Data extends Mage_Core_Helper_Abstract {
253
  $categories = Mage::getModel('catalog/category')
254
  ->getCollection()
255
  ->addAttributeToSelect('name')
 
 
 
256
  ->addAttributeToFilter('entity_id', array('neq' => 1))
257
  ->addAttributeToSort('path', 'ASC')
258
  ->addAttributeToSort('name', 'ASC');
@@ -277,6 +302,9 @@ class Profileolabs_Shoppingflux_Helper_Data extends Mage_Core_Helper_Abstract {
277
  while ($parent > 1) {
278
  $parentCategory = Mage::getModel('catalog/category')->load($parent);
279
  $category->setName($parentCategory->getName() . " > " . $category->getName());
 
 
 
280
  if (!Mage::app()->getStore()->isAdmin()) {
281
  //To avoid exception launched by third part module : ManaPro_FilterSeoLinks
282
  $category->setUrl($parentCategory->getUrl() . " > " . $category->getUrl());
@@ -288,6 +316,9 @@ class Profileolabs_Shoppingflux_Helper_Data extends Mage_Core_Helper_Abstract {
288
 
289
  foreach ($categories as $_category) {
290
  $this->_categoriesWithParents['name'][$_category->getId()] = $_category->getName();
 
 
 
291
  if ($this->isModuleInstalled('ManaPro_FilterSeoLinks') && Mage::app()->getStore()->isAdmin()) {
292
  $this->_categoriesWithParents['url'][$_category->getId()] = '';
293
  } else {
@@ -337,4 +368,5 @@ class Profileolabs_Shoppingflux_Helper_Data extends Mage_Core_Helper_Abstract {
337
  }
338
  }
339
 
 
340
  }
9
  class Profileolabs_Shoppingflux_Helper_Data extends Mage_Core_Helper_Abstract {
10
 
11
 
12
+ public function getFeedUrl($store) {
13
+ return preg_replace('%^(.*)\?.*$%i', '$1', $store->getUrl('shoppingflux/export_flux/index'));
14
+ }
15
+
16
+ public function generateTokens() {
17
+ foreach(Mage::app()->getStores() as $store) {
18
+ if(!trim(Mage::getConfig()->getNode('stores/'.$store->getCode().'/shoppingflux/configuration/api_key'))) {
19
+ $shoppingFluxToken = Mage::getStoreConfig('shoppingflux/configuration/api_key', 0);
20
+ if(!$shoppingFluxToken) {
21
+ $shoppingFluxToken = Mage::helper('profileolabs_shoppingflux')->generateToken($store->getId());
22
+ }
23
+ Mage::getConfig()->saveConfig('shoppingflux/configuration/api_key', $shoppingFluxToken, 'stores', $store->getId());
24
+ Mage::getConfig()->cleanCache();
25
+ }
26
+ }
27
+ Mage::getConfig()->saveConfig('shoppingflux/configuration/api_key', '', 'default');
28
+ }
29
+
30
+ public function generateToken($prefix='0') {
31
+ return md5($prefix.$_SERVER['SERVER_ADDR'].time());
32
+ }
33
+
34
  public function formatFeesDescription($fees, $marketplace) {
35
  return $this->__('%s fees', $marketplace);
36
  }
264
  $mageCacheKey = 'shoppingflux_category_list' . (Mage::app()->getStore()->isAdmin() ? '_admin'.intval($storeId) : '_' . intval($storeId)) ;
265
  $mageCacheKey .= $withInactive?'_inactive_':'_active_';
266
  $mageCacheKey .= $withNotInMenu?'all':'inmenu';
267
+ $cacheTags = array(/*Mage_Catalog_Model_Category::CACHE_TAG,If On, cause this cache to be invalidated on product duplication :( Commenting this will maybe cause un-updated category list, but will improve performances*/ 'shoppingflux');
268
  $this->_categoriesWithParents = unserialize(Mage::app()->loadCache($mageCacheKey));
269
  if (!$this->_categoriesWithParents) {
270
 
275
  $categories = Mage::getModel('catalog/category')
276
  ->getCollection()
277
  ->addAttributeToSelect('name')
278
+ ->addAttributeToSelect('meta_title')
279
+ ->addAttributeToSelect('meta_description')
280
+ ->addAttributeToSelect('meta_keywords')
281
  ->addAttributeToFilter('entity_id', array('neq' => 1))
282
  ->addAttributeToSort('path', 'ASC')
283
  ->addAttributeToSort('name', 'ASC');
302
  while ($parent > 1) {
303
  $parentCategory = Mage::getModel('catalog/category')->load($parent);
304
  $category->setName($parentCategory->getName() . " > " . $category->getName());
305
+ $category->setMetaTitle($parentCategory->getMetaTitle() . " > " . $category->getMetaTitle());
306
+ $category->setMetaDescription($parentCategory->getMetaDescription() . " > " . $category->getMetaDescription());
307
+ $category->setMetaKeywords($parentCategory->getMetaKeywords() . " > " . $category->getMetaKeywords());
308
  if (!Mage::app()->getStore()->isAdmin()) {
309
  //To avoid exception launched by third part module : ManaPro_FilterSeoLinks
310
  $category->setUrl($parentCategory->getUrl() . " > " . $category->getUrl());
316
 
317
  foreach ($categories as $_category) {
318
  $this->_categoriesWithParents['name'][$_category->getId()] = $_category->getName();
319
+ $this->_categoriesWithParents['meta_title'][$_category->getId()] = $_category->getMetaTitle();
320
+ $this->_categoriesWithParents['meta_description'][$_category->getId()] = $_category->getMetaDescription();
321
+ $this->_categoriesWithParents['meta_keywords'][$_category->getId()] = $_category->getMetaKeywords();
322
  if ($this->isModuleInstalled('ManaPro_FilterSeoLinks') && Mage::app()->getStore()->isAdmin()) {
323
  $this->_categoriesWithParents['url'][$_category->getId()] = '';
324
  } else {
368
  }
369
  }
370
 
371
+
372
  }
app/code/community/Profileolabs/Shoppingflux/Model/Config.php CHANGED
@@ -84,6 +84,10 @@ class Profileolabs_Shoppingflux_Model_Config extends Varien_Object {
84
  return $this->getConfigFlag('shoppingflux_export/general/export_soldout', $storeId);
85
  }
86
 
 
 
 
 
87
 
88
  public function getVisibilitiesToExport($storeId = null) {
89
  return explode(',', $this->getConfigData('shoppingflux_export/general/export_visibility', $storeId));
@@ -130,12 +134,27 @@ class Profileolabs_Shoppingflux_Model_Config extends Varien_Object {
130
  return $this->getConfigFlag('shoppingflux_export/general/manage_media_gallery', $storeId);
131
  }
132
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
133
 
134
 
135
  /**
136
  * Return Attributes Knowed in array with key=>value
137
  * key = node adn value = inner text
138
  * @return array
 
139
  */
140
  public function getMappingAttributesKnow($storeId = null) {
141
  return $this->getConfigData('shoppingflux_export/attributes_know', $storeId);
@@ -145,11 +164,20 @@ class Profileolabs_Shoppingflux_Model_Config extends Varien_Object {
145
  * Return Attributes Unknowed in array with key=>value
146
  * key = node adn value = inner text
147
  * @param int $storeId
148
- * @return array
 
149
  */
150
  public function getMappgingAttributesUnKnow($storeId = null) {
151
  return $this->getConfigData('shoppingflux_export/attributes_unknow', $storeId);
152
  }
 
 
 
 
 
 
 
 
153
 
154
  /**
155
  * Return Attributes Unknowed in array with key=>value
@@ -158,11 +186,12 @@ class Profileolabs_Shoppingflux_Model_Config extends Varien_Object {
158
  * @return array
159
  */
160
  public function getAdditionalAttributes($storeId = null) {
161
- $additionnal = explode(',',$this->getConfigData('shoppingflux_export/attributes_additionnal/list', $storeId));
162
- $unknow = $this->getMappgingAttributesUnKnow($storeId);
163
- $know = $this->getMappingAttributesKnow($storeId);
 
164
  //We do not want attributes that are already in known or unknown lists
165
- $additionnal = array_diff($additionnal, $know, $unknow);
166
  return $additionnal;
167
  }
168
 
@@ -171,9 +200,11 @@ class Profileolabs_Shoppingflux_Model_Config extends Varien_Object {
171
  * key = node adn value = inner text
172
  * @return array
173
  * @param int $storeId
 
174
  */
175
  public function getMappingAllAttributes($storeId = null) {
176
- return array_merge($this->getMappingAttributesKnow($storeId), $this->getMappgingAttributesUnKnow($storeId));
 
177
  }
178
 
179
  public function getMemoryLimit() {
@@ -280,5 +311,9 @@ class Profileolabs_Shoppingflux_Model_Config extends Varien_Object {
280
  public function preferMobilePhone($storeId = null) {
281
  return $this->getConfigFlag("shoppingflux_mo/import_customer/prefer_mobile_phone");
282
  }
 
 
 
 
283
 
284
  }
84
  return $this->getConfigFlag('shoppingflux_export/general/export_soldout', $storeId);
85
  }
86
 
87
+ public function isExportNotSalable($storeId = null) {
88
+ return $this->getConfigFlag('shoppingflux_export/general/export_not_salable', $storeId);
89
+ }
90
+
91
 
92
  public function getVisibilitiesToExport($storeId = null) {
93
  return explode(',', $this->getConfigData('shoppingflux_export/general/export_visibility', $storeId));
134
  return $this->getConfigFlag('shoppingflux_export/general/manage_media_gallery', $storeId);
135
  }
136
 
137
+ public function getQtyIncrements($product) {
138
+ if(!$product->getStockItem()->getData('enable_qty_increments')) {
139
+ return 1;
140
+ }
141
+ return max(1, intval($product->getStockItem()->getData('qty_increments')));
142
+ }
143
+
144
+ public function getTransformQtyIncrements($product, $storeId = null) {
145
+ if(!$this->getConfigFlag('shoppingflux_export/general/transform_qty_increments', $storeId)) {
146
+ return false;
147
+ }
148
+ return $this->getQtyIncrements($product) > 1;
149
+ }
150
+
151
 
152
 
153
  /**
154
  * Return Attributes Knowed in array with key=>value
155
  * key = node adn value = inner text
156
  * @return array
157
+ * @deprecated since version 0.8.0
158
  */
159
  public function getMappingAttributesKnow($storeId = null) {
160
  return $this->getConfigData('shoppingflux_export/attributes_know', $storeId);
164
  * Return Attributes Unknowed in array with key=>value
165
  * key = node adn value = inner text
166
  * @param int $storeId
167
+ * @return array
168
+ * @deprecated since version 0.8.0
169
  */
170
  public function getMappgingAttributesUnKnow($storeId = null) {
171
  return $this->getConfigData('shoppingflux_export/attributes_unknow', $storeId);
172
  }
173
+
174
+
175
+ public function getMappingAttributes($storeId = null) {
176
+ $data = $this->getConfigData('shoppingflux_export/attributes_mapping', $storeId);
177
+ unset($data['additional']);
178
+ unset($data['additional,']);
179
+ return $data;
180
+ }
181
 
182
  /**
183
  * Return Attributes Unknowed in array with key=>value
186
  * @return array
187
  */
188
  public function getAdditionalAttributes($storeId = null) {
189
+ $additionnal = $this->getConfigData('shoppingflux_export/attributes_mapping/additional', $storeId);
190
+ $additionnal = explode(',',$additionnal);
191
+ $additionnal = array_filter($additionnal);
192
+ $allAttributes = $this->getMappingAttributes($storeId);
193
  //We do not want attributes that are already in known or unknown lists
194
+ $additionnal = array_diff($additionnal, $allAttributes);
195
  return $additionnal;
196
  }
197
 
200
  * key = node adn value = inner text
201
  * @return array
202
  * @param int $storeId
203
+ * @deprecated since version 0.8.0
204
  */
205
  public function getMappingAllAttributes($storeId = null) {
206
+ return $this->getMappingAttributes($storeId);
207
+ //return array_merge($this->getMappingAttributesKnow($storeId), $this->getMappgingAttributesUnKnow($storeId));
208
  }
209
 
210
  public function getMemoryLimit() {
311
  public function preferMobilePhone($storeId = null) {
312
  return $this->getConfigFlag("shoppingflux_mo/import_customer/prefer_mobile_phone");
313
  }
314
+
315
+ public function getMobilePhoneAttribute($storeId = null) {
316
+ return $this->getConfigFlag("shoppingflux_mo/import_customer/mobile_attribute");
317
+ }
318
 
319
  }
app/code/community/Profileolabs/Shoppingflux/Model/Export/Flux.php CHANGED
@@ -32,7 +32,7 @@ class Profileolabs_Shoppingflux_Model_Export_Flux extends Mage_Core_Model_Abstra
32
 
33
  protected function _getProductBySku($productSku, $storeId) {
34
  $pId = Mage::getModel('catalog/product')->getIdBySku($productSku);
35
- if(!$pId) {
36
  return false;
37
  }
38
  return $this->_getProduct($pId, $storeId);
@@ -46,27 +46,27 @@ class Profileolabs_Shoppingflux_Model_Export_Flux extends Mage_Core_Model_Abstra
46
  } else {
47
  return false;
48
  }
49
-
50
  $read = Mage::getSingleton('core/resource')->getConnection('core_read');
51
  $select = $read->select()
52
- ->distinct()
53
- ->from(Mage::getConfig()->getTablePrefix() . 'catalog_product_website', array('website_id'))
54
- ->where('product_id = ?', $productId);
55
  $result = $read->fetchAll($select);
56
  $websiteIds = array();
57
- foreach($result as $row) {
58
  $websiteIds[] = $row['website_id'];
59
  }
60
-
61
- if(!in_array(Mage::app()->getStore($storeId)->getWebsiteId(), $websiteIds)) {
62
  return false;
63
  }
64
-
65
  $product = Mage::getModel('catalog/product')->setStoreId($storeId)->load($productId);
66
- if(!$product->getId()) {
67
  return false;
68
  }
69
-
70
  return $product;
71
  }
72
 
@@ -77,7 +77,6 @@ class Profileolabs_Shoppingflux_Model_Export_Flux extends Mage_Core_Model_Abstra
77
  public function addMissingProduct($args) {
78
  $storeId = $args['store_id'];
79
  $this->updateProductInFlux($args['row']['sku'], $storeId);
80
-
81
  }
82
 
83
  public function checkForMissingProducts($store_id = false, $maxImport = 200) {
@@ -85,7 +84,7 @@ class Profileolabs_Shoppingflux_Model_Export_Flux extends Mage_Core_Model_Abstra
85
  error_reporting(-1);
86
  foreach (Mage::app()->getStores() as $store) {
87
  $storeId = $store->getId();
88
- if(!$this->getConfig()->isExportEnabled($storeId)) {
89
  continue;
90
  }
91
  if (!$store_id || $storeId == $store_id) {
@@ -111,9 +110,9 @@ class Profileolabs_Shoppingflux_Model_Export_Flux extends Mage_Core_Model_Abstra
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
- if($appEmulation) { // not available in 1.4
117
  $initialEnvironmentInfo = $appEmulation->startEnvironmentEmulation($storeId);
118
  }
119
  }
@@ -128,11 +127,11 @@ class Profileolabs_Shoppingflux_Model_Export_Flux extends Mage_Core_Model_Abstra
128
  $this->updateProductInFlux($item->getSku(), $storeId);
129
  }
130
  $this->checkForMissingProducts($storeId, $maxImportLimit);
131
- if(!$isCurrentStore && $appEmulation) {
132
  $appEmulation->stopEnvironmentEmulation($initialEnvironmentInfo);
133
  }
134
- } catch(Exception $e) {
135
- if(!$isCurrentStore && $appEmulation) {
136
  $appEmulation->stopEnvironmentEmulation($initialEnvironmentInfo);
137
  }
138
  }
@@ -140,80 +139,84 @@ class Profileolabs_Shoppingflux_Model_Export_Flux extends Mage_Core_Model_Abstra
140
  }
141
  }
142
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
143
  public function productNeedUpdate($productId) {
144
  foreach (Mage::app()->getStores() as $store) {
145
  $storeId = $store->getId();
146
- $product = $this->_getProduct($productId, $storeId);
147
- if ($product && $product->getId()) {
148
- $fluxEntry = Mage::getModel('profileolabs_shoppingflux/export_flux')->getEntry($product->getSku(), $storeId);
149
- if ($fluxEntry->getUpdateNeeded() != 1) {
150
- $fluxEntry->setUpdateNeeded(1);
151
- $fluxEntry->save();
152
- }
153
- // update also parents
154
- $parentIds = Mage::getModel('catalog/product_type_configurable')->getParentIdsByChild($product->getId());
155
- foreach ($parentIds as $parentId) {
156
- $this->productNeedUpdate($parentId);
157
- }
158
- }
159
  }
160
  return;
161
  }
162
 
163
  protected function _shouldUpdate($product, $storeId) {
164
- if(!$this->getConfig()->isExportEnabled($storeId)) {
165
  return false;
166
  }
167
-
168
  if ($product->getStatus() == 2)
169
  return false;
170
 
171
  if ($product->getTypeId() == 'grouped' || $product->getTypeId() == 'bundle' || $product->getTypeId() == 'virtual') {
172
  return false;
173
  }
174
-
175
- if(!$product->isSalable()) {
176
  return false;
177
  }
178
-
179
  if ($product->getTypeId() == 'simple') {
180
  $parentIds = Mage::getResourceSingleton('catalog/product_type_configurable')->getParentIdsByChild($product->getId());
181
-
182
  //FIX Added on 2014-08-14 to solve a case : unexistant parent found, so product is never exported...
183
- foreach($parentIds as $k=>$parentId) {
184
- if(!Mage::getModel('catalog/product')->getCollection()->addFieldToFilter('entity_id', $parentId)->count()) {
185
- unset($parentIds[$k]);
186
- }
187
  }
188
  //END FIX
189
 
190
  if (!empty($parentIds))
191
  return false;
192
  }
193
-
194
-
195
-
196
  $store = Mage::app()->getStore($storeId);
197
- if(!in_array($store->getWebsiteId(), $product->getWebsiteIds())) {
198
  return false;
199
  }
200
-
201
  return true;
202
  }
203
 
204
  protected $_attributes = array();
205
 
206
- protected function _getAttribute($attributeCode, $storeId=null) {
207
  if (!isset($this->_attributes[$attributeCode])) {
208
  $this->_attributes[$attributeCode] = Mage::getSingleton('eav/config')->getAttribute('catalog_product', $attributeCode);
209
- if($storeId) {
210
  $this->_attributes[$attributeCode]->setStoreId($storeId);
211
  }
212
  }
213
  return $this->_attributes[$attributeCode];
214
  }
215
 
216
- protected function _getAttributeDataForProduct($nameNode, $attributeCode, $product, $storeId=null) {
217
  $_helper = Mage::helper('catalog/output');
218
 
219
  $data = $product->getData($attributeCode);
@@ -223,17 +226,17 @@ class Profileolabs_Shoppingflux_Model_Export_Flux extends Mage_Core_Model_Abstra
223
  if ($attribute->getFrontendInput() == 'date') {
224
  return $data;
225
  }
226
-
227
  //$data = $attribute->getFrontend()->getValue($product);
228
  //$data = $_helper->productAttribute($product, $data, $attributeCode);
229
  if ($attribute->usesSource()) {
230
  $data = $attribute->getSource()->getOptionText($data);
231
- if(is_array($data)) {
232
  $data = implode(', ', $data);
233
  }
234
  //$data = $product->getAttributeText($attributeCode);
235
  }
236
-
237
 
238
  if ($nameNode == 'ecotaxe' && $attribute->getFrontendInput() == 'weee') {
239
  $weeeAttributes = Mage::getSingleton('weee/tax')->getProductWeeeAttributes($product);
@@ -262,60 +265,75 @@ class Profileolabs_Shoppingflux_Model_Export_Flux extends Mage_Core_Model_Abstra
262
  }
263
 
264
  protected $_memoryLimit = null;
 
 
265
  protected function _checkMemory() {
266
  $request = Mage::app()->getRequest();
267
- if($request->getControllerName() == 'export_flux' && $request->getActionName() == 'index') {
268
- if(is_null($this->_memoryLimit)) {
269
  $memoryLimit = ini_get('memory_limit');
270
- if(preg_match('%M$%', $memoryLimit)) {
271
- $memoryLimit = intval($memoryLimit)*1024*1024;
272
- } else if(preg_match('%G$%', $memoryLimit)) {
273
- $memoryLimit = intval($memoryLimit)*1024*1024*1024;
274
  } else {
275
  $memoryLimit = false;
276
  }
277
  $this->_memoryLimit = $memoryLimit;
 
 
 
 
278
  }
279
- if($this->_memoryLimit > 0) {
 
280
  $currentMemoryUsage = memory_get_usage(true);
281
- if($this->_memoryLimit-10*1024*1024 <= $currentMemoryUsage) {
282
  header('Content-type: text/html; charset=UTF-8');
283
- header('Refresh: 0;');
284
- die('<html><head><meta http-equiv="refresh" content="0"/></head><body></body></html>');
 
 
 
 
 
 
 
 
285
  }
286
  }
287
  }
288
  }
289
-
290
  public function updateProductInFluxForAllStores($productSku) {
291
- foreach (Mage::app()->getStores() as $store) {
292
- $storeId = $store->getId();
293
- $isCurrentStore = (Mage::app()->getStore()->getId() == $storeId);
294
- try {
295
- if(!$isCurrentStore) {
296
- $appEmulation = Mage::getSingleton('core/app_emulation');
297
- if($appEmulation) {
298
  $initialEnvironmentInfo = $appEmulation->startEnvironmentEmulation($storeId);
299
- }
300
  }
301
  $this->updateProductInFlux($productSku, $storeId);
302
- if(!$isCurrentStore && $appEmulation) {
303
  $appEmulation->stopEnvironmentEmulation($initialEnvironmentInfo);
304
  }
305
- } catch(Exception $e) {
306
- if(!$isCurrentStore && $appEmulation) {
307
  $appEmulation->stopEnvironmentEmulation($initialEnvironmentInfo);
308
  }
309
- }
310
- }
311
  }
312
-
313
  public function updateProductInFlux($productSku, $storeId) {
314
-
315
  $this->_checkMemory();
316
-
317
  $product = $this->_getProductBySku($productSku, $storeId);
318
-
319
  if (!$product || !$product->getSku()) {
320
  $fluxEntry = Mage::getModel('profileolabs_shoppingflux/export_flux')->getEntry($productSku, $storeId);
321
  $fluxEntry->setShouldExport(0);
@@ -329,6 +347,7 @@ class Profileolabs_Shoppingflux_Model_Export_Flux extends Mage_Core_Model_Abstra
329
  if (!$this->_shouldUpdate($product, $storeId)) {
330
  $fluxEntry = Mage::getModel('profileolabs_shoppingflux/export_flux')->getEntry($product->getSku(), $storeId);
331
  $fluxEntry->setShouldExport(0);
 
332
  $fluxEntry->setUpdateNeeded(0);
333
  $fluxEntry->setUpdatedAt(date('Y-m-d H:i:s', Mage::getModel('core/date')->timestamp(time())));
334
  $fluxEntry->save();
@@ -350,12 +369,30 @@ class Profileolabs_Shoppingflux_Model_Export_Flux extends Mage_Core_Model_Abstra
350
  'mage-sku' => $product->getSku(),
351
  'product-url' => $this->cleanUrl($product->getProductUrl(false)),
352
  'is-in-stock' => $_manageStock ? $product->getStockItem()->getIsInStock() : 1,
353
- 'qty' => $_manageStock ? round($product->getStockItem()->getQty()) : 100,
354
- 'tax-rate' => $product->getTaxPercent()
 
 
355
  );
356
 
357
- foreach ($this->getConfig()->getMappingAllAttributes($storeId) as $nameNode => $code) {
 
 
 
 
 
 
358
  $data[$nameNode] = $this->_getAttributeDataForProduct($nameNode, $code, $product, $storeId); //trim($xmlObj->extractData($nameNode, $code, $product));
 
 
 
 
 
 
 
 
 
 
359
  }
360
 
361
  //Varien_Profiler::start("SF::Flux::getPrices");
@@ -370,7 +407,7 @@ class Profileolabs_Shoppingflux_Model_Export_Flux extends Mage_Core_Model_Abstra
370
  //Varien_Profiler::start("SF::Flux::getShippingInfo");
371
  $data = $this->getShippingInfo($data, $product, $storeId);
372
  //Varien_Profiler::stop("SF::Flux::getShippingInfo");
373
- if($this->getConfig()->getManageConfigurables()) {
374
  //Varien_Profiler::start("SF::Flux::getConfigurableAttributes");
375
  $data = $this->getConfigurableAttributes($data, $product, $storeId);
376
  //Varien_Profiler::stop("SF::Flux::getConfigurableAttributes");
@@ -388,7 +425,7 @@ class Profileolabs_Shoppingflux_Model_Export_Flux extends Mage_Core_Model_Abstra
388
  $data['shipping_delay'] = $this->getConfig()->getConfigData('shoppingflux_export/general/default_shipping_delay');
389
 
390
 
391
- if($this->getConfig()->getEnableEvents()) {
392
  $dataObj = new Varien_Object(array('entry' => $data, 'store_id' => $storeId, 'product' => $product));
393
  Mage::dispatchEvent('shoppingflux_before_update_entry', array('data_obj' => $dataObj));
394
 
@@ -396,33 +433,36 @@ class Profileolabs_Shoppingflux_Model_Export_Flux extends Mage_Core_Model_Abstra
396
  } else {
397
  $entry = $data;
398
  }
399
-
400
-
401
  //Varien_Profiler::stop("SF::Flux::addEntry1");
402
  //Varien_Profiler::start("SF::Flux::addEntry2");
403
  $xml .= $xmlObj->_addEntry($entry);
404
  //Varien_Profiler::stop("SF::Flux::addEntry2");
405
  //Varien_Profiler::start("SF::Flux::saveProductFlux");
406
- $fluxEntry = Mage::getModel('profileolabs_shoppingflux/export_flux')->getEntry($product->getSku(), $storeId);
407
- $fluxEntry->setUpdatedAt(date('Y-m-d H:i:s', Mage::getModel('core/date')->timestamp(time())));
408
- $fluxEntry->setXml($xml);
409
- $fluxEntry->setUpdateNeeded(0);
410
- $fluxEntry->setStockValue($product->getStockItem()->getQty());
411
- $fluxEntry->setIsInStock($data['is-in-stock']);
412
- $fluxEntry->setIsInFlux(intval($product->getData('shoppingflux_product')));
413
- $fluxEntry->setType($product->getTypeId());
414
- $fluxEntry->setVisibility($product->getVisibility());
415
- $fluxEntry->setShouldExport(1);
416
- $fluxEntry->save();
 
 
 
417
  // Faster
418
  /*
419
- $tableName = Mage::getSingleton('core/resource')->getTableName('profileolabs_shoppingflux/export_flux');
420
- $write = Mage::getSingleton('core/resource')->getConnection('core_write');
421
- $request = "INSERT INTO " . $tableName . " (sku, store_id, updated_at, xml, update_needed, is_in_stock, is_in_flux, type, visibility, should_export) VALUES ";
422
- $request .= "(" . $write->quote($product->getSku()) . ", " . $write->quote($storeId) . ", " . $write->quote(date('Y-m-d H:i:s')) . ", " . $write->quote($xml) . ", '0', " . $write->quote($data['is-in-stock']) . ", " . $write->quote($product->getData('shoppingflux_product')) . ", '" . $product->getTypeId() . "', '" . $product->getVisibility() . "', '1')";
423
- $request .= " on duplicate key update updated_at = VALUES(updated_at), xml = VALUES(xml), update_needed = VALUES(update_needed), is_in_stock = VALUES(is_in_stock), is_in_flux = VALUES(is_in_flux), type = VALUES(type), visibility = VALUES(visibility), should_export = VALUES(should_export) ";
424
- $write->query($request);
425
- */
426
  //Varien_Profiler::stop("SF::Flux::saveProductFlux");
427
  //Varien_Profiler::stop("SF::Flux::updateProductInFlux");
428
  }
@@ -434,8 +474,8 @@ class Profileolabs_Shoppingflux_Model_Export_Flux extends Mage_Core_Model_Abstra
434
  */
435
  protected function getPrices($data, $product, $storeId) {
436
 
437
- $priceAttributeCode = $this->getConfig()->getConfigData('shoppingflux_export/specific_prices/price', $storeId);
438
- $specialPriceAttributeCode = $this->getConfig()->getConfigData('shoppingflux_export/specific_prices/special_price', $storeId);
439
  if (!$product->getData($priceAttributeCode)) {
440
  $priceAttributeCode = 'price';
441
  $specialPriceAttributeCode = 'special_price';
@@ -456,9 +496,15 @@ class Profileolabs_Shoppingflux_Model_Export_Flux extends Mage_Core_Model_Abstra
456
  $product->setData('final_price', $finalPrice);
457
  $currentVersion = Mage::getVersion();
458
  if (version_compare($currentVersion, '1.5.0') < 0) {
459
-
 
 
 
 
 
 
460
  } else {
461
- if($this->getConfig()->getManageCatalogRules()) {
462
  $catalogPriceRulePrice = Mage::getModel('catalogrule/rule')->calcProductPriceRule($product, $product->getPrice());
463
  if ($catalogPriceRulePrice > 0 && $catalogPriceRulePrice < $finalPrice) {
464
  $finalPrice = $catalogPriceRulePrice;
@@ -469,6 +515,12 @@ class Profileolabs_Shoppingflux_Model_Export_Flux extends Mage_Core_Model_Abstra
469
  }
470
  }
471
 
 
 
 
 
 
 
472
  $data["price-ttc"] = Mage::helper('tax')->getPrice($product, $finalPrice, true); //$finalPrice;
473
  $data["price-before-discount"] = Mage::helper('tax')->getPrice($product, $priceBeforeDiscount, true); //$priceBeforeDiscount;
474
  $data["discount-amount"] = $product->getTypeId() != 'bundle' ? $discountAmount : 0;
@@ -501,11 +553,11 @@ class Profileolabs_Shoppingflux_Model_Export_Flux extends Mage_Core_Model_Abstra
501
 
502
  //Varien_Profiler::start("SF::Flux::getCategoriesViaShoppingfluxCategory-1");
503
  $categoryId = $product->getData('shoppingflux_default_category');
504
- if(!$categoryId) {
505
  return $this->getCategoriesViaProductCategories($data, $product);
506
  }
507
  $category = Mage::helper('profileolabs_shoppingflux')->getCategoriesWithParents(false, $product->getStoreId());
508
- //Varien_Profiler::stop("SF::Flux::getCategoriesViaShoppingfluxCategory-1");
509
  if (!isset($category['name'][$categoryId])) {
510
  return $this->getCategoriesViaProductCategories($data, $product);
511
  }
@@ -513,18 +565,27 @@ class Profileolabs_Shoppingflux_Model_Export_Flux extends Mage_Core_Model_Abstra
513
  //Varien_Profiler::start("SF::Flux::getCategoriesViaShoppingfluxCategory");
514
 
515
  $categoryNames = explode(' > ', $category['name'][$categoryId]);
 
 
 
516
  $categoryUrls = explode(' > ', $category['url'][$categoryId]);
517
 
518
 
519
  //we drop root category, which is useless here
520
  array_shift($categoryNames);
 
 
 
521
  array_shift($categoryUrls);
522
-
523
-
524
  $data['category-breadcrumb'] = trim(implode(' > ', $categoryNames));
525
 
526
- $data["category-main"] = isset($categoryNames[0])?trim($categoryNames[0]):'';
527
- $data["category-url-main"] = isset($categoryUrls[0])?$categoryUrls[0]:'';
 
 
 
528
 
529
 
530
  for ($i = 1; $i <= 5; $i++) {
@@ -538,6 +599,21 @@ class Profileolabs_Shoppingflux_Model_Export_Flux extends Mage_Core_Model_Abstra
538
  } else {
539
  $data["category-url-sub-" . ($i)] = '';
540
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
541
  }
542
 
543
  //Varien_Profiler::stop("SF::Flux::getCategoriesViaShoppingfluxCategory");
@@ -545,88 +621,42 @@ class Profileolabs_Shoppingflux_Model_Export_Flux extends Mage_Core_Model_Abstra
545
  }
546
 
547
  protected function getCategoriesViaProductCategories($data, $product) {
548
-
549
  //Varien_Profiler::start("SF::Flux::getCategoriesViaProductCategories");
550
- $cnt = 0;
551
-
552
  if (!$this->getConfig()->getUseOnlySFCategory()) {
553
  $rootCategoryId = Mage::app()->getStore($product->getStoreId())->getRootCategoryId();
554
 
555
  $categoryWithParents = Mage::helper('profileolabs_shoppingflux')->getCategoriesWithParents(false, $product->getStoreId(), false, false);
556
- $maxLevelCategory = $this->getConfig()->getMaxCategoryLevel()>0?$this->getConfig()->getMaxCategoryLevel():5;
557
-
558
- /*$productCategoryCollection = $product->getCategoryCollection()
559
- ->addAttributeToSelect(array('name'))
560
- ->addFieldToFilter('level', array('lteq' => $maxLevelCategory+1))
561
- ->addUrlRewriteToResult()
562
- ->groupByAttribute('level')
563
- ->setOrder('level', 'ASC');
564
- if (!Mage::getSingleton('profileolabs_shoppingflux/config')->getUseAllStoreCategories()) {
565
- $productCategoryCollection->addFieldToFilter('path', array('like' => "1/{$rootCategoryId}/%"));
566
- }
567
- $lastCategory = null;
568
- foreach ($productCategoryCollection as $category) {
569
- $name = $category->getName();
570
- $level = $category->getLevel();
571
- $url = $this->cleanUrl($category->getUrl());
572
- if ($cnt == 0) {
573
-
574
- $data["category-main"] = trim($name);
575
- $data["category-url-main"] = $url;
576
- } else {
577
-
578
- $data["category-sub-" . ($cnt)] = trim($name);
579
- $data["category-url-sub-" . ($cnt)] = $url;
580
- }
581
-
582
- $lastCategory = $category;
583
-
584
- $cnt++;
585
- }
586
-
587
- $data['category-breadcrumb'] = "";
588
- if (!is_null($lastCategory) && is_object($lastCategory)) {
589
-
590
- $breadCrumb = array();
591
-
592
- $pathInStore = $category->getPathInStore();
593
- $pathIds = array_reverse(explode(',', $pathInStore));
594
 
595
- $categories = $category->getParentCategories();
596
 
597
- // add category path breadcrumb
598
- foreach ($pathIds as $categoryId) {
599
- if ($categoryId != $rootCategoryId && isset($categories[$categoryId]) && $categories[$categoryId]->getName()) {
600
- $breadCrumb[] = trim($categories[$categoryId]->getName());
601
- }
602
- }
603
- unset($categories);
604
- $data['category-breadcrumb'] = trim(implode(" > ", $breadCrumb));
605
- }
606
-
607
-
608
-
609
- unset($productCategoryCollection);*/
610
-
611
  //Selection of the deepest category
612
  $productCategoryIds = $product->getCategoryIds();
613
  $choosenProductCategoryId = false;
614
  $choosenCategoryLevel = 0;
615
- foreach($productCategoryIds as $productCategoryId) {
616
- if(isset($categoryWithParents['name'][$productCategoryId])) {
617
  $categoryNames = explode(' > ', $categoryWithParents['name'][$productCategoryId]);
618
- if(count($categoryNames) > $choosenCategoryLevel) {
619
  $choosenProductCategoryId = $productCategoryId;
620
  }
621
  }
622
  }
623
-
624
  //Adding the deepest category to breadcrumb
625
- if($choosenProductCategoryId) {
626
  $categoryNames = explode(' > ', $categoryWithParents['name'][$choosenProductCategoryId]);
 
 
 
627
  $categoryUrls = explode(' > ', $categoryWithParents['url'][$choosenProductCategoryId]);
628
  //we drop root category, which is useless here
629
  array_shift($categoryNames);
 
 
 
630
  array_shift($categoryUrls);
631
  $categoryNames = array_slice($categoryNames, 0, $maxLevelCategory, true);
632
  $categoryUrls = array_slice($categoryUrls, 0, $maxLevelCategory, true);
@@ -634,6 +664,9 @@ class Profileolabs_Shoppingflux_Model_Export_Flux extends Mage_Core_Model_Abstra
634
 
635
  $data["category-main"] = trim($categoryNames[0]);
636
  $data["category-url-main"] = $categoryUrls[0];
 
 
 
637
 
638
 
639
  for ($i = 1; $i <= 5; $i++) {
@@ -647,14 +680,25 @@ class Profileolabs_Shoppingflux_Model_Export_Flux extends Mage_Core_Model_Abstra
647
  } else {
648
  $data["category-url-sub-" . ($i)] = '';
649
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
650
  }
651
  }
652
-
653
-
654
-
655
-
656
  }
657
-
658
  if (!isset($data["category-main"])) {
659
  $data["category-main"] = "";
660
  $data["category-url-main"] = "";
@@ -663,13 +707,13 @@ class Profileolabs_Shoppingflux_Model_Export_Flux extends Mage_Core_Model_Abstra
663
 
664
 
665
  for ($i = 1; $i <= 5; $i++) {
666
- if(!isset($data["category-sub-" . ($i)])) {
667
  $data["category-sub-" . ($i)] = "";
668
  $data["category-url-sub-" . ($i)] = "";
669
  }
670
  }
671
-
672
-
673
  //Varien_Profiler::stop("SF::Flux::getCategoriesViaProductCategories");
674
  return $data;
675
  }
@@ -682,8 +726,8 @@ class Profileolabs_Shoppingflux_Model_Export_Flux extends Mage_Core_Model_Abstra
682
 
683
  public function getImages($data, $product, $storeId) {
684
 
685
-
686
-
687
  $mediaUrl = Mage::getBaseUrl('media') . 'catalog/product';
688
 
689
  $i = 1;
@@ -695,7 +739,7 @@ class Profileolabs_Shoppingflux_Model_Export_Flux extends Mage_Core_Model_Abstra
695
  }
696
 
697
 
698
- if($this->getConfig()->getManageMediaGallery()) {
699
  //LOAD media gallery for this product
700
  $mediaGallery = $product->getResource()->getAttribute('media_gallery');
701
  $mediaGallery->getBackend()->afterLoad($product);
@@ -747,7 +791,7 @@ class Profileolabs_Shoppingflux_Model_Export_Flux extends Mage_Core_Model_Abstra
747
  protected function getAttributesFromConfig($checkIfExist = false, $withAdditional = true) {
748
 
749
  if (is_null($this->_attributesFromConfig)) {
750
- $attributes = $this->getConfig()->getMappingAllAttributes();
751
  if ($withAdditional) {
752
  $additionalAttributes = $this->getConfig()->getAdditionalAttributes();
753
  foreach ($additionalAttributes as $attributeCode) {
@@ -852,14 +896,14 @@ class Profileolabs_Shoppingflux_Model_Export_Flux extends Mage_Core_Model_Abstra
852
  $salable = false;
853
  foreach (Mage::getSingleton('core/resource')->getConnection('core_read')->fetchAll($usedProducts->getSelect()) as $usedProduct) { //Prevent Old magento bug
854
  $usedProduct = $this->_getProduct($usedProduct['entity_id'], $storeId);
855
-
856
- if(!$usedProduct) {
857
  continue;
858
  }
859
- if($usedProduct->getStatus() == 2) {
860
  continue;
861
  }
862
-
863
  $salable = $salable || $usedProduct->isSalable();
864
 
865
 
@@ -901,7 +945,7 @@ class Profileolabs_Shoppingflux_Model_Export_Flux extends Mage_Core_Model_Abstra
901
  $attributesFromConfig = $this->getAttributesFromConfig(true, true);
902
 
903
  $discountPercent = 0;
904
- if($priceBeforeDiscount) {
905
  $discountPercent = round((($priceBeforeDiscount - $price) * 100) / $priceBeforeDiscount);
906
  }
907
 
@@ -917,7 +961,11 @@ class Profileolabs_Shoppingflux_Model_Export_Flux extends Mage_Core_Model_Abstra
917
 
918
  $isInStock = $_manageStock ? $usedProduct->getStockItem()->getIsInStock() : 1;
919
 
920
- $qty = $_manageStock ? $usedProduct->getStockItem()->getQty() : 100;
 
 
 
 
921
  }
922
 
923
  $usedProductsArray[$usedProduct->getId()]['child']["sku"] = $usedProduct->getSku();
32
 
33
  protected function _getProductBySku($productSku, $storeId) {
34
  $pId = Mage::getModel('catalog/product')->getIdBySku($productSku);
35
+ if (!$pId) {
36
  return false;
37
  }
38
  return $this->_getProduct($pId, $storeId);
46
  } else {
47
  return false;
48
  }
49
+
50
  $read = Mage::getSingleton('core/resource')->getConnection('core_read');
51
  $select = $read->select()
52
+ ->distinct()
53
+ ->from(Mage::getConfig()->getTablePrefix() . 'catalog_product_website', array('website_id'))
54
+ ->where('product_id = ?', $productId);
55
  $result = $read->fetchAll($select);
56
  $websiteIds = array();
57
+ foreach ($result as $row) {
58
  $websiteIds[] = $row['website_id'];
59
  }
60
+
61
+ if (!in_array(Mage::app()->getStore($storeId)->getWebsiteId(), $websiteIds)) {
62
  return false;
63
  }
64
+
65
  $product = Mage::getModel('catalog/product')->setStoreId($storeId)->load($productId);
66
+ if (!$product->getId()) {
67
  return false;
68
  }
69
+
70
  return $product;
71
  }
72
 
77
  public function addMissingProduct($args) {
78
  $storeId = $args['store_id'];
79
  $this->updateProductInFlux($args['row']['sku'], $storeId);
 
80
  }
81
 
82
  public function checkForMissingProducts($store_id = false, $maxImport = 200) {
84
  error_reporting(-1);
85
  foreach (Mage::app()->getStores() as $store) {
86
  $storeId = $store->getId();
87
+ if (!$this->getConfig()->isExportEnabled($storeId)) {
88
  continue;
89
  }
90
  if (!$store_id || $storeId == $store_id) {
110
  $storeId = $store->getId();
111
  $isCurrentStore = (Mage::app()->getStore()->getId() == $storeId);
112
  if (!$store_id || $store_id == $storeId) {
113
+ if (!$isCurrentStore) {
114
  $appEmulation = Mage::getSingleton('core/app_emulation');
115
+ if ($appEmulation) { // not available in 1.4
116
  $initialEnvironmentInfo = $appEmulation->startEnvironmentEmulation($storeId);
117
  }
118
  }
127
  $this->updateProductInFlux($item->getSku(), $storeId);
128
  }
129
  $this->checkForMissingProducts($storeId, $maxImportLimit);
130
+ if (!$isCurrentStore && $appEmulation) {
131
  $appEmulation->stopEnvironmentEmulation($initialEnvironmentInfo);
132
  }
133
+ } catch (Exception $e) {
134
+ if (!$isCurrentStore && $appEmulation) {
135
  $appEmulation->stopEnvironmentEmulation($initialEnvironmentInfo);
136
  }
137
  }
139
  }
140
  }
141
 
142
+ public function productNeedUpdateForStore($productId, $storeId) {
143
+ $product = $this->_getProduct($productId, $storeId);
144
+ if ($product && $product->getId()) {
145
+ $fluxEntry = Mage::getModel('profileolabs_shoppingflux/export_flux')->getEntry($product->getSku(), $storeId);
146
+ if ($fluxEntry->getUpdateNeeded() != 1) {
147
+ $fluxEntry->setUpdateNeeded(1);
148
+ $fluxEntry->save();
149
+ }
150
+ // update also parents
151
+ $parentIds = Mage::getModel('catalog/product_type_configurable')->getParentIdsByChild($product->getId());
152
+ foreach ($parentIds as $parentId) {
153
+ $this->productNeedUpdateForStore($parentId, $storeId);
154
+ }
155
+ }
156
+ }
157
+
158
  public function productNeedUpdate($productId) {
159
  foreach (Mage::app()->getStores() as $store) {
160
  $storeId = $store->getId();
161
+ $this->productNeedUpdateForStore($productId, $storeId);
 
 
 
 
 
 
 
 
 
 
 
 
162
  }
163
  return;
164
  }
165
 
166
  protected function _shouldUpdate($product, $storeId) {
167
+ if (!$this->getConfig()->isExportEnabled($storeId)) {
168
  return false;
169
  }
170
+
171
  if ($product->getStatus() == 2)
172
  return false;
173
 
174
  if ($product->getTypeId() == 'grouped' || $product->getTypeId() == 'bundle' || $product->getTypeId() == 'virtual') {
175
  return false;
176
  }
177
+
178
+ if (!$this->getConfig()->isExportNotSalable() && !$product->isSalable()) {
179
  return false;
180
  }
181
+
182
  if ($product->getTypeId() == 'simple') {
183
  $parentIds = Mage::getResourceSingleton('catalog/product_type_configurable')->getParentIdsByChild($product->getId());
184
+
185
  //FIX Added on 2014-08-14 to solve a case : unexistant parent found, so product is never exported...
186
+ foreach ($parentIds as $k => $parentId) {
187
+ if (!Mage::getModel('catalog/product')->getCollection()->addFieldToFilter('entity_id', $parentId)->count()) {
188
+ unset($parentIds[$k]);
189
+ }
190
  }
191
  //END FIX
192
 
193
  if (!empty($parentIds))
194
  return false;
195
  }
196
+
197
+
198
+
199
  $store = Mage::app()->getStore($storeId);
200
+ if (!in_array($store->getWebsiteId(), $product->getWebsiteIds())) {
201
  return false;
202
  }
203
+
204
  return true;
205
  }
206
 
207
  protected $_attributes = array();
208
 
209
+ protected function _getAttribute($attributeCode, $storeId = null) {
210
  if (!isset($this->_attributes[$attributeCode])) {
211
  $this->_attributes[$attributeCode] = Mage::getSingleton('eav/config')->getAttribute('catalog_product', $attributeCode);
212
+ if ($storeId) {
213
  $this->_attributes[$attributeCode]->setStoreId($storeId);
214
  }
215
  }
216
  return $this->_attributes[$attributeCode];
217
  }
218
 
219
+ protected function _getAttributeDataForProduct($nameNode, $attributeCode, $product, $storeId = null) {
220
  $_helper = Mage::helper('catalog/output');
221
 
222
  $data = $product->getData($attributeCode);
226
  if ($attribute->getFrontendInput() == 'date') {
227
  return $data;
228
  }
229
+
230
  //$data = $attribute->getFrontend()->getValue($product);
231
  //$data = $_helper->productAttribute($product, $data, $attributeCode);
232
  if ($attribute->usesSource()) {
233
  $data = $attribute->getSource()->getOptionText($data);
234
+ if (is_array($data)) {
235
  $data = implode(', ', $data);
236
  }
237
  //$data = $product->getAttributeText($attributeCode);
238
  }
239
+
240
 
241
  if ($nameNode == 'ecotaxe' && $attribute->getFrontendInput() == 'weee') {
242
  $weeeAttributes = Mage::getSingleton('weee/tax')->getProductWeeeAttributes($product);
265
  }
266
 
267
  protected $_memoryLimit = null;
268
+ protected $_maxExecutionTime = null;
269
+
270
  protected function _checkMemory() {
271
  $request = Mage::app()->getRequest();
272
+ if ($request->getControllerName() == 'export_flux' && $request->getActionName() == 'index') {
273
+ if (is_null($this->_memoryLimit)) {
274
  $memoryLimit = ini_get('memory_limit');
275
+ if (preg_match('%M$%', $memoryLimit)) {
276
+ $memoryLimit = intval($memoryLimit) * 1024 * 1024;
277
+ } else if (preg_match('%G$%', $memoryLimit)) {
278
+ $memoryLimit = intval($memoryLimit) * 1024 * 1024 * 1024;
279
  } else {
280
  $memoryLimit = false;
281
  }
282
  $this->_memoryLimit = $memoryLimit;
283
+ $this->_maxExecutionTime = ini_get('max_execution_time');
284
+ if ($this->_maxExecutionTime < 9.75 * 60) {
285
+ $this->_maxExecutionTime = 9.75 * 60; //There is a 10min timeout on SF side.
286
+ }
287
  }
288
+ $isTimeToDie = (microtime(true) - Mage::registry('export_feed_start_at') > $this->_maxExecutionTime);
289
+ if ($this->_memoryLimit > 0 || $isTimeToDie) {
290
  $currentMemoryUsage = memory_get_usage(true);
291
+ if ($isTimeToDie || $this->_memoryLimit - 15 * 1024 * 1024 <= $currentMemoryUsage) {
292
  header('Content-type: text/html; charset=UTF-8');
293
+ header('Refresh: 0;');
294
+ $reasons = array();
295
+ if($isTimeToDie) {
296
+ $reasons[] = 'Is Time to die : Execution time : '.(microtime(true) - Mage::registry('export_feed_start_at')).' - Max execution time : ' . $this->_maxExecutionTime;
297
+ }
298
+ if($this->_memoryLimit-10*1024*1024 <= $currentMemoryUsage) {
299
+ $reasons[] = 'Memory limit : Used '.$currentMemoryUsage.' of '.$this->_memoryLimit;
300
+ }
301
+
302
+ die('<html><head><meta http-equiv="refresh" content="0"/></head><body>Reason : '.implode(',', $reasons).'</body></html>');
303
  }
304
  }
305
  }
306
  }
307
+
308
  public function updateProductInFluxForAllStores($productSku) {
309
+ foreach (Mage::app()->getStores() as $store) {
310
+ $storeId = $store->getId();
311
+ $isCurrentStore = (Mage::app()->getStore()->getId() == $storeId);
312
+ try {
313
+ if (!$isCurrentStore) {
314
+ $appEmulation = Mage::getSingleton('core/app_emulation');
315
+ if ($appEmulation) {
316
  $initialEnvironmentInfo = $appEmulation->startEnvironmentEmulation($storeId);
317
+ }
318
  }
319
  $this->updateProductInFlux($productSku, $storeId);
320
+ if (!$isCurrentStore && $appEmulation) {
321
  $appEmulation->stopEnvironmentEmulation($initialEnvironmentInfo);
322
  }
323
+ } catch (Exception $e) {
324
+ if (!$isCurrentStore && $appEmulation) {
325
  $appEmulation->stopEnvironmentEmulation($initialEnvironmentInfo);
326
  }
327
+ }
328
+ }
329
  }
330
+
331
  public function updateProductInFlux($productSku, $storeId) {
332
+
333
  $this->_checkMemory();
334
+
335
  $product = $this->_getProductBySku($productSku, $storeId);
336
+
337
  if (!$product || !$product->getSku()) {
338
  $fluxEntry = Mage::getModel('profileolabs_shoppingflux/export_flux')->getEntry($productSku, $storeId);
339
  $fluxEntry->setShouldExport(0);
347
  if (!$this->_shouldUpdate($product, $storeId)) {
348
  $fluxEntry = Mage::getModel('profileolabs_shoppingflux/export_flux')->getEntry($product->getSku(), $storeId);
349
  $fluxEntry->setShouldExport(0);
350
+ $fluxEntry->setStockValue($product->getStockItem()->getQty());
351
  $fluxEntry->setUpdateNeeded(0);
352
  $fluxEntry->setUpdatedAt(date('Y-m-d H:i:s', Mage::getModel('core/date')->timestamp(time())));
353
  $fluxEntry->save();
369
  'mage-sku' => $product->getSku(),
370
  'product-url' => $this->cleanUrl($product->getProductUrl(false)),
371
  'is-in-stock' => $_manageStock ? $product->getStockItem()->getIsInStock() : 1,
372
+ 'salable' => intval($product->isSalable()),
373
+ 'qty' => $product->isSalable() ? ($_manageStock ? round($product->getStockItem()->getQty()) : 100) : 0,
374
+ 'qty-increments' => $this->getConfig()->getTransformQtyIncrements($product) ? 1 : $this->getConfig()->getQtyIncrements($product),
375
+ 'tax-rate' => $product->getTaxPercent(),
376
  );
377
 
378
+ if ($this->getConfig()->getTransformQtyIncrements($product)) {
379
+ $qtyIncrements = $this->getConfig()->getQtyIncrements($product);
380
+ $data['qty'] = $data['qty'] / $qtyIncrements;
381
+ }
382
+
383
+
384
+ foreach ($this->getConfig()->getMappingAttributes($storeId) as $nameNode => $code) {
385
  $data[$nameNode] = $this->_getAttributeDataForProduct($nameNode, $code, $product, $storeId); //trim($xmlObj->extractData($nameNode, $code, $product));
386
+ if ($this->getConfig()->getTransformQtyIncrements($product)) {
387
+ $qtyIncrements = $this->getConfig()->getQtyIncrements($product);
388
+ if ($nameNode == 'name') {
389
+ $data[$nameNode] = $data[$nameNode] . Mage::helper('profileolabs_shoppingflux')->__(' - Set of %d', $qtyIncrements);
390
+ } else if ($nameNode == 'sku') {
391
+ $data[$nameNode] = '_SFQI_' . $qtyIncrements . '_' . $data[$nameNode];
392
+ } else if ($nameNode == 'weight') {
393
+ $data[$nameNode] = $qtyIncrements * $data[$nameNode];
394
+ }
395
+ }
396
  }
397
 
398
  //Varien_Profiler::start("SF::Flux::getPrices");
407
  //Varien_Profiler::start("SF::Flux::getShippingInfo");
408
  $data = $this->getShippingInfo($data, $product, $storeId);
409
  //Varien_Profiler::stop("SF::Flux::getShippingInfo");
410
+ if ($this->getConfig()->getManageConfigurables()) {
411
  //Varien_Profiler::start("SF::Flux::getConfigurableAttributes");
412
  $data = $this->getConfigurableAttributes($data, $product, $storeId);
413
  //Varien_Profiler::stop("SF::Flux::getConfigurableAttributes");
425
  $data['shipping_delay'] = $this->getConfig()->getConfigData('shoppingflux_export/general/default_shipping_delay');
426
 
427
 
428
+ if ($this->getConfig()->getEnableEvents()) {
429
  $dataObj = new Varien_Object(array('entry' => $data, 'store_id' => $storeId, 'product' => $product));
430
  Mage::dispatchEvent('shoppingflux_before_update_entry', array('data_obj' => $dataObj));
431
 
433
  } else {
434
  $entry = $data;
435
  }
436
+
437
+
438
  //Varien_Profiler::stop("SF::Flux::addEntry1");
439
  //Varien_Profiler::start("SF::Flux::addEntry2");
440
  $xml .= $xmlObj->_addEntry($entry);
441
  //Varien_Profiler::stop("SF::Flux::addEntry2");
442
  //Varien_Profiler::start("SF::Flux::saveProductFlux");
443
+ $fluxEntry = Mage::getModel('profileolabs_shoppingflux/export_flux')->getEntry($product->getSku(), $storeId);
444
+ $fluxEntry->setUpdatedAt(date('Y-m-d H:i:s', Mage::getModel('core/date')->timestamp(time())));
445
+ $fluxEntry->setXml($xml);
446
+ $fluxEntry->setUpdateNeeded(0);
447
+ $fluxEntry->setProductId($product->getId());
448
+ $fluxEntry->setStockValue($product->getStockItem()->getQty());
449
+ $fluxEntry->setPriceValue($product->getFinalPrice());
450
+ $fluxEntry->setIsInStock($data['is-in-stock']);
451
+ $fluxEntry->setSalable($product->isSalable());
452
+ $fluxEntry->setIsInFlux(intval($product->getData('shoppingflux_product')));
453
+ $fluxEntry->setType($product->getTypeId());
454
+ $fluxEntry->setVisibility($product->getVisibility());
455
+ $fluxEntry->setShouldExport(1);
456
+ $fluxEntry->save();
457
  // Faster
458
  /*
459
+ $tableName = Mage::getSingleton('core/resource')->getTableName('profileolabs_shoppingflux/export_flux');
460
+ $write = Mage::getSingleton('core/resource')->getConnection('core_write');
461
+ $request = "INSERT INTO " . $tableName . " (sku, store_id, updated_at, xml, update_needed, is_in_stock, is_in_flux, type, visibility, should_export) VALUES ";
462
+ $request .= "(" . $write->quote($product->getSku()) . ", " . $write->quote($storeId) . ", " . $write->quote(date('Y-m-d H:i:s')) . ", " . $write->quote($xml) . ", '0', " . $write->quote($data['is-in-stock']) . ", " . $write->quote($product->getData('shoppingflux_product')) . ", '" . $product->getTypeId() . "', '" . $product->getVisibility() . "', '1')";
463
+ $request .= " on duplicate key update updated_at = VALUES(updated_at), xml = VALUES(xml), update_needed = VALUES(update_needed), is_in_stock = VALUES(is_in_stock), is_in_flux = VALUES(is_in_flux), type = VALUES(type), visibility = VALUES(visibility), should_export = VALUES(should_export) ";
464
+ $write->query($request);
465
+ */
466
  //Varien_Profiler::stop("SF::Flux::saveProductFlux");
467
  //Varien_Profiler::stop("SF::Flux::updateProductInFlux");
468
  }
474
  */
475
  protected function getPrices($data, $product, $storeId) {
476
 
477
+ $priceAttributeCode = $this->getConfig()->getConfigData('shoppingflux_export/attributes_mapping/price', $storeId);
478
+ $specialPriceAttributeCode = $this->getConfig()->getConfigData('shoppingflux_export/attributes_mapping/special_price', $storeId);
479
  if (!$product->getData($priceAttributeCode)) {
480
  $priceAttributeCode = 'price';
481
  $specialPriceAttributeCode = 'special_price';
496
  $product->setData('final_price', $finalPrice);
497
  $currentVersion = Mage::getVersion();
498
  if (version_compare($currentVersion, '1.5.0') < 0) {
499
+ if ($this->getConfig()->getManageCatalogRules()) {
500
+ Mage::dispatchEvent('catalog_product_get_final_price', array('product'=>$product));
501
+ $finalPrice = $product->getFinalPrice();
502
+ $discountAmount = $priceBeforeDiscount - $finalPrice;
503
+ $discountFromDate = '';
504
+ $discountToDate = '';
505
+ }
506
  } else {
507
+ if ($this->getConfig()->getManageCatalogRules()) {
508
  $catalogPriceRulePrice = Mage::getModel('catalogrule/rule')->calcProductPriceRule($product, $product->getPrice());
509
  if ($catalogPriceRulePrice > 0 && $catalogPriceRulePrice < $finalPrice) {
510
  $finalPrice = $catalogPriceRulePrice;
515
  }
516
  }
517
 
518
+ if ($this->getConfig()->getTransformQtyIncrements($product)) {
519
+ $qtyIncrements = $this->getConfig()->getQtyIncrements($product);
520
+ $finalPrice *= $qtyIncrements;
521
+ $priceBeforeDiscount *= $qtyIncrements;
522
+ }
523
+
524
  $data["price-ttc"] = Mage::helper('tax')->getPrice($product, $finalPrice, true); //$finalPrice;
525
  $data["price-before-discount"] = Mage::helper('tax')->getPrice($product, $priceBeforeDiscount, true); //$priceBeforeDiscount;
526
  $data["discount-amount"] = $product->getTypeId() != 'bundle' ? $discountAmount : 0;
553
 
554
  //Varien_Profiler::start("SF::Flux::getCategoriesViaShoppingfluxCategory-1");
555
  $categoryId = $product->getData('shoppingflux_default_category');
556
+ if (!$categoryId) {
557
  return $this->getCategoriesViaProductCategories($data, $product);
558
  }
559
  $category = Mage::helper('profileolabs_shoppingflux')->getCategoriesWithParents(false, $product->getStoreId());
560
+ //Varien_Profiler::stop("SF::Flux::getCategoriesViaShoppingfluxCategory-1");
561
  if (!isset($category['name'][$categoryId])) {
562
  return $this->getCategoriesViaProductCategories($data, $product);
563
  }
565
  //Varien_Profiler::start("SF::Flux::getCategoriesViaShoppingfluxCategory");
566
 
567
  $categoryNames = explode(' > ', $category['name'][$categoryId]);
568
+ $categoryMetaTitles = explode(' > ', $category['meta_title'][$categoryId]);
569
+ $categoryMetaDescriptions = explode(' > ', $category['meta_description'][$categoryId]);
570
+ $categoryMetaKeywords = explode(' > ', $category['meta_keyword'][$categoryId]);
571
  $categoryUrls = explode(' > ', $category['url'][$categoryId]);
572
 
573
 
574
  //we drop root category, which is useless here
575
  array_shift($categoryNames);
576
+ array_shift($categoryMetaTitles);
577
+ array_shift($categoryMetaDescriptions);
578
+ array_shift($categoryMetaKeywords);
579
  array_shift($categoryUrls);
580
+
581
+
582
  $data['category-breadcrumb'] = trim(implode(' > ', $categoryNames));
583
 
584
+ $data["category-main"] = isset($categoryNames[0]) ? trim($categoryNames[0]) : '';
585
+ $data["category-url-main"] = isset($categoryUrls[0]) ? $categoryUrls[0] : '';
586
+ $data["category-metatitle-main"] = isset($categoryMetaTitles[0]) ? $categoryMetaTitles[0] : '';
587
+ $data["category-metadescription-main"] = isset($categoryMetaDescriptions[0]) ? $categoryMetaDescriptions[0] : '';
588
+ $data["category-metakeywords-main"] = isset($categoryMetaKeywords[0]) ? $categoryMetaKeywords[0] : '';
589
 
590
 
591
  for ($i = 1; $i <= 5; $i++) {
599
  } else {
600
  $data["category-url-sub-" . ($i)] = '';
601
  }
602
+ if (isset($categoryMetaTitles[$i])) {
603
+ $data["category-metatitle-sub-" . ($i)] = $categoryMetaTitles[$i];
604
+ } else {
605
+ $data["category-metatitle-sub-" . ($i)] = '';
606
+ }
607
+ if (isset($categoryMetaDescriptions[$i])) {
608
+ $data["category-metadescription-sub-" . ($i)] = $categoryMetaDescriptions[$i];
609
+ } else {
610
+ $data["category-metadescription-sub-" . ($i)] = '';
611
+ }
612
+ if (isset($categoryMetaKeywords[$i])) {
613
+ $data["category-metakeywords-sub-" . ($i)] = $categoryMetaKeywords[$i];
614
+ } else {
615
+ $data["category-metakeywords-sub-" . ($i)] = '';
616
+ }
617
  }
618
 
619
  //Varien_Profiler::stop("SF::Flux::getCategoriesViaShoppingfluxCategory");
621
  }
622
 
623
  protected function getCategoriesViaProductCategories($data, $product) {
624
+
625
  //Varien_Profiler::start("SF::Flux::getCategoriesViaProductCategories");
626
+ $cnt = 0;
627
+
628
  if (!$this->getConfig()->getUseOnlySFCategory()) {
629
  $rootCategoryId = Mage::app()->getStore($product->getStoreId())->getRootCategoryId();
630
 
631
  $categoryWithParents = Mage::helper('profileolabs_shoppingflux')->getCategoriesWithParents(false, $product->getStoreId(), false, false);
632
+ $maxLevelCategory = $this->getConfig()->getMaxCategoryLevel() > 0 ? $this->getConfig()->getMaxCategoryLevel() : 5;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
633
 
 
634
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
635
  //Selection of the deepest category
636
  $productCategoryIds = $product->getCategoryIds();
637
  $choosenProductCategoryId = false;
638
  $choosenCategoryLevel = 0;
639
+ foreach ($productCategoryIds as $productCategoryId) {
640
+ if (isset($categoryWithParents['name'][$productCategoryId])) {
641
  $categoryNames = explode(' > ', $categoryWithParents['name'][$productCategoryId]);
642
+ if (count($categoryNames) > $choosenCategoryLevel) {
643
  $choosenProductCategoryId = $productCategoryId;
644
  }
645
  }
646
  }
647
+
648
  //Adding the deepest category to breadcrumb
649
+ if ($choosenProductCategoryId) {
650
  $categoryNames = explode(' > ', $categoryWithParents['name'][$choosenProductCategoryId]);
651
+ $categoryMetaTitles = explode(' > ', $categoryWithParents['meta_title'][$choosenProductCategoryId]);
652
+ $categoryMetaDescriptions = explode(' > ', $categoryWithParents['meta_description'][$choosenProductCategoryId]);
653
+ $categoryMetaKeywords = explode(' > ', $categoryWithParents['meta_keywords'][$choosenProductCategoryId]);
654
  $categoryUrls = explode(' > ', $categoryWithParents['url'][$choosenProductCategoryId]);
655
  //we drop root category, which is useless here
656
  array_shift($categoryNames);
657
+ array_shift($categoryMetaTitles);
658
+ array_shift($categoryMetaDescriptions);
659
+ array_shift($categoryMetaKeywords);
660
  array_shift($categoryUrls);
661
  $categoryNames = array_slice($categoryNames, 0, $maxLevelCategory, true);
662
  $categoryUrls = array_slice($categoryUrls, 0, $maxLevelCategory, true);
664
 
665
  $data["category-main"] = trim($categoryNames[0]);
666
  $data["category-url-main"] = $categoryUrls[0];
667
+ $data["category-metatitle-main"] = $categoryMetaTitles[0];
668
+ $data["category-metadescription-main"] = $categoryMetaDescriptions[0];
669
+ $data["category-metakeywords-main"] = $categoryMetaKeywords[0];
670
 
671
 
672
  for ($i = 1; $i <= 5; $i++) {
680
  } else {
681
  $data["category-url-sub-" . ($i)] = '';
682
  }
683
+ if (isset($categoryMetaTitles[$i])) {
684
+ $data["category-metatitle-sub-" . ($i)] = $categoryMetaTitles[$i];
685
+ } else {
686
+ $data["category-metatitle-sub-" . ($i)] = '';
687
+ }
688
+ if (isset($categoryMetaDescriptions[$i])) {
689
+ $data["category-metadescription-sub-" . ($i)] = $categoryMetaDescriptions[$i];
690
+ } else {
691
+ $data["category-metadescription-sub-" . ($i)] = '';
692
+ }
693
+ if (isset($categoryMetaKeywords[$i])) {
694
+ $data["category-metakeywords-sub-" . ($i)] = $categoryMetaKeywords[$i];
695
+ } else {
696
+ $data["category-metakeywords-sub-" . ($i)] = '';
697
+ }
698
  }
699
  }
 
 
 
 
700
  }
701
+
702
  if (!isset($data["category-main"])) {
703
  $data["category-main"] = "";
704
  $data["category-url-main"] = "";
707
 
708
 
709
  for ($i = 1; $i <= 5; $i++) {
710
+ if (!isset($data["category-sub-" . ($i)])) {
711
  $data["category-sub-" . ($i)] = "";
712
  $data["category-url-sub-" . ($i)] = "";
713
  }
714
  }
715
+
716
+
717
  //Varien_Profiler::stop("SF::Flux::getCategoriesViaProductCategories");
718
  return $data;
719
  }
726
 
727
  public function getImages($data, $product, $storeId) {
728
 
729
+
730
+
731
  $mediaUrl = Mage::getBaseUrl('media') . 'catalog/product';
732
 
733
  $i = 1;
739
  }
740
 
741
 
742
+ if ($this->getConfig()->getManageMediaGallery()) {
743
  //LOAD media gallery for this product
744
  $mediaGallery = $product->getResource()->getAttribute('media_gallery');
745
  $mediaGallery->getBackend()->afterLoad($product);
791
  protected function getAttributesFromConfig($checkIfExist = false, $withAdditional = true) {
792
 
793
  if (is_null($this->_attributesFromConfig)) {
794
+ $attributes = $this->getConfig()->getMappingAttributes();
795
  if ($withAdditional) {
796
  $additionalAttributes = $this->getConfig()->getAdditionalAttributes();
797
  foreach ($additionalAttributes as $attributeCode) {
896
  $salable = false;
897
  foreach (Mage::getSingleton('core/resource')->getConnection('core_read')->fetchAll($usedProducts->getSelect()) as $usedProduct) { //Prevent Old magento bug
898
  $usedProduct = $this->_getProduct($usedProduct['entity_id'], $storeId);
899
+
900
+ if (!$usedProduct) {
901
  continue;
902
  }
903
+ if ($usedProduct->getStatus() == 2) {
904
  continue;
905
  }
906
+
907
  $salable = $salable || $usedProduct->isSalable();
908
 
909
 
945
  $attributesFromConfig = $this->getAttributesFromConfig(true, true);
946
 
947
  $discountPercent = 0;
948
+ if ($priceBeforeDiscount) {
949
  $discountPercent = round((($priceBeforeDiscount - $price) * 100) / $priceBeforeDiscount);
950
  }
951
 
961
 
962
  $isInStock = $_manageStock ? $usedProduct->getStockItem()->getIsInStock() : 1;
963
 
964
+ if ($usedProduct->isSalable()) {
965
+ $qty = $_manageStock ? $usedProduct->getStockItem()->getQty() : 100;
966
+ } else {
967
+ $qty = 0;
968
+ }
969
  }
970
 
971
  $usedProductsArray[$usedProduct->getId()]['child']["sku"] = $usedProduct->getSku();
app/code/community/Profileolabs/Shoppingflux/Model/Export/Observer.php CHANGED
@@ -12,15 +12,33 @@ class Profileolabs_Shoppingflux_Model_Export_Observer {
12
  return Mage::getSingleton('profileolabs_shoppingflux/config');
13
  }
14
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15
 
16
- public static function checkStock() {
 
 
 
 
17
  $productCollection = Mage::getModel('catalog/product')->getCollection();
18
  $fluxCollection = Mage::getModel('profileolabs_shoppingflux/export_flux')->getCollection();
19
  $productCollection->getSelect()->join(
20
  array('sf_stock' => $productCollection->getTable('cataloginventory/stock_item')), 'e.entity_id = sf_stock.product_id', array('qty')
21
  );
22
  $productCollection->getSelect()->joinRight(
23
- array('flux' => $fluxCollection->getMainTable()), 'e.sku = flux.sku and flux.should_export = 1', array('stock_value', 'sku')
24
  );
25
  $productCollection->getSelect()->where('CAST(sf_stock.qty AS SIGNED) != flux.stock_value');
26
  $productCollection->getSelect()->group('e.entity_id');
@@ -28,6 +46,8 @@ class Profileolabs_Shoppingflux_Model_Export_Observer {
28
  Mage::getModel('profileolabs_shoppingflux/export_flux')->productNeedUpdate($product);
29
  }
30
  }
 
 
31
 
32
  public function updateFlux() {
33
  if(Mage::getStoreConfigFlag('shoppingflux_export/general/enable_cron')) {
@@ -49,6 +69,9 @@ class Profileolabs_Shoppingflux_Model_Export_Observer {
49
  $sizeTotal = $collection->count();
50
  $collection->clear();
51
 
 
 
 
52
  if (!$this->getConfig()->isExportSoldout($storeId)) {
53
  $collection->addFieldToFilter('is_in_stock', 1);
54
  }
@@ -61,7 +84,7 @@ class Profileolabs_Shoppingflux_Model_Export_Observer {
61
 
62
 
63
  $xmlObj = Mage::getModel('profileolabs_shoppingflux/export_xml');
64
- $startXml = $xmlObj->startXml(array('size-exportable' => $sizeTotal, 'size-xml' => $collection->count(), 'with-out-of-stock' => intval($this->getConfig()->isExportSoldout()), 'selected-only' => intval($this->getConfig()->isExportFilteredByAttribute()), 'visibilities' => implode(',', $visibilities)));
65
  fwrite($handle, $startXml);
66
  Mage::getSingleton('core/resource_iterator')
67
  ->walk($collection->getSelect(), array(array($this, 'saveProductXml')), array('handle'=>$handle));
@@ -287,12 +310,7 @@ class Profileolabs_Shoppingflux_Model_Export_Observer {
287
  $product = $observer->getProduct();
288
  $storeId = $product->getStoreId();
289
  $attributesToCheck = array('price', 'tax_class_id', 'special_price', 'special_to_date', 'special_from_date');
290
- /*
291
- $ecotaxeAttributeCode = Mage::getStoreConfigFlag('shoppingflux_export/attributes_unknow/ecotaxe', $storeId);
292
- if ($ecotaxeAttributeCode) {
293
- $attributesToCheck[] = $ecotaxeAttributeCode;
294
- }
295
- */
296
  $somePriceChanged = false;
297
  foreach ($attributesToCheck as $attributeCode) {
298
  if ($product->getData($attributeCode) != $product->getOrigData($attributeCode)) {
12
  return Mage::getSingleton('profileolabs_shoppingflux/config');
13
  }
14
 
15
+ public function catalogruleAfterApply($observer) {
16
+ if(!$this->getConfig()->getManageCatalogRules()) {
17
+ return;
18
+ }
19
+ $write = Mage::getSingleton('core/resource')->getConnection('core_write');
20
+ $write->beginTransaction();
21
+ try {
22
+ $query = "update " . Mage::getSingleton('core/resource')->getTableName('profileolabs_shoppingflux/export_flux') . " set update_needed = 1 ";
23
+ $write->query($query);
24
+ $write->commit();
25
+ } catch (Exception $e) {
26
+ $write->rollback();
27
+ }
28
+ }
29
 
30
+
31
+ public static function checkStock($storeId = false) {
32
+ if(!$storeId) {
33
+ $storeId = Mage::app()->getStore()->getId();
34
+ }
35
  $productCollection = Mage::getModel('catalog/product')->getCollection();
36
  $fluxCollection = Mage::getModel('profileolabs_shoppingflux/export_flux')->getCollection();
37
  $productCollection->getSelect()->join(
38
  array('sf_stock' => $productCollection->getTable('cataloginventory/stock_item')), 'e.entity_id = sf_stock.product_id', array('qty')
39
  );
40
  $productCollection->getSelect()->joinRight(
41
+ array('flux' => $fluxCollection->getMainTable()), "e.sku = flux.sku and flux.store_id = '".$storeId."'", array('stock_value', 'sku')
42
  );
43
  $productCollection->getSelect()->where('CAST(sf_stock.qty AS SIGNED) != flux.stock_value');
44
  $productCollection->getSelect()->group('e.entity_id');
46
  Mage::getModel('profileolabs_shoppingflux/export_flux')->productNeedUpdate($product);
47
  }
48
  }
49
+
50
+
51
 
52
  public function updateFlux() {
53
  if(Mage::getStoreConfigFlag('shoppingflux_export/general/enable_cron')) {
69
  $sizeTotal = $collection->count();
70
  $collection->clear();
71
 
72
+ if (!$this->getConfig()->isExportNotSalable($storeId)) {
73
+ $collection->addFieldToFilter('salable', 1);
74
+ }
75
  if (!$this->getConfig()->isExportSoldout($storeId)) {
76
  $collection->addFieldToFilter('is_in_stock', 1);
77
  }
84
 
85
 
86
  $xmlObj = Mage::getModel('profileolabs_shoppingflux/export_xml');
87
+ $startXml = $xmlObj->startXml(array('size-exportable' => $sizeTotal, 'size-xml' => $collection->count(), 'with-out-of-stock' => intval($this->getConfig()->isExportSoldout()), 'with-not-salable'=> intval($this->getConfig()->isExportNotSalable()), 'selected-only' => intval($this->getConfig()->isExportFilteredByAttribute()), 'visibilities' => implode(',', $visibilities)));
88
  fwrite($handle, $startXml);
89
  Mage::getSingleton('core/resource_iterator')
90
  ->walk($collection->getSelect(), array(array($this, 'saveProductXml')), array('handle'=>$handle));
310
  $product = $observer->getProduct();
311
  $storeId = $product->getStoreId();
312
  $attributesToCheck = array('price', 'tax_class_id', 'special_price', 'special_to_date', 'special_from_date');
313
+
 
 
 
 
 
314
  $somePriceChanged = false;
315
  foreach ($attributesToCheck as $attributeCode) {
316
  if ($product->getData($attributeCode) != $product->getOrigData($attributeCode)) {
app/code/community/Profileolabs/Shoppingflux/Model/Export/Source/Attributes.php CHANGED
@@ -32,6 +32,8 @@ class Profileolabs_Shoppingflux_Model_Export_Source_Attributes
32
  'page_layout',
33
  'recurring_profile',
34
  'is_recurring',
 
 
35
  );
36
 
37
  protected $_attributes = null;
@@ -47,7 +49,7 @@ class Profileolabs_Shoppingflux_Model_Export_Source_Attributes
47
  $this->_attributes[] = array('value'=>$k, 'label'=>$v);
48
  }
49
  }
50
- array_unshift($this->_attributes, array("value"=>"none","label"=>""));
51
  }
52
  return $this->_attributes;
53
  }
32
  'page_layout',
33
  'recurring_profile',
34
  'is_recurring',
35
+ 'is_in_stock',
36
+ 'qty'
37
  );
38
 
39
  protected $_attributes = null;
49
  $this->_attributes[] = array('value'=>$k, 'label'=>$v);
50
  }
51
  }
52
+ array_unshift($this->_attributes, array("value"=>"","label"=>""));
53
  }
54
  return $this->_attributes;
55
  }
app/code/community/Profileolabs/Shoppingflux/Model/Manageorders/Convert/Customer.php CHANGED
@@ -74,8 +74,13 @@ class Profileolabs_Shoppingflux_Model_Manageorders_Convert_Customer extends Vari
74
  if ($address->getTelephone() == "" && $data['PhoneMobile'])
75
  $address->setTelephone($data['PhoneMobile']);
76
 
77
- if(Mage::getSingleton('profileolabs_shoppingflux/config')->preferMobilePhone() && $data['PhoneMobile']) {
78
- $address->setTelephone($data['PhoneMobile']);
 
 
 
 
 
79
  }
80
 
81
  $codeRegion = substr(str_pad($address->getPostcode(), 5, "0", STR_PAD_LEFT), 0, 2);
74
  if ($address->getTelephone() == "" && $data['PhoneMobile'])
75
  $address->setTelephone($data['PhoneMobile']);
76
 
77
+
78
+ if($data['PhoneMobile']) {
79
+ if(Mage::getSingleton('profileolabs_shoppingflux/config')->getMobilePhoneAttribute()) {
80
+ $customer->setData(Mage::getSingleton('profileolabs_shoppingflux/config')->getMobilePhoneAttribute(), $data['PhoneMobile']);
81
+ } else if(Mage::getSingleton('profileolabs_shoppingflux/config')->preferMobilePhone()) {
82
+ $address->setTelephone($data['PhoneMobile']);
83
+ }
84
  }
85
 
86
  $codeRegion = substr(str_pad($address->getPostcode(), 5, "0", STR_PAD_LEFT), 0, 2);
app/code/community/Profileolabs/Shoppingflux/Model/Manageorders/Observer.php CHANGED
@@ -181,5 +181,19 @@ class Profileolabs_Shoppingflux_Model_Manageorders_Observer {
181
  public function getHelper() {
182
  return Mage::helper('profileolabs_shoppingflux');
183
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
184
 
185
  }
181
  public function getHelper() {
182
  return Mage::helper('profileolabs_shoppingflux');
183
  }
184
+
185
+
186
+ public function observeAdminhtmlBlockHtmlBefore($observer) {
187
+ $block = $observer->getEvent()->getBlock();
188
+ if ($block instanceof Mage_Adminhtml_Block_Sales_Order_View) {
189
+ if ($block->getOrderId() && $block->getOrder() && $block->getOrder()->getShoppingfluxShipmentFlag() == 0 && $block->getOrder()->getFromShoppingflux() == 1 && $block->getOrder()->hasShipments()) {
190
+ $block->addButton('shoppingflux_shipment', array(
191
+ 'label' => $this->getHelper()->__('Send notification to ShoppingFeed'),
192
+ 'onclick' => "setLocation('" . Mage::helper('adminhtml')->getUrl('shoppingflux/manageorders_adminhtml_import/sendShipment', array('order_id'=>$block->getOrder()->getId())) . "')",
193
+ 'class' => 'shoppingflux-shipment-notification',
194
+ ), 0);
195
+ }
196
+ }
197
+ }
198
 
199
  }
app/code/community/Profileolabs/Shoppingflux/Model/Manageorders/Order.php CHANGED
@@ -202,8 +202,21 @@ class Profileolabs_Shoppingflux_Model_Manageorders_Order extends Varien_Object {
202
  $orderSf = $this->getHelper()->asArray($child);
203
 
204
 
205
- if ($this->isAlreadyImported($orderSf['IdOrder']))
 
 
 
 
 
 
 
 
 
 
 
 
206
  continue;
 
207
 
208
  $this->_nb_orders_read++;
209
 
@@ -336,8 +349,14 @@ class Profileolabs_Shoppingflux_Model_Manageorders_Order extends Varien_Object {
336
  $this->getHelper()->log('Order ' . $orderSf['IdOrder'] . ' has been created (' . $order->getIncrementId() . ')');
337
  $this->_nb_orders_imported++;
338
 
339
- if (!is_null($order) && $order->getId())
340
- $this->_changeDateCreatedAt($order, $orderSf['OrderDate']);
 
 
 
 
 
 
341
 
342
  //Erase session for the next order
343
  $this->getSession()->clear();
@@ -352,7 +371,6 @@ class Profileolabs_Shoppingflux_Model_Manageorders_Order extends Varien_Object {
352
 
353
  protected function _changeDateCreatedAt($order, $date) {
354
  try {
355
-
356
  $order->setCreatedAt($date);
357
  //$order->setUpdatedAt($date);
358
  $order->save();
@@ -374,7 +392,7 @@ class Profileolabs_Shoppingflux_Model_Manageorders_Order extends Varien_Object {
374
 
375
 
376
 
377
- if (!$this->_customer->getDefaultBilling() || !$this->_customer->getDefaultShipping())
378
  $this->_customer->load($this->_customer->getId());
379
 
380
  $customerAddressBillingId = $this->_customer->getDefaultBilling();
@@ -432,6 +450,12 @@ class Profileolabs_Shoppingflux_Model_Manageorders_Order extends Varien_Object {
432
  foreach ($productsToIterate as $key => $productSf) {
433
 
434
  $sku = $productSf['SKU'];
 
 
 
 
 
 
435
  $useProductId = $this->getConfig()->getConfigData('shoppingflux_mo/manageorders/use_product_id');
436
 
437
  if($useProductId) {
@@ -440,10 +464,11 @@ class Profileolabs_Shoppingflux_Model_Manageorders_Order extends Varien_Object {
440
  $productId = $this->getProductModel()->getResource()->getIdBySku($sku);
441
  }
442
 
443
- if ($productId != false) {
444
- $product = Mage::getModel('profileolabs_shoppingflux/manageorders_product')->load($productId); // $this->getProductModel()->reset()->load($productId);
445
 
446
- $request = new Varien_Object(array('qty' => $productSf['Quantity']));
 
 
447
  /*if ($product->getTypeId() == 'simple' && $product->getVisibility() == Mage_Catalog_Model_Product_Visibility::VISIBILITY_NOT_VISIBLE) {
448
 
449
  $parentIds = Mage::getResourceSingleton('catalog/product_type_configurable')
@@ -484,7 +509,7 @@ class Profileolabs_Shoppingflux_Model_Manageorders_Order extends Varien_Object {
484
  $this->_getQuote()->save();
485
 
486
 
487
- $unitPrice = $productSf['Price'];
488
  if($unitPrice <= 0) {
489
  $this->getHelper()->log('Order '.$orderSf['IdOrder'].' has a product with 0 price : '.$productSf['SKU']);
490
  }
@@ -508,6 +533,31 @@ class Profileolabs_Shoppingflux_Model_Manageorders_Order extends Varien_Object {
508
  //Modify Item price
509
  $item->setCustomPrice($unitPrice);
510
  $item->setOriginalCustomPrice($unitPrice);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
511
  $item->save();
512
 
513
  if (is_object($parentItem = $item->getParentItem())) {
@@ -550,6 +600,7 @@ class Profileolabs_Shoppingflux_Model_Manageorders_Order extends Varien_Object {
550
  $additionalData = array("from_shoppingflux" => 1,
551
  "marketplace_shoppingflux" => $orderSf['Marketplace'],
552
  "fees_shoppingflux" => (float) (isset($orderSf['TotalFees']) ? $orderSf['TotalFees'] : 0),
 
553
  "order_id_shoppingflux" => $orderIdShoppingFlux,
554
  "grand_total" => $orderSf['TotalAmount'],
555
  "base_grand_total" => $orderSf['TotalAmount'],
@@ -646,9 +697,9 @@ class Profileolabs_Shoppingflux_Model_Manageorders_Order extends Varien_Object {
646
  $this->_orderIdsAlreadyImported[] = $orderIdShoppingFlux;
647
  $this->_ordersIdsImported[$orderIdShoppingFlux]['MageOrderId'] = $order->getIncrementId();
648
 
649
- if(Mage::helper('sales')->canSendNewOrderEmail()) {
650
- $order->sendNewOrderEmail();
651
- }
652
 
653
  return $order;
654
  }
@@ -661,6 +712,7 @@ class Profileolabs_Shoppingflux_Model_Manageorders_Order extends Varien_Object {
661
  $additionalData = array("from_shoppingflux" => 1,
662
  "marketplace_shoppingflux" => $orderSf['Marketplace'],
663
  "fees_shoppingflux" => (float) (isset($orderSf['Fees']) ? $orderSf['Fees'] : 0.0),
 
664
  "order_id_shoppingflux" => $orderIdShoppingFlux);
665
 
666
 
@@ -729,7 +781,7 @@ class Profileolabs_Shoppingflux_Model_Manageorders_Order extends Varien_Object {
729
  protected function _saveInvoice($order) {
730
  Mage::dispatchEvent('checkout_type_onepage_save_order_after', array('order' => $order, 'quote' => $this->_getQuote()));
731
 
732
- if (!$this->getConfig()->createInvoice()) {
733
  return $this;
734
  }
735
 
202
  $orderSf = $this->getHelper()->asArray($child);
203
 
204
 
205
+ if ($this->isAlreadyImported($orderSf['IdOrder'])) {
206
+ $orders = Mage::getModel('sales/order')->getCollection()
207
+ ->addAttributeToFilter('from_shoppingflux', 1)
208
+ ->addAttributeToFilter('order_id_shoppingflux', $orderSf['IdOrder'])
209
+ ->addAttributeToFilter('from_shoppingflux', 1)
210
+ ->addAttributeToSelect('increment_id');
211
+ $importedOrder = $orders->getFirstItem();
212
+ $this->_ordersIdsImported[$orderSf['IdOrder']] = array(
213
+ 'Marketplace' => $orderSf['Marketplace'],
214
+ 'MageOrderId' => $importedOrder?$importedOrder->getIncrementId():'',
215
+ 'ShippingMethod' => $orderSf['ShippingMethod'],
216
+ 'ErrorOrder' => false
217
+ );
218
  continue;
219
+ }
220
 
221
  $this->_nb_orders_read++;
222
 
349
  $this->getHelper()->log('Order ' . $orderSf['IdOrder'] . ' has been created (' . $order->getIncrementId() . ')');
350
  $this->_nb_orders_imported++;
351
 
352
+ if (!is_null($order) && $order->getId()) {
353
+ $useMarketplaceDate = $this->getConfig()->getConfigData('shoppingflux_mo/manageorders/use_marketplace_date');
354
+ $orderDate = Varien_Date::now();
355
+ if($useMarketplaceDate) {
356
+ $orderDate = $orderSf['OrderDate'];
357
+ }
358
+ $this->_changeDateCreatedAt($order, $orderDate);
359
+ }
360
 
361
  //Erase session for the next order
362
  $this->getSession()->clear();
371
 
372
  protected function _changeDateCreatedAt($order, $date) {
373
  try {
 
374
  $order->setCreatedAt($date);
375
  //$order->setUpdatedAt($date);
376
  $order->save();
392
 
393
 
394
 
395
+ if (!$this->_customer->getDefaultBilling() || !$this->_customer->getDefaultShipping() || (is_object($this->_customer->getDefaultShipping()) && !$this->_customer->getDefaultShipping()->getFirstname()))
396
  $this->_customer->load($this->_customer->getId());
397
 
398
  $customerAddressBillingId = $this->_customer->getDefaultBilling();
450
  foreach ($productsToIterate as $key => $productSf) {
451
 
452
  $sku = $productSf['SKU'];
453
+ $qtyIncrements = 1;
454
+ if(preg_match('%^_SFQI_([0-9]+)_(.*)$%i', $sku, $pregResults)) {
455
+ $sku = $pregResults[2];
456
+ $qtyIncrements = $pregResults[1];
457
+ }
458
+
459
  $useProductId = $this->getConfig()->getConfigData('shoppingflux_mo/manageorders/use_product_id');
460
 
461
  if($useProductId) {
464
  $productId = $this->getProductModel()->getResource()->getIdBySku($sku);
465
  }
466
 
467
+ $product = Mage::getModel('profileolabs_shoppingflux/manageorders_product')->load($productId);
 
468
 
469
+ if ($product->getId()) {
470
+
471
+ $request = new Varien_Object(array('qty' => $productSf['Quantity'] * $qtyIncrements));
472
  /*if ($product->getTypeId() == 'simple' && $product->getVisibility() == Mage_Catalog_Model_Product_Visibility::VISIBILITY_NOT_VISIBLE) {
473
 
474
  $parentIds = Mage::getResourceSingleton('catalog/product_type_configurable')
509
  $this->_getQuote()->save();
510
 
511
 
512
+ $unitPrice = $productSf['Price'] / $qtyIncrements;
513
  if($unitPrice <= 0) {
514
  $this->getHelper()->log('Order '.$orderSf['IdOrder'].' has a product with 0 price : '.$productSf['SKU']);
515
  }
533
  //Modify Item price
534
  $item->setCustomPrice($unitPrice);
535
  $item->setOriginalCustomPrice($unitPrice);
536
+
537
+
538
+ //add configurable attributes informations
539
+ $confAttributeValues = array();
540
+ $configurableAttributesCollection = Mage::getResourceModel('catalog/product_attribute_collection')
541
+ ->addVisibleFilter()
542
+ ->addFieldToFilter('is_configurable', 1);
543
+
544
+
545
+ foreach($configurableAttributesCollection as $confAttribute) {
546
+ if(!in_array($confAttribute->getAttributeCode(), array('weight', 'news_from_date', 'news_to_date', 'url_key', 'sku', 'description', 'short_description', 'name')) && $product->getData($confAttribute->getAttributeCode())) {
547
+ if($confAttribute->usesSource()) {
548
+ $confAttributeValue = $product->getAttributeText($confAttribute->getAttributeCode());
549
+ } else {
550
+ $confAttributeValue = $product->getData($confAttribute->getAttributeCode());
551
+ }
552
+ if(is_string($confAttributeValue)) {
553
+ $confAttributeValues[] = $confAttributeValue;
554
+ }
555
+ }
556
+ }
557
+ if(!empty($confAttributeValues)) {
558
+ $item->setDescription($item->getDescription() . implode(' - ', $confAttributeValues));
559
+ }
560
+
561
  $item->save();
562
 
563
  if (is_object($parentItem = $item->getParentItem())) {
600
  $additionalData = array("from_shoppingflux" => 1,
601
  "marketplace_shoppingflux" => $orderSf['Marketplace'],
602
  "fees_shoppingflux" => (float) (isset($orderSf['TotalFees']) ? $orderSf['TotalFees'] : 0),
603
+ "other_shoppingflux" => $orderSf['Other'],
604
  "order_id_shoppingflux" => $orderIdShoppingFlux,
605
  "grand_total" => $orderSf['TotalAmount'],
606
  "base_grand_total" => $orderSf['TotalAmount'],
697
  $this->_orderIdsAlreadyImported[] = $orderIdShoppingFlux;
698
  $this->_ordersIdsImported[$orderIdShoppingFlux]['MageOrderId'] = $order->getIncrementId();
699
 
700
+ //if(Mage::helper('sales')->canSendNewOrderEmail()) {
701
+ //$order->sendNewOrderEmail();
702
+ //}
703
 
704
  return $order;
705
  }
712
  $additionalData = array("from_shoppingflux" => 1,
713
  "marketplace_shoppingflux" => $orderSf['Marketplace'],
714
  "fees_shoppingflux" => (float) (isset($orderSf['Fees']) ? $orderSf['Fees'] : 0.0),
715
+ "other_shoppingflux" => $orderSf['Other'],
716
  "order_id_shoppingflux" => $orderIdShoppingFlux);
717
 
718
 
781
  protected function _saveInvoice($order) {
782
  Mage::dispatchEvent('checkout_type_onepage_save_order_after', array('order' => $order, 'quote' => $this->_getQuote()));
783
 
784
+ if (!$this->getConfig()->createInvoice($order->getStoreId())) {
785
  return $this;
786
  }
787
 
app/code/community/Profileolabs/Shoppingflux/Model/Manageorders/Source/Attributes.php ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Shopping Flux
5
+ * @category ShoppingFlux
6
+ * @package Profileolabs_Shoppingflux
7
+ * @author kassim belghait - Vincent Enjalbert
8
+ */
9
+ class Profileolabs_Shoppingflux_Model_Manageorders_Source_Attributes {
10
+
11
+ protected $_exceptions = array(
12
+ 'website_id',
13
+ 'store_id',
14
+ 'created_in',
15
+ 'prefix',
16
+ 'suffix',
17
+ 'firstname',
18
+ 'middlename',
19
+ 'lastname',
20
+ 'email',
21
+ 'group_id',
22
+ 'dob',
23
+ 'password_hash',
24
+ 'default_shipping',
25
+ 'default_billing',
26
+ 'taxvat',
27
+ 'confirmation',
28
+ 'created_at',
29
+ 'gender',
30
+ 'rp_token',
31
+ 'rp_token_created_at',
32
+ 'disable_auto_group_change',
33
+ 'from_shoppingflux',
34
+ );
35
+ protected $_attributes = null;
36
+
37
+ public function toOptionArray() {
38
+ if (is_null($this->_attributes)) {
39
+ $this->_attributes = array();
40
+
41
+ $model = Mage::getResourceModel('customer/customer');
42
+ $typeId = $model->getTypeId();
43
+
44
+ $attributesCollection = Mage::getResourceModel('eav/entity_attribute_collection')
45
+ ->setEntityTypeFilter($typeId)
46
+ ->load();
47
+ $this->_attributes = array();
48
+ $this->_attributes[] = array('value' => '', 'label' => '');
49
+ foreach ($attributesCollection as $attribute) {
50
+ $code = $attribute->getAttributeCode();
51
+ if (!in_array($code, $this->_exceptions)) {
52
+ $this->_attributes[] = array('value' => $code, 'label' => $code);
53
+ }
54
+ }
55
+ }
56
+ return $this->_attributes;
57
+ }
58
+
59
+ }
app/code/community/Profileolabs/Shoppingflux/Model/Service.php CHANGED
@@ -22,6 +22,7 @@ class Profileolabs_Shoppingflux_Model_Service extends Varien_Object {
22
  const METHOD_UPDATE_ORDERS = "UpdateOrders";
23
  const METHOD_UPDATE_PRODUCT = "UpdateProduct";
24
  const METHOD_LOGIN = "getLogin";
 
25
 
26
  /**
27
  *
@@ -86,6 +87,7 @@ class Profileolabs_Shoppingflux_Model_Service extends Varien_Object {
86
  */
87
  protected function _connect($apiKey, $method, $request='') {
88
  if (empty($apiKey)) {
 
89
  Mage::throwException("API Key (Token) is empty");
90
  }
91
  $mode = Mage::getSingleton('profileolabs_shoppingflux/config')->isSandbox() ? 'Sandbox' : 'Production';
@@ -284,5 +286,24 @@ class Profileolabs_Shoppingflux_Model_Service extends Varien_Object {
284
 
285
  return true;
286
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
287
 
288
  }
22
  const METHOD_UPDATE_ORDERS = "UpdateOrders";
23
  const METHOD_UPDATE_PRODUCT = "UpdateProduct";
24
  const METHOD_LOGIN = "getLogin";
25
+ const METHOD_IS_CLIENT = "IsClient";
26
 
27
  /**
28
  *
87
  */
88
  protected function _connect($apiKey, $method, $request='') {
89
  if (empty($apiKey)) {
90
+ Mage::helper('profileolabs_shoppingflux')->generateTokens();
91
  Mage::throwException("API Key (Token) is empty");
92
  }
93
  $mode = Mage::getSingleton('profileolabs_shoppingflux/config')->isSandbox() ? 'Sandbox' : 'Production';
286
 
287
  return true;
288
  }
289
+
290
+
291
+ public function isClient() {
292
+ try {
293
+ $res = $this->_connect(
294
+ $this->_getApiKey(), self::METHOD_IS_CLIENT
295
+ );
296
+ $status = (string) $res->Response->Status;
297
+ if($status == 'Client') {
298
+ return true;
299
+ }
300
+ }catch(Exception $e) {
301
+ if($e->getMessage() == 'API Key (Token) is empty') {
302
+ return false;
303
+ }
304
+ return true;
305
+ }
306
+ return false;
307
+ }
308
 
309
  }
app/code/community/Profileolabs/Shoppingflux/controllers/Adminhtml/GeneralController.php CHANGED
@@ -43,5 +43,8 @@ class Profileolabs_Shoppingflux_Adminhtml_GeneralController extends Mage_Adminht
43
  die('OK');
44
  }
45
 
 
 
 
46
 
47
  }
43
  die('OK');
44
  }
45
 
46
+
47
+
48
+
49
 
50
  }
app/code/community/Profileolabs/Shoppingflux/controllers/Export/FluxController.php CHANGED
@@ -8,7 +8,18 @@ class Profileolabs_Shoppingflux_Export_FluxController extends Mage_Core_Controll
8
 
9
  public function testAction() {
10
  ini_set('display_errors', 1);
11
- Mage::app()->cleanCache();
 
 
 
 
 
 
 
 
 
 
 
12
  die('TESTS_END');
13
  }
14
 
@@ -68,7 +79,30 @@ class Profileolabs_Shoppingflux_Export_FluxController extends Mage_Core_Controll
68
  die('Le flux shopping flux sera mis a jour pour ce flux');
69
  }
70
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
71
  public function indexAction() {
 
72
  error_reporting(-1);
73
  ini_set('display_errors', 1);
74
  set_time_limit(0);
8
 
9
  public function testAction() {
10
  ini_set('display_errors', 1);
11
+ //Mage::app()->cleanCache();
12
+ /* $resource = Mage::getSingleton('core/resource');
13
+ $readConnection = $resource->getConnection('core_read');
14
+ $writeConnection = $resource->getConnection('core_write');
15
+ $installer = Mage::getResourceModel('catalog/setup','profileolabs_shoppingflux_setup');
16
+ $installer->run("
17
+ UPDATE `{$installer->getTable('shoppingflux_export_flux')}` SET update_needed = 1, should_export = 1;
18
+ ALTER TABLE `{$installer->getTable('shoppingflux_export_flux')}` ADD `price_value` decimal( 12, 4 ) NOT NULL AFTER `stock_value`;
19
+ ALTER TABLE `{$installer->getTable('shoppingflux_export_flux')}` ADD `salable` tinyint( 1 ) NOT NULL AFTER `is_in_stock`;
20
+ ");
21
+ $results = $readConnection->fetchAll('SHOW COLUMNS FROM '.$installer->getTable('shoppingflux_export_flux'));*/
22
+ var_dump($results);die();
23
  die('TESTS_END');
24
  }
25
 
79
  die('Le flux shopping flux sera mis a jour pour ce flux');
80
  }
81
 
82
+ public function statusAction() {
83
+ $storeId = Mage::app()->getStore()->getId();
84
+ $productCollection = Mage::getModel('catalog/product')->getCollection()->addStoreFilter($storeId)->setStoreId($storeId);
85
+ $productCount = $productCollection->count();
86
+ $collection = Mage::getModel('profileolabs_shoppingflux/export_flux')->getCollection();
87
+ $feedCount = $collection->count();
88
+ $collection->clear();
89
+ $collection->addFieldToFilter('update_needed', 1);
90
+ $feedUpdateNeededCount = $collection->count();
91
+ if(!headers_sent()) {
92
+ header('Content-type: text/xml; charset=UTF-8');
93
+ }
94
+ echo "<status>";
95
+ echo "<feed_generation>";
96
+ echo "<product_count>{$productCount}</product_count>";
97
+ echo "<feed_count>{$feedCount}</feed_count>";
98
+ echo "<feed_update_needed_count>{$feedUpdateNeededCount}</feed_update_needed_count>";
99
+ echo "</feed_generation>";
100
+ echo "</status>";
101
+ exit();
102
+ }
103
+
104
  public function indexAction() {
105
+ Mage::register('export_feed_start_at', microtime(true));
106
  error_reporting(-1);
107
  ini_set('display_errors', 1);
108
  set_time_limit(0);
app/code/community/Profileolabs/Shoppingflux/controllers/Manageorders/Adminhtml/ImportController.php CHANGED
@@ -26,10 +26,6 @@ class Profileolabs_Shoppingflux_Manageorders_Adminhtml_ImportController extends
26
  public function importOrdersAction() {
27
  try {
28
 
29
- if (!Mage::getSingleton('profileolabs_shoppingflux/config')->isOrdersEnabled())
30
- Mage::throwException(Mage::helper('profileolabs_shoppingflux')->__("Order import is disabled in ShoppingFlux configuration. You must enable it to use this functionnality."));
31
-
32
-
33
  error_reporting(E_ALL | E_STRICT);
34
  ini_set("display_errors", 1);
35
 
@@ -51,5 +47,14 @@ class Profileolabs_Shoppingflux_Manageorders_Adminhtml_ImportController extends
51
  }
52
 
53
 
 
 
 
 
 
 
 
 
 
54
 
55
  }
26
  public function importOrdersAction() {
27
  try {
28
 
 
 
 
 
29
  error_reporting(E_ALL | E_STRICT);
30
  ini_set("display_errors", 1);
31
 
47
  }
48
 
49
 
50
+ public function sendShipmentAction() {
51
+ $orderId = $this->getRequest()->getParam('order_id');
52
+ $order = Mage::getModel('sales/order')->load($orderId);
53
+ if($order->getId() && $order->hasShipments()) {
54
+ $shipment = $order->getShipmentsCollection()->getFirstItem();
55
+ Mage::getModel('profileolabs_shoppingflux/manageorders_observer')->sendStatusShipped($shipment);
56
+ }
57
+ $this->_redirect('adminhtml/sales_order/view', array('order_id' => $orderId));
58
+ }
59
 
60
  }
app/code/community/Profileolabs/Shoppingflux/controllers/Manageorders/LaunchController.php ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Profileolabs_Shoppingflux_Manageorders_LaunchController extends Mage_Core_Controller_Front_Action {
4
+
5
+
6
+
7
+ public function getordersAction() {
8
+ Mage::getModel('profileolabs_shoppingflux/manageorders_observer')->manageOrders();
9
+ }
10
+
11
+ public function updateordersAction() {
12
+ Mage::getModel('profileolabs_shoppingflux/manageorders_observer')->sendScheduledShipments();
13
+ }
14
+ }
app/code/community/Profileolabs/Shoppingflux/doc/ShoppingFeed_US.pdf ADDED
Binary file
app/code/community/Profileolabs/Shoppingflux/doc/{doc_module_1.4.pdf → ShoppingFlux_FR.pdf} RENAMED
File without changes
app/code/community/Profileolabs/Shoppingflux/etc/config.xml CHANGED
@@ -2,7 +2,7 @@
2
  <config>
3
  <modules>
4
  <Profileolabs_Shoppingflux>
5
- <version>0.7.9</version>
6
  </Profileolabs_Shoppingflux>
7
  </modules>
8
  <admin>
@@ -164,6 +164,14 @@
164
  </shoppingflux_catalog_product_save_commit_after>
165
  </observers>
166
  </catalog_product_save_commit_after>
 
 
 
 
 
 
 
 
167
  </events>
168
  <template>
169
  <email>
@@ -176,6 +184,7 @@
176
  </template>
177
  </global>
178
  <frontend>
 
179
  <routers>
180
  <shoppingflux>
181
  <use>standard</use>
@@ -200,6 +209,15 @@
200
  </attributes>
201
  </collection>
202
  </product>
 
 
 
 
 
 
 
 
 
203
  </frontend>
204
  <adminhtml>
205
  <layout>
@@ -283,18 +301,27 @@
283
  </sf_catalog_category_prepare_save>
284
  </observers>
285
  </catalog_category_prepare_save>
 
 
 
 
 
 
 
 
 
286
  </events>
287
  </adminhtml>
288
  <crontab>
289
  <jobs>
290
- <import_orders_shoppingflux>
291
  <schedule>
292
  <cron_expr>*/30 * * * *</cron_expr>
293
  </schedule>
294
  <run>
295
  <model>profileolabs_shoppingflux/manageorders_observer::manageOrders</model>
296
  </run>
297
- </import_orders_shoppingflux>
298
  <export_updates_shoppingflux>
299
  <schedule>
300
  <cron_expr>*/10 * * * *</cron_expr>
@@ -327,14 +354,14 @@
327
  <model>profileolabs_shoppingflux/export_observer::fillMainCategory</model>
328
  </run>
329
  </fill_main_category>
330
- <export_shipments_shoppingflux>
331
  <schedule>
332
  <cron_expr>*/10 * * * *</cron_expr>
333
  </schedule>
334
  <run>
335
  <model>profileolabs_shoppingflux/manageorders_observer::sendScheduledShipments</model>
336
  </run>
337
- </export_shipments_shoppingflux>
338
  <!--<export_updates_shoppingflux>
339
  <schedule>
340
  <cron_expr>*/5 * * * *</cron_expr>
@@ -369,6 +396,8 @@
369
  <create_invoice>1</create_invoice>
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>
@@ -402,6 +431,7 @@
402
  <default_shipping_method>flatrate_flatrate</default_shipping_method>
403
  <shipping_price_based_on>FR</shipping_price_based_on>
404
  <export_soldout>1</export_soldout>
 
405
  <export_visibility>2,3,4</export_visibility>
406
  <enable_cron>0</enable_cron>
407
  <memory_limit>512</memory_limit>
@@ -415,7 +445,7 @@
415
  <manage_catalog_rules>1</manage_catalog_rules>
416
  <manage_media_gallery>1</manage_media_gallery>
417
  </general>
418
- <attributes_unknow>
419
  <ean>ean</ean>
420
  <isbn>isbn</isbn>
421
  <ref_manufacturer>ref_manufacturer</ref_manufacturer>
@@ -433,20 +463,18 @@
433
  <size>size</size>
434
  <shoe_size>shoe_size</shoe_size>
435
  <dimension>dimension</dimension>
436
- </attributes_unknow>
437
- <attributes_know>
438
- <sku>name</sku>
439
  <name>name</name>
440
  <description>description</description>
441
  <short_description>short_description</short_description>
 
 
442
  <meta_keyword>meta_keyword</meta_keyword>
443
  <weight>weight</weight>
444
  <color>color</color>
445
- </attributes_know>
446
- <specific_prices>
447
  <price>price</price>
448
  <special_price>special_price</special_price>
449
- </specific_prices>
450
  </shoppingflux_export>
451
  </default>
452
  </config>
2
  <config>
3
  <modules>
4
  <Profileolabs_Shoppingflux>
5
+ <version>0.8.4</version>
6
  </Profileolabs_Shoppingflux>
7
  </modules>
8
  <admin>
164
  </shoppingflux_catalog_product_save_commit_after>
165
  </observers>
166
  </catalog_product_save_commit_after>
167
+ <catalogrule_after_apply>
168
+ <observers>
169
+ <shoppingflux_catalogrule_after_apply>
170
+ <class>Profileolabs_Shoppingflux_Model_Export_Observer</class>
171
+ <method>catalogruleAfterApply</method>
172
+ </shoppingflux_catalogrule_after_apply>
173
+ </observers>
174
+ </catalogrule_after_apply>
175
  </events>
176
  <template>
177
  <email>
184
  </template>
185
  </global>
186
  <frontend>
187
+
188
  <routers>
189
  <shoppingflux>
190
  <use>standard</use>
209
  </attributes>
210
  </collection>
211
  </product>
212
+ <translate>
213
+ <modules>
214
+ <Profileolabs_Shoppingflux>
215
+ <files>
216
+ <default>Profileolabs_Shoppingflux.csv</default>
217
+ </files>
218
+ </Profileolabs_Shoppingflux>
219
+ </modules>
220
+ </translate>
221
  </frontend>
222
  <adminhtml>
223
  <layout>
301
  </sf_catalog_category_prepare_save>
302
  </observers>
303
  </catalog_category_prepare_save>
304
+ <adminhtml_block_html_before>
305
+ <observers>
306
+ <sf_adminhtml_block_html_before>
307
+ <type>singleton</type>
308
+ <class>profileolabs_shoppingflux/manageorders_observer</class>
309
+ <method>observeAdminhtmlBlockHtmlBefore</method>
310
+ </sf_adminhtml_block_html_before>
311
+ </observers>
312
+ </adminhtml_block_html_before>
313
  </events>
314
  </adminhtml>
315
  <crontab>
316
  <jobs>
317
+ <!--<import_orders_shoppingflux>
318
  <schedule>
319
  <cron_expr>*/30 * * * *</cron_expr>
320
  </schedule>
321
  <run>
322
  <model>profileolabs_shoppingflux/manageorders_observer::manageOrders</model>
323
  </run>
324
+ </import_orders_shoppingflux>-->
325
  <export_updates_shoppingflux>
326
  <schedule>
327
  <cron_expr>*/10 * * * *</cron_expr>
354
  <model>profileolabs_shoppingflux/export_observer::fillMainCategory</model>
355
  </run>
356
  </fill_main_category>
357
+ <!--<export_shipments_shoppingflux>
358
  <schedule>
359
  <cron_expr>*/10 * * * *</cron_expr>
360
  </schedule>
361
  <run>
362
  <model>profileolabs_shoppingflux/manageorders_observer::sendScheduledShipments</model>
363
  </run>
364
+ </export_shipments_shoppingflux>-->
365
  <!--<export_updates_shoppingflux>
366
  <schedule>
367
  <cron_expr>*/5 * * * *</cron_expr>
396
  <create_invoice>1</create_invoice>
397
  <processing_order_status>processing</processing_order_status>
398
  <apply_tax>0</apply_tax>
399
+ <use_product_id>0</use_product_id>
400
+ <use_marketplace_date>1</use_marketplace_date>
401
  </manageorders>
402
  <shipment_update>
403
  <limit_hours>10</limit_hours>
431
  <default_shipping_method>flatrate_flatrate</default_shipping_method>
432
  <shipping_price_based_on>FR</shipping_price_based_on>
433
  <export_soldout>1</export_soldout>
434
+ <export_not_salable>0</export_not_salable>
435
  <export_visibility>2,3,4</export_visibility>
436
  <enable_cron>0</enable_cron>
437
  <memory_limit>512</memory_limit>
445
  <manage_catalog_rules>1</manage_catalog_rules>
446
  <manage_media_gallery>1</manage_media_gallery>
447
  </general>
448
+ <attributes_mapping>
449
  <ean>ean</ean>
450
  <isbn>isbn</isbn>
451
  <ref_manufacturer>ref_manufacturer</ref_manufacturer>
463
  <size>size</size>
464
  <shoe_size>shoe_size</shoe_size>
465
  <dimension>dimension</dimension>
466
+ <sku>sku</sku>
 
 
467
  <name>name</name>
468
  <description>description</description>
469
  <short_description>short_description</short_description>
470
+ <meta_title>meta_title</meta_title>
471
+ <meta_description>meta_description</meta_description>
472
  <meta_keyword>meta_keyword</meta_keyword>
473
  <weight>weight</weight>
474
  <color>color</color>
 
 
475
  <price>price</price>
476
  <special_price>special_price</special_price>
477
+ </attributes_mapping>
478
  </shoppingflux_export>
479
  </default>
480
  </config>
app/code/community/Profileolabs/Shoppingflux/etc/system.xml CHANGED
@@ -18,6 +18,7 @@
18
  <groups>
19
  <configuration translate="label" module="profileolabs_shoppingflux">
20
  <label>Configuration</label>
 
21
  <show_in_default>1</show_in_default>
22
  <show_in_website>1</show_in_website>
23
  <show_in_store>1</show_in_store>
@@ -36,8 +37,8 @@
36
  <label>API key</label>
37
  <frontend_type>text</frontend_type>
38
  <sort_order>20</sort_order>
39
- <show_in_default>1</show_in_default>
40
- <show_in_website>1</show_in_website>
41
  <show_in_store>1</show_in_store>
42
  </api_key>
43
  <id_tracking>
@@ -45,8 +46,8 @@
45
  <comment>Your ShoppingFlux Tracking ID</comment>
46
  <frontend_type>text</frontend_type>
47
  <sort_order>30</sort_order>
48
- <show_in_default>1</show_in_default>
49
- <show_in_website>1</show_in_website>
50
  <show_in_store>1</show_in_store>
51
  </id_tracking>
52
  <enable_buyline>
@@ -54,8 +55,8 @@
54
  <frontend_type>select</frontend_type>
55
  <source_model>adminhtml/system_config_source_yesno</source_model>
56
  <sort_order>30</sort_order>
57
- <show_in_default>1</show_in_default>
58
- <show_in_website>1</show_in_website>
59
  <show_in_store>1</show_in_store>
60
  </enable_buyline>
61
  <alert_email>
@@ -63,8 +64,8 @@
63
  <comment>In case of issue while transfering data, an email will be sent to this address.</comment>
64
  <frontend_type>text</frontend_type>
65
  <sort_order>100</sort_order>
66
- <show_in_default>1</show_in_default>
67
- <show_in_website>1</show_in_website>
68
  <show_in_store>1</show_in_store>
69
  </alert_email>
70
  </fields>
@@ -76,14 +77,15 @@
76
  <tab>shoppingflux</tab>
77
  <frontend_type>text</frontend_type>
78
  <sort_order>100</sort_order>
79
- <show_in_default>1</show_in_default>
80
- <show_in_website>1</show_in_website>
81
  <show_in_store>1</show_in_store>
82
  <groups>
83
  <manageorders translate="label" module="profileolabs_shoppingflux">
84
  <label>Manage Orders</label>
85
- <show_in_default>1</show_in_default>
86
- <show_in_website>1</show_in_website>
 
87
  <show_in_store>1</show_in_store>
88
  <sort_order>1</sort_order>
89
  <fields>
@@ -91,16 +93,16 @@
91
  <label>Enable order management</label>
92
  <frontend_type>select</frontend_type>
93
  <sort_order>10</sort_order>
94
- <show_in_default>1</show_in_default>
95
- <show_in_website>1</show_in_website>
96
  <show_in_store>1</show_in_store>
97
  <source_model>adminhtml/system_config_source_yesno</source_model>
98
  </enabled>
99
  <limit_orders>
100
  <label>Import by n orders</label>
101
  <sort_order>22</sort_order>
102
- <show_in_default>1</show_in_default>
103
- <show_in_website>1</show_in_website>
104
  <show_in_store>1</show_in_store>
105
  <comment>Limit number of orders imported. 10 by default</comment>
106
  </limit_orders>
@@ -109,17 +111,17 @@
109
  <frontend_type>select</frontend_type>
110
  <source_model>adminhtml/system_config_source_order_status_new</source_model>
111
  <sort_order>80</sort_order>
112
- <show_in_default>1</show_in_default>
113
- <show_in_website>1</show_in_website>
114
- <show_in_store>0</show_in_store>
115
  </new_order_status>
116
  <create_invoice>
117
  <label>Create invoice ?</label>
118
  <comment>If yes, an invoice will be created on ShoppingFlux's order creation</comment>
119
  <frontend_type>select</frontend_type>
120
  <sort_order>25</sort_order>
121
- <show_in_default>1</show_in_default>
122
- <show_in_website>1</show_in_website>
123
  <show_in_store>1</show_in_store>
124
  <source_model>adminhtml/system_config_source_yesno</source_model>
125
  </create_invoice>
@@ -128,26 +130,37 @@
128
  <frontend_type>select</frontend_type>
129
  <source_model>adminhtml/system_config_source_order_status_processing</source_model>
130
  <sort_order>80</sort_order>
131
- <show_in_default>1</show_in_default>
132
- <show_in_website>1</show_in_website>
133
- <show_in_store>0</show_in_store>
134
  </processing_order_status>
135
  <use_product_id>
136
  <label>Use Product ID's instead of SKU ?</label>
137
- <comment>Should be yes in most cases.</comment>
138
  <frontend_type>select</frontend_type>
139
- <sort_order>25</sort_order>
140
- <show_in_default>1</show_in_default>
141
- <show_in_website>1</show_in_website>
142
  <show_in_store>1</show_in_store>
143
  <source_model>adminhtml/system_config_source_yesno</source_model>
144
  </use_product_id>
 
 
 
 
 
 
 
 
 
 
145
  </fields>
146
  </manageorders>
147
  <import_customer translate="label" module="profileolabs_shoppingflux">
148
  <label>Customer Import</label>
149
- <show_in_default>1</show_in_default>
150
- <show_in_website>1</show_in_website>
 
151
  <show_in_store>1</show_in_store>
152
  <sort_order>2</sort_order>
153
  <fields>
@@ -156,26 +169,38 @@
156
  <comment>Leave empty to not limit length. Minimum value if filled : 20</comment>
157
  <frontend_type>text</frontend_type>
158
  <sort_order>5</sort_order>
159
- <show_in_default>1</show_in_default>
160
  <show_in_website>0</show_in_website>
161
- <show_in_store>0</show_in_store>
162
  </limit_address_length>
 
 
 
 
 
 
 
 
 
163
  <prefer_mobile_phone>
 
 
 
164
  <label>Import mobile phone instead of desk phone, if available</label>
165
  <frontend_type>select</frontend_type>
166
  <sort_order>7</sort_order>
167
- <show_in_default>1</show_in_default>
168
  <show_in_website>0</show_in_website>
169
- <show_in_store>0</show_in_store>
170
  <source_model>adminhtml/system_config_source_yesno</source_model>
171
  </prefer_mobile_phone>
172
  <default_group>
173
  <label>Default customer group</label>
174
  <frontend_type>select</frontend_type>
175
  <sort_order>10</sort_order>
176
- <show_in_default>1</show_in_default>
177
  <show_in_website>0</show_in_website>
178
- <show_in_store>0</show_in_store>
179
  <source_model>adminhtml/system_config_source_customer_group</source_model>
180
  </default_group>
181
  <amazon_group>
@@ -183,9 +208,9 @@
183
  <comment>Leave empty to use default group</comment>
184
  <frontend_type>select</frontend_type>
185
  <sort_order>30</sort_order>
186
- <show_in_default>1</show_in_default>
187
  <show_in_website>0</show_in_website>
188
- <show_in_store>0</show_in_store>
189
  <source_model>adminhtml/system_config_source_customer_group</source_model>
190
  </amazon_group>
191
  <cdiscount_group>
@@ -193,9 +218,9 @@
193
  <comment>Leave empty to use default group</comment>
194
  <frontend_type>select</frontend_type>
195
  <sort_order>40</sort_order>
196
- <show_in_default>1</show_in_default>
197
  <show_in_website>0</show_in_website>
198
- <show_in_store>0</show_in_store>
199
  <source_model>adminhtml/system_config_source_customer_group</source_model>
200
  </cdiscount_group>
201
  <ebay_group>
@@ -203,9 +228,9 @@
203
  <comment>Leave empty to use default group</comment>
204
  <frontend_type>select</frontend_type>
205
  <sort_order>50</sort_order>
206
- <show_in_default>1</show_in_default>
207
  <show_in_website>0</show_in_website>
208
- <show_in_store>0</show_in_store>
209
  <source_model>adminhtml/system_config_source_customer_group</source_model>
210
  </ebay_group>
211
  <fnac_group>
@@ -213,9 +238,9 @@
213
  <comment>Leave empty to use default group</comment>
214
  <frontend_type>select</frontend_type>
215
  <sort_order>50</sort_order>
216
- <show_in_default>1</show_in_default>
217
  <show_in_website>0</show_in_website>
218
- <show_in_store>0</show_in_store>
219
  <source_model>adminhtml/system_config_source_customer_group</source_model>
220
  </fnac_group>
221
  <pixmania_group>
@@ -223,9 +248,9 @@
223
  <comment>Leave empty to use default group</comment>
224
  <frontend_type>select</frontend_type>
225
  <sort_order>60</sort_order>
226
- <show_in_default>1</show_in_default>
227
  <show_in_website>0</show_in_website>
228
- <show_in_store>0</show_in_store>
229
  <source_model>adminhtml/system_config_source_customer_group</source_model>
230
  </pixmania_group>
231
  <priceminister_group>
@@ -233,9 +258,9 @@
233
  <comment>Leave empty to use default group</comment>
234
  <frontend_type>select</frontend_type>
235
  <sort_order>60</sort_order>
236
- <show_in_default>1</show_in_default>
237
  <show_in_website>0</show_in_website>
238
- <show_in_store>0</show_in_store>
239
  <source_model>adminhtml/system_config_source_customer_group</source_model>
240
  </priceminister_group>
241
  <rueducommerce_group>
@@ -243,9 +268,9 @@
243
  <comment>Leave empty to use default group</comment>
244
  <frontend_type>select</frontend_type>
245
  <sort_order>60</sort_order>
246
- <show_in_default>1</show_in_default>
247
  <show_in_website>0</show_in_website>
248
- <show_in_store>0</show_in_store>
249
  <source_model>adminhtml/system_config_source_customer_group</source_model>
250
  </rueducommerce_group>
251
  <brandalley_group>
@@ -253,9 +278,9 @@
253
  <comment>Leave empty to use default group</comment>
254
  <frontend_type>select</frontend_type>
255
  <sort_order>60</sort_order>
256
- <show_in_default>1</show_in_default>
257
  <show_in_website>0</show_in_website>
258
- <show_in_store>0</show_in_store>
259
  <source_model>adminhtml/system_config_source_customer_group</source_model>
260
  </brandalley_group>
261
  <toutaporter_group>
@@ -263,9 +288,9 @@
263
  <comment>Leave empty to use default group</comment>
264
  <frontend_type>select</frontend_type>
265
  <sort_order>60</sort_order>
266
- <show_in_default>1</show_in_default>
267
  <show_in_website>0</show_in_website>
268
- <show_in_store>0</show_in_store>
269
  <source_model>adminhtml/system_config_source_customer_group</source_model>
270
  </toutaporter_group>
271
  <greenrepublic_group>
@@ -273,9 +298,9 @@
273
  <comment>Leave empty to use default group</comment>
274
  <frontend_type>select</frontend_type>
275
  <sort_order>60</sort_order>
276
- <show_in_default>1</show_in_default>
277
  <show_in_website>0</show_in_website>
278
- <show_in_store>0</show_in_store>
279
  <source_model>adminhtml/system_config_source_customer_group</source_model>
280
  </greenrepublic_group>
281
  <laredoute_group>
@@ -283,9 +308,9 @@
283
  <comment>Leave empty to use default group</comment>
284
  <frontend_type>select</frontend_type>
285
  <sort_order>60</sort_order>
286
- <show_in_default>1</show_in_default>
287
  <show_in_website>0</show_in_website>
288
- <show_in_store>0</show_in_store>
289
  <source_model>adminhtml/system_config_source_customer_group</source_model>
290
  </laredoute_group>
291
  <babyssima_group>
@@ -293,9 +318,9 @@
293
  <comment>Leave empty to use default group</comment>
294
  <frontend_type>select</frontend_type>
295
  <sort_order>60</sort_order>
296
- <show_in_default>1</show_in_default>
297
  <show_in_website>0</show_in_website>
298
- <show_in_store>0</show_in_store>
299
  <source_model>adminhtml/system_config_source_customer_group</source_model>
300
  </babyssima_group>
301
  <ecitizen_group>
@@ -303,9 +328,9 @@
303
  <comment>Leave empty to use default group</comment>
304
  <frontend_type>select</frontend_type>
305
  <sort_order>60</sort_order>
306
- <show_in_default>1</show_in_default>
307
  <show_in_website>0</show_in_website>
308
- <show_in_store>0</show_in_store>
309
  <source_model>adminhtml/system_config_source_customer_group</source_model>
310
  </ecitizen_group>
311
  <decofinder_group>
@@ -313,9 +338,9 @@
313
  <comment>Leave empty to use default group</comment>
314
  <frontend_type>select</frontend_type>
315
  <sort_order>60</sort_order>
316
- <show_in_default>1</show_in_default>
317
  <show_in_website>0</show_in_website>
318
- <show_in_store>0</show_in_store>
319
  <source_model>adminhtml/system_config_source_customer_group</source_model>
320
  </decofinder_group>
321
  <docteurdiscount_group>
@@ -323,9 +348,9 @@
323
  <comment>Leave empty to use default group</comment>
324
  <frontend_type>select</frontend_type>
325
  <sort_order>60</sort_order>
326
- <show_in_default>1</show_in_default>
327
  <show_in_website>0</show_in_website>
328
- <show_in_store>0</show_in_store>
329
  <source_model>adminhtml/system_config_source_customer_group</source_model>
330
  </docteurdiscount_group>
331
  <glamour_group>
@@ -333,9 +358,9 @@
333
  <comment>Leave empty to use default group</comment>
334
  <frontend_type>select</frontend_type>
335
  <sort_order>60</sort_order>
336
- <show_in_default>1</show_in_default>
337
  <show_in_website>0</show_in_website>
338
- <show_in_store>0</show_in_store>
339
  <source_model>adminhtml/system_config_source_customer_group</source_model>
340
  </glamour_group>
341
  <gstk_group>
@@ -343,9 +368,9 @@
343
  <comment>Leave empty to use default group</comment>
344
  <frontend_type>select</frontend_type>
345
  <sort_order>60</sort_order>
346
- <show_in_default>1</show_in_default>
347
  <show_in_website>0</show_in_website>
348
- <show_in_store>0</show_in_store>
349
  <source_model>adminhtml/system_config_source_customer_group</source_model>
350
  </gstk_group>
351
  <mistergooddeal_group>
@@ -353,9 +378,9 @@
353
  <comment>Leave empty to use default group</comment>
354
  <frontend_type>select</frontend_type>
355
  <sort_order>70</sort_order>
356
- <show_in_default>1</show_in_default>
357
  <show_in_website>0</show_in_website>
358
- <show_in_store>0</show_in_store>
359
  <source_model>adminhtml/system_config_source_customer_group</source_model>
360
  </mistergooddeal_group>
361
  <placedumariage_group>
@@ -363,9 +388,9 @@
363
  <comment>Leave empty to use default group</comment>
364
  <frontend_type>select</frontend_type>
365
  <sort_order>70</sort_order>
366
- <show_in_default>1</show_in_default>
367
  <show_in_website>0</show_in_website>
368
- <show_in_store>0</show_in_store>
369
  <source_model>adminhtml/system_config_source_customer_group</source_model>
370
  </placedumariage_group>
371
  <tap_group>
@@ -373,9 +398,9 @@
373
  <comment>Leave empty to use default group</comment>
374
  <frontend_type>select</frontend_type>
375
  <sort_order>70</sort_order>
376
- <show_in_default>1</show_in_default>
377
  <show_in_website>0</show_in_website>
378
- <show_in_store>0</show_in_store>
379
  <source_model>adminhtml/system_config_source_customer_group</source_model>
380
  </tap_group>
381
  <spartoo_group>
@@ -383,9 +408,9 @@
383
  <comment>Leave empty to use default group</comment>
384
  <frontend_type>select</frontend_type>
385
  <sort_order>70</sort_order>
386
- <show_in_default>1</show_in_default>
387
  <show_in_website>0</show_in_website>
388
- <show_in_store>0</show_in_store>
389
  <source_model>adminhtml/system_config_source_customer_group</source_model>
390
  </spartoo_group>
391
  <jardinermalin_group>
@@ -393,9 +418,9 @@
393
  <comment>Leave empty to use default group</comment>
394
  <frontend_type>select</frontend_type>
395
  <sort_order>70</sort_order>
396
- <show_in_default>1</show_in_default>
397
  <show_in_website>0</show_in_website>
398
- <show_in_store>0</show_in_store>
399
  <source_model>adminhtml/system_config_source_customer_group</source_model>
400
  </jardinermalin_group>
401
  <monechelle_group>
@@ -403,9 +428,9 @@
403
  <comment>Leave empty to use default group</comment>
404
  <frontend_type>select</frontend_type>
405
  <sort_order>70</sort_order>
406
- <show_in_default>1</show_in_default>
407
  <show_in_website>0</show_in_website>
408
- <show_in_store>0</show_in_store>
409
  <source_model>adminhtml/system_config_source_customer_group</source_model>
410
  </monechelle_group>
411
  <localismarket_group>
@@ -413,9 +438,9 @@
413
  <comment>Leave empty to use default group</comment>
414
  <frontend_type>select</frontend_type>
415
  <sort_order>70</sort_order>
416
- <show_in_default>1</show_in_default>
417
  <show_in_website>0</show_in_website>
418
- <show_in_store>0</show_in_store>
419
  <source_model>adminhtml/system_config_source_customer_group</source_model>
420
  </localismarket_group>
421
  <galerieslafayette_group>
@@ -423,9 +448,9 @@
423
  <comment>Leave empty to use default group</comment>
424
  <frontend_type>select</frontend_type>
425
  <sort_order>70</sort_order>
426
- <show_in_default>1</show_in_default>
427
  <show_in_website>0</show_in_website>
428
- <show_in_store>0</show_in_store>
429
  <source_model>adminhtml/system_config_source_customer_group</source_model>
430
  </galerieslafayette_group>
431
  <monchouchou_group>
@@ -433,9 +458,9 @@
433
  <comment>Leave empty to use default group</comment>
434
  <frontend_type>select</frontend_type>
435
  <sort_order>70</sort_order>
436
- <show_in_default>1</show_in_default>
437
  <show_in_website>0</show_in_website>
438
- <show_in_store>0</show_in_store>
439
  <source_model>adminhtml/system_config_source_customer_group</source_model>
440
  </monchouchou_group>
441
  <elevenmain_group>
@@ -443,9 +468,9 @@
443
  <comment>Leave empty to use default group</comment>
444
  <frontend_type>select</frontend_type>
445
  <sort_order>70</sort_order>
446
- <show_in_default>1</show_in_default>
447
  <show_in_website>0</show_in_website>
448
- <show_in_store>0</show_in_store>
449
  <source_model>adminhtml/system_config_source_customer_group</source_model>
450
  </elevenmain_group>
451
  <sears_group>
@@ -453,9 +478,9 @@
453
  <comment>Leave empty to use default group</comment>
454
  <frontend_type>select</frontend_type>
455
  <sort_order>70</sort_order>
456
- <show_in_default>1</show_in_default>
457
  <show_in_website>0</show_in_website>
458
- <show_in_store>0</show_in_store>
459
  <source_model>adminhtml/system_config_source_customer_group</source_model>
460
  </sears_group>
461
  <wizacha_group>
@@ -463,17 +488,18 @@
463
  <comment>Leave empty to use default group</comment>
464
  <frontend_type>select</frontend_type>
465
  <sort_order>70</sort_order>
466
- <show_in_default>1</show_in_default>
467
  <show_in_website>0</show_in_website>
468
- <show_in_store>0</show_in_store>
469
  <source_model>adminhtml/system_config_source_customer_group</source_model>
470
  </wizacha_group>
471
  </fields>
472
  </import_customer>
473
  <shipping_method translate="label" module="profileolabs_shoppingflux">
474
  <label>Shipping Method</label>
475
- <show_in_default>1</show_in_default>
476
- <show_in_website>1</show_in_website>
 
477
  <show_in_store>1</show_in_store>
478
  <sort_order>3</sort_order>
479
  <fields>
@@ -482,9 +508,9 @@
482
  <comment>Specific shipping method to use for imported ShoppingFlux's order</comment>
483
  <frontend_type>select</frontend_type>
484
  <sort_order>10</sort_order>
485
- <show_in_default>1</show_in_default>
486
  <show_in_website>0</show_in_website>
487
- <show_in_store>0</show_in_store>
488
  <source_model>adminhtml/system_config_source_shipping_allmethods</source_model>
489
  </default_method>
490
  <amazon_method>
@@ -492,9 +518,9 @@
492
  <comment>Leave empty to use default shipping method.</comment>
493
  <frontend_type>select</frontend_type>
494
  <sort_order>30</sort_order>
495
- <show_in_default>1</show_in_default>
496
  <show_in_website>0</show_in_website>
497
- <show_in_store>0</show_in_store>
498
  <source_model>adminhtml/system_config_source_shipping_allmethods</source_model>
499
  </amazon_method>
500
  <cdiscount_method>
@@ -502,9 +528,9 @@
502
  <comment>Leave empty to use default shipping method.</comment>
503
  <frontend_type>select</frontend_type>
504
  <sort_order>40</sort_order>
505
- <show_in_default>1</show_in_default>
506
  <show_in_website>0</show_in_website>
507
- <show_in_store>0</show_in_store>
508
  <source_model>adminhtml/system_config_source_shipping_allmethods</source_model>
509
  </cdiscount_method>
510
  <ebay_method>
@@ -512,9 +538,9 @@
512
  <comment>Leave empty to use default shipping method.</comment>
513
  <frontend_type>select</frontend_type>
514
  <sort_order>50</sort_order>
515
- <show_in_default>1</show_in_default>
516
  <show_in_website>0</show_in_website>
517
- <show_in_store>0</show_in_store>
518
  <source_model>adminhtml/system_config_source_shipping_allmethods</source_model>
519
  </ebay_method>
520
  <fnac_method>
@@ -522,9 +548,9 @@
522
  <comment>Leave empty to use default shipping method.</comment>
523
  <frontend_type>select</frontend_type>
524
  <sort_order>50</sort_order>
525
- <show_in_default>1</show_in_default>
526
  <show_in_website>0</show_in_website>
527
- <show_in_store>0</show_in_store>
528
  <source_model>adminhtml/system_config_source_shipping_allmethods</source_model>
529
  </fnac_method>
530
  <pixmania_method>
@@ -532,9 +558,9 @@
532
  <comment>Leave empty to use default shipping method.</comment>
533
  <frontend_type>select</frontend_type>
534
  <sort_order>60</sort_order>
535
- <show_in_default>1</show_in_default>
536
  <show_in_website>0</show_in_website>
537
- <show_in_store>0</show_in_store>
538
  <source_model>adminhtml/system_config_source_shipping_allmethods</source_model>
539
  </pixmania_method>
540
  <priceminister_method>
@@ -542,9 +568,9 @@
542
  <comment>Leave empty to use default shipping method.</comment>
543
  <frontend_type>select</frontend_type>
544
  <sort_order>60</sort_order>
545
- <show_in_default>1</show_in_default>
546
  <show_in_website>0</show_in_website>
547
- <show_in_store>0</show_in_store>
548
  <source_model>adminhtml/system_config_source_shipping_allmethods</source_model>
549
  </priceminister_method>
550
  <rueducommerce_method>
@@ -552,9 +578,9 @@
552
  <comment>Leave empty to use default shipping method.</comment>
553
  <frontend_type>select</frontend_type>
554
  <sort_order>60</sort_order>
555
- <show_in_default>1</show_in_default>
556
  <show_in_website>0</show_in_website>
557
- <show_in_store>0</show_in_store>
558
  <source_model>adminhtml/system_config_source_shipping_allmethods</source_model>
559
  </rueducommerce_method>
560
  <brandalley_method>
@@ -562,9 +588,9 @@
562
  <comment>Leave empty to use default shipping method.</comment>
563
  <frontend_type>select</frontend_type>
564
  <sort_order>60</sort_order>
565
- <show_in_default>1</show_in_default>
566
  <show_in_website>0</show_in_website>
567
- <show_in_store>0</show_in_store>
568
  <source_model>adminhtml/system_config_source_shipping_allmethods</source_model>
569
  </brandalley_method>
570
  <toutaporter_method>
@@ -572,9 +598,9 @@
572
  <comment>Leave empty to use default shipping method.</comment>
573
  <frontend_type>select</frontend_type>
574
  <sort_order>60</sort_order>
575
- <show_in_default>1</show_in_default>
576
  <show_in_website>0</show_in_website>
577
- <show_in_store>0</show_in_store>
578
  <source_model>adminhtml/system_config_source_shipping_allmethods</source_model>
579
  </toutaporter_method>
580
  <greenrepublic_method>
@@ -582,9 +608,9 @@
582
  <comment>Leave empty to use default shipping method.</comment>
583
  <frontend_type>select</frontend_type>
584
  <sort_order>60</sort_order>
585
- <show_in_default>1</show_in_default>
586
  <show_in_website>0</show_in_website>
587
- <show_in_store>0</show_in_store>
588
  <source_model>adminhtml/system_config_source_shipping_allmethods</source_model>
589
  </greenrepublic_method>
590
  <laredoute_method>
@@ -592,9 +618,9 @@
592
  <comment>Leave empty to use default shipping method.</comment>
593
  <frontend_type>select</frontend_type>
594
  <sort_order>60</sort_order>
595
- <show_in_default>1</show_in_default>
596
  <show_in_website>0</show_in_website>
597
- <show_in_store>0</show_in_store>
598
  <source_model>adminhtml/system_config_source_shipping_allmethods</source_model>
599
  </laredoute_method>
600
  <babyssima_method>
@@ -602,9 +628,9 @@
602
  <comment>Leave empty to use default shipping method.</comment>
603
  <frontend_type>select</frontend_type>
604
  <sort_order>60</sort_order>
605
- <show_in_default>1</show_in_default>
606
  <show_in_website>0</show_in_website>
607
- <show_in_store>0</show_in_store>
608
  <source_model>adminhtml/system_config_source_shipping_allmethods</source_model>
609
  </babyssima_method>
610
  <monechelle_method>
@@ -612,9 +638,9 @@
612
  <comment>Leave empty to use default shipping method.</comment>
613
  <frontend_type>select</frontend_type>
614
  <sort_order>60</sort_order>
615
- <show_in_default>1</show_in_default>
616
  <show_in_website>0</show_in_website>
617
- <show_in_store>0</show_in_store>
618
  <source_model>adminhtml/system_config_source_shipping_allmethods</source_model>
619
  </monechelle_method>
620
  <ecitizen_method>
@@ -622,9 +648,9 @@
622
  <comment>Leave empty to use default shipping method.</comment>
623
  <frontend_type>select</frontend_type>
624
  <sort_order>60</sort_order>
625
- <show_in_default>1</show_in_default>
626
  <show_in_website>0</show_in_website>
627
- <show_in_store>0</show_in_store>
628
  <source_model>adminhtml/system_config_source_shipping_allmethods</source_model>
629
  </ecitizen_method>
630
  <decofinder_method>
@@ -632,9 +658,9 @@
632
  <comment>Leave empty to use default shipping method.</comment>
633
  <frontend_type>select</frontend_type>
634
  <sort_order>60</sort_order>
635
- <show_in_default>1</show_in_default>
636
  <show_in_website>0</show_in_website>
637
- <show_in_store>0</show_in_store>
638
  <source_model>adminhtml/system_config_source_shipping_allmethods</source_model>
639
  </decofinder_method>
640
  <docteurdiscount_method>
@@ -642,9 +668,9 @@
642
  <comment>Leave empty to use default shipping method.</comment>
643
  <frontend_type>select</frontend_type>
644
  <sort_order>60</sort_order>
645
- <show_in_default>1</show_in_default>
646
  <show_in_website>0</show_in_website>
647
- <show_in_store>0</show_in_store>
648
  <source_model>adminhtml/system_config_source_shipping_allmethods</source_model>
649
  </docteurdiscount_method>
650
  <glamour_method>
@@ -652,9 +678,9 @@
652
  <comment>Leave empty to use default shipping method.</comment>
653
  <frontend_type>select</frontend_type>
654
  <sort_order>60</sort_order>
655
- <show_in_default>1</show_in_default>
656
  <show_in_website>0</show_in_website>
657
- <show_in_store>0</show_in_store>
658
  <source_model>adminhtml/system_config_source_shipping_allmethods</source_model>
659
  </glamour_method>
660
  <gstk_method>
@@ -662,9 +688,9 @@
662
  <comment>Leave empty to use default shipping method.</comment>
663
  <frontend_type>select</frontend_type>
664
  <sort_order>60</sort_order>
665
- <show_in_default>1</show_in_default>
666
  <show_in_website>0</show_in_website>
667
- <show_in_store>0</show_in_store>
668
  <source_model>adminhtml/system_config_source_shipping_allmethods</source_model>
669
  </gstk_method>
670
  <mistergooddeal_method>
@@ -672,9 +698,9 @@
672
  <comment>Leave empty to use default shipping method.</comment>
673
  <frontend_type>select</frontend_type>
674
  <sort_order>60</sort_order>
675
- <show_in_default>1</show_in_default>
676
  <show_in_website>0</show_in_website>
677
- <show_in_store>0</show_in_store>
678
  <source_model>adminhtml/system_config_source_shipping_allmethods</source_model>
679
  </mistergooddeal_method>
680
  <placedumariage_method>
@@ -682,9 +708,9 @@
682
  <comment>Leave empty to use default shipping method.</comment>
683
  <frontend_type>select</frontend_type>
684
  <sort_order>60</sort_order>
685
- <show_in_default>1</show_in_default>
686
  <show_in_website>0</show_in_website>
687
- <show_in_store>0</show_in_store>
688
  <source_model>adminhtml/system_config_source_shipping_allmethods</source_model>
689
  </placedumariage_method>
690
  <tap_method>
@@ -692,9 +718,9 @@
692
  <comment>Leave empty to use default shipping method.</comment>
693
  <frontend_type>select</frontend_type>
694
  <sort_order>60</sort_order>
695
- <show_in_default>1</show_in_default>
696
  <show_in_website>0</show_in_website>
697
- <show_in_store>0</show_in_store>
698
  <source_model>adminhtml/system_config_source_shipping_allmethods</source_model>
699
  </tap_method>
700
  <spartoo_method>
@@ -702,9 +728,9 @@
702
  <comment>Leave empty to use default shipping method.</comment>
703
  <frontend_type>select</frontend_type>
704
  <sort_order>60</sort_order>
705
- <show_in_default>1</show_in_default>
706
  <show_in_website>0</show_in_website>
707
- <show_in_store>0</show_in_store>
708
  <source_model>adminhtml/system_config_source_shipping_allmethods</source_model>
709
  </spartoo_method>
710
  <jardinermalin_method>
@@ -712,9 +738,9 @@
712
  <comment>Leave empty to use default shipping method.</comment>
713
  <frontend_type>select</frontend_type>
714
  <sort_order>60</sort_order>
715
- <show_in_default>1</show_in_default>
716
  <show_in_website>0</show_in_website>
717
- <show_in_store>0</show_in_store>
718
  <source_model>adminhtml/system_config_source_shipping_allmethods</source_model>
719
  </jardinermalin_method>
720
  <localismarket_method>
@@ -722,9 +748,9 @@
722
  <comment>Leave empty to use default shipping method.</comment>
723
  <frontend_type>select</frontend_type>
724
  <sort_order>60</sort_order>
725
- <show_in_default>1</show_in_default>
726
  <show_in_website>0</show_in_website>
727
- <show_in_store>0</show_in_store>
728
  <source_model>adminhtml/system_config_source_shipping_allmethods</source_model>
729
  </localismarket_method>
730
  <galerieslafayette_method>
@@ -732,9 +758,9 @@
732
  <comment>Leave empty to use default shipping method.</comment>
733
  <frontend_type>select</frontend_type>
734
  <sort_order>60</sort_order>
735
- <show_in_default>1</show_in_default>
736
  <show_in_website>0</show_in_website>
737
- <show_in_store>0</show_in_store>
738
  <source_model>adminhtml/system_config_source_shipping_allmethods</source_model>
739
  </galerieslafayette_method>
740
  <monchouchou_method>
@@ -742,9 +768,9 @@
742
  <comment>Leave empty to use default shipping method.</comment>
743
  <frontend_type>select</frontend_type>
744
  <sort_order>60</sort_order>
745
- <show_in_default>1</show_in_default>
746
  <show_in_website>0</show_in_website>
747
- <show_in_store>0</show_in_store>
748
  <source_model>adminhtml/system_config_source_shipping_allmethods</source_model>
749
  </monchouchou_method>
750
  <elevenmain_method>
@@ -752,9 +778,9 @@
752
  <comment>Leave empty to use default shipping method.</comment>
753
  <frontend_type>select</frontend_type>
754
  <sort_order>60</sort_order>
755
- <show_in_default>1</show_in_default>
756
  <show_in_website>0</show_in_website>
757
- <show_in_store>0</show_in_store>
758
  <source_model>adminhtml/system_config_source_shipping_allmethods</source_model>
759
  </elevenmain_method>
760
  <sears_method>
@@ -762,9 +788,9 @@
762
  <comment>Leave empty to use default shipping method.</comment>
763
  <frontend_type>select</frontend_type>
764
  <sort_order>60</sort_order>
765
- <show_in_default>1</show_in_default>
766
  <show_in_website>0</show_in_website>
767
- <show_in_store>0</show_in_store>
768
  <source_model>adminhtml/system_config_source_shipping_allmethods</source_model>
769
  </sears_method>
770
  <wizacha_method>
@@ -772,9 +798,9 @@
772
  <comment>Leave empty to use default shipping method.</comment>
773
  <frontend_type>select</frontend_type>
774
  <sort_order>60</sort_order>
775
- <show_in_default>1</show_in_default>
776
  <show_in_website>0</show_in_website>
777
- <show_in_store>0</show_in_store>
778
  <source_model>adminhtml/system_config_source_shipping_allmethods</source_model>
779
  </wizacha_method>
780
 
@@ -783,15 +809,16 @@
783
  <advanced_shipping_method translate="label" module="profileolabs_shoppingflux">
784
  <label>Advanced Shipping Methods Mapping</label>
785
  <frontend_model>profileolabs_shoppingflux/manageorders_adminhtml_system_config_form_fieldset_shipping_method</frontend_model>
786
- <show_in_default>1</show_in_default>
787
- <show_in_website>1</show_in_website>
788
  <show_in_store>1</show_in_store>
789
  <sort_order>4</sort_order>
790
  </advanced_shipping_method>
791
  <shipment_update translate="label" module="profileolabs_shoppingflux">
792
  <label>Shipment Update</label>
793
- <show_in_default>1</show_in_default>
794
- <show_in_website>1</show_in_website>
 
795
  <show_in_store>1</show_in_store>
796
  <sort_order>5</sort_order>
797
  <fields>
@@ -800,8 +827,8 @@
800
  <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>
801
  <frontend_type>text</frontend_type>
802
  <sort_order>10</sort_order>
803
- <show_in_default>1</show_in_default>
804
- <show_in_website>1</show_in_website>
805
  <show_in_store>1</show_in_store>
806
  </limit_hours>
807
  </fields>
@@ -813,15 +840,16 @@
813
  <tab>shoppingflux</tab>
814
  <frontend_type>text</frontend_type>
815
  <sort_order>90</sort_order>
816
- <show_in_default>1</show_in_default>
817
- <show_in_website>1</show_in_website>
818
  <show_in_store>1</show_in_store>
819
  <groups>
820
  <general translate="label">
821
  <label>General</label>
 
822
  <comment><![CDATA[<b style='color:red'>Feed URL :</b>&nbsp;&nbsp;<span style='font-size:14px;font-style:italic;'>http://domain.tld/shoppingflux/export_flux/</span><br /><br /><br />]]></comment>
823
- <show_in_default>1</show_in_default>
824
- <show_in_website>1</show_in_website>
825
  <show_in_store>1</show_in_store>
826
  <sort_order>1</sort_order>
827
  <fields>
@@ -830,8 +858,8 @@
830
  <comment></comment>
831
  <frontend_type>select</frontend_type>
832
  <sort_order>1</sort_order>
833
- <show_in_default>1</show_in_default>
834
- <show_in_website>1</show_in_website>
835
  <show_in_store>1</show_in_store>
836
  <source_model>adminhtml/system_config_source_yesno</source_model>
837
  </active>
@@ -840,8 +868,8 @@
840
  <comment><![CDATA[If yes, you'll have to select products in <strong>Shoppingflux > Product Selection</strong>]]></comment>
841
  <frontend_type>select</frontend_type>
842
  <sort_order>5</sort_order>
843
- <show_in_default>1</show_in_default>
844
- <show_in_website>1</show_in_website>
845
  <show_in_store>1</show_in_store>
846
  <source_model>adminhtml/system_config_source_yesno</source_model>
847
  </filter_by_attribute>
@@ -849,8 +877,8 @@
849
  <label>Export par n produits</label>
850
  <comment></comment>
851
  <sort_order>10</sort_order>
852
- <show_in_default>1</show_in_default>
853
- <show_in_website>1</show_in_website>
854
  <show_in_store>1</show_in_store>
855
  <comment>Limite le nombre de produit par lots</comment>
856
  </limit_product> -->
@@ -859,8 +887,8 @@
859
  <comment><![CDATA[Shipping delay, in <strong>days</strong>. This will be used if no shipping delay attribute is mapped.]]></comment>
860
  <frontend_type>text</frontend_type>
861
  <sort_order>20</sort_order>
862
- <show_in_default>1</show_in_default>
863
- <show_in_website>1</show_in_website>
864
  <show_in_store>1</show_in_store>
865
  </default_shipping_delay>
866
  <default_shipping_price>
@@ -868,8 +896,8 @@
868
  <comment>Default shipping fees amount</comment>
869
  <frontend_type>text</frontend_type>
870
  <sort_order>40</sort_order>
871
- <show_in_default>1</show_in_default>
872
- <show_in_website>1</show_in_website>
873
  <show_in_store>1</show_in_store>
874
  </default_shipping_price>
875
  <default_shipping_method>
@@ -878,8 +906,8 @@
878
  <frontend_type>select</frontend_type>
879
  <source_model>adminhtml/system_config_source_shipping_allmethods</source_model>
880
  <sort_order>30</sort_order>
881
- <show_in_default>1</show_in_default>
882
- <show_in_website>1</show_in_website>
883
  <show_in_store>1</show_in_store>
884
  </default_shipping_method>
885
  <try_use_real_shipping_price>
@@ -887,171 +915,247 @@
887
  <comment>Disable this option if you have memory issues.</comment>
888
  <frontend_type>select</frontend_type>
889
  <sort_order>40</sort_order>
890
- <show_in_default>1</show_in_default>
891
- <show_in_website>1</show_in_website>
892
  <show_in_store>1</show_in_store>
893
  <source_model>adminhtml/system_config_source_yesno</source_model>
894
  </try_use_real_shipping_price>
895
- <shipping_price_based_on>
896
- <label>Shipping Country</label>
897
- <comment>Default country used to calculate shipping fees</comment>
898
- <frontend_type>select</frontend_type>
899
- <source_model>adminhtml/system_config_source_country</source_model>
900
- <sort_order>50</sort_order>
901
- <show_in_default>1</show_in_default>
902
- <show_in_website>1</show_in_website>
903
- <show_in_store>1</show_in_store>
904
- </shipping_price_based_on>
905
  <export_soldout>
906
  <label>Export out of stock products</label>
907
  <comment></comment>
908
  <frontend_type>select</frontend_type>
909
- <sort_order>60</sort_order>
910
- <show_in_default>1</show_in_default>
911
- <show_in_website>1</show_in_website>
912
  <show_in_store>1</show_in_store>
913
  <source_model>adminhtml/system_config_source_yesno</source_model>
914
  </export_soldout>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
915
  <export_visibility>
 
 
 
916
  <label>Export product with visibility :</label>
917
  <comment></comment>
918
  <frontend_type>multiselect</frontend_type>
919
  <sort_order>70</sort_order>
920
- <show_in_default>1</show_in_default>
921
- <show_in_website>1</show_in_website>
922
  <show_in_store>1</show_in_store>
923
  <source_model>profileolabs_shoppingflux/export_source_visibility</source_model>
924
  </export_visibility>
925
  <memory_limit>
 
 
 
926
  <label>Memory limit</label>
927
  <comment>in MB. Do not modify if you don't know what you are doing.</comment>
928
  <frontend_type>text</frontend_type>
929
  <sort_order>100</sort_order>
930
- <show_in_default>1</show_in_default>
931
  <show_in_website>0</show_in_website>
932
- <show_in_store>0</show_in_store>
933
  </memory_limit>
934
  <enable_sync>
 
 
 
935
  <label>Enable automatic updates ?</label>
936
  <comment>Update stocks and prices in real time. This could slow down price and stock modifications.</comment>
937
  <frontend_type>select</frontend_type>
938
  <sort_order>120</sort_order>
939
- <show_in_default>1</show_in_default>
940
  <show_in_website>0</show_in_website>
941
- <show_in_store>0</show_in_store>
942
  <source_model>adminhtml/system_config_source_yesno</source_model>
943
  </enable_sync>
944
  <enable_cron>
 
 
 
945
  <label>Enable background generation ?</label>
946
  <comment>Update feed on background if needed.</comment>
947
  <frontend_type>select</frontend_type>
948
  <sort_order>125</sort_order>
949
- <show_in_default>1</show_in_default>
950
  <show_in_website>0</show_in_website>
951
- <show_in_store>0</show_in_store>
952
  <source_model>adminhtml/system_config_source_yesno</source_model>
953
  </enable_cron>
954
  <use_manage_stock>
 
 
 
955
  <label>Manage 'Manage stock' attribute ?</label>
956
  <comment>If yes, products with 'Manage stock' = 'No' will have a stock qty to 100 in the feed.</comment>
957
  <frontend_type>select</frontend_type>
958
  <sort_order>130</sort_order>
959
- <show_in_default>1</show_in_default>
960
  <show_in_website>0</show_in_website>
961
- <show_in_store>0</show_in_store>
962
  <source_model>adminhtml/system_config_source_yesno</source_model>
963
  <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
964
  </use_manage_stock>
965
  <all_store_products>
 
 
 
966
  <label>Export products from all stores ?</label>
967
  <comment>If any doubt exists, leave it to 'No'</comment>
968
  <frontend_type>select</frontend_type>
969
  <sort_order>135</sort_order>
970
- <show_in_default>1</show_in_default>
971
  <show_in_website>0</show_in_website>
972
- <show_in_store>0</show_in_store>
973
  <source_model>adminhtml/system_config_source_yesno</source_model>
974
  </all_store_products>
975
  <all_store_categories>
 
 
 
976
  <label>Use categories from all stores ?</label>
977
  <comment>If any doubt exists, leave it to 'No'</comment>
978
  <frontend_type>select</frontend_type>
979
  <sort_order>140</sort_order>
980
- <show_in_default>1</show_in_default>
981
  <show_in_website>0</show_in_website>
982
- <show_in_store>0</show_in_store>
983
  <source_model>adminhtml/system_config_source_yesno</source_model>
984
  <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
985
  </all_store_categories>
986
  <use_only_shoppingflux_category>
 
 
 
987
  <label>Use only ShoppingFlux category ?</label>
988
  <comment>Faster if yes.</comment>
989
  <frontend_type>select</frontend_type>
990
  <sort_order>150</sort_order>
991
- <show_in_default>1</show_in_default>
992
- <show_in_website>1</show_in_website>
993
  <show_in_store>1</show_in_store>
994
  <source_model>adminhtml/system_config_source_yesno</source_model>
995
  <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
996
  </use_only_shoppingflux_category>
997
  <max_category_level>
 
 
 
998
  <label>Use only X first category levels</label>
999
  <frontend_type>select</frontend_type>
1000
  <sort_order>150</sort_order>
1001
- <show_in_default>1</show_in_default>
1002
- <show_in_website>1</show_in_website>
1003
  <show_in_store>1</show_in_store>
1004
  <source_model>profileolabs_shoppingflux/export_source_category_level</source_model>
1005
  <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
1006
  </max_category_level>
1007
  <enable_events>
 
 
 
1008
  <label>Enable ShoppingFlux events ?</label>
1009
  <comment>Usefull only in case of specific developments.</comment>
1010
  <frontend_type>select</frontend_type>
1011
  <sort_order>160</sort_order>
1012
- <show_in_default>1</show_in_default>
1013
- <show_in_website>1</show_in_website>
1014
  <show_in_store>1</show_in_store>
1015
  <source_model>adminhtml/system_config_source_yesno</source_model>
1016
  </enable_events>
1017
  <manage_configurable>
 
 
 
1018
  <label>Advanced management of configurable products ?</label>
1019
  <comment>If no, only configurable products will be transfered (without their children). In most cases, should be set to 'Yes'.</comment>
1020
  <frontend_type>select</frontend_type>
1021
  <sort_order>170</sort_order>
1022
- <show_in_default>1</show_in_default>
1023
- <show_in_website>1</show_in_website>
1024
  <show_in_store>1</show_in_store>
1025
  <source_model>adminhtml/system_config_source_yesno</source_model>
1026
  <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
1027
  </manage_configurable>
1028
  <manage_catalog_rules>
 
 
 
1029
  <label>Manage catalog price rules ?</label>
1030
  <frontend_type>select</frontend_type>
1031
  <sort_order>180</sort_order>
1032
- <show_in_default>1</show_in_default>
1033
- <show_in_website>1</show_in_website>
1034
  <show_in_store>1</show_in_store>
1035
  <source_model>adminhtml/system_config_source_yesno</source_model>
1036
  <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
1037
  </manage_catalog_rules>
1038
  <manage_media_gallery>
 
 
 
1039
  <label>Manage product galleries ?</label>
1040
  <comment>Does not concern main image. Faster if 'No'.</comment>
1041
  <frontend_type>select</frontend_type>
1042
  <sort_order>190</sort_order>
1043
- <show_in_default>1</show_in_default>
1044
- <show_in_website>1</show_in_website>
1045
  <show_in_store>1</show_in_store>
1046
  <source_model>adminhtml/system_config_source_yesno</source_model>
1047
  <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
1048
- </manage_media_gallery>
 
 
 
 
 
 
 
 
 
 
 
 
 
1049
  </fields>
1050
  </general>
1051
- <attributes_unknow translate="label">
1052
- <label>Unknown attribute mapping</label>
1053
- <show_in_default>1</show_in_default>
1054
- <show_in_website>1</show_in_website>
 
1055
  <show_in_store>1</show_in_store>
1056
  <sort_order>20</sort_order>
1057
  <fields>
@@ -1062,8 +1166,8 @@
1062
  <source_model>profileolabs_shoppingflux/export_source_attributes</source_model>
1063
  <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
1064
  <sort_order>10</sort_order>
1065
- <show_in_default>1</show_in_default>
1066
- <show_in_website>1</show_in_website>
1067
  <show_in_store>1</show_in_store>
1068
  </ean>
1069
  <isbn>
@@ -1073,8 +1177,8 @@
1073
  <source_model>profileolabs_shoppingflux/export_source_attributes</source_model>
1074
  <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
1075
  <sort_order>20</sort_order>
1076
- <show_in_default>1</show_in_default>
1077
- <show_in_website>1</show_in_website>
1078
  <show_in_store>1</show_in_store>
1079
  </isbn>
1080
  <ref_manufacturer>
@@ -1084,8 +1188,8 @@
1084
  <source_model>profileolabs_shoppingflux/export_source_attributes</source_model>
1085
  <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
1086
  <sort_order>30</sort_order>
1087
- <show_in_default>1</show_in_default>
1088
- <show_in_website>1</show_in_website>
1089
  <show_in_store>1</show_in_store>
1090
  </ref_manufacturer>
1091
  <ref_wholesaler>
@@ -1095,8 +1199,8 @@
1095
  <source_model>profileolabs_shoppingflux/export_source_attributes</source_model>
1096
  <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
1097
  <sort_order>40</sort_order>
1098
- <show_in_default>1</show_in_default>
1099
- <show_in_website>1</show_in_website>
1100
  <show_in_store>1</show_in_store>
1101
  </ref_wholesaler>
1102
  <shipping_delay>
@@ -1106,8 +1210,8 @@
1106
  <source_model>profileolabs_shoppingflux/export_source_attributes</source_model>
1107
  <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
1108
  <sort_order>42</sort_order>
1109
- <show_in_default>1</show_in_default>
1110
- <show_in_website>1</show_in_website>
1111
  <show_in_store>1</show_in_store>
1112
  </shipping_delay>
1113
  <shipping_send_delay>
@@ -1117,8 +1221,8 @@
1117
  <source_model>profileolabs_shoppingflux/export_source_attributes</source_model>
1118
  <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
1119
  <sort_order>43</sort_order>
1120
- <show_in_default>1</show_in_default>
1121
- <show_in_website>1</show_in_website>
1122
  <show_in_store>1</show_in_store>
1123
  </shipping_send_delay>
1124
  <brand>
@@ -1128,8 +1232,8 @@
1128
  <source_model>profileolabs_shoppingflux/export_source_attributes</source_model>
1129
  <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
1130
  <sort_order>50</sort_order>
1131
- <show_in_default>1</show_in_default>
1132
- <show_in_website>1</show_in_website>
1133
  <show_in_store>1</show_in_store>
1134
  </brand>
1135
  <brand_page_url>
@@ -1139,8 +1243,8 @@
1139
  <source_model>profileolabs_shoppingflux/export_source_attributes</source_model>
1140
  <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
1141
  <sort_order>55</sort_order>
1142
- <show_in_default>1</show_in_default>
1143
- <show_in_website>1</show_in_website>
1144
  <show_in_store>1</show_in_store>
1145
  </brand_page_url>
1146
  <ecotaxe>
@@ -1149,8 +1253,8 @@
1149
  <source_model>profileolabs_shoppingflux/export_source_attributes</source_model>
1150
  <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
1151
  <sort_order>60</sort_order>
1152
- <show_in_default>1</show_in_default>
1153
- <show_in_website>1</show_in_website>
1154
  <show_in_store>1</show_in_store>
1155
  </ecotaxe>
1156
  <short_name>
@@ -1160,8 +1264,8 @@
1160
  <source_model>profileolabs_shoppingflux/export_source_attributes</source_model>
1161
  <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
1162
  <sort_order>70</sort_order>
1163
- <show_in_default>1</show_in_default>
1164
- <show_in_website>1</show_in_website>
1165
  <show_in_store>1</show_in_store>
1166
  </short_name>
1167
  <characteristics>
@@ -1171,8 +1275,8 @@
1171
  <source_model>profileolabs_shoppingflux/export_source_attributes</source_model>
1172
  <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
1173
  <sort_order>80</sort_order>
1174
- <show_in_default>1</show_in_default>
1175
- <show_in_website>1</show_in_website>
1176
  <show_in_store>1</show_in_store>
1177
  </characteristics>
1178
  <warranty>
@@ -1182,8 +1286,8 @@
1182
  <source_model>profileolabs_shoppingflux/export_source_attributes</source_model>
1183
  <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
1184
  <sort_order>90</sort_order>
1185
- <show_in_default>1</show_in_default>
1186
- <show_in_website>1</show_in_website>
1187
  <show_in_store>1</show_in_store>
1188
  </warranty>
1189
  <kind>
@@ -1193,8 +1297,8 @@
1193
  <source_model>profileolabs_shoppingflux/export_source_attributes</source_model>
1194
  <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
1195
  <sort_order>100</sort_order>
1196
- <show_in_default>1</show_in_default>
1197
- <show_in_website>1</show_in_website>
1198
  <show_in_store>1</show_in_store>
1199
  </kind>
1200
  <matter>
@@ -1204,8 +1308,8 @@
1204
  <source_model>profileolabs_shoppingflux/export_source_attributes</source_model>
1205
  <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
1206
  <sort_order>100</sort_order>
1207
- <show_in_default>1</show_in_default>
1208
- <show_in_website>1</show_in_website>
1209
  <show_in_store>1</show_in_store>
1210
  </matter>
1211
  <size>
@@ -1215,8 +1319,8 @@
1215
  <source_model>profileolabs_shoppingflux/export_source_attributes</source_model>
1216
  <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
1217
  <sort_order>110</sort_order>
1218
- <show_in_default>1</show_in_default>
1219
- <show_in_website>1</show_in_website>
1220
  <show_in_store>1</show_in_store>
1221
  </size>
1222
  <shoe_size>
@@ -1226,8 +1330,8 @@
1226
  <source_model>profileolabs_shoppingflux/export_source_attributes</source_model>
1227
  <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
1228
  <sort_order>115</sort_order>
1229
- <show_in_default>1</show_in_default>
1230
- <show_in_website>1</show_in_website>
1231
  <show_in_store>1</show_in_store>
1232
  </shoe_size>
1233
  <dimension>
@@ -1237,28 +1341,19 @@
1237
  <source_model>profileolabs_shoppingflux/export_source_attributes</source_model>
1238
  <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
1239
  <sort_order>120</sort_order>
1240
- <show_in_default>1</show_in_default>
1241
- <show_in_website>1</show_in_website>
1242
  <show_in_store>1</show_in_store>
1243
  </dimension>
1244
- </fields>
1245
- </attributes_unknow>
1246
- <attributes_know translate="label">
1247
- <label>Known Attribute Mapping</label>
1248
- <show_in_default>1</show_in_default>
1249
- <show_in_website>1</show_in_website>
1250
- <show_in_store>1</show_in_store>
1251
- <sort_order>30</sort_order>
1252
- <fields>
1253
  <sku>
1254
  <label>Product SKU</label>
1255
- <comment></comment>
1256
  <frontend_type>select</frontend_type>
1257
  <source_model>profileolabs_shoppingflux/export_source_attributes</source_model>
1258
  <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
1259
  <sort_order>0</sort_order>
1260
- <show_in_default>1</show_in_default>
1261
- <show_in_website>1</show_in_website>
1262
  <show_in_store>1</show_in_store>
1263
  </sku>
1264
  <name>
@@ -1268,8 +1363,8 @@
1268
  <source_model>profileolabs_shoppingflux/export_source_attributes</source_model>
1269
  <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
1270
  <sort_order>10</sort_order>
1271
- <show_in_default>1</show_in_default>
1272
- <show_in_website>1</show_in_website>
1273
  <show_in_store>1</show_in_store>
1274
  </name>
1275
  <description>
@@ -1279,8 +1374,8 @@
1279
  <source_model>profileolabs_shoppingflux/export_source_attributes</source_model>
1280
  <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
1281
  <sort_order>20</sort_order>
1282
- <show_in_default>1</show_in_default>
1283
- <show_in_website>1</show_in_website>
1284
  <show_in_store>1</show_in_store>
1285
  </description>
1286
  <short_description>
@@ -1290,19 +1385,41 @@
1290
  <source_model>profileolabs_shoppingflux/export_source_attributes</source_model>
1291
  <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
1292
  <sort_order>30</sort_order>
1293
- <show_in_default>1</show_in_default>
1294
- <show_in_website>1</show_in_website>
1295
  <show_in_store>1</show_in_store>
1296
  </short_description>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1297
  <meta_keyword>
1298
- <label>Keywords</label>
1299
  <comment></comment>
1300
  <frontend_type>select</frontend_type>
1301
  <source_model>profileolabs_shoppingflux/export_source_attributes</source_model>
1302
  <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
1303
  <sort_order>30</sort_order>
1304
- <show_in_default>1</show_in_default>
1305
- <show_in_website>1</show_in_website>
1306
  <show_in_store>1</show_in_store>
1307
  </meta_keyword>
1308
  <weight>
@@ -1312,8 +1429,8 @@
1312
  <source_model>profileolabs_shoppingflux/export_source_attributes</source_model>
1313
  <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
1314
  <sort_order>40</sort_order>
1315
- <show_in_default>1</show_in_default>
1316
- <show_in_website>1</show_in_website>
1317
  <show_in_store>1</show_in_store>
1318
  </weight>
1319
  <color>
@@ -1323,20 +1440,10 @@
1323
  <source_model>profileolabs_shoppingflux/export_source_attributes</source_model>
1324
  <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
1325
  <sort_order>50</sort_order>
1326
- <show_in_default>1</show_in_default>
1327
- <show_in_website>1</show_in_website>
1328
  <show_in_store>1</show_in_store>
1329
  </color>
1330
- </fields>
1331
- </attributes_know>
1332
- <specific_prices>
1333
- <label>Specific prices</label>
1334
- <show_in_default>1</show_in_default>
1335
- <show_in_website>1</show_in_website>
1336
- <show_in_store>1</show_in_store>
1337
- <sort_order>35</sort_order>
1338
- <fields>
1339
-
1340
  <price>
1341
  <label>Price</label>
1342
  <comment></comment>
@@ -1344,8 +1451,8 @@
1344
  <source_model>profileolabs_shoppingflux/export_source_attributesprice</source_model>
1345
  <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
1346
  <sort_order>60</sort_order>
1347
- <show_in_default>1</show_in_default>
1348
- <show_in_website>1</show_in_website>
1349
  <show_in_store>1</show_in_store>
1350
  </price>
1351
  <special_price>
@@ -1355,31 +1462,22 @@
1355
  <source_model>profileolabs_shoppingflux/export_source_attributesprice</source_model>
1356
  <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
1357
  <sort_order>70</sort_order>
1358
- <show_in_default>1</show_in_default>
1359
- <show_in_website>1</show_in_website>
1360
  <show_in_store>1</show_in_store>
1361
  </special_price>
1362
- </fields>
1363
- </specific_prices>
1364
- <attributes_additionnal>
1365
- <label>Additionnal Attributes</label>
1366
- <show_in_default>1</show_in_default>
1367
- <show_in_website>1</show_in_website>
1368
- <show_in_store>1</show_in_store>
1369
- <sort_order>40</sort_order>
1370
- <fields>
1371
- <list>
1372
  <label>Other attributes to export</label>
1373
- <frontend_type>multiselect</frontend_type>
1374
  <source_model>profileolabs_shoppingflux/export_source_attributes</source_model>
1375
  <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
1376
  <sort_order>125</sort_order>
1377
- <show_in_default>1</show_in_default>
1378
- <show_in_website>1</show_in_website>
1379
  <show_in_store>1</show_in_store>
1380
- </list>
1381
  </fields>
1382
- </attributes_additionnal>
1383
  </groups>
1384
  </shoppingflux_export>
1385
  </sections>
18
  <groups>
19
  <configuration translate="label" module="profileolabs_shoppingflux">
20
  <label>Configuration</label>
21
+ <frontend_model>profileolabs_shoppingflux/adminhtml_system_config_form_fieldset_abstract</frontend_model>
22
  <show_in_default>1</show_in_default>
23
  <show_in_website>1</show_in_website>
24
  <show_in_store>1</show_in_store>
37
  <label>API key</label>
38
  <frontend_type>text</frontend_type>
39
  <sort_order>20</sort_order>
40
+ <show_in_default>0</show_in_default>
41
+ <show_in_website>0</show_in_website>
42
  <show_in_store>1</show_in_store>
43
  </api_key>
44
  <id_tracking>
46
  <comment>Your ShoppingFlux Tracking ID</comment>
47
  <frontend_type>text</frontend_type>
48
  <sort_order>30</sort_order>
49
+ <show_in_default>0</show_in_default>
50
+ <show_in_website>0</show_in_website>
51
  <show_in_store>1</show_in_store>
52
  </id_tracking>
53
  <enable_buyline>
55
  <frontend_type>select</frontend_type>
56
  <source_model>adminhtml/system_config_source_yesno</source_model>
57
  <sort_order>30</sort_order>
58
+ <show_in_default>0</show_in_default>
59
+ <show_in_website>0</show_in_website>
60
  <show_in_store>1</show_in_store>
61
  </enable_buyline>
62
  <alert_email>
64
  <comment>In case of issue while transfering data, an email will be sent to this address.</comment>
65
  <frontend_type>text</frontend_type>
66
  <sort_order>100</sort_order>
67
+ <show_in_default>0</show_in_default>
68
+ <show_in_website>0</show_in_website>
69
  <show_in_store>1</show_in_store>
70
  </alert_email>
71
  </fields>
77
  <tab>shoppingflux</tab>
78
  <frontend_type>text</frontend_type>
79
  <sort_order>100</sort_order>
80
+ <show_in_default>0</show_in_default>
81
+ <show_in_website>0</show_in_website>
82
  <show_in_store>1</show_in_store>
83
  <groups>
84
  <manageorders translate="label" module="profileolabs_shoppingflux">
85
  <label>Manage Orders</label>
86
+ <frontend_model>profileolabs_shoppingflux/adminhtml_system_config_form_fieldset_abstract</frontend_model>
87
+ <show_in_default>0</show_in_default>
88
+ <show_in_website>0</show_in_website>
89
  <show_in_store>1</show_in_store>
90
  <sort_order>1</sort_order>
91
  <fields>
93
  <label>Enable order management</label>
94
  <frontend_type>select</frontend_type>
95
  <sort_order>10</sort_order>
96
+ <show_in_default>0</show_in_default>
97
+ <show_in_website>0</show_in_website>
98
  <show_in_store>1</show_in_store>
99
  <source_model>adminhtml/system_config_source_yesno</source_model>
100
  </enabled>
101
  <limit_orders>
102
  <label>Import by n orders</label>
103
  <sort_order>22</sort_order>
104
+ <show_in_default>0</show_in_default>
105
+ <show_in_website>0</show_in_website>
106
  <show_in_store>1</show_in_store>
107
  <comment>Limit number of orders imported. 10 by default</comment>
108
  </limit_orders>
111
  <frontend_type>select</frontend_type>
112
  <source_model>adminhtml/system_config_source_order_status_new</source_model>
113
  <sort_order>80</sort_order>
114
+ <show_in_default>0</show_in_default>
115
+ <show_in_website>0</show_in_website>
116
+ <show_in_store>1</show_in_store>
117
  </new_order_status>
118
  <create_invoice>
119
  <label>Create invoice ?</label>
120
  <comment>If yes, an invoice will be created on ShoppingFlux's order creation</comment>
121
  <frontend_type>select</frontend_type>
122
  <sort_order>25</sort_order>
123
+ <show_in_default>0</show_in_default>
124
+ <show_in_website>0</show_in_website>
125
  <show_in_store>1</show_in_store>
126
  <source_model>adminhtml/system_config_source_yesno</source_model>
127
  </create_invoice>
130
  <frontend_type>select</frontend_type>
131
  <source_model>adminhtml/system_config_source_order_status_processing</source_model>
132
  <sort_order>80</sort_order>
133
+ <show_in_default>0</show_in_default>
134
+ <show_in_website>0</show_in_website>
135
+ <show_in_store>1</show_in_store>
136
  </processing_order_status>
137
  <use_product_id>
138
  <label>Use Product ID's instead of SKU ?</label>
139
+ <comment>Should be no in most cases.</comment>
140
  <frontend_type>select</frontend_type>
141
+ <sort_order>90</sort_order>
142
+ <show_in_default>0</show_in_default>
143
+ <show_in_website>0</show_in_website>
144
  <show_in_store>1</show_in_store>
145
  <source_model>adminhtml/system_config_source_yesno</source_model>
146
  </use_product_id>
147
+ <use_marketplace_date>
148
+ <label>Use Marketplace Order Date and Time ?</label>
149
+ <comment>If no, the order date will be the import date.</comment>
150
+ <frontend_type>select</frontend_type>
151
+ <sort_order>100</sort_order>
152
+ <show_in_default>0</show_in_default>
153
+ <show_in_website>0</show_in_website>
154
+ <show_in_store>1</show_in_store>
155
+ <source_model>adminhtml/system_config_source_yesno</source_model>
156
+ </use_marketplace_date>
157
  </fields>
158
  </manageorders>
159
  <import_customer translate="label" module="profileolabs_shoppingflux">
160
  <label>Customer Import</label>
161
+ <frontend_model>profileolabs_shoppingflux/adminhtml_system_config_form_fieldset_abstract</frontend_model>
162
+ <show_in_default>0</show_in_default>
163
+ <show_in_website>0</show_in_website>
164
  <show_in_store>1</show_in_store>
165
  <sort_order>2</sort_order>
166
  <fields>
169
  <comment>Leave empty to not limit length. Minimum value if filled : 20</comment>
170
  <frontend_type>text</frontend_type>
171
  <sort_order>5</sort_order>
172
+ <show_in_default>0</show_in_default>
173
  <show_in_website>0</show_in_website>
174
+ <show_in_store>1</show_in_store>
175
  </limit_address_length>
176
+ <mobile_attribute>
177
+ <label>Customer Mobile Attribute</label>
178
+ <frontend_type>select</frontend_type>
179
+ <sort_order>6</sort_order>
180
+ <show_in_default>0</show_in_default>
181
+ <show_in_website>0</show_in_website>
182
+ <show_in_store>1</show_in_store>
183
+ <source_model>profileolabs_shoppingflux/manageorders_source_attributes</source_model>
184
+ </mobile_attribute>
185
  <prefer_mobile_phone>
186
+ <depends>
187
+ <mobile_attribute></mobile_attribute>
188
+ </depends>
189
  <label>Import mobile phone instead of desk phone, if available</label>
190
  <frontend_type>select</frontend_type>
191
  <sort_order>7</sort_order>
192
+ <show_in_default>0</show_in_default>
193
  <show_in_website>0</show_in_website>
194
+ <show_in_store>1</show_in_store>
195
  <source_model>adminhtml/system_config_source_yesno</source_model>
196
  </prefer_mobile_phone>
197
  <default_group>
198
  <label>Default customer group</label>
199
  <frontend_type>select</frontend_type>
200
  <sort_order>10</sort_order>
201
+ <show_in_default>0</show_in_default>
202
  <show_in_website>0</show_in_website>
203
+ <show_in_store>1</show_in_store>
204
  <source_model>adminhtml/system_config_source_customer_group</source_model>
205
  </default_group>
206
  <amazon_group>
208
  <comment>Leave empty to use default group</comment>
209
  <frontend_type>select</frontend_type>
210
  <sort_order>30</sort_order>
211
+ <show_in_default>0</show_in_default>
212
  <show_in_website>0</show_in_website>
213
+ <show_in_store>1</show_in_store>
214
  <source_model>adminhtml/system_config_source_customer_group</source_model>
215
  </amazon_group>
216
  <cdiscount_group>
218
  <comment>Leave empty to use default group</comment>
219
  <frontend_type>select</frontend_type>
220
  <sort_order>40</sort_order>
221
+ <show_in_default>0</show_in_default>
222
  <show_in_website>0</show_in_website>
223
+ <show_in_store>1</show_in_store>
224
  <source_model>adminhtml/system_config_source_customer_group</source_model>
225
  </cdiscount_group>
226
  <ebay_group>
228
  <comment>Leave empty to use default group</comment>
229
  <frontend_type>select</frontend_type>
230
  <sort_order>50</sort_order>
231
+ <show_in_default>0</show_in_default>
232
  <show_in_website>0</show_in_website>
233
+ <show_in_store>1</show_in_store>
234
  <source_model>adminhtml/system_config_source_customer_group</source_model>
235
  </ebay_group>
236
  <fnac_group>
238
  <comment>Leave empty to use default group</comment>
239
  <frontend_type>select</frontend_type>
240
  <sort_order>50</sort_order>
241
+ <show_in_default>0</show_in_default>
242
  <show_in_website>0</show_in_website>
243
+ <show_in_store>1</show_in_store>
244
  <source_model>adminhtml/system_config_source_customer_group</source_model>
245
  </fnac_group>
246
  <pixmania_group>
248
  <comment>Leave empty to use default group</comment>
249
  <frontend_type>select</frontend_type>
250
  <sort_order>60</sort_order>
251
+ <show_in_default>0</show_in_default>
252
  <show_in_website>0</show_in_website>
253
+ <show_in_store>1</show_in_store>
254
  <source_model>adminhtml/system_config_source_customer_group</source_model>
255
  </pixmania_group>
256
  <priceminister_group>
258
  <comment>Leave empty to use default group</comment>
259
  <frontend_type>select</frontend_type>
260
  <sort_order>60</sort_order>
261
+ <show_in_default>0</show_in_default>
262
  <show_in_website>0</show_in_website>
263
+ <show_in_store>1</show_in_store>
264
  <source_model>adminhtml/system_config_source_customer_group</source_model>
265
  </priceminister_group>
266
  <rueducommerce_group>
268
  <comment>Leave empty to use default group</comment>
269
  <frontend_type>select</frontend_type>
270
  <sort_order>60</sort_order>
271
+ <show_in_default>0</show_in_default>
272
  <show_in_website>0</show_in_website>
273
+ <show_in_store>1</show_in_store>
274
  <source_model>adminhtml/system_config_source_customer_group</source_model>
275
  </rueducommerce_group>
276
  <brandalley_group>
278
  <comment>Leave empty to use default group</comment>
279
  <frontend_type>select</frontend_type>
280
  <sort_order>60</sort_order>
281
+ <show_in_default>0</show_in_default>
282
  <show_in_website>0</show_in_website>
283
+ <show_in_store>1</show_in_store>
284
  <source_model>adminhtml/system_config_source_customer_group</source_model>
285
  </brandalley_group>
286
  <toutaporter_group>
288
  <comment>Leave empty to use default group</comment>
289
  <frontend_type>select</frontend_type>
290
  <sort_order>60</sort_order>
291
+ <show_in_default>0</show_in_default>
292
  <show_in_website>0</show_in_website>
293
+ <show_in_store>1</show_in_store>
294
  <source_model>adminhtml/system_config_source_customer_group</source_model>
295
  </toutaporter_group>
296
  <greenrepublic_group>
298
  <comment>Leave empty to use default group</comment>
299
  <frontend_type>select</frontend_type>
300
  <sort_order>60</sort_order>
301
+ <show_in_default>0</show_in_default>
302
  <show_in_website>0</show_in_website>
303
+ <show_in_store>1</show_in_store>
304
  <source_model>adminhtml/system_config_source_customer_group</source_model>
305
  </greenrepublic_group>
306
  <laredoute_group>
308
  <comment>Leave empty to use default group</comment>
309
  <frontend_type>select</frontend_type>
310
  <sort_order>60</sort_order>
311
+ <show_in_default>0</show_in_default>
312
  <show_in_website>0</show_in_website>
313
+ <show_in_store>1</show_in_store>
314
  <source_model>adminhtml/system_config_source_customer_group</source_model>
315
  </laredoute_group>
316
  <babyssima_group>
318
  <comment>Leave empty to use default group</comment>
319
  <frontend_type>select</frontend_type>
320
  <sort_order>60</sort_order>
321
+ <show_in_default>0</show_in_default>
322
  <show_in_website>0</show_in_website>
323
+ <show_in_store>1</show_in_store>
324
  <source_model>adminhtml/system_config_source_customer_group</source_model>
325
  </babyssima_group>
326
  <ecitizen_group>
328
  <comment>Leave empty to use default group</comment>
329
  <frontend_type>select</frontend_type>
330
  <sort_order>60</sort_order>
331
+ <show_in_default>0</show_in_default>
332
  <show_in_website>0</show_in_website>
333
+ <show_in_store>1</show_in_store>
334
  <source_model>adminhtml/system_config_source_customer_group</source_model>
335
  </ecitizen_group>
336
  <decofinder_group>
338
  <comment>Leave empty to use default group</comment>
339
  <frontend_type>select</frontend_type>
340
  <sort_order>60</sort_order>
341
+ <show_in_default>0</show_in_default>
342
  <show_in_website>0</show_in_website>
343
+ <show_in_store>1</show_in_store>
344
  <source_model>adminhtml/system_config_source_customer_group</source_model>
345
  </decofinder_group>
346
  <docteurdiscount_group>
348
  <comment>Leave empty to use default group</comment>
349
  <frontend_type>select</frontend_type>
350
  <sort_order>60</sort_order>
351
+ <show_in_default>0</show_in_default>
352
  <show_in_website>0</show_in_website>
353
+ <show_in_store>1</show_in_store>
354
  <source_model>adminhtml/system_config_source_customer_group</source_model>
355
  </docteurdiscount_group>
356
  <glamour_group>
358
  <comment>Leave empty to use default group</comment>
359
  <frontend_type>select</frontend_type>
360
  <sort_order>60</sort_order>
361
+ <show_in_default>0</show_in_default>
362
  <show_in_website>0</show_in_website>
363
+ <show_in_store>1</show_in_store>
364
  <source_model>adminhtml/system_config_source_customer_group</source_model>
365
  </glamour_group>
366
  <gstk_group>
368
  <comment>Leave empty to use default group</comment>
369
  <frontend_type>select</frontend_type>
370
  <sort_order>60</sort_order>
371
+ <show_in_default>0</show_in_default>
372
  <show_in_website>0</show_in_website>
373
+ <show_in_store>1</show_in_store>
374
  <source_model>adminhtml/system_config_source_customer_group</source_model>
375
  </gstk_group>
376
  <mistergooddeal_group>
378
  <comment>Leave empty to use default group</comment>
379
  <frontend_type>select</frontend_type>
380
  <sort_order>70</sort_order>
381
+ <show_in_default>0</show_in_default>
382
  <show_in_website>0</show_in_website>
383
+ <show_in_store>1</show_in_store>
384
  <source_model>adminhtml/system_config_source_customer_group</source_model>
385
  </mistergooddeal_group>
386
  <placedumariage_group>
388
  <comment>Leave empty to use default group</comment>
389
  <frontend_type>select</frontend_type>
390
  <sort_order>70</sort_order>
391
+ <show_in_default>0</show_in_default>
392
  <show_in_website>0</show_in_website>
393
+ <show_in_store>1</show_in_store>
394
  <source_model>adminhtml/system_config_source_customer_group</source_model>
395
  </placedumariage_group>
396
  <tap_group>
398
  <comment>Leave empty to use default group</comment>
399
  <frontend_type>select</frontend_type>
400
  <sort_order>70</sort_order>
401
+ <show_in_default>0</show_in_default>
402
  <show_in_website>0</show_in_website>
403
+ <show_in_store>1</show_in_store>
404
  <source_model>adminhtml/system_config_source_customer_group</source_model>
405
  </tap_group>
406
  <spartoo_group>
408
  <comment>Leave empty to use default group</comment>
409
  <frontend_type>select</frontend_type>
410
  <sort_order>70</sort_order>
411
+ <show_in_default>0</show_in_default>
412
  <show_in_website>0</show_in_website>
413
+ <show_in_store>1</show_in_store>
414
  <source_model>adminhtml/system_config_source_customer_group</source_model>
415
  </spartoo_group>
416
  <jardinermalin_group>
418
  <comment>Leave empty to use default group</comment>
419
  <frontend_type>select</frontend_type>
420
  <sort_order>70</sort_order>
421
+ <show_in_default>0</show_in_default>
422
  <show_in_website>0</show_in_website>
423
+ <show_in_store>1</show_in_store>
424
  <source_model>adminhtml/system_config_source_customer_group</source_model>
425
  </jardinermalin_group>
426
  <monechelle_group>
428
  <comment>Leave empty to use default group</comment>
429
  <frontend_type>select</frontend_type>
430
  <sort_order>70</sort_order>
431
+ <show_in_default>0</show_in_default>
432
  <show_in_website>0</show_in_website>
433
+ <show_in_store>1</show_in_store>
434
  <source_model>adminhtml/system_config_source_customer_group</source_model>
435
  </monechelle_group>
436
  <localismarket_group>
438
  <comment>Leave empty to use default group</comment>
439
  <frontend_type>select</frontend_type>
440
  <sort_order>70</sort_order>
441
+ <show_in_default>0</show_in_default>
442
  <show_in_website>0</show_in_website>
443
+ <show_in_store>1</show_in_store>
444
  <source_model>adminhtml/system_config_source_customer_group</source_model>
445
  </localismarket_group>
446
  <galerieslafayette_group>
448
  <comment>Leave empty to use default group</comment>
449
  <frontend_type>select</frontend_type>
450
  <sort_order>70</sort_order>
451
+ <show_in_default>0</show_in_default>
452
  <show_in_website>0</show_in_website>
453
+ <show_in_store>1</show_in_store>
454
  <source_model>adminhtml/system_config_source_customer_group</source_model>
455
  </galerieslafayette_group>
456
  <monchouchou_group>
458
  <comment>Leave empty to use default group</comment>
459
  <frontend_type>select</frontend_type>
460
  <sort_order>70</sort_order>
461
+ <show_in_default>0</show_in_default>
462
  <show_in_website>0</show_in_website>
463
+ <show_in_store>1</show_in_store>
464
  <source_model>adminhtml/system_config_source_customer_group</source_model>
465
  </monchouchou_group>
466
  <elevenmain_group>
468
  <comment>Leave empty to use default group</comment>
469
  <frontend_type>select</frontend_type>
470
  <sort_order>70</sort_order>
471
+ <show_in_default>0</show_in_default>
472
  <show_in_website>0</show_in_website>
473
+ <show_in_store>1</show_in_store>
474
  <source_model>adminhtml/system_config_source_customer_group</source_model>
475
  </elevenmain_group>
476
  <sears_group>
478
  <comment>Leave empty to use default group</comment>
479
  <frontend_type>select</frontend_type>
480
  <sort_order>70</sort_order>
481
+ <show_in_default>0</show_in_default>
482
  <show_in_website>0</show_in_website>
483
+ <show_in_store>1</show_in_store>
484
  <source_model>adminhtml/system_config_source_customer_group</source_model>
485
  </sears_group>
486
  <wizacha_group>
488
  <comment>Leave empty to use default group</comment>
489
  <frontend_type>select</frontend_type>
490
  <sort_order>70</sort_order>
491
+ <show_in_default>0</show_in_default>
492
  <show_in_website>0</show_in_website>
493
+ <show_in_store>1</show_in_store>
494
  <source_model>adminhtml/system_config_source_customer_group</source_model>
495
  </wizacha_group>
496
  </fields>
497
  </import_customer>
498
  <shipping_method translate="label" module="profileolabs_shoppingflux">
499
  <label>Shipping Method</label>
500
+ <frontend_model>profileolabs_shoppingflux/adminhtml_system_config_form_fieldset_abstract</frontend_model>
501
+ <show_in_default>0</show_in_default>
502
+ <show_in_website>0</show_in_website>
503
  <show_in_store>1</show_in_store>
504
  <sort_order>3</sort_order>
505
  <fields>
508
  <comment>Specific shipping method to use for imported ShoppingFlux's order</comment>
509
  <frontend_type>select</frontend_type>
510
  <sort_order>10</sort_order>
511
+ <show_in_default>0</show_in_default>
512
  <show_in_website>0</show_in_website>
513
+ <show_in_store>1</show_in_store>
514
  <source_model>adminhtml/system_config_source_shipping_allmethods</source_model>
515
  </default_method>
516
  <amazon_method>
518
  <comment>Leave empty to use default shipping method.</comment>
519
  <frontend_type>select</frontend_type>
520
  <sort_order>30</sort_order>
521
+ <show_in_default>0</show_in_default>
522
  <show_in_website>0</show_in_website>
523
+ <show_in_store>1</show_in_store>
524
  <source_model>adminhtml/system_config_source_shipping_allmethods</source_model>
525
  </amazon_method>
526
  <cdiscount_method>
528
  <comment>Leave empty to use default shipping method.</comment>
529
  <frontend_type>select</frontend_type>
530
  <sort_order>40</sort_order>
531
+ <show_in_default>0</show_in_default>
532
  <show_in_website>0</show_in_website>
533
+ <show_in_store>1</show_in_store>
534
  <source_model>adminhtml/system_config_source_shipping_allmethods</source_model>
535
  </cdiscount_method>
536
  <ebay_method>
538
  <comment>Leave empty to use default shipping method.</comment>
539
  <frontend_type>select</frontend_type>
540
  <sort_order>50</sort_order>
541
+ <show_in_default>0</show_in_default>
542
  <show_in_website>0</show_in_website>
543
+ <show_in_store>1</show_in_store>
544
  <source_model>adminhtml/system_config_source_shipping_allmethods</source_model>
545
  </ebay_method>
546
  <fnac_method>
548
  <comment>Leave empty to use default shipping method.</comment>
549
  <frontend_type>select</frontend_type>
550
  <sort_order>50</sort_order>
551
+ <show_in_default>0</show_in_default>
552
  <show_in_website>0</show_in_website>
553
+ <show_in_store>1</show_in_store>
554
  <source_model>adminhtml/system_config_source_shipping_allmethods</source_model>
555
  </fnac_method>
556
  <pixmania_method>
558
  <comment>Leave empty to use default shipping method.</comment>
559
  <frontend_type>select</frontend_type>
560
  <sort_order>60</sort_order>
561
+ <show_in_default>0</show_in_default>
562
  <show_in_website>0</show_in_website>
563
+ <show_in_store>1</show_in_store>
564
  <source_model>adminhtml/system_config_source_shipping_allmethods</source_model>
565
  </pixmania_method>
566
  <priceminister_method>
568
  <comment>Leave empty to use default shipping method.</comment>
569
  <frontend_type>select</frontend_type>
570
  <sort_order>60</sort_order>
571
+ <show_in_default>0</show_in_default>
572
  <show_in_website>0</show_in_website>
573
+ <show_in_store>1</show_in_store>
574
  <source_model>adminhtml/system_config_source_shipping_allmethods</source_model>
575
  </priceminister_method>
576
  <rueducommerce_method>
578
  <comment>Leave empty to use default shipping method.</comment>
579
  <frontend_type>select</frontend_type>
580
  <sort_order>60</sort_order>
581
+ <show_in_default>0</show_in_default>
582
  <show_in_website>0</show_in_website>
583
+ <show_in_store>1</show_in_store>
584
  <source_model>adminhtml/system_config_source_shipping_allmethods</source_model>
585
  </rueducommerce_method>
586
  <brandalley_method>
588
  <comment>Leave empty to use default shipping method.</comment>
589
  <frontend_type>select</frontend_type>
590
  <sort_order>60</sort_order>
591
+ <show_in_default>0</show_in_default>
592
  <show_in_website>0</show_in_website>
593
+ <show_in_store>1</show_in_store>
594
  <source_model>adminhtml/system_config_source_shipping_allmethods</source_model>
595
  </brandalley_method>
596
  <toutaporter_method>
598
  <comment>Leave empty to use default shipping method.</comment>
599
  <frontend_type>select</frontend_type>
600
  <sort_order>60</sort_order>
601
+ <show_in_default>0</show_in_default>
602
  <show_in_website>0</show_in_website>
603
+ <show_in_store>1</show_in_store>
604
  <source_model>adminhtml/system_config_source_shipping_allmethods</source_model>
605
  </toutaporter_method>
606
  <greenrepublic_method>
608
  <comment>Leave empty to use default shipping method.</comment>
609
  <frontend_type>select</frontend_type>
610
  <sort_order>60</sort_order>
611
+ <show_in_default>0</show_in_default>
612
  <show_in_website>0</show_in_website>
613
+ <show_in_store>1</show_in_store>
614
  <source_model>adminhtml/system_config_source_shipping_allmethods</source_model>
615
  </greenrepublic_method>
616
  <laredoute_method>
618
  <comment>Leave empty to use default shipping method.</comment>
619
  <frontend_type>select</frontend_type>
620
  <sort_order>60</sort_order>
621
+ <show_in_default>0</show_in_default>
622
  <show_in_website>0</show_in_website>
623
+ <show_in_store>1</show_in_store>
624
  <source_model>adminhtml/system_config_source_shipping_allmethods</source_model>
625
  </laredoute_method>
626
  <babyssima_method>
628
  <comment>Leave empty to use default shipping method.</comment>
629
  <frontend_type>select</frontend_type>
630
  <sort_order>60</sort_order>
631
+ <show_in_default>0</show_in_default>
632
  <show_in_website>0</show_in_website>
633
+ <show_in_store>1</show_in_store>
634
  <source_model>adminhtml/system_config_source_shipping_allmethods</source_model>
635
  </babyssima_method>
636
  <monechelle_method>
638
  <comment>Leave empty to use default shipping method.</comment>
639
  <frontend_type>select</frontend_type>
640
  <sort_order>60</sort_order>
641
+ <show_in_default>0</show_in_default>
642
  <show_in_website>0</show_in_website>
643
+ <show_in_store>1</show_in_store>
644
  <source_model>adminhtml/system_config_source_shipping_allmethods</source_model>
645
  </monechelle_method>
646
  <ecitizen_method>
648
  <comment>Leave empty to use default shipping method.</comment>
649
  <frontend_type>select</frontend_type>
650
  <sort_order>60</sort_order>
651
+ <show_in_default>0</show_in_default>
652
  <show_in_website>0</show_in_website>
653
+ <show_in_store>1</show_in_store>
654
  <source_model>adminhtml/system_config_source_shipping_allmethods</source_model>
655
  </ecitizen_method>
656
  <decofinder_method>
658
  <comment>Leave empty to use default shipping method.</comment>
659
  <frontend_type>select</frontend_type>
660
  <sort_order>60</sort_order>
661
+ <show_in_default>0</show_in_default>
662
  <show_in_website>0</show_in_website>
663
+ <show_in_store>1</show_in_store>
664
  <source_model>adminhtml/system_config_source_shipping_allmethods</source_model>
665
  </decofinder_method>
666
  <docteurdiscount_method>
668
  <comment>Leave empty to use default shipping method.</comment>
669
  <frontend_type>select</frontend_type>
670
  <sort_order>60</sort_order>
671
+ <show_in_default>0</show_in_default>
672
  <show_in_website>0</show_in_website>
673
+ <show_in_store>1</show_in_store>
674
  <source_model>adminhtml/system_config_source_shipping_allmethods</source_model>
675
  </docteurdiscount_method>
676
  <glamour_method>
678
  <comment>Leave empty to use default shipping method.</comment>
679
  <frontend_type>select</frontend_type>
680
  <sort_order>60</sort_order>
681
+ <show_in_default>0</show_in_default>
682
  <show_in_website>0</show_in_website>
683
+ <show_in_store>1</show_in_store>
684
  <source_model>adminhtml/system_config_source_shipping_allmethods</source_model>
685
  </glamour_method>
686
  <gstk_method>
688
  <comment>Leave empty to use default shipping method.</comment>
689
  <frontend_type>select</frontend_type>
690
  <sort_order>60</sort_order>
691
+ <show_in_default>0</show_in_default>
692
  <show_in_website>0</show_in_website>
693
+ <show_in_store>1</show_in_store>
694
  <source_model>adminhtml/system_config_source_shipping_allmethods</source_model>
695
  </gstk_method>
696
  <mistergooddeal_method>
698
  <comment>Leave empty to use default shipping method.</comment>
699
  <frontend_type>select</frontend_type>
700
  <sort_order>60</sort_order>
701
+ <show_in_default>0</show_in_default>
702
  <show_in_website>0</show_in_website>
703
+ <show_in_store>1</show_in_store>
704
  <source_model>adminhtml/system_config_source_shipping_allmethods</source_model>
705
  </mistergooddeal_method>
706
  <placedumariage_method>
708
  <comment>Leave empty to use default shipping method.</comment>
709
  <frontend_type>select</frontend_type>
710
  <sort_order>60</sort_order>
711
+ <show_in_default>0</show_in_default>
712
  <show_in_website>0</show_in_website>
713
+ <show_in_store>1</show_in_store>
714
  <source_model>adminhtml/system_config_source_shipping_allmethods</source_model>
715
  </placedumariage_method>
716
  <tap_method>
718
  <comment>Leave empty to use default shipping method.</comment>
719
  <frontend_type>select</frontend_type>
720
  <sort_order>60</sort_order>
721
+ <show_in_default>0</show_in_default>
722
  <show_in_website>0</show_in_website>
723
+ <show_in_store>1</show_in_store>
724
  <source_model>adminhtml/system_config_source_shipping_allmethods</source_model>
725
  </tap_method>
726
  <spartoo_method>
728
  <comment>Leave empty to use default shipping method.</comment>
729
  <frontend_type>select</frontend_type>
730
  <sort_order>60</sort_order>
731
+ <show_in_default>0</show_in_default>
732
  <show_in_website>0</show_in_website>
733
+ <show_in_store>1</show_in_store>
734
  <source_model>adminhtml/system_config_source_shipping_allmethods</source_model>
735
  </spartoo_method>
736
  <jardinermalin_method>
738
  <comment>Leave empty to use default shipping method.</comment>
739
  <frontend_type>select</frontend_type>
740
  <sort_order>60</sort_order>
741
+ <show_in_default>0</show_in_default>
742
  <show_in_website>0</show_in_website>
743
+ <show_in_store>1</show_in_store>
744
  <source_model>adminhtml/system_config_source_shipping_allmethods</source_model>
745
  </jardinermalin_method>
746
  <localismarket_method>
748
  <comment>Leave empty to use default shipping method.</comment>
749
  <frontend_type>select</frontend_type>
750
  <sort_order>60</sort_order>
751
+ <show_in_default>0</show_in_default>
752
  <show_in_website>0</show_in_website>
753
+ <show_in_store>1</show_in_store>
754
  <source_model>adminhtml/system_config_source_shipping_allmethods</source_model>
755
  </localismarket_method>
756
  <galerieslafayette_method>
758
  <comment>Leave empty to use default shipping method.</comment>
759
  <frontend_type>select</frontend_type>
760
  <sort_order>60</sort_order>
761
+ <show_in_default>0</show_in_default>
762
  <show_in_website>0</show_in_website>
763
+ <show_in_store>1</show_in_store>
764
  <source_model>adminhtml/system_config_source_shipping_allmethods</source_model>
765
  </galerieslafayette_method>
766
  <monchouchou_method>
768
  <comment>Leave empty to use default shipping method.</comment>
769
  <frontend_type>select</frontend_type>
770
  <sort_order>60</sort_order>
771
+ <show_in_default>0</show_in_default>
772
  <show_in_website>0</show_in_website>
773
+ <show_in_store>1</show_in_store>
774
  <source_model>adminhtml/system_config_source_shipping_allmethods</source_model>
775
  </monchouchou_method>
776
  <elevenmain_method>
778
  <comment>Leave empty to use default shipping method.</comment>
779
  <frontend_type>select</frontend_type>
780
  <sort_order>60</sort_order>
781
+ <show_in_default>0</show_in_default>
782
  <show_in_website>0</show_in_website>
783
+ <show_in_store>1</show_in_store>
784
  <source_model>adminhtml/system_config_source_shipping_allmethods</source_model>
785
  </elevenmain_method>
786
  <sears_method>
788
  <comment>Leave empty to use default shipping method.</comment>
789
  <frontend_type>select</frontend_type>
790
  <sort_order>60</sort_order>
791
+ <show_in_default>0</show_in_default>
792
  <show_in_website>0</show_in_website>
793
+ <show_in_store>1</show_in_store>
794
  <source_model>adminhtml/system_config_source_shipping_allmethods</source_model>
795
  </sears_method>
796
  <wizacha_method>
798
  <comment>Leave empty to use default shipping method.</comment>
799
  <frontend_type>select</frontend_type>
800
  <sort_order>60</sort_order>
801
+ <show_in_default>0</show_in_default>
802
  <show_in_website>0</show_in_website>
803
+ <show_in_store>1</show_in_store>
804
  <source_model>adminhtml/system_config_source_shipping_allmethods</source_model>
805
  </wizacha_method>
806
 
809
  <advanced_shipping_method translate="label" module="profileolabs_shoppingflux">
810
  <label>Advanced Shipping Methods Mapping</label>
811
  <frontend_model>profileolabs_shoppingflux/manageorders_adminhtml_system_config_form_fieldset_shipping_method</frontend_model>
812
+ <show_in_default>0</show_in_default>
813
+ <show_in_website>0</show_in_website>
814
  <show_in_store>1</show_in_store>
815
  <sort_order>4</sort_order>
816
  </advanced_shipping_method>
817
  <shipment_update translate="label" module="profileolabs_shoppingflux">
818
  <label>Shipment Update</label>
819
+ <frontend_model>profileolabs_shoppingflux/adminhtml_system_config_form_fieldset_abstract</frontend_model>
820
+ <show_in_default>0</show_in_default>
821
+ <show_in_website>0</show_in_website>
822
  <show_in_store>1</show_in_store>
823
  <sort_order>5</sort_order>
824
  <fields>
827
  <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>
828
  <frontend_type>text</frontend_type>
829
  <sort_order>10</sort_order>
830
+ <show_in_default>0</show_in_default>
831
+ <show_in_website>0</show_in_website>
832
  <show_in_store>1</show_in_store>
833
  </limit_hours>
834
  </fields>
840
  <tab>shoppingflux</tab>
841
  <frontend_type>text</frontend_type>
842
  <sort_order>90</sort_order>
843
+ <show_in_default>0</show_in_default>
844
+ <show_in_website>0</show_in_website>
845
  <show_in_store>1</show_in_store>
846
  <groups>
847
  <general translate="label">
848
  <label>General</label>
849
+ <frontend_model>profileolabs_shoppingflux/adminhtml_system_config_form_fieldset_abstract</frontend_model>
850
  <comment><![CDATA[<b style='color:red'>Feed URL :</b>&nbsp;&nbsp;<span style='font-size:14px;font-style:italic;'>http://domain.tld/shoppingflux/export_flux/</span><br /><br /><br />]]></comment>
851
+ <show_in_default>0</show_in_default>
852
+ <show_in_website>0</show_in_website>
853
  <show_in_store>1</show_in_store>
854
  <sort_order>1</sort_order>
855
  <fields>
858
  <comment></comment>
859
  <frontend_type>select</frontend_type>
860
  <sort_order>1</sort_order>
861
+ <show_in_default>0</show_in_default>
862
+ <show_in_website>0</show_in_website>
863
  <show_in_store>1</show_in_store>
864
  <source_model>adminhtml/system_config_source_yesno</source_model>
865
  </active>
868
  <comment><![CDATA[If yes, you'll have to select products in <strong>Shoppingflux > Product Selection</strong>]]></comment>
869
  <frontend_type>select</frontend_type>
870
  <sort_order>5</sort_order>
871
+ <show_in_default>0</show_in_default>
872
+ <show_in_website>0</show_in_website>
873
  <show_in_store>1</show_in_store>
874
  <source_model>adminhtml/system_config_source_yesno</source_model>
875
  </filter_by_attribute>
877
  <label>Export par n produits</label>
878
  <comment></comment>
879
  <sort_order>10</sort_order>
880
+ <show_in_default>0</show_in_default>
881
+ <show_in_website>0</show_in_website>
882
  <show_in_store>1</show_in_store>
883
  <comment>Limite le nombre de produit par lots</comment>
884
  </limit_product> -->
887
  <comment><![CDATA[Shipping delay, in <strong>days</strong>. This will be used if no shipping delay attribute is mapped.]]></comment>
888
  <frontend_type>text</frontend_type>
889
  <sort_order>20</sort_order>
890
+ <show_in_default>0</show_in_default>
891
+ <show_in_website>0</show_in_website>
892
  <show_in_store>1</show_in_store>
893
  </default_shipping_delay>
894
  <default_shipping_price>
896
  <comment>Default shipping fees amount</comment>
897
  <frontend_type>text</frontend_type>
898
  <sort_order>40</sort_order>
899
+ <show_in_default>0</show_in_default>
900
+ <show_in_website>0</show_in_website>
901
  <show_in_store>1</show_in_store>
902
  </default_shipping_price>
903
  <default_shipping_method>
906
  <frontend_type>select</frontend_type>
907
  <source_model>adminhtml/system_config_source_shipping_allmethods</source_model>
908
  <sort_order>30</sort_order>
909
+ <show_in_default>0</show_in_default>
910
+ <show_in_website>0</show_in_website>
911
  <show_in_store>1</show_in_store>
912
  </default_shipping_method>
913
  <try_use_real_shipping_price>
915
  <comment>Disable this option if you have memory issues.</comment>
916
  <frontend_type>select</frontend_type>
917
  <sort_order>40</sort_order>
918
+ <show_in_default>0</show_in_default>
919
+ <show_in_website>0</show_in_website>
920
  <show_in_store>1</show_in_store>
921
  <source_model>adminhtml/system_config_source_yesno</source_model>
922
  </try_use_real_shipping_price>
 
 
 
 
 
 
 
 
 
 
923
  <export_soldout>
924
  <label>Export out of stock products</label>
925
  <comment></comment>
926
  <frontend_type>select</frontend_type>
927
+ <sort_order>50</sort_order>
928
+ <show_in_default>0</show_in_default>
929
+ <show_in_website>0</show_in_website>
930
  <show_in_store>1</show_in_store>
931
  <source_model>adminhtml/system_config_source_yesno</source_model>
932
  </export_soldout>
933
+ <export_not_salable>
934
+ <label>Export not salable products</label>
935
+ <comment></comment>
936
+ <frontend_type>select</frontend_type>
937
+ <sort_order>55</sort_order>
938
+ <show_in_default>0</show_in_default>
939
+ <show_in_website>0</show_in_website>
940
+ <show_in_store>1</show_in_store>
941
+ <source_model>adminhtml/system_config_source_yesno</source_model>
942
+ <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
943
+ </export_not_salable>
944
+ <show_advanced_configuration>
945
+ <label>Show advanced configuration ?</label>
946
+ <frontend_type>select</frontend_type>
947
+ <source_model>adminhtml/system_config_source_yesno</source_model>
948
+ <sort_order>57</sort_order>
949
+ <show_in_default>0</show_in_default>
950
+ <show_in_website>0</show_in_website>
951
+ <show_in_store>1</show_in_store>
952
+ </show_advanced_configuration>
953
+ <shipping_price_based_on>
954
+ <depends>
955
+ <show_advanced_configuration>1</show_advanced_configuration>
956
+ </depends>
957
+ <label>Shipping Country</label>
958
+ <comment>Default country used to calculate shipping fees</comment>
959
+ <frontend_type>select</frontend_type>
960
+ <source_model>adminhtml/system_config_source_country</source_model>
961
+ <sort_order>60</sort_order>
962
+ <show_in_default>0</show_in_default>
963
+ <show_in_website>0</show_in_website>
964
+ <show_in_store>1</show_in_store>
965
+ </shipping_price_based_on>
966
  <export_visibility>
967
+ <depends>
968
+ <show_advanced_configuration>1</show_advanced_configuration>
969
+ </depends>
970
  <label>Export product with visibility :</label>
971
  <comment></comment>
972
  <frontend_type>multiselect</frontend_type>
973
  <sort_order>70</sort_order>
974
+ <show_in_default>0</show_in_default>
975
+ <show_in_website>0</show_in_website>
976
  <show_in_store>1</show_in_store>
977
  <source_model>profileolabs_shoppingflux/export_source_visibility</source_model>
978
  </export_visibility>
979
  <memory_limit>
980
+ <depends>
981
+ <show_advanced_configuration>1</show_advanced_configuration>
982
+ </depends>
983
  <label>Memory limit</label>
984
  <comment>in MB. Do not modify if you don't know what you are doing.</comment>
985
  <frontend_type>text</frontend_type>
986
  <sort_order>100</sort_order>
987
+ <show_in_default>0</show_in_default>
988
  <show_in_website>0</show_in_website>
989
+ <show_in_store>1</show_in_store>
990
  </memory_limit>
991
  <enable_sync>
992
+ <depends>
993
+ <show_advanced_configuration>1</show_advanced_configuration>
994
+ </depends>
995
  <label>Enable automatic updates ?</label>
996
  <comment>Update stocks and prices in real time. This could slow down price and stock modifications.</comment>
997
  <frontend_type>select</frontend_type>
998
  <sort_order>120</sort_order>
999
+ <show_in_default>0</show_in_default>
1000
  <show_in_website>0</show_in_website>
1001
+ <show_in_store>1</show_in_store>
1002
  <source_model>adminhtml/system_config_source_yesno</source_model>
1003
  </enable_sync>
1004
  <enable_cron>
1005
+ <depends>
1006
+ <show_advanced_configuration>1</show_advanced_configuration>
1007
+ </depends>
1008
  <label>Enable background generation ?</label>
1009
  <comment>Update feed on background if needed.</comment>
1010
  <frontend_type>select</frontend_type>
1011
  <sort_order>125</sort_order>
1012
+ <show_in_default>0</show_in_default>
1013
  <show_in_website>0</show_in_website>
1014
+ <show_in_store>1</show_in_store>
1015
  <source_model>adminhtml/system_config_source_yesno</source_model>
1016
  </enable_cron>
1017
  <use_manage_stock>
1018
+ <depends>
1019
+ <show_advanced_configuration>1</show_advanced_configuration>
1020
+ </depends>
1021
  <label>Manage 'Manage stock' attribute ?</label>
1022
  <comment>If yes, products with 'Manage stock' = 'No' will have a stock qty to 100 in the feed.</comment>
1023
  <frontend_type>select</frontend_type>
1024
  <sort_order>130</sort_order>
1025
+ <show_in_default>0</show_in_default>
1026
  <show_in_website>0</show_in_website>
1027
+ <show_in_store>1</show_in_store>
1028
  <source_model>adminhtml/system_config_source_yesno</source_model>
1029
  <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
1030
  </use_manage_stock>
1031
  <all_store_products>
1032
+ <depends>
1033
+ <show_advanced_configuration>1</show_advanced_configuration>
1034
+ </depends>
1035
  <label>Export products from all stores ?</label>
1036
  <comment>If any doubt exists, leave it to 'No'</comment>
1037
  <frontend_type>select</frontend_type>
1038
  <sort_order>135</sort_order>
1039
+ <show_in_default>0</show_in_default>
1040
  <show_in_website>0</show_in_website>
1041
+ <show_in_store>1</show_in_store>
1042
  <source_model>adminhtml/system_config_source_yesno</source_model>
1043
  </all_store_products>
1044
  <all_store_categories>
1045
+ <depends>
1046
+ <show_advanced_configuration>1</show_advanced_configuration>
1047
+ </depends>
1048
  <label>Use categories from all stores ?</label>
1049
  <comment>If any doubt exists, leave it to 'No'</comment>
1050
  <frontend_type>select</frontend_type>
1051
  <sort_order>140</sort_order>
1052
+ <show_in_default>0</show_in_default>
1053
  <show_in_website>0</show_in_website>
1054
+ <show_in_store>1</show_in_store>
1055
  <source_model>adminhtml/system_config_source_yesno</source_model>
1056
  <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
1057
  </all_store_categories>
1058
  <use_only_shoppingflux_category>
1059
+ <depends>
1060
+ <show_advanced_configuration>1</show_advanced_configuration>
1061
+ </depends>
1062
  <label>Use only ShoppingFlux category ?</label>
1063
  <comment>Faster if yes.</comment>
1064
  <frontend_type>select</frontend_type>
1065
  <sort_order>150</sort_order>
1066
+ <show_in_default>0</show_in_default>
1067
+ <show_in_website>0</show_in_website>
1068
  <show_in_store>1</show_in_store>
1069
  <source_model>adminhtml/system_config_source_yesno</source_model>
1070
  <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
1071
  </use_only_shoppingflux_category>
1072
  <max_category_level>
1073
+ <depends>
1074
+ <show_advanced_configuration>1</show_advanced_configuration>
1075
+ </depends>
1076
  <label>Use only X first category levels</label>
1077
  <frontend_type>select</frontend_type>
1078
  <sort_order>150</sort_order>
1079
+ <show_in_default>0</show_in_default>
1080
+ <show_in_website>0</show_in_website>
1081
  <show_in_store>1</show_in_store>
1082
  <source_model>profileolabs_shoppingflux/export_source_category_level</source_model>
1083
  <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
1084
  </max_category_level>
1085
  <enable_events>
1086
+ <depends>
1087
+ <show_advanced_configuration>1</show_advanced_configuration>
1088
+ </depends>
1089
  <label>Enable ShoppingFlux events ?</label>
1090
  <comment>Usefull only in case of specific developments.</comment>
1091
  <frontend_type>select</frontend_type>
1092
  <sort_order>160</sort_order>
1093
+ <show_in_default>0</show_in_default>
1094
+ <show_in_website>0</show_in_website>
1095
  <show_in_store>1</show_in_store>
1096
  <source_model>adminhtml/system_config_source_yesno</source_model>
1097
  </enable_events>
1098
  <manage_configurable>
1099
+ <depends>
1100
+ <show_advanced_configuration>1</show_advanced_configuration>
1101
+ </depends>
1102
  <label>Advanced management of configurable products ?</label>
1103
  <comment>If no, only configurable products will be transfered (without their children). In most cases, should be set to 'Yes'.</comment>
1104
  <frontend_type>select</frontend_type>
1105
  <sort_order>170</sort_order>
1106
+ <show_in_default>0</show_in_default>
1107
+ <show_in_website>0</show_in_website>
1108
  <show_in_store>1</show_in_store>
1109
  <source_model>adminhtml/system_config_source_yesno</source_model>
1110
  <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
1111
  </manage_configurable>
1112
  <manage_catalog_rules>
1113
+ <depends>
1114
+ <show_advanced_configuration>1</show_advanced_configuration>
1115
+ </depends>
1116
  <label>Manage catalog price rules ?</label>
1117
  <frontend_type>select</frontend_type>
1118
  <sort_order>180</sort_order>
1119
+ <show_in_default>0</show_in_default>
1120
+ <show_in_website>0</show_in_website>
1121
  <show_in_store>1</show_in_store>
1122
  <source_model>adminhtml/system_config_source_yesno</source_model>
1123
  <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
1124
  </manage_catalog_rules>
1125
  <manage_media_gallery>
1126
+ <depends>
1127
+ <show_advanced_configuration>1</show_advanced_configuration>
1128
+ </depends>
1129
  <label>Manage product galleries ?</label>
1130
  <comment>Does not concern main image. Faster if 'No'.</comment>
1131
  <frontend_type>select</frontend_type>
1132
  <sort_order>190</sort_order>
1133
+ <show_in_default>0</show_in_default>
1134
+ <show_in_website>0</show_in_website>
1135
  <show_in_store>1</show_in_store>
1136
  <source_model>adminhtml/system_config_source_yesno</source_model>
1137
  <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
1138
+ </manage_media_gallery>
1139
+ <transform_qty_increments>
1140
+ <depends>
1141
+ <show_advanced_configuration>1</show_advanced_configuration>
1142
+ </depends>
1143
+ <label>Transform qty increments products ?</label>
1144
+ <frontend_type>select</frontend_type>
1145
+ <sort_order>200</sort_order>
1146
+ <show_in_default>0</show_in_default>
1147
+ <show_in_website>0</show_in_website>
1148
+ <show_in_store>1</show_in_store>
1149
+ <source_model>adminhtml/system_config_source_yesno</source_model>
1150
+ <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
1151
+ </transform_qty_increments>
1152
  </fields>
1153
  </general>
1154
+ <attributes_mapping translate="label">
1155
+ <label>Attribute mapping</label>
1156
+ <frontend_model>profileolabs_shoppingflux/adminhtml_system_config_form_fieldset_abstract</frontend_model>
1157
+ <show_in_default>0</show_in_default>
1158
+ <show_in_website>0</show_in_website>
1159
  <show_in_store>1</show_in_store>
1160
  <sort_order>20</sort_order>
1161
  <fields>
1166
  <source_model>profileolabs_shoppingflux/export_source_attributes</source_model>
1167
  <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
1168
  <sort_order>10</sort_order>
1169
+ <show_in_default>0</show_in_default>
1170
+ <show_in_website>0</show_in_website>
1171
  <show_in_store>1</show_in_store>
1172
  </ean>
1173
  <isbn>
1177
  <source_model>profileolabs_shoppingflux/export_source_attributes</source_model>
1178
  <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
1179
  <sort_order>20</sort_order>
1180
+ <show_in_default>0</show_in_default>
1181
+ <show_in_website>0</show_in_website>
1182
  <show_in_store>1</show_in_store>
1183
  </isbn>
1184
  <ref_manufacturer>
1188
  <source_model>profileolabs_shoppingflux/export_source_attributes</source_model>
1189
  <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
1190
  <sort_order>30</sort_order>
1191
+ <show_in_default>0</show_in_default>
1192
+ <show_in_website>0</show_in_website>
1193
  <show_in_store>1</show_in_store>
1194
  </ref_manufacturer>
1195
  <ref_wholesaler>
1199
  <source_model>profileolabs_shoppingflux/export_source_attributes</source_model>
1200
  <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
1201
  <sort_order>40</sort_order>
1202
+ <show_in_default>0</show_in_default>
1203
+ <show_in_website>0</show_in_website>
1204
  <show_in_store>1</show_in_store>
1205
  </ref_wholesaler>
1206
  <shipping_delay>
1210
  <source_model>profileolabs_shoppingflux/export_source_attributes</source_model>
1211
  <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
1212
  <sort_order>42</sort_order>
1213
+ <show_in_default>0</show_in_default>
1214
+ <show_in_website>0</show_in_website>
1215
  <show_in_store>1</show_in_store>
1216
  </shipping_delay>
1217
  <shipping_send_delay>
1221
  <source_model>profileolabs_shoppingflux/export_source_attributes</source_model>
1222
  <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
1223
  <sort_order>43</sort_order>
1224
+ <show_in_default>0</show_in_default>
1225
+ <show_in_website>0</show_in_website>
1226
  <show_in_store>1</show_in_store>
1227
  </shipping_send_delay>
1228
  <brand>
1232
  <source_model>profileolabs_shoppingflux/export_source_attributes</source_model>
1233
  <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
1234
  <sort_order>50</sort_order>
1235
+ <show_in_default>0</show_in_default>
1236
+ <show_in_website>0</show_in_website>
1237
  <show_in_store>1</show_in_store>
1238
  </brand>
1239
  <brand_page_url>
1243
  <source_model>profileolabs_shoppingflux/export_source_attributes</source_model>
1244
  <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
1245
  <sort_order>55</sort_order>
1246
+ <show_in_default>0</show_in_default>
1247
+ <show_in_website>0</show_in_website>
1248
  <show_in_store>1</show_in_store>
1249
  </brand_page_url>
1250
  <ecotaxe>
1253
  <source_model>profileolabs_shoppingflux/export_source_attributes</source_model>
1254
  <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
1255
  <sort_order>60</sort_order>
1256
+ <show_in_default>0</show_in_default>
1257
+ <show_in_website>0</show_in_website>
1258
  <show_in_store>1</show_in_store>
1259
  </ecotaxe>
1260
  <short_name>
1264
  <source_model>profileolabs_shoppingflux/export_source_attributes</source_model>
1265
  <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
1266
  <sort_order>70</sort_order>
1267
+ <show_in_default>0</show_in_default>
1268
+ <show_in_website>0</show_in_website>
1269
  <show_in_store>1</show_in_store>
1270
  </short_name>
1271
  <characteristics>
1275
  <source_model>profileolabs_shoppingflux/export_source_attributes</source_model>
1276
  <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
1277
  <sort_order>80</sort_order>
1278
+ <show_in_default>0</show_in_default>
1279
+ <show_in_website>0</show_in_website>
1280
  <show_in_store>1</show_in_store>
1281
  </characteristics>
1282
  <warranty>
1286
  <source_model>profileolabs_shoppingflux/export_source_attributes</source_model>
1287
  <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
1288
  <sort_order>90</sort_order>
1289
+ <show_in_default>0</show_in_default>
1290
+ <show_in_website>0</show_in_website>
1291
  <show_in_store>1</show_in_store>
1292
  </warranty>
1293
  <kind>
1297
  <source_model>profileolabs_shoppingflux/export_source_attributes</source_model>
1298
  <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
1299
  <sort_order>100</sort_order>
1300
+ <show_in_default>0</show_in_default>
1301
+ <show_in_website>0</show_in_website>
1302
  <show_in_store>1</show_in_store>
1303
  </kind>
1304
  <matter>
1308
  <source_model>profileolabs_shoppingflux/export_source_attributes</source_model>
1309
  <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
1310
  <sort_order>100</sort_order>
1311
+ <show_in_default>0</show_in_default>
1312
+ <show_in_website>0</show_in_website>
1313
  <show_in_store>1</show_in_store>
1314
  </matter>
1315
  <size>
1319
  <source_model>profileolabs_shoppingflux/export_source_attributes</source_model>
1320
  <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
1321
  <sort_order>110</sort_order>
1322
+ <show_in_default>0</show_in_default>
1323
+ <show_in_website>0</show_in_website>
1324
  <show_in_store>1</show_in_store>
1325
  </size>
1326
  <shoe_size>
1330
  <source_model>profileolabs_shoppingflux/export_source_attributes</source_model>
1331
  <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
1332
  <sort_order>115</sort_order>
1333
+ <show_in_default>0</show_in_default>
1334
+ <show_in_website>0</show_in_website>
1335
  <show_in_store>1</show_in_store>
1336
  </shoe_size>
1337
  <dimension>
1341
  <source_model>profileolabs_shoppingflux/export_source_attributes</source_model>
1342
  <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
1343
  <sort_order>120</sort_order>
1344
+ <show_in_default>0</show_in_default>
1345
+ <show_in_website>0</show_in_website>
1346
  <show_in_store>1</show_in_store>
1347
  </dimension>
 
 
 
 
 
 
 
 
 
1348
  <sku>
1349
  <label>Product SKU</label>
1350
+ <comment>By default, you need to keep the 'sku' attribute. This value will be used as unique identifier for your products on ShoppingFeed and Marketplaces. Do not change unless shopping feed told you to.</comment>
1351
  <frontend_type>select</frontend_type>
1352
  <source_model>profileolabs_shoppingflux/export_source_attributes</source_model>
1353
  <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
1354
  <sort_order>0</sort_order>
1355
+ <show_in_default>0</show_in_default>
1356
+ <show_in_website>0</show_in_website>
1357
  <show_in_store>1</show_in_store>
1358
  </sku>
1359
  <name>
1363
  <source_model>profileolabs_shoppingflux/export_source_attributes</source_model>
1364
  <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
1365
  <sort_order>10</sort_order>
1366
+ <show_in_default>0</show_in_default>
1367
+ <show_in_website>0</show_in_website>
1368
  <show_in_store>1</show_in_store>
1369
  </name>
1370
  <description>
1374
  <source_model>profileolabs_shoppingflux/export_source_attributes</source_model>
1375
  <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
1376
  <sort_order>20</sort_order>
1377
+ <show_in_default>0</show_in_default>
1378
+ <show_in_website>0</show_in_website>
1379
  <show_in_store>1</show_in_store>
1380
  </description>
1381
  <short_description>
1385
  <source_model>profileolabs_shoppingflux/export_source_attributes</source_model>
1386
  <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
1387
  <sort_order>30</sort_order>
1388
+ <show_in_default>0</show_in_default>
1389
+ <show_in_website>0</show_in_website>
1390
  <show_in_store>1</show_in_store>
1391
  </short_description>
1392
+ <meta_title>
1393
+ <label>Meta title</label>
1394
+ <comment></comment>
1395
+ <frontend_type>select</frontend_type>
1396
+ <source_model>profileolabs_shoppingflux/export_source_attributes</source_model>
1397
+ <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
1398
+ <sort_order>30</sort_order>
1399
+ <show_in_default>0</show_in_default>
1400
+ <show_in_website>0</show_in_website>
1401
+ <show_in_store>1</show_in_store>
1402
+ </meta_title>
1403
+ <meta_description>
1404
+ <label>Meta description</label>
1405
+ <comment></comment>
1406
+ <frontend_type>select</frontend_type>
1407
+ <source_model>profileolabs_shoppingflux/export_source_attributes</source_model>
1408
+ <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
1409
+ <sort_order>30</sort_order>
1410
+ <show_in_default>0</show_in_default>
1411
+ <show_in_website>0</show_in_website>
1412
+ <show_in_store>1</show_in_store>
1413
+ </meta_description>
1414
  <meta_keyword>
1415
+ <label>Meta Keywords</label>
1416
  <comment></comment>
1417
  <frontend_type>select</frontend_type>
1418
  <source_model>profileolabs_shoppingflux/export_source_attributes</source_model>
1419
  <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
1420
  <sort_order>30</sort_order>
1421
+ <show_in_default>0</show_in_default>
1422
+ <show_in_website>0</show_in_website>
1423
  <show_in_store>1</show_in_store>
1424
  </meta_keyword>
1425
  <weight>
1429
  <source_model>profileolabs_shoppingflux/export_source_attributes</source_model>
1430
  <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
1431
  <sort_order>40</sort_order>
1432
+ <show_in_default>0</show_in_default>
1433
+ <show_in_website>0</show_in_website>
1434
  <show_in_store>1</show_in_store>
1435
  </weight>
1436
  <color>
1440
  <source_model>profileolabs_shoppingflux/export_source_attributes</source_model>
1441
  <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
1442
  <sort_order>50</sort_order>
1443
+ <show_in_default>0</show_in_default>
1444
+ <show_in_website>0</show_in_website>
1445
  <show_in_store>1</show_in_store>
1446
  </color>
 
 
 
 
 
 
 
 
 
 
1447
  <price>
1448
  <label>Price</label>
1449
  <comment></comment>
1451
  <source_model>profileolabs_shoppingflux/export_source_attributesprice</source_model>
1452
  <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
1453
  <sort_order>60</sort_order>
1454
+ <show_in_default>0</show_in_default>
1455
+ <show_in_website>0</show_in_website>
1456
  <show_in_store>1</show_in_store>
1457
  </price>
1458
  <special_price>
1462
  <source_model>profileolabs_shoppingflux/export_source_attributesprice</source_model>
1463
  <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
1464
  <sort_order>70</sort_order>
1465
+ <show_in_default>0</show_in_default>
1466
+ <show_in_website>0</show_in_website>
1467
  <show_in_store>1</show_in_store>
1468
  </special_price>
1469
+ <additional>
 
 
 
 
 
 
 
 
 
1470
  <label>Other attributes to export</label>
1471
+ <frontend_type>wcmultiselect</frontend_type>
1472
  <source_model>profileolabs_shoppingflux/export_source_attributes</source_model>
1473
  <backend_model>profileolabs_shoppingflux/system_config_backend_refresh</backend_model>
1474
  <sort_order>125</sort_order>
1475
+ <show_in_default>0</show_in_default>
1476
+ <show_in_website>0</show_in_website>
1477
  <show_in_store>1</show_in_store>
1478
+ </additional>
1479
  </fields>
1480
+ </attributes_mapping>
1481
  </groups>
1482
  </shoppingflux_export>
1483
  </sections>
app/code/community/Profileolabs/Shoppingflux/sql/profileolabs_shoppingflux_setup/mysql4-install-0.8.0.php ADDED
@@ -0,0 +1,301 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * @category ShoppingFlux
5
+ * @author vincent enjalbert
6
+ */
7
+
8
+
9
+ /* CUSTOMER */
10
+
11
+ $installerCustomer = new Mage_Customer_Model_Entity_Setup('profileolabs_shoppingflux_setup');
12
+ /* @var $installerCustomer Mage_Customer_Model_Entity_Setup */
13
+
14
+ $installerCustomer->startSetup();
15
+
16
+ //$attribute = Mage::getModel('eav/config')->getAttribute('customer', 'from_shoppingflux');
17
+ $entityId = $installerCustomer->getEntityTypeId('customer');
18
+ $attribute = $installerCustomer->getAttribute($entityId, 'from_shoppingflux');
19
+ if (!$attribute) {
20
+
21
+ $installerCustomer->addAttribute('customer', 'from_shoppingflux', array(
22
+ 'type' => 'int',
23
+ 'label' => 'From ShoppingFlux',
24
+ 'visible' => true,
25
+ 'required' => false,
26
+ 'unique' => false,
27
+ 'sort_order' => 700,
28
+ 'default' => 0,
29
+ 'input' => 'select',
30
+ 'source' => 'eav/entity_attribute_source_boolean',
31
+ ));
32
+
33
+ $usedInForms = array(
34
+ 'adminhtml_customer',
35
+ );
36
+
37
+ $attribute = Mage::getSingleton('eav/config')->getAttribute('customer', 'from_shoppingflux');
38
+ $attribute->setData('used_in_forms', $usedInForms);
39
+ $attribute->setData('sort_order', 700);
40
+
41
+ $attribute->save();
42
+ }
43
+
44
+ $installerCustomer->endSetup();
45
+
46
+
47
+ /* SALES */
48
+
49
+ $installerSales = new Mage_Sales_Model_Mysql4_Setup('profileolabs_shoppingflux_setup');
50
+ /* @var $installerSales Mage_Sales_Model_Mysql4_Setup */
51
+
52
+ $installerSales->startSetup();
53
+
54
+ $entityId = $installerSales->getEntityTypeId('order');
55
+ $attribute = $installerSales->getAttribute($entityId, 'from_shoppingflux');
56
+ if (!$attribute)
57
+ $installerSales->addAttribute('order', 'from_shoppingflux', array(
58
+ 'type' => 'int',
59
+ 'label' => 'From ShoppingFlux',
60
+ 'visible' => true,
61
+ 'required' => false,
62
+ 'unique' => false,
63
+ 'sort_order' => 700,
64
+ 'default' => 0,
65
+ 'input' => 'select',
66
+ 'source' => 'eav/entity_attribute_source_boolean',
67
+ 'grid' => true,
68
+ ));
69
+
70
+ $attribute = $installerSales->getAttribute($entityId, 'order_id_shoppingflux');
71
+ if (!$attribute)
72
+ $installerSales->addAttribute('order', 'order_id_shoppingflux', array(
73
+ 'type' => 'varchar',
74
+ 'label' => 'ID Order ShoppingFlux',
75
+ 'visible' => true,
76
+ 'required' => false,
77
+ 'unique' => false,
78
+ 'sort_order' => 705,
79
+ 'input' => 'text',
80
+ 'grid' => true,
81
+ ));
82
+
83
+ $attribute = $installerSales->getAttribute($entityId, 'marketplace_shoppingflux');
84
+ if (!$attribute)
85
+ $installerSales->addAttribute('order', 'marketplace_shoppingflux', array(
86
+ 'type' => 'varchar',
87
+ 'label' => 'Marketplace ShoppingFlux',
88
+ 'visible' => true,
89
+ 'required' => false,
90
+ 'unique' => false,
91
+ 'sort_order' => 710,
92
+ 'input' => 'text',
93
+ 'grid' => true,
94
+ ));
95
+
96
+ $attribute = $installerSales->getAttribute($entityId, 'fees_shoppingflux');
97
+ if (!$attribute)
98
+ $installerSales->addAttribute('order', 'fees_shoppingflux', array(
99
+ 'type' => 'decimal',
100
+ 'label' => 'Fees ShoppingFlux',
101
+ 'visible' => true,
102
+ 'required' => false,
103
+ 'unique' => false,
104
+ 'sort_order' => 720,
105
+ 'input' => 'text',
106
+ 'grid' => true,
107
+ ));
108
+
109
+ $attribute = $installerSales->getAttribute($entityId, 'other_shoppingflux');
110
+ if (!$attribute)
111
+ $installerSales->addAttribute('order', 'other_shoppingflux', array(
112
+ 'type' => 'varchar',
113
+ 'label' => 'ShoppingFlux Note',
114
+ 'visible' => true,
115
+ 'required' => false,
116
+ 'unique' => false,
117
+ 'sort_order' => 710,
118
+ 'input' => 'text',
119
+ 'grid' => true,
120
+ ));
121
+
122
+
123
+ $attribute = $installerSales->getAttribute($entityId, 'shoppingflux_shipment_flag');
124
+ if (!$attribute) {
125
+ $installerSales->addAttribute('order', 'shoppingflux_shipment_flag', array(
126
+ 'type' => 'int',
127
+ 'label' => 'Is shipped in ShoppingFlux',
128
+ 'visible' => true,
129
+ 'required' => false,
130
+ 'unique' => false,
131
+ 'sort_order' => 705,
132
+ 'default' => 0,
133
+ 'input' => 'select',
134
+ 'source' => 'eav/entity_attribute_source_boolean',
135
+ 'grid' => true,
136
+ ));
137
+ }
138
+
139
+ $installerSales->endSetup();
140
+
141
+
142
+ //CATALOG
143
+ $installer = Mage::getResourceModel('catalog/setup','profileolabs_shoppingflux_setup');
144
+
145
+ $installer->startSetup();
146
+
147
+ $entityId = $installer->getEntityTypeId('catalog_product');
148
+
149
+ $attribute = $installer->getAttribute($entityId,'shoppingflux_product');
150
+ if(!$attribute)
151
+ $installer->addAttribute('catalog_product', 'shoppingflux_product', array(
152
+ 'type' => 'int',
153
+ 'backend' => '',
154
+ 'frontend' => '',
155
+ 'label' => 'Filtrer la présence dans le flux',
156
+ 'input' => 'boolean',
157
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_STORE,
158
+ 'visible' => 1,
159
+ 'required' => 0,
160
+ 'user_defined' => 0,
161
+ 'default' => 1,
162
+ 'searchable' => 0,
163
+ 'filterable' => 0,
164
+ 'comparable' => 0,
165
+ 'visible_on_front' => 0,
166
+ 'unique' => 0,
167
+ 'used_in_product_listing' => 1
168
+ ));
169
+
170
+ $attribute = $installer->getAttribute($entityId, 'shoppingflux_default_category');
171
+
172
+ if (!$attribute) {
173
+
174
+ $installer->addAttribute('catalog_product', 'shoppingflux_default_category', array(
175
+ 'group' => 'General',
176
+ 'type' => 'int',
177
+ 'backend' => '',
178
+ 'frontend_input' => '',
179
+ 'frontend' => '',
180
+ 'label' => 'Default Shoppingflux Category',
181
+ 'input' => 'select',
182
+ 'class' => '',
183
+ 'source' => 'profileolabs_shoppingflux/attribute_source_category',
184
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_STORE,
185
+ 'visible' => true,
186
+ 'used_in_product_listing' => true,
187
+ 'frontend_class' => '',
188
+ 'required' => false,
189
+ 'user_defined' => false,
190
+ 'default' => '',
191
+ 'searchable' => false,
192
+ 'filterable' => false,
193
+ 'comparable' => false,
194
+ 'visible_on_front' => false,
195
+ 'unique' => false,
196
+ 'position' => 60,
197
+ ));
198
+ }
199
+
200
+ $entityTypeId = $installer->getEntityTypeId(Mage_Catalog_Model_Product::ENTITY);
201
+ $attrSetIds = $installer->getAllAttributeSetIds($entityTypeId);
202
+ foreach ($attrSetIds as $attrSetId) {
203
+ $group = $installer->getAttributeGroup($entityTypeId, $attrSetId, 'Shopping Flux');
204
+ if (!$group) {
205
+ $installer->addAttributeGroup(Mage_Catalog_Model_Product::ENTITY, $attrSetId, 'Shopping Flux');
206
+ }
207
+ $groupId = $installer->getAttributeGroupId(Mage_Catalog_Model_Product::ENTITY, $attrSetId, 'Shopping Flux');
208
+
209
+
210
+ $attributeId = $installer->getAttributeId($entityTypeId, 'shoppingflux_product');
211
+ $installer->addAttributeToGroup($entityTypeId, $attrSetId, $groupId, $attributeId);
212
+ $attributeId = $installer->getAttributeId($entityTypeId, 'shoppingflux_default_category');
213
+ $installer->addAttributeToGroup($entityTypeId, $attrSetId, $groupId, $attributeId);
214
+ }
215
+
216
+ $installer->endSetup();
217
+
218
+
219
+
220
+
221
+
222
+
223
+
224
+ // DEFAULT
225
+
226
+ $installer = $this;
227
+
228
+ $installer->startSetup();
229
+
230
+ $installer->run(
231
+ "CREATE TABLE IF NOT EXISTS `{$this->getTable('shoppingflux_log')}` (
232
+ `id` int(11) NOT NULL auto_increment,
233
+ `date` timestamp NOT NULL default CURRENT_TIMESTAMP,
234
+ `message` text NOT NULL,
235
+ PRIMARY KEY (`id`)
236
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8;");
237
+ $installer->run(
238
+ "CREATE TABLE IF NOT EXISTS `{$this->getTable('shoppingflux_export_updates')}` (
239
+ `update_id` int(11) NOT NULL auto_increment,
240
+ `store_id` int(11) NOT NULL,
241
+ `product_sku` varchar(255) NOT NULL,
242
+ `stock_value` int(11) NOT NULL,
243
+ `price_value` decimal(12,4) NOT NULL,
244
+ `old_price_value` decimal(12,4) NOT NULL,
245
+ `updated_at` timestamp NOT NULL default CURRENT_TIMESTAMP,
246
+ PRIMARY KEY (`update_id`)
247
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8;");
248
+
249
+
250
+ $installer->run(
251
+ "CREATE TABLE IF NOT EXISTS `{$this->getTable('shoppingflux_export_flux')}` (
252
+ `id` int(11) NOT NULL auto_increment,
253
+ `sku` varchar(255) NOT NULL default '',
254
+ `store_id` smallint(5) NOT NULL default 1,
255
+ `xml` MEDIUMTEXT NOT NULL,
256
+ `stock_value` INT( 11 ) NOT NULL,
257
+ `price_value` DECIMAL( 12,4 ) NOT NULL,
258
+ `is_in_stock` tinyint(1) NOT NULL,
259
+ `salable` tinyint(1) NOT NULL,
260
+ `is_in_flux` tinyint(1) NOT NULL,
261
+ `type` varchar(50) NOT NULL,
262
+ `visibility` varchar(50) NOT NULL,
263
+ `update_needed` tinyint(1) NOT NULL,
264
+ `should_export` tinyint(1) NOT NULL,
265
+ `updated_at` datetime NOT NULL,
266
+ PRIMARY KEY (`id`),
267
+ CONSTRAINT SF_E_F_UNIQUE UNIQUE (`sku`, `store_id`),
268
+ INDEX (`update_needed`),
269
+ INDEX (`is_in_stock`),
270
+ INDEX (`is_in_flux`),
271
+ INDEX (`type`),
272
+ INDEX (`visibility`),
273
+ INDEX (`should_export`),
274
+ INDEX (`type`, `is_in_stock`, `is_in_flux`, `visibility`, `store_id`, `should_export`),
275
+ INDEX (`type`, `is_in_flux`, `visibility`, `store_id`,`should_export`),
276
+ INDEX (`type`, `is_in_stock`, `visibility`, `store_id`, `should_export`),
277
+ INDEX (`type`, `visibility`, `store_id`, `should_export`),
278
+ INDEX (`sku`),
279
+ INDEX (`store_id`)
280
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8;");
281
+
282
+ $installer->run(
283
+ "CREATE TABLE IF NOT EXISTS `{$this->getTable('shoppingflux_shipping_methods')}` (
284
+ `id` int(11) NOT NULL auto_increment,
285
+ `shipping_method` varchar(255) NOT NULL default '',
286
+ `marketplace` varchar(127) NOT NULL default '',
287
+ `last_seen_at` datetime NOT NULL,
288
+ PRIMARY KEY (`id`),
289
+ CONSTRAINT SF_S_M_UNIQUE UNIQUE (`shipping_method`, `marketplace`)
290
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8;");
291
+
292
+ $installer->run(
293
+ "CREATE TABLE IF NOT EXISTS `{$this->getTable('shoppingflux_manageorders_export_shipments')}` (
294
+ `update_id` int(11) NOT NULL auto_increment,
295
+ `shipment_id` int(11) NOT NULL,
296
+ `updated_at` timestamp NOT NULL default CURRENT_TIMESTAMP,
297
+ PRIMARY KEY (`update_id`)
298
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8;");
299
+ $installer->endSetup();
300
+
301
+ Mage::helper('profileolabs_shoppingflux')->generateTokens();
app/code/community/Profileolabs/Shoppingflux/sql/profileolabs_shoppingflux_setup/mysql4-upgrade-0.7.9-0.8.0.php ADDED
@@ -0,0 +1,86 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Shoppinflux
5
+ *
6
+ * @category Profileolabs
7
+ * @package Profileolabs_Shoppingflux
8
+ * @author Vincent Enjalbert - web-cooking.net
9
+ */
10
+ /* @var $installer Mage_Catalog_Model_Resource_Eav_Mysql4_Setup */
11
+
12
+
13
+ //$installer = $this;
14
+
15
+ $installer = Mage::getResourceModel('catalog/setup','profileolabs_shoppingflux_setup');
16
+
17
+ $installer->startSetup();
18
+
19
+ $installer->run("
20
+ UPDATE `{$this->getTable('shoppingflux_export_flux')}` SET update_needed = 1, should_export = 1;
21
+ ALTER TABLE `{$this->getTable('shoppingflux_export_flux')}` ADD `price_value` decimal( 12, 4 ) NOT NULL AFTER `stock_value`;
22
+ ALTER TABLE `{$this->getTable('shoppingflux_export_flux')}` ADD `salable` tinyint( 1 ) NOT NULL AFTER `is_in_stock`;
23
+ ");
24
+
25
+
26
+ //Mage::helper('profileolabs_shoppingflux')->generateTokens();
27
+
28
+ foreach (array(
29
+ 'shoppingflux_export/attributes_unknow/ean' => 'shoppingflux_export/attributes_mapping/ean',
30
+ 'shoppingflux_export/attributes_unknow/isbn' => 'shoppingflux_export/attributes_mapping/isbn',
31
+ 'shoppingflux_export/attributes_unknow/ref_manufacturer' => 'shoppingflux_export/attributes_mapping/ref_manufacturer',
32
+ 'shoppingflux_export/attributes_unknow/ref_wholesaler' => 'shoppingflux_export/attributes_mapping/ref_wholesaler',
33
+ 'shoppingflux_export/attributes_unknow/shipping_delay' => 'shoppingflux_export/attributes_mapping/shipping_delay',
34
+ 'shoppingflux_export/attributes_unknow/shipping_send_delay' => 'shoppingflux_export/attributes_mapping/shipping_send_delay',
35
+ 'shoppingflux_export/attributes_unknow/brand' => 'shoppingflux_export/attributes_mapping/brand',
36
+ 'shoppingflux_export/attributes_unknow/brand_page_url' => 'shoppingflux_export/attributes_mapping/brand_page_url',
37
+ 'shoppingflux_export/attributes_unknow/ecotaxe' => 'shoppingflux_export/attributes_mapping/ecotaxe',
38
+ 'shoppingflux_export/attributes_unknow/short_name' => 'shoppingflux_export/attributes_mapping/short_name',
39
+ 'shoppingflux_export/attributes_unknow/characteristics' => 'shoppingflux_export/attributes_mapping/characteristics',
40
+ 'shoppingflux_export/attributes_unknow/warranty' => 'shoppingflux_export/attributes_mapping/warranty',
41
+ 'shoppingflux_export/attributes_unknow/kind' => 'shoppingflux_export/attributes_mapping/kind',
42
+ 'shoppingflux_export/attributes_unknow/matter' => 'shoppingflux_export/attributes_mapping/matter',
43
+ 'shoppingflux_export/attributes_unknow/size' => 'shoppingflux_export/attributes_mapping/size',
44
+ 'shoppingflux_export/attributes_unknow/shoe_size' => 'shoppingflux_export/attributes_mapping/shoe_size',
45
+ 'shoppingflux_export/attributes_unknow/dimension' => 'shoppingflux_export/attributes_mapping/dimension',
46
+ 'shoppingflux_export/attributes_know/sku' => 'shoppingflux_export/attributes_mapping/sku',
47
+ 'shoppingflux_export/attributes_know/name' => 'shoppingflux_export/attributes_mapping/name',
48
+ 'shoppingflux_export/attributes_know/description' => 'shoppingflux_export/attributes_mapping/description',
49
+ 'shoppingflux_export/attributes_know/short_description' => 'shoppingflux_export/attributes_mapping/short_description',
50
+ 'shoppingflux_export/attributes_know/meta_title' => 'shoppingflux_export/attributes_mapping/meta_title',
51
+ 'shoppingflux_export/attributes_know/meta_description' => 'shoppingflux_export/attributes_mapping/meta_description',
52
+ 'shoppingflux_export/attributes_know/meta_keyword' => 'shoppingflux_export/attributes_mapping/meta_keyword',
53
+ 'shoppingflux_export/attributes_know/weight' => 'shoppingflux_export/attributes_mapping/weight',
54
+ 'shoppingflux_export/attributes_know/color' => 'shoppingflux_export/attributes_mapping/color',
55
+ 'shoppingflux_export/specific_prices/price' => 'shoppingflux_export/attributes_mapping/price',
56
+ 'shoppingflux_export/specific_prices/special_price' => 'shoppingflux_export/attributes_mapping/special_price',
57
+ 'shoppingflux_export/attributes_additionnal/list' => 'shoppingflux_export/attributes_mapping/additional,'
58
+ ) as $was => $become) {
59
+ $installer->run(sprintf("UPDATE `%s` SET `path` = '%s' WHERE `path` = '%s'",
60
+ $this->getTable('core/config_data'), $become, $was
61
+ ));
62
+ }
63
+
64
+
65
+
66
+ $installer->endSetup();
67
+
68
+ $installerSales = new Mage_Sales_Model_Mysql4_Setup('profileolabs_shoppingflux_setup');
69
+
70
+ $installerSales->startSetup();
71
+ $entityId = $installerSales->getEntityTypeId('order');
72
+
73
+ $attribute = $installerSales->getAttribute($entityId, 'other_shoppingflux');
74
+ if (!$attribute)
75
+ $installerSales->addAttribute('order', 'other_shoppingflux', array(
76
+ 'type' => 'varchar',
77
+ 'label' => 'ShoppingFlux Note',
78
+ 'visible' => true,
79
+ 'required' => false,
80
+ 'unique' => false,
81
+ 'sort_order' => 710,
82
+ 'input' => 'text',
83
+ 'grid' => true,
84
+ ));
85
+
86
+ $installerSales->endSetup();
app/code/local/Varien/Data/Form/Element/Wcmultiselect.php ADDED
@@ -0,0 +1,147 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Vincent Enjalbert
5
+ *
6
+ * Version Française :
7
+ * *****************************************************************************
8
+ *
9
+ * Notification de la Licence
10
+ *
11
+ * Ce fichier source est sujet au CLUF
12
+ * qui est fourni avec ce module dans le fichier LICENSE-FR.txt.
13
+ * Il est également disponible sur le web à l'adresse suivante:
14
+ * http://www.enjalbert.net/licences/magento/LICENSE-FR.txt
15
+ *
16
+ * =============================================================================
17
+ * NOTIFICATION SUR L'UTILISATION DE L'EDITION MAGENTO
18
+ * =============================================================================
19
+ * Ce module est conçu pour l'édition COMMUNITY de Magento
20
+ * WebCooking ne garantit pas le fonctionnement correct de cette extension
21
+ * sur une autre édition de Magento excepté l'édition COMMUNITY de Magento.
22
+ * WebCooking ne fournit pas de support d'extension en cas
23
+ * d'utilisation incorrecte de l'édition.
24
+ * =============================================================================
25
+ *
26
+ * English Version :
27
+ * *****************************************************************************
28
+ *
29
+ * NOTICE OF LICENSE
30
+ *
31
+ * This source file is subject to the EULA
32
+ * that is bundled with this package in the file LICENSE-EN.txt.
33
+ * It is also available through the world-wide-web at this URL:
34
+ * http://www.web-cooking.net/licences/magento/LICENSE-EN.txt
35
+ *
36
+ * =============================================================================
37
+ * MAGENTO EDITION USAGE NOTICE
38
+ * =============================================================================
39
+ * This package designed for Magento COMMUNITY edition
40
+ * WebCooking does not guarantee correct work of this extension
41
+ * on any other Magento edition except Magento COMMUNITY edition.
42
+ * WebCooking does not provide extension support in case of
43
+ * incorrect edition usage.
44
+ * =============================================================================
45
+ *
46
+ * @category Webcooking
47
+ * @package Webcooking_All
48
+ * @copyright Copyright (c) 2011-2014 Vincent René Lucien Enjalbert
49
+ * @license http://www.web-cooking.net/licences/magento/LICENSE-EN.txt
50
+ */
51
+
52
+ class Varien_Data_Form_Element_Wcmultiselect extends Varien_Data_Form_Element_Abstract
53
+ {
54
+ public function __construct($attributes=array())
55
+ {
56
+ parent::__construct($attributes);
57
+ $this->setType('select');
58
+ $this->setExtType('multiple');
59
+ }
60
+
61
+ public function getName()
62
+ {
63
+ $name = parent::getName();
64
+ if (strpos($name, '[]') === false) {
65
+ $name.= '[]';
66
+ }
67
+ return $name;
68
+ }
69
+
70
+ public function getElementHtml()
71
+ {
72
+ $this->addClass('select wcmultiselect');
73
+ $html = '';
74
+ if ($this->getCanBeEmpty() && empty($this->_data['disabled'])) {
75
+ $html .= '<input type="hidden" name="' . parent::getName() . '" value="" />';
76
+ }
77
+
78
+ $html .= '<a href="javascript:void(0);" onclick="javascript:newelem=$(\''.$this->getHtmlId().'\').clone(true);newelem.removeAttribute(\'id\');newelem.setValue(\'\');$(this).next().insert({after:newelem});">';
79
+ $html .= '<img src="' . Mage::getDesign()->getSkinUrl('images/icon_btn_add.gif') . '" alt="Add Row"/>';
80
+ $html .= '</a>' . "\n";
81
+ $html .= '<br/>' . "\n";
82
+
83
+
84
+
85
+ $value = $this->getValue();
86
+ if (!is_array($value)) {
87
+ $value = explode(',', $value);
88
+ }
89
+ $value = array_unique($value);
90
+ $value = array_filter($value);
91
+ array_unshift($value, '');
92
+ foreach($value as $val) {
93
+ $html .= '<select id="' . $this->getHtmlId() . '" name="' . $this->getName() . '" ' .
94
+ $this->serialize($this->getHtmlAttributes()) . '>' . "\n";
95
+
96
+
97
+ if ($values = $this->getValues()) {
98
+ foreach ($values as $option) {
99
+ $html .= $this->_optionToHtml($option, $val);
100
+ }
101
+ }
102
+
103
+ $html .= '</select>' . "\n";
104
+ $html .= '<a href="javascript:void(0);" onclick="javascript:$(this).previous().remove();$(this).remove()">';
105
+ $html .= '<img src="' . Mage::getDesign()->getSkinUrl('images/icon_btn_delete.gif') . '" alt="Remove Row"/>';
106
+ $html .= '</a>' . "\n";
107
+
108
+ }
109
+
110
+
111
+ $html .= $this->getAfterElementHtml();
112
+
113
+ return $html;
114
+ }
115
+
116
+ public function getHtmlAttributes()
117
+ {
118
+ return array('title', 'class', 'style', 'onclick', 'onchange', 'disabled', 'tabindex');
119
+ }
120
+
121
+ public function getDefaultHtml()
122
+ {
123
+ $result = ( $this->getNoSpan() === true ) ? '' : '<span class="field-row">'."\n";
124
+ $result.= $this->getLabelHtml();
125
+ $result.= $this->getElementHtml();
126
+
127
+ $result.= ( $this->getNoSpan() === true ) ? '' : '</span>'."\n";
128
+
129
+ return $result;
130
+ }
131
+
132
+ public function getJsObjectName() {
133
+ return $this->getHtmlId() . 'ElementControl';
134
+ }
135
+
136
+ protected function _optionToHtml($option, $selected)
137
+ {
138
+ $html = '<option value="'.$this->_escape($option['value']).'"';
139
+ $html.= isset($option['title']) ? 'title="'.$this->_escape($option['title']).'"' : '';
140
+ $html.= isset($option['style']) ? 'style="'.$option['style'].'"' : '';
141
+ if ((string)$option['value'] == $selected) {
142
+ $html.= ' selected="selected"';
143
+ }
144
+ $html.= '>'.$this->_escape($option['label']). '</option>'."\n";
145
+ return $html;
146
+ }
147
+ }
app/design/adminhtml/default/default/layout/profileolabs_shoppingflux.xml CHANGED
@@ -44,7 +44,14 @@
44
  </reference>
45
  </shoppingflux_export_adminhtml_export_show>
46
 
 
47
  <adminhtml_sales_order_view>
 
 
 
 
 
 
48
  <reference name="order_totals">
49
  <block type="adminhtml/sales_order_totals_item" name="fees_shoppingflux" template="profileolabs/shoppingflux/manageorders/sales/order/total.phtml">
50
  </block>
@@ -54,4 +61,9 @@
54
  </block>-->
55
  </reference>
56
  </adminhtml_sales_order_view>
 
 
 
 
 
57
  </layout>
44
  </reference>
45
  </shoppingflux_export_adminhtml_export_show>
46
 
47
+
48
  <adminhtml_sales_order_view>
49
+ <reference name="sales_order_tabs">
50
+ <action method="addTab">
51
+ <name>shopping_flux</name>
52
+ <block>profileolabs_shoppingflux/manageorders_adminhtml_order_view_tab_shoppingflux</block>
53
+ </action>
54
+ </reference>
55
  <reference name="order_totals">
56
  <block type="adminhtml/sales_order_totals_item" name="fees_shoppingflux" template="profileolabs/shoppingflux/manageorders/sales/order/total.phtml">
57
  </block>
61
  </block>-->
62
  </reference>
63
  </adminhtml_sales_order_view>
64
+ <adminhtml_sales_order_invoice_view>
65
+ <reference name="invoice_totals">
66
+ <block type="adminhtml/sales_order_totals_tax" name="fees_shoppingflux" template="profileolabs/shoppingflux/manageorders/sales/order/total.phtml"></block>
67
+ </reference>
68
+ </adminhtml_sales_order_invoice_view>
69
  </layout>
app/design/adminhtml/default/default/template/profileolabs/shoppingflux/manageorders/sales/order/view/tab/shoppingflux.phtml ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div class="entry-edit">
2
+ <div class="entry-edit-head">
3
+ <h4 class="icon-head head-payment-method"><?php echo $this->__('Shopping Feed Information') ?></h4>
4
+ </div>
5
+ <fieldset>
6
+ <table cellspacing="0" class="form-list">
7
+ <tbody>
8
+ <tr>
9
+ <td class="label">
10
+ <label><?php echo $this->__('Marketplace') ?></label>
11
+ </td>
12
+ <td class="value">
13
+ <label><?php echo $this->getOrder()->getMarketplaceShoppingflux() ?></label>
14
+ </td>
15
+ </tr>
16
+ <tr>
17
+ <td class="label">
18
+ <label><?php echo $this->__('Marketplace Fees') ?></label>
19
+ </td>
20
+ <td class="value">
21
+ <label><?php echo $this->getOrder()->getFeesShoppingflux() ?></label>
22
+ </td>
23
+ </tr>
24
+ <tr>
25
+ <td class="label">
26
+ <label><?php echo $this->__('Marketplace Order Id') ?></label>
27
+ </td>
28
+ <td class="value">
29
+ <label><?php echo $this->getOrder()->getOrderIdShoppingflux() ?></label>
30
+ </td>
31
+ </tr>
32
+ <tr>
33
+ <td class="label">
34
+ <label><?php echo $this->__('Note') ?></label>
35
+ </td>
36
+ <td class="value">
37
+ <label><?php echo $this->getOrder()->getOtherShoppingflux() ?></label>
38
+ </td>
39
+ </tr>
40
+ </tbody>
41
+ </table>
42
+
43
+ </fieldset>
44
+ </div>
app/design/adminhtml/default/default/template/profileolabs/shoppingflux/register.phtml ADDED
@@ -0,0 +1,53 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $storeCode = Mage::app()->getRequest()->getParam('store', false);
3
+ if($storeCode):
4
+ $store = Mage::app()->getStore($storeCode);
5
+ $email = Mage::getStoreConfig('trans_email/ident_general/email', $store->getId());
6
+ $feed = urlencode(Mage::helper('profileolabs_shoppingflux')->getFeedUrl($store));
7
+ $lang = mb_substr(Mage::getStoreConfig('general/locale/code', $store->getId()), -2);
8
+ $token = Mage::getStoreConfig('shoppingflux/configuration/api_key', $store->getId());
9
+ ?>
10
+ <div style="text-align:center;">
11
+ <img src="<?php echo $this->getSkinUrl('images/shoppingflux/logo_us.jpg') ?>" height="55" width="246" />
12
+ </div>
13
+
14
+ <div class="shoppingflux-register entry-edit">
15
+ <div class="entry-edit-head">
16
+ <h4 class="icon-head head-edit-form fieldset-legend"><?php echo $this->__('Shopping Flux') ?></h4>
17
+ </div>
18
+ <div class="fieldset fieldset-wide">
19
+
20
+ <div style="text-align:center;">
21
+ <button class="scalable add" onclick="window.location='https://register.shopping-feed.com/sign/magento?email=<?php echo $email ?>&feed=<?php echo $feed ?>&lang=<?php echo $lang ?>&token=<?php echo $token ?>'; return false;"><span><?php echo $this->__('Register Now') ?></span></button>
22
+ <br/>
23
+ </div>
24
+
25
+ <img src="<?php echo $this->getSkinUrl('images/shoppingflux/ad.png') ?>" height="625" width="625" style="float:right;" />
26
+
27
+
28
+ <h2>Shopping Feed exports your products to the largest marketplaces in the world, all from a single intuitive platform. Through our free setup and expert support, we help thousands of storefronts increase their sales and visibility.</h2>
29
+ <br/>
30
+ <ul>
31
+ <li><strong>Put your feeds to work:</strong> A single platform to manage your products and sales on the world's marketplaces.</li>
32
+ <li><strong>Set it and forget it:</strong> Automated order processes for each marketplace channel you sell on, quadrupling your revenue, and not your workload.</li>
33
+ <li><strong>Try Before You Buy:</strong> Expert Channel Setup is always free on Shopping Feed, giving you risk-free access to your brand new channel before becoming a member.</li>
34
+ </ul>
35
+ <br/>
36
+ <ul>
37
+ <li>Optimize your channels, and calculate realtime Return On Investment for all the leading comparison shopping engines like <strong>Google Shopping, Ratuken, shopping.com, NextTag, ShopZilla</strong>, and more.</li>
38
+ <li>Connect your storefront to all the major marketplaces like <strong>eBay, Amazon, Sears</strong> and <strong>11 Main</strong>, while managing your pricing, inventory, and merchandising through a single, intuitive platform.</li>
39
+ <li>Prepare for an evolving ecosystem: New features, tools, and integrations are being created every month, at no extra cost.</li>
40
+ <li>Be seen: With over 50 different marketplaces and shopping engines under one roof, Shopping Feed helps you find your right audience.</li>
41
+ </ul>
42
+
43
+ <br/><br/>
44
+ <p><strong style="font-size:1.5em;">With over 1400 Members worldwide, helping them achieve over $13 Million in monthly revenue, Lets us help you put your feeds to work.</strong></p>
45
+ <div style="text-align:center;clear:both;">
46
+ <button class="scalable add" onclick="window.location='https://register.shopping-feed.com/sign/magento?email=<?php echo $email ?>&feed=<?php echo $feed ?>&lang=<?php echo $lang ?>&token=<?php echo $token ?>'; return false;"><span><?php echo $this->__('Register Now') ?></span></button>
47
+ <br/>
48
+ </div>
49
+ </div>
50
+ </div>
51
+ <?php else: ?>
52
+ Please select a store view.
53
+ <?php endif; ?>
app/locale/en_US/Profileolabs_Shoppingflux.csv CHANGED
@@ -203,4 +203,13 @@
203
  "Enable background generation ?","Enable background generation ?"
204
  "Update feed on background if needed.","Update feed on background if needed."
205
  "Use Product ID's instead of SKU ?","Use Product ID's instead of SKU ?"
206
- "Should be yes in most cases.","Should be yes in most cases."
 
 
 
 
 
 
 
 
 
203
  "Enable background generation ?","Enable background generation ?"
204
  "Update feed on background if needed.","Update feed on background if needed."
205
  "Use Product ID's instead of SKU ?","Use Product ID's instead of SKU ?"
206
+ "Should be yes in most cases.","Should be yes in most cases."
207
+ "Transform qty increments products ?","Transform qty increments products ?"
208
+ " - Set of %d"," - Set of %d"
209
+ "Use Marketplace Order Date and Time ?","Use Marketplace Order Date and Time ?"
210
+ "If no, the order date will be the import date.","If no, the order date will be the import date."
211
+ "Shopping Feed Information","Shopping Feed Information"
212
+ "Shopping Flux","Shopping Feed"
213
+ "Customer Mobile Attribute","Customer Mobile Attribute"
214
+ "By default, you need to keep the 'sku' attribute. This value will be used as unique identifier for your products on ShoppingFeed and Marketplaces. Do not change unless shopping feed told you to.","By default, you need to keep the 'sku' attribute. This value will be used as unique identifier for your products on ShoppingFeed and Marketplaces. Do not change unless shopping feed told you to."
215
+ "Send notification to ShoppingFeed","Send notification to ShoppingFeed"
app/locale/fr_FR/Profileolabs_Shoppingflux.csv CHANGED
@@ -203,4 +203,13 @@
203
  "Enable background generation ?","Activer la génération en tache de fond ?"
204
  "Update feed on background if needed.","Mets à jour le flux en tache de fond."
205
  "Use Product ID's instead of SKU ?","Utiliser l'ID produit au lieu du SKU ?"
206
- "Should be yes in most cases.","Doit être à oui dans la majorité des cas."
 
 
 
 
 
 
 
 
 
203
  "Enable background generation ?","Activer la génération en tache de fond ?"
204
  "Update feed on background if needed.","Mets à jour le flux en tache de fond."
205
  "Use Product ID's instead of SKU ?","Utiliser l'ID produit au lieu du SKU ?"
206
+ "Should be yes in most cases.","Doit être à oui dans la majorité des cas."
207
+ "Transform qty increments products ?","Transformer les produits utilisant des incréments de quantité ?"
208
+ " - Set of %d"," - Lot de %d"
209
+ "Use Marketplace Order Date and Time ?","Récupérer la date et l'heure de la commande ?"
210
+ "If no, the order date will be the import date.","Si 'non', la date et l'heure commande seront la date et l'heure d'import de celle ci."
211
+ "Shopping Feed Information","Informations Shopping Flux"
212
+ "Shopping Flux","Shopping Flux"
213
+ "Customer Mobile Attribute","Attribut téléphone portable"
214
+ "By default, you need to keep the 'sku' attribute. This value will be used as unique identifier for your products on ShoppingFeed and Marketplaces. Do not change unless shopping feed told you to.","Par défaut, il faut renseigner votre champ SKU. C'est la valeur qui servira d'id produit sur SF et sur les places de marché. A ne modifier que sur demande de Shopping Flux."
215
+ "Send notification to ShoppingFeed","Envoyer à ShoppingFlux"
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Profileolabs_Shoppingflux</name>
4
- <version>0.7.9</version>
5
  <stability>stable</stability>
6
  <license uri="http://www.opensource.org/licenses/gpl-license.php">GNU General Public License (GPL)</license>
7
  <channel>community</channel>
@@ -11,9 +11,9 @@
11
  <notes>- Minor bugfixes &amp; improvements&#xD;
12
  </notes>
13
  <authors><author><name>ShoppingFlux</name><user>ShoppingFlux</user><email>olivier.levy@gmail.com</email></author></authors>
14
- <date>2014-09-03</date>
15
- <time>09:25:06</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="b66202a43cdb1e3b178287aa1d7c1d2a"/></dir></dir></dir><file name="Feed.php" hash="02274fcb2c95199c826d8e22be5bb16a"/><file name="Process.php" hash="d5cd1471abfc8ea7f364dfb4610e4fd4"/><dir name="Product"><file name="Grid.php" hash="70febb2c9ecef5a9ec41a12e06df02b5"/></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="69ebd2ff37b6e24adf5f90fc3a7e1f48"/><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="00cc7d1bb20437d8f7a547e0acfd7f9c"/></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="8c3a5fe7c329059b6b85a1e0e5ee48fd"/></dir></dir><file name="Config.php" hash="13ccabd19d75028862d951a73dc405d0"/><dir name="Export"><dir name="Convert"><dir name="Parser"><file name="Product.php" hash="4e50613b82ba84c35eb87f991645c118"/></dir></dir><file name="Flow.php" hash="842fa4b4a49ea86bdeb1cb0441433ccd"/><file name="Flux.php" hash="c49fa4363de922707ed928c0bfc26558"/><file name="Observer.php" hash="81bccc00143e4e188cc0c3477a026886"/><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="8da7acf7a455e27e4bb94396f4c85e1b"/></dir><dir name="Export"><file name="Shipments.php" hash="20e617e183366ef5447ea653aa989065"/></dir><file name="Log.php" hash="392d1811b56df12bccb2e7986e588f3d"/><file name="Observer.php" hash="2d34910c331e4bc911a59e5470ad851b"/><file name="Order.php" hash="eb403feb4c278e49e9c7346dacbf482f"/><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="7eb049ce0997fba04dbf44be95be7997"/><dir name="System"><dir name="Config"><dir name="Backend"><file name="Apikey.php" hash="90036cf58c627fcc68920af912171a0c"/><file name="Refresh.php" hash="d53cbdc6ae73c146af67ef5f20d9e4e8"/></dir></dir></dir><file name=".DS_Store" hash="e7218be203fbe7f5c2243a9dea3bf55e"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="GeneralController.php" hash="8086191aa502cb3996f7a154c7926718"/></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="e79d3545f9413dde430d703bb13f6a3e"/><file name="LogController.php" hash="f744619a2283468d03e8a3f7f8f0c080"/><file name="OrderController.php" hash="acec967d5c7fa44fd3f716fc48f500a6"/></dir></dir></dir><dir name="doc"><file name="doc_module_1.4.pdf" hash="5590a49838bd67f70f0cacf9605cea2b"/></dir><dir name="etc"><file name="adminhtml.xml" hash="fa2e007d1511d96ca9b37fe92eab2604"/><file name="config.xml" hash="3c1dc092fd3e4d6e11bbf3512b7a7901"/><file name="system.xml" hash="1f1077833ee000e30643f9b5bbb0f531"/></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"/><file name="mysql4-upgrade-0.7.7-0.7.8.php" hash="0804f52786bdd97024dee79eb4b68695"/></dir></dir><file name=".DS_Store" hash="a4ce32669416edb46ed2eff780ea35e8"/></dir><file name=".DS_Store" hash="07ed8102ec80073338a7364c2ac2c414"/></dir></target><target name="mageetc"><dir name="modules"><file name="Profileolabs_Shoppingflux.xml" hash="73ec83cf32c72884815a3cac9f754a54"/></dir></target><target name="magelocale"><dir><dir name="en_US"><file name="Profileolabs_Shoppingflux.csv" hash="2dbb4b4f0221286b023eabe362aea52e"/></dir><dir name="fr_FR"><file name="Profileolabs_Shoppingflux.csv" hash="7daa0b7c989419cf96ccf622fff7a0d7"/></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="af3d64c7cb4b179cbf75b2def62d31f1"/><file name="feed.phtml" hash="1cb4146ef5910af093fe928f48332652"/><file name="process.phtml" hash="1dee42b2f14c0862446e5b475aaccad3"/><file name="product.phtml" hash="3d93144b8eb1e16672d610d9c0c35092"/></dir><dir name="manageorders"><file name="import.phtml" hash="6fd3bca397be66fc17d340cfae558fe9"/><dir name="payment"><dir name="info"><file name="purchaseorder.phtml" hash="782768b0e4836b25f46443dda098db29"/></dir></dir><dir name="sales"><dir name="order"><file name="total.phtml" hash="ded51585527ad918412dd5f0d0a9b2a7"/></dir></dir></dir></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="profileolabs_shoppingflux.xml" hash="672feff0a0895f920d4037ff131bf5ac"/></dir></dir></dir><dir name="default"><dir name="default"><dir name="layout"><file name="profileolabs_shoppingflux.xml" hash="672feff0a0895f920d4037ff131bf5ac"/></dir></dir></dir></dir></target></contents>
17
  <compatible/>
18
  <dependencies><required><php><min>5.1.0</min><max>6.0.0</max></php></required></dependencies>
19
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Profileolabs_Shoppingflux</name>
4
+ <version>0.8.4</version>
5
  <stability>stable</stability>
6
  <license uri="http://www.opensource.org/licenses/gpl-license.php">GNU General Public License (GPL)</license>
7
  <channel>community</channel>
11
  <notes>- Minor bugfixes &amp; improvements&#xD;
12
  </notes>
13
  <authors><author><name>ShoppingFlux</name><user>ShoppingFlux</user><email>olivier.levy@gmail.com</email></author></authors>
14
+ <date>2015-01-19</date>
15
+ <time>09:34:23</time>
16
+ <contents><target name="magecommunity"><dir name="Profileolabs"><dir name="Shoppingflux"><dir name="Block"><dir name="Adminhtml"><dir name="System"><dir name="Config"><dir name="Form"><dir name="Fieldset"><file name="Abstract.php" hash="24b478fb90bc6f55a4a5401c7254be11"/></dir></dir></dir></dir></dir><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="b66202a43cdb1e3b178287aa1d7c1d2a"/></dir></dir></dir><file name="Feed.php" hash="a6bfac2be7c99ba5631626404e231ab0"/><file name="Process.php" hash="d5cd1471abfc8ea7f364dfb4610e4fd4"/><dir name="Product"><file name="Grid.php" hash="edcd41677cadd8070a96724d6a3074ec"/></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="51cfa87ab0417ff26669a33bd22b50fa"/><file name="Flux.php" hash="61914062c6ad450ca31e63248bd50dca"/><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="00cc7d1bb20437d8f7a547e0acfd7f9c"/><dir name="View"><dir name="Tab"><file name="Shoppingflux.php" hash="c0039acf525620c14cc8a1945d44150e"/></dir></dir></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="93276aad3f0ce41f8bd5d8664e2554ce"/></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="d432d0470750b893eacd992b8ff0e030"/></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="8c3a5fe7c329059b6b85a1e0e5ee48fd"/></dir></dir><file name="Config.php" hash="da5de2e75f27c64d01aef782d00b4a95"/><dir name="Export"><dir name="Convert"><dir name="Parser"><file name="Product.php" hash="4e50613b82ba84c35eb87f991645c118"/></dir></dir><file name="Flow.php" hash="842fa4b4a49ea86bdeb1cb0441433ccd"/><file name="Flux.php" hash="04257d2e64871a06c45ac70fd853f237"/><file name="Observer.php" hash="257b6198822f5fe6551296d1e626c20c"/><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="7c86df4782b77b69c59204a39766a787"/><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="3ef9c9aba499a9dcaa9d56a820fa3736"/></dir><dir name="Export"><file name="Shipments.php" hash="20e617e183366ef5447ea653aa989065"/></dir><file name="Log.php" hash="392d1811b56df12bccb2e7986e588f3d"/><file name="Observer.php" hash="752cc172b2226da0d0af729e272ec390"/><file name="Order.php" hash="d02dd1893dcc1e1212d0fd1946abf0f8"/><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 name="Source"><file name="Attributes.php" hash="c9207872ddd962d6b0166d35cfe98626"/></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="1f25ee2f480128d9257c131e66924fef"/><dir name="System"><dir name="Config"><dir name="Backend"><file name="Apikey.php" hash="90036cf58c627fcc68920af912171a0c"/><file name="Refresh.php" hash="d53cbdc6ae73c146af67ef5f20d9e4e8"/></dir></dir></dir><file name=".DS_Store" hash="e7218be203fbe7f5c2243a9dea3bf55e"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="GeneralController.php" hash="ca99113377d353dbc4eecfdaea767fa2"/></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="366625fca1e4dc8878d979b885a4c0b8"/></dir><dir name="Manageorders"><dir name="Adminhtml"><file name="CronController.php" hash="9c43b1b18fb883b4140aaa1d3f82cb1c"/><file name="ImportController.php" hash="31203b56860d102c1565fb7653b1a770"/><file name="LogController.php" hash="f744619a2283468d03e8a3f7f8f0c080"/><file name="OrderController.php" hash="acec967d5c7fa44fd3f716fc48f500a6"/></dir><file name="LaunchController.php" hash="a8d04ada8f26479dbd6b002b871a612a"/></dir></dir><dir name="doc"><file name="ShoppingFeed_US.pdf" hash="0cd685730056d5f2f9c9f8292dead3ae"/><file name="ShoppingFlux_FR.pdf" hash="5590a49838bd67f70f0cacf9605cea2b"/></dir><dir name="etc"><file name="adminhtml.xml" hash="fa2e007d1511d96ca9b37fe92eab2604"/><file name="config.xml" hash="a601fa3a27b2d4fd054da52c0f5e6d01"/><file name="system.xml" hash="6eadeea1d75b0aa060879c84768dc01f"/></dir><dir name="sql"><dir name="profileolabs_shoppingflux_setup"><file name="mysql4-install-0.1.0.php" hash="87c47ba97a55bd71dada152b52736be2"/><file name="mysql4-install-0.8.0.php" hash="b93d5654461f166a46c6fd7cdb2d91f9"/><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"/><file name="mysql4-upgrade-0.7.7-0.7.8.php" hash="0804f52786bdd97024dee79eb4b68695"/><file name="mysql4-upgrade-0.7.9-0.8.0.php" hash="481edf71966d663af397b5d339797deb"/></dir></dir><file name=".DS_Store" hash="70d8319e6c95b1083e4aa566a1e7f8f7"/></dir><file name=".DS_Store" hash="d3146c6d782e4b3220b6aaa51d65eccc"/></dir></target><target name="mageetc"><dir name="modules"><file name="Profileolabs_Shoppingflux.xml" hash="73ec83cf32c72884815a3cac9f754a54"/></dir></target><target name="magelocale"><dir><dir name="en_US"><file name="Profileolabs_Shoppingflux.csv" hash="ff7ff630beba927b74db682bfd01a43e"/></dir><dir name="fr_FR"><file name="Profileolabs_Shoppingflux.csv" hash="538e929f954fb0abb9a7dd33ce93f801"/></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="profileolabs_shoppingflux.xml" hash="1bfeba2cbebbdfa6ce08f202b099d10d"/></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="af3d64c7cb4b179cbf75b2def62d31f1"/><file name="feed.phtml" hash="1cb4146ef5910af093fe928f48332652"/><file name="process.phtml" hash="1dee42b2f14c0862446e5b475aaccad3"/><file name="product.phtml" hash="3d93144b8eb1e16672d610d9c0c35092"/></dir><dir name="manageorders"><file name="import.phtml" hash="6fd3bca397be66fc17d340cfae558fe9"/><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 name="view"><dir name="tab"><file name="shoppingflux.phtml" hash="7492846bef04ca1f0419cd804e7c4599"/></dir></dir></dir></dir></dir><file name="register.phtml" hash="614dfd40a4e74c0db2667ba30aeb71e3"/></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><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="images"><dir name="shoppingflux"><file name="ad.png" hash="b76c0f3e4a7084a88ba0527be9fdcc25"/><file name="logo_us.jpg" hash="cae9e6bcba9814193a59bb07d541edb6"/></dir></dir></dir></dir></dir></target><target name="magelocal"><dir name="Varien"><dir name="Data"><dir name="Form"><dir name="Element"><file name="Wcmultiselect.php" hash="0b976892dab42c440b15706eec966efb"/></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>
skin/adminhtml/default/default/images/shoppingflux/ad.png ADDED
Binary file
skin/adminhtml/default/default/images/shoppingflux/logo_us.jpg ADDED
Binary file