Intelligent_Reach - Version 1.0.38

Version Notes

Stable release. Compatible with older versions. Feed creation has been optimized to handle larger loads. The option to choose the store is now available. Can retrieve associated products for grouped types.Bug fixes.Has support for PHP V5.2. Quantity script has now been added. Flat Catalog support has been added,

Download this release

Release Info

Developer Intelligent Reach
Extension Intelligent_Reach
Version 1.0.38
Comparing to
See all releases


Code changes from version 1.0.37 to 1.0.38

Files changed (38) hide show
  1. app/code/local/IntelligentReach/AmazonPayment/etc/config.xml +1 -1
  2. app/code/local/IntelligentReach/DebenhamsPayment/etc/config.xml +1 -1
  3. app/code/local/IntelligentReach/EbayPayment/etc/config.xml +1 -1
  4. app/code/local/IntelligentReach/IRShipping/Helper/Data.php +0 -5
  5. app/code/local/IntelligentReach/IRShipping/Model/Cart/Api/V2.php +0 -37
  6. app/code/local/IntelligentReach/IRShipping/Model/Cart/Shipping/Api/V2.php +0 -38
  7. app/code/local/IntelligentReach/IRShipping/etc/api.xml +0 -45
  8. app/code/local/IntelligentReach/IRShipping/etc/config.xml +0 -40
  9. app/code/local/IntelligentReach/IRShipping/etc/wsdl.xml +0 -39
  10. app/code/local/IntelligentReach/IRShipping/etc/wsi.xml +0 -58
  11. app/code/local/IntelligentReach/Integration/etc/config.xml +12 -12
  12. app/code/local/IntelligentReach/LazadaPayment/etc/config.xml +1 -1
  13. app/code/local/IntelligentReach/OrderExporter/Helper/Data.php +5 -0
  14. app/code/local/IntelligentReach/{IRShipping → OrderExporter}/Model/Carrier.php +2 -2
  15. app/code/local/IntelligentReach/{IRShipping → OrderExporter}/Model/Cart/Api.php +1 -1
  16. app/code/local/IntelligentReach/OrderExporter/Model/Cart/Api/V2.php +9 -0
  17. app/code/local/IntelligentReach/OrderExporter/Model/Cart/Product/Api.php +75 -0
  18. app/code/local/IntelligentReach/OrderExporter/Model/Cart/Product/Api/V2.php +9 -0
  19. app/code/local/IntelligentReach/{IRShipping → OrderExporter}/Model/Cart/Shipping/Api.php +4 -4
  20. app/code/local/IntelligentReach/OrderExporter/Model/Cart/Shipping/Api/V2.php +9 -0
  21. app/code/local/IntelligentReach/{IRShipping → OrderExporter}/Model/Quote/Address/Total/Shipping.php +1 -1
  22. app/code/local/IntelligentReach/OrderExporter/etc/api.xml +62 -0
  23. app/code/local/IntelligentReach/OrderExporter/etc/config.xml +42 -0
  24. app/code/local/IntelligentReach/{IRShipping → OrderExporter}/etc/system.xml +3 -3
  25. app/code/local/IntelligentReach/OrderExporter/etc/wsdl.xml +102 -0
  26. app/code/local/IntelligentReach/OrderExporter/etc/wsi.xml +141 -0
  27. app/code/local/IntelligentReach/PlayPayment/etc/config.xml +1 -1
  28. app/code/local/IntelligentReach/RakutenPayment/etc/config.xml +1 -1
  29. app/code/local/IntelligentReach/TradeMePayment/etc/config.xml +1 -1
  30. app/code/local/IntelligentReach/WestfieldPayment/etc/config.xml +1 -1
  31. app/etc/modules/{IntelligentReach_IRShipping.xml → IntelligentReach_OrderExporter.xml} +2 -2
  32. intelligentreach_integration.php +54 -19
  33. intelligentreach_integration_pre.php +54 -19
  34. intelligentreach_integration_qty.php +35 -13
  35. ircronscripts/intelligentreach_integration_cron.php +50 -21
  36. ircronscripts/intelligentreach_integration_cron_pre.php +50 -21
  37. ircronscripts/intelligentreach_integration_cron_qty_price.php +27 -7
  38. package.xml +4 -4
app/code/local/IntelligentReach/AmazonPayment/etc/config.xml CHANGED
@@ -2,7 +2,7 @@
2
  <config>
3
  <modules>
4
  <IntelligentReach_AmazonPayment>
5
- <version>1.0.37</version>
6
  </IntelligentReach_AmazonPayment>
7
  </modules>
8
  <global>
2
  <config>
3
  <modules>
4
  <IntelligentReach_AmazonPayment>
5
+ <version>1.0.38</version>
6
  </IntelligentReach_AmazonPayment>
7
  </modules>
8
  <global>
app/code/local/IntelligentReach/DebenhamsPayment/etc/config.xml CHANGED
@@ -2,7 +2,7 @@
2
  <config>
3
  <modules>
4
  <IntelligentReach_DebenhamsPayment>
5
- <version>1.0.37</version>
6
  </IntelligentReach_DebenhamsPayment>
7
  </modules>
8
  <global>
2
  <config>
3
  <modules>
4
  <IntelligentReach_DebenhamsPayment>
5
+ <version>1.0.38</version>
6
  </IntelligentReach_DebenhamsPayment>
7
  </modules>
8
  <global>
app/code/local/IntelligentReach/EbayPayment/etc/config.xml CHANGED
@@ -2,7 +2,7 @@
2
  <config>
3
  <modules>
4
  <IntelligentReach_EbayPayment>
5
- <version>1.0.37</version>
6
  </IntelligentReach_EbayPayment>
7
  </modules>
8
  <global>
2
  <config>
3
  <modules>
4
  <IntelligentReach_EbayPayment>
5
+ <version>1.0.38</version>
6
  </IntelligentReach_EbayPayment>
7
  </modules>
8
  <global>
app/code/local/IntelligentReach/IRShipping/Helper/Data.php DELETED
@@ -1,5 +0,0 @@
1
- <?php
2
- class IntelligentReach_IRShipping_Helper_Data extends Mage_Core_Helper_Abstract
3
- {
4
- }
5
- ?>
 
 
 
 
 
