Tritac_ChannelEngine - Version 2.1.3

Version Notes

* Added support for flat catalog mode.

Download this release

Release Info

Developer Christiaan de Ridder
Extension Tritac_ChannelEngine
Version 2.1.3
Comparing to
See all releases


Code changes from version 2.1.2 to 2.1.3

app/code/community/Tritac/ChannelEngine/Model/Observer.php CHANGED
@@ -26,6 +26,8 @@ class Tritac_ChannelEngine_Model_Observer
26
  */
27
  protected $_helper = null;
28
 
 
 
29
  /**
30
  * Retrieve and validate API config
31
  * Initialize API client
@@ -478,7 +480,7 @@ class Tritac_ChannelEngine_Model_Observer
478
  * Note: products with undefined website id will not be export.
479
  */
480
  foreach(Mage::app()->getStores() as $_store) {
481
-
482
  $path = Mage::getBaseDir('media') . DS . 'channelengine' . DS;
483
  $storeConfig = $this->_helper->getConfig($_store->getId());
484
  $name = $storeConfig['general']['tenant'].'_products.xml';
@@ -515,6 +517,16 @@ class Tritac_ChannelEngine_Model_Observer
515
  /**
516
  * Retrieve product collection with all visible attributes
517
  */
 
 
 
 
 
 
 
 
 
 
518
  $attributesToSelect = array('name', 'description', 'image', 'url_key', 'price', 'cost', 'visibility', 'msrp');
519
  $visibleAttributes = array();
520
  $attributes = Mage::getSingleton('eav/config')
@@ -528,7 +540,9 @@ class Tritac_ChannelEngine_Model_Observer
528
  foreach( $attribute->getSource()->getAllOptions(false) as $option ) {
529
  $visibleAttributes[$code]['values'][$option['value']] = $option['label'];
530
  }
531
- $attributesToSelect[] = $code;
 
 
532
  }
533
  }
534
 
@@ -536,8 +550,14 @@ class Tritac_ChannelEngine_Model_Observer
536
  $attributesToSelect[] = $this->_config[$storeId]['feed']['gtin'];
537
  }
538
 
539
- $collection = Mage::getModel('catalog/product')->getCollection()
540
- ->addAttributeToSelect($attributesToSelect, 'left')
 
 
 
 
 
 
541
  ->addFieldToFilter('type_id', 'simple')
542
  ->addStoreFilter($_store)
543
  ->addAttributeToFilter('status', 1)
@@ -557,6 +577,7 @@ class Tritac_ChannelEngine_Model_Observer
557
  )
558
  ->group('e.entity_id');
559
 
 
560
  Mage::getSingleton('core/resource_iterator')->walk(
561
  $collection->getSelect(),
562
  array(array($this, 'callbackGenerateFeed')),
26
  */
27
  protected $_helper = null;
28
 
29
+ const ATTRIBUTES_LIMIT = 30;
30
+
31
  /**
32
  * Retrieve and validate API config
33
  * Initialize API client
480
  * Note: products with undefined website id will not be export.
481
  */
482
  foreach(Mage::app()->getStores() as $_store) {
483
+ Mage::app()->setCurrentStore($_store);
484
  $path = Mage::getBaseDir('media') . DS . 'channelengine' . DS;
485
  $storeConfig = $this->_helper->getConfig($_store->getId());
486
  $name = $storeConfig['general']['tenant'].'_products.xml';
517
  /**
518
  * Retrieve product collection with all visible attributes
519
  */
520
+ if(Mage::helper('catalog/product_flat')->isEnabled($storeId)) {
521
+ Mage::getResourceSingleton('catalog/product_flat')->setStoreId($storeId);
522
+ }
523
+ $collection = Mage::getModel('catalog/product')->getCollection();
524
+
525
+ if(Mage::helper('catalog/product_flat')->isEnabled($storeId)) {
526
+ $collection->getEntity()->setStoreId($storeId);
527
+ }
528
+
529
+
530
  $attributesToSelect = array('name', 'description', 'image', 'url_key', 'price', 'cost', 'visibility', 'msrp');
531
  $visibleAttributes = array();
532
  $attributes = Mage::getSingleton('eav/config')
540
  foreach( $attribute->getSource()->getAllOptions(false) as $option ) {
541
  $visibleAttributes[$code]['values'][$option['value']] = $option['label'];
542
  }
543
+ if(!in_array($code, $attributesToSelect)) {
544
+ $attributesToSelect[] = $code;
545
+ }
546
  }
547
  }