app/code/local/IntelligentReach/IRShipping/Model/Cart/Api/V2.php DELETED
@@ -1,37 +0,0 @@
1
- <?php
2
- /**
3
- * Magento Enterprise Edition
4
- *
5
- * NOTICE OF LICENSE
6
- *
7
- * This source file is subject to the Magento Enterprise Edition License
8
- * that is bundled with this package in the file LICENSE_EE.txt.
9
- * It is also available through the world-wide-web at this URL:
10
- * http://www.magentocommerce.com/license/enterprise-edition
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to license@magentocommerce.com so we can send you a copy immediately.
14
- *
15
- * DISCLAIMER
16
- *
17
- * Do not edit or add to this file if you wish to upgrade Magento to newer
18
- * versions in the future. If you wish to customize Magento for your
19
- * needs please refer to http://www.magentocommerce.com for more information.
20
- *
21
- * @category Mage
22
- * @package Mage_Checkout
23
- * @copyright Copyright (c) 2013 Magento Inc. (http://www.magentocommerce.com)
24
- * @license http://www.magentocommerce.com/license/enterprise-edition
25
- */
26
-
27
- /**
28
- * Shopping cart model
29
- *
30
- * @category Mage
31
- * @package Mage_Checkout
32
- * @author Magento Core Team <core@magentocommerce.com>
33
- */
34
- class IntelligentReach_IRShipping_Model_Cart_Api_V2 extends IntelligentReach_IRShipping_Model_Cart_Api
35
- {
36
-
37
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/local/IntelligentReach/IRShipping/Model/Cart/Shipping/Api/V2.php DELETED
@@ -1,38 +0,0 @@
1
- <?php
2
- /**
3
- * Magento Enterprise Edition
4
- *
5
- * NOTICE OF LICENSE
6
- *
7
- * This source file is subject to the Magento Enterprise Edition License
8
- * that is bundled with this package in the file LICENSE_EE.txt.
9
- * It is also available through the world-wide-web at this URL:
10
- * http://www.magentocommerce.com/license/enterprise-edition
11
- * If you did not receive a copy of the license and are unable to
12
- * obtain it through the world-wide-web, please send an email
13
- * to license@magentocommerce.com so we can send you a copy immediately.
14
- *
15
- * DISCLAIMER
16
- *
17
- * Do not edit or add to this file if you wish to upgrade Magento to newer
18
- * versions in the future. If you wish to customize Magento for your
19
- * needs please refer to http://www.magentocommerce.com for more information.
20
- *
21
- * @category Mage
22
- * @package Mage_Checkout
23
- * @copyright Copyright (c) 2013 Magento Inc. (http://www.magentocommerce.com)
24
- * @license http://www.magentocommerce.com/license/enterprise-edition
25
- */
26
-
27
- /**
28
- * Shopping cart api
29
- *
30
- * @category Mage
31
- * @package Mage_Checkout
32
- * @author Magento Core Team <core@magentocommerce.com>
33
- */
34
-
35
- class IntelligentReach_IRShipping_Model_Cart_Shipping_Api_V2 extends IntelligentReach_IRShipping_Model_Cart_Shipping_Api
36
- {
37
-
38
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/local/IntelligentReach/IRShipping/etc/api.xml DELETED
@@ -1,45 +0,0 @@
1
- <?xml version="1.0"?>
2
- <!--
3
- /**
4
- * Magento Enterprise Edition
5
- *
6
- * NOTICE OF LICENSE
7
- *
8
- * This source file is subject to the Magento Enterprise Edition License
9
- * that is bundled with this package in the file LICENSE_EE.txt.
10
- * It is also available through the world-wide-web at this URL:
11
- * http://www.magentocommerce.com/license/enterprise-edition
12
- * If you did not receive a copy of the license and are unable to
13
- * obtain it through the world-wide-web, please send an email
14
- * to license@magentocommerce.com so we can send you a copy immediately.
15
- *
16
- * DISCLAIMER
17
- *
18
- * Do not edit or add to this file if you wish to upgrade Magento to newer
19
- * versions in the future. If you wish to customize Magento for your
20
- * needs please refer to http://www.magentocommerce.com for more information.
21
- *
22
- * @category Mage
23
- * @package Mage_Checkout
24
- * @copyright Copyright (c) 2013 Magento Inc. (http://www.magentocommerce.com)
25
- * @license http://www.magentocommerce.com/license/enterprise-edition
26
- */
27
- -->
28
- <config>
29
- <api>
30
- <resources>
31
- <cart_shipping translate="title" module="checkout">
32
- <model>checkout/cart_shipping_api</model>
33
- <title>Shipping information</title>
34
- <acl>cart/shipping</acl>
35
- <methods>
36
- <customIRMethod translate="title" module="checkout">
37
- <title>Set shipping method and custom values</title>
38
- <method>setCustomShippingMethod</method>
39
- <acl>cart/shipping/method</acl>
40
- </customIRMethod>
41
- </methods>
42
- </cart_shipping>
43
- </resources>
44
- </api>
45
- </config>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/local/IntelligentReach/IRShipping/etc/config.xml DELETED
@@ -1,40 +0,0 @@
1
- <?xml version="1.0"?>
2
- <config>
3
- <modules>
4
- <IntelligentReach_IRShipping>
5
- <version>1.0.37</version>
6
- </IntelligentReach_IRShipping>
7
- </modules>
8
- <global>
9
- <models>
10
- <intelligentreach_irshipping>
11
- <class>IntelligentReach_IRShipping_Model</class>
12
- </intelligentreach_irshipping>
13
- <sales>
14
- <rewrite>
15
- <quote_address_total_shipping>IntelligentReach_IRShipping_Model_Quote_Address_Total_Shipping</quote_address_total_shipping>
16
- </rewrite>
17
- </sales>
18
- <checkout>
19
- <rewrite>
20
- <cart_shipping_api>IntelligentReach_IRShipping_Model_Cart_Shipping_Api</cart_shipping_api>
21
- <cart_shipping_api_v2>IntelligentReach_IRShipping_Model_Cart_Shipping_Api_V2</cart_shipping_api_v2>
22
- <cart_api>IntelligentReach_IRShipping_Model_Cart_Api</cart_api>
23
- <cart_api_v2>IntelligentReach_IRShipping_Model_Cart_Api_V2</cart_api_v2>
24
- </rewrite>
25
- </checkout>
26
- </models>
27
- </global>
28
- <default>
29
- <carriers>
30
- <intelligentreach_irshipping>
31
- <active>1</active>
32
- <model>intelligentreach_irshipping/carrier</model>
33
- <title>Intelligent Reach Shipping</title>
34
- <name>Intelligent Reach Shipping</name>
35
- <sort_order>10</sort_order>
36
- <sallowspecific>0</sallowspecific>
37
- </intelligentreach_irshipping>
38
- </carriers>
39
- </default>
40
- </config>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/local/IntelligentReach/IRShipping/etc/wsdl.xml DELETED
@@ -1,39 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <definitions xmlns:typens="urn:{{var wsdl.name}}" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
3
- xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
4
- xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
5
- xmlns="http://schemas.xmlsoap.org/wsdl/"
6
- name="{{var wsdl.name}}" targetNamespace="urn:{{var wsdl.name}}">
7
- <message name="shoppingCartShippingCustomIRMethodRequest">
8
- <part name="sessionId" type="xsd:string"/>
9
- <part name="quoteId" type="xsd:int"/>
10
- <part name="method" type="xsd:string"/>
11
- <part name="price" type="xsd:double"/>
12
- <part name="description" type="xsd:string"/>
13
- <part name="storeId" type="xsd:string"/>
14
- </message>
15
- <message name="shoppingCartShippingCustomIRMethodResponse">
16
- <part name="result" type="xsd:boolean"/>
17
- </message>
18
- <portType name="{{var wsdl.handler}}PortType">
19
- <operation name="shoppingCartShippingCustomIRMethod">
20
- <documentation>Set shipping method and custom values</documentation>
21
- <input message="typens:shoppingCartShippingCustomIRMethodRequest"/>
22
- <output message="typens:shoppingCartShippingCustomIRMethodResponse"/>
23
- </operation>
24
- </portType>
25
- <binding name="{{var wsdl.handler}}Binding" type="typens:{{var wsdl.handler}}PortType">
26
- <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
27
- <operation name="shoppingCartShippingCustomIRMethod">
28
- <soap:operation soapAction="urn:{{var wsdl.handler}}Action"/>
29
- <input>
30
- <soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
31
- encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
32
- </input>
33
- <output>
34
- <soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
35
- encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
36
- </output>
37
- </operation>
38
- </binding>
39
- </definitions>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/local/IntelligentReach/IRShipping/etc/wsi.xml DELETED
@@ -1,58 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <wsdl:definitions xmlns:typens="urn:{{var wsdl.name}}"
3
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
4
- xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
5
- xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
6
- xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
7
- name="{{var wsdl.name}}"
8
- targetNamespace="urn:{{var wsdl.name}}">
9
- <wsdl:types>
10
- <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:{{var wsdl.name}}">
11
- <xsd:element name="shoppingCartShippingCustomIRMethodRequestParam">
12
- <xsd:complexType>
13
- <xsd:sequence>
14
- <xsd:element minOccurs="1" maxOccurs="1" name="sessionId" type="xsd:string" />
15
- <xsd:element minOccurs="1" maxOccurs="1" name="quoteId" type="xsd:int" />
16
- <xsd:element minOccurs="1" maxOccurs="1" name="shippingMethod" type="xsd:string" />
17
- <xsd:element minOccurs="1" maxOccurs="1" name="price" type="xsd:double" />
18
- <xsd:element minOccurs="1" maxOccurs="1" name="description" type="xsd:string" />
19
- <xsd:element minOccurs="0" maxOccurs="1" name="store" type="xsd:string" />
20
- </xsd:sequence>
21
- </xsd:complexType>
22
- </xsd:element>
23
- <xsd:element name="shoppingCartShippingCustomIRMethodResponseParam">
24
- <xsd:complexType>
25
- <xsd:sequence>
26
- <xsd:element minOccurs="1" maxOccurs="1" name="result" type="xsd:boolean" />
27
- </xsd:sequence>
28
- </xsd:complexType>
29
- </xsd:element>
30
- </xsd:schema>
31
- </wsdl:types>
32
- <wsdl:message name="shoppingCartShippingCustomIRMethodRequest">
33
- <wsdl:part name="parameters" element="typens:shoppingCartShippingCustomIRMethodRequestParam" />
34
- </wsdl:message>
35
- <wsdl:message name="shoppingCartShippingCustomIRMethodResponse">
36
- <wsdl:part name="parameters" element="typens:shoppingCartShippingCustomIRMethodResponseParam" />
37
- </wsdl:message>
38
-
39
- <wsdl:portType name="{{var wsdl.handler}}PortType">
40
- <wsdl:operation name="shoppingCartShippingCustomIRMethod">
41
- <wsdl:documentation>Set shipping method and custom values</wsdl:documentation>
42
- <wsdl:input message="typens:shoppingCartShippingCustomIRMethodRequest"/>
43
- <wsdl:output message="typens:shoppingCartShippingCustomIRMethodResponse"/>
44
- </wsdl:operation>
45
- </wsdl:portType>
46
- <wsdl:binding name="{{var wsdl.handler}}Binding" type="typens:{{var wsdl.handler}}PortType">
47
- <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
48
- <wsdl:operation name="shoppingCartShippingCustomIRMethod">
49
- <soap:operation soapAction=""/>
50
- <wsdl:input>
51
- <soap:body use="literal" />
52
- </wsdl:input>
53
- <wsdl:output>
54
- <soap:body use="literal" />
55
- </wsdl:output>
56
- </wsdl:operation>
57
- </wsdl:binding>
58
- </wsdl:definitions>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/local/IntelligentReach/Integration/etc/config.xml CHANGED
@@ -1,17 +1,17 @@
1
  <?xml version="1.0"?>
2
  <config>
3
- <modules>
 
 
 
 
 
 
 
4
  <IntelligentReach_Integration>
5
- <version>1.0.37</version>
6
  </IntelligentReach_Integration>
7
- </modules>
8
- <frontend>
9
- <layout>
10
- <updates>
11
- <IntelligentReach_Integration>
12
- <file>intelligentreach_integration.xml</file>
13
- </IntelligentReach_Integration>
14
- </updates>
15
- </layout>
16
- </frontend>
17
  </config>
1
  <?xml version="1.0"?>
2
  <config>
3
+ <modules>
4
+ <IntelligentReach_Integration>
5
+ <version>1.0.38</version>
6
+ </IntelligentReach_Integration>
7
+ </modules>
8
+ <frontend>
9
+ <layout>
10
+ <updates>
11
  <IntelligentReach_Integration>
12
+ <file>intelligentreach_integration.xml</file>
13
  </IntelligentReach_Integration>
14
+ </updates>
15
+ </layout>
16
+ </frontend>
 
 
 
 
 
 
 
17
  </config>
app/code/local/IntelligentReach/LazadaPayment/etc/config.xml CHANGED
@@ -2,7 +2,7 @@
2
  <config>
3
  <modules>
4
  <IntelligentReach_LazadaPayment>
5
- <version>1.0.37</version>
6
  </IntelligentReach_LazadaPayment>
7
  </modules>
8
  <global>
2
  <config>
3
  <modules>
4
  <IntelligentReach_LazadaPayment>
5
+ <version>1.0.38</version>
6
  </IntelligentReach_LazadaPayment>
7
  </modules>
8
  <global>
app/code/local/IntelligentReach/OrderExporter/Helper/Data.php ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
1
+ <?php
2
+ class IntelligentReach_OrderExporter_Helper_Data extends Mage_Core_Helper_Abstract
3
+ {
4
+ }
5
+ ?>
app/code/local/IntelligentReach/{IRShipping → OrderExporter}/Model/Carrier.php RENAMED
@@ -3,11 +3,11 @@
3
  //Copyright � 2016 Intuitive Search Technologies Ltd.
4
  //Release under OSL license (http://opensource.org/licenses/osl-3.0).
5
  //
6
- class IntelligentReach_IRShipping_Model_Carrier
7
  extends Mage_Shipping_Model_Carrier_Abstract
8
  implements Mage_Shipping_Model_Carrier_Interface
9
  {
10
- protected $_code = 'intelligentreach_irshipping';
11
 
12
  public function collectRates(Mage_Shipping_Model_Rate_Request $request)
13
  {
3
  //Copyright � 2016 Intuitive Search Technologies Ltd.
4
  //Release under OSL license (http://opensource.org/licenses/osl-3.0).
5
  //
6
+ class IntelligentReach_OrderExporter_Model_Carrier
7
  extends Mage_Shipping_Model_Carrier_Abstract
8
  implements Mage_Shipping_Model_Carrier_Interface
9
  {
10
+ protected $_code = 'intelligentreach_orderexporter';
11
 
12
  public function collectRates(Mage_Shipping_Model_Rate_Request $request)
13
  {
app/code/local/IntelligentReach/{IRShipping → OrderExporter}/Model/Cart/Api.php RENAMED
@@ -3,7 +3,7 @@
3
  //Copyright � 2016 Intuitive Search Technologies Ltd.
4
  //Release under OSL license (http://opensource.org/licenses/osl-3.0).
5
  //
6
- class IntelligentReach_IRShipping_Model_Cart_Api extends Mage_Checkout_Model_Cart_Api
7
  {
8
  /**
9
  * Create an order from the shopping cart (quote)
3
  //Copyright � 2016 Intuitive Search Technologies Ltd.
4
  //Release under OSL license (http://opensource.org/licenses/osl-3.0).
5
  //
6
+ class IntelligentReach_OrderExporter_Model_Cart_Api extends Mage_Checkout_Model_Cart_Api
7
  {
8
  /**
9
  * Create an order from the shopping cart (quote)
app/code/local/IntelligentReach/OrderExporter/Model/Cart/Api/V2.php ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ //Shopping Cart API required for the Intelligent Reach platform marketplace integration (http://www.intelligentreach.com).
3
+ //Copyright © 2016 Intuitive Search Technologies Ltd.
4
+ //Release under OSL license (http://opensource.org/licenses/osl-3.0).
5
+ //
6
+ class IntelligentReach_OrderExporter_Model_Cart_Api_V2 extends IntelligentReach_OrderExporter_Model_Cart_Api
7
+ {
8
+
9
+ }
app/code/local/IntelligentReach/OrderExporter/Model/Cart/Product/Api.php ADDED
@@ -0,0 +1,75 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ //Shopping Cart Product API required for the Intelligent Reach platform marketplace integration (http://www.intelligentreach.com).
3
+ //Copyright © 2016 Intuitive Search Technologies Ltd.
4
+ //Release under OSL license (http://opensource.org/licenses/osl-3.0).
5
+ //
6
+ class IntelligentReach_OrderExporter_Model_Cart_Product_Api extends Mage_Checkout_Model_Cart_Product_Api
7
+ {
8
+ /**
9
+ * This is the version number of the IR Custom Cart_Product_Api.
10
+ * It should only be incremented when this section of the Api changes.
11
+ *
12
+ * @return double
13
+ */
14
+ public function irApiVersion()
15
+ {
16
+ return 1.0;
17
+ }
18
+
19
+ /**
20
+ * @param $quoteId
21
+ * @param $productsData
22
+ * @param $store
23
+ * @return bool
24
+ */
25
+ public function addWithPrice($quoteId, $productsData, $store=null)
26
+ {
27
+ $quote = $this->_getQuote($quoteId, $store);
28
+ if (empty($store)) {
29
+ $store = $quote->getStoreId();
30
+ }
31
+
32
+ $productsData = $this->_prepareProductsData($productsData);
33
+ if (empty($productsData)) {
34
+ $this->_fault('invalid_product_data');
35
+ }
36
+
37
+ $errors = array();
38
+ foreach ($productsData as $productItem) {
39
+ $productItem = get_object_vars($productItem);
40
+ if (isset($productItem['product_id'])) {
41
+ $productByItem = $this->_getProduct($productItem['product_id'], $store, "id");
42
+ } else if (isset($productItem['sku'])) {
43
+ $productByItem = $this->_getProduct($productItem['sku'], $store, "sku");
44
+ } else {
45
+ $errors[] = Mage::helper('checkout')->__("One item of products do not have identifier or sku");
46
+ continue;
47
+ }
48
+ $productRequest = $this->_getProductRequest($productItem);
49
+ try {
50
+ $result = $quote->addProduct($productByItem, $productRequest);
51
+ if(isset($productItem['price']) && $productItem['price'] != null) {
52
+ $result->setOriginalCustomPrice($productItem['price']);
53
+ }
54
+
55
+ if (is_string($result)) {
56
+ Mage::throwException($result);
57
+ }
58
+ } catch (Mage_Core_Exception $e) {
59
+ $errors[] = $e->getMessage();
60
+ }
61
+ }
62
+
63
+ if (!empty($errors)) {
64
+ $this->_fault("add_product_fault", implode(PHP_EOL, $errors));
65
+ }
66
+
67
+ try {
68
+ $quote->collectTotals()->save();
69
+ } catch(Exception $e) {
70
+ $this->_fault("add_product_quote_save_fault", $e->getMessage());
71
+ }
72
+
73
+ return true;
74
+ }
75
+ }
app/code/local/IntelligentReach/OrderExporter/Model/Cart/Product/Api/V2.php ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ //Shopping Cart Product API required for the Intelligent Reach platform marketplace integration (http://www.intelligentreach.com).
3
+ //Copyright © 2016 Intuitive Search Technologies Ltd.
4
+ //Release under OSL license (http://opensource.org/licenses/osl-3.0).
5
+ //
6
+ class IntelligentReach_OrderExporter_Model_Cart_Product_Api_V2 extends IntelligentReach_OrderExporter_Model_Cart_Product_Api
7
+ {
8
+
9
+ }
app/code/local/IntelligentReach/{IRShipping → OrderExporter}/Model/Cart/Shipping/Api.php RENAMED
@@ -3,15 +3,15 @@
3
  //Copyright � 2016 Intuitive Search Technologies Ltd.
4
  //Release under OSL license (http://opensource.org/licenses/osl-3.0).
5
  //
6
- class IntelligentReach_IRShipping_Model_Cart_Shipping_Api extends Mage_Checkout_Model_Cart_Shipping_Api
7
  {
8
  /**
9
  * Set a Shipping Method for Shopping Cart with custom price and description.
10
  *
11
  * @param $quoteId
12
  * @param $shippingMethod
13
- * @param $price
14
- * @param $description
15
  * @param $store
16
  * @return bool
17
  */
@@ -24,7 +24,7 @@ class IntelligentReach_IRShipping_Model_Cart_Shipping_Api extends Mage_Checkout_
24
  $this->_fault("shipping_address_is_not_set");
25
  }
26
 
27
- $this->writeShippingValuesToTempFile($price, $description);
28
 
29
  // force calling carrier collectRates() again
30
  $quote->getShippingAddress()->setCollectShippingRates(true);
3
  //Copyright � 2016 Intuitive Search Technologies Ltd.
4
  //Release under OSL license (http://opensource.org/licenses/osl-3.0).
5
  //
6
+ class IntelligentReach_OrderExporter_Model_Cart_Shipping_Api extends Mage_Checkout_Model_Cart_Shipping_Api
7
  {
8
  /**
9
  * Set a Shipping Method for Shopping Cart with custom price and description.
10
  *
11
  * @param $quoteId
12
  * @param $shippingMethod
13
+ * @param $price
14
+ * @param $description
15
  * @param $store
16
  * @return bool
17
  */
24
  $this->_fault("shipping_address_is_not_set");
25
  }
26
 
27
+ $this->writeShippingValuesToTempFile($price, $description);
28
 
29
  // force calling carrier collectRates() again
30
  $quote->getShippingAddress()->setCollectShippingRates(true);
app/code/local/IntelligentReach/OrderExporter/Model/Cart/Shipping/Api/V2.php ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ //Shopping Cart Shipping API required for the Intelligent Reach platform marketplace integration (http://www.intelligentreach.com).
3
+ //Copyright © 2016 Intuitive Search Technologies Ltd.
4
+ //Release under OSL license (http://opensource.org/licenses/osl-3.0).
5
+ //
6
+ class IntelligentReach_OrderExporter_Model_Cart_Shipping_Api_V2 extends IntelligentReach_OrderExporter_Model_Cart_Shipping_Api
7
+ {
8
+
9
+ }
app/code/local/IntelligentReach/{IRShipping → OrderExporter}/Model/Quote/Address/Total/Shipping.php RENAMED
@@ -3,7 +3,7 @@
3
  //Copyright � 2016 Intuitive Search Technologies Ltd.
4
  //Release under OSL license (http://opensource.org/licenses/osl-3.0).
5
  //
6
- class IntelligentReach_IRShipping_Model_Quote_Address_Total_Shipping extends Mage_Sales_Model_Quote_Address_Total_Shipping
7
  {
8
  /**
9
  * Collect totals information about shipping
3
  //Copyright � 2016 Intuitive Search Technologies Ltd.
4
  //Release under OSL license (http://opensource.org/licenses/osl-3.0).
5
  //
6
+ class IntelligentReach_OrderExporter_Model_Quote_Address_Total_Shipping extends Mage_Sales_Model_Quote_Address_Total_Shipping
7
  {
8
  /**
9
  * Collect totals information about shipping
app/code/local/IntelligentReach/OrderExporter/etc/api.xml ADDED
@@ -0,0 +1,62 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ /**
4
+ * Magento Enterprise Edition
5
+ *
6
+ * NOTICE OF LICENSE
7
+ *
8
+ * This source file is subject to the Magento Enterprise Edition License
9
+ * that is bundled with this package in the file LICENSE_EE.txt.
10
+ * It is also available through the world-wide-web at this URL:
11
+ * http://www.magentocommerce.com/license/enterprise-edition
12
+ * If you did not receive a copy of the license and are unable to
13
+ * obtain it through the world-wide-web, please send an email
14
+ * to license@magentocommerce.com so we can send you a copy immediately.
15
+ *
16
+ * DISCLAIMER
17
+ *
18
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
19
+ * versions in the future. If you wish to customize Magento for your
20
+ * needs please refer to http://www.magentocommerce.com for more information.
21
+ *
22
+ * @category Mage
23
+ * @package Mage_Checkout
24
+ * @copyright Copyright (c) 2013 Magento Inc. (http://www.magentocommerce.com)
25
+ * @license http://www.magentocommerce.com/license/enterprise-edition
26
+ */
27
+ -->
28
+ <config>
29
+ <api>
30
+ <resources>
31
+ <cart_shipping translate="title" module="checkout">
32
+ <model>checkout/cart_shipping_api</model>
33
+ <title>Shipping information</title>
34
+ <acl>cart/shipping</acl>
35
+ <methods>
36
+ <customIRMethod translate="title" module="checkout">
37
+ <title>Set shipping method and custom values</title>
38
+ <method>setCustomShippingMethod</method>
39
+ <acl>cart/shipping/method</acl>
40
+ </customIRMethod>
41
+ </methods>
42
+ </cart_shipping>
43
+ <cart_product translate="title" module="checkout">
44
+ <model>checkout/cart_product_api</model>
45
+ <title>Cart Product API</title>
46
+ <acl>cart/product</acl>
47
+ <methods>
48
+ <addWithPrice translate="title" module="checkout">
49
+ <title>Add product to shopping cart</title>
50
+ <method>addWithPrice</method>
51
+ <acl>cart/product/add</acl>
52
+ </addWithPrice>
53
+ <irApiVersion translate="title" module="checkout">
54
+ <title>Get IR Api version number.</title>
55
+ <method>irApiVersion</method>
56
+ <acl>cart/product</acl>
57
+ </irApiVersion>
58
+ </methods>
59
+ </cart_product>
60
+ </resources>
61
+ </api>
62
+ </config>
app/code/local/IntelligentReach/OrderExporter/etc/config.xml ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <config>
3
+ <modules>
4
+ <IntelligentReach_OrderExporter>
5
+ <version>1.0.38</version>
6
+ </IntelligentReach_OrderExporter>
7
+ </modules>
8
+ <global>
9
+ <models>
10
+ <intelligentreach_orderexporter>
11
+ <class>IntelligentReach_OrderExporter_Model</class>
12
+ </intelligentreach_orderexporter>
13
+ <sales>
14
+ <rewrite>
15
+ <quote_address_total_shipping>IntelligentReach_OrderExporter_Model_Quote_Address_Total_Shipping</quote_address_total_shipping>
16
+ </rewrite>
17
+ </sales>
18
+ <checkout>
19
+ <rewrite>
20
+ <cart_shipping_api>IntelligentReach_OrderExporter_Model_Cart_Shipping_Api</cart_shipping_api>
21
+ <cart_shipping_api_v2>IntelligentReach_OrderExporter_Model_Cart_Shipping_Api_V2</cart_shipping_api_v2>
22
+ <cart_api>IntelligentReach_OrderExporter_Model_Cart_Api</cart_api>
23
+ <cart_api_v2>IntelligentReach_OrderExporter_Model_Cart_Api_V2</cart_api_v2>
24
+ <cart_product_api>IntelligentReach_OrderExporter_Model_Cart_Product_Api</cart_product_api>
25
+ <cart_product_api_v2>IntelligentReach_OrderExporter_Model_Cart_Product_Api_V2</cart_product_api_v2>
26
+ </rewrite>
27
+ </checkout>
28
+ </models>
29
+ </global>
30
+ <default>
31
+ <carriers>
32
+ <intelligentreach_orderexporter>
33
+ <active>1</active>
34
+ <model>intelligentreach_orderexporter/carrier</model>
35
+ <title>Intelligent Reach Order Exporter</title>
36
+ <name>Intelligent Reach Order Exporter</name>
37
+ <sort_order>10</sort_order>
38
+ <sallowspecific>0</sallowspecific>
39
+ </intelligentreach_orderexporter>
40
+ </carriers>
41
+ </default>
42
+ </config>
app/code/local/IntelligentReach/{IRShipping → OrderExporter}/etc/system.xml RENAMED
@@ -3,8 +3,8 @@
3
  <sections>
4
  <carriers>
5
  <groups>
6
- <intelligentreach_irshipping translate="label">
7
- <label>Intelligent Reach Shipping</label>
8
  <frontend_type>text</frontend_type>
9
  <sort_order>13</sort_order>
10
  <show_in_default>1</show_in_default>
@@ -29,7 +29,7 @@
29
  <show_in_store>0</show_in_store>
30
  </title>
31
  </fields>
32
- </intelligentreach_irshipping>
33
  </groups>
34
  </carriers>
35
  </sections>
3
  <sections>
4
  <carriers>
5
  <groups>
6
+ <intelligentreach_orderexporter translate="label">
7
+ <label>Intelligent Reach Order Exporter</label>
8
  <frontend_type>text</frontend_type>
9
  <sort_order>13</sort_order>
10
  <show_in_default>1</show_in_default>
29
  <show_in_store>0</show_in_store>
30
  </title>
31
  </fields>
32
+ </intelligentreach_orderexporter>
33
  </groups>
34
  </carriers>
35
  </sections>
app/code/local/IntelligentReach/OrderExporter/etc/wsdl.xml ADDED
@@ -0,0 +1,102 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <definitions xmlns:typens="urn:{{var wsdl.name}}" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
3
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
4
+ xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
5
+ xmlns="http://schemas.xmlsoap.org/wsdl/"
6
+ name="{{var wsdl.name}}" targetNamespace="urn:{{var wsdl.name}}">
7
+ <types>
8
+ <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:Magento">
9
+ <complexType name="shoppingCartProductEntity">
10
+ <all>
11
+ <element name="product_id" type="xsd:string" minOccurs="0"/>
12
+ <element name="sku" type="xsd:string" minOccurs="0"/>
13
+ <element name="qty" type="xsd:double" minOccurs="0"/>
14
+ <element name="options" type="typens:associativeArray" minOccurs="0"/>
15
+ <element name="bundle_option" type="typens:associativeArray" minOccurs="0"/>
16
+ <element name="bundle_option_qty" type="typens:associativeArray" minOccurs="0"/>
17
+ <element name="links" type="typens:ArrayOfString" minOccurs="0"/>
18
+ <element name="price" type="xsd:double" minOccurs="0"/>
19
+ </all>
20
+ </complexType>
21
+ </schema>
22
+ </types>
23
+ <message name="shoppingCartProductAddWithPriceRequest">
24
+ <part name="sessionId" type="xsd:string"/>
25
+ <part name="quoteId" type="xsd:int"/>
26
+ <part name="products" type="typens:shoppingCartProductEntityArray"/>
27
+ <part name="storeId" type="xsd:string"/>
28
+ </message>
29
+ <message name="shoppingCartProductAddWithPriceResponse">
30
+ <part name="result" type="xsd:boolean"/>
31
+ </message>
32
+ <message name="shoppingCartProductIrApiVersionRequest">
33
+ <part name="sessionId" type="xsd:string"/>
34
+ </message>
35
+ <message name="shoppingCartProductIrApiVersionResponse">
36
+ <part name="result" type="xsd:double"/>
37
+ </message>
38
+ <message name="shoppingCartShippingCustomIRMethodRequest">
39
+ <part name="sessionId" type="xsd:string"/>
40
+ <part name="quoteId" type="xsd:int"/>
41
+ <part name="method" type="xsd:string"/>
42
+ <part name="price" type="xsd:double"/>
43
+ <part name="description" type="xsd:string"/>
44
+ <part name="storeId" type="xsd:string"/>
45
+ </message>
46
+ <message name="shoppingCartShippingCustomIRMethodResponse">
47
+ <part name="result" type="xsd:boolean"/>
48
+ </message>
49
+ <portType name="{{var wsdl.handler}}PortType">
50
+ <operation name="shoppingCartShippingCustomIRMethod">
51
+ <documentation>Set shipping method and custom values</documentation>
52
+ <input message="typens:shoppingCartShippingCustomIRMethodRequest"/>
53
+ <output message="typens:shoppingCartShippingCustomIRMethodResponse"/>
54
+ </operation>
55
+ <operation name="shoppingCartProductAddWithPrice">
56
+ <documentation>Add product(s) to shopping cart</documentation>
57
+ <input message="typens:shoppingCartProductAddWithPriceRequest"/>
58
+ <output message="typens:shoppingCartProductAddWithPriceResponse"/>
59
+ </operation>
60
+ <operation name="shoppingCartProductIrApiVersion">
61
+ <documentation>Get IR Api Version number</documentation>
62
+ <input message="typens:shoppingCartProductIrApiVersionRequest"/>
63
+ <output message="typens:shoppingCartProductIrApiVersionResponse"/>
64
+ </operation>
65
+ </portType>
66
+ <binding name="{{var wsdl.handler}}Binding" type="typens:{{var wsdl.handler}}PortType">
67
+ <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
68
+ <operation name="shoppingCartShippingCustomIRMethod">
69
+ <soap:operation soapAction="urn:{{var wsdl.handler}}Action"/>
70
+ <input>
71
+ <soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
72
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
73
+ </input>
74
+ <output>
75
+ <soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
76
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
77
+ </output>
78
+ </operation>
79
+ <operation name="shoppingCartProductAddWithPrice">
80
+ <soap:operation soapAction="urn:{{var wsdl.handler}}Action"/>
81
+ <input>
82
+ <soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
83
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
84
+ </input>
85
+ <output>
86
+ <soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
87
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
88
+ </output>
89
+ </operation>
90
+ <operation name="shoppingCartProductIrApiVersion">
91
+ <soap:operation soapAction="urn:{{var wsdl.handler}}Action"/>
92
+ <input>
93
+ <soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
94
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
95
+ </input>
96
+ <output>
97
+ <soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
98
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
99
+ </output>
100
+ </operation>
101
+ </binding>
102
+ </definitions>
app/code/local/IntelligentReach/OrderExporter/etc/wsi.xml ADDED
@@ -0,0 +1,141 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <wsdl:definitions xmlns:typens="urn:{{var wsdl.name}}"
3
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
4
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
5
+ xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
6
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
7
+ name="{{var wsdl.name}}"
8
+ targetNamespace="urn:{{var wsdl.name}}">
9
+ <wsdl:types>
10
+ <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:{{var wsdl.name}}">
11
+ <xsd:complexType name="shoppingCartProductEntity">
12
+ <xsd:sequence>
13
+ <xsd:element name="product_id" type="xsd:string" minOccurs="0"/>
14
+ <xsd:element name="sku" type="xsd:string" minOccurs="0"/>
15
+ <xsd:element name="qty" type="xsd:double" minOccurs="0"/>
16
+ <xsd:element name="options" type="typens:associativeArray" minOccurs="0"/>
17
+ <xsd:element name="bundle_option" type="typens:associativeArray" minOccurs="0"/>
18
+ <xsd:element name="bundle_option_qty" type="typens:associativeArray" minOccurs="0"/>
19
+ <xsd:element name="links" type="typens:ArrayOfString" minOccurs="0"/>
20
+ <xsd:element name="price" type="xsd:double" minOccurs="0"/>
21
+ </xsd:sequence>
22
+ </xsd:complexType>
23
+ <xsd:element name="shoppingCartShippingCustomIRMethodRequestParam">
24
+ <xsd:complexType>
25
+ <xsd:sequence>
26
+ <xsd:element minOccurs="1" maxOccurs="1" name="sessionId" type="xsd:string" />
27
+ <xsd:element minOccurs="1" maxOccurs="1" name="quoteId" type="xsd:int" />
28
+ <xsd:element minOccurs="1" maxOccurs="1" name="shippingMethod" type="xsd:string" />
29
+ <xsd:element minOccurs="1" maxOccurs="1" name="price" type="xsd:double" />
30
+ <xsd:element minOccurs="1" maxOccurs="1" name="description" type="xsd:string" />
31
+ <xsd:element minOccurs="0" maxOccurs="1" name="store" type="xsd:string" />
32
+ </xsd:sequence>
33
+ </xsd:complexType>
34
+ </xsd:element>
35
+ <xsd:element name="shoppingCartShippingCustomIRMethodResponseParam">
36
+ <xsd:complexType>
37
+ <xsd:sequence>
38
+ <xsd:element minOccurs="1" maxOccurs="1" name="result" type="xsd:boolean" />
39
+ </xsd:sequence>
40
+ </xsd:complexType>
41
+ </xsd:element>
42
+ <xsd:element name="shoppingCartProductAddWithPriceRequestParam">
43
+ <xsd:complexType>
44
+ <xsd:sequence>
45
+ <xsd:element minOccurs="1" maxOccurs="1" name="sessionId" type="xsd:string" />
46
+ <xsd:element minOccurs="1" maxOccurs="1" name="quoteId" type="xsd:int" />
47
+ <xsd:element minOccurs="1" maxOccurs="1" name="productsData" type="typens:shoppingCartProductEntityArray" />
48
+ <xsd:element minOccurs="0" maxOccurs="1" name="store" type="xsd:string" />
49
+ </xsd:sequence>
50
+ </xsd:complexType>
51
+ </xsd:element>
52
+ <xsd:element name="shoppingCartProductAddWithPriceResponseParam">
53
+ <xsd:complexType>
54
+ <xsd:sequence>
55
+ <xsd:element minOccurs="1" maxOccurs="1" name="result" type="xsd:boolean" />
56
+ </xsd:sequence>
57
+ </xsd:complexType>
58
+ </xsd:element>
59
+ <xsd:element name="shoppingCartProductIrApiVersionRequestParam">
60
+ <xsd:complexType>
61
+ <xsd:sequence>
62
+ <xsd:element minOccurs="1" maxOccurs="1" name="sessionId" type="xsd:string" />
63
+ </xsd:sequence>
64
+ </xsd:complexType>
65
+ </xsd:element>
66
+ <xsd:element name="shoppingCartProductIrApiVersionResponseParam">
67
+ <xsd:complexType>
68
+ <xsd:sequence>
69
+ <xsd:element minOccurs="1" maxOccurs="1" name="result" type="xsd:double" />
70
+ </xsd:sequence>
71
+ </xsd:complexType>
72
+ </xsd:element>
73
+ </xsd:schema>
74
+ </wsdl:types>
75
+ <wsdl:message name="shoppingCartShippingCustomIRMethodRequest">
76
+ <wsdl:part name="parameters" element="typens:shoppingCartShippingCustomIRMethodRequestParam" />
77
+ </wsdl:message>
78
+ <wsdl:message name="shoppingCartShippingCustomIRMethodResponse">
79
+ <wsdl:part name="parameters" element="typens:shoppingCartShippingCustomIRMethodResponseParam" />
80
+ </wsdl:message>
81
+ <wsdl:message name="shoppingCartProductAddWithPriceRequest">
82
+ <wsdl:part name="parameters" element="typens:shoppingCartProductAddWithPriceRequestParam" />
83
+ </wsdl:message>
84
+ <wsdl:message name="shoppingCartProductAddWithPriceResponse">
85
+ <wsdl:part name="parameters" element="typens:shoppingCartProductAddWithPriceResponseParam" />
86
+ </wsdl:message>
87
+ <wsdl:message name="shoppingCartProductIrApiVersionRequest">
88
+ <wsdl:part name="parameters" element="typens:shoppingCartProductIrApiVersionRequestParam" />
89
+ </wsdl:message>
90
+ <wsdl:message name="shoppingCartProductIrApiVersionResponse">
91
+ <wsdl:part name="parameters" element="typens:shoppingCartProductIrApiVersionResponseParam" />
92
+ </wsdl:message>
93
+
94
+ <wsdl:portType name="{{var wsdl.handler}}PortType">
95
+ <wsdl:operation name="shoppingCartShippingCustomIRMethod">
96
+ <wsdl:documentation>Set shipping method and custom values</wsdl:documentation>
97
+ <wsdl:input message="typens:shoppingCartShippingCustomIRMethodRequest"/>
98
+ <wsdl:output message="typens:shoppingCartShippingCustomIRMethodResponse"/>
99
+ </wsdl:operation>
100
+ <wsdl:operation name="shoppingCartProductAddWithPrice">
101
+ <wsdl:documentation>Add product(s) to shopping cart</wsdl:documentation>
102
+ <wsdl:input message="typens:shoppingCartProductAddWithPriceRequest"/>
103
+ <wsdl:output message="typens:shoppingCartProductAddWithPriceResponse"/>
104
+ </wsdl:operation>
105
+ <wsdl:operation name="shoppingCartProductIrApiVersion">
106
+ <wsdl:documentation>Get IR Api version number.</wsdl:documentation>
107
+ <wsdl:input message="typens:shoppingCartProductIrApiVersionRequest"/>
108
+ <wsdl:output message="typens:shoppingCartProductIrApiVersionResponse"/>
109
+ </wsdl:operation>
110
+ </wsdl:portType>
111
+ <wsdl:binding name="{{var wsdl.handler}}Binding" type="typens:{{var wsdl.handler}}PortType">
112
+ <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
113
+ <wsdl:operation name="shoppingCartShippingCustomIRMethod">
114
+ <soap:operation soapAction=""/>
115
+ <wsdl:input>
116
+ <soap:body use="literal" />
117
+ </wsdl:input>
118
+ <wsdl:output>
119
+ <soap:body use="literal" />
120
+ </wsdl:output>
121
+ </wsdl:operation>
122
+ <wsdl:operation name="shoppingCartProductAddWithPrice">
123
+ <soap:operation soapAction=""/>
124
+ <wsdl:input>
125
+ <soap:body use="literal" />
126
+ </wsdl:input>
127
+ <wsdl:output>
128
+ <soap:body use="literal" />
129
+ </wsdl:output>
130
+ </wsdl:operation>
131
+ <wsdl:operation name="shoppingCartProductIrApiVersion">
132
+ <soap:operation soapAction=""/>
133
+ <wsdl:input>
134
+ <soap:body use="literal" />
135
+ </wsdl:input>
136
+ <wsdl:output>
137
+ <soap:body use="literal" />
138
+ </wsdl:output>
139
+ </wsdl:operation>
140
+ </wsdl:binding>
141
+ </wsdl:definitions>
app/code/local/IntelligentReach/PlayPayment/etc/config.xml CHANGED
@@ -2,7 +2,7 @@
2
  <config>
3
  <modules>
4
  <IntelligentReach_PlayPayment>
5
- <version>1.0.37</version>
6
  </IntelligentReach_PlayPayment>
7
  </modules>
8
  <global>
2
  <config>
3
  <modules>
4
  <IntelligentReach_PlayPayment>
5
+ <version>1.0.38</version>
6
  </IntelligentReach_PlayPayment>
7
  </modules>
8
  <global>
app/code/local/IntelligentReach/RakutenPayment/etc/config.xml CHANGED
@@ -2,7 +2,7 @@
2
  <config>
3
  <modules>
4
  <IntelligentReach_RakutenPayment>
5
- <version>1.0.37</version>
6
  </IntelligentReach_RakutenPayment>
7
  </modules>
8
  <global>
2
  <config>
3
  <modules>
4
  <IntelligentReach_RakutenPayment>
5
+ <version>1.0.38</version>
6
  </IntelligentReach_RakutenPayment>
7
  </modules>
8
  <global>
app/code/local/IntelligentReach/TradeMePayment/etc/config.xml CHANGED
@@ -2,7 +2,7 @@
2
  <config>
3
  <modules>
4
  <IntelligentReach_TradeMePayment>
5
- <version>1.0.37</version>
6
  </IntelligentReach_TradeMePayment>
7
  </modules>
8
  <global>
2
  <config>
3
  <modules>
4
  <IntelligentReach_TradeMePayment>
5
+ <version>1.0.38</version>
6
  </IntelligentReach_TradeMePayment>
7
  </modules>
8
  <global>
app/code/local/IntelligentReach/WestfieldPayment/etc/config.xml CHANGED
@@ -2,7 +2,7 @@
2
  <config>
3
  <modules>
4
  <IntelligentReach_WestfieldPayment>
5
- <version>1.0.37</version>
6
  </IntelligentReach_WestfieldPayment>
7
  </modules>
8
  <global>
2
  <config>
3
  <modules>
4
  <IntelligentReach_WestfieldPayment>
5
+ <version>1.0.38</version>
6
  </IntelligentReach_WestfieldPayment>
7
  </modules>
8
  <global>
app/etc/modules/{IntelligentReach_IRShipping.xml → IntelligentReach_OrderExporter.xml} RENAMED
@@ -1,9 +1,9 @@
1
  <?xml version="1.0"?>
2
  <config>
3
  <modules>
4
- <IntelligentReach_IRShipping>
5
  <active>true</active>
6
  <codePool>local</codePool>
7
- </IntelligentReach_IRShipping>
8
  </modules>
9
  </config>
1
  <?xml version="1.0"?>
2
  <config>
3
  <modules>
4
+ <IntelligentReach_OrderExporter>
5
  <active>true</active>
6
  <codePool>local</codePool>
7
+ </IntelligentReach_OrderExporter>
8
  </modules>
9
  </config>
intelligentreach_integration.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php
2
 
3
- /** Version 1.0.37 Last updated by Kire on 18/05/2016 **/
4
  ini_set('display_errors', 1);
5
  ini_set('max_execution_time', 1800);
6
  include_once 'app/Mage.php';
@@ -15,7 +15,8 @@ class IntelligentReach
15
  private $_splitby = 100;
16
  private $_amountOfProductsPerPage = 100;
17
  private $_lastPageNumber = 0;
18
- private $_versionDisplay = "Version 1.0.37 <br />Last updated on 18/05/2016";
 
19
 
20
  public function run()
21
  {
@@ -32,9 +33,9 @@ class IntelligentReach
32
  {
33
  header("Content-Type: text/xml; charset=UTF-8");
34
  header("Cache-Control: no-cache, must-revalidate");
35
- echo '<?xml version="1.0" encoding="utf-8"?>
36
- <products version="1.0.37" type="web">';
37
- $this->runTheTask(isset($_GET["getall"]) ? 1 : $_GET["startingpage"], isset($_GET["getall"]) ? $this->_lastPageNumber : $_GET["endpage"]);
38
  echo '</products>';
39
  }
40
  else
@@ -72,7 +73,7 @@ class IntelligentReach
72
  echo "<p>If you want to skip this step in the future, you can manually enter the Store Id in the URL.<br />";
73
  echo "e.g. http://www.exampledomain.com/intelligentreach_integration.php?storeid=1</p>";
74
  echo "<p><strong>NB:</strong> The Store Id parameter name is case sensitive. Only use \"storeid=\" not another variation.</p>";
75
- echo "<h5>".$this->_versionDisplay."</h5></div>";
76
  }
77
 
78
  public function getSections($sections)
@@ -80,6 +81,9 @@ class IntelligentReach
80
  $convertNumberToWord = (isset($_GET["convertNumberToWord"])) ? "&convertNumberToWord=1" : "";
81
  $stripInvalidChars = (isset($_GET["stripInvalidChars"])) ? "&stripInvalidChars=1" : "";
82
  $includeAllParentFields = (isset($_GET["includeAllParentFields"])) ? "&includeAllParentFields=1" : "";
 
 
 
83
  $pages = $this->_lastPageNumber;
84
  echo "<table cellspacing='2px;' border='1px;' cellpadding='8px;'>";
85
  echo "<tr><th>Section</th><th>Pages</th></tr>";
@@ -89,7 +93,7 @@ class IntelligentReach
89
  if ($startingPage < 1)
90
  $startingPage = 1;
91
 
92
- echo "<tr><td><a href='?storeid=" . $_GET["storeid"] . "&startingpage=" . $startingPage . "&endpage=" . $pages . "&splitby=".$this->_splitby ."&amountofproducts=".$this->_amountOfProductsPerPage.$convertNumberToWord.$stripInvalidChars.$includeAllParentFields."'>" . $i . "</a></td><td>" . $startingPage . "-" . $pages . "</td></tr>";
93
  $pages = $startingPage - 1;
94
  }
95
  echo "</table>";
@@ -119,10 +123,12 @@ class IntelligentReach
119
  echo "<strong>e.g.</strong> http://www.exampledomain.com/intelligentreach_integration.php?storeid=1&<strong>convertNumberToWord=1</strong></p>";
120
  echo "<p>To return all the parent product fields, use the <strong>'includeAllParentFields'</strong> parameter.</p>";
121
  echo "<strong>e.g.</strong> http://www.exampledomain.com/intelligentreach_integration.php?storeid=1&<strong>includeAllParentFields=1</strong></p>";
 
 
 
 
122
  echo "</div>";
123
- echo "<div style='float:left; padding-left:50px;'><h5>";
124
- echo $this->_versionDisplay;
125
- echo "</h5></div>";
126
  }
127
 
128
  // Gets all the products in the catalog in the specific store view,
@@ -142,9 +148,26 @@ class IntelligentReach
142
 
143
  public function getProductCollection()
144
  {
145
- return Mage::getModel('catalog/product')->getCollection()
146
  ->addStoreFilter($_GET["storeid"])
147
  ->addAttributeToSelect('*');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
148
  }
149
 
150
  // Run the task
@@ -179,6 +202,14 @@ class IntelligentReach
179
  if(isset($parentIds[0]))
180
  $parentProduct = Mage::getModel('catalog/product')->load($parentIds[0]);
181
  }
 
 
 
 
 
 
 
 
182
  echo'<product>';
183
  foreach ($product->getData() as $key => $value)
184
  {
@@ -241,10 +272,7 @@ class IntelligentReach
241
  continue;
242
  }
243
 
244
- if(version_compare(PHP_VERSION, '5.4.0', '>='))
245
- $value = htmlentities($value, ENT_COMPAT | ENT_SUBSTITUTE, "UTF-8");
246
- else
247
- $value = htmlentities($value, ENT_COMPAT, "UTF-8");
248
  $value = $this->stripInvalidXMLCharacters($value);
249
 
250
  $value = "<![CDATA[$value]]>";
@@ -266,6 +294,7 @@ class IntelligentReach
266
  echo '<ir_parent_sku><![CDATA['.$this->stripInvalidXMLCharacters($parentProduct->getSku()).']]></ir_parent_sku>';
267
  echo '<ir_parent_url><![CDATA[' . $this->stripInvalidXMLCharacters(trim(str_replace('/intelligentreach_integration.php', '', $parentProduct->getProductUrl()))) . ']]></ir_parent_url>';
268
  echo '<ir_parent_image><![CDATA['.$this->stripInvalidXMLCharacters($baseUrl . 'media/catalog/product' . $parentProduct->getImage()).']]></ir_parent_image>';
 
269
  }
270
  $gallery = $parentProduct->getMediaGallery();
271
  if(count($gallery['images']) != 0)
@@ -382,10 +411,8 @@ class IntelligentReach
382
  }
383
  continue;
384
  }
385
- if(version_compare(PHP_VERSION, '5.4.0', '>='))
386
- $value = htmlentities($value, ENT_COMPAT | ENT_SUBSTITUTE, "UTF-8");
387
- else
388
- $value = htmlentities($value, ENT_COMPAT, "UTF-8");
389
  $value = $this->stripInvalidXMLCharacters($value);
390
 
391
  $value = "<![CDATA[$value]]>";
@@ -412,5 +439,13 @@ class IntelligentReach
412
  $dictionary = array( 0 => 'zero', 1 => 'one', 2 => 'two', 3 => 'three', 4 => 'four', 5 => 'five', 6 => 'six', 7 => 'seven', 8 => 'eight', 9 => 'nine');
413
  return $dictionary[$number];
414
  }
 
 
 
 
 
 
 
 
415
  }
416
 
1
  <?php
2
 
3
+ /** Version 1.0.38 Last updated by Kire on 16/06/2016 **/
4
  ini_set('display_errors', 1);
5
  ini_set('max_execution_time', 1800);
6
  include_once 'app/Mage.php';
15
  private $_splitby = 100;
16
  private $_amountOfProductsPerPage = 100;
17
  private $_lastPageNumber = 0;
18
+ private $_versionNumber = "1.0.38";
19
+ private $_lastUpdated = "16/06/2016";
20
 
21
  public function run()
22
  {
33
  {
34
  header("Content-Type: text/xml; charset=UTF-8");
35
  header("Cache-Control: no-cache, must-revalidate");
36
+ echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>
37
+ <products version=\"$this->_versionNumber\" type=\"web\">";
38
+ $this->runTheTask(isset($_GET["getall"]) ? 1 : $_GET["startingpage"], isset($_GET["getall"]) ? $this->_lastPageNumber : $_GET["endpage"]);
39
  echo '</products>';
40
  }
41
  else
73
  echo "<p>If you want to skip this step in the future, you can manually enter the Store Id in the URL.<br />";
74
  echo "e.g. http://www.exampledomain.com/intelligentreach_integration.php?storeid=1</p>";
75
  echo "<p><strong>NB:</strong> The Store Id parameter name is case sensitive. Only use \"storeid=\" not another variation.</p>";
76
+ echo "<h5>Version $this->_versionNumber <br />Last updated on $this->_lastUpdated</h5></div>";
77
  }