548
 
550
  $attributesToSelect[] = $this->_config[$storeId]['feed']['gtin'];
551
  }
552
 
553
+ if( (count($attributesToSelect) > self::ATTRIBUTES_LIMIT) && !$collection->isEnabledFlat()) {
554
+ $error = $this->_helper->__('Too many visible attributes. Please enable catalog product flat mode.');
555
+ Mage::getSingleton('adminhtml/session')->addError($error);
556
+ echo 'redirect';
557
+ return false;
558
+ }
559
+
560
+ $collection->addAttributeToSelect($attributesToSelect, 'left')
561
  ->addFieldToFilter('type_id', 'simple')
562
  ->addStoreFilter($_store)
563
  ->addAttributeToFilter('status', 1)
577
  )
578
  ->group('e.entity_id');
579
 
580
+ //die();
581
  Mage::getSingleton('core/resource_iterator')->walk(
582
  $collection->getSelect(),
583
  array(array($this, 'callbackGenerateFeed')),
app/code/community/Tritac/ChannelEngine/etc/config.xml CHANGED
@@ -2,7 +2,7 @@
2
  <config>
3
  <modules>
4
  <Tritac_ChannelEngine>
5
- <version>2.1.2</version>
6
  </Tritac_ChannelEngine>
7
  </modules>
8
 
2
  <config>
3
  <modules>
4
  <Tritac_ChannelEngine>
5
+ <version>2.1.3</version>
6
  </Tritac_ChannelEngine>
7
  </modules>
8
 
app/design/adminhtml/default/default/template/channelengine/system/config/feed/generate_button.phtml CHANGED
@@ -16,6 +16,9 @@
16
  if (response == 1) {
17
  result = '<?php echo $this->__("Product Feed was generated successfully") ?>';
18
  elem.removeClassName('fail').addClassName('success')
 
 
 
19
  } else {
20
  elem.removeClassName('success').addClassName('fail')
21
  }
16
  if (response == 1) {
17
  result = '<?php echo $this->__("Product Feed was generated successfully") ?>';
18
  elem.removeClassName('fail').addClassName('success')
19
+ } else if(response == 'redirect') {
20
+ result = "<?php echo $this->__("Too many visible attributes.") ?>";
21
+ window.location.reload();
22
  } else {
23
  elem.removeClassName('success').addClassName('fail')
24
  }
package.xml CHANGED
@@ -1,18 +1,18 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Tritac_ChannelEngine</name>
4
- <version>2.1.2</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/osl-3.0.php">Open Software License (OSL)</license>
7
  <channel>community</channel>
8
  <extends/>
9
  <summary>Connect your Magento shop to the ChannelEngine platform.</summary>
10
  <description>Easily offer your products on comparison websites and marketplaces using the ChannelEngine platform.</description>
11
- <notes>* Prevent extension conflicts in the order grid</notes>
12
  <authors><author><name>ChannelEngine</name><user>christiaander</user><email>christiaan@tritac.com</email></author></authors>
13
- <date>2014-04-25</date>
14
- <time>10:55:16</time>
15
- <contents><target name="mageetc"><dir name="modules"><file name="Tritac_ChannelEngine.xml" hash="014b02d581d1039764cdc422e8f86643"/></dir></target><target name="magecommunity"><dir name="Tritac"><dir name="ChannelEngine"><dir name="Block"><dir name="Adminhtml"><dir name="System"><dir name="Config"><file name="Feed.php" hash="cbc5bf15ab9cd9bb5b2bc97375db3eb2"/></dir></dir></dir><file name="Head.php" hash="98a65067f1ae6074f2c276624164c183"/><dir name="Sales"><dir name="Order"><file name="Grid.php" hash="097e10d1e9e6dd8c5aee66124376cae4"/></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="bf1203d5f080b340404f02c51967f328"/></dir><dir name="Model"><dir name="Carrier"><file name="Channelengine.php" hash="d93ca824330b2e0eff034009c7e333c2"/></dir><file name="Observer.php" hash="eac32b7e34172409e520c407cd7f1ebe"/><file name="Order.php" hash="66c8e7c0ac47f9dbabb156eaa8c97f1e"/><dir name="Payment"><dir name="Method"><file name="Channelengine.php" hash="49ef02953b486cfbf813d37e681172a3"/></dir></dir><dir name="Resource"><dir name="Order"><file name="Collection.php" hash="989bbd95481d2954d7813e19d8c27d18"/></dir><file name="Order.php" hash="3813fe3ad637daf069d79bca1feea540"/><file name="Setup.php" hash="24934fe022e3bb93331fcbfb7a116d37"/></dir><dir name="System"><dir name="Config"><dir name="Source"><file name="Gtin.php" hash="d182d37bc836ef718858c985c27b3c3c"/><file name="Shipping.php" hash="103486f575dcd6205fc9cfd40f2fa5ea"/></dir></dir></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="GenerateController.php" hash="edde582db1fbb091e14396b247cd0d45"/></dir><file name="TestController.php" hash="1f579ff8fd8ffeb9a8ce25dde0d0fc11"/></dir><dir name="etc"><file name="adminhtml.xml" hash="5a976b638c6ad66287ba3084fdbfc157"/><file name="config.xml" hash="0d127997b8b6dfa9b9922e5837629161"/><file name="system.xml" hash="de0e1158e239833891707739313ac8c6"/></dir><dir name="sql"><dir name="channelengine_setup"><file name="mysql4-install-0.1.0.0.php" hash="312e7c69f98c8d13d251b8ed1ca93448"/><file name="mysql4-install-1.0.0.php" hash="3664f3c5b6e01db69cbea8b4b0beb9ab"/></dir></dir></dir></dir></target><target name="magelib"><dir name="Tritac"><dir name="ChannelEngineApiClient"><file name="AddTrustExternalCARoot.crt" hash="f85d1ff17b0079709f131f3ce3f288d2"/><file name="Client.php" hash="cbfd5ff092ffb201426146d02e6316b4"/><dir name="Enums"><file name="CancellationLineStatus.php" hash="0fe455ad75e49b2796d4bcd1230a3c0d"/><file name="CancellationStatus.php" hash="e4a26c1a29afe02d92320187277f5d03"/><file name="Gender.php" hash="49645506c67b6ad530e1463da256d403"/><file name="MancoReason.php" hash="80388c0545fa091fd9e651fc1284b77d"/><file name="OrderStatus.php" hash="855341235149ff3c9d3a36a5a23f8db0"/><file name="ReturnAcceptStatus.php" hash="de4252a8f9d7b94493b470cccd9feaec"/><file name="ReturnReason.php" hash="05d5fd5b23af84508b8bec92137c421d"/><file name="ReturnStatus.php" hash="ba9350e9ba015ec9cac4b1ab7702333c"/><file name="ShipmentLineStatus.php" hash="8329dce7182fc7705bb8008da6a7e26f"/><file name="ShipmentStatus.php" hash="d73e4a5b58487c7b0c80b114601d3279"/></dir><dir name="Helpers"><file name="Collection.php" hash="2278a5e6d8d65ebca92ba1e968680315"/><file name="HttpMethod.php" hash="4949b2cfe4a309a54b1642fa09bda53b"/><file name="JsonMapper.php" hash="f8e30cab83a2f2ccfdb2a64636c2346b"/></dir><dir name="Models"><file name="Address.php" hash="543aff76425e3335cbba2a1cdd25564d"/><file name="BaseModel.php" hash="65f09d298baa6496807a2f71ea93a8f8"/><file name="Cancellation.php" hash="2fc15d3d2a8f7e21d6f6000bffb77722"/><file name="CancellationLine.php" hash="e8820be847e77d5f77a2de8cb551a8a0"/><file name="Message.php" hash="e0cea12494684d58abea051958082036"/><file name="Order.php" hash="e2a36b36a58607cc460c712979213e54"/><file name="OrderExtraDataItem.php" hash="eaf59ef83070360c4c7bb2c3f5c5633a"/><file name="OrderLine.php" hash="63451a19448eddb6eecf8eca959f9fcb"/><file name="ReturnLine.php" hash="c1cbf7c45a85280782955be400c478e6"/><file name="ReturnObject.php" hash="32d035ba6b448958bb43eac6bf286d6e"/><file name="Shipment.php" hash="8f027c770d98cdb5bc74005ec9310e1c"/><file name="ShipmentLine.php" hash="5c738023584cd6513940be54b8f8dc60"/></dir><file name="loader.php" hash="3daea8be627858c27383a79a29663c82"/></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="channelengine"><dir name="system"><dir name="config"><dir name="feed"><file name="generate_button.phtml" hash="0ca6edb2f5738aa81dd7edd8944b47cf"/></dir></dir></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="channelengine.xml" hash="d4019283d7ff05708cfac73363f598b8"/></dir><dir name="template"><dir name="channelengine"><dir name="checkout"><file name="success.phtml" hash="eea5605084a179e06c8ea922bfcdd55c"/></dir><file name="head.phtml" hash="638dd695feb9aeaf343183cc3c5d77e1"/></dir></dir></dir></dir></dir></target></contents>
16
  <compatible/>
17
  <dependencies><required><php><min>5.2.13</min><max>6.0.0</max></php></required></dependencies>
18
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Tritac_ChannelEngine</name>
4
+ <version>2.1.3</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/osl-3.0.php">Open Software License (OSL)</license>
7
  <channel>community</channel>
8
  <extends/>
9
  <summary>Connect your Magento shop to the ChannelEngine platform.</summary>
10
  <description>Easily offer your products on comparison websites and marketplaces using the ChannelEngine platform.</description>
11
+ <notes>* Added support for flat catalog mode.</notes>
12
  <authors><author><name>ChannelEngine</name><user>christiaander</user><email>christiaan@tritac.com</email></author></authors>
13
+ <date>2014-05-13</date>
14
+ <time>09:07:14</time>
15
+ <contents><target name="mageetc"><dir name="modules"><file name="Tritac_ChannelEngine.xml" hash="014b02d581d1039764cdc422e8f86643"/></dir></target><target name="magecommunity"><dir name="Tritac"><dir name="ChannelEngine"><dir name="Block"><dir name="Adminhtml"><dir name="System"><dir name="Config"><file name="Feed.php" hash="cbc5bf15ab9cd9bb5b2bc97375db3eb2"/></dir></dir></dir><file name="Head.php" hash="98a65067f1ae6074f2c276624164c183"/><dir name="Sales"><dir name="Order"><file name="Grid.php" hash="097e10d1e9e6dd8c5aee66124376cae4"/></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="bf1203d5f080b340404f02c51967f328"/></dir><dir name="Model"><dir name="Carrier"><file name="Channelengine.php" hash="d93ca824330b2e0eff034009c7e333c2"/></dir><file name="Observer.php" hash="b65f6b8c059aea6e9ee47442ab18fa76"/><file name="Order.php" hash="66c8e7c0ac47f9dbabb156eaa8c97f1e"/><dir name="Payment"><dir name="Method"><file name="Channelengine.php" hash="49ef02953b486cfbf813d37e681172a3"/></dir></dir><dir name="Resource"><dir name="Order"><file name="Collection.php" hash="989bbd95481d2954d7813e19d8c27d18"/></dir><file name="Order.php" hash="3813fe3ad637daf069d79bca1feea540"/><file name="Setup.php" hash="24934fe022e3bb93331fcbfb7a116d37"/></dir><dir name="System"><dir name="Config"><dir name="Source"><file name="Gtin.php" hash="d182d37bc836ef718858c985c27b3c3c"/><file name="Shipping.php" hash="103486f575dcd6205fc9cfd40f2fa5ea"/></dir></dir></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="GenerateController.php" hash="edde582db1fbb091e14396b247cd0d45"/></dir><file name="TestController.php" hash="1f579ff8fd8ffeb9a8ce25dde0d0fc11"/></dir><dir name="etc"><file name="adminhtml.xml" hash="5a976b638c6ad66287ba3084fdbfc157"/><file name="config.xml" hash="8ebc8379160d90c71cceb07238d17a92"/><file name="system.xml" hash="de0e1158e239833891707739313ac8c6"/></dir><dir name="sql"><dir name="channelengine_setup"><file name="mysql4-install-0.1.0.0.php" hash="312e7c69f98c8d13d251b8ed1ca93448"/><file name="mysql4-install-1.0.0.php" hash="3664f3c5b6e01db69cbea8b4b0beb9ab"/></dir></dir></dir></dir></target><target name="magelib"><dir name="Tritac"><dir name="ChannelEngineApiClient"><file name="AddTrustExternalCARoot.crt" hash="f85d1ff17b0079709f131f3ce3f288d2"/><file name="Client.php" hash="cbfd5ff092ffb201426146d02e6316b4"/><dir name="Enums"><file name="CancellationLineStatus.php" hash="0fe455ad75e49b2796d4bcd1230a3c0d"/><file name="CancellationStatus.php" hash="e4a26c1a29afe02d92320187277f5d03"/><file name="Gender.php" hash="49645506c67b6ad530e1463da256d403"/><file name="MancoReason.php" hash="80388c0545fa091fd9e651fc1284b77d"/><file name="OrderStatus.php" hash="855341235149ff3c9d3a36a5a23f8db0"/><file name="ReturnAcceptStatus.php" hash="de4252a8f9d7b94493b470cccd9feaec"/><file name="ReturnReason.php" hash="05d5fd5b23af84508b8bec92137c421d"/><file name="ReturnStatus.php" hash="ba9350e9ba015ec9cac4b1ab7702333c"/><file name="ShipmentLineStatus.php" hash="8329dce7182fc7705bb8008da6a7e26f"/><file name="ShipmentStatus.php" hash="d73e4a5b58487c7b0c80b114601d3279"/></dir><dir name="Helpers"><file name="Collection.php" hash="2278a5e6d8d65ebca92ba1e968680315"/><file name="HttpMethod.php" hash="4949b2cfe4a309a54b1642fa09bda53b"/><file name="JsonMapper.php" hash="f8e30cab83a2f2ccfdb2a64636c2346b"/></dir><dir name="Models"><file name="Address.php" hash="543aff76425e3335cbba2a1cdd25564d"/><file name="BaseModel.php" hash="65f09d298baa6496807a2f71ea93a8f8"/><file name="Cancellation.php" hash="2fc15d3d2a8f7e21d6f6000bffb77722"/><file name="CancellationLine.php" hash="e8820be847e77d5f77a2de8cb551a8a0"/><file name="Message.php" hash="e0cea12494684d58abea051958082036"/><file name="Order.php" hash="e2a36b36a58607cc460c712979213e54"/><file name="OrderExtraDataItem.php" hash="eaf59ef83070360c4c7bb2c3f5c5633a"/><file name="OrderLine.php" hash="63451a19448eddb6eecf8eca959f9fcb"/><file name="ReturnLine.php" hash="c1cbf7c45a85280782955be400c478e6"/><file name="ReturnObject.php" hash="32d035ba6b448958bb43eac6bf286d6e"/><file name="Shipment.php" hash="8f027c770d98cdb5bc74005ec9310e1c"/><file name="ShipmentLine.php" hash="5c738023584cd6513940be54b8f8dc60"/></dir><file name="loader.php" hash="3daea8be627858c27383a79a29663c82"/></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="channelengine"><dir name="system"><dir name="config"><dir name="feed"><file name="generate_button.phtml" hash="11f261e8aee3ddfe2cd611bb8eae573e"/></dir></dir></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="channelengine.xml" hash="d4019283d7ff05708cfac73363f598b8"/></dir><dir name="template"><dir name="channelengine"><dir name="checkout"><file name="success.phtml" hash="eea5605084a179e06c8ea922bfcdd55c"/></dir><file name="head.phtml" hash="638dd695feb9aeaf343183cc3c5d77e1"/></dir></dir></dir></dir></dir></target></contents>
16
  <compatible/>
17
  <dependencies><required><php><min>5.2.13</min><max>6.0.0</max></php></required></dependencies>
18
  </package>