78
 
79
  public function getSections($sections)
81
  $convertNumberToWord = (isset($_GET["convertNumberToWord"])) ? "&convertNumberToWord=1" : "";
82
  $stripInvalidChars = (isset($_GET["stripInvalidChars"])) ? "&stripInvalidChars=1" : "";
83
  $includeAllParentFields = (isset($_GET["includeAllParentFields"])) ? "&includeAllParentFields=1" : "";
84
+ $includeDisabled = (isset($_GET["includeDisabled"])) ? "&includeDisabled=1" : "";
85
+ $includeNonSimpleProducts = (isset($_GET["includeNonSimpleProducts"])) ? "&includeNonSimpleProducts=1" : "";
86
+
87
  $pages = $this->_lastPageNumber;
88
  echo "<table cellspacing='2px;' border='1px;' cellpadding='8px;'>";
89
  echo "<tr><th>Section</th><th>Pages</th></tr>";
93
  if ($startingPage < 1)
94
  $startingPage = 1;
95
 
96
+ echo "<tr><td><a href='?storeid=" . $_GET["storeid"] . "&startingpage=" . $startingPage . "&endpage=" . $pages . "&splitby=".$this->_splitby."&amountofproducts=".$this->_amountOfProductsPerPage.$convertNumberToWord.$stripInvalidChars.$includeAllParentFields.$includeDisabled.$includeNonSimpleProducts."'>" . $i . "</a></td><td>" . $startingPage . "-" . $pages . "</td></tr>";
97
  $pages = $startingPage - 1;
98
  }
99
  echo "</table>";
123
  echo "<strong>e.g.</strong> http://www.exampledomain.com/intelligentreach_integration.php?storeid=1&<strong>convertNumberToWord=1</strong></p>";
124
  echo "<p>To return all the parent product fields, use the <strong>'includeAllParentFields'</strong> parameter.</p>";
125
  echo "<strong>e.g.</strong> http://www.exampledomain.com/intelligentreach_integration.php?storeid=1&<strong>includeAllParentFields=1</strong></p>";
126
+ echo "<p>To include disabled products in the feed, use the <strong>'includeDisabled'</strong> parameter.</p>";
127
+ echo "<strong>e.g.</strong> http://www.exampledomain.com/intelligentreach_integration.php?storeid=1&<strong>includeDisabled=1</strong></p>";
128
+ echo "<p>To include products of all types in the feed, use the <strong>'includeNonSimpleProducts'</strong> parameter.</p>";
129
+ echo "<strong>e.g.</strong> http://www.exampledomain.com/intelligentreach_integration.php?storeid=1&<strong>includeNonSimpleProducts=1</strong></p>";
130
  echo "</div>";
131
+ echo "<div style='float:left; padding-left:50px;'><h5>Version $this->_versionNumber <br />Last updated on $this->_lastUpdated</h5></div>";
 
 
132
  }
133
 
134
  // Gets all the products in the catalog in the specific store view,
148
 
149
  public function getProductCollection()
150
  {
151
+ $products = Mage::getModel('catalog/product')->getCollection()
152
  ->addStoreFilter($_GET["storeid"])
153
  ->addAttributeToSelect('*');
154
+ return $this->addAdditionalAttributeFilters($products);
155
+ }
156
+
157
+ public function addAdditionalAttributeFilters($products)
158
+ {
159
+ if(Mage::app()->getStore()->getConfig('catalog/frontend/flat_catalog_product'))
160
+ Mage::app()->getStore()->setConfig('catalog/frontend/flat_catalog_product', 0);
161
+
162
+ if(isset($_GET["includeDisabled"]))
163
+ $products->addAttributeToFilter('status', array('gt' => 0));
164
+ else
165
+ $products->addAttributeToFilter('status', array('eq' => Mage_Catalog_Model_Product_Status::STATUS_ENABLED));
166
+
167
+ if(!isset($_GET["includeNonSimpleProducts"]))
168
+ $products->addAttributeToFilter('type_id', array('eq' => 'simple'));
169
+
170
+ return $products;
171
  }
172
 
173
  // Run the task
202
  if(isset($parentIds[0]))
203
  $parentProduct = Mage::getModel('catalog/product')->load($parentIds[0]);
204
  }
205
+
206
+ if((($product->getStatus() == Mage_Catalog_Model_Product_Status::STATUS_DISABLED)
207
+ || ((isset($parentProduct)) && ($parentProduct->getStatus() == Mage_Catalog_Model_Product_Status::STATUS_DISABLED)))
208
+ && !isset($_GET['includeDisabled']))
209
+ {
210
+ return;
211
+ }
212
+
213
  echo'<product>';
214
  foreach ($product->getData() as $key => $value)
215
  {
272
  continue;
273
  }
274
 
275
+ $value = $this->encodeValue($value);
 
 
 
276
  $value = $this->stripInvalidXMLCharacters($value);
277
 
278
  $value = "<![CDATA[$value]]>";
294
  echo '<ir_parent_sku><![CDATA['.$this->stripInvalidXMLCharacters($parentProduct->getSku()).']]></ir_parent_sku>';
295
  echo '<ir_parent_url><![CDATA[' . $this->stripInvalidXMLCharacters(trim(str_replace('/intelligentreach_integration.php', '', $parentProduct->getProductUrl()))) . ']]></ir_parent_url>';
296
  echo '<ir_parent_image><![CDATA['.$this->stripInvalidXMLCharacters($baseUrl . 'media/catalog/product' . $parentProduct->getImage()).']]></ir_parent_image>';
297
+ echo '<ir_parent_description><![CDATA['.$this->stripInvalidXMLCharacters($this->encodeValue($parentProduct->getDescription())).']]></ir_parent_description>';
298
  }
299
  $gallery = $parentProduct->getMediaGallery();
300
  if(count($gallery['images']) != 0)
411
  }
412
  continue;
413
  }
414
+
415
+ $value = $this->encodeValue($value);
 
 
416
  $value = $this->stripInvalidXMLCharacters($value);
417
 
418
  $value = "<![CDATA[$value]]>";
439
  $dictionary = array( 0 => 'zero', 1 => 'one', 2 => 'two', 3 => 'three', 4 => 'four', 5 => 'five', 6 => 'six', 7 => 'seven', 8 => 'eight', 9 => 'nine');
440
  return $dictionary[$number];
441
  }
442
+
443
+ public function encodeValue($value)
444
+ {
445
+ if(version_compare(PHP_VERSION, '5.4.0', '>='))
446
+ return htmlentities($value, ENT_COMPAT | ENT_SUBSTITUTE, "UTF-8");
447
+ else
448
+ return htmlentities($value, ENT_COMPAT, "UTF-8");
449
+ }
450
  }
451
 
intelligentreach_integration_pre.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php
2
 
3
- /** Version 1.0.37 Last updated by Kire on 18/05/2016 **/
4
  ini_set('display_errors', 1);
5
  ini_set('max_execution_time', 1800);
6
  include_once 'app/Mage.php';
@@ -15,7 +15,8 @@ class IntelligentReach
15
  private $_splitby = 100;
16
  private $_amountOfProductsPerPage = 100;
17
  private $_lastPageNumber = 0;
18
- private $_versionDisplay = "Version 1.0.37 <br />Last updated on 18/05/2016";
 
19
 
20
  public function run()
21
  {
@@ -32,9 +33,9 @@ class IntelligentReach
32
  {
33
  header("Content-Type: text/xml; charset=UTF-8");
34
  header("Cache-Control: no-cache, must-revalidate");
35
- echo '<?xml version="1.0" encoding="utf-8"?>
36
- <products version="1.0.37" type="web_pre">';
37
- $this->runTheTask(isset($_GET["getall"]) ? 1 : $_GET["startingpage"], isset($_GET["getall"]) ? $this->_lastPageNumber : $_GET["endpage"]);
38
  echo '</products>';
39
  }
40
  else
@@ -72,7 +73,7 @@ class IntelligentReach
72
  echo "<p>If you want to skip this step in the future, you can manually enter the Store Id in the URL.<br />";
73
  echo "e.g. http://www.exampledomain.com/intelligentreach_integration.php?storeid=1</p>";
74
  echo "<p><strong>NB:</strong> The Store Id parameter name is case sensitive. Only use \"storeid=\" not another variation.</p>";
75
- echo "<h5>".$this->_versionDisplay."</h5></div>";
76
  }
77
 
78
  public function getSections($sections)
@@ -80,6 +81,9 @@ class IntelligentReach
80
  $convertNumberToWord = (isset($_GET["convertNumberToWord"])) ? "&convertNumberToWord=1" : "";
81
  $stripInvalidChars = (isset($_GET["stripInvalidChars"])) ? "&stripInvalidChars=1" : "";
82
  $includeAllParentFields = (isset($_GET["includeAllParentFields"])) ? "&includeAllParentFields=1" : "";
 
 
 
83
  $pages = $this->_lastPageNumber;
84
  echo "<table cellspacing='2px;' border='1px;' cellpadding='8px;'>";
85
  echo "<tr><th>Section</th><th>Pages</th></tr>";
@@ -89,7 +93,7 @@ class IntelligentReach
89
  if ($startingPage < 1)
90
  $startingPage = 1;
91
 
92
- echo "<tr><td><a href='?storeid=" . $_GET["storeid"] . "&startingpage=" . $startingPage . "&endpage=" . $pages . "&splitby=".$this->_splitby ."&amountofproducts=".$this->_amountOfProductsPerPage.$convertNumberToWord.$stripInvalidChars.$includeAllParentFields."'>" . $i . "</a></td><td>" . $startingPage . "-" . $pages . "</td></tr>";
93
  $pages = $startingPage - 1;
94
  }
95
  echo "</table>";
@@ -119,10 +123,12 @@ class IntelligentReach
119
  echo "<strong>e.g.</strong> http://www.exampledomain.com/intelligentreach_integration.php?storeid=1&<strong>convertNumberToWord=1</strong></p>";
120
  echo "<p>To return all the parent product fields, use the <strong>'includeAllParentFields'</strong> parameter.</p>";
121
  echo "<strong>e.g.</strong> http://www.exampledomain.com/intelligentreach_integration.php?storeid=1&<strong>includeAllParentFields=1</strong></p>";
 
 
 
 
122
  echo "</div>";
123
- echo "<div style='float:left; padding-left:50px;'><h5>";
124
- echo $this->_versionDisplay;
125
- echo "</h5></div>";
126
  }
127
 
128
  // Gets all the products in the catalog in the specific store view,
@@ -142,8 +148,25 @@ class IntelligentReach
142
 
143
  public function getProductCollection()
144
  {
145
- return Mage::getModel('catalog/product')->getCollection()
146
  ->addStoreFilter($_GET["storeid"]);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
147
  }
148
 
149
  // Run the task
@@ -178,6 +201,14 @@ class IntelligentReach
178
  if(isset($parentIds[0]))
179
  $parentProduct = Mage::getModel('catalog/product')->load($parentIds[0]);
180
  }
 
 
 
 
 
 
 
 
181
  echo'<product>';
182
  foreach ($product->getData() as $key => $value)
183
  {
@@ -240,10 +271,7 @@ class IntelligentReach
240
  continue;
241
  }
242
 
243
- if(version_compare(PHP_VERSION, '5.4.0', '>='))
244
- $value = htmlentities($value, ENT_COMPAT | ENT_SUBSTITUTE, "UTF-8");
245
- else
246
- $value = htmlentities($value, ENT_COMPAT, "UTF-8");
247
  $value = $this->stripInvalidXMLCharacters($value);
248
 
249
  $value = "<![CDATA[$value]]>";
@@ -265,6 +293,7 @@ class IntelligentReach
265
  echo '<ir_parent_sku><![CDATA['.$this->stripInvalidXMLCharacters($parentProduct->getSku()).']]></ir_parent_sku>';
266
  echo '<ir_parent_url><![CDATA[' . $this->stripInvalidXMLCharacters(trim(str_replace('/intelligentreach_integration.php', '', $parentProduct->getProductUrl()))) . ']]></ir_parent_url>';
267
  echo '<ir_parent_image><![CDATA['.$this->stripInvalidXMLCharacters($baseUrl . 'media/catalog/product' . $parentProduct->getImage()).']]></ir_parent_image>';
 
268
  }
269
  $gallery = $parentProduct->getMediaGallery();
270
  if(count($gallery['images']) != 0)
@@ -381,10 +410,8 @@ class IntelligentReach
381
  }
382
  continue;
383
  }
384
- if(version_compare(PHP_VERSION, '5.4.0', '>='))
385
- $value = htmlentities($value, ENT_COMPAT | ENT_SUBSTITUTE, "UTF-8");
386
- else
387
- $value = htmlentities($value, ENT_COMPAT, "UTF-8");
388
  $value = $this->stripInvalidXMLCharacters($value);
389
 
390
  $value = "<![CDATA[$value]]>";
@@ -411,5 +438,13 @@ class IntelligentReach
411
  $dictionary = array( 0 => 'zero', 1 => 'one', 2 => 'two', 3 => 'three', 4 => 'four', 5 => 'five', 6 => 'six', 7 => 'seven', 8 => 'eight', 9 => 'nine');
412
  return $dictionary[$number];
413
  }
 
 
 
 
 
 
 
 
414
  }
415
 
1
  <?php
2
 
3
+ /** Version 1.0.38 Last updated by Kire on 16/06/2016 **/
4
  ini_set('display_errors', 1);
5
  ini_set('max_execution_time', 1800);
6
  include_once 'app/Mage.php';
15
  private $_splitby = 100;
16
  private $_amountOfProductsPerPage = 100;
17
  private $_lastPageNumber = 0;
18
+ private $_versionNumber = "1.0.38";
19
+ private $_lastUpdated = "16/06/2016";
20
 
21
  public function run()
22
  {
33
  {
34
  header("Content-Type: text/xml; charset=UTF-8");
35
  header("Cache-Control: no-cache, must-revalidate");
36
+ echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>
37
+ <products version=\"$this->_versionNumber\" type=\"web_pre\">";
38
+ $this->runTheTask(isset($_GET["getall"]) ? 1 : $_GET["startingpage"], isset($_GET["getall"]) ? $this->_lastPageNumber : $_GET["endpage"]);
39
  echo '</products>';
40
  }
41
  else
73
  echo "<p>If you want to skip this step in the future, you can manually enter the Store Id in the URL.<br />";
74
  echo "e.g. http://www.exampledomain.com/intelligentreach_integration.php?storeid=1</p>";
75
  echo "<p><strong>NB:</strong> The Store Id parameter name is case sensitive. Only use \"storeid=\" not another variation.</p>";
76
+ echo "<h5>Version $this->_versionNumber <br />Last updated on $this->_lastUpdated</h5></div>";
77
  }
78
 
79
  public function getSections($sections)
81
  $convertNumberToWord = (isset($_GET["convertNumberToWord"])) ? "&convertNumberToWord=1" : "";
82
  $stripInvalidChars = (isset($_GET["stripInvalidChars"])) ? "&stripInvalidChars=1" : "";
83
  $includeAllParentFields = (isset($_GET["includeAllParentFields"])) ? "&includeAllParentFields=1" : "";
84
+ $includeDisabled = (isset($_GET["includeDisabled"])) ? "&includeDisabled=1" : "";
85
+ $includeNonSimpleProducts = (isset($_GET["includeNonSimpleProducts"])) ? "&includeNonSimpleProducts=1" : "";
86
+
87
  $pages = $this->_lastPageNumber;
88
  echo "<table cellspacing='2px;' border='1px;' cellpadding='8px;'>";
89
  echo "<tr><th>Section</th><th>Pages</th></tr>";
93
  if ($startingPage < 1)
94
  $startingPage = 1;
95
 
96
+ echo "<tr><td><a href='?storeid=" . $_GET["storeid"] . "&startingpage=" . $startingPage . "&endpage=" . $pages . "&splitby=".$this->_splitby."&amountofproducts=".$this->_amountOfProductsPerPage.$convertNumberToWord.$stripInvalidChars.$includeAllParentFields.$includeDisabled.$includeNonSimpleProducts."'>" . $i . "</a></td><td>" . $startingPage . "-" . $pages . "</td></tr>";
97
  $pages = $startingPage - 1;
98
  }
99
  echo "</table>";
123
  echo "<strong>e.g.</strong> http://www.exampledomain.com/intelligentreach_integration.php?storeid=1&<strong>convertNumberToWord=1</strong></p>";
124
  echo "<p>To return all the parent product fields, use the <strong>'includeAllParentFields'</strong> parameter.</p>";
125
  echo "<strong>e.g.</strong> http://www.exampledomain.com/intelligentreach_integration.php?storeid=1&<strong>includeAllParentFields=1</strong></p>";
126
+ echo "<p>To include disabled products in the feed, use the <strong>'includeDisabled'</strong> parameter.</p>";
127
+ echo "<strong>e.g.</strong> http://www.exampledomain.com/intelligentreach_integration.php?storeid=1&<strong>includeDisabled=1</strong></p>";
128
+ echo "<p>To include products of all types in the feed, use the <strong>'includeNonSimpleProducts'</strong> parameter.</p>";
129
+ echo "<strong>e.g.</strong> http://www.exampledomain.com/intelligentreach_integration.php?storeid=1&<strong>includeNonSimpleProducts=1</strong></p>";
130
  echo "</div>";
131
+ echo "<div style='float:left; padding-left:50px;'><h5>Version $this->_versionNumber <br />Last updated on $this->_lastUpdated</h5></div>";
 
 
132
  }
133
 
134
  // Gets all the products in the catalog in the specific store view,
148
 
149
  public function getProductCollection()
150
  {
151
+ $products = Mage::getModel('catalog/product')->getCollection()
152
  ->addStoreFilter($_GET["storeid"]);
153
+ return $this->addAdditionalAttributeFilters($products);
154
+ }
155
+
156
+ public function addAdditionalAttributeFilters($products)
157
+ {
158
+ if(Mage::app()->getStore()->getConfig('catalog/frontend/flat_catalog_product'))
159
+ Mage::app()->getStore()->setConfig('catalog/frontend/flat_catalog_product', 0);
160
+
161
+ if(isset($_GET["includeDisabled"]))
162
+ $products->addAttributeToFilter('status', array('gt' => 0));
163
+ else
164
+ $products->addAttributeToFilter('status', array('eq' => Mage_Catalog_Model_Product_Status::STATUS_ENABLED));
165
+
166
+ if(!isset($_GET["includeNonSimpleProducts"]))
167
+ $products->addAttributeToFilter('type_id', array('eq' => 'simple'));
168
+
169
+ return $products;
170
  }
171
 
172
  // Run the task
201
  if(isset($parentIds[0]))
202
  $parentProduct = Mage::getModel('catalog/product')->load($parentIds[0]);
203
  }
204
+
205
+ if((($product->getStatus() == Mage_Catalog_Model_Product_Status::STATUS_DISABLED)
206
+ || ((isset($parentProduct)) && ($parentProduct->getStatus() == Mage_Catalog_Model_Product_Status::STATUS_DISABLED)))
207
+ && !isset($_GET['includeDisabled']))
208
+ {
209
+ return;
210
+ }
211
+
212
  echo'<product>';
213
  foreach ($product->getData() as $key => $value)
214
  {
271
  continue;
272
  }
273
 
274
+ $value = $this->encodeValue($value);
 
 
 
275
  $value = $this->stripInvalidXMLCharacters($value);
276
 
277
  $value = "<![CDATA[$value]]>";
293
  echo '<ir_parent_sku><![CDATA['.$this->stripInvalidXMLCharacters($parentProduct->getSku()).']]></ir_parent_sku>';
294
  echo '<ir_parent_url><![CDATA[' . $this->stripInvalidXMLCharacters(trim(str_replace('/intelligentreach_integration.php', '', $parentProduct->getProductUrl()))) . ']]></ir_parent_url>';
295
  echo '<ir_parent_image><![CDATA['.$this->stripInvalidXMLCharacters($baseUrl . 'media/catalog/product' . $parentProduct->getImage()).']]></ir_parent_image>';
296
+ echo '<ir_parent_description><![CDATA['.$this->stripInvalidXMLCharacters($this->encodeValue($parentProduct->getDescription())).']]></ir_parent_description>';
297
  }
298
  $gallery = $parentProduct->getMediaGallery();
299
  if(count($gallery['images']) != 0)
410
  }
411
  continue;
412
  }
413
+
414
+ $value = $this->encodeValue($value);
 
 
415
  $value = $this->stripInvalidXMLCharacters($value);
416
 
417
  $value = "<![CDATA[$value]]>";
438
  $dictionary = array( 0 => 'zero', 1 => 'one', 2 => 'two', 3 => 'three', 4 => 'four', 5 => 'five', 6 => 'six', 7 => 'seven', 8 => 'eight', 9 => 'nine');
439
  return $dictionary[$number];
440
  }
441
+
442
+ public function encodeValue($value)
443
+ {
444
+ if(version_compare(PHP_VERSION, '5.4.0', '>='))
445
+ return htmlentities($value, ENT_COMPAT | ENT_SUBSTITUTE, "UTF-8");
446
+ else
447
+ return htmlentities($value, ENT_COMPAT, "UTF-8");
448
+ }
449
  }
450
 
intelligentreach_integration_qty.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php
2
 
3
- /** Version 1.0.37 Last updated by Kire on 18/05/2016 **/
4
  ini_set('display_errors', 1);
5
  ini_set('max_execution_time', 1800);
6
  include_once 'app/Mage.php';
@@ -15,7 +15,8 @@ class IntelligentReach
15
  private $_splitby = 100;
16
  private $_amountOfProductsPerPage = 100;
17
  private $_lastPageNumber = 0;
18
- private $_versionDisplay = "Version 1.0.37 <br />Last updated on 18/05/2016";
 
19
 
20
  public function run()
21
  {
@@ -32,9 +33,9 @@ class IntelligentReach
32
  {
33
  header("Content-Type: text/xml; charset=UTF-8");
34
  header("Cache-Control: no-cache, must-revalidate");
35
- echo '<?xml version="1.0" encoding="utf-8"?>
36
- <products version="1.0.37" type="web">';
37
- $this->runTheTask(isset($_GET["getall"]) ? 1 : $_GET["startingpage"], isset($_GET["getall"]) ? $this->_lastPageNumber : $_GET["endpage"]);
38
  echo '</products>';
39
  }
40
  else
@@ -72,11 +73,14 @@ class IntelligentReach
72
  echo "<p>If you want to skip this step in the future, you can manually enter the Store Id in the URL.<br />";
73
  echo "e.g. http://www.exampledomain.com/intelligentreach_integration.php?storeid=1</p>";
74
  echo "<p><strong>NB:</strong> The Store Id parameter name is case sensitive. Only use \"storeid=\" not another variation.</p>";
75
- echo "<h5>".$this->_versionDisplay."</h5></div>";
76
  }
77
 
78
  public function getSections($sections)
79
  {
 
 
 
80
  $pages = $this->_lastPageNumber;
81
  echo "<table cellspacing='2px;' border='1px;' cellpadding='8px;'>";
82
  echo "<tr><th>Section</th><th>Pages</th></tr>";
@@ -85,7 +89,7 @@ class IntelligentReach
85
  $startingPage = $pages - $this->_splitby + 1;
86
  if ($startingPage < 1)
87
  $startingPage = 1;
88
- echo "<tr><td><a href='?storeid=" . $_GET["storeid"] . "&startingpage=" . $startingPage . "&endpage=" . $pages . "&splitby=".$this->_splitby ."&amountofproducts=".$this->_amountOfProductsPerPage."'>" . $i . "</a></td><td>" . $startingPage . "-" . $pages . "</td></tr>";
89
  $pages = $startingPage - 1;
90
  }
91
  echo "</table>";
@@ -108,10 +112,12 @@ class IntelligentReach
108
  echo "<p><strong>NB:</strong> The default value for <strong>'splitby'</strong> is 100 and for <strong>'amountofproducts'</strong> is 100.</p>";
109
  echo "<p>You can also retrieve all product quantities but using the 'getall' parameter</p>";
110
  echo "<strong>e.g.</strong> http://www.exampledomain.com/intelligentreach_integration.php?storeid=1&<strong>getall=1</strong></p>";
 
 
 
 
111
  echo "</div>";
112
- echo "<div style='float:left; padding-left:50px;'><h5>";
113
- echo $this->_versionDisplay;
114
- echo "</h5></div>";
115
  }
116
 
117
  // Gets all the products in the catalog in the specific store view,
@@ -137,11 +143,27 @@ class IntelligentReach
137
 
138
  public function getProductCollection()
139
  {
140
- return Mage::getModel('catalog/product')
141
  ->getCollection()
142
  ->addStoreFilter($_GET["storeid"])
143
- ->addAttributeToSelect('price', 'left')
144
- ->addAttributeToFilter('status', array('eq' => Mage_Catalog_Model_Product_Status::STATUS_ENABLED));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
145
  }
146
 
147
  // Run the task
1
  <?php
2
 
3
+ /** Version 1.0.38 Last updated by Kire on 16/06/2016 **/
4
  ini_set('display_errors', 1);
5
  ini_set('max_execution_time', 1800);
6
  include_once 'app/Mage.php';
15
  private $_splitby = 100;
16
  private $_amountOfProductsPerPage = 100;
17
  private $_lastPageNumber = 0;
18
+ private $_versionNumber = "1.0.38";
19
+ private $_lastUpdated = "16/06/2016";
20
 
21
  public function run()
22
  {
33
  {
34
  header("Content-Type: text/xml; charset=UTF-8");
35
  header("Cache-Control: no-cache, must-revalidate");
36
+ echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>
37
+ <products version=\"$this->_versionNumber\" type=\"web\">";
38
+ $this->runTheTask(isset($_GET["getall"]) ? 1 : $_GET["startingpage"], isset($_GET["getall"]) ? $this->_lastPageNumber : $_GET["endpage"]);
39
  echo '</products>';
40
  }
41
  else
73
  echo "<p>If you want to skip this step in the future, you can manually enter the Store Id in the URL.<br />";
74
  echo "e.g. http://www.exampledomain.com/intelligentreach_integration.php?storeid=1</p>";
75
  echo "<p><strong>NB:</strong> The Store Id parameter name is case sensitive. Only use \"storeid=\" not another variation.</p>";
76
+ echo "<h5>Version $this->_versionNumber <br />Last updated on $this->_lastUpdated</h5></div>";
77
  }
78
 
79
  public function getSections($sections)
80
  {
81
+ $includeDisabled = (isset($_GET["includeDisabled"])) ? "&includeDisabled=1" : "";
82
+ $includeNonSimpleProducts = (isset($_GET["includeNonSimpleProducts"])) ? "&includeNonSimpleProducts=1" : "";
83
+
84
  $pages = $this->_lastPageNumber;
85
  echo "<table cellspacing='2px;' border='1px;' cellpadding='8px;'>";
86
  echo "<tr><th>Section</th><th>Pages</th></tr>";
89
  $startingPage = $pages - $this->_splitby + 1;
90
  if ($startingPage < 1)
91
  $startingPage = 1;
92
+ echo "<tr><td><a href='?storeid=" . $_GET["storeid"] . "&startingpage=" . $startingPage . "&endpage=" . $pages . "&splitby=".$this->_splitby ."&amountofproducts=".$this->_amountOfProductsPerPage.$includeDisabled.$includeNonSimpleProducts."'>" . $i . "</a></td><td>" . $startingPage . "-" . $pages . "</td></tr>";
93
  $pages = $startingPage - 1;
94
  }
95
  echo "</table>";
112
  echo "<p><strong>NB:</strong> The default value for <strong>'splitby'</strong> is 100 and for <strong>'amountofproducts'</strong> is 100.</p>";
113
  echo "<p>You can also retrieve all product quantities but using the 'getall' parameter</p>";
114
  echo "<strong>e.g.</strong> http://www.exampledomain.com/intelligentreach_integration.php?storeid=1&<strong>getall=1</strong></p>";
115
+ echo "<p>To include disabled products in the feed, use the <strong>'includeDisabled'</strong> parameter.</p>";
116
+ echo "<strong>e.g.</strong> http://www.exampledomain.com/intelligentreach_integration.php?storeid=1&<strong>includeDisabled=1</strong></p>";
117
+ echo "<p>To include products of all types in the feed, use the <strong>'includeNonSimpleProducts'</strong> parameter.</p>";
118
+ echo "<strong>e.g.</strong> http://www.exampledomain.com/intelligentreach_integration.php?storeid=1&<strong>includeNonSimpleProducts=1</strong></p>";
119
  echo "</div>";
120
+ echo "<div style='float:left; padding-left:50px;'><h5>Version $this->_versionNumber <br />Last updated on $this->_lastUpdated</h5></div>";
 
 
121
  }
122
 
123
  // Gets all the products in the catalog in the specific store view,
143
 
144
  public function getProductCollection()
145
  {
146
+ $products = Mage::getModel('catalog/product')
147
  ->getCollection()
148
  ->addStoreFilter($_GET["storeid"])
149
+ ->addAttributeToSelect('price', 'left');
150
+ return $this->addAdditionalAttributeFilters($products);
151
+ }
152
+
153
+ public function addAdditionalAttributeFilters($products)
154
+ {
155
+ if(Mage::app()->getStore()->getConfig('catalog/frontend/flat_catalog_product'))
156
+ Mage::app()->getStore()->setConfig('catalog/frontend/flat_catalog_product', 0);
157
+
158
+ if(isset($_GET["includeDisabled"]))
159
+ $products->addAttributeToFilter('status', array('gt' => 0));
160
+ else
161
+ $products->addAttributeToFilter('status', array('eq' => Mage_Catalog_Model_Product_Status::STATUS_ENABLED));
162
+
163
+ if(!isset($_GET["includeNonSimpleProducts"]))
164
+ $products->addAttributeToFilter('type_id', array('eq' => 'simple'));
165
+
166
+ return $products;
167
  }
168
 
169
  // Run the task
ircronscripts/intelligentreach_integration_cron.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php
2
 
3
- /** Version 1.0.37 Last updated by Kire on 18/05/2016 **/
4
  ini_set('display_errors', 1);
5
  ini_set('max_execution_time', 1800);
6
  ini_set('memory_limit', '2G');
@@ -13,7 +13,8 @@ $ir->run();
13
 
14
  class IntelligentReach
15
  {
16
- private $_versionDisplay = "Version 1.0.37 <br />Last updated on 18/05/2016";
 
17
  private $_outputDirectory = "output";
18
  private $_fileName = "Feed";
19
  private $_fileNameTemp = "";
@@ -26,6 +27,8 @@ class IntelligentReach
26
  private $_includeAllParentFields = false;
27
  private $_stripInvalidChars = false;
28
  private $_convertNumberToWord = false;
 
 
29
 
30
  public function run()
31
  {
@@ -38,8 +41,8 @@ class IntelligentReach
38
  $this->_fileNameTemp = tempnam("", $this->_fileName);
39
  echo "Temp File created: ". $this->_fileNameTemp."<br />";
40
  $time = microtime(true);
41
- file_put_contents($this->_fileNameTemp, '<?xml version="1.0" encoding="utf-8"?>
42
- <products version="1.0.37" type="cron">', LOCK_EX);
43
  $this->runTheTask($storeId);
44
  file_put_contents($this->_fileNameTemp, '</products>', FILE_APPEND | LOCK_EX);
45
 
@@ -89,13 +92,12 @@ class IntelligentReach
89
  echo "e.g. http://www.exampledomain.com/intelligentreach_integration.php?storeid=1</p>";
90
  echo "<p><strong>NB:</strong> The Store Id parameter name is case sensitive. Only use \"storeid=\" not another variation.</p>";
91
  echo "<h3>Other options</h3>";
92
- echo "<p>To enable the stripping of invalid XML characters add the <strong>'stripInvalidChars'</strong> parameter</p>";
93
- echo "<strong>e.g.</strong> http://www.exampledomain.com/intelligentreach_integration.php?storeid=1&<strong>stripInvalidChars=1</strong></p>";
94
- echo "<p>To enable the converting of the first character in the XML tag from a number to a word, use the <strong>'convertNumberToWord'</strong> parameter.</p>";
95
- echo "<strong>e.g.</strong> http://www.exampledomain.com/intelligentreach_integration.php?storeid=1&<strong>convertNumberToWord=1</strong></p>";
96
- echo "<p>To return all the parent product fields, use the <strong>'includeAllParentFields'</strong> parameter.</p>";
97
- echo "<strong>e.g.</strong> http://www.exampledomain.com/intelligentreach_integration.php?storeid=1&<strong>includeAllParentFields=1</strong></p>";
98
- echo "<h5>".$this->_versionDisplay."</h5></div>";
99
  }
100
 
101
  /**
@@ -120,10 +122,27 @@ class IntelligentReach
120
 
121
  public function getProductCollection($storeId)
122
  {
123
- return Mage::getModel('catalog/product')
124
  ->getCollection()
125
  ->addStoreFilter($storeId)
126
  ->addAttributeToSelect('*');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
127
  }
128
 
129
  // Run the task
@@ -174,6 +193,14 @@ class IntelligentReach
174
  if (isset($parentIds[0]))
175
  $parentProduct = $this->getParentProduct($parentIds[0]);// use already loaded parent if available
176
  }
 
 
 
 
 
 
 
 
177
  $feedData .= '<product>';
178
  foreach ($product->getData() as $key => $value)
179
  {
@@ -233,11 +260,7 @@ class IntelligentReach
233
  continue;
234
  }
235
 
236
- if(version_compare(PHP_VERSION, '5.4.0', '>='))
237
- $value = htmlentities($value, ENT_COMPAT | ENT_SUBSTITUTE, "UTF-8");
238
- else
239
- $value = htmlentities($value, ENT_COMPAT, "UTF-8");
240
-
241
  $value = $this->stripInvalidXMLCharacters($value);
242
  $value = "<![CDATA[$value]]>";
243
 
@@ -262,6 +285,7 @@ class IntelligentReach
262
  $feedData .= '<ir_parent_sku><![CDATA['.$this->stripInvalidXMLCharacters($parentProduct->getSku()).']]></ir_parent_sku>';
263
  $feedData .= '<ir_parent_url><![CDATA[' . $this->stripInvalidXMLCharacters(trim(str_replace('/intelligentreach_integration.php', '', $parentProduct->getProductUrl()))) . ']]></ir_parent_url>';
264
  $feedData .= '<ir_parent_image><![CDATA['.$this->stripInvalidXMLCharacters($baseUrl . 'media/catalog/product' . $parentProduct->getImage()).']]></ir_parent_image>';
 
265
  }
266
  $gallery = $parentProduct->getMediaGallery();
267
  if(count($gallery['images']) != 0)
@@ -422,10 +446,7 @@ class IntelligentReach
422
  }
423
  continue;
424
  }
425
- if(version_compare(PHP_VERSION, '5.4.0', '>='))
426
- $value = htmlentities($value, ENT_COMPAT | ENT_SUBSTITUTE, "UTF-8");
427
- else
428
- $value = htmlentities($value, ENT_COMPAT, "UTF-8");
429
  $value = $this->stripInvalidXMLCharacters($value);
430
 
431
  $value = "<![CDATA[$value]]>";
@@ -459,6 +480,14 @@ class IntelligentReach
459
  $dictionary = array( 0 => 'zero', 1 => 'one', 2 => 'two', 3 => 'three', 4 => 'four', 5 => 'five', 6 => 'six', 7 => 'seven', 8 => 'eight', 9 => 'nine');
460
  return $dictionary[$number];
461
  }
 
 
 
 
 
 
 
 
462
 
463
  /**
464
  * GZIPs a file on disk (appending .gz to the name)
1
  <?php
2
 
3
+ /** Version 1.0.38 Last updated by Kire on 16/06/2016 **/
4
  ini_set('display_errors', 1);
5
  ini_set('max_execution_time', 1800);
6
  ini_set('memory_limit', '2G');
13
 
14
  class IntelligentReach
15
  {
16
+ private $_versionNumber = "1.0.38";
17
+ private $_lastUpdated = "16/06/2016";
18
  private $_outputDirectory = "output";
19
  private $_fileName = "Feed";
20
  private $_fileNameTemp = "";
27
  private $_includeAllParentFields = false;
28
  private $_stripInvalidChars = false;
29
  private $_convertNumberToWord = false;
30
+ private $_includeDisabled = false;
31
+ private $_includeNonSimpleProducts = false;
32
 
33
  public function run()
34
  {
41
  $this->_fileNameTemp = tempnam("", $this->_fileName);
42
  echo "Temp File created: ". $this->_fileNameTemp."<br />";
43
  $time = microtime(true);
44
+ file_put_contents($this->_fileNameTemp, "<?xml version=\"1.0\" encoding=\"utf-8\"?>
45
+ <products version=\"$this->_versionNumber\" type=\"cron\">", LOCK_EX);
46
  $this->runTheTask($storeId);
47
  file_put_contents($this->_fileNameTemp, '</products>', FILE_APPEND | LOCK_EX);
48
 
92
  echo "e.g. http://www.exampledomain.com/intelligentreach_integration.php?storeid=1</p>";
93
  echo "<p><strong>NB:</strong> The Store Id parameter name is case sensitive. Only use \"storeid=\" not another variation.</p>";
94
  echo "<h3>Other options</h3>";
95
+ echo "<p>To enable the stripping of invalid XML characters set the <strong>'_stripInvalidChars'</strong> property to true</p>";
96
+ echo "<p>To enable the converting of the first character in the XML tag from a number to a word, set the <strong>'_convertNumberToWord'</strong> property to true.</p>";
97
+ echo "<p>To return all the parent product fields, set the <strong>'_includeAllParentFields'</strong> property to true.</p>";
98
+ echo "<p>To include disabled products in the feed, set the <strong>'_includeDisabled'</strong> property to true.</p>";
99
+ echo "<p>To include products of all types in the feed, set the <strong>'_includeNonSimpleProducts'</strong> property to true.</p>";
100
+ echo "<h5>Version $this->_versionNumber <br />Last updated on $this->_lastUpdated</h5></div>";
 
101
  }
102
 
103
  /**
122
 
123
  public function getProductCollection($storeId)
124
  {
125
+ $products = Mage::getModel('catalog/product')
126
  ->getCollection()
127
  ->addStoreFilter($storeId)
128
  ->addAttributeToSelect('*');
129
+ return $this->addAdditionalAttributeFilters($products);
130
+ }
131
+
132
+ public function addAdditionalAttributeFilters($products)
133
+ {
134
+ if(Mage::app()->getStore()->getConfig('catalog/frontend/flat_catalog_product') == 1)
135
+ Mage::app()->getStore()->setConfig('catalog/frontend/flat_catalog_product', 0);
136
+
137
+ if($this->_includeDisabled)
138
+ $products->addAttributeToFilter('status', array('gt' => 0));
139
+ else
140
+ $products->addAttributeToFilter('status', array('eq' => Mage_Catalog_Model_Product_Status::STATUS_ENABLED));
141
+
142
+ if(!$this->_includeNonSimpleProducts)
143
+ $products->addAttributeToFilter('type_id', array('eq' => 'simple'));
144
+
145
+ return $products;
146
  }
147
 
148
  // Run the task
193
  if (isset($parentIds[0]))
194
  $parentProduct = $this->getParentProduct($parentIds[0]);// use already loaded parent if available
195
  }
196
+
197
+ if((($product->getStatus() == Mage_Catalog_Model_Product_Status::STATUS_DISABLED)
198
+ || ((isset($parentProduct)) && ($parentProduct->getStatus() == Mage_Catalog_Model_Product_Status::STATUS_DISABLED)))
199
+ && !$this->_includeDisabled)
200
+ {
201
+ return;
202
+ }
203
+
204
  $feedData .= '<product>';
205
  foreach ($product->getData() as $key => $value)
206
  {
260
  continue;
261
  }
262
 
263
+ $value = $this->encodeValue($value);
 
 
 
 
264
  $value = $this->stripInvalidXMLCharacters($value);
265
  $value = "<![CDATA[$value]]>";
266
 
285
  $feedData .= '<ir_parent_sku><![CDATA['.$this->stripInvalidXMLCharacters($parentProduct->getSku()).']]></ir_parent_sku>';
286
  $feedData .= '<ir_parent_url><![CDATA[' . $this->stripInvalidXMLCharacters(trim(str_replace('/intelligentreach_integration.php', '', $parentProduct->getProductUrl()))) . ']]></ir_parent_url>';
287
  $feedData .= '<ir_parent_image><![CDATA['.$this->stripInvalidXMLCharacters($baseUrl . 'media/catalog/product' . $parentProduct->getImage()).']]></ir_parent_image>';
288
+ $feedData .= '<ir_parent_description><![CDATA['.$this->stripInvalidXMLCharacters($this->encodeValue($parentProduct->getDescription())).']]></ir_parent_description>';
289
  }
290
  $gallery = $parentProduct->getMediaGallery();
291
  if(count($gallery['images']) != 0)
446
  }
447
  continue;
448
  }
449
+ $value = $this->encodeValue($value);
 
 
 
450
  $value = $this->stripInvalidXMLCharacters($value);
451
 
452
  $value = "<![CDATA[$value]]>";
480
  $dictionary = array( 0 => 'zero', 1 => 'one', 2 => 'two', 3 => 'three', 4 => 'four', 5 => 'five', 6 => 'six', 7 => 'seven', 8 => 'eight', 9 => 'nine');
481
  return $dictionary[$number];
482
  }
483
+
484
+ public function encodeValue($value)
485
+ {
486
+ if(version_compare(PHP_VERSION, '5.4.0', '>='))
487
+ return htmlentities($value, ENT_COMPAT | ENT_SUBSTITUTE, "UTF-8");
488
+ else
489
+ return htmlentities($value, ENT_COMPAT, "UTF-8");
490
+ }
491
 
492
  /**
493
  * GZIPs a file on disk (appending .gz to the name)
ircronscripts/intelligentreach_integration_cron_pre.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php
2
 
3
- /** Version 1.0.37 Last updated by Kire on 18/05/2016 **/
4
  ini_set('display_errors', 1);
5
  ini_set('max_execution_time', 1800);
6
  ini_set('memory_limit', '2G');
@@ -13,7 +13,8 @@ $ir->run();
13
 
14
  class IntelligentReach
15
  {
16
- private $_versionDisplay = "Version 1.0.37 <br />Last updated on 18/05/2016";
 
17
  private $_outputDirectory = "output";
18
  private $_fileName = "Feed";
19
  private $_fileNameTemp = "";
@@ -26,6 +27,8 @@ class IntelligentReach
26
  private $_includeAllParentFields = false;
27
  private $_stripInvalidChars = false;
28
  private $_convertNumberToWord = false;
 
 
29
 
30
  public function run()
31
  {
@@ -38,8 +41,8 @@ class IntelligentReach
38
  $this->_fileNameTemp = tempnam("", $this->_fileName);
39
  echo "Temp File created: ". $this->_fileNameTemp."<br />";
40
  $time = microtime(true);
41
- file_put_contents($this->_fileNameTemp, '<?xml version="1.0" encoding="utf-8"?>
42
- <products version="1.0.37" type="cron_pre">', LOCK_EX);
43
  $this->runTheTask($storeId);
44
  file_put_contents($this->_fileNameTemp, '</products>', FILE_APPEND | LOCK_EX);
45
 
@@ -89,13 +92,12 @@ class IntelligentReach
89
  echo "e.g. http://www.exampledomain.com/intelligentreach_integration.php?storeid=1</p>";
90
  echo "<p><strong>NB:</strong> The Store Id parameter name is case sensitive. Only use \"storeid=\" not another variation.</p>";
91
  echo "<h3>Other options</h3>";
92
- echo "<p>To enable the stripping of invalid XML characters add the <strong>'stripInvalidChars'</strong> parameter</p>";
93
- echo "<strong>e.g.</strong> http://www.exampledomain.com/intelligentreach_integration.php?storeid=1&<strong>stripInvalidChars=1</strong></p>";
94
- echo "<p>To enable the converting of the first character in the XML tag from a number to a word, use the <strong>'convertNumberToWord'</strong> parameter.</p>";
95
- echo "<strong>e.g.</strong> http://www.exampledomain.com/intelligentreach_integration.php?storeid=1&<strong>convertNumberToWord=1</strong></p>";
96
- echo "<p>To return all the parent product fields, use the <strong>'includeAllParentFields'</strong> parameter.</p>";
97
- echo "<strong>e.g.</strong> http://www.exampledomain.com/intelligentreach_integration.php?storeid=1&<strong>includeAllParentFields=1</strong></p>";
98
- echo "<h5>".$this->_versionDisplay."</h5></div>";
99
  }
100
 
101
  /**
@@ -120,9 +122,26 @@ class IntelligentReach
120
 
121
  public function getProductCollection($storeId)
122
  {
123
- return Mage::getModel('catalog/product')
124
  ->getCollection()
125
  ->addStoreFilter($storeId);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
126
  }
127
 
128
  // Run the task
@@ -173,6 +192,14 @@ class IntelligentReach
173
  if (isset($parentIds[0]))
174
  $parentProduct = $this->getParentProduct($parentIds[0]);// use already loaded parent if available
175
  }
 
 
 
 
 
 
 
 
176
  $feedData .= '<product>';
177
  foreach ($product->getData() as $key => $value)
178
  {
@@ -232,11 +259,7 @@ class IntelligentReach
232
  continue;
233
  }
234
 
235
- if(version_compare(PHP_VERSION, '5.4.0', '>='))
236
- $value = htmlentities($value, ENT_COMPAT | ENT_SUBSTITUTE, "UTF-8");
237
- else
238
- $value = htmlentities($value, ENT_COMPAT, "UTF-8");
239
-
240
  $value = $this->stripInvalidXMLCharacters($value);
241
  $value = "<![CDATA[$value]]>";
242
 
@@ -261,6 +284,7 @@ class IntelligentReach
261
  $feedData .= '<ir_parent_sku><![CDATA['.$this->stripInvalidXMLCharacters($parentProduct->getSku()).']]></ir_parent_sku>';
262
  $feedData .= '<ir_parent_url><![CDATA[' . $this->stripInvalidXMLCharacters(trim(str_replace('/intelligentreach_integration.php', '', $parentProduct->getProductUrl()))) . ']]></ir_parent_url>';
263
  $feedData .= '<ir_parent_image><![CDATA['.$this->stripInvalidXMLCharacters($baseUrl . 'media/catalog/product' . $parentProduct->getImage()).']]></ir_parent_image>';
 
264
  }
265
  $gallery = $parentProduct->getMediaGallery();
266
  if(count($gallery['images']) != 0)
@@ -421,10 +445,7 @@ class IntelligentReach
421
  }
422
  continue;
423
  }
424
- if(version_compare(PHP_VERSION, '5.4.0', '>='))
425
- $value = htmlentities($value, ENT_COMPAT | ENT_SUBSTITUTE, "UTF-8");
426
- else
427
- $value = htmlentities($value, ENT_COMPAT, "UTF-8");
428
  $value = $this->stripInvalidXMLCharacters($value);
429
 
430
  $value = "<![CDATA[$value]]>";
@@ -458,6 +479,14 @@ class IntelligentReach
458
  $dictionary = array( 0 => 'zero', 1 => 'one', 2 => 'two', 3 => 'three', 4 => 'four', 5 => 'five', 6 => 'six', 7 => 'seven', 8 => 'eight', 9 => 'nine');
459
  return $dictionary[$number];
460
  }
 
 
 
 
 
 
 
 
461
 
462
  /**
463
  * GZIPs a file on disk (appending .gz to the name)
1
  <?php
2
 
3
+ /** Version 1.0.38 Last updated by Kire on 16/06/2016 **/
4
  ini_set('display_errors', 1);
5
  ini_set('max_execution_time', 1800);
6
  ini_set('memory_limit', '2G');
13
 
14
  class IntelligentReach
15
  {
16
+ private $_versionNumber = "1.0.38";
17
+ private $_lastUpdated = "16/06/2016";
18
  private $_outputDirectory = "output";
19
  private $_fileName = "Feed";
20
  private $_fileNameTemp = "";
27
  private $_includeAllParentFields = false;
28
  private $_stripInvalidChars = false;
29
  private $_convertNumberToWord = false;
30
+ private $_includeDisabled = false;
31
+ private $_includeNonSimpleProducts = false;
32
 
33
  public function run()
34
  {
41
  $this->_fileNameTemp = tempnam("", $this->_fileName);
42
  echo "Temp File created: ". $this->_fileNameTemp."<br />";
43
  $time = microtime(true);
44
+ file_put_contents($this->_fileNameTemp, "<?xml version=\"1.0\" encoding=\"utf-8\"?>
45
+ <products version=\"$this->_versionNumber\" type=\"cron_pre\">", LOCK_EX);
46
  $this->runTheTask($storeId);
47
  file_put_contents($this->_fileNameTemp, '</products>', FILE_APPEND | LOCK_EX);
48
 
92
  echo "e.g. http://www.exampledomain.com/intelligentreach_integration.php?storeid=1</p>";
93
  echo "<p><strong>NB:</strong> The Store Id parameter name is case sensitive. Only use \"storeid=\" not another variation.</p>";
94
  echo "<h3>Other options</h3>";
95
+ echo "<p>To enable the stripping of invalid XML characters set the <strong>'_stripInvalidChars'</strong> property to true</p>";
96
+ echo "<p>To enable the converting of the first character in the XML tag from a number to a word, set the <strong>'_convertNumberToWord'</strong> property to true.</p>";
97
+ echo "<p>To return all the parent product fields, set the <strong>'_includeAllParentFields'</strong> property to true.</p>";
98
+ echo "<p>To include disabled products in the feed, set the <strong>'_includeDisabled'</strong> property to true.</p>";
99
+ echo "<p>To include products of all types in the feed, set the <strong>'_includeNonSimpleProducts'</strong> property to true.</p>";
100
+ echo "<h5>Version $this->_versionNumber <br />Last updated on $this->_lastUpdated</h5></div>";
 
101
  }
102
 
103
  /**
122
 
123
  public function getProductCollection($storeId)
124
  {
125
+ $products = Mage::getModel('catalog/product')
126
  ->getCollection()
127
  ->addStoreFilter($storeId);
128
+ return $this->addAdditionalAttributeFilters($products);
129
+ }
130
+
131
+ public function addAdditionalAttributeFilters($products)
132
+ {
133
+ if(Mage::app()->getStore()->getConfig('catalog/frontend/flat_catalog_product') == 1)
134
+ Mage::app()->getStore()->setConfig('catalog/frontend/flat_catalog_product', 0);
135
+
136
+ if($this->_includeDisabled)
137
+ $products->addAttributeToFilter('status', array('gt' => 0));
138
+ else
139
+ $products->addAttributeToFilter('status', array('eq' => Mage_Catalog_Model_Product_Status::STATUS_ENABLED));
140
+
141
+ if(!$this->_includeNonSimpleProducts)
142
+ $products->addAttributeToFilter('type_id', array('eq' => 'simple'));
143
+
144
+ return $products;
145
  }
146
 
147
  // Run the task
192
  if (isset($parentIds[0]))
193
  $parentProduct = $this->getParentProduct($parentIds[0]);// use already loaded parent if available
194
  }
195
+
196
+ if((($product->getStatus() == Mage_Catalog_Model_Product_Status::STATUS_DISABLED)
197
+ || ((isset($parentProduct)) && ($parentProduct->getStatus() == Mage_Catalog_Model_Product_Status::STATUS_DISABLED)))
198
+ && !$this->_includeDisabled)
199
+ {
200
+ return;
201
+ }
202
+
203
  $feedData .= '<product>';
204
  foreach ($product->getData() as $key => $value)
205
  {
259
  continue;
260
  }
261
 
262
+ $value = $this->encodeValue($value);
 
 
 
 
263
  $value = $this->stripInvalidXMLCharacters($value);
264
  $value = "<![CDATA[$value]]>";
265
 
284
  $feedData .= '<ir_parent_sku><![CDATA['.$this->stripInvalidXMLCharacters($parentProduct->getSku()).']]></ir_parent_sku>';
285
  $feedData .= '<ir_parent_url><![CDATA[' . $this->stripInvalidXMLCharacters(trim(str_replace('/intelligentreach_integration.php', '', $parentProduct->getProductUrl()))) . ']]></ir_parent_url>';
286
  $feedData .= '<ir_parent_image><![CDATA['.$this->stripInvalidXMLCharacters($baseUrl . 'media/catalog/product' . $parentProduct->getImage()).']]></ir_parent_image>';
287
+ $feedData .= '<ir_parent_description><![CDATA['.$this->stripInvalidXMLCharacters($this->encodeValue($parentProduct->getDescription())).']]></ir_parent_description>';
288
  }
289
  $gallery = $parentProduct->getMediaGallery();
290
  if(count($gallery['images']) != 0)
445
  }
446
  continue;
447
  }
448
+ $value = $this->encodeValue($value);
 
 
 
449
  $value = $this->stripInvalidXMLCharacters($value);
450
 
451
  $value = "<![CDATA[$value]]>";
479
  $dictionary = array( 0 => 'zero', 1 => 'one', 2 => 'two', 3 => 'three', 4 => 'four', 5 => 'five', 6 => 'six', 7 => 'seven', 8 => 'eight', 9 => 'nine');
480
  return $dictionary[$number];
481
  }
482
+
483
+ public function encodeValue($value)
484
+ {
485
+ if(version_compare(PHP_VERSION, '5.4.0', '>='))
486
+ return htmlentities($value, ENT_COMPAT | ENT_SUBSTITUTE, "UTF-8");
487
+ else
488
+ return htmlentities($value, ENT_COMPAT, "UTF-8");
489
+ }
490
 
491
  /**
492
  * GZIPs a file on disk (appending .gz to the name)
ircronscripts/intelligentreach_integration_cron_qty_price.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php
2
 
3
- /** Version 1.0.37 Last updated by Kire on 18/05/2016 **/
4
  ini_set('display_errors', 1);
5
  ini_set('max_execution_time', 1800);
6
  ini_set('memory_limit', '2G');
@@ -13,12 +13,16 @@ $ir->run();
13
 
14
  class IntelligentReach
15
  {
16
- private $_versionDisplay = "Version 1.0.37 <br />Last updated on 18/05/2016";
 
17
  private $_outputDirectory = "output";
18
  private $_fileName = "Feed_Quantity_And_Price";
19
  private $_fileNameTemp = "";
20
  private $_amountOfProductsPerPage = 1000;
 
21
  private $_gzipFile = true;
 
 
22
 
23
  public function run()
24
  {
@@ -32,7 +36,7 @@ class IntelligentReach
32
  $this->_fileNameTemp = tempnam("", $this->_fileName);
33
  echo "Temp File created: ". $this->_fileNameTemp."<br />";
34
 
35
- file_put_contents($this->_fileNameTemp, '<?xml version="1.0" encoding="utf-8"?><products version="1.0.37" type="cron">', LOCK_EX);
36
  $this->runTheTask($storeId);
37
  file_put_contents($this->_fileNameTemp, '</products>', FILE_APPEND | LOCK_EX);
38
 
@@ -72,7 +76,7 @@ class IntelligentReach
72
  echo "<p>If you want to skip this step in the future, you can manually enter the Store Id in the URL.<br />";
73
  echo "e.g. http://www.exampledomain.com/intelligentreach_integration.php?storeid=1</p>";
74
  echo "<p><strong>NB:</strong> The Store Id parameter name is case sensitive. Only use \"storeid=\" not another variation.</p>";
75
- echo "<h5>".$this->_versionDisplay."</h5></div>";
76
  }
77
 
78
  // Gets all the products in the catalog in the specific store view,
@@ -97,11 +101,27 @@ class IntelligentReach
97
 
98
  public function getProductCollection($storeId)
99
  {
100
- return Mage::getModel('catalog/product')
101
  ->getCollection()
102
  ->addStoreFilter($storeId)
103
- ->addAttributeToSelect('price', 'left')
104
- ->addAttributeToFilter('status', array('eq' => Mage_Catalog_Model_Product_Status::STATUS_ENABLED));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
105
  }
106
 
107
  // Run the task
1
  <?php
2
 
3
+ /** Version 1.0.38 Last updated by Kire on 16/06/2016 **/
4
  ini_set('display_errors', 1);
5
  ini_set('max_execution_time', 1800);
6
  ini_set('memory_limit', '2G');
13
 
14
  class IntelligentReach
15
  {
16
+ private $_versionNumber = "1.0.38";
17
+ private $_lastUpdated = "16/06/2016";
18
  private $_outputDirectory = "output";
19
  private $_fileName = "Feed_Quantity_And_Price";
20
  private $_fileNameTemp = "";
21
  private $_amountOfProductsPerPage = 1000;
22
+
23
  private $_gzipFile = true;
24
+ private $_includeDisabled = false;
25
+ private $_includeNonSimpleProducts = false;
26
 
27
  public function run()
28
  {
36
  $this->_fileNameTemp = tempnam("", $this->_fileName);
37
  echo "Temp File created: ". $this->_fileNameTemp."<br />";
38
 
39
+ file_put_contents($this->_fileNameTemp, "<?xml version=\"1.0\" encoding=\"utf-8\"?><products version=\"$this->_versionNumber\" type=\"cron\">", LOCK_EX);
40
  $this->runTheTask($storeId);
41
  file_put_contents($this->_fileNameTemp, '</products>', FILE_APPEND | LOCK_EX);
42
 
76
  echo "<p>If you want to skip this step in the future, you can manually enter the Store Id in the URL.<br />";
77
  echo "e.g. http://www.exampledomain.com/intelligentreach_integration.php?storeid=1</p>";
78
  echo "<p><strong>NB:</strong> The Store Id parameter name is case sensitive. Only use \"storeid=\" not another variation.</p>";
79
+ echo "<h5>Version $this->_versionNumber <br />Last updated on $this->_lastUpdated</h5></div>";
80
  }
81
 
82
  // Gets all the products in the catalog in the specific store view,
101
 
102
  public function getProductCollection($storeId)
103
  {
104
+ $products = Mage::getModel('catalog/product')
105
  ->getCollection()
106
  ->addStoreFilter($storeId)
107
+ ->addAttributeToSelect('price', 'left');
108
+ return $this->addAdditionalAttributeFilters($products);
109
+ }
110
+
111
+ public function addAdditionalAttributeFilters($products)
112
+ {
113
+ if(Mage::app()->getStore()->getConfig('catalog/frontend/flat_catalog_product'))
114
+ Mage::app()->getStore()->setConfig('catalog/frontend/flat_catalog_product', 0);
115
+
116
+ if($this->_includeDisabled)
117
+ $products->addAttributeToFilter('status', array('gt' => 0));
118
+ else
119
+ $products->addAttributeToFilter('status', array('eq' => Mage_Catalog_Model_Product_Status::STATUS_ENABLED));
120
+
121
+ if(!$this->_includeNonSimpleProducts)
122
+ $products->addAttributeToFilter('type_id', array('eq' => 'simple'));
123
+
124
+ return $products;
125
  }
126
 
127
  // Run the task
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Intelligent_Reach</name>
4
- <version>1.0.37</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/OSL-3.0">OSL</license>
7
  <channel>community</channel>
@@ -17,9 +17,9 @@ Intelligent reach also offers advanced insight and trading services; whilst ensu
17
  Contact us to arrange a free E-commerce therapy session. Get advice about e-privacy compliance, tag management, analytics or BI implementations and Data quality as well as any key pain points or challenges which are hampering your growth.</description>
18
  <notes>Stable release. Compatible with older versions. Feed creation has been optimized to handle larger loads. The option to choose the store is now available. Can retrieve associated products for grouped types.Bug fixes.Has support for PHP V5.2. Quantity script has now been added. Flat Catalog support has been added,</notes>
19
  <authors><author><name>Intelligent Reach</name><user>IR</user><email>development@intelligentreach.com</email></author></authors>
20
- <date>2016-05-18</date>
21
- <time>13:13:30</time>
22
- <contents><target name="mage"><dir name="."><file name="intelligentreach_integration.php" hash="025b854d090a95c8e4d0cadcb2a7effe"/><file name="intelligentreach_integration_qty.php" hash="ce4c85c014496fac485785fdfa80a4b7"/><file name="intelligentreach_integration_pre.php" hash="fadaa1f5a48eb1285535ecd3a1991957"/></dir><dir><dir name="app"><dir name="etc"><dir name="modules"><file name="IntelligentReach_Integration.xml" hash="6cdd19a11572e7073dbb3d746b6b57b6"/><file name="IntelligentReach_AmazonPayment.xml" hash="10faf651f19ea2298217be1a95707b7c"/><file name="IntelligentReach_EbayPayment.xml" hash="eb9acbd1b55da29e10b09981f0b7af8f"/><file name="IntelligentReach_DebenhamsPayment.xml" hash="649e25d5edf93ea84ce0a35240441ecb"/><file name="IntelligentReach_LazadaPayment.xml" hash="74ebd9f7bab6023049128e6de012b52c"/><file name="IntelligentReach_PlayPayment.xml" hash="c711e18f9a79c24bcddce4143ffb6fb6"/><file name="IntelligentReach_RakutenPayment.xml" hash="d70ce1efcf60b29ecc02fcea8df1f7e9"/><file name="IntelligentReach_TradeMePayment.xml" hash="367154d17430c1000c3798454be25dcb"/><file name="IntelligentReach_WestfieldPayment.xml" hash="b0ae5878bb26f86674ce88a50876496b"/><file name="IntelligentReach_IRShipping.xml" hash="f0e21aff453dc0436541117f33d58e74"/></dir></dir><dir name="code"><dir name="local"><dir name="IntelligentReach"><dir name="Integration"><dir name="etc"><file name="config.xml" hash="0b784e438516a78bca82762d1e6b2519"/></dir></dir><dir name="AmazonPayment"><dir name="etc"><file name="config.xml" hash="a1cad0a484b0ca9e8493bd50904bdc45"/><file name="system.xml" hash="7b236978b8022dc4deda628640ea8689"/></dir><dir name="Helper"><file name="Data.php" hash="2e4ef89b210d0f992cd25b8ef5f4b96e"/></dir><dir name="Model"><file name="Pay.php" hash="4f706307986b9cd0f7cb64f69402cbd5"/></dir></dir><dir name="EbayPayment"><dir name="etc"><file name="config.xml" hash="b5d5c39f624080166e7df2695c92ccec"/><file name="system.xml" hash="7246fbf64d238328f74bd6445cc05b29"/></dir><dir name="Helper"><file name="Data.php" hash="0e112e22a4786f3624216628dee796a0"/></dir><dir name="Model"><file name="Pay.php" hash="9195dd4e2dbdeae9170220d78efc9f7b"/></dir></dir><dir name="DebenhamsPayment"><dir name="etc"><file name="config.xml" hash="66e05db6779d60d2d4fdb51c4de8d1b4"/><file name="system.xml" hash="fab15158ef26748821326174ca9d91eb"/></dir><dir name="Helper"><file name="Data.php" hash="24e03a8fb06b27480aae4e37f2dc54d8"/></dir><dir name="Model"><file name="Pay.php" hash="45162537d76f8c9e9ccc1ec493c59691"/></dir></dir><dir name="LazadaPayment"><dir name="etc"><file name="config.xml" hash="9b5c6dd9f7ecdeed250ecd5c0f397ba8"/><file name="system.xml" hash="bf34e8ec60287c727d8221163f436c9c"/></dir><dir name="Helper"><file name="Data.php" hash="7eee4edb781ab93817979b61f314787f"/></dir><dir name="Model"><file name="Pay.php" hash="d52eafb63ab3bad2a390e2f83ebfab6e"/></dir></dir><dir name="PlayPayment"><dir name="etc"><file name="config.xml" hash="767175910c1d6f6048e1355392a4745b"/><file name="system.xml" hash="4afb9b545ca22d4043b0606222d734a6"/></dir><dir name="Helper"><file name="Data.php" hash="486d43158da7188608eb07d3c9e45845"/></dir><dir name="Model"><file name="Pay.php" hash="78432762a0020455de623fbe79166045"/></dir></dir><dir name="RakutenPayment"><dir name="etc"><file name="config.xml" hash="1969756f962c687f720a649d62132c09"/><file name="system.xml" hash="6c19c11b0ad20305d3dd705a0e3f71b9"/></dir><dir name="Helper"><file name="Data.php" hash="87cc7e597d4f70a26911c861358d5695"/></dir><dir name="Model"><file name="Pay.php" hash="b52e5cb4fdb78db91c23bc929e8a70eb"/></dir></dir><dir name="TradeMePayment"><dir name="etc"><file name="config.xml" hash="18bd61d1932edb195bf91b16c528bafc"/><file name="system.xml" hash="98893010b7a44f27611421780a09cd6a"/></dir><dir name="Helper"><file name="Data.php" hash="b789a1164f2296882e81d4dced4897a0"/></dir><dir name="Model"><file name="Pay.php" hash="74ba42a1af907d6159fcd8c507d533de"/></dir></dir><dir name="WestfieldPayment"><dir name="etc"><file name="config.xml" hash="b2bba57c16a2b504f68e44877f96b668"/><file name="system.xml" hash="de52dce1e16aaa20f62253a4a22f419f"/></dir><dir name="Helper"><file name="Data.php" hash="1d1fcc723fc60d73b004173094a8499e"/></dir><dir name="Model"><file name="Pay.php" hash="d398e69f34d1b7b4105d264eccf01799"/></dir></dir><dir name="IRShipping"><dir name="etc"><file name="api.xml" hash="e6a94fbe12b32f3c7ff52d1a5e0f1641"/><file name="config.xml" hash="c5f1f836e4263f50d3876f2db4d2bc17"/><file name="system.xml" hash="a8557991e72769db9da9f2ac90b0b9a5"/><file name="wsdl.xml" hash="ffc7012d4eece41205102d41c8c6b953"/><file name="wsi.xml" hash="77ce37c2b3adb664c3b9f2cc4f901388"/></dir><dir name="Model"><file name="Carrier.php" hash="262539a4ab189952a4e6f914bb0855d8"/><dir name="Cart"><file name="Api.php" hash="9eac552aecc9f4de277b4e15976ea7b5"/><dir name="Api"><file name="V2.php" hash="0f02ea1b2ba3e88d166b0fdaea8444d1"/></dir><dir name="Shipping"><file name="Api.php" hash="75a01931a00a72b74890858f1fc994a9"/><dir name="Api"><file name="V2.php" hash="ca18e89a5d9846423682dedb58e72762"/></dir></dir></dir><dir name="Quote"><dir name="Address"><dir name="Total"><file name="Shipping.php" hash="5f6b34bd1fc668481580010573091e38"/></dir></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="d2d25617c465d0dce4dd52b9eac7649f"/></dir></dir></dir></dir></dir><dir name="design"><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="intelligentreach_integration.xml" hash="c45eb729e1e4b5025b25c20ac2723eeb"/></dir><dir name="template"><dir name="intelligentreach_integration"><file name="intelligentreach_integration.phtml" hash="cfcf6e1c2de50fa66258a820fb296775"/><dir name="product"><file name="intelligentreach_integration.phtml" hash="0d1f3ce4a57d977d8955176b01e2f87d"/></dir><dir name="basket"><file name="intelligentreach_integration.phtml" hash="983743acab4cd1c2819ea4fb6eebe0b5"/></dir><dir name="checkout"><dir name="onepage"><file name="intelligentreach_integration.phtml" hash="dfcfe625fadaf06fb3b069cb9257b4cc"/></dir><dir name="multishipping"><file name="intelligentreach_integration.phtml" hash="206d1fe72ab530829ca274fd52e90108"/></dir></dir></dir></dir></dir></dir><dir name="enterprise"><dir name="default"><dir name="layout"><file name="intelligentreach_integration.xml" hash="c45eb729e1e4b5025b25c20ac2723eeb"/></dir><dir name="template"><dir name="intelligentreach_integration"><file name="intelligentreach_integration.phtml" hash="cfcf6e1c2de50fa66258a820fb296775"/><dir name="product"><file name="intelligentreach_integration.phtml" hash="0d1f3ce4a57d977d8955176b01e2f87d"/></dir><dir name="basket"><file name="intelligentreach_integration.phtml" hash="983743acab4cd1c2819ea4fb6eebe0b5"/></dir><dir name="checkout"><dir name="onepage"><file name="intelligentreach_integration.phtml" hash="dfcfe625fadaf06fb3b069cb9257b4cc"/></dir><dir name="multishipping"><file name="intelligentreach_integration.phtml" hash="206d1fe72ab530829ca274fd52e90108"/></dir></dir></dir></dir></dir></dir><dir name="default"><dir name="default"><dir name="layout"><file name="intelligentreach_integration.xml" hash="c45eb729e1e4b5025b25c20ac2723eeb"/></dir><dir name="template"><dir name="intelligentreach_integration"><file name="intelligentreach_integration.phtml" hash="cfcf6e1c2de50fa66258a820fb296775"/><dir name="product"><file name="intelligentreach_integration.phtml" hash="0d1f3ce4a57d977d8955176b01e2f87d"/></dir><dir name="basket"><file name="intelligentreach_integration.phtml" hash="983743acab4cd1c2819ea4fb6eebe0b5"/></dir><dir name="checkout"><dir name="onepage"><file name="intelligentreach_integration.phtml" hash="dfcfe625fadaf06fb3b069cb9257b4cc"/></dir><dir name="multishipping"><file name="intelligentreach_integration.phtml" hash="206d1fe72ab530829ca274fd52e90108"/></dir></dir></dir></dir></dir></dir></dir></dir></dir><dir name="ircronscripts"><file name="intelligentreach_integration_cron.php" hash="3aceec1070ff94beca6a6612e1d188fc"/><file name="intelligentreach_integration_cron_pre.php" hash="9515401e6467f44539866946757a8563"/><file name="intelligentreach_integration_cron_qty_price.php" hash="004b62d8894e58740c62cd75c558cea4"/></dir></dir></target></contents>
23
  <compatible/>
24
  <dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
25
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Intelligent_Reach</name>
4
+ <version>1.0.38</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/OSL-3.0">OSL</license>
7
  <channel>community</channel>
17
  Contact us to arrange a free E-commerce therapy session. Get advice about e-privacy compliance, tag management, analytics or BI implementations and Data quality as well as any key pain points or challenges which are hampering your growth.</description>
18
  <notes>Stable release. Compatible with older versions. Feed creation has been optimized to handle larger loads. The option to choose the store is now available. Can retrieve associated products for grouped types.Bug fixes.Has support for PHP V5.2. Quantity script has now been added. Flat Catalog support has been added,</notes>
19
  <authors><author><name>Intelligent Reach</name><user>IR</user><email>development@intelligentreach.com</email></author></authors>
20
+ <date>2016-06-21</date>
21
+ <time>12:41:05</time>
22
+ <contents><target name="mage"><dir name="."><file name="intelligentreach_integration.php" hash="1d0912d3f623a7eac4d3cf1d53ac3886"/><file name="intelligentreach_integration_qty.php" hash="f908665fd49e3a9bc7538fc043711b3a"/><file name="intelligentreach_integration_pre.php" hash="8deab44da93dc38afa3e3d77ca766c67"/></dir><dir><dir name="app"><dir name="etc"><dir name="modules"><file name="IntelligentReach_Integration.xml" hash="6cdd19a11572e7073dbb3d746b6b57b6"/><file name="IntelligentReach_AmazonPayment.xml" hash="10faf651f19ea2298217be1a95707b7c"/><file name="IntelligentReach_EbayPayment.xml" hash="eb9acbd1b55da29e10b09981f0b7af8f"/><file name="IntelligentReach_DebenhamsPayment.xml" hash="649e25d5edf93ea84ce0a35240441ecb"/><file name="IntelligentReach_LazadaPayment.xml" hash="74ebd9f7bab6023049128e6de012b52c"/><file name="IntelligentReach_PlayPayment.xml" hash="c711e18f9a79c24bcddce4143ffb6fb6"/><file name="IntelligentReach_RakutenPayment.xml" hash="d70ce1efcf60b29ecc02fcea8df1f7e9"/><file name="IntelligentReach_TradeMePayment.xml" hash="367154d17430c1000c3798454be25dcb"/><file name="IntelligentReach_WestfieldPayment.xml" hash="b0ae5878bb26f86674ce88a50876496b"/><file name="IntelligentReach_OrderExporter.xml" hash="004c82baa9638e0fb23cc75f783b56e1"/></dir></dir><dir name="code"><dir name="local"><dir name="IntelligentReach"><dir name="Integration"><dir name="etc"><file name="config.xml" hash="c8f4ec09cdb7d39a76f1a6d797b8ce50"/></dir></dir><dir name="AmazonPayment"><dir name="etc"><file name="config.xml" hash="72b858a3b47353aa1d499c1d8e382233"/><file name="system.xml" hash="7b236978b8022dc4deda628640ea8689"/></dir><dir name="Helper"><file name="Data.php" hash="2e4ef89b210d0f992cd25b8ef5f4b96e"/></dir><dir name="Model"><file name="Pay.php" hash="4f706307986b9cd0f7cb64f69402cbd5"/></dir></dir><dir name="EbayPayment"><dir name="etc"><file name="config.xml" hash="453994159af90124770955642a339f46"/><file name="system.xml" hash="7246fbf64d238328f74bd6445cc05b29"/></dir><dir name="Helper"><file name="Data.php" hash="0e112e22a4786f3624216628dee796a0"/></dir><dir name="Model"><file name="Pay.php" hash="9195dd4e2dbdeae9170220d78efc9f7b"/></dir></dir><dir name="DebenhamsPayment"><dir name="etc"><file name="config.xml" hash="812a8b450bb83d54d7d8fb05c5d912c4"/><file name="system.xml" hash="fab15158ef26748821326174ca9d91eb"/></dir><dir name="Helper"><file name="Data.php" hash="24e03a8fb06b27480aae4e37f2dc54d8"/></dir><dir name="Model"><file name="Pay.php" hash="45162537d76f8c9e9ccc1ec493c59691"/></dir></dir><dir name="LazadaPayment"><dir name="etc"><file name="config.xml" hash="a8523470fb16a0a835cf6ca23d649de6"/><file name="system.xml" hash="bf34e8ec60287c727d8221163f436c9c"/></dir><dir name="Helper"><file name="Data.php" hash="7eee4edb781ab93817979b61f314787f"/></dir><dir name="Model"><file name="Pay.php" hash="d52eafb63ab3bad2a390e2f83ebfab6e"/></dir></dir><dir name="PlayPayment"><dir name="etc"><file name="config.xml" hash="1e804794ec24e9125da2e40c615793da"/><file name="system.xml" hash="4afb9b545ca22d4043b0606222d734a6"/></dir><dir name="Helper"><file name="Data.php" hash="486d43158da7188608eb07d3c9e45845"/></dir><dir name="Model"><file name="Pay.php" hash="78432762a0020455de623fbe79166045"/></dir></dir><dir name="RakutenPayment"><dir name="etc"><file name="config.xml" hash="914ebfdda6296b403abdf84234300629"/><file name="system.xml" hash="6c19c11b0ad20305d3dd705a0e3f71b9"/></dir><dir name="Helper"><file name="Data.php" hash="87cc7e597d4f70a26911c861358d5695"/></dir><dir name="Model"><file name="Pay.php" hash="b52e5cb4fdb78db91c23bc929e8a70eb"/></dir></dir><dir name="TradeMePayment"><dir name="etc"><file name="config.xml" hash="3cd0d5f292f537032e6f41cebcc4493e"/><file name="system.xml" hash="98893010b7a44f27611421780a09cd6a"/></dir><dir name="Helper"><file name="Data.php" hash="b789a1164f2296882e81d4dced4897a0"/></dir><dir name="Model"><file name="Pay.php" hash="74ba42a1af907d6159fcd8c507d533de"/></dir></dir><dir name="WestfieldPayment"><dir name="etc"><file name="config.xml" hash="ae47650584564df31e1c6759794cc934"/><file name="system.xml" hash="de52dce1e16aaa20f62253a4a22f419f"/></dir><dir name="Helper"><file name="Data.php" hash="1d1fcc723fc60d73b004173094a8499e"/></dir><dir name="Model"><file name="Pay.php" hash="d398e69f34d1b7b4105d264eccf01799"/></dir></dir><dir name="OrderExporter"><dir name="etc"><file name="api.xml" hash="aee4a0fdb16e1e6b24de0f1b9bb3da99"/><file name="config.xml" hash="5f4b22217c793d6e40a25f83cf05d50d"/><file name="system.xml" hash="6e41cdc209a85975879947a78bda24b2"/><file name="wsdl.xml" hash="a7361499844f83df32d923322633bab1"/><file name="wsi.xml" hash="a106a60efb3b7e50d3239343311e5a50"/></dir><dir name="Model"><file name="Carrier.php" hash="723819e51c4e1a644cc3de48dcac54c6"/><dir name="Cart"><file name="Api.php" hash="50339620188a9187ecd0afa6ede3fda7"/><dir name="Api"><file name="V2.php" hash="1703584c45f0eabc93b75b7814a970b9"/></dir><dir name="Shipping"><file name="Api.php" hash="547829c7eb8d0c22a4a13e5a8df2a2a3"/><dir name="Api"><file name="V2.php" hash="ebd0fc61544ddcf8a7dc8c5fece6ada5"/></dir></dir><dir name="Product"><file name="Api.php" hash="25f9320923ed59266fb55bba645a2cf1"/><dir name="Api"><file name="V2.php" hash="74912462ca1d3bab41381c4d1a489091"/></dir></dir></dir><dir name="Quote"><dir name="Address"><dir name="Total"><file name="Shipping.php" hash="7891ef0dc09150b7dda42e7f67e14584"/></dir></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="4ef41fb017e9d210521d42cff2b43dd0"/></dir></dir></dir></dir></dir><dir name="design"><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="intelligentreach_integration.xml" hash="c45eb729e1e4b5025b25c20ac2723eeb"/></dir><dir name="template"><dir name="intelligentreach_integration"><file name="intelligentreach_integration.phtml" hash="cfcf6e1c2de50fa66258a820fb296775"/><dir name="product"><file name="intelligentreach_integration.phtml" hash="0d1f3ce4a57d977d8955176b01e2f87d"/></dir><dir name="basket"><file name="intelligentreach_integration.phtml" hash="983743acab4cd1c2819ea4fb6eebe0b5"/></dir><dir name="checkout"><dir name="onepage"><file name="intelligentreach_integration.phtml" hash="dfcfe625fadaf06fb3b069cb9257b4cc"/></dir><dir name="multishipping"><file name="intelligentreach_integration.phtml" hash="206d1fe72ab530829ca274fd52e90108"/></dir></dir></dir></dir></dir></dir><dir name="enterprise"><dir name="default"><dir name="layout"><file name="intelligentreach_integration.xml" hash="c45eb729e1e4b5025b25c20ac2723eeb"/></dir><dir name="template"><dir name="intelligentreach_integration"><file name="intelligentreach_integration.phtml" hash="cfcf6e1c2de50fa66258a820fb296775"/><dir name="product"><file name="intelligentreach_integration.phtml" hash="0d1f3ce4a57d977d8955176b01e2f87d"/></dir><dir name="basket"><file name="intelligentreach_integration.phtml" hash="983743acab4cd1c2819ea4fb6eebe0b5"/></dir><dir name="checkout"><dir name="onepage"><file name="intelligentreach_integration.phtml" hash="dfcfe625fadaf06fb3b069cb9257b4cc"/></dir><dir name="multishipping"><file name="intelligentreach_integration.phtml" hash="206d1fe72ab530829ca274fd52e90108"/></dir></dir></dir></dir></dir></dir><dir name="default"><dir name="default"><dir name="layout"><file name="intelligentreach_integration.xml" hash="c45eb729e1e4b5025b25c20ac2723eeb"/></dir><dir name="template"><dir name="intelligentreach_integration"><file name="intelligentreach_integration.phtml" hash="cfcf6e1c2de50fa66258a820fb296775"/><dir name="product"><file name="intelligentreach_integration.phtml" hash="0d1f3ce4a57d977d8955176b01e2f87d"/></dir><dir name="basket"><file name="intelligentreach_integration.phtml" hash="983743acab4cd1c2819ea4fb6eebe0b5"/></dir><dir name="checkout"><dir name="onepage"><file name="intelligentreach_integration.phtml" hash="dfcfe625fadaf06fb3b069cb9257b4cc"/></dir><dir name="multishipping"><file name="intelligentreach_integration.phtml" hash="206d1fe72ab530829ca274fd52e90108"/></dir></dir></dir></dir></dir></dir></dir></dir></dir><dir name="ircronscripts"><file name="intelligentreach_integration_cron.php" hash="bbe02a83fd2be37f5eee75dd951d354c"/><file name="intelligentreach_integration_cron_pre.php" hash="be0edc6a2fd2b20eeb12710583db9be3"/><file name="intelligentreach_integration_cron_qty_price.php" hash="367a47749af6d98c653f200dff21b580"/></dir></dir></target></contents>
23
  <compatible/>
24
  <dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
25
  </package>