Listrak_Remarketing - Version 1.1.5

Version Notes

Added support for product brand and category.
Added support for configurable products.
Added support for WS-I compliant API.

Download this release

Release Info

Developer Magento Core Team
Extension Listrak_Remarketing
Version 1.1.5
Comparing to
See all releases


Code changes from version 1.1.4 to 1.1.5

Files changed (63) hide show
  1. app/code/community/Listrak/Remarketing/Block/Adminhtml/Abandonedcartreport.php +7 -7
  2. app/code/community/Listrak/Remarketing/Block/Adminhtml/Abandonedcartreport/Grid.php +86 -86
  3. app/code/community/Listrak/Remarketing/Block/Adminhtml/Emailcapture/Edit/Tab/Form.php +26 -26
  4. app/code/community/Listrak/Remarketing/Block/Adminhtml/Notifications.php +18 -10
  5. app/code/community/Listrak/Remarketing/Block/Adminhtml/Productattributes.php +48 -0
  6. app/code/community/Listrak/Remarketing/Block/Adminhtml/Productattributes/Edit.php +24 -0
  7. app/code/community/Listrak/Remarketing/Block/Adminhtml/Productattributes/Edit/Form.php +21 -0
  8. app/code/community/Listrak/Remarketing/Block/Adminhtml/Productattributes/Edit/Tab/Form/Brand.php +31 -0
  9. app/code/community/Listrak/Remarketing/Block/Adminhtml/Productattributes/Edit/Tab/Form/Categories.php +46 -0
  10. app/code/community/Listrak/Remarketing/Block/Adminhtml/Productattributes/Edit/Tabs.php +49 -0
  11. app/code/community/Listrak/Remarketing/Block/Adminhtml/Productattributes/Grid.php +79 -0
  12. app/code/community/Listrak/Remarketing/Block/Adminhtml/Productattributes/Init/Brands.php +31 -0
  13. app/code/community/Listrak/Remarketing/Block/Adminhtml/Productattributes/Init/Brands/Form.php +67 -0
  14. app/code/community/Listrak/Remarketing/Block/Ecjs.php +14 -14
  15. app/code/community/Listrak/Remarketing/Block/Modal.php +7 -7
  16. app/code/community/Listrak/Remarketing/Helper/Data.php +61 -33
  17. app/code/community/Listrak/Remarketing/Helper/Product.php +214 -0
  18. app/code/community/Listrak/Remarketing/Helper/Product/Attribute/Set/Map.php +42 -0
  19. app/code/community/Listrak/Remarketing/Model/Abandonedcart.php +5 -5
  20. app/code/community/Listrak/Remarketing/Model/Abandonedcart/Api.php +6 -4
  21. app/code/community/Listrak/Remarketing/Model/Apiextension/Api.php +278 -222
  22. app/code/community/Listrak/Remarketing/Model/Click.php +6 -6
  23. app/code/community/Listrak/Remarketing/Model/Click/Api.php +6 -6
  24. app/code/community/Listrak/Remarketing/Model/Emailcapture.php +4 -4
  25. app/code/community/Listrak/Remarketing/Model/Log.php +4 -4
  26. app/code/community/Listrak/Remarketing/Model/Log/Api.php +3 -3
  27. app/code/community/Listrak/Remarketing/Model/Mysql4/Abandonedcart.php +34 -34
  28. app/code/community/Listrak/Remarketing/Model/Mysql4/Abandonedcart/Collection.php +14 -14
  29. app/code/community/Listrak/Remarketing/Model/Mysql4/Click.php +19 -19
  30. app/code/community/Listrak/Remarketing/Model/Mysql4/Click/Collection.php +7 -7
  31. app/code/community/Listrak/Remarketing/Model/Mysql4/Emailcapture.php +6 -6
  32. app/code/community/Listrak/Remarketing/Model/Mysql4/Emailcapture/Collection.php +3 -3
  33. app/code/community/Listrak/Remarketing/Model/Mysql4/Log.php +6 -6
  34. app/code/community/Listrak/Remarketing/Model/Mysql4/Log/Collection.php +8 -8
  35. app/code/community/Listrak/Remarketing/Model/Mysql4/Product/Attribute/Set/Map.php +20 -0
  36. app/code/community/Listrak/Remarketing/Model/Mysql4/Product/Attribute/Set/Map/Collection.php +92 -0
  37. app/code/community/Listrak/Remarketing/Model/Mysql4/Review/Update.php +19 -19
  38. app/code/community/Listrak/Remarketing/Model/Mysql4/Session.php +22 -21
  39. app/code/community/Listrak/Remarketing/Model/Mysql4/Session/Collection.php +7 -7
  40. app/code/community/Listrak/Remarketing/Model/Mysql4/Subscriberupdate.php +6 -6
  41. app/code/community/Listrak/Remarketing/Model/Observer.php +73 -73
  42. app/code/community/Listrak/Remarketing/Model/Product/Attribute/Set/Map.php +81 -0
  43. app/code/community/Listrak/Remarketing/Model/Product/Attributes.php +37 -0
  44. app/code/community/Listrak/Remarketing/Model/Product/Category/Source.php +16 -0
  45. app/code/community/Listrak/Remarketing/Model/Review/Update.php +37 -37
  46. app/code/community/Listrak/Remarketing/Model/Session.php +4 -4
  47. app/code/community/Listrak/Remarketing/Model/Subscriber.php +12 -12
  48. app/code/community/Listrak/Remarketing/controllers/Adminhtml/AbandonedcartreportController.php +23 -23
  49. app/code/community/Listrak/Remarketing/controllers/Adminhtml/EmailcaptureController.php +101 -101
  50. app/code/community/Listrak/Remarketing/controllers/Adminhtml/ProductattributesController.php +142 -0
  51. app/code/community/Listrak/Remarketing/controllers/CartController.php +4 -5
  52. app/code/community/Listrak/Remarketing/etc/adminhtml.xml +18 -9
  53. app/code/community/Listrak/Remarketing/etc/config.xml +122 -116
  54. app/code/community/Listrak/Remarketing/etc/system.xml +114 -94
  55. app/code/community/Listrak/Remarketing/etc/wsdl.xml +888 -861
  56. app/code/community/Listrak/Remarketing/etc/wsi.xml +1142 -78
  57. app/code/community/Listrak/Remarketing/sql/listrak_remarketing_setup/mysql4-install-1.0.0.php +0 -14
  58. app/code/community/Listrak/Remarketing/sql/listrak_remarketing_setup/mysql4-upgrade-1.1.4-1.1.5.php +43 -0
  59. app/design/adminhtml/default/default/layout/remarketing.xml +5 -5
  60. app/design/adminhtml/default/default/template/listrak/remarketing/productattributes.phtml +21 -0
  61. app/design/adminhtml/default/default/template/listrak/remarketing/productattributes/form/categories.phtml +137 -0
  62. app/design/adminhtml/default/default/template/listrak/remarketing/productattributes/form/initbrands.phtml +44 -0
  63. package.xml +7 -5
app/code/community/Listrak/Remarketing/Block/Adminhtml/Abandonedcartreport.php CHANGED
@@ -4,12 +4,12 @@
4
 
5
  class Listrak_Remarketing_Block_Adminhtml_Abandonedcartreport extends Mage_Adminhtml_Block_Widget_Grid_Container
6
  {
7
- public function __construct()
8
- {
9
- $this->_controller = 'adminhtml_abandonedcartreport';
10
- $this->_blockGroup = 'remarketing';
11
- $this->_headerText = Mage::helper('remarketing')->__('Abandoned Carts');
12
- parent::__construct();
13
  $this->_removeButton('add');
14
- }
15
  }
4
 
5
  class Listrak_Remarketing_Block_Adminhtml_Abandonedcartreport extends Mage_Adminhtml_Block_Widget_Grid_Container
6
  {
7
+ public function __construct()
8
+ {
9
+ $this->_controller = 'adminhtml_abandonedcartreport';
10
+ $this->_blockGroup = 'remarketing';
11
+ $this->_headerText = Mage::helper('remarketing')->__('Abandoned Carts');
12
+ parent::__construct();
13
  $this->_removeButton('add');
14
+ }
15
  }
app/code/community/Listrak/Remarketing/Block/Adminhtml/Abandonedcartreport/Grid.php CHANGED
@@ -4,108 +4,108 @@
4
 
5
  class Listrak_Remarketing_Block_Adminhtml_Abandonedcartreport_Grid extends Mage_Adminhtml_Block_Widget_Grid
6
  {
7
- public function __construct()
8
- {
9
- parent::__construct();
10
- $this->setId('abandonedCartsGrid');
11
- $this->setDefaultSort('updated_at');
12
- $this->setDefaultDir('DESC');
13
- $this->setSaveParametersInSession(true);
14
- }
15
 
16
- protected function _prepareCollection()
17
- {
18
- $reportTimeout = Mage::getStoreConfig('remarketing/abandonedcarts/abandoned_cart_report_timeout') * 60;
19
 
20
- $startDate = gmdate('Y-m-d H:i:s', time() - $reportTimeout);
21
- $collection = Mage::getModel('listrak/abandonedcart')->getCollection()
22
  ->addFieldToFilter('main_table.updated_at',array('lt'=>$startDate));
23
  $collection->_prepareForReport = true;
24
 
25
- $this->setCollection($collection);
26
- return parent::_prepareCollection();
27
- }
28
 
29
- protected function _prepareColumns()
30
- {
31
- $this->addColumn('is_customer', array(
32
- 'header' =>Mage::helper('remarketing')->__('Registered'),
33
- 'index' =>'is_customer',
34
- 'width' =>'75px',
35
- 'sortable' => false,
36
- 'filter' => false
37
- ));
38
 
39
  $this->addColumn('session_id', array(
40
- 'header' =>Mage::helper('remarketing')->__('Session Id'),
41
- 'index' =>'session_id',
42
- 'width' =>'250px',
43
- 'sortable' => false,
44
- 'filter' => false
45
- ));
46
 
47
- $this->addColumn('customer_name', array(
48
- 'header' =>Mage::helper('remarketing')->__('Customer Name'),
49
- 'index' =>'customer_name',
50
- 'sortable' => false,
51
- 'filter' => false
52
- ));
53
 
54
- $this->addColumn('email', array(
55
- 'header' =>Mage::helper('remarketing')->__('Email'),
56
- 'index' =>'email',
57
- 'sortable' => false,
58
- 'filter' => false
59
- ));
60
 
61
- $this->addColumn('items_count', array(
62
- 'header' =>Mage::helper('remarketing')->__('# Items'),
63
- 'width' =>'80px',
64
- 'align' =>'right',
65
- 'index' =>'items_qty',
66
- 'sortable' =>false,
67
- 'type' =>'number',
68
- 'filter' => false
69
- ));
70
 
71
- $this->addColumn('total', array(
72
- 'header' =>Mage::helper('remarketing')->__('Total'),
73
- 'width' =>'80px',
74
- 'type' =>'currency',
75
- 'currency_code' => (string) Mage::getStoreConfig(Mage_Directory_Model_Currency::XML_PATH_CURRENCY_DEFAULT),
76
- 'index' =>'grand_total',
77
- 'sortable' =>false,
78
- 'renderer' =>'adminhtml/report_grid_column_renderer_currency',
79
- 'filter' => false
80
- ));
81
 
82
- $this->addColumn('created_at', array(
83
- 'header' =>Mage::helper('remarketing')->__('Creation Date'),
84
- 'width' =>'170px',
85
- 'type' =>'datetime',
86
- 'index' =>'created_at',
87
- //'filter_index'=>'main_table.created_at',
88
- 'sortable' =>false,
89
- 'filter' => false
90
- ));
91
 
92
- $this->addColumn('updated_at', array(
93
- 'header' =>Mage::helper('remarketing')->__('Abandon Date'),
94
- 'width' =>'170px',
95
- 'type' =>'datetime',
96
- 'index' =>'updated_at',
97
- //'filter_index'=>'main_table.updated_at',
98
- 'sortable' =>false,
99
- 'filter' => false
100
- ));
101
 
102
- return parent::_prepareColumns();
103
- }
104
 
105
- public function getRowUrl($row)
106
- {
107
- return FALSE;
108
- }
109
 
110
 
111
  }
4
 
5
  class Listrak_Remarketing_Block_Adminhtml_Abandonedcartreport_Grid extends Mage_Adminhtml_Block_Widget_Grid
6
  {
7
+ public function __construct()
8
+ {
9
+ parent::__construct();
10
+ $this->setId('abandonedCartsGrid');
11
+ $this->setDefaultSort('updated_at');
12
+ $this->setDefaultDir('DESC');
13
+ $this->setSaveParametersInSession(true);
14
+ }
15
 
16
+ protected function _prepareCollection()
17
+ {
18
+ $reportTimeout = Mage::getStoreConfig('remarketing/abandonedcarts/abandoned_cart_report_timeout') * 60;
19
 
20
+ $startDate = gmdate('Y-m-d H:i:s', time() - $reportTimeout);
21
+ $collection = Mage::getModel('listrak/abandonedcart')->getCollection()
22
  ->addFieldToFilter('main_table.updated_at',array('lt'=>$startDate));
23
  $collection->_prepareForReport = true;
24
 
25
+ $this->setCollection($collection);
26
+ return parent::_prepareCollection();
27
+ }
28
 
29
+ protected function _prepareColumns()
30
+ {
31
+ $this->addColumn('is_customer', array(
32
+ 'header' =>Mage::helper('remarketing')->__('Registered'),
33
+ 'index' =>'is_customer',
34
+ 'width' =>'75px',
35
+ 'sortable' => false,
36
+ 'filter' => false
37
+ ));
38
 
39
  $this->addColumn('session_id', array(
40
+ 'header' =>Mage::helper('remarketing')->__('Session Id'),
41
+ 'index' =>'session_id',
42
+ 'width' =>'250px',
43
+ 'sortable' => false,
44
+ 'filter' => false
45
+ ));
46
 
47
+ $this->addColumn('customer_name', array(
48
+ 'header' =>Mage::helper('remarketing')->__('Customer Name'),
49
+ 'index' =>'customer_name',
50
+ 'sortable' => false,
51
+ 'filter' => false
52
+ ));
53
 
54
+ $this->addColumn('email', array(
55
+ 'header' =>Mage::helper('remarketing')->__('Email'),
56
+ 'index' =>'email',
57
+ 'sortable' => false,
58
+ 'filter' => false
59
+ ));
60
 
61
+ $this->addColumn('items_count', array(
62
+ 'header' =>Mage::helper('remarketing')->__('# Items'),
63
+ 'width' =>'80px',
64
+ 'align' =>'right',
65
+ 'index' =>'items_qty',
66
+ 'sortable' =>false,
67
+ 'type' =>'number',
68
+ 'filter' => false
69
+ ));
70
 
71
+ $this->addColumn('total', array(
72
+ 'header' =>Mage::helper('remarketing')->__('Total'),
73
+ 'width' =>'80px',
74
+ 'type' =>'currency',
75
+ 'currency_code' => (string) Mage::getStoreConfig(Mage_Directory_Model_Currency::XML_PATH_CURRENCY_DEFAULT),
76
+ 'index' =>'grand_total',
77
+ 'sortable' =>false,
78
+ 'renderer' =>'adminhtml/report_grid_column_renderer_currency',
79
+ 'filter' => false
80
+ ));
81
 
82
+ $this->addColumn('created_at', array(
83
+ 'header' =>Mage::helper('remarketing')->__('Creation Date'),
84
+ 'width' =>'170px',
85
+ 'type' =>'datetime',
86
+ 'index' =>'created_at',
87
+ //'filter_index'=>'main_table.created_at',
88
+ 'sortable' =>false,
89
+ 'filter' => false
90
+ ));
91
 
92
+ $this->addColumn('updated_at', array(
93
+ 'header' =>Mage::helper('remarketing')->__('Abandon Date'),
94
+ 'width' =>'170px',
95
+ 'type' =>'datetime',
96
+ 'index' =>'updated_at',
97
+ //'filter_index'=>'main_table.updated_at',
98
+ 'sortable' =>false,
99
+ 'filter' => false
100
+ ));
101
 
102
+ return parent::_prepareColumns();
103
+ }
104
 
105
+ public function getRowUrl($row)
106
+ {
107
+ return FALSE;
108
+ }
109
 
110
 
111
  }
app/code/community/Listrak/Remarketing/Block/Adminhtml/Emailcapture/Edit/Tab/Form.php CHANGED
@@ -4,35 +4,35 @@
4
 
5
  class Listrak_Remarketing_Block_Adminhtml_EmailCapture_Edit_Tab_Form extends Mage_Adminhtml_Block_Widget_Form
6
  {
7
- protected function _prepareForm()
8
- {
9
- $form = new Varien_Data_Form();
10
- $this->setForm($form);
11
- $fieldset = $form->addFieldset('emailcapture_form', array('legend'=>Mage::helper('remarketing')->__('Field information')));
12
 
13
- $fieldset->addField('page', 'text', array(
14
- 'label' => Mage::helper('remarketing')->__('Page'),
15
- 'class' => 'required-entry',
16
- 'required' => true,
17
- 'name' => 'page',
18
- 'after_element_html' => '<p class="note"><span>For example: /checkout/onepage/index. Each URL has 3 parts. If yours does not have 3 parts, fill the last with "index". You can also use wildcard character "*" to capture field on all pages in the store.</span></p>'
19
- ));
20
 
21
- $fieldset->addField('field_id', 'text', array(
22
- 'label' => Mage::helper('remarketing')->__('Field ID'),
23
- 'name' => 'field_id',
24
  'required' => true,
25
  'class' => 'required-entry',
26
- 'after_element_html' => '<p class="note"><span>Field id attribute. You can check it in HTML code preview.</span></p>'
27
- ));
28
 
29
- if (Mage::getSingleton('adminhtml/session')->getEmailCaptureData())
30
- {
31
- $form->setValues(Mage::getSingleton('adminhtml/session')->getEmailCaptureData());
32
- Mage::getSingleton('adminhtml/session')->setEmailCaptureData(null);
33
- } elseif (Mage::registry('emailcapture_data')) {
34
- $form->setValues(Mage::registry('emailcapture_data')->getData());
35
- }
36
- return parent::_prepareForm();
37
- }
38
  }
4
 
5
  class Listrak_Remarketing_Block_Adminhtml_EmailCapture_Edit_Tab_Form extends Mage_Adminhtml_Block_Widget_Form
6
  {
7
+ protected function _prepareForm()
8
+ {
9
+ $form = new Varien_Data_Form();
10
+ $this->setForm($form);
11
+ $fieldset = $form->addFieldset('emailcapture_form', array('legend'=>Mage::helper('remarketing')->__('Field information')));
12
 
13
+ $fieldset->addField('page', 'text', array(
14
+ 'label' => Mage::helper('remarketing')->__('Page'),
15
+ 'class' => 'required-entry',
16
+ 'required' => true,
17
+ 'name' => 'page',
18
+ 'after_element_html' => '<p class="note"><span>For example: /checkout/onepage/index. Each URL has 3 parts. If yours does not have 3 parts, fill the last with "index". You can also use wildcard character "*" to capture field on all pages in the store.</span></p>'
19
+ ));
20
 
21
+ $fieldset->addField('field_id', 'text', array(
22
+ 'label' => Mage::helper('remarketing')->__('Field ID'),
23
+ 'name' => 'field_id',
24
  'required' => true,
25
  'class' => 'required-entry',
26
+ 'after_element_html' => '<p class="note"><span>Field id attribute. You can check it in HTML code preview.</span></p>'
27
+ ));
28
 
29
+ if (Mage::getSingleton('adminhtml/session')->getEmailCaptureData())
30
+ {
31
+ $form->setValues(Mage::getSingleton('adminhtml/session')->getEmailCaptureData());
32
+ Mage::getSingleton('adminhtml/session')->setEmailCaptureData(null);
33
+ } elseif (Mage::registry('emailcapture_data')) {
34
+ $form->setValues(Mage::registry('emailcapture_data')->getData());
35
+ }
36
+ return parent::_prepareForm();
37
+ }
38
  }
app/code/community/Listrak/Remarketing/Block/Adminhtml/Notifications.php CHANGED
@@ -4,17 +4,25 @@
4
 
5
  class Listrak_Remarketing_Block_Adminhtml_Notifications extends Mage_Core_Block_Text
6
  {
7
- protected function _toHtml()
8
- {
9
  $html = "";
10
 
11
- if(!Mage::helper('remarketing')->checkSetupStatus()) {
12
- $html = "<div class='notification-global'>The Listrak module requires a Listrak account. Please " .
13
- "<a href='http://www.listrak.com/partners/magento-extension.aspx'>fill out our form</a> to get an account. ".
14
- "If you already have a Listrak account, please contact your account manager " .
15
- "or <a href='mailto:support@listrak.com'>support@listrak.com</a>.</div>";
16
- }
17
 
18
- return $html;
19
- }
 
 
 
 
 
 
 
 
20
  }
4
 
5
  class Listrak_Remarketing_Block_Adminhtml_Notifications extends Mage_Core_Block_Text
6
  {
7
+ protected function _toHtml()
8
+ {
9
  $html = "";
10
 
11
+ if(!Mage::helper('remarketing')->checkSetupStatus()) {
12
+ $html .= "<div class='notification-global'>The Listrak module requires a Listrak account. Please " .
13
+ "<a href='http://www.listrak.com/partners/magento-extension.aspx'>fill out our form</a> to get an account. ".
14
+ "If you already have a Listrak account, please contact your account manager " .
15
+ "or <a href='mailto:support@listrak.com'>support@listrak.com</a>.</div>";
16
+ }
17
 
18
+ if (strpos(Mage::helper('core/url')->getCurrentUrl(), "/adminhtml_productattributes/") === false
19
+ && Mage::helper('remarketing')->displayAttributeSetNotification()
20
+ ) {
21
+ $html .= "<div class='notification-global'>Brand attribute has not been defined for one or more attribute sets. Please " .
22
+ "<a href='" . Mage::helper('adminhtml')->getUrl('remarketing/adminhtml_productattributes/index') . "'>click here</a>, " .
23
+ "or go to Listrak > Product Attributes to review your current settings.</div>";
24
+ }
25
+
26
+ return $html;
27
+ }
28
  }
app/code/community/Listrak/Remarketing/Block/Adminhtml/Productattributes.php ADDED
@@ -0,0 +1,48 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // Listrak Remarketing Magento Extension Ver. 1.1.5
3
+ // � 2013 Listrak, Inc.
4
+
5
+ class Listrak_Remarketing_Block_Adminhtml_ProductAttributes extends Mage_Adminhtml_Block_Widget_Container
6
+ {
7
+ public function __construct()
8
+ {
9
+ parent::__construct();
10
+ $this->_controller = 'adminhtml_productattributes';
11
+ $this->_removeButton('add');
12
+
13
+ $this->setTemplate('listrak/remarketing/productattributes.phtml');
14
+ }
15
+
16
+ public function _prepareLayout()
17
+ {
18
+ $this->setChild('grid', $this->getLayout()->createBlock('remarketing/adminhtml_productattributes_grid'));
19
+ $this->setChild('init_brands', $this->getLayout()->createBlock('remarketing/adminhtml_productattributes_init_brands'));
20
+ return parent::_prepareLayout();
21
+ }
22
+
23
+ public function getInitBrandsHtml()
24
+ {
25
+ return $this->getChildHtml('init_brands');
26
+ }
27
+
28
+ public function getGridHtml()
29
+ {
30
+ return $this->getChildHtml('grid');
31
+ }
32
+
33
+ public function setsWithoutBrandAttribute()
34
+ {
35
+ $sets = array();
36
+
37
+ $allSets = Mage::registry('productattribute_sets');
38
+ foreach($allSets as $set)
39
+ {
40
+ if ($set->getBrandAttributeCode() == null)
41
+ array_push($sets, $set);
42
+ }
43
+
44
+ return $sets;
45
+ }
46
+ }
47
+
48
+ ?>
app/code/community/Listrak/Remarketing/Block/Adminhtml/Productattributes/Edit.php ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // Listrak Remarketing Magento Extension Ver. 1.1.5
3
+ // � 2013 Listrak, Inc.
4
+
5
+ class Listrak_Remarketing_Block_Adminhtml_ProductAttributes_Edit extends Mage_Adminhtml_Block_Widget_Form_Container
6
+ {
7
+ public function __construct()
8
+ {
9
+ parent::__construct();
10
+
11
+ $this->_objectId = 'id';
12
+ $this->_blockGroup = 'remarketing';
13
+ $this->_controller = 'adminhtml_productattributes';
14
+
15
+ $this->_removeButton('delete');
16
+ }
17
+
18
+ public function getHeaderText()
19
+ {
20
+ return Mage::registry('productattribute_data')->getAttributeSetName();
21
+ }
22
+ }
23
+
24
+ ?>
app/code/community/Listrak/Remarketing/Block/Adminhtml/Productattributes/Edit/Form.php ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // Listrak Remarketing Magento Extension Ver. 1.1.5
3
+ // � 2013 Listrak, Inc.
4
+
5
+ class Listrak_Remarketing_Block_Adminhtml_Productattributes_Edit_Form extends Mage_Adminhtml_Block_Widget_Form
6
+ {
7
+ protected function _prepareForm()
8
+ {
9
+ $form = new Varien_Data_Form(array(
10
+ 'id' => 'edit_form',
11
+ 'action' => $this->getUrl('*/*/save', array('id' => $this->getRequest()->getParam('id'))),
12
+ 'method' => 'post',
13
+ ));
14
+
15
+ $form->setUseContainer(true);
16
+ $this->setForm($form);
17
+ return parent::_prepareForm();
18
+ }
19
+ }
20
+
21
+ ?>
app/code/community/Listrak/Remarketing/Block/Adminhtml/Productattributes/Edit/Tab/Form/Brand.php ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // Listrak Remarketing Magento Extension Ver. 1.1.5
3
+ // � 2013 Listrak, Inc.
4
+
5
+ class Listrak_Remarketing_Block_Adminhtml_Productattributes_Edit_Tab_Form_Brand extends Mage_Adminhtml_Block_Widget_Form
6
+ {
7
+ protected function _prepareForm()
8
+ {
9
+ $form = new Varien_Data_Form();
10
+ $this->setForm($form);
11
+ $fieldset = $form->addFieldset('productattribute_form', array('legend'=>Mage::helper('remarketing')->__('Field information')));
12
+
13
+ $attributeCodes = array();
14
+ $attributeCodes[''] = '- No Brand Attribute -';
15
+ foreach($this->getAttributeOptions() as $key => $value)
16
+ {
17
+ $attributeCodes[$key] = $value;
18
+ }
19
+
20
+ $fieldset->addField('brand_attribute', 'select', array(
21
+ 'label' => Mage::helper('remarketing')->__('Brand Attribute'),
22
+ 'name' => 'brand_attribute',
23
+ 'values' => $attributeCodes,
24
+ 'value' => Mage::registry('productattribute_data')->getBrandAttributeCode()
25
+ ));
26
+
27
+ return parent::_prepareForm();
28
+ }
29
+ }
30
+
31
+ ?>
app/code/community/Listrak/Remarketing/Block/Adminhtml/Productattributes/Edit/Tab/Form/Categories.php ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // Listrak Remarketing Magento Extension Ver. 1.1.5
3
+ // � 2013 Listrak, Inc.
4
+
5
+ class Listrak_Remarketing_Block_Adminhtml_Productattributes_Edit_Tab_Form_Categories extends Mage_Adminhtml_Block_Widget
6
+ {
7
+ public function __construct()
8
+ {
9
+ parent::__construct();
10
+ $this->setTemplate('listrak/remarketing/productattributes/form/categories.phtml');
11
+
12
+ $this->setModel(Mage::registry('productattribute_data'));
13
+ }
14
+
15
+ public function getCategoriesSource()
16
+ {
17
+ if ($this->getUseConfigCategoriesSource())
18
+ {
19
+ return $this->getConfigCategoriesSource();
20
+ }
21
+
22
+ return $this->getModel()->getCategoriesSource();
23
+ }
24
+
25
+ public function getConfigCategoriesSource()
26
+ {
27
+ return Mage::helper('remarketing')->categoriesSource();
28
+ }
29
+
30
+ public function getUseConfigCategoriesSource()
31
+ {
32
+ return $this->getModel()->getUseConfigCategoriesSource();
33
+ }
34
+
35
+ public function getCategoryAttributeCode()
36
+ {
37
+ return $this->getModel()->getCategoryAttributeCode();
38
+ }
39
+
40
+ public function getSubcategoryAttributeCode()
41
+ {
42
+ return $this->getModel()->getSubcategoryAttributeCode();
43
+ }
44
+ }
45
+
46
+ ?>
app/code/community/Listrak/Remarketing/Block/Adminhtml/Productattributes/Edit/Tabs.php ADDED
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // Listrak Remarketing Magento Extension Ver. 1.1.5
3
+ // � 2013 Listrak, Inc.
4
+
5
+ class Listrak_Remarketing_Block_Adminhtml_Productattributes_Edit_Tabs extends Mage_Adminhtml_Block_Widget_Tabs
6
+ {
7
+ public function __construct()
8
+ {
9
+ parent::__construct();
10
+
11
+ $this->setId('productattributes_map_tabs');
12
+ $this->setDestElementId('edit_form');
13
+ $this->setTitle(Mage::helper('remarketing')->__('Map Attributes'));
14
+ }
15
+
16
+ public function _prepareLayout()
17
+ {
18
+ $attributeCodes = $this->attributeSetAttributes(Mage::registry('productattribute_data')->getAttributeSetId());
19
+
20
+ $this->addTab('productattributes_brand', array(
21
+ 'label' => Mage::helper('remarketing')->__('Brand'),
22
+ 'content' => $this->getLayout()->createBlock('remarketing/adminhtml_productattributes_edit_tab_form_brand')->setAttributeOptions($attributeCodes)->toHtml()
23
+ ));
24
+
25
+ $this->addTab('productattributes_categories', array(
26
+ 'label' => Mage::helper('remarketing')->__('Category and Subcategory'),
27
+ 'content' => $this->getLayout()->createBlock('remarketing/adminhtml_productattributes_edit_tab_form_categories')->setAttributeOptions($attributeCodes)->toHtml()
28
+ ));
29
+ }
30
+
31
+ private function attributeSetAttributes($setId)
32
+ {
33
+ $collection = Mage::getResourceModel('catalog/product_attribute_collection')
34
+ ->setAttributeSetFilter($setId)
35
+ ->addVisibleFilter();
36
+
37
+ $attributes = array();
38
+ foreach($collection as $value)
39
+ {
40
+ $attributes[$value->getAttributeCode()] = $value->getFrontendLabel() . ' (' . $value->getAttributeCode() . ')';
41
+ }
42
+
43
+ asort($attributes);
44
+
45
+ return $attributes;
46
+ }
47
+ }
48
+
49
+ ?>
app/code/community/Listrak/Remarketing/Block/Adminhtml/Productattributes/Grid.php ADDED
@@ -0,0 +1,79 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // Listrak Remarketing Magento Extension Ver. 1.1.5
3
+ // � 2013 Listrak, Inc.
4
+
5
+ class Listrak_Remarketing_Block_Adminhtml_ProductAttributes_Grid extends Mage_Adminhtml_Block_Widget_Grid
6
+ {
7
+ public function __construct()
8
+ {
9
+ parent::__construct();
10
+ $this->setId('productattributesGrid');
11
+ $this->setDefaultSort('attribute_set_name');
12
+ $this->setDefaultDir('ASC');
13
+ $this->setSaveParametersInSession(false);
14
+ }
15
+
16
+ protected function _prepareCollection()
17
+ {
18
+ $collection = Mage::registry('productattribute_sets');
19
+
20
+ // prepare visible fields
21
+ foreach($collection as $item)
22
+ {
23
+ $item->setFrontendCategoriesSource($item->frontendCategoriesSource());
24
+ $item->setFrontendBrandAttribute($item->frontendBrandAttribute());
25
+ $item->setFrontendCategoryAttribute($item->frontendCategoryAttribute());
26
+ $item->setFrontendSubcategoryAttribute($item->frontendSubcategoryAttribute());
27
+ }
28
+
29
+ $this->setCollection($collection);
30
+ return parent::_prepareCollection();
31
+ }
32
+
33
+ protected function _prepareColumns()
34
+ {
35
+ $this->addColumn('attribute_set', array(
36
+ 'header' => Mage::helper('remarketing')->__('Attribute Set Name'),
37
+ 'align' => 'left',
38
+ 'index' => 'attribute_set_name',
39
+ 'filter' => false
40
+ ));
41
+
42
+ $this->addColumn('brand_attribute', array(
43
+ 'header' => Mage::helper('remarketing')->__('Brand Attribute'),
44
+ 'align' => 'left',
45
+ 'index' => 'frontend_brand_attribute',
46
+ 'filter' => false
47
+ ));
48
+
49
+ $this->addColumn('categories_source', array(
50
+ 'header' => Mage::helper('remarketing')->__('Category Source'),
51
+ 'align' => 'left',
52
+ 'index' => 'frontend_categories_source',
53
+ 'filter' => false
54
+ ));
55
+
56
+ $this->addColumn('category_attribute', array(
57
+ 'header' => Mage::helper('remarketing')->__('Category Attribute'),
58
+ 'align' => 'left',
59
+ 'index' => 'frontend_category_attribute',
60
+ 'filter' => false
61
+ ));
62
+
63
+ $this->addColumn('subcategory_attribute', array(
64
+ 'header' => Mage::helper('remarketing')->__('Subcategory Attribute'),
65
+ 'align' => 'left',
66
+ 'index' => 'frontend_subcategory_attribute',
67
+ 'filter' => false
68
+ ));
69
+
70
+ return parent::_prepareColumns();
71
+ }
72
+
73
+ public function getRowUrl($row)
74
+ {
75
+ return $this->getUrl('*/*/edit', array('id' => $row->getId()));
76
+ }
77
+ }
78
+
79
+ ?>
app/code/community/Listrak/Remarketing/Block/Adminhtml/Productattributes/Init/Brands.php ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // Listrak Remarketing Magento Extension Ver. 1.1.5
3
+ // � 2013 Listrak, Inc.
4
+
5
+ class Listrak_Remarketing_Block_Adminhtml_Productattributes_Init_Brands extends Mage_Adminhtml_Block_Template
6
+ {
7
+ public function __construct()
8
+ {
9
+ parent::__construct();
10
+ $this->setTemplate('listrak/remarketing/productattributes/form/initbrands.phtml');
11
+ }
12
+
13
+ public function _prepareLayout()
14
+ {
15
+ $this->setChild('form', $this->getLayout()->createBlock('remarketing/adminhtml_productattributes_init_brands_form'));
16
+ $this->setChild('form-elements', $this->getLayout()->createBlock('remarketing/adminhtml_productattributes_init_brands_form_attributes'));
17
+ return parent::_prepareLayout();
18
+ }
19
+
20
+ public function getFormHtml()
21
+ {
22
+ return $this->getChildHtml('form');
23
+ }
24
+
25
+ public function getFormElementsHtml()
26
+ {
27
+ return $this->getChildHtml('form-elements');
28
+ }
29
+ }
30
+
31
+ ?>
app/code/community/Listrak/Remarketing/Block/Adminhtml/Productattributes/Init/Brands/Form.php ADDED
@@ -0,0 +1,67 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // Listrak Remarketing Magento Extension Ver. 1.1.5
3
+ // � 2013 Listrak, Inc.
4
+
5
+ class Listrak_Remarketing_Block_Adminhtml_Productattributes_Init_Brands_Form extends Mage_Adminhtml_Block_Widget_Form
6
+ {
7
+ protected function _prepareForm()
8
+ {
9
+ $form = new Varien_Data_Form(array(
10
+ 'id' => 'bulk_form',
11
+ 'action' => $this->getUrl('*/*/bulkassign'),
12
+ 'method' => 'post'
13
+ ));
14
+
15
+ $attributeCodes = array();
16
+ $attributeCodes[''] = '- No Brand Attribute -';
17
+ foreach($this->availableAttributes() as $key => $value)
18
+ {
19
+ $attributeCodes[$key] = $value;
20
+ }
21
+
22
+ $form->addField('bulkassign_attribute', 'select', array(
23
+ 'label' => Mage::helper('remarketing')->__('Attribute'),
24
+ 'name' => 'bulkassign_attribute',
25
+ 'values' => $attributeCodes
26
+ ));
27
+
28
+ $form->addField('bulkassign_submit', 'button', array(
29
+ 'class' => 'form-button',
30
+ 'value' => Mage::helper('remarketing')->__('Set')
31
+ ));
32
+
33
+ $form->setUseContainer(true);
34
+ $this->setForm($form);
35
+ return parent::_prepareForm();
36
+ }
37
+
38
+ public function availableAttributes()
39
+ {
40
+ $everything = Mage::registry('productattribute_sets');
41
+ $attributes = array();
42
+
43
+ foreach($everything as $item)
44
+ {
45
+ if ($item->getBrandAttributeCode() == null)
46
+ {
47
+ //get the attributes for this attribute set and add them to the attributes array
48
+ $collection = Mage::getResourceModel('catalog/product_attribute_collection')
49
+ ->setAttributeSetFilter($item->getAttributeSetId())
50
+ ->addVisibleFilter();
51
+ foreach($collection as $attribute)
52
+ {
53
+ if (!array_key_exists($attribute->getAttributeCode(), $attributes))
54
+ {
55
+ $attributes[$attribute->getAttributeCode()] = $attribute->getFrontendLabel() . ' ('. $attribute->getAttributeCode() . ')';
56
+ }
57
+ }
58
+ }
59
+ }
60
+
61
+ asort($attributes);
62
+
63
+ return $attributes;
64
+ }
65
+ }
66
+
67
+ ?>
app/code/community/Listrak/Remarketing/Block/Ecjs.php CHANGED
@@ -5,10 +5,10 @@
5
  class Listrak_Remarketing_Block_Ecjs extends Mage_Core_Block_Text
6
  {
7
 
8
- public function getPageName()
9
- {
10
- return $this->_getData('page_name');
11
- }
12
 
13
  public function getMatchingPages()
14
  {
@@ -54,9 +54,9 @@ class Listrak_Remarketing_Block_Ecjs extends Mage_Core_Block_Text
54
 
55
  protected function _toHtml()
56
  {
57
- if (!Mage::helper('remarketing')->coreEnabled())
58
- return "";
59
-
60
  $collections = Mage::getModel('listrak/emailcapture')->getCollection()->addFieldToFilter('page', $this->getMatchingPages());
61
 
62
  if($collections && $collections->count()) {
@@ -67,12 +67,12 @@ class Listrak_Remarketing_Block_Ecjs extends Mage_Core_Block_Text
67
  $html[] = 'arrEcjs = [];';
68
  $html[] = 'function _ecjs(ecid,email) { new Ajax.Request("' . $this->getAjaxUrl() . '", {parameters:{cid: ecid, email: email}}); }';
69
  $html[] = 'function ecjsInit() {' .
70
- 'for(var ecjsi = 0; ecjsi < arrEcjs.length; ecjsi++) {' .
71
- 'if($(arrEcjs[ecjsi].id)) {' .
72
- '$(arrEcjs[ecjsi].id).stopObserving("change", arrEcjs[ecjsi].fn);' .
73
- '$(arrEcjs[ecjsi].id).observe("change", arrEcjs[ecjsi].fn);' .
74
- '}' .
75
- '}' .
76
  '}';
77
 
78
  foreach($collections as $observer) {
@@ -85,7 +85,7 @@ class Listrak_Remarketing_Block_Ecjs extends Mage_Core_Block_Text
85
  $html[] = 'document.observe("dom:loaded", function() { ecjsInit(); ';
86
  $html[] = 'Ajax.Responders.register({' .
87
  'onComplete: function() {' .
88
- 'ecjsInit();' .
89
  '}' .
90
  '});});';
91
 
5
  class Listrak_Remarketing_Block_Ecjs extends Mage_Core_Block_Text
6
  {
7
 
8
+ public function getPageName()
9
+ {
10
+ return $this->_getData('page_name');
11
+ }
12
 
13
  public function getMatchingPages()
14
  {
54
 
55
  protected function _toHtml()
56
  {
57
+ if (!Mage::helper('remarketing')->coreEnabled())
58
+ return "";
59
+
60
  $collections = Mage::getModel('listrak/emailcapture')->getCollection()->addFieldToFilter('page', $this->getMatchingPages());
61
 
62
  if($collections && $collections->count()) {
67
  $html[] = 'arrEcjs = [];';
68
  $html[] = 'function _ecjs(ecid,email) { new Ajax.Request("' . $this->getAjaxUrl() . '", {parameters:{cid: ecid, email: email}}); }';
69
  $html[] = 'function ecjsInit() {' .
70
+ 'for(var ecjsi = 0; ecjsi < arrEcjs.length; ecjsi++) {' .
71
+ 'if($(arrEcjs[ecjsi].id)) {' .
72
+ '$(arrEcjs[ecjsi].id).stopObserving("change", arrEcjs[ecjsi].fn);' .
73
+ '$(arrEcjs[ecjsi].id).observe("change", arrEcjs[ecjsi].fn);' .
74
+ '}' .
75
+ '}' .
76
  '}';
77
 
78
  foreach($collections as $observer) {
85
  $html[] = 'document.observe("dom:loaded", function() { ecjsInit(); ';
86
  $html[] = 'Ajax.Responders.register({' .
87
  'onComplete: function() {' .
88
+ 'ecjsInit();' .
89
  '}' .
90
  '});});';
91
 
app/code/community/Listrak/Remarketing/Block/Modal.php CHANGED
@@ -5,16 +5,16 @@
5
  class Listrak_Remarketing_Block_Modal extends Mage_Core_Block_Text
6
  {
7
 
8
- public function getPageName()
9
- {
10
- return $this->_getData('page_name');
11
- }
12
 
13
  protected function _toHtml()
14
  {
15
- if (!Mage::helper("remarketing")->coreEnabled())
16
- return "";
17
-
18
  $merchantID = Mage::getStoreConfig('remarketing/modal/listrakMerchantID');
19
  if(!Mage::getStoreConfig('remarketing/modal/enabled') || strlen(Mage::getStoreConfig('remarketing/modal/scriptLocation')) < 1 || strlen(trim($merchantID)) < 12) {
20
  return "";
5
  class Listrak_Remarketing_Block_Modal extends Mage_Core_Block_Text
6
  {
7
 
8
+ public function getPageName()
9
+ {
10
+ return $this->_getData('page_name');
11
+ }
12
 
13
  protected function _toHtml()
14
  {
15
+ if (!Mage::helper("remarketing")->coreEnabled())
16
+ return "";
17
+
18
  $merchantID = Mage::getStoreConfig('remarketing/modal/listrakMerchantID');
19
  if(!Mage::getStoreConfig('remarketing/modal/enabled') || strlen(Mage::getStoreConfig('remarketing/modal/scriptLocation')) < 1 || strlen(trim($merchantID)) < 12) {
20
  return "";
app/code/community/Listrak/Remarketing/Helper/Data.php CHANGED
@@ -4,48 +4,76 @@
4
 
5
  class Listrak_Remarketing_Helper_Data extends Mage_Core_Helper_Abstract
6
  {
 
 
 
 
 
 
 
 
 
 
 
 
 
7
  public function gen_uuid() {
8
- return sprintf( '%04x%04x-%04x-%04x-%04x-%04x%04x%04x',
9
- // 32 bits for "time_low"
10
- mt_rand( 0, 0xffff ), mt_rand( 0, 0xffff ),
11
 
12
- // 16 bits for "time_mid"
13
- mt_rand( 0, 0xffff ),
14
 
15
- // 16 bits for "time_hi_and_version",
16
- // four most significant bits holds version number 4
17
- mt_rand( 0, 0x0fff ) | 0x4000,
18
 
19
- // 16 bits, 8 bits for "clk_seq_hi_res",
20
- // 8 bits for "clk_seq_low",
21
- // two most significant bits holds zero and one for variant DCE1.1
22
- mt_rand( 0, 0x3fff ) | 0x8000,
23
 
24
- // 48 bits for "node"
25
- mt_rand( 0, 0xffff ), mt_rand( 0, 0xffff ), mt_rand( 0, 0xffff )
26
- );
27
  }
28
 
29
  public function checkSetupStatus() {
30
  return Mage::getStoreConfig('remarketing/config/account_created');
31
  }
32
-
33
- public function coreEnabled() {
34
- return Mage::getStoreConfig('remarketing/modules/core');
35
- }
36
-
37
- public function reviewsEnabled() {
38
- return Mage::getStoreConfig('remarketing/modules/reviews');
39
- }
40
-
41
- public function requireCoreEnabled() {
42
- if (!$this->coreEnabled())
43
- throw new Exception('Listrak core functionality has been turned off in the System Configuration.');
44
- }
45
-
46
- public function requireReviewsEnabled() {
47
- if (!$this->reviewsEnabled())
48
- throw new Exception('Listrak reviews API has been turned off in the System Configuration.');
49
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
50
  }
51
 
4
 
5
  class Listrak_Remarketing_Helper_Data extends Mage_Core_Helper_Abstract
6
  {
7
+ private $customer_groups;
8
+
9
+ public function setGroupNameAndGenderNameForCustomer($customer) {
10
+ if ($customer_groups == null) {
11
+ $customer_groups = array();
12
+ foreach (Mage::getModel('customer/group')->getCollection() as $group)
13
+ $customer_groups[$group['customer_group_id']] = $group['customer_group_code'];
14
+ }
15
+ if (array_key_exists($customer->getGroupId(), $customer_groups))
16
+ $customer->setGroupName($customer_groups[$customer->getGroupId()]);
17
+ $customer->setGenderName(Mage::getResourceSingleton('customer/customer')->getAttribute('gender')->getSource()->getOptionText($customer->getGender()));
18
+ }
19
+
20
  public function gen_uuid() {
21
+ return sprintf( '%04x%04x-%04x-%04x-%04x-%04x%04x%04x',
22
+ // 32 bits for "time_low"
23
+ mt_rand( 0, 0xffff ), mt_rand( 0, 0xffff ),
24
 
25
+ // 16 bits for "time_mid"
26
+ mt_rand( 0, 0xffff ),
27
 
28
+ // 16 bits for "time_hi_and_version",
29
+ // four most significant bits holds version number 4
30
+ mt_rand( 0, 0x0fff ) | 0x4000,
31
 
32
+ // 16 bits, 8 bits for "clk_seq_hi_res",
33
+ // 8 bits for "clk_seq_low",
34
+ // two most significant bits holds zero and one for variant DCE1.1
35
+ mt_rand( 0, 0x3fff ) | 0x8000,
36
 
37
+ // 48 bits for "node"
38
+ mt_rand( 0, 0xffff ), mt_rand( 0, 0xffff ), mt_rand( 0, 0xffff )
39
+ );
40
  }
41
 
42
  public function checkSetupStatus() {
43
  return Mage::getStoreConfig('remarketing/config/account_created');
44
  }
45
+
46
+ public function displayAttributeSetNotification() {
47
+ return (Mage::helper('remarketing/product_attribute_set_map')->newAttributeSetsCollection()->count() > 0);
48
+ }
49
+
50
+ public function coreEnabled() {
51
+ return Mage::getStoreConfig('remarketing/modules/core');
52
+ }
53
+
54
+ public function reviewsEnabled() {
55
+ return Mage::getStoreConfig('remarketing/modules/reviews');
56
+ }
57
+
58
+ public function requireCoreEnabled() {
59
+ if (!$this->coreEnabled())
60
+ throw new Exception('Listrak core functionality has been turned off in the System Configuration.');
61
+ }
62
+
63
+ public function requireReviewsEnabled() {
64
+ if (!$this->reviewsEnabled())
65
+ throw new Exception('Listrak reviews API has been turned off in the System Configuration.');
66
+ }
67
+
68
+ public function categoriesSource() {
69
+ return Mage::getStoreConfig('remarketing/productcategories/categories_source');
70
+ }
71
+
72
+ public function getCategoryRootIdForStore($storeId)
73
+ {
74
+ return Mage::getModel('core/store_group')
75
+ ->load(Mage::getModel('core/store')->load($storeId)->getGroupId())
76
+ ->getRootCategoryId();
77
+ }
78
  }
79
 
app/code/community/Listrak/Remarketing/Helper/Product.php ADDED
@@ -0,0 +1,214 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // Listrak Remarketing Magento Extension Ver. 1.1.5
3
+ // � 2013 Listrak, Inc.
4
+
5
+ class Listrak_Remarketing_Helper_Product extends Mage_Core_Helper_Abstract
6
+ {
7
+ private $parentsById = array();
8
+ private $attributeSets = null;
9
+ private $categoryNames = array();
10
+ private $baseDir = null;
11
+ private $baseMediaPath = null;
12
+ private $imageModel = null;
13
+
14
+ public function getProductEntity($product, $includeBrandAndCategory = true, $includeInventory = true, $includeConfigurableAttributes = true) {
15
+ $result = array();
16
+
17
+ $result['entity_id'] = $product->getEntityId();
18
+ $result['sku'] = $product->getSku();
19
+ $result['name'] = $product->getName();
20
+ $result['price'] = $product->getPrice();
21
+ $result['special_price'] = $product->getSpecialPrice();
22
+ $result['special_from_date'] = $product->getSpecialFromDate();
23
+ $result['special_to_date'] = $product->getSpecialToDate();
24
+ $result['cost'] = $product->getCost();
25
+ $result['description'] = $product->getDescription();
26
+ $result['short_description'] = $product->getShortDescription();
27
+ $result['weight'] = $product->getWeight();
28
+ $result['url_key'] = $product->getUrlKey();
29
+ if ($product->isVisibleInSiteVisibility())
30
+ $result['url_path'] = $product->getUrlPath();
31
+
32
+ $thumbnailProduct = $small_imageProduct = $imageProduct = $product;
33
+ $parentProduct = $this->getParentProduct($product);
34
+ if ($parentProduct != null)
35
+ {
36
+ $result['parent_id'] = $parentProduct->getEntityId();
37
+ $result['parent_sku'] = $parentProduct->getSku();
38
+
39
+ if (!$product->isVisibleInSiteVisibility()) {
40
+ $result['name'] = $parentProduct->getName();
41
+ $result['url_path'] = $parentProduct->getUrlPath();
42
+ $result['url_key'] = $parentProduct->getUrlKey();
43
+ }
44
+
45
+ $useParent = Mage_Catalog_Model_Product_Type::TYPE_CONFIGURABLE == $parentProduct->getTypeId() && Mage::getStoreConfig(Mage_Checkout_Block_Cart_Item_Renderer_Configurable::CONFIGURABLE_PRODUCT_IMAGE) == Mage_Checkout_Block_Cart_Item_Renderer_Configurable::USE_PARENT_IMAGE;
46
+ if (!$product->getData('image') || ($product->getData('image') == 'no_selection') || $useParent) $imageProduct = $parentProduct;
47
+ if (!$product->getData('small_image') || ($product->getData('small_image') == 'no_selection') || $useParent) $small_imageProduct = $parentProduct;
48
+ if (!$product->getData('thumbnail') || ($product->getData('thumbnail') == 'no_selection') || $useParent) $thumbnailProduct = $parentProduct;
49
+
50
+ if ($includeConfigurableAttributes && Mage_Catalog_Model_Product_Type::TYPE_CONFIGURABLE == $parentProduct->getTypeId())
51
+ foreach ($parentProduct->getTypeInstance(true)->getUsedProductAttributes($parentProduct) as $attribute)
52
+ {
53
+ if (!array_key_exists('configurable_attributes', $result)) $result['configurable_attributes'] = array();
54
+ $attr = array();
55
+ $attr['attribute_name'] = $attribute->getFrontend()->getLabel();
56
+ $attr['value'] = $product->getAttributeText($attribute->getAttributeCode());
57
+ $result['configurable_attributes'][] = $attr;
58
+ }
59
+ }
60
+ $result['image'] = $this->getProductImage($imageProduct, 'image');
61
+ $result['small_image'] = $this->getProductImage($small_imageProduct, 'small_image');
62
+ $result['thumbnail'] = $this->getProductImage($thumbnailProduct, 'thumbnail');
63
+
64
+ if ($includeBrandAndCategory)
65
+ {
66
+ $setSettings = $this->getProductAttributeSetSettings($product);
67
+
68
+ if ($setSettings['brandAttribute'] != null)
69
+ $result['brand'] = $product->getAttributeText($setSettings['brandAttribute']);
70
+
71
+ if ($setSettings['catFromMagento'])
72
+ {
73
+ $categories = $this->getCategoryIds($product, $categoryRootId);
74
+ if (array_key_exists('category_id', $categories))
75
+ {
76
+ $catId = $categories['category_id'];
77
+ if (!array_key_exists($catId, $categoryNames))
78
+ $categoryNames[$catId] = $this->getCategoryName($catId);
79
+
80
+ $result['category'] = $categoryNames[$catId];
81
+ }
82
+ if (array_key_exists('sub_category_id', $categories))
83
+ {
84
+ $catId = $categories['sub_category_id'];
85
+ if (!array_key_exists($catId, $categoryNames))
86
+ $categoryNames[$catId] = $this->getCategoryName($catId);
87
+
88
+ $result['sub_category'] = $categoryNames[$catId];
89
+ }
90
+ }
91
+ else if ($setSettings['catFromAttributes'])
92
+ {
93
+ if ($setSettings['categoryAttribute'] != null)
94
+ $result['category'] = $product->getAttributeText($setSettings['categoryAttribute']);
95
+
96
+ if ($setSettings['subcategoryAttribute'] != null)
97
+ $result['sub_category'] = $product->getAttributeText($setSettings['subcategoryAttribute']);
98
+ }
99
+ }
100
+
101
+ if ($includeInventory)
102
+ {
103
+ $result['in_stock'] = $product->isAvailable() ? "true" : "false";
104
+ $stockItem = $product->getStockItem();
105
+ if ($stockItem)
106
+ $result['qty_on_hand'] = $stockItem->getStockQty();
107
+ }
108
+
109
+ $result['type'] = $product->getTypeId();
110
+
111
+ return $result;
112
+ }
113
+
114
+
115
+ private function getProductImage($product, $imageType) {
116
+ if ($baseDir == null) $baseDir = Mage::getBaseDir();
117
+ if ($baseMediaPath == null) $baseMediaPath = Mage::getSingleton('catalog/product_media_config')->getBaseMediaPath();
118
+ if ($imageModel == null) $imageModel = Mage::getModel('catalog/product_image');
119
+ $imageModel->setDestinationSubdir($imageType);
120
+ try {
121
+ $imageModel->setBaseFile($product->getData($imageType));
122
+ $imageBaseFile = $imageModel->getBaseFile();
123
+ if (!(false === strpos($imageBaseFile, $baseMediaPath)))
124
+ return substr($imageBaseFile, strlen($baseMediaPath));
125
+ return '/../../..'.substr($imageBaseFile, strlen($baseDir));
126
+ }
127
+ catch (Exception $e) {
128
+ return null;
129
+ }
130
+ }
131
+
132
+ private function getParentProduct($product)
133
+ {
134
+ $parentIds = Mage::getModel('catalog/product_type_configurable')
135
+ ->getParentIdsByChild($product->getEntityId());
136
+
137
+ if (is_array($parentIds) && count($parentIds) > 0)
138
+ {
139
+ if (count($parentIds) > 1) Mage::getModel("listrak/log")->addException("Product has multiple parents: sku=" . $product->getSku() . " parentIds=" . implode(', ', $parentIds));
140
+
141
+ $parentId = $parentIds[0];
142
+ if ($parentId != null)
143
+ {
144
+ if (!array_key_exists($parentId, $parentsById))
145
+ $parentsById[$parentId] = Mage::getModel('catalog/product')
146
+ ->load($parentId);
147
+ return $parentsById[$parentId];
148
+ }
149
+ }
150
+
151
+ return null;
152
+ }
153
+
154
+ private function getProductAttributeSetSettings($product) {
155
+ if ($attributeSets == null) {
156
+ $categoryRootId = Mage::helper('remarketing')->getCategoryRootIdForStore($storeId);
157
+
158
+ $attributeSets = array(0 => array(
159
+ //default values
160
+ 'brandAttribute' => null,
161
+ 'catFromMagento' => true,
162
+ 'catFromAttributes' => false,
163
+ 'categoryAttribute' => null,
164
+ 'subcategoryAttribute' => null
165
+ ));
166
+
167
+ $attributeSetSettings = Mage::getModel('listrak/product_attribute_set_map')
168
+ ->getCollection();
169
+ foreach($attributeSetSettings as $setSettings)
170
+ {
171
+ $attributeSets[$setSettings->getAttributeSetId()] = array(
172
+ 'brandAttribute' => $setSettings->getBrandAttributeCode(),
173
+ 'catFromMagento' => $setSettings->finalCategoriesSource() == 'default',
174
+ 'catFromAttributes' => $setSettings->finalCategoriesSource() == 'attributes',
175
+ 'categoryAttribute' => $setSettings->getCategoryAttributeCode(),
176
+ 'subcategoryAttribute' => $setSettings->getSubcategoryAttributeCode()
177
+ );
178
+ }
179
+ }
180
+ return array_key_exists($product->getAttributeSetId(), $attributeSets) ? $attributeSets[$product->getAttributeSetId()] : $attributeSets[0];
181
+ }
182
+
183
+ private function getCategoryIds($product, $categoryRootId = null)
184
+ {
185
+ $categories = $product->getCategoryCollection();
186
+ $final = array();
187
+
188
+ foreach($categories as $category)
189
+ {
190
+ $pathIds = $category->getPathIds();
191
+ if ($categoryRootId == null || $pathIds[1] == $categoryRootId)
192
+ {
193
+ if (count($pathIds) > 2)
194
+ $final['category_id'] = $pathIds[2];
195
+ if (count($pathIds) > 3)
196
+ $final['sub_category_id'] = $pathIds[3];
197
+
198
+ break;
199
+ }
200
+ }
201
+
202
+ return $final;
203
+ }
204
+
205
+ private function getCategoryName($categoryId)
206
+ {
207
+ $category = Mage::getModel('catalog/category')
208
+ ->load($categoryId);
209
+
210
+ if ($category != null)
211
+ return $category->getName();
212
+ }
213
+ }
214
+ ?>
app/code/community/Listrak/Remarketing/Helper/Product/Attribute/Set/Map.php ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // Listrak Remarketing Magento Extension Ver. 1.1.5
3
+ // � 2013 Listrak, Inc.
4
+
5
+ class Listrak_Remarketing_Helper_Product_Attribute_Set_Map extends Mage_Core_Helper_Abstract
6
+ {
7
+ public function ensureDataConsistency()
8
+ {
9
+ $newSets = $this->newAttributeSetsCollection();
10
+
11
+ // add the new product attribute sets to our table
12
+ foreach($newSets as $set)
13
+ {
14
+ Mage::getModel('listrak/product_attribute_set_map')
15
+ ->setAttributeSetId($set->getAttributeSetId())
16
+ ->save();
17
+ }
18
+ }
19
+
20
+ public function newAttributeSetsCollection()
21
+ {
22
+ $r = Mage::getSingleton('core/resource');
23
+
24
+ // all product attribute sets
25
+ $allProductSets = Mage::getResourceModel('eav/entity_attribute_set_collection')
26
+ ->setEntityTypeFilter(Mage::getModel('catalog/product')->getResource()->getTypeId());
27
+
28
+ // the sets already in the table
29
+ $model = new Varien_Db_Select(Mage::getResourceModel('listrak/product_attribute_set_map')->getReadConnection());
30
+ $model
31
+ ->from(array('current' => $r->getTableName('listrak/product_attribute_set_map')))
32
+ ->where('main_table.attribute_set_id = current.attribute_set_id');
33
+
34
+ // new product attribute sets
35
+ $allProductSets->getSelect()
36
+ ->where('NOT EXISTS (' . $model . ')');
37
+
38
+ return $allProductSets;
39
+ }
40
+ }
41
+
42
+ ?>
app/code/community/Listrak/Remarketing/Model/Abandonedcart.php CHANGED
@@ -4,11 +4,11 @@
4
 
5
  class Listrak_Remarketing_Model_Abandonedcart extends Mage_Core_Model_Abstract
6
  {
7
- public function _construct()
8
- {
9
- parent::_construct();
10
- $this->_init('listrak/abandonedcart');
11
- }
12
 
13
  public function prepareForReport() {
14
  $session = $this->getSession();
4
 
5
  class Listrak_Remarketing_Model_Abandonedcart extends Mage_Core_Model_Abstract
6
  {
7
+ public function _construct()
8
+ {
9
+ parent::_construct();
10
+ $this->_init('listrak/abandonedcart');
11
+ }
12
 
13
  public function prepareForReport() {
14
  $session = $this->getSession();
app/code/community/Listrak/Remarketing/Model/Abandonedcart/Api.php CHANGED
@@ -4,9 +4,11 @@
4
 
5
  class Listrak_Remarketing_Model_Abandonedcart_Api extends Mage_Api_Model_Resource_Abstract {
6
 
7
- public function items($storeId = 1, $startDate = NULL, $endDate = NULL, $perPage, $page) {
8
- Mage::helper('remarketing')->requireCoreEnabled();
9
-
 
 
10
  if ($startDate === NULL || !strtotime($startDate)) {
11
  $this->_fault('incorrect_date');
12
  }
@@ -18,7 +20,7 @@ class Listrak_Remarketing_Model_Abandonedcart_Api extends Mage_Api_Model_Resourc
18
  $storeIdArray = explode(',', $storeId);
19
 
20
  $collection = Mage::getModel('listrak/abandonedcart')
21
- ->getCollection()
22
  ->addFieldToFilter('main_table.updated_at',array('from'=>$startDate, 'to'=>$endDate))
23
  ->setPageSize($perPage)->setCurPage($page)
24
  ->addStoreFilter($storeIdArray)
4
 
5
  class Listrak_Remarketing_Model_Abandonedcart_Api extends Mage_Api_Model_Resource_Abstract {
6
 
7
+ public function items($storeId = 1, $startDate = NULL, $endDate = NULL, $perPage, $page) {
8
+ Mage::helper('remarketing')->requireCoreEnabled();
9
+
10
+ Mage::app()->setCurrentStore($storeId);
11
+
12
  if ($startDate === NULL || !strtotime($startDate)) {
13
  $this->_fault('incorrect_date');
14
  }
20
  $storeIdArray = explode(',', $storeId);
21
 
22
  $collection = Mage::getModel('listrak/abandonedcart')
23
+ ->getCollection()
24
  ->addFieldToFilter('main_table.updated_at',array('from'=>$startDate, 'to'=>$endDate))
25
  ->setPageSize($perPage)->setCurPage($page)
26
  ->addStoreFilter($storeIdArray)
app/code/community/Listrak/Remarketing/Model/Apiextension/Api.php CHANGED
@@ -1,223 +1,279 @@
1
- <?php
2
- // Listrak Remarketing Magento Extension Ver. 1.0.0
3
- // © 2011 Listrak, Inc.
4
-
5
- class Listrak_Remarketing_Model_Apiextension_Api extends Mage_Api_Model_Resource_Abstract {
6
-
7
- public function products($storeId = 1, $perPage = 50, $page = 1) {
8
- Mage::helper('remarketing')->requireCoreEnabled();
9
-
10
- $collection = Mage::getModel('catalog/product')->getCollection()
11
- ->addStoreFilter($storeId)
12
- ->addAttributeToSelect('*')
13
- ->addFieldToFilter('type_id', array('neq'=>'configurable'))
14
- ->setPageSize($perPage)
15
- ->setCurPage($page);
16
-
17
- $subquery = Mage::getSingleton('core/resource')
18
- ->getConnection('core_read')
19
- ->select()
20
- ->from($collection->getTable('catalog/product_super_link'), array('product_id', 'parent_id'))
21
- ->group('product_id')
22
- ->having('COUNT(*) = 1');
23
-
24
- $collection->getSelect()
25
- ->joinLeft( array('psl'=>$subquery), 'e.entity_id = psl.product_id', array())
26
- ->joinLeft( array('pp'=>$collection->getTable('catalog/product')), 'psl.parent_id = pp.entity_id', array('parent_id' => 'pp.entity_id', 'parent_sku' => 'pp.sku'));
27
-
28
- $result = array();
29
- $productInfo = array('entity_id' => '', 'sku' => '', 'name' => '', 'price' => '',
30
- 'special_price' => '', 'special_from_date' => '', 'special_to_date' => '',
31
- 'cost' => '', 'description' => '', 'short_description' => '', 'weight' => '',
32
- 'url_key' => '', 'url_path' => '', 'image' => '', 'small_image' => '', 'thumbnail' => '',
33
- 'parent_id' => '', 'parent_sku' => '');
34
-
35
- foreach ($collection as $product) {
36
- $item = array_intersect_key($product->toArray(), $productInfo);
37
- $result[] = $item;
38
- }
39
-
40
- return $result;
41
- }
42
-
43
- public function subscribers($storeId = 1, $startDate = NULL, $perPage = 50, $page = 1) {
44
- Mage::helper('remarketing')->requireCoreEnabled();
45
-
46
- if ($startDate === NULL || !strtotime($startDate)) {
47
- $this->_fault('incorrect_date');
48
- }
49
-
50
- $result = array();
51
-
52
- $collection = Mage::getModel("listrak/apiextension")->getResource()->subscribers($storeId, $startDate, $perPage, $page);
53
-
54
- foreach($collection as $item) {
55
- $result[] = $item;
56
- }
57
-
58
- return $result;
59
- }
60
-
61
- public function subscribersPurge($endDate = NULL) {
62
- if ($endDate === NULL || !strtotime($endDate)) {
63
- $this->_fault('incorrect_date');
64
- }
65
-
66
- $collection = Mage::getModel("listrak/subscriberupdate")->getCollection()
67
- ->addFieldToFilter('updated_at', array('lt' => $endDate));
68
-
69
- $count = $collection->count();
70
-
71
- foreach($collection as $c) {
72
- $c->delete();
73
- }
74
-
75
- return $count;
76
- }
77
-
78
- public function customers($storeId = 1, $websiteId = 1, $perPage = 50, $page = 1) {
79
- Mage::helper('remarketing')->requireCoreEnabled();
80
-
81
- $collection = Mage::getModel('customer/customer')->getCollection()
82
- ->addFieldToFilter('store_id',$storeId)
83
- ->addAttributeToSelect('*')
84
- ->setPageSize($perPage)
85
- ->setCurPage($page);
86
-
87
- $results = array();
88
- $fields = array('entity_id' => '', 'firstname' => '', 'lastname' => '', 'email' => '', 'website_id' => '', 'store_id' => '');
89
-
90
- foreach($collection as $customer) {
91
- $item = $customer->toArray();
92
- $results[] = array_intersect_key($item, $fields);
93
- }
94
-
95
- return $results;
96
- }
97
-
98
- public function orderStatus($storeId = 1, $startDate = NULL, $endDate = NULL, $perPage = 50, $page = 1, $filters = NULL) {
99
- Mage::helper('remarketing')->requireCoreEnabled();
100
-
101
- $collection = Mage::getModel("sales/order")->getCollection()
102
- ->addFieldToFilter('store_id', $storeId)
103
- ->addAttributeToSelect('increment_id')
104
- ->addAttributeToSelect('updated_at')
105
- ->addAttributeToSelect('status')
106
- ->addFieldToFilter('updated_at',array('from'=>$startDate, 'to'=>$endDate))
107
- ->addFieldToFilter('status', array('neq'=>'pending'))
108
- ->setPageSize($perPage)->setCurPage($page)
109
- ->setOrder('updated_at', 'ASC');
110
-
111
- if (is_array($filters)) {
112
- try {
113
- foreach ($filters as $field => $value) {
114
- if (isset($this->_attributesMap['order'][$field])) {
115
- $field = $this->_attributesMap['order'][$field];
116
- }
117
-
118
- $collection->addFieldToFilter($field, $value);
119
- }
120
- } catch (Mage_Core_Exception $e) {
121
- $this->_fault('filters_invalid', $e->getMessage());
122
- }
123
- }
124
-
125
- $results = array();
126
-
127
- foreach($collection as $collectionItem) {
128
- $results[] = $collectionItem;
129
- }
130
-
131
- return $results;
132
- }
133
-
134
- public function orders($storeId = 1, $startDate = NULL, $endDate = NULL, $perPage = 50, $page = 1) {
135
- Mage::helper('remarketing')->requireCoreEnabled();
136
-
137
- if ($startDate === NULL || !strtotime($startDate)) {
138
- $this->_fault('incorrect_date');
139
- }
140
-
141
- if ($endDate === NULL || !strtotime($endDate)) {
142
- $this->_fault('incorrect_date');
143
- }
144
-
145
- $collection = Mage::getModel("sales/order")->getCollection()
146
- ->addAttributeToSelect('increment_id')
147
- ->addFieldToFilter('created_at',array('from'=>$startDate, 'to'=>$endDate))
148
- ->setPageSize($perPage)->setCurPage($page)
149
- ->addFieldToFilter('store_id', $storeId)
150
- ->setOrder('created_at', 'ASC');
151
-
152
-
153
- $apiModel = Mage::getModel("sales/order_api");
154
-
155
- $results = array();
156
-
157
- $info_fields = array('created_at'=>'', 'status'=>'', 'customer_firstname'=>'', 'customer_lastname'=>'',
158
- 'customer_email'=>'', 'order_id'=>'', 'subtotal'=>'', 'tax_amount'=>'', 'grand_total'=>'',
159
- 'shipping_amount'=>'', 'billing_firstname'=>'');
160
-
161
- $address_fields = array('firstname' => '', 'lastname' => '', 'company' => '', 'address1' => '',
162
- 'address2' => '', 'city' => '', 'region' => '', 'postcode' => '', 'country' => '');
163
-
164
- foreach($collection as $collectionItem) {
165
- $res = array();
166
- $item = $apiModel->info($collectionItem->getIncrementId());
167
- $res["info"] = array_intersect_key($item, $info_fields);
168
- $res["info"]["order_id"] = $collectionItem->getIncrementId();
169
- $res["shipping_address"] = array_intersect_key($item["shipping_address"], $address_fields);
170
- $res["billing_address"] = array_intersect_key($item["billing_address"], $address_fields);
171
- $res["product"] = array();
172
- foreach($item["items"] as $orderItem) {
173
- if($orderItem["product_type"] != "configurable")
174
- $res["product"][] = $orderItem;
175
- }
176
- $res["session"] = Mage::getModel("listrak/session")->load($item["quote_id"], 'quote_id');
177
- $results[] = $res;
178
- }
179
-
180
- return $results;
181
- }
182
-
183
- public function info() {
184
- $result = array();
185
- $result["magentoVersion"] = Mage::getVersion();
186
- $result["listrakSettings"] = array(
187
- "coreEnabled" => Mage::helper('remarketing')->coreEnabled() ? "true" : "false",
188
- "reviewsApiEnabled" => Mage::helper('remarketing')->reviewsEnabled() ? "true" : "false"
189
- );
190
- $result["ini"] = array();
191
-
192
- $subModel = Mage::getModel("newsletter/subscriber");
193
- $orderModel = Mage::getModel("sales/order");
194
- $productModel = Mage::getModel('catalog/product');
195
-
196
- $result["classes"] = get_class($subModel) .','. get_class($orderModel) .','. get_class($orderModel->getCollection()) .','.
197
- get_class($productModel) .','. get_class($productModel->getCollection());
198
-
199
- $ra = Mage::getSingleton('core/resource')->getConnection('core_read');
200
- $numSessions = $ra->fetchRow("select count(*) as c from " . Mage::getModel("listrak/session")->getResource()->getTable("listrak/session"));
201
- $numSubUpdates = $ra->fetchRow("select count(*) as c from " . Mage::getModel("listrak/subscriberupdate")->getResource()->getTable("listrak/subscriber_update"));
202
- $numClicks = $ra->fetchRow("select count(*) as c from " . Mage::getModel("listrak/click")->getResource()->getTable("listrak/click"));
203
-
204
- $result["counts"] = $numSessions['c'] .','. $numSubUpdates['c'] .','. $numClicks['c'];
205
-
206
- $result["modules"] = array();
207
- $modules = (array)Mage::getConfig()->getNode('modules')->children();
208
-
209
- foreach($modules as $key => $value) {
210
- $valueArray = $value->asCanonicalArray();
211
- $result["modules"][] = "name=$key, version=" . $valueArray["version"] .", isActive=" . $valueArray["active"];
212
- }
213
-
214
- $ini = array("session.gc_maxlifetime", "session.cookie_lifetime", "session.gc_divisor", "session.gc_probability");
215
-
216
- foreach($ini as $iniParam) {
217
- $result["ini"][] = "$iniParam=" . ini_get($iniParam);
218
- }
219
-
220
- return $result;
221
- }
222
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
223
 
1
+ <?php
2
+ // Listrak Remarketing Magento Extension Ver. 1.0.0
3
+ // © 2011 Listrak, Inc.
4
+
5
+ class Listrak_Remarketing_Model_Apiextension_Api extends Mage_Api_Model_Resource_Abstract {
6
+
7
+ public function products($storeId = 1, $perPage = 50, $page = 1)
8
+ {
9
+ Mage::helper('remarketing')->requireCoreEnabled();
10
+
11
+ Mage::app()->setCurrentStore($storeId);
12
+
13
+ $collection = Mage::getModel('catalog/product')->getCollection()
14
+ ->addStoreFilter($storeId)
15
+ ->addAttributeToSelect('*')
16
+ ->setPageSize($perPage)
17
+ ->setCurPage($page)
18
+ ->load();
19
+
20
+ Mage::getModel('cataloginventory/stock')->addItemsToProducts($collection);
21
+
22
+ $results = array();
23
+
24
+ foreach ($collection as $product)
25
+ $results[] = Mage::helper('remarketing/product')->getProductEntity($product);
26
+
27
+ return $results;
28
+ }
29
+
30
+ public function subscribers($storeId = 1, $startDate = NULL, $perPage = 50, $page = 1) {
31
+ Mage::helper('remarketing')->requireCoreEnabled();
32
+
33
+ if ($startDate === NULL || !strtotime($startDate)) {
34
+ $this->_fault('incorrect_date');
35
+ }
36
+
37
+ $result = array();
38
+
39
+ $collection = Mage::getModel("listrak/apiextension")->getResource()->subscribers($storeId, $startDate, $perPage, $page);
40
+
41
+ foreach($collection as $item) {
42
+ $result[] = $item;
43
+ }
44
+
45
+ return $result;
46
+ }
47
+
48
+ public function subscribersPurge($endDate = NULL) {
49
+ if ($endDate === NULL || !strtotime($endDate)) {
50
+ $this->_fault('incorrect_date');
51
+ }
52
+
53
+ $collection = Mage::getModel("listrak/subscriberupdate")->getCollection()
54
+ ->addFieldToFilter('updated_at', array('lt' => $endDate));
55
+
56
+ $count = $collection->count();
57
+
58
+ foreach($collection as $c) {
59
+ $c->delete();
60
+ }
61
+
62
+ return $count;
63
+ }
64
+
65
+ public function customers($storeId = 1, $websiteId = 1, $perPage = 50, $page = 1) {
66
+ Mage::helper('remarketing')->requireCoreEnabled();
67
+
68
+ Mage::app()->setCurrentStore($storeId);
69
+
70
+ $collection = Mage::getModel('customer/customer')->getCollection()
71
+ ->addFieldToFilter('store_id',$storeId)
72
+ ->addAttributeToSelect('*')
73
+ ->setPageSize($perPage)
74
+ ->setCurPage($page);
75
+
76
+ $results = array();
77
+
78
+ foreach($collection as $customer) {
79
+ $results[] = $this->getCustomerArray($customer);
80
+ }
81
+
82
+ return $results;
83
+ }
84
+
85
+ private function getCustomerArray($customer) {
86
+ $fields = array('entity_id' => '', 'firstname' => '', 'lastname' => '', 'email' => '', 'website_id' => '', 'store_id' => '', 'group_id' => '', 'gender_name' => '', 'dob' => '', 'group_name' => '');
87
+ Mage::helper('remarketing')->setGroupNameAndGenderNameForCustomer($customer);
88
+ return array_intersect_key($customer->toArray(), $fields);
89
+ }
90
+
91
+ public function orderStatus($storeId = 1, $startDate = NULL, $endDate = NULL, $perPage = 50, $page = 1, $filters = NULL) {
92
+ Mage::helper('remarketing')->requireCoreEnabled();
93
+
94
+ $collection = Mage::getModel("sales/order")->getCollection()
95
+ ->addFieldToFilter('store_id', $storeId)
96
+ ->addAttributeToSelect('increment_id')
97
+ ->addAttributeToSelect('updated_at')
98
+ ->addAttributeToSelect('status')
99
+ ->addFieldToFilter('updated_at',array('from'=>$startDate, 'to'=>$endDate))
100
+ ->addFieldToFilter('status', array('neq'=>'pending'))
101
+ ->setPageSize($perPage)->setCurPage($page)
102
+ ->setOrder('updated_at', 'ASC');
103
+
104
+ if (is_array($filters)) {
105
+ try {
106
+ foreach ($filters as $field => $value) {
107
+ if (isset($this->_attributesMap['order'][$field])) {
108
+ $field = $this->_attributesMap['order'][$field];
109
+ }
110
+
111
+ $collection->addFieldToFilter($field, $value);
112
+ }
113
+ } catch (Mage_Core_Exception $e) {
114
+ $this->_fault('filters_invalid', $e->getMessage());
115
+ }
116
+ }
117
+
118
+ $results = array();
119
+
120
+ foreach($collection as $collectionItem) {
121
+ $results[] = $collectionItem;
122
+ }
123
+
124
+ return $results;
125
+ }
126
+
127
+ public function orders($storeId = 1, $startDate = NULL, $endDate = NULL, $perPage = 50, $page = 1) {
128
+ Mage::helper('remarketing')->requireCoreEnabled();
129
+
130
+ Mage::app()->setCurrentStore($storeId);
131
+
132
+ if ($startDate === NULL || !strtotime($startDate)) {
133
+ $this->_fault('incorrect_date');
134
+ }
135
+
136
+ if ($endDate === NULL || !strtotime($endDate)) {
137
+ $this->_fault('incorrect_date');
138
+ }
139
+
140
+ $orders = Mage::getModel('sales/order')->getCollection()
141
+ ->addFieldToFilter('created_at', array('from'=>$startDate, 'to'=>$endDate))
142
+ ->addFieldToFilter('store_id', $storeId)
143
+ ->setPageSize($perPage)->setCurPage($page)
144
+ ->setOrder('created_at', 'ASC');
145
+
146
+ $results = array();
147
+
148
+ foreach($orders as $order) {
149
+ $result = array();
150
+ $result['info']['entity_id'] = $order->getEntityId();
151
+ $result['info']['order_id'] = $order->getIncrementId();
152
+ $result['info']['status'] = $order->getStatus();;
153
+ $result['info']['customer_firstname'] = $order->getCustomerFirstname();
154
+ $result['info']['customer_lastname'] = $order->getCustomerLastname();
155
+ $result['info']['customer_email'] = $order->getCustomerEmail();
156
+ $result['info']['subtotal'] = $order->getSubtotal();
157
+ $result['info']['tax_amount'] = $order->getTaxAmount();
158
+ $result['info']['shipping_amount'] = $order->getShippingAmount();
159
+ $result['info']['grand_total'] = $order->getGrandTotal();
160
+ $result['info']['billing_firstname'] = $order->getBillingFirstname();
161
+ $result['info']['created_at'] = $order->getCreatedAt();
162
+ $result['info']['updated_at'] = $order->getUpdatedAt();
163
+
164
+ $shipping = $order->getShippingAddress();
165
+ $result['shipping_address']['firstname'] = $shipping->getFirstname();
166
+ $result['shipping_address']['lastname'] = $shipping->getLastname();
167
+ $result['shipping_address']['company'] = $shipping->getCompany();
168
+ $result['shipping_address']['street'] = implode(', ', $shipping->getStreet());
169
+ $result['shipping_address']['city'] = $shipping->getCity();
170
+ $result['shipping_address']['region'] = $shipping->getRegion();
171
+ $result['shipping_address']['postcode'] = $shipping->getPostcode();
172
+ $result['shipping_address']['country'] = $shipping->getCountry();
173
+
174
+ $billing = $order->getbillingAddress();
175
+ $result['billing_address']['firstname'] = $billing->getFirstname();
176
+ $result['billing_address']['lastname'] = $billing->getLastname();
177
+ $result['billing_address']['company'] = $billing->getCompany();
178
+ $result['billing_address']['street'] = implode(', ', $billing->getStreet());
179
+ $result['billing_address']['city'] = $billing->getCity();
180
+ $result['billing_address']['region'] = $billing->getRegion();
181
+ $result['billing_address']['postcode'] = $billing->getPostcode();
182
+ $result['billing_address']['country'] = $billing->getCountry();
183
+
184
+ $result['session'] = Mage::getModel("listrak/session")->load($order->getQuoteId(), 'quote_id');
185
+
186
+ $result['product'] = array();
187
+ foreach($order->getAllItems() as $item) {
188
+ if($item->getParentItem()) continue;
189
+ $result['product'][] = $this->getOrderItemProductEntity($item, $storeId);
190
+ }
191
+ if ($order->getCustomerId()) {
192
+ $customer = Mage::getModel("customer/customer")->load($order->getCustomerId());
193
+ if ($customer) {
194
+ $result['customer'] = $this->getCustomerArray($customer);
195
+ }
196
+ }
197
+
198
+ $results[] = $result;
199
+ }
200
+
201
+ return $results;
202
+ }
203
+
204
+ private function getOrderItemProductEntity($item, $storeId)
205
+ {
206
+ $productModel = Mage::getModel('catalog/product')->load($item->getProductId());
207
+ $productType = $productModel->getTypeId();
208
+ $childrenItems = $item->getChildrenItems();
209
+ $childrenItemsCount = count($childrenItems);
210
+ if (Mage_Catalog_Model_Product_Type::TYPE_CONFIGURABLE == $productType && $childrenItemsCount > 0)
211
+ {
212
+ $productModel = Mage::getModel('catalog/product')->load($childrenItems[0]->getProductId());
213
+ }
214
+ $product = array();
215
+ if ($productModel != null)
216
+ {
217
+ $product['sku'] = $productModel->getSku();
218
+ $product['name'] = $productModel->getName();
219
+ $product['product_price'] = $productModel->getPrice();
220
+ }
221
+ else
222
+ {
223
+ $product['sku'] = $item->getProductOptionByCode('simple_sku') ? $item->getProductOptionByCode('simple_sku') : $item->getSku();
224
+ $product['name'] = $item->getName();
225
+ }
226
+ $product['price'] = $item->getPrice();
227
+ $product['qty_ordered'] = $item->getQtyOrdered();
228
+ if (Mage_Catalog_Model_Product_Type::TYPE_BUNDLE == $productType && $childrenItemsCount > 0)
229
+ {
230
+ $product['bundle_items'] = array();
231
+ foreach ($childrenItems as $childItem)
232
+ {
233
+ $product['bundle_items'][] = $this->getOrderItemProductEntity($childItem, $storeId);
234
+ }
235
+ }
236
+ return $product;
237
+ }
238
+
239
+ public function info() {
240
+ $result = array();
241
+ $result["magentoVersion"] = Mage::getVersion();
242
+ $result["listrakSettings"] = array(
243
+ "coreEnabled" => Mage::helper('remarketing')->coreEnabled() ? "true" : "false",
244
+ "reviewsApiEnabled" => Mage::helper('remarketing')->reviewsEnabled() ? "true" : "false"
245
+ );
246
+ $result["ini"] = array();
247
+
248
+ $subModel = Mage::getModel("newsletter/subscriber");
249
+ $orderModel = Mage::getModel("sales/order");
250
+ $productModel = Mage::getModel('catalog/product');
251
+
252
+ $result["classes"] = get_class($subModel) .','. get_class($orderModel) .','. get_class($orderModel->getCollection()) .','.
253
+ get_class($productModel) .','. get_class($productModel->getCollection());
254
+
255
+ $ra = Mage::getSingleton('core/resource')->getConnection('core_read');
256
+ $numSessions = $ra->fetchRow("select count(*) as c from " . Mage::getModel("listrak/session")->getResource()->getTable("listrak/session"));
257
+ $numSubUpdates = $ra->fetchRow("select count(*) as c from " . Mage::getModel("listrak/subscriberupdate")->getResource()->getTable("listrak/subscriber_update"));
258
+ $numClicks = $ra->fetchRow("select count(*) as c from " . Mage::getModel("listrak/click")->getResource()->getTable("listrak/click"));
259
+
260
+ $result["counts"] = $numSessions['c'] .','. $numSubUpdates['c'] .','. $numClicks['c'];
261
+
262
+ $result["modules"] = array();
263
+ $modules = (array)Mage::getConfig()->getNode('modules')->children();
264
+
265
+ foreach($modules as $key => $value) {
266
+ $valueArray = $value->asCanonicalArray();
267
+ $result["modules"][] = "name=$key, version=" . $valueArray["version"] .", isActive=" . $valueArray["active"];
268
+ }
269
+
270
+ $ini = array("session.gc_maxlifetime", "session.cookie_lifetime", "session.gc_divisor", "session.gc_probability");
271
+
272
+ foreach($ini as $iniParam) {
273
+ $result["ini"][] = "$iniParam=" . ini_get($iniParam);
274
+ }
275
+
276
+ return $result;
277
+ }
278
+ }
279
 
app/code/community/Listrak/Remarketing/Model/Click.php CHANGED
@@ -4,16 +4,16 @@
4
 
5
  class Listrak_Remarketing_Model_Click extends Mage_Core_Model_Abstract
6
  {
7
- public function _construct()
8
- {
9
- parent::_construct();
10
  $this->_init('listrak/click');
11
- }
12
 
13
  public function checkForClick() {
14
  foreach(Mage::app()->getRequest()->getParams() as $key => $value) {
15
- if(stripos($key, 'trk_') !== false) {
16
- $this->recordClick();
17
  break;
18
  }
19
  }
4
 
5
  class Listrak_Remarketing_Model_Click extends Mage_Core_Model_Abstract
6
  {
7
+ public function _construct()
8
+ {
9
+ parent::_construct();
10
  $this->_init('listrak/click');
11
+ }
12
 
13
  public function checkForClick() {
14
  foreach(Mage::app()->getRequest()->getParams() as $key => $value) {
15
+ if(stripos($key, 'trk_') !== false) {
16
+ $this->recordClick();
17
  break;
18
  }
19
  }
app/code/community/Listrak/Remarketing/Model/Click/Api.php CHANGED
@@ -4,10 +4,10 @@
4
 
5
  class Listrak_Remarketing_Model_Click_Api extends Mage_Api_Model_Resource_Abstract {
6
 
7
- public function items($storeId = 1, $startDate = NULL, $endDate = NULL, $perPage = 50, $page = 1) {
8
- Mage::helper('remarketing')->requireCoreEnabled();
9
-
10
- if ($startDate === NULL || !strtotime($startDate)) {
11
  $this->_fault('incorrect_date');
12
  }
13
 
@@ -15,7 +15,7 @@ class Listrak_Remarketing_Model_Click_Api extends Mage_Api_Model_Resource_Abstra
15
  $this->_fault('incorrect_date');
16
  }
17
 
18
- $clicks = Mage::getModel("listrak/click")->getCollection()
19
  ->addFieldToFilter('click_date',array('from'=>$startDate, 'to'=>$endDate))
20
  ->setPageSize($perPage)->setCurPage($page);
21
 
@@ -27,7 +27,7 @@ class Listrak_Remarketing_Model_Click_Api extends Mage_Api_Model_Resource_Abstra
27
  $result[] = $item;
28
  }
29
 
30
- return $result;
31
  }
32
 
33
  public function purge($storeId = 1, $endDate) {
4
 
5
  class Listrak_Remarketing_Model_Click_Api extends Mage_Api_Model_Resource_Abstract {
6
 
7
+ public function items($storeId = 1, $startDate = NULL, $endDate = NULL, $perPage = 50, $page = 1) {
8
+ Mage::helper('remarketing')->requireCoreEnabled();
9
+
10
+ if ($startDate === NULL || !strtotime($startDate)) {
11
  $this->_fault('incorrect_date');
12
  }
13
 
15
  $this->_fault('incorrect_date');
16
  }
17
 
18
+ $clicks = Mage::getModel("listrak/click")->getCollection()
19
  ->addFieldToFilter('click_date',array('from'=>$startDate, 'to'=>$endDate))
20
  ->setPageSize($perPage)->setCurPage($page);
21
 
27
  $result[] = $item;
28
  }
29
 
30
+ return $result;
31
  }
32
 
33
  public function purge($storeId = 1, $endDate) {
app/code/community/Listrak/Remarketing/Model/Emailcapture.php CHANGED
@@ -5,8 +5,8 @@
5
  class Listrak_Remarketing_Model_Emailcapture extends Mage_Core_Model_Abstract {
6
 
7
  public function _construct()
8
- {
9
- parent::_construct();
10
- $this->_init('listrak/emailcapture');
11
- }
12
  }
5
  class Listrak_Remarketing_Model_Emailcapture extends Mage_Core_Model_Abstract {
6
 
7
  public function _construct()
8
+ {
9
+ parent::_construct();
10
+ $this->_init('listrak/emailcapture');
11
+ }
12
  }
app/code/community/Listrak/Remarketing/Model/Log.php CHANGED
@@ -7,11 +7,11 @@ class Listrak_Remarketing_Model_Log extends Mage_Core_Model_Abstract
7
  const LOGTYPE_MESSAGE = 1;
8
  const LOGTYPE_EXCEPTION = 2;
9
 
10
- public function _construct()
11
- {
12
- parent::_construct();
13
  $this->_init('listrak/log');
14
- }
15
 
16
  public function addMessage($msg, $storeId = NULL) {
17
  if($storeId == NULL) {
7
  const LOGTYPE_MESSAGE = 1;
8
  const LOGTYPE_EXCEPTION = 2;
9
 
10
+ public function _construct()
11
+ {
12
+ parent::_construct();
13
  $this->_init('listrak/log');
14
+ }
15
 
16
  public function addMessage($msg, $storeId = NULL) {
17
  if($storeId == NULL) {
app/code/community/Listrak/Remarketing/Model/Log/Api.php CHANGED
@@ -4,8 +4,8 @@
4
 
5
  class Listrak_Remarketing_Model_Log_Api extends Mage_Api_Model_Resource_Abstract {
6
 
7
- public function items($storeId = 1, $startDate = NULL, $endDate = NULL, $perPage = 50, $page = 1, $logTypeId = 0) {
8
- if ($startDate === NULL || !strtotime($startDate)) {
9
  $this->_fault('incorrect_date');
10
  }
11
 
@@ -13,7 +13,7 @@ class Listrak_Remarketing_Model_Log_Api extends Mage_Api_Model_Resource_Abstract
13
  $this->_fault('incorrect_date');
14
  }
15
 
16
- $logs = Mage::getModel("listrak/log")->getCollection()
17
  ->addFieldToFilter('date_entered',array('from'=>$startDate, 'to'=>$endDate))
18
  ->setPageSize($perPage)->setCurPage($page)
19
  ->addStoreFilter($storeId);
4
 
5
  class Listrak_Remarketing_Model_Log_Api extends Mage_Api_Model_Resource_Abstract {
6
 
7
+ public function items($storeId = 1, $startDate = NULL, $endDate = NULL, $perPage = 50, $page = 1, $logTypeId = 0) {
8
+ if ($startDate === NULL || !strtotime($startDate)) {
9
  $this->_fault('incorrect_date');
10
  }
11
 
13
  $this->_fault('incorrect_date');
14
  }
15
 
16
+ $logs = Mage::getModel("listrak/log")->getCollection()
17
  ->addFieldToFilter('date_entered',array('from'=>$startDate, 'to'=>$endDate))
18
  ->setPageSize($perPage)->setCurPage($page)
19
  ->addStoreFilter($storeId);
app/code/community/Listrak/Remarketing/Model/Mysql4/Abandonedcart.php CHANGED
@@ -4,16 +4,16 @@
4
 
5
  class Listrak_Remarketing_Model_Mysql4_Abandonedcart extends Mage_Core_Model_Mysql4_Abstract
6
  {
7
- protected $_read;
8
 
9
- protected $_write;
10
 
11
- public function _construct()
12
- {
13
- $this->_init('listrak/session','id');
14
  $this->_read = $this->_getReadAdapter();
15
- $this->_write = $this->_getWriteAdapter();
16
- }
17
 
18
  protected function _afterLoad(Mage_Core_Model_Abstract $object) {
19
  $object->setSession(Mage::getModel("listrak/session")->load($object->getId()));
@@ -24,37 +24,37 @@ class Listrak_Remarketing_Model_Mysql4_Abandonedcart extends Mage_Core_Model_Mys
24
  }
25
 
26
  protected function loadCart(Mage_Core_Model_Abstract $object) {
27
- $product_fields = array(
28
- 'entity_id'=>'', 'sku'=>'', 'name'=>'',
29
- 'special_price' => '', 'special_from_date' => '', 'special_to_date' => '',
30
- 'cost'=>'', 'description'=>'',
31
- 'short_description'=>'', 'weight'=>'', 'url_key'=>'', 'url_path'=>'',
32
- 'image'=>'', 'small_image'=>'', 'thumbnail'=>'', 'qty'=>'');
33
-
34
- $fields = array(
35
- 'item_id' => 'q.item_id',
36
- 'quote_id' => 'q.quote_id',
37
- 'product_id' => 'q.product_id',
38
- 'qty' => 'q.qty',
39
- 'price' => 'q.price');
40
-
41
  $products = array();
42
 
43
- $qiSelect = $this->_read->select()
44
- ->from(array('q' => $this->getTable('sales/quote_item')), $fields)
45
- ->where('q.quote_id = ?', $object->getQuoteId())
46
- ->where('q.product_type <> "configurable"');
47
-
48
- $qiResult = $this->_read->fetchAll($qiSelect);
49
-
50
- foreach($qiResult as $qi) {
51
- $product = Mage::getModel('catalog/product')->load($qi['product_id']);
52
- $qitem = array_intersect_key($product->toArray(),$product_fields);
53
- $qitem["qty"] = $qi["qty"];
54
- $qitem["price"] = $qi["price"];
55
- $products[] = $qitem;
56
  }
57
 
58
  $object->setProducts($products);
59
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
60
  }
4
 
5
  class Listrak_Remarketing_Model_Mysql4_Abandonedcart extends Mage_Core_Model_Mysql4_Abstract
6
  {
7
+ protected $_read;
8
 
9
+ protected $_write;
10
 
11
+ public function _construct()
12
+ {
13
+ $this->_init('listrak/session','id');
14
  $this->_read = $this->_getReadAdapter();
15
+ $this->_write = $this->_getWriteAdapter();
16
+ }
17
 
18
  protected function _afterLoad(Mage_Core_Model_Abstract $object) {
19
  $object->setSession(Mage::getModel("listrak/session")->load($object->getId()));
24
  }
25
 
26
  protected function loadCart(Mage_Core_Model_Abstract $object) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27
  $products = array();
28
 
29
+ foreach(Mage::getModel('sales/quote')->load($object->getQuoteId())->getAllVisibleItems() as $item) {
30
+ $products[] = $this->getCartProductEntity($item, $object->getStoreId());
 
 
 
 
 
 
 
 
 
 
 
31
  }
32
 
33
  $object->setProducts($products);
34
  }
35
+
36
+ private function getCartProductEntity($item, $storeId)
37
+ {
38
+ $productModel = Mage::getModel('catalog/product')->load($item->getProductId());
39
+ $productType = $productModel->getTypeId();
40
+ $children = $item->getChildren();
41
+ $childrenCount = count($children);
42
+ if (Mage_Catalog_Model_Product_Type::TYPE_CONFIGURABLE == $productType && $childrenCount > 0)
43
+ {
44
+ $productModel = Mage::getModel('catalog/product')->load($children[0]->getProductId());
45
+ }
46
+ $product = Mage::helper('remarketing/product')->getProductEntity($productModel, false, false, false);
47
+ $product["qty"] = $item->getQty();
48
+ $product["price"] = $item->getCalculationPrice();
49
+ if (Mage_Catalog_Model_Product_Type::TYPE_BUNDLE == $productType && $childrenCount > 0)
50
+ {
51
+ $product['bundle_items'] = array();
52
+ foreach ($children as $child)
53
+ {
54
+ $product['bundle_items'][] = $this->getCartProductEntity($child, $storeId);
55
+ }
56
+ }
57
+ return $product;
58
+ }
59
+
60
  }
app/code/community/Listrak/Remarketing/Model/Mysql4/Abandonedcart/Collection.php CHANGED
@@ -6,31 +6,31 @@ class Listrak_Remarketing_Model_Mysql4_Abandonedcart_Collection extends Mage_Cor
6
  {
7
  public $_prepareForReport = false;
8
 
9
- protected function _construct()
10
- {
11
- $this->_init('listrak/abandonedcart');
12
- }
13
 
14
  protected function _initSelect()
15
- {
16
- parent::_initSelect();
17
 
18
- $this->getSelect()
19
- ->join(array('q'=>$this->getTable('sales/quote')),
20
  'main_table.quote_id = q.entity_id',
21
  array('items_qty','grand_total'))
22
  ->where('q.items_count > 0 AND q.is_active = 1');
23
  }
24
 
25
  public function addStoreFilter($storeIds)
26
- {
27
- $this->getSelect()->where('main_table.store_id IN (?)', $storeIds);
28
- return $this;
29
- }
30
 
31
  protected function _afterLoad() {
32
- foreach ($this->_items as $item) {
33
- $item->afterLoad();
34
  if($this->_prepareForReport === true) {
35
  $item->prepareForReport();
36
  }
6
  {
7
  public $_prepareForReport = false;
8
 
9
+ protected function _construct()
10
+ {
11
+ $this->_init('listrak/abandonedcart');
12
+ }
13
 
14
  protected function _initSelect()
15
+ {
16
+ parent::_initSelect();
17
 
18
+ $this->getSelect()
19
+ ->join(array('q'=>$this->getTable('sales/quote')),
20
  'main_table.quote_id = q.entity_id',
21
  array('items_qty','grand_total'))
22
  ->where('q.items_count > 0 AND q.is_active = 1');
23
  }
24
 
25
  public function addStoreFilter($storeIds)
26
+ {
27
+ $this->getSelect()->where('main_table.store_id IN (?)', $storeIds);
28
+ return $this;
29
+ }
30
 
31
  protected function _afterLoad() {
32
+ foreach ($this->_items as $item) {
33
+ $item->afterLoad();
34
  if($this->_prepareForReport === true) {
35
  $item->prepareForReport();
36
  }
app/code/community/Listrak/Remarketing/Model/Mysql4/Click.php CHANGED
@@ -4,43 +4,43 @@
4
 
5
  class Listrak_Remarketing_Model_Mysql4_Click extends Mage_Core_Model_Mysql4_Abstract {
6
 
7
- protected $_read;
8
 
9
- protected $_write;
10
 
11
  protected function _construct()
12
- {
13
- $this->_init('listrak/click', 'click_id');
14
  $this->_read = $this->_getReadAdapter();
15
- $this->_write = $this->_getWriteAdapter();
16
- }
17
 
18
  public function loadByQuoteId($quoteId) {
19
  $select = $this->_read->select()
20
- ->from($this->getTable('listrak/session'))
21
- ->where('quote_id=?',$quoteId)
22
  ->join(array('c'=>$this->getTable('listrak/click')),
23
  'id = c.session_id',
24
  array());
25
 
26
- if($result = $this->_read->fetchAll($select)) {
27
- return $result;
28
- }
29
 
30
  return array();
31
  }
32
 
33
  public function loadLatestByQuoteId($quoteId) {
34
  $select = $this->_read->select()
35
- ->from(array('c'=>$this->getTable('listrak/click')))
36
  ->joinInner(array('s'=>$this->getTable('listrak/session')), 's.id = c.session_id', array())
37
  ->where('s.quote_id = ?', $quoteId)
38
  ->order('click_id', 'desc')
39
  ->limit(0,1);
40
 
41
- if($result = $this->_read->fetchRow($select)) {
42
- return $result;
43
- }
44
  else {
45
  return NULL;
46
  }
@@ -48,15 +48,15 @@ class Listrak_Remarketing_Model_Mysql4_Click extends Mage_Core_Model_Mysql4_Abst
48
 
49
  public function loadLatestBySessionId($sid) {
50
  $select = $this->_read->select()
51
- ->from(array('c'=>$this->getTable('listrak/click')))
52
  ->joinInner(array('s'=>$this->getTable('listrak/session')), 's.id = c.session_id', array())
53
  ->where('s.session_id = ?', $sid)
54
  ->order('click_id', 'desc')
55
  ->limit(0,1);
56
 
57
- if($result = $this->_read->fetchRow($select)) {
58
- return $result;
59
- }
60
  else {
61
  return NULL;
62
  }
4
 
5
  class Listrak_Remarketing_Model_Mysql4_Click extends Mage_Core_Model_Mysql4_Abstract {
6
 
7
+ protected $_read;
8
 
9
+ protected $_write;
10
 
11
  protected function _construct()
12
+ {
13
+ $this->_init('listrak/click', 'click_id');
14
  $this->_read = $this->_getReadAdapter();
15
+ $this->_write = $this->_getWriteAdapter();
16
+ }
17
 
18
  public function loadByQuoteId($quoteId) {
19
  $select = $this->_read->select()
20
+ ->from($this->getTable('listrak/session'))
21
+ ->where('quote_id=?',$quoteId)
22
  ->join(array('c'=>$this->getTable('listrak/click')),
23
  'id = c.session_id',
24
  array());
25
 
26
+ if($result = $this->_read->fetchAll($select)) {
27
+ return $result;
28
+ }
29
 
30
  return array();
31
  }
32
 
33
  public function loadLatestByQuoteId($quoteId) {
34
  $select = $this->_read->select()
35
+ ->from(array('c'=>$this->getTable('listrak/click')))
36
  ->joinInner(array('s'=>$this->getTable('listrak/session')), 's.id = c.session_id', array())
37
  ->where('s.quote_id = ?', $quoteId)
38
  ->order('click_id', 'desc')
39
  ->limit(0,1);
40
 
41
+ if($result = $this->_read->fetchRow($select)) {
42
+ return $result;
43
+ }
44
  else {
45
  return NULL;
46
  }
48
 
49
  public function loadLatestBySessionId($sid) {
50
  $select = $this->_read->select()
51
+ ->from(array('c'=>$this->getTable('listrak/click')))
52
  ->joinInner(array('s'=>$this->getTable('listrak/session')), 's.id = c.session_id', array())
53
  ->where('s.session_id = ?', $sid)
54
  ->order('click_id', 'desc')
55
  ->limit(0,1);
56
 
57
+ if($result = $this->_read->fetchRow($select)) {
58
+ return $result;
59
+ }
60
  else {
61
  return NULL;
62
  }
app/code/community/Listrak/Remarketing/Model/Mysql4/Click/Collection.php CHANGED
@@ -4,15 +4,15 @@
4
 
5
  class Listrak_Remarketing_Model_Mysql4_Click_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract
6
  {
7
-
8
- protected function _construct()
9
- {
10
- $this->_init('listrak/click');
11
- }
12
 
13
  public function addStoreFilter($storeId)
14
- {
15
- $this->getSelect()
16
  ->join(array('s'=>$this->getTable('listrak/session')), 'main_table.session_id = s.id', array('store_id', 'session_id as session_uid', 'pi_id'))
17
  ->where('s.store_id IN (?)',$storeId);
18
  return $this;
4
 
5
  class Listrak_Remarketing_Model_Mysql4_Click_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract
6
  {
7
+
8
+ protected function _construct()
9
+ {
10
+ $this->_init('listrak/click');
11
+ }
12
 
13
  public function addStoreFilter($storeId)
14
+ {
15
+ $this->getSelect()
16
  ->join(array('s'=>$this->getTable('listrak/session')), 'main_table.session_id = s.id', array('store_id', 'session_id as session_uid', 'pi_id'))
17
  ->where('s.store_id IN (?)',$storeId);
18
  return $this;
app/code/community/Listrak/Remarketing/Model/Mysql4/Emailcapture.php CHANGED
@@ -4,14 +4,14 @@
4
 
5
  class Listrak_Remarketing_Model_Mysql4_Emailcapture extends Mage_Core_Model_Mysql4_Abstract {
6
 
7
- protected $_read;
8
 
9
- protected $_write;
10
 
11
  protected function _construct()
12
- {
13
- $this->_init('listrak/emailcapture', 'emailcapture_id');
14
  $this->_read = $this->_getReadAdapter();
15
- $this->_write = $this->_getWriteAdapter();
16
- }
17
  }
4
 
5
  class Listrak_Remarketing_Model_Mysql4_Emailcapture extends Mage_Core_Model_Mysql4_Abstract {
6
 
7
+ protected $_read;
8
 
9
+ protected $_write;
10
 
11
  protected function _construct()
12
+ {
13
+ $this->_init('listrak/emailcapture', 'emailcapture_id');
14
  $this->_read = $this->_getReadAdapter();
15
+ $this->_write = $this->_getWriteAdapter();
16
+ }
17
  }
app/code/community/Listrak/Remarketing/Model/Mysql4/Emailcapture/Collection.php CHANGED
@@ -5,7 +5,7 @@
5
  class Listrak_Remarketing_Model_Mysql4_Emailcapture_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract {
6
 
7
  protected function _construct()
8
- {
9
- $this->_init('listrak/emailcapture');
10
- }
11
  }
5
  class Listrak_Remarketing_Model_Mysql4_Emailcapture_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract {
6
 
7
  protected function _construct()
8
+ {
9
+ $this->_init('listrak/emailcapture');
10
+ }
11
  }
app/code/community/Listrak/Remarketing/Model/Mysql4/Log.php CHANGED
@@ -4,14 +4,14 @@
4
 
5
  class Listrak_Remarketing_Model_Mysql4_Log extends Mage_Core_Model_Mysql4_Abstract {
6
 
7
- protected $_read;
8
 
9
- protected $_write;
10
 
11
  protected function _construct()
12
- {
13
- $this->_init('listrak/log', 'id');
14
  $this->_read = $this->_getReadAdapter();
15
- $this->_write = $this->_getWriteAdapter();
16
- }
17
  }
4
 
5
  class Listrak_Remarketing_Model_Mysql4_Log extends Mage_Core_Model_Mysql4_Abstract {
6
 
7
+ protected $_read;
8
 
9
+ protected $_write;
10
 
11
  protected function _construct()
12
+ {
13
+ $this->_init('listrak/log', 'id');
14
  $this->_read = $this->_getReadAdapter();
15
+ $this->_write = $this->_getWriteAdapter();
16
+ }
17
  }
app/code/community/Listrak/Remarketing/Model/Mysql4/Log/Collection.php CHANGED
@@ -4,14 +4,14 @@
4
 
5
  class Listrak_Remarketing_Model_Mysql4_Log_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract
6
  {
7
- protected function _construct()
8
- {
9
- $this->_init('listrak/log');
10
- }
11
 
12
  public function addStoreFilter($storeIds)
13
- {
14
- $this->getSelect()->where('main_table.store_id IN (?)', $storeIds);
15
- return $this;
16
- }
17
  }
4
 
5
  class Listrak_Remarketing_Model_Mysql4_Log_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract
6
  {
7
+ protected function _construct()
8
+ {
9
+ $this->_init('listrak/log');
10
+ }
11
 
12
  public function addStoreFilter($storeIds)
13
+ {
14
+ $this->getSelect()->where('main_table.store_id IN (?)', $storeIds);
15
+ return $this;
16
+ }
17
  }
app/code/community/Listrak/Remarketing/Model/Mysql4/Product/Attribute/Set/Map.php ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // Listrak Remarketing Magento Extension Ver. 1.1.5
3
+ // � 2013 Listrak, Inc.
4
+
5
+ class Listrak_Remarketing_Model_Mysql4_Product_Attribute_Set_Map extends Mage_Core_Model_Mysql4_Abstract {
6
+
7
+ protected $_read;
8
+
9
+ protected $_write;
10
+
11
+ protected function _construct()
12
+ {
13
+ $this->_init('listrak/product_attribute_set_map', 'map_id');
14
+ $this->_read = $this->_getReadAdapter();
15
+ $this->_write = $this->_getWriteAdapter();
16
+ }
17
+
18
+ }
19
+
20
+ ?>
app/code/community/Listrak/Remarketing/Model/Mysql4/Product/Attribute/Set/Map/Collection.php ADDED
@@ -0,0 +1,92 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // Listrak Remarketing Magento Extension Ver. 1.1.5
3
+ // � 2013 Listrak, Inc.
4
+
5
+ class Listrak_Remarketing_Model_Mysql4_Product_Attribute_Set_Map_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract
6
+ {
7
+ // so we don't go getting it all the time
8
+ private $_productTypeId;
9
+
10
+ protected function _construct() {
11
+ $this->_init('listrak/product_attribute_set_map');
12
+ $this->_productTypeId = Mage::getModel('catalog/product')->getResource()->getTypeId();
13
+ }
14
+
15
+ public function addMapIdFilter($ids)
16
+ {
17
+ $this->getSelect()->where('map_id IN ('. $ids . ')');
18
+
19
+ return $this;
20
+ }
21
+
22
+ public function addAttributeSetFilter($id)
23
+ {
24
+ $this->getSelect()->where('attribute_set_id = ' . $id);
25
+
26
+ return $this;
27
+ }
28
+
29
+ public function addAttributeSetName()
30
+ {
31
+ $resource = Mage::getSingleton('core/resource');
32
+
33
+ // join in with the current settings to fetch attribute codes
34
+ $this->getSelect()
35
+ ->join(
36
+ array('attribute_set' => $resource->getTableName('eav/attribute_set')),
37
+ 'main_table.attribute_set_id = attribute_set.attribute_set_id',
38
+ array('attribute_set_name')
39
+ );
40
+
41
+ $this->getSelect()
42
+ ->where('attribute_set.entity_type_id = ?', $this->_productTypeId);
43
+
44
+ return $this;
45
+ }
46
+
47
+ public function addAttributeNames()
48
+ {
49
+ $r = Mage::getSingleton('core/resource');
50
+ $attributeTable = $r->getTableName('eav/attribute');
51
+
52
+ // add brand attribute name
53
+ $this->getSelect()
54
+ ->joinLeft(
55
+ array('brand_attribute' => $attributeTable),
56
+ 'main_table.brand_attribute_code = brand_attribute.attribute_code',
57
+ array('brand_attribute_name' => 'frontend_label')
58
+ );
59
+
60
+ // add category attribute name
61
+ $this->getSelect()
62
+ ->joinLeft(
63
+ array('cat_attribute' => $attributeTable),
64
+ 'main_table.category_attribute_code = cat_attribute.attribute_code',
65
+ array('category_attribute_name' => 'frontend_label')
66
+ );
67
+
68
+ // add subcategory attribute name
69
+ $this->getSelect()
70
+ ->joinLeft(
71
+ array('subcat_attribute' => $attributeTable),
72
+ 'main_table.subcategory_attribute_code = subcat_attribute.attribute_code',
73
+ array('subcategory_attribute_name' => 'frontend_label')
74
+ );
75
+
76
+ $this->getSelect()
77
+ ->where('brand_attribute.entity_type_id = ' . $this->_productTypeId . ' OR brand_attribute.entity_type_id IS NULL')
78
+ ->where('cat_attribute.entity_type_id = ' . $this->_productTypeId . ' OR cat_attribute.entity_type_id IS NULL')
79
+ ->where('subcat_attribute.entity_type_id = ' . $this->_productTypeId . ' OR subcat_attribute.entity_type_id IS NULL');
80
+
81
+ return $this;
82
+ }
83
+
84
+ public function orderByAttributeSetName()
85
+ {
86
+ $this->getSelect()->order("attribute_set_name");
87
+
88
+ return $this;
89
+ }
90
+ }
91
+
92
+ ?>
app/code/community/Listrak/Remarketing/Model/Mysql4/Review/Update.php CHANGED
@@ -1,20 +1,20 @@
1
- <?php
2
- // Listrak Remarketing Magento Extension Ver. 1.0.0
3
- // � 2011 Listrak, Inc.
4
-
5
- class Listrak_Remarketing_Model_Mysql4_Review_Update extends Mage_Core_Model_Mysql4_Abstract {
6
-
7
- protected $_read;
8
-
9
- protected $_write;
10
-
11
- protected function _construct()
12
- {
13
- $this->_init('listrak/review_update', 'update_id');
14
- $this->_read = $this->_getReadAdapter();
15
- $this->_write = $this->_getWriteAdapter();
16
- }
17
-
18
- }
19
-
20
  ?>
1
+ <?php
2
+ // Listrak Remarketing Magento Extension Ver. 1.0.0
3
+ // � 2011 Listrak, Inc.
4
+
5
+ class Listrak_Remarketing_Model_Mysql4_Review_Update extends Mage_Core_Model_Mysql4_Abstract {
6
+
7
+ protected $_read;
8
+
9
+ protected $_write;
10
+
11
+ protected function _construct()
12
+ {
13
+ $this->_init('listrak/review_update', 'update_id');
14
+ $this->_read = $this->_getReadAdapter();
15
+ $this->_write = $this->_getWriteAdapter();
16
+ }
17
+
18
+ }
19
+
20
  ?>
app/code/community/Listrak/Remarketing/Model/Mysql4/Session.php CHANGED
@@ -4,21 +4,22 @@
4
 
5
  class Listrak_Remarketing_Model_Mysql4_Session extends Mage_Core_Model_Mysql4_Abstract {
6
 
7
- protected $_read;
8
 
9
- protected $_write;
10
 
11
  protected function _construct()
12
- {
13
- $this->_init('listrak/session', 'id');
14
  $this->_read = $this->_getReadAdapter();
15
- $this->_write = $this->_getWriteAdapter();
16
- }
17
 
18
  protected function _afterLoad(Mage_Core_Model_Abstract $object) {
19
  if($object->getCustomerId()) {
20
  $cust = Mage::getModel("customer/customer")->load($object->getCustomerId());
21
  if($cust) {
 
22
  $object->setCustomer($cust);
23
  }
24
  }
@@ -32,44 +33,44 @@ class Listrak_Remarketing_Model_Mysql4_Session extends Mage_Core_Model_Mysql4_Ab
32
 
33
  public function loadBySessionId(Listrak_Remarketing_Model_Session $session) {
34
  $select = $this->_read->select()
35
- ->from($this->getTable('listrak/session'))
36
- ->where('session_id=?',$session->getSessionId());
37
 
38
- if($result = $this->_read->fetchRow($select)) {
39
- $session->addData($result);
40
  $session->loadEmails();
41
- }
42
  }
43
 
44
  public function loadByQuoteId(Listrak_Remarketing_Model_Session $session) {
45
  $select = $this->_read->select()
46
- ->from($this->getTable('listrak/session'))
47
- ->where('quote_id=?',$session->getQuoteId());
48
 
49
- if($result = $this->_read->fetchRow($select)) {
50
- $session->addData($result);
51
  $session->loadEmails();
52
- }
53
  }
54
 
55
  public function insertEmail(Listrak_Remarketing_Model_Session $session, $email, $emailcaptureId) {
56
  if($session->getId()) {
57
  $data = array();
58
- $data['session_id'] = $session->getId();
59
- $data['email'] = $email;
60
  $data['emailcapture_id'] = $emailcaptureId;
61
  $data['created_at'] = gmdate('Y-m-d H:i:s');
62
- $this->_write->insert($this->getTable('listrak/session_email'), $data);
63
  }
64
  }
65
 
66
  public function loadEmails(Listrak_Remarketing_Model_Session $session) {
67
  $select = $this->_read->select()
68
- ->from(array('se'=>$this->getTable('listrak/session_email')))
69
  ->joinLeft(array('ec'=>$this->getTable('listrak/emailcapture')),
70
  'se.emailcapture_id = ec.emailcapture_id',
71
  array('*'))
72
- ->where('session_id=?',$session->getId());
73
 
74
  $emails = $this->_read->fetchAll($select);
75
  $session->setEmails($emails);
4
 
5
  class Listrak_Remarketing_Model_Mysql4_Session extends Mage_Core_Model_Mysql4_Abstract {
6
 
7
+ protected $_read;
8
 
9
+ protected $_write;
10
 
11
  protected function _construct()
12
+ {
13
+ $this->_init('listrak/session', 'id');
14
  $this->_read = $this->_getReadAdapter();
15
+ $this->_write = $this->_getWriteAdapter();
16
+ }
17
 
18
  protected function _afterLoad(Mage_Core_Model_Abstract $object) {
19
  if($object->getCustomerId()) {
20
  $cust = Mage::getModel("customer/customer")->load($object->getCustomerId());
21
  if($cust) {
22
+ Mage::helper('remarketing')->setGroupNameAndGenderNameForCustomer($cust);
23
  $object->setCustomer($cust);
24
  }
25
  }
33
 
34
  public function loadBySessionId(Listrak_Remarketing_Model_Session $session) {
35
  $select = $this->_read->select()
36
+ ->from($this->getTable('listrak/session'))
37
+ ->where('session_id=?',$session->getSessionId());
38
 
39
+ if($result = $this->_read->fetchRow($select)) {
40
+ $session->addData($result);
41
  $session->loadEmails();
42
+ }
43
  }
44
 
45
  public function loadByQuoteId(Listrak_Remarketing_Model_Session $session) {
46
  $select = $this->_read->select()
47
+ ->from($this->getTable('listrak/session'))
48
+ ->where('quote_id=?',$session->getQuoteId());
49
 
50
+ if($result = $this->_read->fetchRow($select)) {
51
+ $session->addData($result);
52
  $session->loadEmails();
53
+ }
54
  }
55
 
56
  public function insertEmail(Listrak_Remarketing_Model_Session $session, $email, $emailcaptureId) {
57
  if($session->getId()) {
58
  $data = array();
59
+ $data['session_id'] = $session->getId();
60
+ $data['email'] = $email;
61
  $data['emailcapture_id'] = $emailcaptureId;
62
  $data['created_at'] = gmdate('Y-m-d H:i:s');
63
+ $this->_write->insert($this->getTable('listrak/session_email'), $data);
64
  }
65
  }
66
 
67
  public function loadEmails(Listrak_Remarketing_Model_Session $session) {
68
  $select = $this->_read->select()
69
+ ->from(array('se'=>$this->getTable('listrak/session_email')))
70
  ->joinLeft(array('ec'=>$this->getTable('listrak/emailcapture')),
71
  'se.emailcapture_id = ec.emailcapture_id',
72
  array('*'))
73
+ ->where('session_id=?',$session->getId());
74
 
75
  $emails = $this->_read->fetchAll($select);
76
  $session->setEmails($emails);
app/code/community/Listrak/Remarketing/Model/Mysql4/Session/Collection.php CHANGED
@@ -5,15 +5,15 @@
5
  class Listrak_Remarketing_Model_Mysql4_Session_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract {
6
 
7
  protected function _construct()
8
- {
9
- $this->_init('listrak/session');
10
- }
11
 
12
  public function addStoreFilter($storeIds)
13
- {
14
- $this->getSelect()->where('main_table.store_id IN (?)', $storeIds);
15
- return $this;
16
- }
17
 
18
  protected function _afterLoad() {
19
  foreach($this->_items as $i) {
5
  class Listrak_Remarketing_Model_Mysql4_Session_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract {
6
 
7
  protected function _construct()
8
+ {
9
+ $this->_init('listrak/session');
10
+ }
11
 
12
  public function addStoreFilter($storeIds)
13
+ {
14
+ $this->getSelect()->where('main_table.store_id IN (?)', $storeIds);
15
+ return $this;
16
+ }
17
 
18
  protected function _afterLoad() {
19
  foreach($this->_items as $i) {
app/code/community/Listrak/Remarketing/Model/Mysql4/Subscriberupdate.php CHANGED
@@ -4,14 +4,14 @@
4
 
5
  class Listrak_Remarketing_Model_Mysql4_Subscriberupdate extends Mage_Core_Model_Mysql4_Abstract {
6
 
7
- protected $_read;
8
 
9
- protected $_write;
10
 
11
  protected function _construct()
12
- {
13
- $this->_init('listrak/subscriber_update', 'id');
14
  $this->_read = $this->_getReadAdapter();
15
- $this->_write = $this->_getWriteAdapter();
16
- }
17
  }
4
 
5
  class Listrak_Remarketing_Model_Mysql4_Subscriberupdate extends Mage_Core_Model_Mysql4_Abstract {
6
 
7
+ protected $_read;
8
 
9
+ protected $_write;
10
 
11
  protected function _construct()
12
+ {
13
+ $this->_init('listrak/subscriber_update', 'id');
14
  $this->_read = $this->_getReadAdapter();
15
+ $this->_write = $this->_getWriteAdapter();
16
+ }
17
  }
app/code/community/Listrak/Remarketing/Model/Observer.php CHANGED
@@ -6,54 +6,54 @@ class Listrak_Remarketing_Model_Observer {
6
 
7
  public function sessionInit($observer) {
8
  if (Mage::helper('remarketing')->coreEnabled()) {
9
- try {
10
- $session = Mage::getSingleton('listrak/session');
11
- $session->init(true);
12
 
13
- $click = Mage::getModel('listrak/click');
14
- $click->checkForClick();
15
- }
16
- catch(Exception $ex) {
17
- Mage::getModel("listrak/log")->addException($ex);
18
- }
19
- }
20
 
21
  return $this;
22
  }
23
 
24
  public function orderPlaced($observer) {
25
  if (Mage::helper('remarketing')->coreEnabled()) {
26
- try {
27
- $cs = Mage::getSingleton('core/session');
28
- $cs->setIsListrakOrderMade(true);
29
- $session = Mage::getSingleton('listrak/session');
30
- $session->init();
31
- }
32
- catch(Exception $ex) {
33
- Mage::getModel("listrak/log")->addException($ex);
34
- }
35
- }
36
 
37
  return $this;
38
  }
39
 
40
  public function subscriberSaved($observer) {
41
  if (Mage::helper('remarketing')->coreEnabled()) {
42
- try {
43
- $s = $observer->getSubscriber();
44
- $su = Mage::getModel("listrak/subscriberupdate")->load($s->getSubscriberId(), 'subscriber_id');
45
 
46
- if(!$su->getData()) {
47
- $su->setSubscriberId($s->getSubscriberId());
48
- }
49
 
50
- $su->setUpdatedAt(gmdate('Y-m-d H:i:s'));
51
- $su->save();
52
- }
53
- catch(Exception $ex) {
54
- Mage::getModel("listrak/log")->addException($ex);
55
- }
56
- }
57
 
58
  return $this;
59
  }
@@ -65,21 +65,21 @@ class Listrak_Remarketing_Model_Observer {
65
  $sc = $ae->subscribersPurge(gmdate("Y-m-d H:i:s", time() - 604800));
66
  Mage::getModel("listrak/log")->addMessage("Purged $sc subscriber update entries.");
67
 
68
- foreach (Mage::app()->getStores() as $storeId => $store) {
69
- $msg = "";
70
- $ab = Mage::getModel("listrak/abandonedcart_api");
71
  $cl = Mage::getModel("listrak/click_api");
72
  $l = Mage::getModel("listrak/log_api");
73
 
74
  $msg .= "Purged " . $ab->purge($storeId, gmdate("Y-m-d H:i:s", time() - 604800)) . " abandoned carts/sessions\n";
75
  $msg .= "Purged " . $cl->purge($storeId, gmdate("Y-m-d H:i:s", time() - 604800)) . " clicks\n";
76
  $msg .= "Purged " . $l->purge($storeId, gmdate("Y-m-d H:i:s", time() - 604800)) . " log entries\n";
77
-
78
- $revPurged = Mage::getModel("listrak/review_update_api")->reviewUpdatePurge(30);
79
- $msg .= "Purged " . $revPurged['count'] . " review update entries";
80
-
81
  Mage::getModel("listrak/log")->addMessage($msg, $storeId);
82
- }
83
  }
84
  }
85
  catch(Exception $ex) {
@@ -88,36 +88,36 @@ class Listrak_Remarketing_Model_Observer {
88
 
89
  return $this;
90
  }
91
-
92
- public function reviewUpdated($observer) {
93
- if (Mage::helper('remarketing')->reviewsEnabled()) {
94
- try {
95
- $review = $observer->getObject();
96
-
97
- Mage::getModel('listrak/review_update')
98
- ->markUpdated($review->getReviewId(), $review->getEntityId(), $review->getEntityPkValue());
99
- }
100
- catch(Exception $ex) {
101
- Mage::getModel("listrak/log")->addException($ex);
102
- }
103
- }
104
-
105
- return $this;
106
- }
107
-
108
- public function reviewDeleted($observer) {
109
- if (Mage::helper('remarketing')->reviewsEnabled()) {
110
- try {
111
- $review = $observer->getObject();
112
-
113
- Mage::getModel('listrak/review_update')
114
- ->markDeleted($review->getReviewId(), $review->getEntityId(), $review->getEntityPkValue());
115
- }
116
- catch(Exception $ex) {
117
- Mage::getModel('listrak/log')->addException($ex);
118
- }
119
- }
120
-
121
- return $this;
122
- }
123
  }
6
 
7
  public function sessionInit($observer) {
8
  if (Mage::helper('remarketing')->coreEnabled()) {
9
+ try {
10
+ $session = Mage::getSingleton('listrak/session');
11
+ $session->init(true);
12
 
13
+ $click = Mage::getModel('listrak/click');
14
+ $click->checkForClick();
15
+ }
16
+ catch(Exception $ex) {
17
+ Mage::getModel("listrak/log")->addException($ex);
18
+ }
19
+ }
20
 
21
  return $this;
22
  }
23
 
24
  public function orderPlaced($observer) {
25
  if (Mage::helper('remarketing')->coreEnabled()) {
26
+ try {
27
+ $cs = Mage::getSingleton('core/session');
28
+ $cs->setIsListrakOrderMade(true);
29
+ $session = Mage::getSingleton('listrak/session');
30
+ $session->init();
31
+ }
32
+ catch(Exception $ex) {
33
+ Mage::getModel("listrak/log")->addException($ex);
34
+ }
35
+ }
36
 
37
  return $this;
38
  }
39
 
40
  public function subscriberSaved($observer) {
41
  if (Mage::helper('remarketing')->coreEnabled()) {
42
+ try {
43
+ $s = $observer->getSubscriber();
44
+ $su = Mage::getModel("listrak/subscriberupdate")->load($s->getSubscriberId(), 'subscriber_id');
45
 
46
+ if(!$su->getData()) {
47
+ $su->setSubscriberId($s->getSubscriberId());
48
+ }
49
 
50
+ $su->setUpdatedAt(gmdate('Y-m-d H:i:s'));
51
+ $su->save();
52
+ }
53
+ catch(Exception $ex) {
54
+ Mage::getModel("listrak/log")->addException($ex);
55
+ }
56
+ }
57
 
58
  return $this;
59
  }
65
  $sc = $ae->subscribersPurge(gmdate("Y-m-d H:i:s", time() - 604800));
66
  Mage::getModel("listrak/log")->addMessage("Purged $sc subscriber update entries.");
67
 
68
+ foreach (Mage::app()->getStores() as $storeId => $store) {
69
+ $msg = "";
70
+ $ab = Mage::getModel("listrak/abandonedcart_api");
71
  $cl = Mage::getModel("listrak/click_api");
72
  $l = Mage::getModel("listrak/log_api");
73
 
74
  $msg .= "Purged " . $ab->purge($storeId, gmdate("Y-m-d H:i:s", time() - 604800)) . " abandoned carts/sessions\n";
75
  $msg .= "Purged " . $cl->purge($storeId, gmdate("Y-m-d H:i:s", time() - 604800)) . " clicks\n";
76
  $msg .= "Purged " . $l->purge($storeId, gmdate("Y-m-d H:i:s", time() - 604800)) . " log entries\n";
77
+
78
+ $revPurged = Mage::getModel("listrak/review_update_api")->reviewUpdatePurge(30);
79
+ $msg .= "Purged " . $revPurged['count'] . " review update entries";
80
+
81
  Mage::getModel("listrak/log")->addMessage($msg, $storeId);
82
+ }
83
  }
84
  }
85
  catch(Exception $ex) {
88
 
89
  return $this;
90
  }
91
+
92
+ public function reviewUpdated($observer) {
93
+ if (Mage::helper('remarketing')->reviewsEnabled()) {
94
+ try {
95
+ $review = $observer->getObject();
96
+
97
+ Mage::getModel('listrak/review_update')
98
+ ->markUpdated($review->getReviewId(), $review->getEntityId(), $review->getEntityPkValue());
99
+ }
100
+ catch(Exception $ex) {
101
+ Mage::getModel("listrak/log")->addException($ex);
102
+ }
103
+ }
104
+
105
+ return $this;
106
+ }
107
+
108
+ public function reviewDeleted($observer) {
109
+ if (Mage::helper('remarketing')->reviewsEnabled()) {
110
+ try {
111
+ $review = $observer->getObject();
112
+
113
+ Mage::getModel('listrak/review_update')
114
+ ->markDeleted($review->getReviewId(), $review->getEntityId(), $review->getEntityPkValue());
115
+ }
116
+ catch(Exception $ex) {
117
+ Mage::getModel('listrak/log')->addException($ex);
118
+ }
119
+ }
120
+
121
+ return $this;
122
+ }
123
  }
app/code/community/Listrak/Remarketing/Model/Product/Attribute/Set/Map.php ADDED
@@ -0,0 +1,81 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // Listrak Remarketing Magento Extension Ver. 1.1.5
3
+ // � 2013 Listrak, Inc.
4
+
5
+ class Listrak_Remarketing_Model_Product_Attribute_Set_Map extends Mage_Core_Model_Abstract
6
+ {
7
+ public function _construct()
8
+ {
9
+ parent::_construct();
10
+ $this->_init('listrak/product_attribute_set_map');
11
+
12
+ //set the default values
13
+ $this->setData('use_config_categories_source', 1);
14
+ }
15
+
16
+ public function finalCategoriesSource()
17
+ {
18
+ return $this->getUseConfigCategoriesSource() ? Mage::helper('remarketing')->categoriesSource() : $this->getCategoriesSource();
19
+ }
20
+
21
+ public function frontendCategoriesSource()
22
+ {
23
+ switch ($this->finalCategoriesSource())
24
+ {
25
+ case 'default':
26
+ return 'Magento Categories';
27
+ case 'attributes' :
28
+ return 'Product Attribute Mapping';
29
+ default:
30
+ return 'n/a';
31
+ }
32
+ }
33
+
34
+ public function frontendBrandAttribute()
35
+ {
36
+ if ($this->getBrandAttributeCode() != null)
37
+ {
38
+ return $this->getBrandAttributeName() . ' ('. $this->getBrandAttributeCode() . ')';
39
+ }
40
+ else
41
+ return 'Not Set';
42
+ }
43
+
44
+ public function frontendCategoryAttribute()
45
+ {
46
+ if ($this->finalCategoriesSource() == 'default')
47
+ return '';
48
+ else
49
+ {
50
+ if ($this->getCategoryAttributeCode() != null)
51
+ {
52
+ return $this->getCategoryAttributeName() . ' ('. $this->getCategoryAttributeCode() . ')';
53
+ }
54
+ else
55
+ return 'Not Set';
56
+ }
57
+ }
58
+
59
+ public function frontendSubcategoryAttribute()
60
+ {
61
+ if ($this->finalCategoriesSource() == 'default')
62
+ return '';
63
+ else
64
+ {
65
+ if ($this->getSubcategoryAttributeCode() != null)
66
+ {
67
+ return $this->getSubcategoryAttributeName() . ' ('. $this->getSubcategoryAttributeCode() . ')';
68
+ }
69
+ else
70
+ return 'Not Set';
71
+ }
72
+ }
73
+
74
+ public function save()
75
+ {
76
+ $this->setData('updated_at', gmdate('Y-m-d H:i:s'));
77
+ parent::save();
78
+ }
79
+ }
80
+
81
+ ?>
app/code/community/Listrak/Remarketing/Model/Product/Attributes.php ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // Listrak Remarketing Magento Extension Ver. 1.1.5
3
+ // � 2013 Listrak, Inc.
4
+
5
+ class Listrak_Remarketing_Model_Product_Attributes
6
+ {
7
+ public function toOptionArray()
8
+ {
9
+ $collection = Mage::getResourceModel('catalog/product_attribute_collection')
10
+ ->addVisibleFilter();
11
+
12
+ $attributes = array();
13
+ foreach($collection as $value)
14
+ {
15
+ array_push($attributes, array('code' => $value->getAttributeCode(), 'label' => $value->getFrontendLabel()));
16
+ }
17
+
18
+ // sort the attributes by label
19
+ usort($attributes, function($a, $b)
20
+ {
21
+ $valA = $a['label'] . ':' . $a['code'];
22
+ $valB = $b['label'] . ':' . $b['code'];
23
+ return (($valA == $valB) ? 0 : (($valA < $valB) ? -1 : 1));
24
+ });
25
+
26
+ $final = array();
27
+ array_push($final, array('value' => '', 'label' => 'No Selection'));
28
+ foreach($attributes as $attribute)
29
+ {
30
+ array_push($final, array('value' => $attribute['code'], 'label' => $attribute['label'] . ' (' . $attribute['code'] . ')'));
31
+ }
32
+
33
+ return $final;
34
+ }
35
+ }
36
+
37
+ ?>
app/code/community/Listrak/Remarketing/Model/Product/Category/Source.php ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // Listrak Remarketing Magento Extension Ver. 1.1.5
3
+ // � 2013 Listrak, Inc.
4
+
5
+ class Listrak_Remarketing_Model_Product_Category_Source
6
+ {
7
+ public function toOptionArray()
8
+ {
9
+ return array(
10
+ array('value' => 'default', 'label' => 'Use Catalog Configuration (Default)'),
11
+ array('value' => 'attributes', 'label' => 'Map from Product Attributes')
12
+ );
13
+ }
14
+ }
15
+
16
+ ?>
app/code/community/Listrak/Remarketing/Model/Review/Update.php CHANGED
@@ -4,45 +4,45 @@
4
 
5
  class Listrak_Remarketing_Model_Review_Update extends Mage_Core_Model_Abstract
6
  {
7
- const ACTIVITYTYPE_UPDATE = 1;
8
- const ACTIVITYTYPE_DELETE = 2;
9
 
10
- public function _construct()
11
- {
12
- parent::_construct();
13
  $this->_init('listrak/review_update');
14
- }
15
-
16
- public function loadByReviewId($reviewId) {
17
- return $this->getCollection()
18
- ->addFilter('review_id', $reviewId)
19
- ->getFirstItem();
20
- }
21
-
22
- public function getReviewUpdateCollection() {
23
- return $this->getCollection()->getReviewUpdateTime();
24
- }
25
-
26
- public function getRatingSummaryUpdateCollection() {
27
- return $this->getCollection()->getRatingSummaryUpdateTime();
28
- }
29
-
30
- public function markUpdated($reviewId, $entityId, $entityPkValue) {
31
- $this->mark($reviewId, $entityId, $entityPkValue, self::ACTIVITYTYPE_UPDATE);
32
- }
33
-
34
- public function markDeleted($reviewId, $entityId, $entityPkValue) {
35
- $this->mark($reviewId, $entityId, $entityPkValue, self::ACTIVITYTYPE_DELETE);
36
- }
37
-
38
- protected function mark($reviewId, $entityId, $entityPkValue, $activityType) {
39
- $this->setReviewId($reviewId);
40
- $this->setEntityId($entityId);
41
- $this->setEntityPkValue($entityPkValue);
42
- $this->setActivityTime(gmdate('Y-m-d H:i:s'));
43
- $this->setActivity($activityType);
44
- $this->save();
45
- }
46
  }
47
 
48
  ?>
4
 
5
  class Listrak_Remarketing_Model_Review_Update extends Mage_Core_Model_Abstract
6
  {
7
+ const ACTIVITYTYPE_UPDATE = 1;
8
+ const ACTIVITYTYPE_DELETE = 2;
9
 
10
+ public function _construct()
11
+ {
12
+ parent::_construct();
13
  $this->_init('listrak/review_update');
14
+ }
15
+
16
+ public function loadByReviewId($reviewId) {
17
+ return $this->getCollection()
18
+ ->addFilter('review_id', $reviewId)
19
+ ->getFirstItem();
20
+ }
21
+
22
+ public function getReviewUpdateCollection() {
23
+ return $this->getCollection()->getReviewUpdateTime();
24
+ }
25
+
26
+ public function getRatingSummaryUpdateCollection() {
27
+ return $this->getCollection()->getRatingSummaryUpdateTime();
28
+ }
29
+
30
+ public function markUpdated($reviewId, $entityId, $entityPkValue) {
31
+ $this->mark($reviewId, $entityId, $entityPkValue, self::ACTIVITYTYPE_UPDATE);
32
+ }
33
+
34
+ public function markDeleted($reviewId, $entityId, $entityPkValue) {
35
+ $this->mark($reviewId, $entityId, $entityPkValue, self::ACTIVITYTYPE_DELETE);
36
+ }
37
+
38
+ protected function mark($reviewId, $entityId, $entityPkValue, $activityType) {
39
+ $this->setReviewId($reviewId);
40
+ $this->setEntityId($entityId);
41
+ $this->setEntityPkValue($entityPkValue);
42
+ $this->setActivityTime(gmdate('Y-m-d H:i:s'));
43
+ $this->setActivity($activityType);
44
+ $this->save();
45
+ }
46
  }
47
 
48
  ?>
app/code/community/Listrak/Remarketing/Model/Session.php CHANGED
@@ -5,10 +5,10 @@
5
  class Listrak_Remarketing_Model_Session extends Mage_Core_Model_Abstract {
6
 
7
  public function _construct()
8
- {
9
- parent::_construct();
10
- $this->_init('listrak/session');
11
- }
12
 
13
  public function init($createOnlyIfCartHasItems = false) {
14
  $ltksid = Mage::getModel('core/cookie')->get('ltksid');
5
  class Listrak_Remarketing_Model_Session extends Mage_Core_Model_Abstract {
6
 
7
  public function _construct()
8
+ {
9
+ parent::_construct();
10
+ $this->_init('listrak/session');
11
+ }
12
 
13
  public function init($createOnlyIfCartHasItems = false) {
14
  $ltksid = Mage::getModel('core/cookie')->get('ltksid');
app/code/community/Listrak/Remarketing/Model/Subscriber.php CHANGED
@@ -4,19 +4,19 @@
4
 
5
  class Listrak_Remarketing_Model_Subscriber extends Mage_Newsletter_Model_Subscriber {
6
 
7
- public function sendConfirmationSuccessEmail() {
8
- if(!Mage::getStoreConfig('remarketing/subscription/signup_success_email')) {
9
- return $this;
10
- }
11
 
12
- return parent::sendConfirmationSuccessEmail();
13
- }
14
 
15
- public function sendUnsubscriptionEmail() {
16
- if(!Mage::getStoreConfig('remarketing/subscription/unsubscribe_email')) {
17
- return $this;
18
- }
19
 
20
- return parent::sendUnsubscriptionEmail();
21
- }
22
  }
4
 
5
  class Listrak_Remarketing_Model_Subscriber extends Mage_Newsletter_Model_Subscriber {
6
 
7
+ public function sendConfirmationSuccessEmail() {
8
+ if(!Mage::getStoreConfig('remarketing/subscription/signup_success_email')) {
9
+ return $this;
10
+ }
11
 
12
+ return parent::sendConfirmationSuccessEmail();
13
+ }
14
 
15
+ public function sendUnsubscriptionEmail() {
16
+ if(!Mage::getStoreConfig('remarketing/subscription/unsubscribe_email')) {
17
+ return $this;
18
+ }
19
 
20
+ return parent::sendUnsubscriptionEmail();
21
+ }
22
  }
app/code/community/Listrak/Remarketing/controllers/Adminhtml/AbandonedcartreportController.php CHANGED
@@ -4,32 +4,32 @@
4
 
5
  class Listrak_Remarketing_Adminhtml_AbandonedcartreportController extends Mage_Adminhtml_Controller_Action
6
  {
7
- protected function _initAction()
8
- {
9
- $this->loadLayout()
10
- ->_setActiveMenu('remarketing');
11
- return $this;
12
- }
13
 
14
- public function indexAction() {
15
  try {
16
- $this->_initAction();
17
- $this->_addContent($this->getLayout()->createBlock('remarketing/adminhtml_abandonedcartreport'));
18
- $this->renderLayout();
19
  } catch(Exception $e) {
20
- Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
21
- Mage::getSingleton('adminhtml/session')->setEmailCaptureData($this->getRequest()->getPost());
22
- $this->_redirect('adminhtml/dashboard');
23
- return;
24
  }
25
 
26
- }
27
-
28
- public function gridAction()
29
- {
30
- $this->loadLayout();
31
- $this->getResponse()->setBody(
32
- $this->getLayout()->createBlock('importedit/adminhtml_abandonedcartreport_grid')->toHtml()
33
- );
34
- }
35
  }
4
 
5
  class Listrak_Remarketing_Adminhtml_AbandonedcartreportController extends Mage_Adminhtml_Controller_Action
6
  {
7
+ protected function _initAction()
8
+ {
9
+ $this->loadLayout()
10
+ ->_setActiveMenu('remarketing');
11
+ return $this;
12
+ }
13
 
14
+ public function indexAction() {
15
  try {
16
+ $this->_initAction();
17
+ $this->_addContent($this->getLayout()->createBlock('remarketing/adminhtml_abandonedcartreport'));
18
+ $this->renderLayout();
19
  } catch(Exception $e) {
20
+ Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
21
+ Mage::getSingleton('adminhtml/session')->setEmailCaptureData($this->getRequest()->getPost());
22
+ $this->_redirect('adminhtml/dashboard');
23
+ return;
24
  }
25
 
26
+ }
27
+
28
+ public function gridAction()
29
+ {
30
+ $this->loadLayout();
31
+ $this->getResponse()->setBody(
32
+ $this->getLayout()->createBlock('importedit/adminhtml_abandonedcartreport_grid')->toHtml()
33
+ );
34
+ }
35
  }
app/code/community/Listrak/Remarketing/controllers/Adminhtml/EmailcaptureController.php CHANGED
@@ -5,121 +5,121 @@
5
  class Listrak_Remarketing_Adminhtml_EmailCaptureController extends Mage_Adminhtml_Controller_Action
6
  {
7
 
8
- protected function _initAction()
9
- {
10
- $this->loadLayout()
11
- ->_setActiveMenu('remarketing')
12
- ->_addBreadcrumb(Mage::helper('adminhtml')->__('Fields Manager'), Mage::helper('adminhtml')->__('Field Manager'));
13
- return $this;
14
- }
15
 
16
- public function indexAction() {
17
  try {
18
- $this->_initAction();
19
- $this->_addContent($this->getLayout()->createBlock('remarketing/adminhtml_emailcapture'));
20
- $this->renderLayout();
21
  } catch(Exception $e) {
22
- Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
23
- Mage::getSingleton('adminhtml/session')->setEmailCaptureData($this->getRequest()->getPost());
24
- $this->_redirect('adminhtml/dashboard');
25
- return;
26
  }
27
 
28
- }
29
 
30
- public function editAction()
31
- {
32
  try {
33
- $emailcaptureId = $this->getRequest()->getParam('id');
34
- $emailcaptureModel = Mage::getModel('listrak/emailcapture')->load($emailcaptureId);
35
 
36
- if ($emailcaptureModel->getId() || $emailcaptureId == 0) {
37
 
38
- Mage::register('emailcapture_data', $emailcaptureModel);
39
 
40
- $this->loadLayout();
41
- $this->_setActiveMenu('emailcapture');
42
-
43
- $this->_addBreadcrumb(Mage::helper('adminhtml')->__('Item Manager'), Mage::helper('adminhtml')->__('Item Manager'));
44
- $this->_addBreadcrumb(Mage::helper('adminhtml')->__('Item News'), Mage::helper('adminhtml')->__('Item News'));
45
-
46
- $this->getLayout()->getBlock('head')->setCanLoadExtJs(true);
47
-
48
- $this->_addContent($this->getLayout()->createBlock('remarketing/adminhtml_emailcapture_edit'))
49
- ->_addLeft($this->getLayout()->createBlock('remarketing/adminhtml_emailcapture_edit_tabs'));
50
-
51
- $this->renderLayout();
52
- } else {
53
- Mage::getSingleton('adminhtml/session')->addError(Mage::helper('remarketing')->__('Item does not exist'));
54
- $this->_redirect('*/*/');
55
- }
56
  } catch (Exception $e) {
57
- Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
58
- Mage::getSingleton('adminhtml/session')->setEmailCaptureData($this->getRequest()->getPost());
59
- $this->_redirect('*/*/index', array('id' => $this->getRequest()->getParam('id')));
60
- return;
61
  }
62
- }
63
 
64
- public function newAction()
65
- {
66
- $this->_forward('edit');
67
- }
68
 
69
- public function saveAction()
70
- {
71
- if ( $this->getRequest()->getPost() ) {
72
- try {
73
- $postData = $this->getRequest()->getPost();
74
- $emailcaptureModel = Mage::getModel('listrak/emailcapture');
75
-
76
- $emailcaptureModel->setId($this->getRequest()->getParam('id'))
77
- ->setPage($postData['page'])
78
- ->setFieldId($postData['field_id'])
79
- ->save();
80
-
81
- Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('adminhtml')->__('Item was successfully saved'));
82
- Mage::getSingleton('adminhtml/session')->setEmailCaptureData(false);
83
 
84
- $this->_redirect('*/*/');
85
- return;
86
- } catch (Exception $e) {
87
- Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
88
- Mage::getSingleton('adminhtml/session')->setEmailCaptureData($this->getRequest()->getPost());
89
- $this->_redirect('*/*/edit', array('id' => $this->getRequest()->getParam('id')));
90
- return;
91
- }
92
- }
93
- $this->_redirect('*/*/');
94
- }
95
 
96
- public function deleteAction()
97
- {
98
- if( $this->getRequest()->getParam('id') > 0 ) {
99
- try {
100
- $emailcaptureModel = Mage::getModel('listrak/emailcapture');
101
-
102
- $emailcaptureModel->setId($this->getRequest()->getParam('id'))
103
- ->delete();
104
-
105
- Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('adminhtml')->__('Item was successfully deleted'));
106
- $this->_redirect('*/*/');
107
- } catch (Exception $e) {
108
- Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
109
- $this->_redirect('*/*/edit', array('id' => $this->getRequest()->getParam('id')));
110
- }
111
- }
112
- $this->_redirect('*/*/');
113
- }
114
- /**
115
- * Product grid for AJAX request.
116
- * Sort and filter result for example.
117
- */
118
- public function gridAction()
119
- {
120
- $this->loadLayout();
121
- $this->getResponse()->setBody(
122
- $this->getLayout()->createBlock('importedit/adminhtml_emailcapture_grid')->toHtml()
123
- );
124
- }
125
  }
5
  class Listrak_Remarketing_Adminhtml_EmailCaptureController extends Mage_Adminhtml_Controller_Action
6
  {
7
 
8
+ protected function _initAction()
9
+ {
10
+ $this->loadLayout()
11
+ ->_setActiveMenu('remarketing')
12
+ ->_addBreadcrumb(Mage::helper('adminhtml')->__('Fields Manager'), Mage::helper('adminhtml')->__('Field Manager'));
13
+ return $this;
14
+ }
15
 
16
+ public function indexAction() {
17
  try {
18
+ $this->_initAction();
19
+ $this->_addContent($this->getLayout()->createBlock('remarketing/adminhtml_emailcapture'));
20
+ $this->renderLayout();
21
  } catch(Exception $e) {
22
+ Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
23
+ Mage::getSingleton('adminhtml/session')->setEmailCaptureData($this->getRequest()->getPost());
24
+ $this->_redirect('adminhtml/dashboard');
25
+ return;
26
  }
27
 
28
+ }
29
 
30
+ public function editAction()
31
+ {
32
  try {
33
+ $emailcaptureId = $this->getRequest()->getParam('id');
34
+ $emailcaptureModel = Mage::getModel('listrak/emailcapture')->load($emailcaptureId);
35
 
36
+ if ($emailcaptureModel->getId() || $emailcaptureId == 0) {
37
 
38
+ Mage::register('emailcapture_data', $emailcaptureModel);
39
 
40
+ $this->loadLayout();
41
+ $this->_setActiveMenu('emailcapture');
42
+
43
+ $this->_addBreadcrumb(Mage::helper('adminhtml')->__('Item Manager'), Mage::helper('adminhtml')->__('Item Manager'));
44
+ $this->_addBreadcrumb(Mage::helper('adminhtml')->__('Item News'), Mage::helper('adminhtml')->__('Item News'));
45
+
46
+ $this->getLayout()->getBlock('head')->setCanLoadExtJs(true);
47
+
48
+ $this->_addContent($this->getLayout()->createBlock('remarketing/adminhtml_emailcapture_edit'))
49
+ ->_addLeft($this->getLayout()->createBlock('remarketing/adminhtml_emailcapture_edit_tabs'));
50
+
51
+ $this->renderLayout();
52
+ } else {
53
+ Mage::getSingleton('adminhtml/session')->addError(Mage::helper('remarketing')->__('Item does not exist'));
54
+ $this->_redirect('*/*/');
55
+ }
56
  } catch (Exception $e) {
57
+ Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
58
+ Mage::getSingleton('adminhtml/session')->setEmailCaptureData($this->getRequest()->getPost());
59
+ $this->_redirect('*/*/index', array('id' => $this->getRequest()->getParam('id')));
60
+ return;
61
  }
62
+ }
63
 
64
+ public function newAction()
65
+ {
66
+ $this->_forward('edit');
67
+ }
68
 
69
+ public function saveAction()
70
+ {
71
+ if ( $this->getRequest()->getPost() ) {
72
+ try {
73
+ $postData = $this->getRequest()->getPost();
74
+ $emailcaptureModel = Mage::getModel('listrak/emailcapture');
75
+
76
+ $emailcaptureModel->setId($this->getRequest()->getParam('id'))
77
+ ->setPage($postData['page'])
78
+ ->setFieldId($postData['field_id'])
79
+ ->save();
80
+
81
+ Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('adminhtml')->__('Item was successfully saved'));
82
+ Mage::getSingleton('adminhtml/session')->setEmailCaptureData(false);
83
 
84
+ $this->_redirect('*/*/');
85
+ return;
86
+ } catch (Exception $e) {
87
+ Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
88
+ Mage::getSingleton('adminhtml/session')->setEmailCaptureData($this->getRequest()->getPost());
89
+ $this->_redirect('*/*/edit', array('id' => $this->getRequest()->getParam('id')));
90
+ return;
91
+ }
92
+ }
93
+ $this->_redirect('*/*/');
94
+ }
95
 
96
+ public function deleteAction()
97
+ {
98
+ if( $this->getRequest()->getParam('id') > 0 ) {
99
+ try {
100
+ $emailcaptureModel = Mage::getModel('listrak/emailcapture');
101
+
102
+ $emailcaptureModel->setId($this->getRequest()->getParam('id'))
103
+ ->delete();
104
+
105
+ Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('adminhtml')->__('Item was successfully deleted'));
106
+ $this->_redirect('*/*/');
107
+ } catch (Exception $e) {
108
+ Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
109
+ $this->_redirect('*/*/edit', array('id' => $this->getRequest()->getParam('id')));
110
+ }
111
+ }
112
+ $this->_redirect('*/*/');
113
+ }
114
+ /**
115
+ * Product grid for AJAX request.
116
+ * Sort and filter result for example.
117
+ */
118
+ public function gridAction()
119
+ {
120
+ $this->loadLayout();
121
+ $this->getResponse()->setBody(
122
+ $this->getLayout()->createBlock('importedit/adminhtml_emailcapture_grid')->toHtml()
123
+ );
124
+ }
125
  }
app/code/community/Listrak/Remarketing/controllers/Adminhtml/ProductattributesController.php ADDED
@@ -0,0 +1,142 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // Listrak Remarketing Magento Extension Ver. 1.1.5
3
+ // � 2013 Listrak, Inc.
4
+
5
+ class Listrak_Remarketing_Adminhtml_ProductAttributesController extends Mage_Adminhtml_Controller_Action
6
+ {
7
+ protected function _initAction()
8
+ {
9
+ $this->loadLayout()
10
+ ->_setActiveMenu('remarketing');
11
+ return $this;
12
+ }
13
+
14
+ public function indexAction()
15
+ {
16
+ $this->_initAction();
17
+
18
+ try {
19
+ // before we display the data, make sure all the product attribute sets are found in our table
20
+ // that is done because we can't have null primary keys - something that would happen otherwise
21
+ Mage::helper('remarketing/product_attribute_set_map')->ensureDataConsistency();
22
+
23
+ // all is consistent - load the information and the UI
24
+ $sets = Mage::getModel('listrak/product_attribute_set_map')
25
+ ->getCollection()
26
+ ->addAttributeSetName()
27
+ ->addAttributeNames()
28
+ ->orderByAttributeSetName();
29
+
30
+ Mage::register('productattribute_sets', $sets);
31
+
32
+ $this->_addContent($this->getLayout()->createBlock('remarketing/adminhtml_productattributes'));
33
+
34
+ $this->renderLayout();
35
+ }
36
+ catch (Exception $e) {
37
+ Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
38
+ $this->_redirect('*/*/index', array('id' => $this->getRequest()->getParam('id')));
39
+ return;
40
+ }
41
+ }
42
+
43
+ public function editAction()
44
+ {
45
+ $this->_initAction();
46
+
47
+ try {
48
+ $id = $this->getRequest()->getParam('id');
49
+ $model = Mage::getModel('listrak/product_attribute_set_map')
50
+ ->getCollection()
51
+ ->addAttributeSetName()
52
+ ->addMapIdFilter($id)
53
+ ->getFirstItem();
54
+
55
+ Mage::register('productattribute_data', $model);
56
+
57
+ /*$this->_addBreadcrumb(Mage::helper('adminhtml')->__('Item Manager'), Mage::helper('adminhtml')->__('Item Manager'));
58
+ $this->_addBreadcrumb(Mage::helper('adminhtml')->__('Item News'), Mage::helper('adminhtml')->__('Item News'));*/
59
+
60
+ $this->getLayout()->getBlock('head')->setCanLoadExtJs(true);
61
+
62
+ $this->_addContent($this->getLayout()->createBlock('remarketing/adminhtml_productattributes_edit'))
63
+ ->_addLeft($this->getLayout()->createBlock('remarketing/adminhtml_productattributes_edit_tabs'));
64
+
65
+ $this->renderLayout();
66
+ }
67
+ catch (Exception $e) {
68
+ Mage::getModel('listrak/log')->addException($e);
69
+ Mage::getSingleton('adminhtml/session')->addError("An unexpected error occured while attempting to display the form. Please try again.");
70
+ $this->_redirect('*/*/index', array('id' => $this->getRequest()->getParam('id')));
71
+ return;
72
+ }
73
+ }
74
+
75
+ public function saveAction()
76
+ {
77
+ if ( $this->getRequest()->getPost() ) {
78
+ try {
79
+ $postData = $this->getRequest()->getPost();
80
+ $id = $this->getRequest()->getParam('id');
81
+
82
+ $model = Mage::getModel('listrak/product_attribute_set_map')
83
+ ->load($id);
84
+
85
+ // now we know if there is a record and if there isn't, it will be inserted
86
+ $model->setBrandAttributeCode($postData['brand_attribute'] == '' ? null : $postData['brand_attribute'])
87
+ ->setCategoriesSource(array_key_exists('categories_source', $postData) ? $postData['categories_source'] : null)
88
+ ->setUseConfigCategoriesSource(array_key_exists('use_config_categories_source', $postData) && $postData['use_config_categories_source'] ? 1 : 0)
89
+ ->setCategoryAttributeCode($postData['categories_category_attribute'] == '' ? null : $postData['categories_category_attribute'])
90
+ ->setSubcategoryAttributeCode($postData['categories_subcategory_attribute'] == '' ? null : $postData['categories_subcategory_attribute'])
91
+ ->save();
92
+
93
+ Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('adminhtml')->__('Item was successfully saved'));
94
+
95
+ $this->_redirect('*/*/');
96
+ return;
97
+ }
98
+ catch (Exception $e) {
99
+ Mage::getModel('listrak/log')->addException($e);
100
+ Mage::getSingleton('adminhtml/session')->addError("An unexpected error occured while attempting to save the settings. Please try again.");
101
+ $this->_redirect('*/*/edit', array('id' => $this->getRequest()->getParam('id')));
102
+ return;
103
+ }
104
+ }
105
+ $this->_redirect('*/*/');
106
+ }
107
+
108
+ public function bulkassignAction()
109
+ {
110
+ try {
111
+ $postData = $this->getRequest()->getPost();
112
+ if (array_key_exists('bulkassign_attribute', $postData) && $postData['bulkassign_attribute'] != '')
113
+ {
114
+ $attributeCode = $postData['bulkassign_attribute'];
115
+
116
+ $sets = Mage::getModel('listrak/product_attribute_set_map')
117
+ ->getCollection();
118
+
119
+ foreach($sets as $set)
120
+ {
121
+ if($set->getBrandAttributeCode() == null && Mage::getResourceModel('catalog/product_attribute_collection')
122
+ ->setAttributeSetFilter($set->getAttributeSetId())
123
+ ->addVisibleFilter()
124
+ ->setCodeFilter($attributeCode)
125
+ ->count() > 0)
126
+ {
127
+ $set->setBrandAttributeCode($attributeCode)
128
+ ->save();
129
+ }
130
+ }
131
+ }
132
+ }
133
+ catch (Exception $e) {
134
+ Mage::getModel('listrak/log')->addException($e);
135
+ Mage::getSingleton('adminhtml/session')->addError("An unexpected error occured while assigning the brand attribute.");
136
+ }
137
+
138
+ $this->_redirect('*/*/');
139
+ }
140
+ }
141
+
142
+ ?>
app/code/community/Listrak/Remarketing/controllers/CartController.php CHANGED
@@ -56,13 +56,12 @@ class Listrak_Remarketing_CartController extends Mage_Core_Controller_Front_Acti
56
  $qs = $this->getRequest()->getParams();
57
  unset($qs["redirectUrl"]);
58
  unset($qs["ltksid"]);
59
- $qs["_secure"] = Mage::app()->getStore()->isCurrentlySecure();
60
 
61
- if(!$this->getRequest()->getParam('redirectUrl')) {
62
- return $this->_redirect('checkout/cart/', $qs);
 
63
  }
64
 
65
- return $this->_redirect($this->getRequest()->getParam('redirectUrl'), $qs);
66
  }
67
  }
68
-
56
  $qs = $this->getRequest()->getParams();
57
  unset($qs["redirectUrl"]);
58
  unset($qs["ltksid"]);
 
59
 
60
+ $url = $this->getRequest()->getParam('redirectUrl');
61
+ if(!$url) {
62
+ $url = 'checkout/cart/';
63
  }
64
 
65
+ return $this->_redirect($url, array('_query' => $qs, '_secure' => Mage::app()->getStore()->isCurrentlySecure()));
66
  }
67
  }
 
app/code/community/Listrak/Remarketing/etc/adminhtml.xml CHANGED
@@ -20,16 +20,21 @@
20
  <sort_order>0</sort_order>
21
  <action>remarketing/adminhtml_abandonedcartreport</action>
22
  </abandonedcartreport>
 
 
 
 
 
23
  </children>
24
  </remarketing>
25
  </menu>
26
- <acl>
27
  <resources>
28
  <admin>
29
  <children>
30
  <remarketing translate="title" module="remarketing">
31
  <title>Listrak Remarketing</title>
32
- <sort_order>200</sort_order>
33
  <children>
34
  <emailcapture translate="title">
35
  <title>Email Capture</title>
@@ -39,18 +44,22 @@
39
  <title>Abandoned Carts</title>
40
  <sort_order>200</sort_order>
41
  </abandonedcartreport>
 
 
 
 
42
  </children>
43
  </remarketing>
44
  <system>
45
  <children>
46
  <config>
47
- <children>
48
- <remarketing translate="title">
49
- <title>Listrak Newsletter</title>
50
- <sort_order>40</sort_order>
51
- </remarketing>
52
- </children>
53
- </config>
54
  </children>
55
  </system>
56
  </children>
20
  <sort_order>0</sort_order>
21
  <action>remarketing/adminhtml_abandonedcartreport</action>
22
  </abandonedcartreport>
23
+ <productattributes module="remarketing">
24
+ <title>Product Attributes</title>
25
+ <sort_order>2</sort_order>
26
+ <action>remarketing/adminhtml_productattributes</action>
27
+ </productattributes>
28
  </children>
29
  </remarketing>
30
  </menu>
31
+ <acl>
32
  <resources>
33
  <admin>
34
  <children>
35
  <remarketing translate="title" module="remarketing">
36
  <title>Listrak Remarketing</title>
37
+ <sort_order>200</sort_order>
38
  <children>
39
  <emailcapture translate="title">
40
  <title>Email Capture</title>
44
  <title>Abandoned Carts</title>
45
  <sort_order>200</sort_order>
46
  </abandonedcartreport>
47
+ <productattributes translate="title">
48
+ <title>Product Attributes</title>
49
+ <sort_order>202</sort_order>
50
+ </productattributes>
51
  </children>
52
  </remarketing>
53
  <system>
54
  <children>
55
  <config>
56
+ <children>
57
+ <remarketing translate="title">
58
+ <title>Listrak Newsletter</title>
59
+ <sort_order>40</sort_order>
60
+ </remarketing>
61
+ </children>
62
+ </config>
63
  </children>
64
  </system>
65
  </children>
app/code/community/Listrak/Remarketing/etc/config.xml CHANGED
@@ -5,29 +5,29 @@
5
  */
6
  -->
7
  <config>
8
- <modules>
9
- <Listrak_Remarketing>
10
- <version>1.1.4</version>
11
- </Listrak_Remarketing>
12
- </modules>
13
- <frontend>
14
- <routers>
15
- <listrak_remarketing>
16
- <use>standard</use>
17
- <args>
18
- <module>Listrak_Remarketing</module>
19
- <frontName>remarketing</frontName>
20
- </args>
21
- </listrak_remarketing>
22
- </routers>
23
- <layout>
24
- <updates>
25
- <remarketing>
26
- <file>remarketing.xml</file>
27
- </remarketing>
28
- </updates>
29
- </layout>
30
- <events>
31
  <controller_action_layout_render_before>
32
  <observers>
33
  <listrak_remarketing_observer>
@@ -74,65 +74,68 @@
74
  </observers>
75
  </review_delete_commit_after>
76
  </events>
77
- </frontend>
78
- <global>
79
- <models>
80
- <listrak>
81
- <class>Listrak_Remarketing_Model</class>
82
- <resourceModel>listrak_mysql4</resourceModel>
83
- </listrak>
84
- <listrak_mysql4>
85
- <class>Listrak_Remarketing_Model_Mysql4</class>
86
- <entities>
87
- <click>
88
- <table>listrak_remarketing_click</table>
89
- </click>
90
- <log>
91
- <table>listrak_remarketing_log</table>
92
- </log>
93
- <session>
94
- <table>listrak_remarketing_session</table>
95
- </session>
96
- <session_email>
97
- <table>listrak_remarketing_session_email</table>
98
- </session_email>
99
- <emailcapture>
100
- <table>listrak_remarketing_emailcapture</table>
101
- </emailcapture>
102
- <subscriber_update>
103
- <table>listrak_remarketing_subscriber_update</table>
104
- </subscriber_update>
105
  <review_update>
106
  <table>listrak_remarketing_review_update</table>
107
  </review_update>
108
- </entities>
109
- </listrak_mysql4>
110
- <newsletter>
111
- <rewrite>
112
- <subscriber>Listrak_Remarketing_Model_Subscriber</subscriber>
113
- </rewrite>
114
- </newsletter>
115
- </models>
116
- <resources>
117
- <listrak_remarketing_setup>
118
- <setup>
119
- <module>Listrak_Remarketing</module>
120
- </setup>
121
- <connection>
122
- <use>core_setup</use>
123
- </connection>
124
- </listrak_remarketing_setup>
125
- <listrak_write>
126
- <connection>
127
- <use>core_write</use>
128
- </connection>
129
- </listrak_write>
130
- <listrak_read>
131
- <connection>
132
- <use>core_read</use>
133
- </connection>
134
- </listrak_read>
135
- </resources>
 
 
 
136
  <helpers>
137
  <remarketing>
138
  <class>Listrak_Remarketing_Helper</class>
@@ -143,26 +146,26 @@
143
  <class>Listrak_Remarketing_Block</class>
144
  </remarketing>
145
  </blocks>
146
- </global>
147
- <admin>
148
- <routers>
149
- <remarketing>
150
- <use>admin</use>
151
- <args>
152
- <module>Listrak_Remarketing</module>
153
- <frontName>remarketing</frontName>
154
- </args>
155
- </remarketing>
156
- </routers>
157
- </admin>
158
- <adminhtml>
159
- <layout>
160
- <updates>
161
- <remarketing>
162
- <file>remarketing.xml</file>
163
- </remarketing>
164
- </updates>
165
- </layout>
166
  <events>
167
  <admin_user_load_before>
168
  <observers>
@@ -192,25 +195,28 @@
192
  </observers>
193
  </review_delete_commit_after>
194
  </events>
195
- </adminhtml>
196
- <default>
197
- <remarketing>
198
  <modules>
199
  <core>1</core>
200
  <reviews>0</reviews>
201
  </modules>
202
- <subscription>
203
- <signup_success_email>0</signup_success_email>
204
- <unsubscribe_email>0</unsubscribe_email>
205
- </subscription>
206
- <abandonedcarts>
207
- <abandoned_cart_report_timeout>60</abandoned_cart_report_timeout>
208
- </abandonedcarts>
209
- <modal>
210
- <enabled>0</enabled>
211
- <listrakMerchantID></listrakMerchantID>
212
- <scriptLocation>s1.listrakbi.com/scripts/script.js</scriptLocation>
213
- </modal>
214
- </remarketing>
215
- </default>
 
 
 
216
  </config>
5
  */
6
  -->
7
  <config>
8
+ <modules>
9
+ <Listrak_Remarketing>
10
+ <version>1.1.5</version>
11
+ </Listrak_Remarketing>
12
+ </modules>
13
+ <frontend>
14
+ <routers>
15
+ <listrak_remarketing>
16
+ <use>standard</use>
17
+ <args>
18
+ <module>Listrak_Remarketing</module>
19
+ <frontName>remarketing</frontName>
20
+ </args>
21
+ </listrak_remarketing>
22
+ </routers>
23
+ <layout>
24
+ <updates>
25
+ <remarketing>
26
+ <file>remarketing.xml</file>
27
+ </remarketing>
28
+ </updates>
29
+ </layout>
30
+ <events>
31
  <controller_action_layout_render_before>
32
  <observers>
33
  <listrak_remarketing_observer>
74
  </observers>
75
  </review_delete_commit_after>
76
  </events>
77
+ </frontend>
78
+ <global>
79
+ <models>
80
+ <listrak>
81
+ <class>Listrak_Remarketing_Model</class>
82
+ <resourceModel>listrak_mysql4</resourceModel>
83
+ </listrak>
84
+ <listrak_mysql4>
85
+ <class>Listrak_Remarketing_Model_Mysql4</class>
86
+ <entities>
87
+ <click>
88
+ <table>listrak_remarketing_click</table>
89
+ </click>
90
+ <log>
91
+ <table>listrak_remarketing_log</table>
92
+ </log>
93
+ <session>
94
+ <table>listrak_remarketing_session</table>
95
+ </session>
96
+ <session_email>
97
+ <table>listrak_remarketing_session_email</table>
98
+ </session_email>
99
+ <emailcapture>
100
+ <table>listrak_remarketing_emailcapture</table>
101
+ </emailcapture>
102
+ <subscriber_update>
103
+ <table>listrak_remarketing_subscriber_update</table>
104
+ </subscriber_update>
105
  <review_update>
106
  <table>listrak_remarketing_review_update</table>
107
  </review_update>
108
+ <product_attribute_set_map>
109
+ <table>listrak_remarketing_product_attribute_set_map</table>
110
+ </product_attribute_set_map>
111
+ </entities>
112
+ </listrak_mysql4>
113
+ <newsletter>
114
+ <rewrite>
115
+ <subscriber>Listrak_Remarketing_Model_Subscriber</subscriber>
116
+ </rewrite>
117
+ </newsletter>
118
+ </models>
119
+ <resources>
120
+ <listrak_remarketing_setup>
121
+ <setup>
122
+ <module>Listrak_Remarketing</module>
123
+ </setup>
124
+ <connection>
125
+ <use>core_setup</use>
126
+ </connection>
127
+ </listrak_remarketing_setup>
128
+ <listrak_write>
129
+ <connection>
130
+ <use>core_write</use>
131
+ </connection>
132
+ </listrak_write>
133
+ <listrak_read>
134
+ <connection>
135
+ <use>core_read</use>
136
+ </connection>
137
+ </listrak_read>
138
+ </resources>
139
  <helpers>
140
  <remarketing>
141
  <class>Listrak_Remarketing_Helper</class>
146
  <class>Listrak_Remarketing_Block</class>
147
  </remarketing>
148
  </blocks>
149
+ </global>
150
+ <admin>
151
+ <routers>
152
+ <remarketing>
153
+ <use>admin</use>
154
+ <args>
155
+ <module>Listrak_Remarketing</module>
156
+ <frontName>remarketing</frontName>
157
+ </args>
158
+ </remarketing>
159
+ </routers>
160
+ </admin>
161
+ <adminhtml>
162
+ <layout>
163
+ <updates>
164
+ <remarketing>
165
+ <file>remarketing.xml</file>
166
+ </remarketing>
167
+ </updates>
168
+ </layout>
169
  <events>
170
  <admin_user_load_before>
171
  <observers>
195
  </observers>
196
  </review_delete_commit_after>
197
  </events>
198
+ </adminhtml>
199
+ <default>
200
+ <remarketing>
201
  <modules>
202
  <core>1</core>
203
  <reviews>0</reviews>
204
  </modules>
205
+ <subscription>
206
+ <signup_success_email>0</signup_success_email>
207
+ <unsubscribe_email>0</unsubscribe_email>
208
+ </subscription>
209
+ <abandonedcarts>
210
+ <abandoned_cart_report_timeout>60</abandoned_cart_report_timeout>
211
+ </abandonedcarts>
212
+ <modal>
213
+ <enabled>0</enabled>
214
+ <listrakMerchantID></listrakMerchantID>
215
+ <scriptLocation>s1.listrakbi.com/scripts/script.js</scriptLocation>
216
+ </modal>
217
+ <productcategories>
218
+ <categories_source>default</categories_source>
219
+ </productcategories>
220
+ </remarketing>
221
+ </default>
222
  </config>
app/code/community/Listrak/Remarketing/etc/system.xml CHANGED
@@ -5,16 +5,16 @@
5
  */
6
  -->
7
  <config>
8
- <sections>
9
- <remarketing translate="label" module="remarketing">
10
- <label>Listrak</label>
11
- <tab>customer</tab>
12
- <frontend_type>text</frontend_type>
13
- <sort_order>100</sort_order>
14
- <show_in_default>1</show_in_default>
15
- <show_in_website>1</show_in_website>
16
- <show_in_store>1</show_in_store>
17
- <groups>
18
  <modules translate="label">
19
  <label>Component Options</label>
20
  <frontend_type>text</frontend_type>
@@ -43,88 +43,108 @@
43
  </reviews>
44
  </fields>
45
  </modules>
46
- <subscription translate="label">
47
- <label>Newsletter Options</label>
48
- <frontend_type>text</frontend_type>
49
- <sort_order>2</sort_order>
50
- <show_in_default>1</show_in_default>
51
- <show_in_website>1</show_in_website>
52
- <show_in_store>1</show_in_store>
53
- <fields>
54
- <signup_success_email translate="label">
55
- <label>Signup Success Email</label>
56
- <frontend_type>select</frontend_type>
57
- <source_model>adminhtml/system_config_source_enabledisable</source_model>
58
- <sort_order>2</sort_order>
59
- <show_in_default>1</show_in_default>
60
- <show_in_website>1</show_in_website>
61
- <show_in_store>1</show_in_store>
62
- </signup_success_email>
63
- <unsubscribe_email translate="label">
64
- <label>Unsubscribe Email</label>
65
- <frontend_type>select</frontend_type>
66
- <source_model>adminhtml/system_config_source_enabledisable</source_model>
67
- <sort_order>3</sort_order>
68
- <show_in_default>1</show_in_default>
69
- <show_in_website>1</show_in_website>
70
- <show_in_store>1</show_in_store>
71
- </unsubscribe_email>
72
- </fields>
73
- </subscription>
74
- <modal translate="label">
75
- <label>Email Signup Popup</label>
76
- <frontend_type>text</frontend_type>
77
- <sort_order>3</sort_order>
78
- <show_in_default>1</show_in_default>
79
- <show_in_website>1</show_in_website>
80
- <show_in_store>1</show_in_store>
81
- <fields>
82
- <enabled translate="label">
83
- <label>Enabled</label>
84
- <frontend_type>select</frontend_type>
85
- <source_model>adminhtml/system_config_source_enabledisable</source_model>
86
- <sort_order>1</sort_order>
87
- <show_in_default>1</show_in_default>
88
- <show_in_website>1</show_in_website>
89
- <show_in_store>1</show_in_store>
90
- </enabled>
91
- <listrakMerchantID translate="label">
92
- <label>Merchant ID</label>
93
- <frontend_type>text</frontend_type>
94
- <sort_order>2</sort_order>
95
- <show_in_default>1</show_in_default>
96
- <show_in_website>1</show_in_website>
97
- <show_in_store>1</show_in_store>
98
- </listrakMerchantID>
99
- <scriptLocation translate="label">
100
- <label>Script Location</label>
101
- <frontend_type>text</frontend_type>
102
- <sort_order>3</sort_order>
103
- <show_in_default>1</show_in_default>
104
- <show_in_website>1</show_in_website>
105
- <show_in_store>1</show_in_store>
106
- </scriptLocation>
107
- </fields>
108
- </modal>
109
- <abandonedcarts translate="label">
110
- <label>Abandoned Carts</label>
111
- <frontend_type>text</frontend_type>
112
- <sort_order>4</sort_order>
113
- <show_in_default>1</show_in_default>
114
- <show_in_website>1</show_in_website>
115
- <show_in_store>1</show_in_store>
116
- <fields>
117
- <abandoned_cart_report_timeout translate="label">
118
- <label>Abandoned Cart Report Timeout</label>
119
- <frontend_type>text</frontend_type>
120
- <sort_order>2</sort_order>
121
- <show_in_default>1</show_in_default>
122
- <show_in_website>1</show_in_website>
123
- <show_in_store>1</show_in_store>
124
- </abandoned_cart_report_timeout>
125
- </fields>
126
- </abandonedcarts>
127
- </groups>
128
- </remarketing>
129
- </sections>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
130
  </config>
5
  */
6
  -->
7
  <config>
8
+ <sections>
9
+ <remarketing translate="label" module="remarketing">
10
+ <label>Listrak</label>
11
+ <tab>customer</tab>
12
+ <frontend_type>text</frontend_type>
13
+ <sort_order>100</sort_order>
14
+ <show_in_default>1</show_in_default>
15
+ <show_in_website>1</show_in_website>
16
+ <show_in_store>1</show_in_store>
17
+ <groups>
18
  <modules translate="label">
19
  <label>Component Options</label>
20
  <frontend_type>text</frontend_type>
43
  </reviews>
44
  </fields>
45
  </modules>
46
+ <subscription translate="label">
47
+ <label>Newsletter Options</label>
48
+ <frontend_type>text</frontend_type>
49
+ <sort_order>2</sort_order>
50
+ <show_in_default>1</show_in_default>
51
+ <show_in_website>1</show_in_website>
52
+ <show_in_store>1</show_in_store>
53
+ <fields>
54
+ <signup_success_email translate="label">
55
+ <label>Signup Success Email</label>
56
+ <frontend_type>select</frontend_type>
57
+ <source_model>adminhtml/system_config_source_enabledisable</source_model>
58
+ <sort_order>2</sort_order>
59
+ <show_in_default>1</show_in_default>
60
+ <show_in_website>1</show_in_website>
61
+ <show_in_store>1</show_in_store>
62
+ </signup_success_email>
63
+ <unsubscribe_email translate="label">
64
+ <label>Unsubscribe Email</label>
65
+ <frontend_type>select</frontend_type>
66
+ <source_model>adminhtml/system_config_source_enabledisable</source_model>
67
+ <sort_order>3</sort_order>
68
+ <show_in_default>1</show_in_default>
69
+ <show_in_website>1</show_in_website>
70
+ <show_in_store>1</show_in_store>
71
+ </unsubscribe_email>
72
+ </fields>
73
+ </subscription>
74
+ <modal translate="label">
75
+ <label>Email Signup Popup</label>
76
+ <frontend_type>text</frontend_type>
77
+ <sort_order>3</sort_order>
78
+ <show_in_default>1</show_in_default>
79
+ <show_in_website>1</show_in_website>
80
+ <show_in_store>1</show_in_store>
81
+ <fields>
82
+ <enabled translate="label">
83
+ <label>Enabled</label>
84
+ <frontend_type>select</frontend_type>
85
+ <source_model>adminhtml/system_config_source_enabledisable</source_model>
86
+ <sort_order>1</sort_order>
87
+ <show_in_default>1</show_in_default>
88
+ <show_in_website>1</show_in_website>
89
+ <show_in_store>1</show_in_store>
90
+ </enabled>
91
+ <listrakMerchantID translate="label">
92
+ <label>Merchant ID</label>
93
+ <frontend_type>text</frontend_type>
94
+ <sort_order>2</sort_order>
95
+ <show_in_default>1</show_in_default>
96
+ <show_in_website>1</show_in_website>
97
+ <show_in_store>1</show_in_store>
98
+ </listrakMerchantID>
99
+ <scriptLocation translate="label">
100
+ <label>Script Location</label>
101
+ <frontend_type>text</frontend_type>
102
+ <sort_order>3</sort_order>
103
+ <show_in_default>1</show_in_default>
104
+ <show_in_website>1</show_in_website>
105
+ <show_in_store>1</show_in_store>
106
+ </scriptLocation>
107
+ </fields>
108
+ </modal>
109
+ <abandonedcarts translate="label">
110
+ <label>Abandoned Carts</label>
111
+ <frontend_type>text</frontend_type>
112
+ <sort_order>4</sort_order>
113
+ <show_in_default>1</show_in_default>
114
+ <show_in_website>1</show_in_website>
115
+ <show_in_store>1</show_in_store>
116
+ <fields>
117
+ <abandoned_cart_report_timeout translate="label">
118
+ <label>Abandoned Cart Report Timeout</label>
119
+ <frontend_type>text</frontend_type>
120
+ <sort_order>2</sort_order>
121
+ <show_in_default>1</show_in_default>
122
+ <show_in_website>1</show_in_website>
123
+ <show_in_store>1</show_in_store>
124
+ </abandoned_cart_report_timeout>
125
+ </fields>
126
+ </abandonedcarts>
127
+ <productcategories translate="label">
128
+ <label>Product Categories</label>
129
+ <frontend_type>text</frontend_type>
130
+ <sort_order>5</sort_order>
131
+ <show_in_default>1</show_in_default>
132
+ <show_in_website>0</show_in_website>
133
+ <show_in_store>0</show_in_store>
134
+ <fields>
135
+ <categories_source translate="label">
136
+ <label>Source</label>
137
+ <comment>More options under Listrak > Product Attributes.</comment>
138
+ <frontend_type>select</frontend_type>
139
+ <source_model>listrak/product_category_source</source_model>
140
+ <sort_order>1</sort_order>
141
+ <show_in_default>1</show_in_default>
142
+ <show_in_website>0</show_in_website>
143
+ <show_in_store>0</show_in_store>
144
+ </categories_source>
145
+ </fields>
146
+ </productcategories>
147
+ </groups>
148
+ </remarketing>
149
+ </sections>
150
  </config>
app/code/community/Listrak/Remarketing/etc/wsdl.xml CHANGED
@@ -1,870 +1,897 @@
1
  <?xml version="1.0" encoding="UTF-8"?>
2
  <!--
3
- /**
4
- * Listrak Remarketing Magento Extension Ver. 1.0.0 - © 2011 Listrak, Inc.
5
- */
6
  -->
7
  <definitions xmlns:typens="urn:{{var wsdl.name}}" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
8
  xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/"
9
  name="{{var wsdl.name}}" targetNamespace="urn:{{var wsdl.name}}">
10
- <types>
11
- <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:Magento">
12
- <import namespace="http://schemas.xmlsoap.org/soap/encoding/" schemaLocation="http://schemas.xmlsoap.org/soap/encoding/" />
13
- <complexType name="ArrayOfString">
14
- <complexContent>
15
- <restriction base="soapenc:Array">
16
- <attribute ref="soapenc:arrayType" wsdl:arrayType="xsd:string[]"/>
17
- </restriction>
18
- </complexContent>
19
- </complexType>
20
- <!-- session -->
21
- <complexType name="ListrakRemarketingSessionEntity">
22
- <all>
23
- <element name="session_id" type="xsd:string" minOccurs="0"/>
24
- <element name="store_id" type="xsd:string" minOccurs="0"/>
25
- <element name="created_at" type="xsd:string" minOccurs="0"/>
26
- <element name="updated_at" type="xsd:string" minOccurs="0"/>
27
- <element name="quote_id" type="xsd:string" minOccurs="0"/>
28
- <element name="ips" type="xsd:string" minOccurs="0"/>
29
- <element name="pi_id" type="xsd:string" minOccurs="0"/>
30
- <element name="customer" type="typens:ListrakRemarketingCustomerEntity" minOccurs="0"/>
31
- <element name="emails" type="typens:ArrayOfListrakRemarketingSessionEmail" minOccurs="0"/>
32
- <element name="clicks" type="typens:ArrayOfListrakRemarketingClick" minOccurs="0"/>
33
- </all>
34
- </complexType>
35
- <complexType name="ListrakRemarketingSessionEmailEntity">
36
- <all>
37
- <element name="email" type="xsd:string" minOccurs="0"/>
38
- <element name="created_at" type="xsd:string" minOccurs="0"/>
39
- <element name="page" type="xsd:string" minOccurs="0"/>
40
- <element name="field_id" type="xsd:string" minOccurs="0"/>
41
- </all>
42
- </complexType>
43
- <complexType name="ArrayOfListrakRemarketingSessionEmail">
44
- <complexContent>
45
- <restriction base="soapenc:Array">
46
- <attribute ref="soapenc:arrayType" wsdl:arrayType="typens:ListrakRemarketingSessionEmailEntity[]"/>
47
- </restriction>
48
- </complexContent>
49
- </complexType>
50
-
51
- <!-- abandoned cart -->
52
- <complexType name="ListrakRemarketingAbandonedCartEntity">
53
- <all>
54
- <element name="store_id" type="xsd:string" minOccurs="0"/>
55
- <element name="session" type="typens:ListrakRemarketingSessionEntity" minOccurs="0"/>
56
- <element name="products" type="typens:ArrayOfListrakRemarketingAbandonedCartProduct" minOccurs="0"/>
57
- </all>
58
- </complexType>
59
- <complexType name="ArrayOfListrakRemarketingAbandonedCart">
60
- <complexContent>
61
- <restriction base="soapenc:Array">
62
- <attribute ref="soapenc:arrayType" wsdl:arrayType="typens:ListrakRemarketingAbandonedCartEntity[]"/>
63
- </restriction>
64
- </complexContent>
65
- </complexType>
66
- <complexType name="ListrakRemarketingAbandonedCartProductEntity">
67
- <all>
68
- <element name="entity_id" type="xsd:string" minOccurs="0"/>
69
- <element name="sku" type="xsd:string" minOccurs="0"/>
70
- <element name="name" type="xsd:string" minOccurs="0"/>
71
- <element name="price" type="xsd:string" minOccurs="0"/>
72
- <element name="special_price" type="xsd:string" minOccurs="0"/>
73
- <element name="special_from_date" type="xsd:string" minOccurs="0"/>
74
- <element name="special_to_date" type="xsd:string" minOccurs="0"/>
75
- <element name="cost" type="xsd:string" minOccurs="0"/>
76
- <element name="description" type="xsd:string" minOccurs="0"/>
77
- <element name="short_description" type="xsd:string" minOccurs="0"/>
78
- <element name="weight" type="xsd:string" minOccurs="0"/>
79
- <element name="url_key" type="xsd:string" minOccurs="0"/>
80
- <element name="url_path" type="xsd:string" minOccurs="0"/>
81
- <element name="image" type="xsd:string" minOccurs="0"/>
82
- <element name="small_image" type="xsd:string" minOccurs="0"/>
83
- <element name="thumbnail" type="xsd:string" minOccurs="0"/>
84
- <element name="qty" type="xsd:string" minOccurs="0"/>
85
- </all>
86
- </complexType>
87
- <complexType name="ArrayOfListrakRemarketingAbandonedCartProduct">
88
- <complexContent>
89
- <restriction base="soapenc:Array">
90
- <attribute ref="soapenc:arrayType" wsdl:arrayType="typens:ListrakRemarketingAbandonedCartProductEntity[]"/>
91
- </restriction>
92
- </complexContent>
93
- </complexType>
94
-
95
- <!-- product -->
96
- <complexType name="ListrakRemarketingProductEntity">
97
- <all>
98
- <element name="entity_id" type="xsd:string" minOccurs="0"/>
99
- <element name="sku" type="xsd:string" minOccurs="0"/>
100
- <element name="name" type="xsd:string" minOccurs="0"/>
101
- <element name="price" type="xsd:string" minOccurs="0"/>
102
- <element name="special_price" type="xsd:string" minOccurs="0"/>
103
- <element name="special_from_date" type="xsd:string" minOccurs="0"/>
104
- <element name="special_to_date" type="xsd:string" minOccurs="0"/>
105
- <element name="cost" type="xsd:string" minOccurs="0"/>
106
- <element name="description" type="xsd:string" minOccurs="0"/>
107
- <element name="short_description" type="xsd:string" minOccurs="0"/>
108
- <element name="weight" type="xsd:string" minOccurs="0"/>
109
- <element name="url_key" type="xsd:string" minOccurs="0"/>
110
- <element name="url_path" type="xsd:string" minOccurs="0"/>
111
- <element name="image" type="xsd:string" minOccurs="0"/>
112
- <element name="small_image" type="xsd:string" minOccurs="0"/>
113
- <element name="thumbnail" type="xsd:string" minOccurs="0"/>
114
- <element name="qty" type="xsd:string" minOccurs="0"/>
115
- <element name="parent_id" type="xsd:string" minOccurs="0"/>
116
- <element name="parent_sku" type="xsd:string" minOccurs="0"/>
117
- </all>
118
- </complexType>
119
- <complexType name="ArrayOfListrakRemarketingProduct">
120
- <complexContent>
121
- <restriction base="soapenc:Array">
122
- <attribute ref="soapenc:arrayType" wsdl:arrayType="typens:ListrakRemarketingProductEntity[]"/>
123
- </restriction>
124
- </complexContent>
125
- </complexType>
126
-
127
- <!-- click -->
128
- <complexType name="ListrakRemarketingClickEntity">
129
- <all>
130
- <element name="store_id" type="xsd:string" minOccurs="0"/>
131
- <element name="customer_id" type="xsd:string" minOccurs="0"/>
132
- <element name="customer_email" type="xsd:string" minOccurs="0"/>
133
- <element name="querystring" type="xsd:string" minOccurs="0"/>
134
- <element name="click_date" type="xsd:string" minOccurs="0"/>
135
- <element name="token_uid" type="xsd:string" minOccurs="0"/>
136
- <element name="session_uid" type="xsd:string" minOccurs="0"/>
137
- <element name="pi_id" type="xsd:string" minOccurs="0"/>
138
- </all>
139
- </complexType>
140
- <complexType name="ArrayOfListrakRemarketingClick">
141
- <complexContent>
142
- <restriction base="soapenc:Array">
143
- <attribute ref="soapenc:arrayType" wsdl:arrayType="typens:ListrakRemarketingClickEntity[]"/>
144
- </restriction>
145
- </complexContent>
146
- </complexType>
147
-
148
- <!-- log -->
149
- <complexType name="ListrakRemarketingLogEntity">
150
- <all>
151
- <element name="store_id" type="xsd:string" minOccurs="0"/>
152
- <element name="message" type="xsd:string" minOccurs="0"/>
153
- <element name="date_entered" type="xsd:string" minOccurs="0"/>
154
- <element name="log_type_id" type="xsd:string" minOccurs="0"/>
155
- </all>
156
- </complexType>
157
- <complexType name="ArrayOfListrakRemarketingLog">
158
- <complexContent>
159
- <restriction base="soapenc:Array">
160
- <attribute ref="soapenc:arrayType" wsdl:arrayType="typens:ListrakRemarketingLogEntity[]"/>
161
- </restriction>
162
- </complexContent>
163
- </complexType>
164
-
165
- <!-- order -->
166
- <complexType name="ListrakRemarketingOrderEntity">
167
- <all>
168
- <element name="info" type="typens:ListrakRemarketingOrderInfoEntity" minOccurs="0"/>
169
- <element name="billing_address" type="typens:ListrakRemarketingOrderAddressEntity" minOccurs="0"/>
170
- <element name="shipping_address" type="typens:ListrakRemarketingOrderAddressEntity" minOccurs="0"/>
171
- <element name="product" type="typens:ArrayOfListrakRemarketingProductShort" minOccurs="0"/>
172
- <element name="session" type="typens:ListrakRemarketingSessionEntity" minOccurs="0"/>
173
- </all>
174
- </complexType>
175
- <complexType name="ArrayOfListrakRemarketingOrder">
176
- <complexContent>
177
- <restriction base="soapenc:Array">
178
- <attribute ref="soapenc:arrayType" wsdl:arrayType="typens:ListrakRemarketingOrderEntity[]" />
179
- </restriction>
180
- </complexContent>
181
- </complexType>
182
- <complexType name="ListrakRemarketingOrderInfoEntity">
183
- <all>
184
- <element name="entity_id" type="xsd:string" minOccurs="0"/>
185
- <element name="order_id" type="xsd:string" minOccurs="0"/>
186
- <element name="status" type="xsd:string" minOccurs="0" />
187
- <element name="customer_firstname" type="xsd:string" minOccurs="0"/>
188
- <element name="customer_lastname" type="xsd:string" minOccurs="0"/>
189
- <element name="customer_email" type="xsd:string" minOccurs="0"/>
190
- <element name="subtotal" type="xsd:string" minOccurs="0"/>
191
- <element name="tax_amount" type="xsd:string" minOccurs="0"/>
192
- <element name="shipping_amount" type="xsd:string" minOccurs="0"/>
193
- <element name="grand_total" type="xsd:string" minOccurs="0"/>
194
- <element name="billing_firstname" type="xsd:string" minOccurs="0"/>
195
- <element name="created_at" type="xsd:string" minOccurs="0"/>
196
- <element name="updated_at" type="xsd:string" minOccurs="0"/>
197
- </all>
198
- </complexType>
199
- <complexType name="ListrakRemarketingOrderAddressEntity">
200
- <all>
201
- <element name="firstname" type="xsd:string" minOccurs="0"/>
202
- <element name="lastname" type="xsd:string" minOccurs="0"/>
203
- <element name="company" type="xsd:string" minOccurs="0"/>
204
- <element name="street" type="xsd:string" minOccurs="0"/>
205
- <element name="city" type="xsd:string" minOccurs="0"/>
206
- <element name="region" type="xsd:string" minOccurs="0"/>
207
- <element name="postcode" type="xsd:string" minOccurs="0"/>
208
- <element name="country" type="xsd:string" minOccurs="0"/>
209
- </all>
210
- </complexType>
211
- <complexType name="ListrakRemarketingProductShortEntity">
212
- <all>
213
- <element name="sku" type="xsd:string" minOccurs="0"/>
214
- <element name="name" type="xsd:string" minOccurs="0"/>
215
- <element name="price" type="xsd:string" minOccurs="0"/>
216
- <element name="qty_ordered" type="xsd:string" minOccurs="0"/>
217
- </all>
218
- </complexType>
219
- <complexType name="ArrayOfListrakRemarketingProductShort">
220
- <complexContent>
221
- <restriction base="soapenc:Array">
222
- <attribute ref="soapenc:arrayType" wsdl:arrayType="typens:ListrakRemarketingProductShortEntity[]"/>
223
- </restriction>
224
- </complexContent>
225
- </complexType>
226
-
227
- <!-- order status -->
228
- <complexType name="ListrakRemarketingOrderStatusEntity">
229
- <all>
230
- <element name="increment_id" type="xsd:string" minOccurs="0"/>
231
- <element name="status" type="xsd:string" minOccurs="0" />
232
- <element name="updated_at" type="xsd:string" minOccurs="0"/>
233
- </all>
234
- </complexType>
235
- <complexType name="ArrayOfListrakRemarketingOrderStatus">
236
- <complexContent>
237
- <restriction base="soapenc:Array">
238
- <attribute ref="soapenc:arrayType" wsdl:arrayType="typens:ListrakRemarketingOrderStatusEntity[]" />
239
- </restriction>
240
- </complexContent>
241
- </complexType>
242
-
243
- <!-- customer -->
244
- <complexType name="ListrakRemarketingCustomerEntity">
245
- <all>
246
- <element name="entity_id" type="xsd:string" minOccurs="0"/>
247
- <element name="firstname" type="xsd:string" minOccurs="0"/>
248
- <element name="lastname" type="xsd:string" minOccurs="0"/>
249
- <element name="email" type="xsd:string" minOccurs="0"/>
250
- <element name="website_id" type="xsd:string" minOccurs="0"/>
251
- <element name="store_id" type="xsd:string" minOccurs="0"/>
252
- </all>
253
- </complexType>
254
- <complexType name="ArrayOfListrakRemarketingCustomer">
255
- <complexContent>
256
- <restriction base="soapenc:Array">
257
- <attribute ref="soapenc:arrayType" wsdl:arrayType="typens:ListrakRemarketingCustomerEntity[]"/>
258
- </restriction>
259
- </complexContent>
260
- </complexType>
261
-
262
- <!-- subscriber -->
263
- <complexType name="ListrakRemarketingSubscriberEntity">
264
- <all>
265
- <element name="subscriber_id" type="xsd:string" minOccurs="0"/>
266
- <element name="store_id" type="xsd:string" minOccurs="0"/>
267
- <element name="customer_id" type="xsd:string" minOccurs="0"/>
268
- <element name="change_status_at" type="xsd:string" minOccurs="0"/>
269
- <element name="subscriber_email" type="xsd:string" minOccurs="0"/>
270
- <element name="subscriber_status" type="xsd:string" minOccurs="0"/>
271
- <element name="updated_at" type="xsd:string" minOccurs="0"/>
272
- </all>
273
- </complexType>
274
- <complexType name="ArrayOfListrakRemarketingSubscriber">
275
- <complexContent>
276
- <restriction base="soapenc:Array">
277
- <attribute ref="soapenc:arrayType" wsdl:arrayType="typens:ListrakRemarketingSubscriberEntity[]"/>
278
- </restriction>
279
- </complexContent>
280
- </complexType>
281
-
282
- <complexType name="ListrakRemarketingInfoEntity">
283
- <all>
284
- <element name="magentoVersion" type="xsd:string" minOccurs="0"/>
285
- <element name="listrakSettings" type="typens:ListrakRemarketingSettingEntity" minOccurs="0"/>
286
- <element name="modules" type="typens:ArrayOfString" minOccurs="0"/>
287
- <element name="ini" type="typens:ArrayOfString" minOccurs="0"/>
288
- <element name="classes" type="xsd:string" minOccurs="0"/>
289
- <element name="counts" type="xsd:string" minOccurs="0"/>
290
- </all>
291
- </complexType>
292
- <complexType name="ListrakRemarketingSettingEntity">
293
- <all>
294
- <element name="coreEnabled" type="xsd:string" minOccurs="0"/>
295
- <element name="reviewsApiEnabled" type="xsd:string" minOccurs="0"/>
296
- </all>
297
- </complexType>
298
 
299
- <!-- review list / review update list -->
300
- <complexType name="ListrakRemarketingReviewListResult">
301
- <complexContent>
302
- <restriction base="soapenc:Array">
303
- <attribute ref="soapenc:arrayType" wsdl:arrayType="typens:ListrakRemarketingReviewListItem[]" />
304
- </restriction>
305
- </complexContent>
306
- </complexType>
307
- <complexType name="ListrakRemarketingReviewListItem">
308
- <all>
309
- <element name="update_id" type="xsd:string" minOccurs="0"/>
310
- <element name="review_id" type="xsd:string" minOccurs="0"/>
311
- <element name="product_id" type="xsd:string" minOccurs="0"/>
312
- <element name="title" type="xsd:string" minOccurs="0"/>
313
- <element name="text" type="xsd:string" minOccurs="0"/>
314
- <element name="overall_rating" type="xsd:string" minOccurs="0"/>
315
- <element name="created_at" type="xsd:string" minOccurs="0"/>
316
- <element name="updated_at" type="xsd:string" minOccurs="0"/>
317
- <element name="reviewer_name" type="xsd:string" minOccurs="0"/>
318
- <element name="email" type="xsd:string" minOccurs="0"/>
319
- <element name="status_id" type="xsd:string" minOccurs="0"/>
320
- <element name="status_code" type="xsd:string" minOccurs="0"/>
321
- <element name="ratings" type="typens:ArrayOfListrakRemarketingReviewRating" minOccurs="0"/>
322
- </all>
323
- </complexType>
324
- <complexType name="ArrayOfListrakRemarketingReviewRating">
325
- <complexContent>
326
- <restriction base="soapenc:Array">
327
- <attribute ref="soapenc:arrayType" wsdl:arrayType="typens:ListrakRemarketingReviewRatingItem[]" />
328
- </restriction>
329
- </complexContent>
330
- </complexType>
331
- <complexType name="ListrakRemarketingReviewRatingItem">
332
- <all>
333
- <element name="rating_id" type="xsd:string" minOccurs="0"/>
334
- <element name="rating_code" type="xsd:string" minOccurs="0"/>
335
- <element name="rating" type="xsd:string" minOccurs="0"/>
336
- </all>
337
- </complexType>
 
 
 
 
 
338
 
339
- <!-- rating summary list / rating summary update list -->
340
- <complexType name="ListrakRemarketingRatingSummaryListResult">
341
- <complexContent>
342
- <restriction base="soapenc:Array">
343
- <attribute ref="soapenc:arrayType" wsdl:arrayType="typens:ListrakRemarketingRatingSummaryItem[]" />
344
- </restriction>
345
- </complexContent>
346
- </complexType>
347
- <complexType name="ListrakRemarketingRatingSummaryItem">
348
- <all>
349
- <element name="update_id" type="xsd:string" minOccurs="0"/>
350
- <element name="rating_summary_id" type="xsd:string" minOccurs="0"/>
351
- <element name="product_id" type="xsd:string" minOccurs="0"/>
352
- <element name="updated_at" type="xsd:string" minOccurs="0"/>
353
- <element name="total_reviews" type="xsd:string" minOccurs="0"/>
354
- <element name="rating" type="xsd:string" minOccurs="0"/>
355
- <element name="ratings" type="typens:ArrayOfListrakRemarketingRatingSummaryAttribute" minOccurs="0"/>
356
- </all>
357
- </complexType>
358
- <complexType name="ArrayOfListrakRemarketingRatingSummaryAttribute">
359
- <complexContent>
360
- <restriction base="soapenc:Array">
361
- <attribute ref="soapenc:arrayType" wsdl:arrayType="typens:ListrakRemarketingRatingSummaryAttributeItem[]" />
362
- </restriction>
363
- </complexContent>
364
- </complexType>
365
- <complexType name="ListrakRemarketingRatingSummaryAttributeItem">
366
- <all>
367
- <element name="rating_id" type="xsd:string" minOccurs="0"/>
368
- <element name="rating_code" type="xsd:string" minOccurs="0"/>
369
- <element name="rating" type="xsd:string" minOccurs="0"/>
370
- </all>
371
- </complexType>
372
-
373
- <!-- review delete list -->
374
- <complexType name="ListrakRemarketingReviewDeleteListResult">
375
- <complexContent>
376
- <restriction base="soapenc:Array">
377
- <attribute ref="soapenc:arrayType" wsdl:arrayType="typens:ListrakRemarketingDeletedReview[]" />
378
- </restriction>
379
- </complexContent>
380
- </complexType>
381
- <complexType name="ListrakRemarketingDeletedReview">
382
- <all>
383
- <element name="delete_id" type="xsd:string" minOccurs="0"/>
384
- <element name="review_id" type="xsd:string" minOccurs="0"/>
385
- </all>
386
- </complexType>
387
-
388
- <!-- review update purge -->
389
- <complexType name="ListrakRemarketingReviewUpdatePurgeResult">
390
- <all>
391
- <element name="count" type="xsd:string" minOccurs="0"/>
392
- <element name="before" type="xsd:string" minOccurs="0"/>
393
- </all>
394
- </complexType>
395
- </schema>
396
- </types>
397
- <message name="listrakRemarketingAbandonedCartListRequest">
398
- <part name="sessionId" type="xsd:string" />
399
- <part name="storeId" type="xsd:string" />
400
- <part name="startDate" type="xsd:string" />
401
- <part name="endDate" type="xsd:string" />
402
- <part name="perPage" type="xsd:int" />
403
- <part name="page" type="xsd:int" />
404
- </message>
405
- <message name="listrakRemarketingAbandonedCartListResponse">
406
- <part name="result" type="typens:ArrayOfListrakRemarketingAbandonedCart" />
407
- </message>
408
- <message name="listrakRemarketingAbandonedCartPurgeRequest">
409
- <part name="sessionId" type="xsd:string" />
410
- <part name="storeId" type="xsd:string" />
411
- <part name="endDate" type="xsd:string" />
412
- </message>
413
- <message name="listrakRemarketingAbandonedCartPurgeResponse">
414
- <part name="result" type="xsd:string" />
415
- </message>
416
- <message name="listrakRemarketingClickListRequest">
417
- <part name="sessionId" type="xsd:string" />
418
- <part name="storeId" type="xsd:string" />
419
- <part name="startDate" type="xsd:string" />
420
- <part name="endDate" type="xsd:string" />
421
- <part name="perPage" type="xsd:int" />
422
- <part name="page" type="xsd:int" />
423
- </message>
424
- <message name="listrakRemarketingClickListResponse">
425
- <part name="result" type="typens:ArrayOfListrakRemarketingClick" />
426
- </message>
427
- <message name="listrakRemarketingClickPurgeRequest">
428
- <part name="sessionId" type="xsd:string" />
429
- <part name="storeId" type="xsd:string" />
430
- <part name="endDate" type="xsd:string" />
431
- </message>
432
- <message name="listrakRemarketingClickPurgeResponse">
433
- <part name="result" type="xsd:string" />
434
- </message>
435
- <message name="listrakRemarketingLogListRequest">
436
- <part name="sessionId" type="xsd:string" />
437
- <part name="storeId" type="xsd:string" />
438
- <part name="startDate" type="xsd:string" />
439
- <part name="endDate" type="xsd:string" />
440
- <part name="perPage" type="xsd:int" />
441
- <part name="page" type="xsd:int" />
442
- <part name="logTypeId" type="xsd:string" />
443
- </message>
444
- <message name="listrakRemarketingLogListResponse">
445
- <part name="result" type="typens:ArrayOfListrakRemarketingLog" />
446
- </message>
447
- <message name="listrakRemarketingLogPurgeRequest">
448
- <part name="sessionId" type="xsd:string" />
449
- <part name="storeId" type="xsd:string" />
450
- <part name="endDate" type="xsd:string" />
451
- </message>
452
- <message name="listrakRemarketingLogPurgeResponse">
453
- <part name="result" type="xsd:string" />
454
- </message>
455
- <message name="listrakRemarketingLogToggleRequest">
456
- <part name="sessionId" type="xsd:string" />
457
- <part name="storeId" type="xsd:string" />
458
- <part name="onOff" type="xsd:string" />
459
- </message>
460
- <message name="listrakRemarketingLogToggleResponse">
461
- <part name="result" type="xsd:string" />
462
- </message>
463
- <message name="listrakRemarketingOrderListRequest">
464
- <part name="sessionId" type="xsd:string" />
465
- <part name="storeId" type="xsd:string" />
466
- <part name="startDate" type="xsd:string" />
467
- <part name="endDate" type="xsd:string" />
468
- <part name="perPage" type="xsd:int" />
469
- <part name="page" type="xsd:int" />
470
- </message>
471
- <message name="listrakRemarketingOrderListResponse">
472
- <part name="result" type="typens:ArrayOfListrakRemarketingOrder" />
473
- </message>
474
- <message name="listrakRemarketingOrderStatusListRequest">
475
- <part name="sessionId" type="xsd:string" />
476
- <part name="storeId" type="xsd:string" />
477
- <part name="startDate" type="xsd:string" />
478
- <part name="endDate" type="xsd:string" />
479
- <part name="perPage" type="xsd:int" />
480
- <part name="page" type="xsd:int" />
481
- <part name="filters" type="typens:filters" />
482
- </message>
483
- <message name="listrakRemarketingOrderStatusListResponse">
484
- <part name="result" type="typens:ArrayOfListrakRemarketingOrderStatus" />
485
- </message>
486
- <message name="listrakRemarketingProductListRequest">
487
- <part name="sessionId" type="xsd:string" />
488
- <part name="storeId" type="xsd:string" />
489
- <part name="perPage" type="xsd:int" />
490
- <part name="page" type="xsd:int" />
491
- </message>
492
- <message name="listrakRemarketingProductListResponse">
493
- <part name="result" type="typens:ArrayOfListrakRemarketingProduct" />
494
- </message>
495
- <message name="listrakRemarketingSubscriberListRequest">
496
- <part name="sessionId" type="xsd:string" />
497
- <part name="storeId" type="xsd:string" />
498
- <part name="startDate" type="xsd:string" />
499
- <part name="perPage" type="xsd:int" />
500
- <part name="page" type="xsd:int" />
501
- </message>
502
- <message name="listrakRemarketingSubscriberListResponse">
503
- <part name="result" type="typens:ArrayOfListrakRemarketingSubscriber" />
504
- </message>
505
- <message name="listrakRemarketingSubscriberPurgeRequest">
506
- <part name="sessionId" type="xsd:string" />
507
- <part name="endDate" type="xsd:string" />
508
- </message>
509
- <message name="listrakRemarketingSubscriberPurgeResponse">
510
- <part name="result" type="xsd:string" />
511
- </message>
512
- <message name="listrakRemarketingCustomerListRequest">
513
- <part name="sessionId" type="xsd:string" />
514
- <part name="storeId" type="xsd:string" />
515
- <part name="websiteId" type="xsd:int" />
516
- <part name="perPage" type="xsd:int" />
517
- <part name="page" type="xsd:int" />
518
- </message>
519
- <message name="listrakRemarketingCustomerListResponse">
520
- <part name="result" type="typens:ArrayOfListrakRemarketingCustomer" />
521
- </message>
522
- <message name="listrakRemarketingInfoListRequest">
523
- <part name="sessionId" type="xsd:string" />
524
- <part name="storeId" type="xsd:string" />
525
- </message>
526
- <message name="listrakRemarketingInfoListResponse">
527
- <part name="result" type="typens:ListrakRemarketingInfoEntity" />
528
- </message>
529
- <message name="listrakRemarketingReviewListRequest">
530
- <part name="sessionId" type="xsd:string" />
531
- <part name="storeId" type="xsd:string" />
532
- <part name="chunkSize" type="xsd:string" />
533
- <part name="startReviewId" type="xsd:string" />
534
- </message>
535
- <message name="listrakRemarketingReviewListResponse">
536
- <part name="result" type="typens:ListrakRemarketingReviewListResult" />
537
- </message>
538
- <message name="listrakRemarketingRatingSummaryListRequest">
539
- <part name="sessionId" type="xsd:string" />
540
- <part name="storeId" type="xsd:string" />
541
- <part name="chunkSize" type="xsd:string" />
542
- <part name="startRatingSummaryId" type="xsd:string" />
543
- </message>
544
- <message name="listrakRemarketingRatingSummaryListResponse">
545
- <part name="result" type="typens:ListrakRemarketingRatingSummaryListResult" />
546
- </message>
547
- <message name="listrakRemarketingReviewUpdateListRequest">
548
- <part name="sessionId" type="xsd:string" />
549
- <part name="storeId" type="xsd:string" />
550
- <part name="chunkSize" type="xsd:string" />
551
- <part name="startUpdateId" type="xsd:string" />
552
- </message>
553
- <message name="listrakRemarketingReviewUpdateListResponse">
554
- <part name="result" type="typens:ListrakRemarketingReviewListResult" />
555
- </message>
556
- <message name="listrakRemarketingRatingSummaryUpdateListRequest">
557
- <part name="sessionId" type="xsd:string" />
558
- <part name="storeId" type="xsd:string" />
559
- <part name="chunkSize" type="xsd:string" />
560
- <part name="startUpdateId" type="xsd:string" />
561
- </message>
562
- <message name="listrakRemarketingRatingSummaryUpdateListResponse">
563
- <part name="result" type="typens:ListrakRemarketingRatingSummaryListResult" />
564
- </message>
565
- <message name="listrakRemarketingReviewDeleteListRequest">
566
- <part name="sessionId" type="xsd:string" />
567
- <part name="chunkSize" type="xsd:string" />
568
- <part name="startDeleteId" type="xsd:string" />
569
- </message>
570
- <message name="listrakRemarketingReviewDeleteListResponse">
571
- <part name="result" type="typens:ListrakRemarketingReviewDeleteListResult" />
572
- </message>
573
- <message name="listrakRemarketingReviewUpdatePurgeRequest">
574
- <part name="sessionId" type="xsd:string" />
575
- <part name="purgeBeforeDays" type="xsd:string" />
576
- </message>
577
- <message name="listrakRemarketingReviewUpdatePurgeResponse">
578
- <part name="result" type="typens:ListrakRemarketingReviewUpdatePurgeResult" />
579
- </message>
580
- <portType name="{{var wsdl.handler}}PortType">
581
- <operation name="listrakRemarketingAbandonedCartList">
582
- <documentation>Get stores abandoned carts</documentation>
583
- <input message="typens:listrakRemarketingAbandonedCartListRequest" />
584
- <output message="typens:listrakRemarketingAbandonedCartListResponse" />
585
- </operation>
586
- <operation name="listrakRemarketingAbandonedCartPurge">
587
- <documentation>Purge abandoned carts</documentation>
588
- <input message="typens:listrakRemarketingAbandonedCartPurgeRequest" />
589
- <output message="typens:listrakRemarketingAbandonedCartPurgeResponse" />
590
- </operation>
591
- <operation name="listrakRemarketingClickList">
592
- <documentation>Get clicks</documentation>
593
- <input message="typens:listrakRemarketingClickListRequest" />
594
- <output message="typens:listrakRemarketingClickListResponse" />
595
- </operation>
596
- <operation name="listrakRemarketingClickPurge">
597
- <documentation>Purge clicks</documentation>
598
- <input message="typens:listrakRemarketingClickPurgeRequest" />
599
- <output message="typens:listrakRemarketingClickPurgeResponse" />
600
- </operation>
601
- <operation name="listrakRemarketingLogList">
602
- <documentation>Get log entries</documentation>
603
- <input message="typens:listrakRemarketingLogListRequest" />
604
- <output message="typens:listrakRemarketingLogListResponse" />
605
- </operation>
606
- <operation name="listrakRemarketingLogPurge">
607
- <documentation>Purge log entries</documentation>
608
- <input message="typens:listrakRemarketingLogPurgeRequest" />
609
- <output message="typens:listrakRemarketingLogPurgeResponse" />
610
- </operation>
611
- <operation name="listrakRemarketingLogToggle">
612
- <documentation>toggle logging</documentation>
613
- <input message="typens:listrakRemarketingLogToggleRequest" />
614
- <output message="typens:listrakRemarketingLogToggleResponse" />
615
- </operation>
616
- <operation name="listrakRemarketingOrderList">
617
- <documentation>Get orders</documentation>
618
- <input message="typens:listrakRemarketingOrderListRequest" />
619
- <output message="typens:listrakRemarketingOrderListResponse" />
620
- </operation>
621
- <operation name="listrakRemarketingOrderStatusList">
622
- <documentation>Get order status changes</documentation>
623
- <input message="typens:listrakRemarketingOrderStatusListRequest" />
624
- <output message="typens:listrakRemarketingOrderStatusListResponse" />
625
- </operation>
626
- <operation name="listrakRemarketingProductList">
627
- <documentation>Get products</documentation>
628
- <input message="typens:listrakRemarketingProductListRequest" />
629
- <output message="typens:listrakRemarketingProductListResponse" />
630
- </operation>
631
- <operation name="listrakRemarketingSubscriberList">
632
- <documentation>Get subscribers and unsubscribers</documentation>
633
- <input message="typens:listrakRemarketingSubscriberListRequest" />
634
- <output message="typens:listrakRemarketingSubscriberListResponse" />
635
- </operation>
636
- <operation name="listrakRemarketingSubscriberPurge">
637
- <documentation>Purge old subscriber updates</documentation>
638
- <input message="typens:listrakRemarketingSubscriberPurgeRequest" />
639
- <output message="typens:listrakRemarketingSubscriberPurgeResponse" />
640
- </operation>
641
- <operation name="listrakRemarketingCustomerList">
642
- <documentation>Get customers</documentation>
643
- <input message="typens:listrakRemarketingCustomerListRequest" />
644
- <output message="typens:listrakRemarketingCustomerListResponse" />
645
- </operation>
646
- <operation name="listrakRemarketingInfoList">
647
- <documentation>Get info</documentation>
648
- <input message="typens:listrakRemarketingInfoListRequest" />
649
- <output message="typens:listrakRemarketingInfoListResponse" />
650
- </operation>
651
- <operation name="listrakRemarketingReviewList">
652
- <documentation>Get review list</documentation>
653
- <input message="typens:listrakRemarketingReviewListRequest" />
654
- <output message="typens:listrakRemarketingReviewListResponse" />
655
- </operation>
656
- <operation name="listrakRemarketingRatingSummaryList">
657
- <documentation>Get rating summary list</documentation>
658
- <input message="typens:listrakRemarketingRatingSummaryListRequest" />
659
- <output message="typens:listrakRemarketingRatingSummaryListResponse" />
660
- </operation>
661
- <operation name="listrakRemarketingReviewUpdateList">
662
- <documentation>Get review list</documentation>
663
- <input message="typens:listrakRemarketingReviewUpdateListRequest" />
664
- <output message="typens:listrakRemarketingReviewUpdateListResponse" />
665
- </operation>
666
- <operation name="listrakRemarketingRatingSummaryUpdateList">
667
- <documentation>Get rating summary list</documentation>
668
- <input message="typens:listrakRemarketingRatingSummaryUpdateListRequest" />
669
- <output message="typens:listrakRemarketingRatingSummaryUpdateListResponse" />
670
- </operation>
671
- <operation name="listrakRemarketingReviewDeleteList">
672
- <documentation>Get deleted reviews list</documentation>
673
- <input message="typens:listrakRemarketingReviewDeleteListRequest" />
674
- <output message="typens:listrakRemarketingReviewDeleteListResponse" />
675
- </operation>
676
- <operation name="listrakRemarketingReviewUpdatePurge">
677
- <documentation>Get deleted reviews list</documentation>
678
- <input message="typens:listrakRemarketingReviewUpdatePurgeRequest" />
679
- <output message="typens:listrakRemarketingReviewUpdatePurgeResponse" />
680
- </operation>
681
- </portType>
682
- <binding name="{{var wsdl.handler}}Binding" type="typens:{{var wsdl.handler}}PortType">
683
- <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />
684
- <operation name="listrakRemarketingAbandonedCartList">
685
- <soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
686
- <input>
687
- <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
688
- </input>
689
- <output>
690
- <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
691
- </output>
692
- </operation>
693
- <operation name="listrakRemarketingAbandonedCartPurge">
694
- <soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
695
- <input>
696
- <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
697
- </input>
698
- <output>
699
- <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
700
- </output>
701
- </operation>
702
- <operation name="listrakRemarketingClickList">
703
- <soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
704
- <input>
705
- <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
706
- </input>
707
- <output>
708
- <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
709
- </output>
710
- </operation>
711
- <operation name="listrakRemarketingClickPurge">
712
- <soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
713
- <input>
714
- <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
715
- </input>
716
- <output>
717
- <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
718
- </output>
719
- </operation>
720
- <operation name="listrakRemarketingLogList">
721
- <soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
722
- <input>
723
- <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
724
- </input>
725
- <output>
726
- <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
727
- </output>
728
- </operation>
729
- <operation name="listrakRemarketingLogPurge">
730
- <soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
731
- <input>
732
- <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
733
- </input>
734
- <output>
735
- <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
736
- </output>
737
- </operation>
738
- <operation name="listrakRemarketingLogToggle">
739
- <soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
740
- <input>
741
- <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
742
- </input>
743
- <output>
744
- <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
745
- </output>
746
- </operation>
747
- <operation name="listrakRemarketingOrderList">
748
- <soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
749
- <input>
750
- <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
751
- </input>
752
- <output>
753
- <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
754
- </output>
755
- </operation>
756
- <operation name="listrakRemarketingOrderStatusList">
757
- <soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
758
- <input>
759
- <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
760
- </input>
761
- <output>
762
- <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
763
- </output>
764
- </operation>
765
- <operation name="listrakRemarketingProductList">
766
- <soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
767
- <input>
768
- <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
769
- </input>
770
- <output>
771
- <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
772
- </output>
773
- </operation>
774
- <operation name="listrakRemarketingSubscriberList">
775
- <soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
776
- <input>
777
- <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
778
- </input>
779
- <output>
780
- <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
781
- </output>
782
- </operation>
783
- <operation name="listrakRemarketingSubscriberPurge">
784
- <soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
785
- <input>
786
- <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
787
- </input>
788
- <output>
789
- <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
790
- </output>
791
- </operation>
792
- <operation name="listrakRemarketingCustomerList">
793
- <soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
794
- <input>
795
- <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
796
- </input>
797
- <output>
798
- <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
799
- </output>
800
- </operation>
801
- <operation name="listrakRemarketingInfoList">
802
- <soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
803
- <input>
804
- <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
805
- </input>
806
- <output>
807
- <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
808
- </output>
809
- </operation>
810
- <operation name="listrakRemarketingReviewList">
811
- <soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
812
- <input>
813
- <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
814
- </input>
815
- <output>
816
- <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
817
- </output>
818
- </operation>
819
- <operation name="listrakRemarketingRatingSummaryList">
820
- <soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
821
- <input>
822
- <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
823
- </input>
824
- <output>
825
- <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
826
- </output>
827
- </operation>
828
- <operation name="listrakRemarketingReviewUpdateList">
829
- <soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
830
- <input>
831
- <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
832
- </input>
833
- <output>
834
- <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
835
- </output>
836
- </operation>
837
- <operation name="listrakRemarketingRatingSummaryUpdateList">
838
- <soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
839
- <input>
840
- <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
841
- </input>
842
- <output>
843
- <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
844
- </output>
845
- </operation>
846
- <operation name="listrakRemarketingReviewDeleteList">
847
- <soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
848
- <input>
849
- <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
850
- </input>
851
- <output>
852
- <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
853
- </output>
854
- </operation>
855
- <operation name="listrakRemarketingReviewUpdatePurge">
856
- <soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
857
- <input>
858
- <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
859
- </input>
860
- <output>
861
- <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
862
- </output>
863
- </operation>
864
- </binding>
865
- <service name="{{var wsdl.name}}Service">
866
- <port name="{{var wsdl.handler}}Port" binding="typens:{{var wsdl.handler}}Binding">
867
- <soap:address location="{{var wsdl.url}}" />
868
- </port>
869
- </service>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
870
  </definitions>
1
  <?xml version="1.0" encoding="UTF-8"?>
2
  <!--
3
+ /**
4
+ * Listrak Remarketing Magento Extension Ver. 1.0.0 - © 2011 Listrak, Inc.
5
+ */
6
  -->
7
  <definitions xmlns:typens="urn:{{var wsdl.name}}" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
8
  xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/"
9
  name="{{var wsdl.name}}" targetNamespace="urn:{{var wsdl.name}}">
10
+ <types>
11
+ <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:Magento">
12
+ <import namespace="http://schemas.xmlsoap.org/soap/encoding/" schemaLocation="http://schemas.xmlsoap.org/soap/encoding/" />
13
+ <complexType name="ArrayOfString">
14
+ <complexContent>
15
+ <restriction base="soapenc:Array">
16
+ <attribute ref="soapenc:arrayType" wsdl:arrayType="xsd:string[]"/>
17
+ </restriction>
18
+ </complexContent>
19
+ </complexType>
20
+ <!-- session -->
21
+ <complexType name="ListrakRemarketingSessionEntity">
22
+ <all>
23
+ <element name="session_id" type="xsd:string" minOccurs="0"/>
24
+ <element name="store_id" type="xsd:string" minOccurs="0"/>
25
+ <element name="created_at" type="xsd:string" minOccurs="0"/>
26
+ <element name="updated_at" type="xsd:string" minOccurs="0"/>
27
+ <element name="quote_id" type="xsd:string" minOccurs="0"/>
28
+ <element name="ips" type="xsd:string" minOccurs="0"/>
29
+ <element name="pi_id" type="xsd:string" minOccurs="0"/>
30
+ <element name="customer" type="typens:ListrakRemarketingCustomerEntity" minOccurs="0"/>
31
+ <element name="emails" type="typens:ArrayOfListrakRemarketingSessionEmail" minOccurs="0"/>
32
+ <element name="clicks" type="typens:ArrayOfListrakRemarketingClick" minOccurs="0"/>
33
+ </all>
34
+ </complexType>
35
+ <complexType name="ListrakRemarketingSessionEmailEntity">
36
+ <all>
37
+ <element name="email" type="xsd:string" minOccurs="0"/>
38
+ <element name="created_at" type="xsd:string" minOccurs="0"/>
39
+ <element name="page" type="xsd:string" minOccurs="0"/>
40
+ <element name="field_id" type="xsd:string" minOccurs="0"/>
41
+ </all>
42
+ </complexType>
43
+ <complexType name="ArrayOfListrakRemarketingSessionEmail">
44
+ <complexContent>
45
+ <restriction base="soapenc:Array">
46
+ <attribute ref="soapenc:arrayType" wsdl:arrayType="typens:ListrakRemarketingSessionEmailEntity[]"/>
47
+ </restriction>
48
+ </complexContent>
49
+ </complexType>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
50
 
51
+ <!-- abandoned cart -->
52
+ <complexType name="ListrakRemarketingAbandonedCartEntity">
53
+ <all>
54
+ <element name="store_id" type="xsd:string" minOccurs="0"/>
55
+ <element name="session" type="typens:ListrakRemarketingSessionEntity" minOccurs="0"/>
56
+ <element name="products" type="typens:ArrayOfListrakRemarketingAbandonedCartProduct" minOccurs="0"/>
57
+ </all>
58
+ </complexType>
59
+ <complexType name="ArrayOfListrakRemarketingAbandonedCart">
60
+ <complexContent>
61
+ <restriction base="soapenc:Array">
62
+ <attribute ref="soapenc:arrayType" wsdl:arrayType="typens:ListrakRemarketingAbandonedCartEntity[]"/>
63
+ </restriction>
64
+ </complexContent>
65
+ </complexType>
66
+ <complexType name="ListrakRemarketingAbandonedCartProductEntity">
67
+ <all>
68
+ <element name="entity_id" type="xsd:string" minOccurs="0"/>
69
+ <element name="sku" type="xsd:string" minOccurs="0"/>
70
+ <element name="name" type="xsd:string" minOccurs="0"/>
71
+ <element name="price" type="xsd:string" minOccurs="0"/>
72
+ <element name="special_price" type="xsd:string" minOccurs="0"/>
73
+ <element name="special_from_date" type="xsd:string" minOccurs="0"/>
74
+ <element name="special_to_date" type="xsd:string" minOccurs="0"/>
75
+ <element name="cost" type="xsd:string" minOccurs="0"/>
76
+ <element name="description" type="xsd:string" minOccurs="0"/>
77
+ <element name="short_description" type="xsd:string" minOccurs="0"/>
78
+ <element name="weight" type="xsd:string" minOccurs="0"/>
79
+ <element name="url_key" type="xsd:string" minOccurs="0"/>
80
+ <element name="url_path" type="xsd:string" minOccurs="0"/>
81
+ <element name="image" type="xsd:string" minOccurs="0"/>
82
+ <element name="small_image" type="xsd:string" minOccurs="0"/>
83
+ <element name="thumbnail" type="xsd:string" minOccurs="0"/>
84
+ <element name="qty" type="xsd:string" minOccurs="0"/>
85
+ <element name="bundle_items" type="typens:ArrayOfListrakRemarketingAbandonedCartProduct" minOccurs="0"/>
86
+ </all>
87
+ </complexType>
88
+ <complexType name="ArrayOfListrakRemarketingAbandonedCartProduct">
89
+ <complexContent>
90
+ <restriction base="soapenc:Array">
91
+ <attribute ref="soapenc:arrayType" wsdl:arrayType="typens:ListrakRemarketingAbandonedCartProductEntity[]"/>
92
+ </restriction>
93
+ </complexContent>
94
+ </complexType>
95
 
96
+ <!-- product -->
97
+ <complexType name="ListrakRemarketingConfigurableAttributeEntity">
98
+ <all>
99
+ <element name="attribute_name" type="xsd:string" minOccurs="0"/>
100
+ <element name="value" type="xsd:string" minOccurs="0"/>
101
+ </all>
102
+ </complexType>
103
+ <complexType name="ArrayOfListrakRemarketingConfigurableAttributeEntity">
104
+ <complexContent>
105
+ <restriction base="soapenc:Array">
106
+ <attribute ref="soapenc:arrayType" wsdl:arrayType="typens:ListrakRemarketingConfigurableAttributeEntity[]"/>
107
+ </restriction>
108
+ </complexContent>
109
+ </complexType>
110
+ <complexType name="ListrakRemarketingProductEntity">
111
+ <all>
112
+ <element name="entity_id" type="xsd:string" minOccurs="0"/>
113
+ <element name="sku" type="xsd:string" minOccurs="0"/>
114
+ <element name="name" type="xsd:string" minOccurs="0"/>
115
+ <element name="price" type="xsd:string" minOccurs="0"/>
116
+ <element name="special_price" type="xsd:string" minOccurs="0"/>
117
+ <element name="special_from_date" type="xsd:string" minOccurs="0"/>
118
+ <element name="special_to_date" type="xsd:string" minOccurs="0"/>
119
+ <element name="cost" type="xsd:string" minOccurs="0"/>
120
+ <element name="description" type="xsd:string" minOccurs="0"/>
121
+ <element name="short_description" type="xsd:string" minOccurs="0"/>
122
+ <element name="weight" type="xsd:string" minOccurs="0"/>
123
+ <element name="url_key" type="xsd:string" minOccurs="0"/>
124
+ <element name="url_path" type="xsd:string" minOccurs="0"/>
125
+ <element name="image" type="xsd:string" minOccurs="0"/>
126
+ <element name="small_image" type="xsd:string" minOccurs="0"/>
127
+ <element name="thumbnail" type="xsd:string" minOccurs="0"/>
128
+ <element name="qty" type="xsd:string" minOccurs="0"/>
129
+ <element name="parent_id" type="xsd:string" minOccurs="0"/>
130
+ <element name="parent_sku" type="xsd:string" minOccurs="0"/>
131
+ <element name="brand" type="xsd:string" minOccurs="0"/>
132
+ <element name="category" type="xsd:string" minOccurs="0"/>
133
+ <element name="sub_category" type="xsd:string" minOccurs="0"/>
134
+ <element name="in_stock" type="xsd:string" minOccurs="0"/>
135
+ <element name="qty_on_hand" type="xsd:string" minOccurs="0"/>
136
+ <element name="type" type="xsd:string" minOccurs="0"/>
137
+ <element name="configurable_attributes" type="typens:ArrayOfListrakRemarketingConfigurableAttributeEntity" minOccurs="0"/>
138
+ </all>
139
+ </complexType>
140
+ <complexType name="ArrayOfListrakRemarketingProduct">
141
+ <complexContent>
142
+ <restriction base="soapenc:Array">
143
+ <attribute ref="soapenc:arrayType" wsdl:arrayType="typens:ListrakRemarketingProductEntity[]"/>
144
+ </restriction>
145
+ </complexContent>
146
+ </complexType>
147
+
148
+ <!-- click -->
149
+ <complexType name="ListrakRemarketingClickEntity">
150
+ <all>
151
+ <element name="store_id" type="xsd:string" minOccurs="0"/>
152
+ <element name="customer_id" type="xsd:string" minOccurs="0"/>
153
+ <element name="customer_email" type="xsd:string" minOccurs="0"/>
154
+ <element name="querystring" type="xsd:string" minOccurs="0"/>
155
+ <element name="click_date" type="xsd:string" minOccurs="0"/>
156
+ <element name="token_uid" type="xsd:string" minOccurs="0"/>
157
+ <element name="session_uid" type="xsd:string" minOccurs="0"/>
158
+ <element name="pi_id" type="xsd:string" minOccurs="0"/>
159
+ </all>
160
+ </complexType>
161
+ <complexType name="ArrayOfListrakRemarketingClick">
162
+ <complexContent>
163
+ <restriction base="soapenc:Array">
164
+ <attribute ref="soapenc:arrayType" wsdl:arrayType="typens:ListrakRemarketingClickEntity[]"/>
165
+ </restriction>
166
+ </complexContent>
167
+ </complexType>
168
+
169
+ <!-- log -->
170
+ <complexType name="ListrakRemarketingLogEntity">
171
+ <all>
172
+ <element name="store_id" type="xsd:string" minOccurs="0"/>
173
+ <element name="message" type="xsd:string" minOccurs="0"/>
174
+ <element name="date_entered" type="xsd:string" minOccurs="0"/>
175
+ <element name="log_type_id" type="xsd:string" minOccurs="0"/>
176
+ </all>
177
+ </complexType>
178
+ <complexType name="ArrayOfListrakRemarketingLog">
179
+ <complexContent>
180
+ <restriction base="soapenc:Array">
181
+ <attribute ref="soapenc:arrayType" wsdl:arrayType="typens:ListrakRemarketingLogEntity[]"/>
182
+ </restriction>
183
+ </complexContent>
184
+ </complexType>
185
+
186
+ <!-- order -->
187
+ <complexType name="ListrakRemarketingOrderEntity">
188
+ <all>
189
+ <element name="info" type="typens:ListrakRemarketingOrderInfoEntity" minOccurs="0"/>
190
+ <element name="billing_address" type="typens:ListrakRemarketingOrderAddressEntity" minOccurs="0"/>
191
+ <element name="shipping_address" type="typens:ListrakRemarketingOrderAddressEntity" minOccurs="0"/>
192
+ <element name="product" type="typens:ArrayOfListrakRemarketingProductShort" minOccurs="0"/>
193
+ <element name="session" type="typens:ListrakRemarketingSessionEntity" minOccurs="0"/>
194
+ <element name="customer" type="typens:ListrakRemarketingCustomerEntity" minOccurs="0"/>
195
+ </all>
196
+ </complexType>
197
+ <complexType name="ArrayOfListrakRemarketingOrder">
198
+ <complexContent>
199
+ <restriction base="soapenc:Array">
200
+ <attribute ref="soapenc:arrayType" wsdl:arrayType="typens:ListrakRemarketingOrderEntity[]" />
201
+ </restriction>
202
+ </complexContent>
203
+ </complexType>
204
+ <complexType name="ListrakRemarketingOrderInfoEntity">
205
+ <all>
206
+ <element name="entity_id" type="xsd:string" minOccurs="0"/>
207
+ <element name="order_id" type="xsd:string" minOccurs="0"/>
208
+ <element name="status" type="xsd:string" minOccurs="0" />
209
+ <element name="customer_firstname" type="xsd:string" minOccurs="0"/>
210
+ <element name="customer_lastname" type="xsd:string" minOccurs="0"/>
211
+ <element name="customer_email" type="xsd:string" minOccurs="0"/>
212
+ <element name="subtotal" type="xsd:string" minOccurs="0"/>
213
+ <element name="tax_amount" type="xsd:string" minOccurs="0"/>
214
+ <element name="shipping_amount" type="xsd:string" minOccurs="0"/>
215
+ <element name="grand_total" type="xsd:string" minOccurs="0"/>
216
+ <element name="billing_firstname" type="xsd:string" minOccurs="0"/>
217
+ <element name="created_at" type="xsd:string" minOccurs="0"/>
218
+ <element name="updated_at" type="xsd:string" minOccurs="0"/>
219
+ </all>
220
+ </complexType>
221
+ <complexType name="ListrakRemarketingOrderAddressEntity">
222
+ <all>
223
+ <element name="firstname" type="xsd:string" minOccurs="0"/>
224
+ <element name="lastname" type="xsd:string" minOccurs="0"/>
225
+ <element name="company" type="xsd:string" minOccurs="0"/>
226
+ <element name="street" type="xsd:string" minOccurs="0"/>
227
+ <element name="city" type="xsd:string" minOccurs="0"/>
228
+ <element name="region" type="xsd:string" minOccurs="0"/>
229
+ <element name="postcode" type="xsd:string" minOccurs="0"/>
230
+ <element name="country" type="xsd:string" minOccurs="0"/>
231
+ </all>
232
+ </complexType>
233
+ <complexType name="ListrakRemarketingProductShortEntity">
234
+ <all>
235
+ <element name="sku" type="xsd:string" minOccurs="0"/>
236
+ <element name="name" type="xsd:string" minOccurs="0"/>
237
+ <element name="price" type="xsd:string" minOccurs="0"/>
238
+ <element name="qty_ordered" type="xsd:string" minOccurs="0"/>
239
+ <element name="product_price" type="xsd:string" minOccurs="0"/>
240
+ <element name="bundle_items" type="typens:ArrayOfListrakRemarketingProductShort" minOccurs="0"/>
241
+ </all>
242
+ </complexType>
243
+ <complexType name="ArrayOfListrakRemarketingProductShort">
244
+ <complexContent>
245
+ <restriction base="soapenc:Array">
246
+ <attribute ref="soapenc:arrayType" wsdl:arrayType="typens:ListrakRemarketingProductShortEntity[]"/>
247
+ </restriction>
248
+ </complexContent>
249
+ </complexType>
250
+
251
+ <!-- order status -->
252
+ <complexType name="ListrakRemarketingOrderStatusEntity">
253
+ <all>
254
+ <element name="increment_id" type="xsd:string" minOccurs="0"/>
255
+ <element name="status" type="xsd:string" minOccurs="0" />
256
+ <element name="updated_at" type="xsd:string" minOccurs="0"/>
257
+ </all>
258
+ </complexType>
259
+ <complexType name="ArrayOfListrakRemarketingOrderStatus">
260
+ <complexContent>
261
+ <restriction base="soapenc:Array">
262
+ <attribute ref="soapenc:arrayType" wsdl:arrayType="typens:ListrakRemarketingOrderStatusEntity[]" />
263
+ </restriction>
264
+ </complexContent>
265
+ </complexType>
266
+
267
+ <!-- customer -->
268
+ <complexType name="ListrakRemarketingCustomerEntity">
269
+ <all>
270
+ <element name="entity_id" type="xsd:string" minOccurs="0"/>
271
+ <element name="firstname" type="xsd:string" minOccurs="0"/>
272
+ <element name="lastname" type="xsd:string" minOccurs="0"/>
273
+ <element name="email" type="xsd:string" minOccurs="0"/>
274
+ <element name="website_id" type="xsd:string" minOccurs="0"/>
275
+ <element name="store_id" type="xsd:string" minOccurs="0"/>
276
+ <element name="gender_name" type="xsd:string" minOccurs="0"/>
277
+ <element name="dob" type="xsd:string" minOccurs="0"/>
278
+ <element name="group_name" type="xsd:string" minOccurs="0"/>
279
+ </all>
280
+ </complexType>
281
+ <complexType name="ArrayOfListrakRemarketingCustomer">
282
+ <complexContent>
283
+ <restriction base="soapenc:Array">
284
+ <attribute ref="soapenc:arrayType" wsdl:arrayType="typens:ListrakRemarketingCustomerEntity[]"/>
285
+ </restriction>
286
+ </complexContent>
287
+ </complexType>
288
+
289
+ <!-- subscriber -->
290
+ <complexType name="ListrakRemarketingSubscriberEntity">
291
+ <all>
292
+ <element name="subscriber_id" type="xsd:string" minOccurs="0"/>
293
+ <element name="store_id" type="xsd:string" minOccurs="0"/>
294
+ <element name="customer_id" type="xsd:string" minOccurs="0"/>
295
+ <element name="change_status_at" type="xsd:string" minOccurs="0"/>
296
+ <element name="subscriber_email" type="xsd:string" minOccurs="0"/>
297
+ <element name="subscriber_status" type="xsd:string" minOccurs="0"/>
298
+ <element name="updated_at" type="xsd:string" minOccurs="0"/>
299
+ </all>
300
+ </complexType>
301
+ <complexType name="ArrayOfListrakRemarketingSubscriber">
302
+ <complexContent>
303
+ <restriction base="soapenc:Array">
304
+ <attribute ref="soapenc:arrayType" wsdl:arrayType="typens:ListrakRemarketingSubscriberEntity[]"/>
305
+ </restriction>
306
+ </complexContent>
307
+ </complexType>
308
+
309
+ <complexType name="ListrakRemarketingInfoEntity">
310
+ <all>
311
+ <element name="magentoVersion" type="xsd:string" minOccurs="0"/>
312
+ <element name="listrakSettings" type="typens:ListrakRemarketingSettingEntity" minOccurs="0"/>
313
+ <element name="modules" type="typens:ArrayOfString" minOccurs="0"/>
314
+ <element name="ini" type="typens:ArrayOfString" minOccurs="0"/>
315
+ <element name="classes" type="xsd:string" minOccurs="0"/>
316
+ <element name="counts" type="xsd:string" minOccurs="0"/>
317
+ </all>
318
+ </complexType>
319
+ <complexType name="ListrakRemarketingSettingEntity">
320
+ <all>
321
+ <element name="coreEnabled" type="xsd:string" minOccurs="0"/>
322
+ <element name="reviewsApiEnabled" type="xsd:string" minOccurs="0"/>
323
+ </all>
324
+ </complexType>
325
+
326
+ <!-- review list / review update list -->
327
+ <complexType name="ListrakRemarketingReviewListResult">
328
+ <complexContent>
329
+ <restriction base="soapenc:Array">
330
+ <attribute ref="soapenc:arrayType" wsdl:arrayType="typens:ListrakRemarketingReviewListItem[]" />
331
+ </restriction>
332
+ </complexContent>
333
+ </complexType>
334
+ <complexType name="ListrakRemarketingReviewListItem">
335
+ <all>
336
+ <element name="update_id" type="xsd:string" minOccurs="0"/>
337
+ <element name="review_id" type="xsd:string" minOccurs="0"/>
338
+ <element name="product_id" type="xsd:string" minOccurs="0"/>
339
+ <element name="title" type="xsd:string" minOccurs="0"/>
340
+ <element name="text" type="xsd:string" minOccurs="0"/>
341
+ <element name="overall_rating" type="xsd:string" minOccurs="0"/>
342
+ <element name="created_at" type="xsd:string" minOccurs="0"/>
343
+ <element name="updated_at" type="xsd:string" minOccurs="0"/>
344
+ <element name="reviewer_name" type="xsd:string" minOccurs="0"/>
345
+ <element name="email" type="xsd:string" minOccurs="0"/>
346
+ <element name="status_id" type="xsd:string" minOccurs="0"/>
347
+ <element name="status_code" type="xsd:string" minOccurs="0"/>
348
+ <element name="ratings" type="typens:ArrayOfListrakRemarketingReviewRating" minOccurs="0"/>
349
+ </all>
350
+ </complexType>
351
+ <complexType name="ArrayOfListrakRemarketingReviewRating">
352
+ <complexContent>
353
+ <restriction base="soapenc:Array">
354
+ <attribute ref="soapenc:arrayType" wsdl:arrayType="typens:ListrakRemarketingReviewRatingItem[]" />
355
+ </restriction>
356
+ </complexContent>
357
+ </complexType>
358
+ <complexType name="ListrakRemarketingReviewRatingItem">
359
+ <all>
360
+ <element name="rating_id" type="xsd:string" minOccurs="0"/>
361
+ <element name="rating_code" type="xsd:string" minOccurs="0"/>
362
+ <element name="rating" type="xsd:string" minOccurs="0"/>
363
+ </all>
364
+ </complexType>
365
+
366
+ <!-- rating summary list / rating summary update list -->
367
+ <complexType name="ListrakRemarketingRatingSummaryListResult">
368
+ <complexContent>
369
+ <restriction base="soapenc:Array">
370
+ <attribute ref="soapenc:arrayType" wsdl:arrayType="typens:ListrakRemarketingRatingSummaryItem[]" />
371
+ </restriction>
372
+ </complexContent>
373
+ </complexType>
374
+ <complexType name="ListrakRemarketingRatingSummaryItem">
375
+ <all>
376
+ <element name="update_id" type="xsd:string" minOccurs="0"/>
377
+ <element name="rating_summary_id" type="xsd:string" minOccurs="0"/>
378
+ <element name="product_id" type="xsd:string" minOccurs="0"/>
379
+ <element name="updated_at" type="xsd:string" minOccurs="0"/>
380
+ <element name="total_reviews" type="xsd:string" minOccurs="0"/>
381
+ <element name="rating" type="xsd:string" minOccurs="0"/>
382
+ <element name="ratings" type="typens:ArrayOfListrakRemarketingRatingSummaryAttribute" minOccurs="0"/>
383
+ </all>
384
+ </complexType>
385
+ <complexType name="ArrayOfListrakRemarketingRatingSummaryAttribute">
386
+ <complexContent>
387
+ <restriction base="soapenc:Array">
388
+ <attribute ref="soapenc:arrayType" wsdl:arrayType="typens:ListrakRemarketingRatingSummaryAttributeItem[]" />
389
+ </restriction>
390
+ </complexContent>
391
+ </complexType>
392
+ <complexType name="ListrakRemarketingRatingSummaryAttributeItem">
393
+ <all>
394
+ <element name="rating_id" type="xsd:string" minOccurs="0"/>
395
+ <element name="rating_code" type="xsd:string" minOccurs="0"/>
396
+ <element name="rating" type="xsd:string" minOccurs="0"/>
397
+ </all>
398
+ </complexType>
399
+
400
+ <!-- review delete list -->
401
+ <complexType name="ListrakRemarketingReviewDeleteListResult">
402
+ <complexContent>
403
+ <restriction base="soapenc:Array">
404
+ <attribute ref="soapenc:arrayType" wsdl:arrayType="typens:ListrakRemarketingDeletedReview[]" />
405
+ </restriction>
406
+ </complexContent>
407
+ </complexType>
408
+ <complexType name="ListrakRemarketingDeletedReview">
409
+ <all>
410
+ <element name="delete_id" type="xsd:string" minOccurs="0"/>
411
+ <element name="review_id" type="xsd:string" minOccurs="0"/>
412
+ </all>
413
+ </complexType>
414
+
415
+ <!-- review update purge -->
416
+ <complexType name="ListrakRemarketingReviewUpdatePurgeResult">
417
+ <all>
418
+ <element name="count" type="xsd:string" minOccurs="0"/>
419
+ <element name="before" type="xsd:string" minOccurs="0"/>
420
+ </all>
421
+ </complexType>
422
+ </schema>
423
+ </types>
424
+ <message name="listrakRemarketingAbandonedCartListRequest">
425
+ <part name="sessionId" type="xsd:string" />
426
+ <part name="storeId" type="xsd:string" />
427
+ <part name="startDate" type="xsd:string" />
428
+ <part name="endDate" type="xsd:string" />
429
+ <part name="perPage" type="xsd:int" />
430
+ <part name="page" type="xsd:int" />
431
+ </message>
432
+ <message name="listrakRemarketingAbandonedCartListResponse">
433
+ <part name="result" type="typens:ArrayOfListrakRemarketingAbandonedCart" />
434
+ </message>
435
+ <message name="listrakRemarketingAbandonedCartPurgeRequest">
436
+ <part name="sessionId" type="xsd:string" />
437
+ <part name="storeId" type="xsd:string" />
438
+ <part name="endDate" type="xsd:string" />
439
+ </message>
440
+ <message name="listrakRemarketingAbandonedCartPurgeResponse">
441
+ <part name="result" type="xsd:string" />
442
+ </message>
443
+ <message name="listrakRemarketingClickListRequest">
444
+ <part name="sessionId" type="xsd:string" />
445
+ <part name="storeId" type="xsd:string" />
446
+ <part name="startDate" type="xsd:string" />
447
+ <part name="endDate" type="xsd:string" />
448
+ <part name="perPage" type="xsd:int" />
449
+ <part name="page" type="xsd:int" />
450
+ </message>
451
+ <message name="listrakRemarketingClickListResponse">
452
+ <part name="result" type="typens:ArrayOfListrakRemarketingClick" />
453
+ </message>
454
+ <message name="listrakRemarketingClickPurgeRequest">
455
+ <part name="sessionId" type="xsd:string" />
456
+ <part name="storeId" type="xsd:string" />
457
+ <part name="endDate" type="xsd:string" />
458
+ </message>
459
+ <message name="listrakRemarketingClickPurgeResponse">
460
+ <part name="result" type="xsd:string" />
461
+ </message>
462
+ <message name="listrakRemarketingLogListRequest">
463
+ <part name="sessionId" type="xsd:string" />
464
+ <part name="storeId" type="xsd:string" />
465
+ <part name="startDate" type="xsd:string" />
466
+ <part name="endDate" type="xsd:string" />
467
+ <part name="perPage" type="xsd:int" />
468
+ <part name="page" type="xsd:int" />
469
+ <part name="logTypeId" type="xsd:string" />
470
+ </message>
471
+ <message name="listrakRemarketingLogListResponse">
472
+ <part name="result" type="typens:ArrayOfListrakRemarketingLog" />
473
+ </message>
474
+ <message name="listrakRemarketingLogPurgeRequest">
475
+ <part name="sessionId" type="xsd:string" />
476
+ <part name="storeId" type="xsd:string" />
477
+ <part name="endDate" type="xsd:string" />
478
+ </message>
479
+ <message name="listrakRemarketingLogPurgeResponse">
480
+ <part name="result" type="xsd:string" />
481
+ </message>
482
+ <message name="listrakRemarketingLogToggleRequest">
483
+ <part name="sessionId" type="xsd:string" />
484
+ <part name="storeId" type="xsd:string" />
485
+ <part name="onOff" type="xsd:string" />
486
+ </message>
487
+ <message name="listrakRemarketingLogToggleResponse">
488
+ <part name="result" type="xsd:string" />
489
+ </message>
490
+ <message name="listrakRemarketingOrderListRequest">
491
+ <part name="sessionId" type="xsd:string" />
492
+ <part name="storeId" type="xsd:string" />
493
+ <part name="startDate" type="xsd:string" />
494
+ <part name="endDate" type="xsd:string" />
495
+ <part name="perPage" type="xsd:int" />
496
+ <part name="page" type="xsd:int" />
497
+ </message>
498
+ <message name="listrakRemarketingOrderListResponse">
499
+ <part name="result" type="typens:ArrayOfListrakRemarketingOrder" />
500
+ </message>
501
+ <message name="listrakRemarketingOrderStatusListRequest">
502
+ <part name="sessionId" type="xsd:string" />
503
+ <part name="storeId" type="xsd:string" />
504
+ <part name="startDate" type="xsd:string" />
505
+ <part name="endDate" type="xsd:string" />
506
+ <part name="perPage" type="xsd:int" />
507
+ <part name="page" type="xsd:int" />
508
+ <part name="filters" type="typens:filters" />
509
+ </message>
510
+ <message name="listrakRemarketingOrderStatusListResponse">
511
+ <part name="result" type="typens:ArrayOfListrakRemarketingOrderStatus" />
512
+ </message>
513
+ <message name="listrakRemarketingProductListRequest">
514
+ <part name="sessionId" type="xsd:string" />
515
+ <part name="storeId" type="xsd:string" />
516
+ <part name="perPage" type="xsd:int" />
517
+ <part name="page" type="xsd:int" />
518
+ </message>
519
+ <message name="listrakRemarketingProductListResponse">
520
+ <part name="result" type="typens:ArrayOfListrakRemarketingProduct" />
521
+ </message>
522
+ <message name="listrakRemarketingSubscriberListRequest">
523
+ <part name="sessionId" type="xsd:string" />
524
+ <part name="storeId" type="xsd:string" />
525
+ <part name="startDate" type="xsd:string" />
526
+ <part name="perPage" type="xsd:int" />
527
+ <part name="page" type="xsd:int" />
528
+ </message>
529
+ <message name="listrakRemarketingSubscriberListResponse">
530
+ <part name="result" type="typens:ArrayOfListrakRemarketingSubscriber" />
531
+ </message>
532
+ <message name="listrakRemarketingSubscriberPurgeRequest">
533
+ <part name="sessionId" type="xsd:string" />
534
+ <part name="endDate" type="xsd:string" />
535
+ </message>
536
+ <message name="listrakRemarketingSubscriberPurgeResponse">
537
+ <part name="result" type="xsd:string" />
538
+ </message>
539
+ <message name="listrakRemarketingCustomerListRequest">
540
+ <part name="sessionId" type="xsd:string" />
541
+ <part name="storeId" type="xsd:string" />
542
+ <part name="websiteId" type="xsd:int" />
543
+ <part name="perPage" type="xsd:int" />
544
+ <part name="page" type="xsd:int" />
545
+ </message>
546
+ <message name="listrakRemarketingCustomerListResponse">
547
+ <part name="result" type="typens:ArrayOfListrakRemarketingCustomer" />
548
+ </message>
549
+ <message name="listrakRemarketingInfoListRequest">
550
+ <part name="sessionId" type="xsd:string" />
551
+ <part name="storeId" type="xsd:string" />
552
+ </message>
553
+ <message name="listrakRemarketingInfoListResponse">
554
+ <part name="result" type="typens:ListrakRemarketingInfoEntity" />
555
+ </message>
556
+ <message name="listrakRemarketingReviewListRequest">
557
+ <part name="sessionId" type="xsd:string" />
558
+ <part name="storeId" type="xsd:string" />
559
+ <part name="chunkSize" type="xsd:string" />
560
+ <part name="startReviewId" type="xsd:string" />
561
+ </message>
562
+ <message name="listrakRemarketingReviewListResponse">
563
+ <part name="result" type="typens:ListrakRemarketingReviewListResult" />
564
+ </message>
565
+ <message name="listrakRemarketingRatingSummaryListRequest">
566
+ <part name="sessionId" type="xsd:string" />
567
+ <part name="storeId" type="xsd:string" />
568
+ <part name="chunkSize" type="xsd:string" />
569
+ <part name="startRatingSummaryId" type="xsd:string" />
570
+ </message>
571
+ <message name="listrakRemarketingRatingSummaryListResponse">
572
+ <part name="result" type="typens:ListrakRemarketingRatingSummaryListResult" />
573
+ </message>
574
+ <message name="listrakRemarketingReviewUpdateListRequest">
575
+ <part name="sessionId" type="xsd:string" />
576
+ <part name="storeId" type="xsd:string" />
577
+ <part name="chunkSize" type="xsd:string" />
578
+ <part name="startUpdateId" type="xsd:string" />
579
+ </message>
580
+ <message name="listrakRemarketingReviewUpdateListResponse">
581
+ <part name="result" type="typens:ListrakRemarketingReviewListResult" />
582
+ </message>
583
+ <message name="listrakRemarketingRatingSummaryUpdateListRequest">
584
+ <part name="sessionId" type="xsd:string" />
585
+ <part name="storeId" type="xsd:string" />
586
+ <part name="chunkSize" type="xsd:string" />
587
+ <part name="startUpdateId" type="xsd:string" />
588
+ </message>
589
+ <message name="listrakRemarketingRatingSummaryUpdateListResponse">
590
+ <part name="result" type="typens:ListrakRemarketingRatingSummaryListResult" />
591
+ </message>
592
+ <message name="listrakRemarketingReviewDeleteListRequest">
593
+ <part name="sessionId" type="xsd:string" />
594
+ <part name="chunkSize" type="xsd:string" />
595
+ <part name="startDeleteId" type="xsd:string" />
596
+ </message>
597
+ <message name="listrakRemarketingReviewDeleteListResponse">
598
+ <part name="result" type="typens:ListrakRemarketingReviewDeleteListResult" />
599
+ </message>
600
+ <message name="listrakRemarketingReviewUpdatePurgeRequest">
601
+ <part name="sessionId" type="xsd:string" />
602
+ <part name="purgeBeforeDays" type="xsd:string" />
603
+ </message>
604
+ <message name="listrakRemarketingReviewUpdatePurgeResponse">
605
+ <part name="result" type="typens:ListrakRemarketingReviewUpdatePurgeResult" />
606
+ </message>
607
+ <portType name="{{var wsdl.handler}}PortType">
608
+ <operation name="listrakRemarketingAbandonedCartList">
609
+ <documentation>Get stores abandoned carts</documentation>
610
+ <input message="typens:listrakRemarketingAbandonedCartListRequest" />
611
+ <output message="typens:listrakRemarketingAbandonedCartListResponse" />
612
+ </operation>
613
+ <operation name="listrakRemarketingAbandonedCartPurge">
614
+ <documentation>Purge abandoned carts</documentation>
615
+ <input message="typens:listrakRemarketingAbandonedCartPurgeRequest" />
616
+ <output message="typens:listrakRemarketingAbandonedCartPurgeResponse" />
617
+ </operation>
618
+ <operation name="listrakRemarketingClickList">
619
+ <documentation>Get clicks</documentation>
620
+ <input message="typens:listrakRemarketingClickListRequest" />
621
+ <output message="typens:listrakRemarketingClickListResponse" />
622
+ </operation>
623
+ <operation name="listrakRemarketingClickPurge">
624
+ <documentation>Purge clicks</documentation>
625
+ <input message="typens:listrakRemarketingClickPurgeRequest" />
626
+ <output message="typens:listrakRemarketingClickPurgeResponse" />
627
+ </operation>
628
+ <operation name="listrakRemarketingLogList">
629
+ <documentation>Get log entries</documentation>
630
+ <input message="typens:listrakRemarketingLogListRequest" />
631
+ <output message="typens:listrakRemarketingLogListResponse" />
632
+ </operation>
633
+ <operation name="listrakRemarketingLogPurge">
634
+ <documentation>Purge log entries</documentation>
635
+ <input message="typens:listrakRemarketingLogPurgeRequest" />
636
+ <output message="typens:listrakRemarketingLogPurgeResponse" />
637
+ </operation>
638
+ <operation name="listrakRemarketingLogToggle">
639
+ <documentation>toggle logging</documentation>
640
+ <input message="typens:listrakRemarketingLogToggleRequest" />
641
+ <output message="typens:listrakRemarketingLogToggleResponse" />
642
+ </operation>
643
+ <operation name="listrakRemarketingOrderList">
644
+ <documentation>Get orders</documentation>
645
+ <input message="typens:listrakRemarketingOrderListRequest" />
646
+ <output message="typens:listrakRemarketingOrderListResponse" />
647
+ </operation>
648
+ <operation name="listrakRemarketingOrderStatusList">
649
+ <documentation>Get order status changes</documentation>
650
+ <input message="typens:listrakRemarketingOrderStatusListRequest" />
651
+ <output message="typens:listrakRemarketingOrderStatusListResponse" />
652
+ </operation>
653
+ <operation name="listrakRemarketingProductList">
654
+ <documentation>Get products</documentation>
655
+ <input message="typens:listrakRemarketingProductListRequest" />
656
+ <output message="typens:listrakRemarketingProductListResponse" />
657
+ </operation>
658
+ <operation name="listrakRemarketingSubscriberList">
659
+ <documentation>Get subscribers and unsubscribers</documentation>
660
+ <input message="typens:listrakRemarketingSubscriberListRequest" />
661
+ <output message="typens:listrakRemarketingSubscriberListResponse" />
662
+ </operation>
663
+ <operation name="listrakRemarketingSubscriberPurge">
664
+ <documentation>Purge old subscriber updates</documentation>
665
+ <input message="typens:listrakRemarketingSubscriberPurgeRequest" />
666
+ <output message="typens:listrakRemarketingSubscriberPurgeResponse" />
667
+ </operation>
668
+ <operation name="listrakRemarketingCustomerList">
669
+ <documentation>Get customers</documentation>
670
+ <input message="typens:listrakRemarketingCustomerListRequest" />
671
+ <output message="typens:listrakRemarketingCustomerListResponse" />
672
+ </operation>
673
+ <operation name="listrakRemarketingInfoList">
674
+ <documentation>Get info</documentation>
675
+ <input message="typens:listrakRemarketingInfoListRequest" />
676
+ <output message="typens:listrakRemarketingInfoListResponse" />
677
+ </operation>
678
+ <operation name="listrakRemarketingReviewList">
679
+ <documentation>Get review list</documentation>
680
+ <input message="typens:listrakRemarketingReviewListRequest" />
681
+ <output message="typens:listrakRemarketingReviewListResponse" />
682
+ </operation>
683
+ <operation name="listrakRemarketingRatingSummaryList">
684
+ <documentation>Get rating summary list</documentation>
685
+ <input message="typens:listrakRemarketingRatingSummaryListRequest" />
686
+ <output message="typens:listrakRemarketingRatingSummaryListResponse" />
687
+ </operation>
688
+ <operation name="listrakRemarketingReviewUpdateList">
689
+ <documentation>Get review list</documentation>
690
+ <input message="typens:listrakRemarketingReviewUpdateListRequest" />
691
+ <output message="typens:listrakRemarketingReviewUpdateListResponse" />
692
+ </operation>
693
+ <operation name="listrakRemarketingRatingSummaryUpdateList">
694
+ <documentation>Get rating summary list</documentation>
695
+ <input message="typens:listrakRemarketingRatingSummaryUpdateListRequest" />
696
+ <output message="typens:listrakRemarketingRatingSummaryUpdateListResponse" />
697
+ </operation>
698
+ <operation name="listrakRemarketingReviewDeleteList">
699
+ <documentation>Get deleted reviews list</documentation>
700
+ <input message="typens:listrakRemarketingReviewDeleteListRequest" />
701
+ <output message="typens:listrakRemarketingReviewDeleteListResponse" />
702
+ </operation>
703
+ <operation name="listrakRemarketingReviewUpdatePurge">
704
+ <documentation>Get deleted reviews list</documentation>
705
+ <input message="typens:listrakRemarketingReviewUpdatePurgeRequest" />
706
+ <output message="typens:listrakRemarketingReviewUpdatePurgeResponse" />
707
+ </operation>
708
+ </portType>
709
+ <binding name="{{var wsdl.handler}}Binding" type="typens:{{var wsdl.handler}}PortType">
710
+ <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />
711
+ <operation name="listrakRemarketingAbandonedCartList">
712
+ <soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
713
+ <input>
714
+ <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
715
+ </input>
716
+ <output>
717
+ <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
718
+ </output>
719
+ </operation>
720
+ <operation name="listrakRemarketingAbandonedCartPurge">
721
+ <soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
722
+ <input>
723
+ <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
724
+ </input>
725
+ <output>
726
+ <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
727
+ </output>
728
+ </operation>
729
+ <operation name="listrakRemarketingClickList">
730
+ <soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
731
+ <input>
732
+ <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
733
+ </input>
734
+ <output>
735
+ <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
736
+ </output>
737
+ </operation>
738
+ <operation name="listrakRemarketingClickPurge">
739
+ <soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
740
+ <input>
741
+ <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
742
+ </input>
743
+ <output>
744
+ <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
745
+ </output>
746
+ </operation>
747
+ <operation name="listrakRemarketingLogList">
748
+ <soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
749
+ <input>
750
+ <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
751
+ </input>
752
+ <output>
753
+ <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
754
+ </output>
755
+ </operation>
756
+ <operation name="listrakRemarketingLogPurge">
757
+ <soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
758
+ <input>
759
+ <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
760
+ </input>
761
+ <output>
762
+ <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
763
+ </output>
764
+ </operation>
765
+ <operation name="listrakRemarketingLogToggle">
766
+ <soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
767
+ <input>
768
+ <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
769
+ </input>
770
+ <output>
771
+ <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
772
+ </output>
773
+ </operation>
774
+ <operation name="listrakRemarketingOrderList">
775
+ <soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
776
+ <input>
777
+ <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
778
+ </input>
779
+ <output>
780
+ <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
781
+ </output>
782
+ </operation>
783
+ <operation name="listrakRemarketingOrderStatusList">
784
+ <soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
785
+ <input>
786
+ <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
787
+ </input>
788
+ <output>
789
+ <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
790
+ </output>
791
+ </operation>
792
+ <operation name="listrakRemarketingProductList">
793
+ <soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
794
+ <input>
795
+ <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
796
+ </input>
797
+ <output>
798
+ <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
799
+ </output>
800
+ </operation>
801
+ <operation name="listrakRemarketingSubscriberList">
802
+ <soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
803
+ <input>
804
+ <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
805
+ </input>
806
+ <output>
807
+ <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
808
+ </output>
809
+ </operation>
810
+ <operation name="listrakRemarketingSubscriberPurge">
811
+ <soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
812
+ <input>
813
+ <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
814
+ </input>
815
+ <output>
816
+ <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
817
+ </output>
818
+ </operation>
819
+ <operation name="listrakRemarketingCustomerList">
820
+ <soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
821
+ <input>
822
+ <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
823
+ </input>
824
+ <output>
825
+ <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
826
+ </output>
827
+ </operation>
828
+ <operation name="listrakRemarketingInfoList">
829
+ <soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
830
+ <input>
831
+ <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
832
+ </input>
833
+ <output>
834
+ <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
835
+ </output>
836
+ </operation>
837
+ <operation name="listrakRemarketingReviewList">
838
+ <soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
839
+ <input>
840
+ <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
841
+ </input>
842
+ <output>
843
+ <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
844
+ </output>
845
+ </operation>
846
+ <operation name="listrakRemarketingRatingSummaryList">
847
+ <soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
848
+ <input>
849
+ <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
850
+ </input>
851
+ <output>
852
+ <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
853
+ </output>
854
+ </operation>
855
+ <operation name="listrakRemarketingReviewUpdateList">
856
+ <soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
857
+ <input>
858
+ <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
859
+ </input>
860
+ <output>
861
+ <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
862
+ </output>
863
+ </operation>
864
+ <operation name="listrakRemarketingRatingSummaryUpdateList">
865
+ <soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
866
+ <input>
867
+ <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
868
+ </input>
869
+ <output>
870
+ <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
871
+ </output>
872
+ </operation>
873
+ <operation name="listrakRemarketingReviewDeleteList">
874
+ <soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
875
+ <input>
876
+ <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
877
+ </input>
878
+ <output>
879
+ <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
880
+ </output>
881
+ </operation>
882
+ <operation name="listrakRemarketingReviewUpdatePurge">
883
+ <soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
884
+ <input>
885
+ <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
886
+ </input>
887
+ <output>
888
+ <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
889
+ </output>
890
+ </operation>
891
+ </binding>
892
+ <service name="{{var wsdl.name}}Service">
893
+ <port name="{{var wsdl.handler}}Port" binding="typens:{{var wsdl.handler}}Binding">
894
+ <soap:address location="{{var wsdl.url}}" />
895
+ </port>
896
+ </service>
897
  </definitions>
app/code/community/Listrak/Remarketing/etc/wsi.xml CHANGED
@@ -1,82 +1,1146 @@
1
  <?xml version="1.0" encoding="UTF-8"?>
2
  <!--
3
- /**
4
- * Listrak Remarketing Magento Extension Ver. 1.0.0 - © 2011 Listrak, Inc.
5
- */
6
  -->
7
  <wsdl:definitions xmlns:typens="urn:{{var wsdl.name}}"
8
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
9
- xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
10
- xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
11
- xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
12
- name="{{var wsdl.name}}"
13
- targetNamespace="urn:{{var wsdl.name}}">
14
- <wsdl:types>
15
- <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:{{var wsdl.name}}">
16
- <xsd:complexType name="listrakRemarketingClickEntityArray">
17
- <xsd:sequence>
18
- <xsd:element minOccurs="0" maxOccurs="unbounded" name="complexObjectArray" type="typens:listrakRemarketingClickEntity" />
19
- </xsd:sequence>
20
- </xsd:complexType>
21
- <xsd:complexType name="listrakRemarketingClickEntity">
22
- <xsd:sequence>
23
- <xsd:element name="click_id" type="xsd:string"/>
24
- <xsd:element name="querystring" type="xsd:string"/>
25
- <xsd:element name="click_date" type="xsd:string"/>
26
- <xsd:element name="token_uid" type="xsd:string"/>
27
- <xsd:element name="session_id" type="xsd:string"/>
28
- </xsd:sequence>
29
- </xsd:complexType>
30
-
31
- <xsd:element name="listrakRemarketingClickListRequestParam">
32
- <xsd:complexType>
33
- <xsd:sequence>
34
- <xsd:element minOccurs="1" maxOccurs="1" name="sessionId" type="xsd:string" />
35
- <xsd:element minOccurs="1" maxOccurs="1" name="storeId" type="xsd:string" />
36
- <xsd:element minOccurs="0" maxOccurs="1" name="startDate" type="xsd:string" />
37
- <xsd:element minOccurs="0" maxOccurs="1" name="endDate" type="xsd:string" />
38
- <xsd:element minOccurs="0" maxOccurs="1" name="perPage" type="xsd:string" />
39
- <xsd:element minOccurs="0" maxOccurs="1" name="page" type="xsd:string" />
40
- </xsd:sequence>
41
- </xsd:complexType>
42
- </xsd:element>
43
- <xsd:element name="listrakRemarketingClickListResponseParam">
44
- <xsd:complexType>
45
- <xsd:sequence>
46
- <xsd:element minOccurs="0" maxOccurs="1" name="result" type="typens:listrakRemarketingClickEntity" />
47
- </xsd:sequence>
48
- </xsd:complexType>
49
- </xsd:element>
50
- </xsd:schema>
51
- </wsdl:types>
52
- <wsdl:message name="listrakRemarketingClickListRequest">
53
- <wsdl:part name="parameters" element="typens:listrakRemarketingClickListRequestParam" />
54
- </wsdl:message>
55
- <wsdl:message name="listrakRemarketingClickListResponse">
56
- <wsdl:part name="parameters" element="typens:listrakRemarketingClickListResponseParam" />
57
- </wsdl:message>
58
- <wsdl:portType name="{{var wsdl.handler}}PortType">
59
- <wsdl:operation name="listrakRemarketingClickList">
60
- <wsdl:documentation>Set_Get current store view</wsdl:documentation>
61
- <wsdl:input message="typens:listrakRemarketingClickListRequest" />
62
- <wsdl:output message="typens:listrakRemarketingClickListResponse" />
63
- </wsdl:operation>
64
- </wsdl:portType>
65
- <wsdl:binding name="{{var wsdl.handler}}Binding" type="typens:{{var wsdl.handler}}PortType">
66
- <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
67
- <wsdl:operation name="listrakRemarketingClickList">
68
- <soap:operation soapAction="" />
69
- <wsdl:input>
70
- <soap:body use="literal" />
71
- </wsdl:input>
72
- <wsdl:output>
73
- <soap:body use="literal" />
74
- </wsdl:output>
75
- </wsdl:operation>
76
- </wsdl:binding>
77
- <wsdl:service name="{{var wsdl.name}}Service">
78
- <wsdl:port name="{{var wsdl.handler}}Port" binding="typens:{{var wsdl.handler}}Binding">
79
- <soap:address location="{{var wsdl.url}}" />
80
- </wsdl:port>
81
- </wsdl:service>
82
- </wsdl:definitions>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  <?xml version="1.0" encoding="UTF-8"?>
2
  <!--
3
+ /**
4
+ * Listrak Remarketing Magento Extension Ver. 1.0.0 - © 2011 Listrak, Inc.
5
+ */
6
  -->
7
  <wsdl:definitions xmlns:typens="urn:{{var wsdl.name}}"
8
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
9
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
10
+ xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
11
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
12
+ name="{{var wsdl.name}}"
13
+ targetNamespace="urn:{{var wsdl.name}}">
14
+ <wsdl:types>
15
+ <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:{{var wsdl.name}}">
16
+ <xsd:complexType name="ArrayOfString">
17
+ <xsd:sequence>
18
+ <xsd:element minOccurs="0" maxOccurs="unbounded" name="complexObjectArray" type="xsd:string" />
19
+ </xsd:sequence>
20
+ </xsd:complexType>
21
+ <!-- session -->
22
+ <xsd:complexType name="ListrakRemarketingSessionEntity">
23
+ <xsd:sequence>
24
+ <xsd:element name="session_id" type="xsd:string" minOccurs="0"/>
25
+ <xsd:element name="store_id" type="xsd:string" minOccurs="0"/>
26
+ <xsd:element name="created_at" type="xsd:string" minOccurs="0"/>
27
+ <xsd:element name="updated_at" type="xsd:string" minOccurs="0"/>
28
+ <xsd:element name="quote_id" type="xsd:string" minOccurs="0"/>
29
+ <xsd:element name="ips" type="xsd:string" minOccurs="0"/>
30
+ <xsd:element name="pi_id" type="xsd:string" minOccurs="0"/>
31
+ <xsd:element name="customer" type="typens:ListrakRemarketingCustomerEntity" minOccurs="0"/>
32
+ <xsd:element name="emails" type="typens:ArrayOfListrakRemarketingSessionEmail" minOccurs="0"/>
33
+ <xsd:element name="clicks" type="typens:ArrayOfListrakRemarketingClick" minOccurs="0"/>
34
+ </xsd:sequence>
35
+ </xsd:complexType>
36
+ <xsd:complexType name="ListrakRemarketingSessionEmailEntity">
37
+ <xsd:sequence>
38
+ <xsd:element name="email" type="xsd:string" minOccurs="0"/>
39
+ <xsd:element name="created_at" type="xsd:string" minOccurs="0"/>
40
+ <xsd:element name="page" type="xsd:string" minOccurs="0"/>
41
+ <xsd:element name="field_id" type="xsd:string" minOccurs="0"/>
42
+ </xsd:sequence>
43
+ </xsd:complexType>
44
+ <xsd:complexType name="ArrayOfListrakRemarketingSessionEmail">
45
+ <xsd:sequence>
46
+ <xsd:element minOccurs="0" maxOccurs="unbounded" name="complexObjectArray" type="typens:ListrakRemarketingSessionEmailEntity" />
47
+ </xsd:sequence>
48
+ </xsd:complexType>
49
+
50
+ <!-- abandoned cart -->
51
+ <xsd:complexType name="ListrakRemarketingAbandonedCartEntity">
52
+ <xsd:sequence>
53
+ <xsd:element name="store_id" type="xsd:string" minOccurs="0"/>
54
+ <xsd:element name="session" type="typens:ListrakRemarketingSessionEntity" minOccurs="0"/>
55
+ <xsd:element name="products" type="typens:ArrayOfListrakRemarketingAbandonedCartProduct" minOccurs="0"/>
56
+ </xsd:sequence>
57
+ </xsd:complexType>
58
+ <xsd:complexType name="ArrayOfListrakRemarketingAbandonedCart">
59
+ <xsd:sequence>
60
+ <xsd:element minOccurs="0" maxOccurs="unbounded" name="complexObjectArray" type="typens:ListrakRemarketingAbandonedCartEntity" />
61
+ </xsd:sequence>
62
+ </xsd:complexType>
63
+ <xsd:complexType name="ListrakRemarketingAbandonedCartProductEntity">
64
+ <xsd:sequence>
65
+ <xsd:element name="entity_id" type="xsd:string" minOccurs="0"/>
66
+ <xsd:element name="sku" type="xsd:string" minOccurs="0"/>
67
+ <xsd:element name="name" type="xsd:string" minOccurs="0"/>
68
+ <xsd:element name="price" type="xsd:string" minOccurs="0"/>
69
+ <xsd:element name="special_price" type="xsd:string" minOccurs="0"/>
70
+ <xsd:element name="special_from_date" type="xsd:string" minOccurs="0"/>
71
+ <xsd:element name="special_to_date" type="xsd:string" minOccurs="0"/>
72
+ <xsd:element name="cost" type="xsd:string" minOccurs="0"/>
73
+ <xsd:element name="description" type="xsd:string" minOccurs="0"/>
74
+ <xsd:element name="short_description" type="xsd:string" minOccurs="0"/>
75
+ <xsd:element name="weight" type="xsd:string" minOccurs="0"/>
76
+ <xsd:element name="url_key" type="xsd:string" minOccurs="0"/>
77
+ <xsd:element name="url_path" type="xsd:string" minOccurs="0"/>
78
+ <xsd:element name="image" type="xsd:string" minOccurs="0"/>
79
+ <xsd:element name="small_image" type="xsd:string" minOccurs="0"/>
80
+ <xsd:element name="thumbnail" type="xsd:string" minOccurs="0"/>
81
+ <xsd:element name="qty" type="xsd:string" minOccurs="0"/>
82
+ <xsd:element name="bundle_items" type="typens:ArrayOfListrakRemarketingAbandonedCartProduct" minOccurs="0"/>
83
+ </xsd:sequence>
84
+ </xsd:complexType>
85
+ <xsd:complexType name="ArrayOfListrakRemarketingAbandonedCartProduct">
86
+ <xsd:sequence>
87
+ <xsd:element minOccurs="0" maxOccurs="unbounded" name="complexObjectArray" type="typens:ListrakRemarketingAbandonedCartProductEntity" />
88
+ </xsd:sequence>
89
+ </xsd:complexType>
90
+
91
+ <!-- product -->
92
+ <xsd:complexType name="ListrakRemarketingConfigurableAttributeEntity">
93
+ <xsd:sequence>
94
+ <xsd:element name="attribute_name" type="xsd:string" minOccurs="0"/>
95
+ <xsd:element name="value" type="xsd:string" minOccurs="0"/>
96
+ </xsd:sequence>
97
+ </xsd:complexType>
98
+ <xsd:complexType name="ArrayOfListrakRemarketingConfigurableAttributeEntity">
99
+ <xsd:sequence>
100
+ <xsd:element minOccurs="0" maxOccurs="unbounded" name="complexObjectArray" type="typens:ListrakRemarketingConfigurableAttributeEntity" />
101
+ </xsd:sequence>
102
+ </xsd:complexType>
103
+ <xsd:complexType name="ListrakRemarketingProductEntity">
104
+ <xsd:sequence>
105
+ <xsd:element name="entity_id" type="xsd:string" minOccurs="0"/>
106
+ <xsd:element name="sku" type="xsd:string" minOccurs="0"/>
107
+ <xsd:element name="name" type="xsd:string" minOccurs="0"/>
108
+ <xsd:element name="price" type="xsd:string" minOccurs="0"/>
109
+ <xsd:element name="special_price" type="xsd:string" minOccurs="0"/>
110
+ <xsd:element name="special_from_date" type="xsd:string" minOccurs="0"/>
111
+ <xsd:element name="special_to_date" type="xsd:string" minOccurs="0"/>
112
+ <xsd:element name="cost" type="xsd:string" minOccurs="0"/>
113
+ <xsd:element name="description" type="xsd:string" minOccurs="0"/>
114
+ <xsd:element name="short_description" type="xsd:string" minOccurs="0"/>
115
+ <xsd:element name="weight" type="xsd:string" minOccurs="0"/>
116
+ <xsd:element name="url_key" type="xsd:string" minOccurs="0"/>
117
+ <xsd:element name="url_path" type="xsd:string" minOccurs="0"/>
118
+ <xsd:element name="image" type="xsd:string" minOccurs="0"/>
119
+ <xsd:element name="small_image" type="xsd:string" minOccurs="0"/>
120
+ <xsd:element name="thumbnail" type="xsd:string" minOccurs="0"/>
121
+ <xsd:element name="qty" type="xsd:string" minOccurs="0"/>
122
+ <xsd:element name="parent_id" type="xsd:string" minOccurs="0"/>
123
+ <xsd:element name="parent_sku" type="xsd:string" minOccurs="0"/>
124
+ <xsd:element name="brand" type="xsd:string" minOccurs="0"/>
125
+ <xsd:element name="category" type="xsd:string" minOccurs="0"/>
126
+ <xsd:element name="sub_category" type="xsd:string" minOccurs="0"/>
127
+ <xsd:element name="in_stock" type="xsd:string" minOccurs="0"/>
128
+ <xsd:element name="qty_on_hand" type="xsd:string" minOccurs="0"/>
129
+ <xsd:element name="type" type="xsd:string" minOccurs="0"/>
130
+ <xsd:element name="configurable_attributes" type="typens:ArrayOfListrakRemarketingConfigurableAttributeEntity" minOccurs="0"/>
131
+ </xsd:sequence>
132
+ </xsd:complexType>
133
+ <xsd:complexType name="ArrayOfListrakRemarketingProduct">
134
+ <xsd:sequence>
135
+ <xsd:element minOccurs="0" maxOccurs="unbounded" name="complexObjectArray" type="typens:ListrakRemarketingProductEntity" />
136
+ </xsd:sequence>
137
+ </xsd:complexType>
138
+
139
+ <!-- click -->
140
+ <xsd:complexType name="ListrakRemarketingClickEntity">
141
+ <xsd:sequence>
142
+ <xsd:element name="store_id" type="xsd:string" minOccurs="0"/>
143
+ <xsd:element name="customer_id" type="xsd:string" minOccurs="0"/>
144
+ <xsd:element name="customer_email" type="xsd:string" minOccurs="0"/>
145
+ <xsd:element name="querystring" type="xsd:string" minOccurs="0"/>
146
+ <xsd:element name="click_date" type="xsd:string" minOccurs="0"/>
147
+ <xsd:element name="token_uid" type="xsd:string" minOccurs="0"/>
148
+ <xsd:element name="session_uid" type="xsd:string" minOccurs="0"/>
149
+ <xsd:element name="pi_id" type="xsd:string" minOccurs="0"/>
150
+ </xsd:sequence>
151
+ </xsd:complexType>
152
+ <xsd:complexType name="ArrayOfListrakRemarketingClick">
153
+ <xsd:sequence>
154
+ <xsd:element minOccurs="0" maxOccurs="unbounded" name="complexObjectArray" type="typens:ListrakRemarketingClickEntity" />
155
+ </xsd:sequence>
156
+ </xsd:complexType>
157
+
158
+ <!-- log -->
159
+ <xsd:complexType name="ListrakRemarketingLogEntity">
160
+ <xsd:sequence>
161
+ <xsd:element name="store_id" type="xsd:string" minOccurs="0"/>
162
+ <xsd:element name="message" type="xsd:string" minOccurs="0"/>
163
+ <xsd:element name="date_entered" type="xsd:string" minOccurs="0"/>
164
+ <xsd:element name="log_type_id" type="xsd:string" minOccurs="0"/>
165
+ </xsd:sequence>
166
+ </xsd:complexType>
167
+ <xsd:complexType name="ArrayOfListrakRemarketingLog">
168
+ <xsd:sequence>
169
+ <xsd:element minOccurs="0" maxOccurs="unbounded" name="complexObjectArray" type="typens:ListrakRemarketingLogEntity" />
170
+ </xsd:sequence>
171
+ </xsd:complexType>
172
+
173
+ <!-- order -->
174
+ <xsd:complexType name="ListrakRemarketingOrderEntity">
175
+ <xsd:sequence>
176
+ <xsd:element name="info" type="typens:ListrakRemarketingOrderInfoEntity" minOccurs="0"/>
177
+ <xsd:element name="billing_address" type="typens:ListrakRemarketingOrderAddressEntity" minOccurs="0"/>
178
+ <xsd:element name="shipping_address" type="typens:ListrakRemarketingOrderAddressEntity" minOccurs="0"/>
179
+ <xsd:element name="product" type="typens:ArrayOfListrakRemarketingProductShort" minOccurs="0"/>
180
+ <xsd:element name="session" type="typens:ListrakRemarketingSessionEntity" minOccurs="0"/>
181
+ <xsd:element name="customer" type="typens:ListrakRemarketingCustomerEntity" minOccurs="0"/>
182
+ </xsd:sequence>
183
+ </xsd:complexType>
184
+ <xsd:complexType name="ArrayOfListrakRemarketingOrder">
185
+ <xsd:sequence>
186
+ <xsd:element minOccurs="0" maxOccurs="unbounded" name="complexObjectArray" type="typens:ListrakRemarketingOrderEntity" />
187
+ </xsd:sequence>
188
+ </xsd:complexType>
189
+ <xsd:complexType name="ListrakRemarketingOrderInfoEntity">
190
+ <xsd:sequence>
191
+ <xsd:element name="entity_id" type="xsd:string" minOccurs="0"/>
192
+ <xsd:element name="order_id" type="xsd:string" minOccurs="0"/>
193
+ <xsd:element name="status" type="xsd:string" minOccurs="0" />
194
+ <xsd:element name="customer_firstname" type="xsd:string" minOccurs="0"/>
195
+ <xsd:element name="customer_lastname" type="xsd:string" minOccurs="0"/>
196
+ <xsd:element name="customer_email" type="xsd:string" minOccurs="0"/>
197
+ <xsd:element name="subtotal" type="xsd:string" minOccurs="0"/>
198
+ <xsd:element name="tax_amount" type="xsd:string" minOccurs="0"/>
199
+ <xsd:element name="shipping_amount" type="xsd:string" minOccurs="0"/>
200
+ <xsd:element name="grand_total" type="xsd:string" minOccurs="0"/>
201
+ <xsd:element name="billing_firstname" type="xsd:string" minOccurs="0"/>
202
+ <xsd:element name="created_at" type="xsd:string" minOccurs="0"/>
203
+ <xsd:element name="updated_at" type="xsd:string" minOccurs="0"/>
204
+ </xsd:sequence>
205
+ </xsd:complexType>
206
+ <xsd:complexType name="ListrakRemarketingOrderAddressEntity">
207
+ <xsd:sequence>
208
+ <xsd:element name="firstname" type="xsd:string" minOccurs="0"/>
209
+ <xsd:element name="lastname" type="xsd:string" minOccurs="0"/>
210
+ <xsd:element name="company" type="xsd:string" minOccurs="0"/>
211
+ <xsd:element name="street" type="xsd:string" minOccurs="0"/>
212
+ <xsd:element name="city" type="xsd:string" minOccurs="0"/>
213
+ <xsd:element name="region" type="xsd:string" minOccurs="0"/>
214
+ <xsd:element name="postcode" type="xsd:string" minOccurs="0"/>
215
+ <xsd:element name="country" type="xsd:string" minOccurs="0"/>
216
+ </xsd:sequence>
217
+ </xsd:complexType>
218
+ <xsd:complexType name="ListrakRemarketingProductShortEntity">
219
+ <xsd:sequence>
220
+ <xsd:element name="sku" type="xsd:string" minOccurs="0"/>
221
+ <xsd:element name="name" type="xsd:string" minOccurs="0"/>
222
+ <xsd:element name="price" type="xsd:string" minOccurs="0"/>
223
+ <xsd:element name="qty_ordered" type="xsd:string" minOccurs="0"/>
224
+ <xsd:element name="product_price" type="xsd:string" minOccurs="0"/>
225
+ <xsd:element name="bundle_items" type="typens:ArrayOfListrakRemarketingProductShort" minOccurs="0"/>
226
+ </xsd:sequence>
227
+ </xsd:complexType>
228
+ <xsd:complexType name="ArrayOfListrakRemarketingProductShort">
229
+ <xsd:sequence>
230
+ <xsd:element minOccurs="0" maxOccurs="unbounded" name="complexObjectArray" type="typens:ListrakRemarketingProductShortEntity" />
231
+ </xsd:sequence>
232
+ </xsd:complexType>
233
+
234
+ <!-- order status -->
235
+ <xsd:complexType name="ListrakRemarketingOrderStatusEntity">
236
+ <xsd:sequence>
237
+ <xsd:element name="increment_id" type="xsd:string" minOccurs="0"/>
238
+ <xsd:element name="status" type="xsd:string" minOccurs="0" />
239
+ <xsd:element name="updated_at" type="xsd:string" minOccurs="0"/>
240
+ </xsd:sequence>
241
+ </xsd:complexType>
242
+ <xsd:complexType name="ArrayOfListrakRemarketingOrderStatus">
243
+ <xsd:sequence>
244
+ <xsd:element minOccurs="0" maxOccurs="unbounded" name="complexObjectArray" type="typens:ListrakRemarketingOrderStatusEntity" />
245
+ </xsd:sequence>
246
+ </xsd:complexType>
247
+
248
+ <!-- customer -->
249
+ <xsd:complexType name="ListrakRemarketingCustomerEntity">
250
+ <xsd:sequence>
251
+ <xsd:element name="entity_id" type="xsd:string" minOccurs="0"/>
252
+ <xsd:element name="firstname" type="xsd:string" minOccurs="0"/>
253
+ <xsd:element name="lastname" type="xsd:string" minOccurs="0"/>
254
+ <xsd:element name="email" type="xsd:string" minOccurs="0"/>
255
+ <xsd:element name="website_id" type="xsd:string" minOccurs="0"/>
256
+ <xsd:element name="store_id" type="xsd:string" minOccurs="0"/>
257
+ <xsd:element name="gender_name" type="xsd:string" minOccurs="0"/>
258
+ <xsd:element name="dob" type="xsd:string" minOccurs="0"/>
259
+ <xsd:element name="group_name" type="xsd:string" minOccurs="0"/>
260
+ </xsd:sequence>
261
+ </xsd:complexType>
262
+ <xsd:complexType name="ArrayOfListrakRemarketingCustomer">
263
+ <xsd:sequence>
264
+ <xsd:element minOccurs="0" maxOccurs="unbounded" name="complexObjectArray" type="typens:ListrakRemarketingCustomerEntity" />
265
+ </xsd:sequence>
266
+ </xsd:complexType>
267
+
268
+ <!-- subscriber -->
269
+ <xsd:complexType name="ListrakRemarketingSubscriberEntity">
270
+ <xsd:sequence>
271
+ <xsd:element name="subscriber_id" type="xsd:string" minOccurs="0"/>
272
+ <xsd:element name="store_id" type="xsd:string" minOccurs="0"/>
273
+ <xsd:element name="customer_id" type="xsd:string" minOccurs="0"/>
274
+ <xsd:element name="change_status_at" type="xsd:string" minOccurs="0"/>
275
+ <xsd:element name="subscriber_email" type="xsd:string" minOccurs="0"/>
276
+ <xsd:element name="subscriber_status" type="xsd:string" minOccurs="0"/>
277
+ <xsd:element name="updated_at" type="xsd:string" minOccurs="0"/>
278
+ </xsd:sequence>
279
+ </xsd:complexType>
280
+ <xsd:complexType name="ArrayOfListrakRemarketingSubscriber">
281
+ <xsd:sequence>
282
+ <xsd:element minOccurs="0" maxOccurs="unbounded" name="complexObjectArray" type="typens:ListrakRemarketingSubscriberEntity" />
283
+ </xsd:sequence>
284
+ </xsd:complexType>
285
+
286
+ <xsd:complexType name="ListrakRemarketingInfoEntity">
287
+ <xsd:sequence>
288
+ <xsd:element name="magentoVersion" type="xsd:string" minOccurs="0"/>
289
+ <xsd:element name="listrakSettings" type="typens:ListrakRemarketingSettingEntity" minOccurs="0"/>
290
+ <xsd:element name="modules" type="typens:ArrayOfString" minOccurs="0"/>
291
+ <xsd:element name="ini" type="typens:ArrayOfString" minOccurs="0"/>
292
+ <xsd:element name="classes" type="xsd:string" minOccurs="0"/>
293
+ <xsd:element name="counts" type="xsd:string" minOccurs="0"/>
294
+ </xsd:sequence>
295
+ </xsd:complexType>
296
+ <xsd:complexType name="ListrakRemarketingSettingEntity">
297
+ <xsd:sequence>
298
+ <xsd:element name="coreEnabled" type="xsd:string" minOccurs="0"/>
299
+ <xsd:element name="reviewsApiEnabled" type="xsd:string" minOccurs="0"/>
300
+ </xsd:sequence>
301
+ </xsd:complexType>
302
+
303
+ <!-- review list / review update list -->
304
+ <xsd:complexType name="ListrakRemarketingReviewListResult">
305
+ <xsd:sequence>
306
+ <xsd:element minOccurs="0" maxOccurs="unbounded" name="complexObjectArray" type="typens:ListrakRemarketingReviewListItem" />
307
+ </xsd:sequence>
308
+ </xsd:complexType>
309
+ <xsd:complexType name="ListrakRemarketingReviewListItem">
310
+ <xsd:sequence>
311
+ <xsd:element name="update_id" type="xsd:string" minOccurs="0"/>
312
+ <xsd:element name="review_id" type="xsd:string" minOccurs="0"/>
313
+ <xsd:element name="product_id" type="xsd:string" minOccurs="0"/>
314
+ <xsd:element name="title" type="xsd:string" minOccurs="0"/>
315
+ <xsd:element name="text" type="xsd:string" minOccurs="0"/>
316
+ <xsd:element name="overall_rating" type="xsd:string" minOccurs="0"/>
317
+ <xsd:element name="created_at" type="xsd:string" minOccurs="0"/>
318
+ <xsd:element name="updated_at" type="xsd:string" minOccurs="0"/>
319
+ <xsd:element name="reviewer_name" type="xsd:string" minOccurs="0"/>
320
+ <xsd:element name="email" type="xsd:string" minOccurs="0"/>
321
+ <xsd:element name="status_id" type="xsd:string" minOccurs="0"/>
322
+ <xsd:element name="status_code" type="xsd:string" minOccurs="0"/>
323
+ <xsd:element name="ratings" type="typens:ArrayOfListrakRemarketingReviewRating" minOccurs="0"/>
324
+ </xsd:sequence>
325
+ </xsd:complexType>
326
+ <xsd:complexType name="ArrayOfListrakRemarketingReviewRating">
327
+ <xsd:sequence>
328
+ <xsd:element minOccurs="0" maxOccurs="unbounded" name="complexObjectArray" type="typens:ListrakRemarketingReviewRatingItem" />
329
+ </xsd:sequence>
330
+ </xsd:complexType>
331
+ <xsd:complexType name="ListrakRemarketingReviewRatingItem">
332
+ <xsd:sequence>
333
+ <xsd:element name="rating_id" type="xsd:string" minOccurs="0"/>
334
+ <xsd:element name="rating_code" type="xsd:string" minOccurs="0"/>
335
+ <xsd:element name="rating" type="xsd:string" minOccurs="0"/>
336
+ </xsd:sequence>
337
+ </xsd:complexType>
338
+
339
+ <!-- rating summary list / rating summary update list -->
340
+ <xsd:complexType name="ListrakRemarketingRatingSummaryListResult">
341
+ <xsd:sequence>
342
+ <xsd:element minOccurs="0" maxOccurs="unbounded" name="complexObjectArray" type="typens:ListrakRemarketingRatingSummaryItem" />
343
+ </xsd:sequence>
344
+ </xsd:complexType>
345
+ <xsd:complexType name="ListrakRemarketingRatingSummaryItem">
346
+ <xsd:sequence>
347
+ <xsd:element name="update_id" type="xsd:string" minOccurs="0"/>
348
+ <xsd:element name="rating_summary_id" type="xsd:string" minOccurs="0"/>
349
+ <xsd:element name="product_id" type="xsd:string" minOccurs="0"/>
350
+ <xsd:element name="updated_at" type="xsd:string" minOccurs="0"/>
351
+ <xsd:element name="total_reviews" type="xsd:string" minOccurs="0"/>
352
+ <xsd:element name="rating" type="xsd:string" minOccurs="0"/>
353
+ <xsd:element name="ratings" type="typens:ArrayOfListrakRemarketingRatingSummaryAttribute" minOccurs="0"/>
354
+ </xsd:sequence>
355
+ </xsd:complexType>
356
+ <xsd:complexType name="ArrayOfListrakRemarketingRatingSummaryAttribute">
357
+ <xsd:sequence>
358
+ <xsd:element minOccurs="0" maxOccurs="unbounded" name="complexObjectArray" type="typens:ListrakRemarketingRatingSummaryAttributeItem" />
359
+ </xsd:sequence>
360
+ </xsd:complexType>
361
+ <xsd:complexType name="ListrakRemarketingRatingSummaryAttributeItem">
362
+ <xsd:sequence>
363
+ <xsd:element name="rating_id" type="xsd:string" minOccurs="0"/>
364
+ <xsd:element name="rating_code" type="xsd:string" minOccurs="0"/>
365
+ <xsd:element name="rating" type="xsd:string" minOccurs="0"/>
366
+ </xsd:sequence>
367
+ </xsd:complexType>
368
+
369
+ <!-- review delete list -->
370
+ <xsd:complexType name="ListrakRemarketingReviewDeleteListResult">
371
+ <xsd:sequence>
372
+ <xsd:element minOccurs="0" maxOccurs="unbounded" name="complexObjectArray" type="typens:ListrakRemarketingDeletedReview" />
373
+ </xsd:sequence>
374
+ </xsd:complexType>
375
+ <xsd:complexType name="ListrakRemarketingDeletedReview">
376
+ <xsd:sequence>
377
+ <xsd:element name="delete_id" type="xsd:string" minOccurs="0"/>
378
+ <xsd:element name="review_id" type="xsd:string" minOccurs="0"/>
379
+ </xsd:sequence>
380
+ </xsd:complexType>
381
+
382
+ <!-- review update purge -->
383
+ <xsd:complexType name="ListrakRemarketingReviewUpdatePurgeResult">
384
+ <xsd:sequence>
385
+ <xsd:element name="count" type="xsd:string" minOccurs="0"/>
386
+ <xsd:element name="before" type="xsd:string" minOccurs="0"/>
387
+ </xsd:sequence>
388
+ </xsd:complexType>
389
+
390
+ <!-- message parameters -->
391
+ <xsd:element name="listrakRemarketingAbandonedCartListRequestParam">
392
+ <xsd:complexType>
393
+ <xsd:sequence>
394
+ <xsd:element minOccurs="1" maxOccurs="1" name="sessionId" type="xsd:string" />
395
+ <xsd:element minOccurs="1" maxOccurs="1" name="storeId" type="xsd:string" />
396
+ <xsd:element minOccurs="1" maxOccurs="1" name="startDate" type="xsd:string" />
397
+ <xsd:element minOccurs="1" maxOccurs="1" name="endDate" type="xsd:string" />
398
+ <xsd:element minOccurs="1" maxOccurs="1" name="perPage" type="xsd:int" />
399
+ <xsd:element minOccurs="1" maxOccurs="1" name="page" type="xsd:int" />
400
+ </xsd:sequence>
401
+ </xsd:complexType>
402
+ </xsd:element>
403
+ <xsd:element name="listrakRemarketingAbandonedCartListResponseParam">
404
+ <xsd:complexType>
405
+ <xsd:sequence>
406
+ <xsd:element minOccurs="1" maxOccurs="1" name="result" type="typens:ArrayOfListrakRemarketingAbandonedCart" />
407
+ </xsd:sequence>
408
+ </xsd:complexType>
409
+ </xsd:element>
410
+ <xsd:element name="listrakRemarketingAbandonedCartPurgeRequestParam">
411
+ <xsd:complexType>
412
+ <xsd:sequence>
413
+ <xsd:element minOccurs="1" maxOccurs="1" name="sessionId" type="xsd:string" />
414
+ <xsd:element minOccurs="1" maxOccurs="1" name="storeId" type="xsd:string" />
415
+ <xsd:element minOccurs="1" maxOccurs="1" name="endDate" type="xsd:string" />
416
+ </xsd:sequence>
417
+ </xsd:complexType>
418
+ </xsd:element>
419
+ <xsd:element name="listrakRemarketingAbandonedCartPurgeResponseParam">
420
+ <xsd:complexType>
421
+ <xsd:sequence>
422
+ <xsd:element minOccurs="1" maxOccurs="1" name="result" type="xsd:string" />
423
+ </xsd:sequence>
424
+ </xsd:complexType>
425
+ </xsd:element>
426
+ <xsd:element name="listrakRemarketingClickListRequestParam">
427
+ <xsd:complexType>
428
+ <xsd:sequence>
429
+ <xsd:element minOccurs="1" maxOccurs="1" name="sessionId" type="xsd:string" />
430
+ <xsd:element minOccurs="1" maxOccurs="1" name="storeId" type="xsd:string" />
431
+ <xsd:element minOccurs="1" maxOccurs="1" name="startDate" type="xsd:string" />
432
+ <xsd:element minOccurs="1" maxOccurs="1" name="endDate" type="xsd:string" />
433
+ <xsd:element minOccurs="1" maxOccurs="1" name="perPage" type="xsd:int" />
434
+ <xsd:element minOccurs="1" maxOccurs="1" name="page" type="xsd:int" />
435
+ </xsd:sequence>
436
+ </xsd:complexType>
437
+ </xsd:element>
438
+ <xsd:element name="listrakRemarketingClickListResponseParam">
439
+ <xsd:complexType>
440
+ <xsd:sequence>
441
+ <xsd:element minOccurs="1" maxOccurs="1" name="result" type="typens:ArrayOfListrakRemarketingClick" />
442
+ </xsd:sequence>
443
+ </xsd:complexType>
444
+ </xsd:element>
445
+ <xsd:element name="listrakRemarketingClickPurgeRequestParam">
446
+ <xsd:complexType>
447
+ <xsd:sequence>
448
+ <xsd:element minOccurs="1" maxOccurs="1" name="sessionId" type="xsd:string" />
449
+ <xsd:element minOccurs="1" maxOccurs="1" name="storeId" type="xsd:string" />
450
+ <xsd:element minOccurs="1" maxOccurs="1" name="endDate" type="xsd:string" />
451
+ </xsd:sequence>
452
+ </xsd:complexType>
453
+ </xsd:element>
454
+ <xsd:element name="listrakRemarketingClickPurgeResponseParam">
455
+ <xsd:complexType>
456
+ <xsd:sequence>
457
+ <xsd:element minOccurs="1" maxOccurs="1" name="result" type="xsd:string" />
458
+ </xsd:sequence>
459
+ </xsd:complexType>
460
+ </xsd:element>
461
+ <xsd:element name="listrakRemarketingLogListRequestParam">
462
+ <xsd:complexType>
463
+ <xsd:sequence>
464
+ <xsd:element minOccurs="1" maxOccurs="1" name="sessionId" type="xsd:string" />
465
+ <xsd:element minOccurs="1" maxOccurs="1" name="storeId" type="xsd:string" />
466
+ <xsd:element minOccurs="1" maxOccurs="1" name="startDate" type="xsd:string" />
467
+ <xsd:element minOccurs="1" maxOccurs="1" name="endDate" type="xsd:string" />
468
+ <xsd:element minOccurs="1" maxOccurs="1" name="perPage" type="xsd:int" />
469
+ <xsd:element minOccurs="1" maxOccurs="1" name="page" type="xsd:int" />
470
+ <xsd:element minOccurs="1" maxOccurs="1" name="logTypeId" type="xsd:string" />
471
+ </xsd:sequence>
472
+ </xsd:complexType>
473
+ </xsd:element>
474
+ <xsd:element name="listrakRemarketingLogListResponseParam">
475
+ <xsd:complexType>
476
+ <xsd:sequence>
477
+ <xsd:element minOccurs="1" maxOccurs="1" name="result" type="typens:ArrayOfListrakRemarketingLog" />
478
+ </xsd:sequence>
479
+ </xsd:complexType>
480
+ </xsd:element>
481
+ <xsd:element name="listrakRemarketingLogPurgeRequestParam">
482
+ <xsd:complexType>
483
+ <xsd:sequence>
484
+ <xsd:element minOccurs="1" maxOccurs="1" name="sessionId" type="xsd:string" />
485
+ <xsd:element minOccurs="1" maxOccurs="1" name="storeId" type="xsd:string" />
486
+ <xsd:element minOccurs="1" maxOccurs="1" name="endDate" type="xsd:string" />
487
+ </xsd:sequence>
488
+ </xsd:complexType>
489
+ </xsd:element>
490
+ <xsd:element name="listrakRemarketingLogPurgeResponseParam">
491
+ <xsd:complexType>
492
+ <xsd:sequence>
493
+ <xsd:element minOccurs="1" maxOccurs="1" name="result" type="xsd:string" />
494
+ </xsd:sequence>
495
+ </xsd:complexType>
496
+ </xsd:element>
497
+ <xsd:element name="listrakRemarketingLogToggleRequestParam">
498
+ <xsd:complexType>
499
+ <xsd:sequence>
500
+ <xsd:element minOccurs="1" maxOccurs="1" name="sessionId" type="xsd:string" />
501
+ <xsd:element minOccurs="1" maxOccurs="1" name="storeId" type="xsd:string" />
502
+ <xsd:element minOccurs="1" maxOccurs="1" name="onOff" type="xsd:string" />
503
+ </xsd:sequence>
504
+ </xsd:complexType>
505
+ </xsd:element>
506
+ <xsd:element name="listrakRemarketingLogToggleResponseParam">
507
+ <xsd:complexType>
508
+ <xsd:sequence>
509
+ <xsd:element minOccurs="1" maxOccurs="1" name="result" type="xsd:string" />
510
+ </xsd:sequence>
511
+ </xsd:complexType>
512
+ </xsd:element>
513
+ <xsd:element name="listrakRemarketingOrderListRequestParam">
514
+ <xsd:complexType>
515
+ <xsd:sequence>
516
+ <xsd:element minOccurs="1" maxOccurs="1" name="sessionId" type="xsd:string" />
517
+ <xsd:element minOccurs="1" maxOccurs="1" name="storeId" type="xsd:string" />
518
+ <xsd:element minOccurs="1" maxOccurs="1" name="startDate" type="xsd:string" />
519
+ <xsd:element minOccurs="1" maxOccurs="1" name="endDate" type="xsd:string" />
520
+ <xsd:element minOccurs="1" maxOccurs="1" name="perPage" type="xsd:int" />
521
+ <xsd:element minOccurs="1" maxOccurs="1" name="page" type="xsd:int" />
522
+ </xsd:sequence>
523
+ </xsd:complexType>
524
+ </xsd:element>
525
+ <xsd:element name="listrakRemarketingOrderListResponseParam">
526
+ <xsd:complexType>
527
+ <xsd:sequence>
528
+ <xsd:element minOccurs="1" maxOccurs="1" name="result" type="typens:ArrayOfListrakRemarketingOrder" />
529
+ </xsd:sequence>
530
+ </xsd:complexType>
531
+ </xsd:element>
532
+ <xsd:element name="listrakRemarketingOrderStatusListRequestParam">
533
+ <xsd:complexType>
534
+ <xsd:sequence>
535
+ <xsd:element minOccurs="1" maxOccurs="1" name="sessionId" type="xsd:string" />
536
+ <xsd:element minOccurs="1" maxOccurs="1" name="storeId" type="xsd:string" />
537
+ <xsd:element minOccurs="1" maxOccurs="1" name="startDate" type="xsd:string" />
538
+ <xsd:element minOccurs="1" maxOccurs="1" name="endDate" type="xsd:string" />
539
+ <xsd:element minOccurs="1" maxOccurs="1" name="perPage" type="xsd:int" />
540
+ <xsd:element minOccurs="1" maxOccurs="1" name="page" type="xsd:int" />
541
+ <xsd:element minOccurs="1" maxOccurs="1" name="filters" type="typens:filters" />
542
+ </xsd:sequence>
543
+ </xsd:complexType>
544
+ </xsd:element>
545
+ <xsd:element name="listrakRemarketingOrderStatusListResponseParam">
546
+ <xsd:complexType>
547
+ <xsd:sequence>
548
+ <xsd:element minOccurs="1" maxOccurs="1" name="result" type="typens:ArrayOfListrakRemarketingOrderStatus" />
549
+ </xsd:sequence>
550
+ </xsd:complexType>
551
+ </xsd:element>
552
+ <xsd:element name="listrakRemarketingProductListRequestParam">
553
+ <xsd:complexType>
554
+ <xsd:sequence>
555
+ <xsd:element minOccurs="1" maxOccurs="1" name="sessionId" type="xsd:string" />
556
+ <xsd:element minOccurs="1" maxOccurs="1" name="storeId" type="xsd:string" />
557
+ <xsd:element minOccurs="1" maxOccurs="1" name="perPage" type="xsd:int" />
558
+ <xsd:element minOccurs="1" maxOccurs="1" name="page" type="xsd:int" />
559
+ </xsd:sequence>
560
+ </xsd:complexType>
561
+ </xsd:element>
562
+ <xsd:element name="listrakRemarketingProductListResponseParam">
563
+ <xsd:complexType>
564
+ <xsd:sequence>
565
+ <xsd:element minOccurs="1" maxOccurs="1" name="result" type="typens:ArrayOfListrakRemarketingProduct" />
566
+ </xsd:sequence>
567
+ </xsd:complexType>
568
+ </xsd:element>
569
+ <xsd:element name="listrakRemarketingSubscriberListRequestParam">
570
+ <xsd:complexType>
571
+ <xsd:sequence>
572
+ <xsd:element minOccurs="1" maxOccurs="1" name="sessionId" type="xsd:string" />
573
+ <xsd:element minOccurs="1" maxOccurs="1" name="storeId" type="xsd:string" />
574
+ <xsd:element minOccurs="1" maxOccurs="1" name="startDate" type="xsd:string" />
575
+ <xsd:element minOccurs="1" maxOccurs="1" name="perPage" type="xsd:int" />
576
+ <xsd:element minOccurs="1" maxOccurs="1" name="page" type="xsd:int" />
577
+ </xsd:sequence>
578
+ </xsd:complexType>
579
+ </xsd:element>
580
+ <xsd:element name="listrakRemarketingSubscriberListResponseParam">
581
+ <xsd:complexType>
582
+ <xsd:sequence>
583
+ <xsd:element minOccurs="1" maxOccurs="1" name="result" type="typens:ArrayOfListrakRemarketingSubscriber" />
584
+ </xsd:sequence>
585
+ </xsd:complexType>
586
+ </xsd:element>
587
+ <xsd:element name="listrakRemarketingSubscriberPurgeRequestParam">
588
+ <xsd:complexType>
589
+ <xsd:sequence>
590
+ <xsd:element minOccurs="1" maxOccurs="1" name="sessionId" type="xsd:string" />
591
+ <xsd:element minOccurs="1" maxOccurs="1" name="endDate" type="xsd:string" />
592
+ </xsd:sequence>
593
+ </xsd:complexType>
594
+ </xsd:element>
595
+ <xsd:element name="listrakRemarketingSubscriberPurgeResponseParam">
596
+ <xsd:complexType>
597
+ <xsd:sequence>
598
+ <xsd:element minOccurs="1" maxOccurs="1" name="result" type="xsd:string" />
599
+ </xsd:sequence>
600
+ </xsd:complexType>
601
+ </xsd:element>
602
+ <xsd:element name="listrakRemarketingCustomerListRequestParam">
603
+ <xsd:complexType>
604
+ <xsd:sequence>
605
+ <xsd:element minOccurs="1" maxOccurs="1" name="sessionId" type="xsd:string" />
606
+ <xsd:element minOccurs="1" maxOccurs="1" name="storeId" type="xsd:string" />
607
+ <xsd:element minOccurs="1" maxOccurs="1" name="websiteId" type="xsd:int" />
608
+ <xsd:element minOccurs="1" maxOccurs="1" name="perPage" type="xsd:int" />
609
+ <xsd:element minOccurs="1" maxOccurs="1" name="page" type="xsd:int" />
610
+ </xsd:sequence>
611
+ </xsd:complexType>
612
+ </xsd:element>
613
+ <xsd:element name="listrakRemarketingCustomerListResponseParam">
614
+ <xsd:complexType>
615
+ <xsd:sequence>
616
+ <xsd:element minOccurs="1" maxOccurs="1" name="result" type="typens:ArrayOfListrakRemarketingCustomer" />
617
+ </xsd:sequence>
618
+ </xsd:complexType>
619
+ </xsd:element>
620
+ <xsd:element name="listrakRemarketingInfoListRequestParam">
621
+ <xsd:complexType>
622
+ <xsd:sequence>
623
+ <xsd:element minOccurs="1" maxOccurs="1" name="sessionId" type="xsd:string" />
624
+ <xsd:element minOccurs="1" maxOccurs="1" name="storeId" type="xsd:string" />
625
+ </xsd:sequence>
626
+ </xsd:complexType>
627
+ </xsd:element>
628
+ <xsd:element name="listrakRemarketingInfoListResponseParam">
629
+ <xsd:complexType>
630
+ <xsd:sequence>
631
+ <xsd:element minOccurs="1" maxOccurs="1" name="result" type="typens:ListrakRemarketingInfoEntity" />
632
+ </xsd:sequence>
633
+ </xsd:complexType>
634
+ </xsd:element>
635
+ <xsd:element name="listrakRemarketingReviewListRequestParam">
636
+ <xsd:complexType>
637
+ <xsd:sequence>
638
+ <xsd:element minOccurs="1" maxOccurs="1" name="sessionId" type="xsd:string" />
639
+ <xsd:element minOccurs="1" maxOccurs="1" name="storeId" type="xsd:string" />
640
+ <xsd:element minOccurs="1" maxOccurs="1" name="chunkSize" type="xsd:string" />
641
+ <xsd:element minOccurs="1" maxOccurs="1" name="startReviewId" type="xsd:string" />
642
+ </xsd:sequence>
643
+ </xsd:complexType>
644
+ </xsd:element>
645
+ <xsd:element name="listrakRemarketingReviewListResponseParam">
646
+ <xsd:complexType>
647
+ <xsd:sequence>
648
+ <xsd:element minOccurs="1" maxOccurs="1" name="result" type="typens:ListrakRemarketingReviewListResult" />
649
+ </xsd:sequence>
650
+ </xsd:complexType>
651
+ </xsd:element>
652
+ <xsd:element name="listrakRemarketingRatingSummaryListRequestParam">
653
+ <xsd:complexType>
654
+ <xsd:sequence>
655
+ <xsd:element minOccurs="1" maxOccurs="1" name="sessionId" type="xsd:string" />
656
+ <xsd:element minOccurs="1" maxOccurs="1" name="storeId" type="xsd:string" />
657
+ <xsd:element minOccurs="1" maxOccurs="1" name="chunkSize" type="xsd:string" />
658
+ <xsd:element minOccurs="1" maxOccurs="1" name="startRatingSummaryId" type="xsd:string" />
659
+ </xsd:sequence>
660
+ </xsd:complexType>
661
+ </xsd:element>
662
+ <xsd:element name="listrakRemarketingRatingSummaryListResponseParam">
663
+ <xsd:complexType>
664
+ <xsd:sequence>
665
+ <xsd:element minOccurs="1" maxOccurs="1" name="result" type="typens:ListrakRemarketingRatingSummaryListResult" />
666
+ </xsd:sequence>
667
+ </xsd:complexType>
668
+ </xsd:element>
669
+ <xsd:element name="listrakRemarketingReviewUpdateListRequestParam">
670
+ <xsd:complexType>
671
+ <xsd:sequence>
672
+ <xsd:element minOccurs="1" maxOccurs="1" name="sessionId" type="xsd:string" />
673
+ <xsd:element minOccurs="1" maxOccurs="1" name="storeId" type="xsd:string" />
674
+ <xsd:element minOccurs="1" maxOccurs="1" name="chunkSize" type="xsd:string" />
675
+ <xsd:element minOccurs="1" maxOccurs="1" name="startUpdateId" type="xsd:string" />
676
+ </xsd:sequence>
677
+ </xsd:complexType>
678
+ </xsd:element>
679
+ <xsd:element name="listrakRemarketingReviewUpdateListResponseParam">
680
+ <xsd:complexType>
681
+ <xsd:sequence>
682
+ <xsd:element minOccurs="1" maxOccurs="1" name="result" type="typens:ListrakRemarketingReviewListResult" />
683
+ </xsd:sequence>
684
+ </xsd:complexType>
685
+ </xsd:element>
686
+ <xsd:element name="listrakRemarketingRatingSummaryUpdateListRequestParam">
687
+ <xsd:complexType>
688
+ <xsd:sequence>
689
+ <xsd:element minOccurs="1" maxOccurs="1" name="sessionId" type="xsd:string" />
690
+ <xsd:element minOccurs="1" maxOccurs="1" name="storeId" type="xsd:string" />
691
+ <xsd:element minOccurs="1" maxOccurs="1" name="chunkSize" type="xsd:string" />
692
+ <xsd:element minOccurs="1" maxOccurs="1" name="startUpdateId" type="xsd:string" />
693
+ </xsd:sequence>
694
+ </xsd:complexType>
695
+ </xsd:element>
696
+ <xsd:element name="listrakRemarketingRatingSummaryUpdateListResponseParam">
697
+ <xsd:complexType>
698
+ <xsd:sequence>
699
+ <xsd:element minOccurs="1" maxOccurs="1" name="result" type="typens:ListrakRemarketingRatingSummaryListResult" />
700
+ </xsd:sequence>
701
+ </xsd:complexType>
702
+ </xsd:element>
703
+ <xsd:element name="listrakRemarketingReviewDeleteListRequestParam">
704
+ <xsd:complexType>
705
+ <xsd:sequence>
706
+ <xsd:element minOccurs="1" maxOccurs="1" name="sessionId" type="xsd:string" />
707
+ <xsd:element minOccurs="1" maxOccurs="1" name="chunkSize" type="xsd:string" />
708
+ <xsd:element minOccurs="1" maxOccurs="1" name="startDeleteId" type="xsd:string" />
709
+ </xsd:sequence>
710
+ </xsd:complexType>
711
+ </xsd:element>
712
+ <xsd:element name="listrakRemarketingReviewDeleteListResponseParam">
713
+ <xsd:complexType>
714
+ <xsd:sequence>
715
+ <xsd:element minOccurs="1" maxOccurs="1" name="result" type="typens:ListrakRemarketingReviewDeleteListResult" />
716
+ </xsd:sequence>
717
+ </xsd:complexType>
718
+ </xsd:element>
719
+ <xsd:element name="listrakRemarketingReviewUpdatePurgeRequestParam">
720
+ <xsd:complexType>
721
+ <xsd:sequence>
722
+ <xsd:element minOccurs="1" maxOccurs="1" name="sessionId" type="xsd:string" />
723
+ <xsd:element minOccurs="1" maxOccurs="1" name="purgeBeforeDays" type="xsd:string" />
724
+ </xsd:sequence>
725
+ </xsd:complexType>
726
+ </xsd:element>
727
+ <xsd:element name="listrakRemarketingReviewUpdatePurgeResponseParam">
728
+ <xsd:complexType>
729
+ <xsd:sequence>
730
+ <xsd:element minOccurs="1" maxOccurs="1" name="result" type="typens:ListrakRemarketingReviewUpdatePurgeResult" />
731
+ </xsd:sequence>
732
+ </xsd:complexType>
733
+ </xsd:element>
734
+ </xsd:schema>
735
+ </wsdl:types>
736
+ <wsdl:message name="listrakRemarketingAbandonedCartListRequest">
737
+ <wsdl:part name="parameters" element="typens:listrakRemarketingAbandonedCartListRequestParam" />
738
+ </wsdl:message>
739
+ <wsdl:message name="listrakRemarketingAbandonedCartListResponse">
740
+ <wsdl:part name="parameters" element="typens:listrakRemarketingAbandonedCartListResponseParam" />
741
+ </wsdl:message>
742
+ <wsdl:message name="listrakRemarketingAbandonedCartPurgeRequest">
743
+ <wsdl:part name="parameters" element="typens:listrakRemarketingAbandonedCartPurgeRequestParam" />
744
+ </wsdl:message>
745
+ <wsdl:message name="listrakRemarketingAbandonedCartPurgeResponse">
746
+ <wsdl:part name="parameters" element="typens:listrakRemarketingAbandonedCartPurgeResponseParam" />
747
+ </wsdl:message>
748
+ <wsdl:message name="listrakRemarketingClickListRequest">
749
+ <wsdl:part name="parameters" element="typens:listrakRemarketingClickListRequestParam" />
750
+ </wsdl:message>
751
+ <wsdl:message name="listrakRemarketingClickListResponse">
752
+ <wsdl:part name="parameters" element="typens:listrakRemarketingClickListResponseParam" />
753
+ </wsdl:message>
754
+ <wsdl:message name="listrakRemarketingClickPurgeRequest">
755
+ <wsdl:part name="parameters" element="typens:listrakRemarketingClickPurgeRequestParam" />
756
+ </wsdl:message>
757
+ <wsdl:message name="listrakRemarketingClickPurgeResponse">
758
+ <wsdl:part name="parameters" element="typens:listrakRemarketingClickPurgeResponseParam" />
759
+ </wsdl:message>
760
+ <wsdl:message name="listrakRemarketingLogListRequest">
761
+ <wsdl:part name="parameters" element="typens:listrakRemarketingLogListRequestParam" />
762
+ </wsdl:message>
763
+ <wsdl:message name="listrakRemarketingLogListResponse">
764
+ <wsdl:part name="parameters" element="typens:listrakRemarketingLogListResponseParam" />
765
+ </wsdl:message>
766
+ <wsdl:message name="listrakRemarketingLogPurgeRequest">
767
+ <wsdl:part name="parameters" element="typens:listrakRemarketingLogPurgeRequestParam" />
768
+ </wsdl:message>
769
+ <wsdl:message name="listrakRemarketingLogPurgeResponse">
770
+ <wsdl:part name="parameters" element="typens:listrakRemarketingLogPurgeResponseParam" />
771
+ </wsdl:message>
772
+ <wsdl:message name="listrakRemarketingLogToggleRequest">
773
+ <wsdl:part name="parameters" element="typens:listrakRemarketingLogToggleRequestParam" />
774
+ </wsdl:message>
775
+ <wsdl:message name="listrakRemarketingLogToggleResponse">
776
+ <wsdl:part name="parameters" element="typens:listrakRemarketingLogToggleResponseParam" />
777
+ </wsdl:message>
778
+ <wsdl:message name="listrakRemarketingOrderListRequest">
779
+ <wsdl:part name="parameters" element="typens:listrakRemarketingOrderListRequestParam" />
780
+ </wsdl:message>
781
+ <wsdl:message name="listrakRemarketingOrderListResponse">
782
+ <wsdl:part name="parameters" element="typens:listrakRemarketingOrderListResponseParam" />
783
+ </wsdl:message>
784
+ <wsdl:message name="listrakRemarketingOrderStatusListRequest">
785
+ <wsdl:part name="parameters" element="typens:listrakRemarketingOrderStatusListRequestParam" />
786
+ </wsdl:message>
787
+ <wsdl:message name="listrakRemarketingOrderStatusListResponse">
788
+ <wsdl:part name="parameters" element="typens:listrakRemarketingOrderStatusListResponseParam" />
789
+ </wsdl:message>
790
+ <wsdl:message name="listrakRemarketingProductListRequest">
791
+ <wsdl:part name="parameters" element="typens:listrakRemarketingProductListRequestParam" />
792
+ </wsdl:message>
793
+ <wsdl:message name="listrakRemarketingProductListResponse">
794
+ <wsdl:part name="parameters" element="typens:listrakRemarketingProductListResponseParam" />
795
+ </wsdl:message>
796
+ <wsdl:message name="listrakRemarketingSubscriberListRequest">
797
+ <wsdl:part name="parameters" element="typens:listrakRemarketingSubscriberListRequestParam" />
798
+ </wsdl:message>
799
+ <wsdl:message name="listrakRemarketingSubscriberListResponse">
800
+ <wsdl:part name="parameters" element="typens:listrakRemarketingSubscriberListResponseParam" />
801
+ </wsdl:message>
802
+ <wsdl:message name="listrakRemarketingSubscriberPurgeRequest">
803
+ <wsdl:part name="parameters" element="typens:listrakRemarketingSubscriberPurgeRequestParam" />
804
+ </wsdl:message>
805
+ <wsdl:message name="listrakRemarketingSubscriberPurgeResponse">
806
+ <wsdl:part name="parameters" element="typens:listrakRemarketingSubscriberPurgeResponseParam" />
807
+ </wsdl:message>
808
+ <wsdl:message name="listrakRemarketingCustomerListRequest">
809
+ <wsdl:part name="parameters" element="typens:listrakRemarketingCustomerListRequestParam" />
810
+ </wsdl:message>
811
+ <wsdl:message name="listrakRemarketingCustomerListResponse">
812
+ <wsdl:part name="parameters" element="typens:listrakRemarketingCustomerListResponseParam" />
813
+ </wsdl:message>
814
+ <wsdl:message name="listrakRemarketingInfoListRequest">
815
+ <wsdl:part name="parameters" element="typens:listrakRemarketingInfoListRequestParam" />
816
+ </wsdl:message>
817
+ <wsdl:message name="listrakRemarketingInfoListResponse">
818
+ <wsdl:part name="parameters" element="typens:listrakRemarketingInfoListResponseParam" />
819
+ </wsdl:message>
820
+ <wsdl:message name="listrakRemarketingReviewListRequest">
821
+ <wsdl:part name="parameters" element="typens:listrakRemarketingReviewListRequestParam" />
822
+ </wsdl:message>
823
+ <wsdl:message name="listrakRemarketingReviewListResponse">
824
+ <wsdl:part name="parameters" element="typens:listrakRemarketingReviewListResponseParam" />
825
+ </wsdl:message>
826
+ <wsdl:message name="listrakRemarketingRatingSummaryListRequest">
827
+ <wsdl:part name="parameters" element="typens:listrakRemarketingRatingSummaryListRequestParam" />
828
+ </wsdl:message>
829
+ <wsdl:message name="listrakRemarketingRatingSummaryListResponse">
830
+ <wsdl:part name="parameters" element="typens:listrakRemarketingRatingSummaryListResponseParam" />
831
+ </wsdl:message>
832
+ <wsdl:message name="listrakRemarketingReviewUpdateListRequest">
833
+ <wsdl:part name="parameters" element="typens:listrakRemarketingReviewUpdateListRequestParam" />
834
+ </wsdl:message>
835
+ <wsdl:message name="listrakRemarketingReviewUpdateListResponse">
836
+ <wsdl:part name="parameters" element="typens:listrakRemarketingReviewUpdateListResponseParam" />
837
+ </wsdl:message>
838
+ <wsdl:message name="listrakRemarketingRatingSummaryUpdateListRequest">
839
+ <wsdl:part name="parameters" element="typens:listrakRemarketingRatingSummaryUpdateListRequestParam" />
840
+ </wsdl:message>
841
+ <wsdl:message name="listrakRemarketingRatingSummaryUpdateListResponse">
842
+ <wsdl:part name="parameters" element="typens:listrakRemarketingRatingSummaryUpdateListResponseParam" />
843
+ </wsdl:message>
844
+ <wsdl:message name="listrakRemarketingReviewDeleteListRequest">
845
+ <wsdl:part name="parameters" element="typens:listrakRemarketingReviewDeleteListRequestParam" />
846
+ </wsdl:message>
847
+ <wsdl:message name="listrakRemarketingReviewDeleteListResponse">
848
+ <wsdl:part name="parameters" element="typens:listrakRemarketingReviewDeleteListResponseParam" />
849
+ </wsdl:message>
850
+ <wsdl:message name="listrakRemarketingReviewUpdatePurgeRequest">
851
+ <wsdl:part name="parameters" element="typens:listrakRemarketingReviewUpdatePurgeRequestParam" />
852
+ </wsdl:message>
853
+ <wsdl:message name="listrakRemarketingReviewUpdatePurgeResponse">
854
+ <wsdl:part name="parameters" element="typens:listrakRemarketingReviewUpdatePurgeResponseParam" />
855
+ </wsdl:message>
856
+ <wsdl:portType name="{{var wsdl.handler}}PortType">
857
+ <wsdl:operation name="listrakRemarketingAbandonedCartList">
858
+ <wsdl:documentation>Get stores abandoned carts</wsdl:documentation>
859
+ <wsdl:input message="typens:listrakRemarketingAbandonedCartListRequest" />
860
+ <wsdl:output message="typens:listrakRemarketingAbandonedCartListResponse" />
861
+ </wsdl:operation>
862
+ <wsdl:operation name="listrakRemarketingAbandonedCartPurge">
863
+ <wsdl:documentation>Purge abandoned carts</wsdl:documentation>
864
+ <wsdl:input message="typens:listrakRemarketingAbandonedCartPurgeRequest" />
865
+ <wsdl:output message="typens:listrakRemarketingAbandonedCartPurgeResponse" />
866
+ </wsdl:operation>
867
+ <wsdl:operation name="listrakRemarketingClickList">
868
+ <wsdl:documentation>Get clicks</wsdl:documentation>
869
+ <wsdl:input message="typens:listrakRemarketingClickListRequest" />
870
+ <wsdl:output message="typens:listrakRemarketingClickListResponse" />
871
+ </wsdl:operation>
872
+ <wsdl:operation name="listrakRemarketingClickPurge">
873
+ <wsdl:documentation>Purge clicks</wsdl:documentation>
874
+ <wsdl:input message="typens:listrakRemarketingClickPurgeRequest" />
875
+ <wsdl:output message="typens:listrakRemarketingClickPurgeResponse" />
876
+ </wsdl:operation>
877
+ <wsdl:operation name="listrakRemarketingLogList">
878
+ <wsdl:documentation>Get log entries</wsdl:documentation>
879
+ <wsdl:input message="typens:listrakRemarketingLogListRequest" />
880
+ <wsdl:output message="typens:listrakRemarketingLogListResponse" />
881
+ </wsdl:operation>
882
+ <wsdl:operation name="listrakRemarketingLogPurge">
883
+ <wsdl:documentation>Purge log entries</wsdl:documentation>
884
+ <wsdl:input message="typens:listrakRemarketingLogPurgeRequest" />
885
+ <wsdl:output message="typens:listrakRemarketingLogPurgeResponse" />
886
+ </wsdl:operation>
887
+ <wsdl:operation name="listrakRemarketingLogToggle">
888
+ <wsdl:documentation>toggle logging</wsdl:documentation>
889
+ <wsdl:input message="typens:listrakRemarketingLogToggleRequest" />
890
+ <wsdl:output message="typens:listrakRemarketingLogToggleResponse" />
891
+ </wsdl:operation>
892
+ <wsdl:operation name="listrakRemarketingOrderList">
893
+ <wsdl:documentation>Get orders</wsdl:documentation>
894
+ <wsdl:input message="typens:listrakRemarketingOrderListRequest" />
895
+ <wsdl:output message="typens:listrakRemarketingOrderListResponse" />
896
+ </wsdl:operation>
897
+ <wsdl:operation name="listrakRemarketingOrderStatusList">
898
+ <wsdl:documentation>Get order status changes</wsdl:documentation>
899
+ <wsdl:input message="typens:listrakRemarketingOrderStatusListRequest" />
900
+ <wsdl:output message="typens:listrakRemarketingOrderStatusListResponse" />
901
+ </wsdl:operation>
902
+ <wsdl:operation name="listrakRemarketingProductList">
903
+ <wsdl:documentation>Get products</wsdl:documentation>
904
+ <wsdl:input message="typens:listrakRemarketingProductListRequest" />
905
+ <wsdl:output message="typens:listrakRemarketingProductListResponse" />
906
+ </wsdl:operation>
907
+ <wsdl:operation name="listrakRemarketingSubscriberList">
908
+ <wsdl:documentation>Get subscribers and unsubscribers</wsdl:documentation>
909
+ <wsdl:input message="typens:listrakRemarketingSubscriberListRequest" />
910
+ <wsdl:output message="typens:listrakRemarketingSubscriberListResponse" />
911
+ </wsdl:operation>
912
+ <wsdl:operation name="listrakRemarketingSubscriberPurge">
913
+ <wsdl:documentation>Purge old subscriber updates</wsdl:documentation>
914
+ <wsdl:input message="typens:listrakRemarketingSubscriberPurgeRequest" />
915
+ <wsdl:output message="typens:listrakRemarketingSubscriberPurgeResponse" />
916
+ </wsdl:operation>
917
+ <wsdl:operation name="listrakRemarketingCustomerList">
918
+ <wsdl:documentation>Get customers</wsdl:documentation>
919
+ <wsdl:input message="typens:listrakRemarketingCustomerListRequest" />
920
+ <wsdl:output message="typens:listrakRemarketingCustomerListResponse" />
921
+ </wsdl:operation>
922
+ <wsdl:operation name="listrakRemarketingInfoList">
923
+ <wsdl:documentation>Get info</wsdl:documentation>
924
+ <wsdl:input message="typens:listrakRemarketingInfoListRequest" />
925
+ <wsdl:output message="typens:listrakRemarketingInfoListResponse" />
926
+ </wsdl:operation>
927
+ <wsdl:operation name="listrakRemarketingReviewList">
928
+ <wsdl:documentation>Get review list</wsdl:documentation>
929
+ <wsdl:input message="typens:listrakRemarketingReviewListRequest" />
930
+ <wsdl:output message="typens:listrakRemarketingReviewListResponse" />
931
+ </wsdl:operation>
932
+ <wsdl:operation name="listrakRemarketingRatingSummaryList">
933
+ <wsdl:documentation>Get rating summary list</wsdl:documentation>
934
+ <wsdl:input message="typens:listrakRemarketingRatingSummaryListRequest" />
935
+ <wsdl:output message="typens:listrakRemarketingRatingSummaryListResponse" />
936
+ </wsdl:operation>
937
+ <wsdl:operation name="listrakRemarketingReviewUpdateList">
938
+ <wsdl:documentation>Get review list</wsdl:documentation>
939
+ <wsdl:input message="typens:listrakRemarketingReviewUpdateListRequest" />
940
+ <wsdl:output message="typens:listrakRemarketingReviewUpdateListResponse" />
941
+ </wsdl:operation>
942
+ <wsdl:operation name="listrakRemarketingRatingSummaryUpdateList">
943
+ <wsdl:documentation>Get rating summary list</wsdl:documentation>
944
+ <wsdl:input message="typens:listrakRemarketingRatingSummaryUpdateListRequest" />
945
+ <wsdl:output message="typens:listrakRemarketingRatingSummaryUpdateListResponse" />
946
+ </wsdl:operation>
947
+ <wsdl:operation name="listrakRemarketingReviewDeleteList">
948
+ <wsdl:documentation>Get deleted reviews list</wsdl:documentation>
949
+ <wsdl:input message="typens:listrakRemarketingReviewDeleteListRequest" />
950
+ <wsdl:output message="typens:listrakRemarketingReviewDeleteListResponse" />
951
+ </wsdl:operation>
952
+ <wsdl:operation name="listrakRemarketingReviewUpdatePurge">
953
+ <wsdl:documentation>Get deleted reviews list</wsdl:documentation>
954
+ <wsdl:input message="typens:listrakRemarketingReviewUpdatePurgeRequest" />
955
+ <wsdl:output message="typens:listrakRemarketingReviewUpdatePurgeResponse" />
956
+ </wsdl:operation>
957
+ </wsdl:portType>
958
+ <wsdl:binding name="{{var wsdl.handler}}Binding" type="typens:{{var wsdl.handler}}PortType">
959
+ <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
960
+ <wsdl:operation name="listrakRemarketingAbandonedCartList">
961
+ <soap:operation soapAction="" />
962
+ <wsdl:input>
963
+ <soap:body use="literal" />
964
+ </wsdl:input>
965
+ <wsdl:output>
966
+ <soap:body use="literal" />
967
+ </wsdl:output>
968
+ </wsdl:operation>
969
+ <wsdl:operation name="listrakRemarketingAbandonedCartPurge">
970
+ <soap:operation soapAction="" />
971
+ <wsdl:input>
972
+ <soap:body use="literal" />
973
+ </wsdl:input>
974
+ <wsdl:output>
975
+ <soap:body use="literal" />
976
+ </wsdl:output>
977
+ </wsdl:operation>
978
+ <wsdl:operation name="listrakRemarketingClickList">
979
+ <soap:operation soapAction="" />
980
+ <wsdl:input>
981
+ <soap:body use="literal" />
982
+ </wsdl:input>
983
+ <wsdl:output>
984
+ <soap:body use="literal" />
985
+ </wsdl:output>
986
+ </wsdl:operation>
987
+ <wsdl:operation name="listrakRemarketingClickPurge">
988
+ <soap:operation soapAction="" />
989
+ <wsdl:input>
990
+ <soap:body use="literal" />
991
+ </wsdl:input>
992
+ <wsdl:output>
993
+ <soap:body use="literal" />
994
+ </wsdl:output>
995
+ </wsdl:operation>
996
+ <wsdl:operation name="listrakRemarketingLogList">
997
+ <soap:operation soapAction="" />
998
+ <wsdl:input>
999
+ <soap:body use="literal" />
1000
+ </wsdl:input>
1001
+ <wsdl:output>
1002
+ <soap:body use="literal" />
1003
+ </wsdl:output>
1004
+ </wsdl:operation>
1005
+ <wsdl:operation name="listrakRemarketingLogPurge">
1006
+ <soap:operation soapAction="" />
1007
+ <wsdl:input>
1008
+ <soap:body use="literal" />
1009
+ </wsdl:input>
1010
+ <wsdl:output>
1011
+ <soap:body use="literal" />
1012
+ </wsdl:output>
1013
+ </wsdl:operation>
1014
+ <wsdl:operation name="listrakRemarketingLogToggle">
1015
+ <soap:operation soapAction="" />
1016
+ <wsdl:input>
1017
+ <soap:body use="literal" />
1018
+ </wsdl:input>
1019
+ <wsdl:output>
1020
+ <soap:body use="literal" />
1021
+ </wsdl:output>
1022
+ </wsdl:operation>
1023
+ <wsdl:operation name="listrakRemarketingOrderList">
1024
+ <soap:operation soapAction="" />
1025
+ <wsdl:input>
1026
+ <soap:body use="literal" />
1027
+ </wsdl:input>
1028
+ <wsdl:output>
1029
+ <soap:body use="literal" />
1030
+ </wsdl:output>
1031
+ </wsdl:operation>
1032
+ <wsdl:operation name="listrakRemarketingOrderStatusList">
1033
+ <soap:operation soapAction="" />
1034
+ <wsdl:input>
1035
+ <soap:body use="literal" />
1036
+ </wsdl:input>
1037
+ <wsdl:output>
1038
+ <soap:body use="literal" />
1039
+ </wsdl:output>
1040
+ </wsdl:operation>
1041
+ <wsdl:operation name="listrakRemarketingProductList">
1042
+ <soap:operation soapAction="" />
1043
+ <wsdl:input>
1044
+ <soap:body use="literal" />
1045
+ </wsdl:input>
1046
+ <wsdl:output>
1047
+ <soap:body use="literal" />
1048
+ </wsdl:output>
1049
+ </wsdl:operation>
1050
+ <wsdl:operation name="listrakRemarketingSubscriberList">
1051
+ <soap:operation soapAction="" />
1052
+ <wsdl:input>
1053
+ <soap:body use="literal" />
1054
+ </wsdl:input>
1055
+ <wsdl:output>
1056
+ <soap:body use="literal" />
1057
+ </wsdl:output>
1058
+ </wsdl:operation>
1059
+ <wsdl:operation name="listrakRemarketingSubscriberPurge">
1060
+ <soap:operation soapAction="" />
1061
+ <wsdl:input>
1062
+ <soap:body use="literal" />
1063
+ </wsdl:input>
1064
+ <wsdl:output>
1065
+ <soap:body use="literal" />
1066
+ </wsdl:output>
1067
+ </wsdl:operation>
1068
+ <wsdl:operation name="listrakRemarketingCustomerList">
1069
+ <soap:operation soapAction="" />
1070
+ <wsdl:input>
1071
+ <soap:body use="literal" />
1072
+ </wsdl:input>
1073
+ <wsdl:output>
1074
+ <soap:body use="literal" />
1075
+ </wsdl:output>
1076
+ </wsdl:operation>
1077
+ <wsdl:operation name="listrakRemarketingInfoList">
1078
+ <soap:operation soapAction="" />
1079
+ <wsdl:input>
1080
+ <soap:body use="literal" />
1081
+ </wsdl:input>
1082
+ <wsdl:output>
1083
+ <soap:body use="literal" />
1084
+ </wsdl:output>
1085
+ </wsdl:operation>
1086
+ <wsdl:operation name="listrakRemarketingReviewList">
1087
+ <soap:operation soapAction="" />
1088
+ <wsdl:input>
1089
+ <soap:body use="literal" />
1090
+ </wsdl:input>
1091
+ <wsdl:output>
1092
+ <soap:body use="literal" />
1093
+ </wsdl:output>
1094
+ </wsdl:operation>
1095
+ <wsdl:operation name="listrakRemarketingRatingSummaryList">
1096
+ <soap:operation soapAction="" />
1097
+ <wsdl:input>
1098
+ <soap:body use="literal" />
1099
+ </wsdl:input>
1100
+ <wsdl:output>
1101
+ <soap:body use="literal" />
1102
+ </wsdl:output>
1103
+ </wsdl:operation>
1104
+ <wsdl:operation name="listrakRemarketingReviewUpdateList">
1105
+ <soap:operation soapAction="" />
1106
+ <wsdl:input>
1107
+ <soap:body use="literal" />
1108
+ </wsdl:input>
1109
+ <wsdl:output>
1110
+ <soap:body use="literal" />
1111
+ </wsdl:output>
1112
+ </wsdl:operation>
1113
+ <wsdl:operation name="listrakRemarketingRatingSummaryUpdateList">
1114
+ <soap:operation soapAction="" />
1115
+ <wsdl:input>
1116
+ <soap:body use="literal" />
1117
+ </wsdl:input>
1118
+ <wsdl:output>
1119
+ <soap:body use="literal" />
1120
+ </wsdl:output>
1121
+ </wsdl:operation>
1122
+ <wsdl:operation name="listrakRemarketingReviewDeleteList">
1123
+ <soap:operation soapAction="" />
1124
+ <wsdl:input>
1125
+ <soap:body use="literal" />
1126
+ </wsdl:input>
1127
+ <wsdl:output>
1128
+ <soap:body use="literal" />
1129
+ </wsdl:output>
1130
+ </wsdl:operation>
1131
+ <wsdl:operation name="listrakRemarketingReviewUpdatePurge">
1132
+ <soap:operation soapAction="" />
1133
+ <wsdl:input>
1134
+ <soap:body use="literal" />
1135
+ </wsdl:input>
1136
+ <wsdl:output>
1137
+ <soap:body use="literal" />
1138
+ </wsdl:output>
1139
+ </wsdl:operation>
1140
+ </wsdl:binding>
1141
+ <wsdl:service name="{{var wsdl.name}}Service">
1142
+ <wsdl:port name="{{var wsdl.handler}}Port" binding="typens:{{var wsdl.handler}}Binding">
1143
+ <soap:address location="{{var wsdl.url}}" />
1144
+ </wsdl:port>
1145
+ </wsdl:service>
1146
+ </wsdl:definitions>
app/code/community/Listrak/Remarketing/sql/listrak_remarketing_setup/mysql4-install-1.0.0.php CHANGED
@@ -73,18 +73,4 @@ INSERT INTO {$this->getTable('listrak/emailcapture')} (`emailcapture_id` ,`page`
73
 
74
  ");
75
 
76
- try {
77
- $client = new Varien_Http_Client("http://magento.listrakbi.com/Install.ashx");
78
- $client->setMethod(Varien_Http_Client::POST);
79
- $client->setParameterPost("homeUrl",Mage::getBaseUrl());
80
- $versionInfo = Mage::getVersionInfo();
81
-
82
- foreach($versionInfo as $vi => $vi2) {
83
- $client->setParameterPost($vi, $vi2);
84
- }
85
-
86
- $client->request();
87
- }
88
- catch(Exception $e) { }
89
-
90
  $installer->endSetup();
73
 
74
  ");
75
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
76
  $installer->endSetup();
app/code/community/Listrak/Remarketing/sql/listrak_remarketing_setup/mysql4-upgrade-1.1.4-1.1.5.php ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // Listrak Remarketing Magento Extension Ver. 1.1.5
3
+ // � 2013 Listrak, Inc.
4
+
5
+ $installer = $this;
6
+ $installer->startSetup();
7
+
8
+ $installer->run("
9
+ DROP TABLE IF EXISTS {$this->getTable('listrak/product_attribute_set_map')};
10
+ CREATE TABLE {$this->getTable('listrak/product_attribute_set_map')} (
11
+ `map_id` int(11) unsigned NOT NULL AUTO_INCREMENT,
12
+ `attribute_set_id` smallint(5) unsigned NOT NULL,
13
+ `brand_attribute_code` varchar(255),
14
+ `categories_source` varchar(31),
15
+ `use_config_categories_source` tinyint(1) NOT NULL DEFAULT 1,
16
+ `category_attribute_code` varchar(255),
17
+ `subcategory_attribute_code` varchar(255),
18
+ `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
19
+ PRIMARY KEY (`map_id`),
20
+ KEY `idx_attribute_set_id` (`attribute_set_id`)
21
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
22
+ ");
23
+
24
+ try {
25
+ Mage::getModel("listrak/log")->addMessage("1.1.4-1.1.5 upgrade");
26
+ }
27
+ catch(Exception $e) { }
28
+
29
+ try {
30
+ $client = new Varien_Http_Client("http://magento.listrakbi.com/Install.ashx");
31
+ $client->setMethod(Varien_Http_Client::POST);
32
+ $client->setParameterPost("Listrak Extension Version", "1.1.5");
33
+ $client->setParameterPost("Magento Version", Mage::getVersion());
34
+ $client->setParameterPost("Install URL", "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]");
35
+ $client->setParameterPost("IP Address", "$_SERVER[SERVER_ADDR]");
36
+ $client->request();
37
+ }
38
+ catch(Exception $e) { }
39
+
40
+
41
+ $installer->endSetup();
42
+
43
+ ?>
app/design/adminhtml/default/default/layout/remarketing.xml CHANGED
@@ -5,9 +5,9 @@
5
  */
6
  -->
7
  <layout>
8
- <default>
9
- <reference name="notifications">
10
- <block type="remarketing/adminhtml_notifications" name="remarketing_notifications" as="remarketing_notifications" />
11
- </reference>
12
- </default>
13
  </layout>
5
  */
6
  -->
7
  <layout>
8
+ <default>
9
+ <reference name="notifications">
10
+ <block type="remarketing/adminhtml_notifications" name="remarketing_notifications" as="remarketing_notifications" />
11
+ </reference>
12
+ </default>
13
  </layout>
app/design/adminhtml/default/default/template/listrak/remarketing/productattributes.phtml ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @see Listrak_Remarketing_Block_Adminhtml_Productattributes
4
+ */
5
+ ?>
6
+ <div class="content-header">
7
+ <table cellspacing="0">
8
+ <tr>
9
+ <td style="width:50%;"><h3 class="icon-head head-products"><?php echo Mage::helper('remarketing')->__('Product Attributes') ?></h3></td>
10
+ <td class="a-right">
11
+ <?php echo $this->getButtonsHtml() ?>
12
+ </td>
13
+ </tr>
14
+ </table>
15
+ </div>
16
+ <?php if( sizeof($this->setsWithoutBrandAttribute()) > 3 ): ?>
17
+ <?php echo $this->getInitBrandsHtml();?>
18
+ <?php endif;?>
19
+ <div>
20
+ <?php echo $this->getGridHtml() ?>
21
+ </div>
app/design/adminhtml/default/default/template/listrak/remarketing/productattributes/form/categories.phtml ADDED
@@ -0,0 +1,137 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Listrak Remarketing Magento Extension Ver. 1.1.5
4
+ * © 2013 Listrak, Inc.
5
+ */
6
+ ?>
7
+ <div class="entry-edit">
8
+ <div class="entry-edit-head">
9
+ <h4 class="icon-head head-edit-form fieldset-legend">
10
+ <?php echo Mage::helper('catalog')->__('Category and Subcategory') ?>
11
+ </h4>
12
+ </div>
13
+ <fieldset>
14
+
15
+ <legend>
16
+ <?php echo Mage::helper('remarketing')->__('Product Categories') ?>
17
+ </legend>
18
+ <table cellspacing="0" class="form-list" id="table_productattributes_categories">
19
+ <tr>
20
+ <td class="label">
21
+ <label for="categories_source">
22
+ <?php echo Mage::helper('remarketing')->__('Source') ?>
23
+ </label>
24
+ </td>
25
+ <td class="value">
26
+ <select id="categories_source" name="categories_source" class="select">
27
+ <option value="default"
28
+ <?php if ($this->getCategoriesSource() == 'default'): ?> selected="selected"<?php endif; ?>>
29
+ <?php echo Mage::helper('remarketing')->__('Use Catalog Configuration') ?>
30
+ </option>
31
+ <option value="attributes"
32
+ <?php if ($this->getCategoriesSource() == 'attributes'): ?> selected="selected"<?php endif; ?>>
33
+ <?php echo Mage::helper('remarketing')->__('Map from Product Attributes') ?>
34
+ </option>
35
+ </select>
36
+ <input type="hidden" id="categories_source_default" value="<?php echo $this->getConfigCategoriesSource(); ?>" />
37
+
38
+ <?php $_checked = $this->getUseConfigCategoriesSource() ? 'checked="checked"' : '' ?>
39
+ <input type="checkbox" id="categories_use_config_source" name="use_config_categories_source" value="1" <?php echo $_checked ?> onclick="toggleValueElements(this, this.parentNode);" class="checkbox"/>
40
+ <label for="categories_use_config_source" class="normal">
41
+ <?php echo Mage::helper('catalog')->__('Use Listrak Configuration Settings') ?>
42
+ </label>
43
+ </td>
44
+ <td class="value scope-label">
45
+ <?php echo Mage::helper('remarketing')->__('[GLOBAL]') ?>
46
+ </td>
47
+ </tr>
48
+
49
+ <tr>
50
+ <td class="label">
51
+ <label for="categories_category_attribute">
52
+ <?php echo Mage::helper('remarketing')->__('Category Attribute') ?>
53
+ </label>
54
+ </td>
55
+ <td class="value">
56
+ <select id="categories_category_attribute" name="categories_category_attribute" class="listrak_validate_unique_selection_category_attribute select">
57
+ <option value="">- No Category Attribute -</option>
58
+ <?php foreach ($this->getAttributeOptions() as $key => $option): ?>
59
+ <?php $_selected = ($key == $this->getCategoryAttributeCode()) ? 'selected="selected"' : '' ?>
60
+ <option value="<?php echo $key ?>" <?php echo $_selected ?>><?php echo $option ?></option>
61
+ <?php endforeach; ?>
62
+ </select>
63
+ </td>
64
+ <td class="value scope-label">
65
+ <?php echo Mage::helper('remarketing')->__('[GLOBAL]') ?>
66
+ </td>
67
+ </tr>
68
+
69
+ <tr>
70
+ <td class="label">
71
+ <label for="categories_subcategory_attribute">
72
+ <?php echo Mage::helper('catalog')->__('Subcategory Attribute') ?>
73
+ </label>
74
+ </td>
75
+ <td class="value">
76
+ <select id="categories_subcategory_attribute" name="categories_subcategory_attribute" class="listrak_validate_unique_selection_subcategory_attribute select">
77
+ <option value="">- No Subcategory Attribute -</option>
78
+ <?php foreach ($this->getAttributeOptions() as $key => $option): ?>
79
+ <?php $_selected = ($key == $this->getSubcategoryAttributeCode()) ? 'selected="selected"' : '' ?>
80
+ <option value="<?php echo $key ?>" <?php echo $_selected ?>><?php echo $option ?></option>
81
+ <?php endforeach; ?>
82
+ </select>
83
+ </td>
84
+ <td class="value scope-label">
85
+ <?php echo Mage::helper('catalog')->__('[GLOBAL]') ?>
86
+ </td>
87
+ </tr>
88
+ </table>
89
+ <script type="text/javascript">
90
+ //<![CDATA[
91
+ function changeCategoriesSourceOption()
92
+ {
93
+ var configSource = $('categories_use_config_source').checked;
94
+ var catSource = configSource ? $('categories_source_default').value : $('categories_source').value;
95
+ var showSelect = catSource == 'attributes';
96
+
97
+ var catRow = $('categories_category_attribute').up('tr');
98
+ var subcatRow = $('categories_subcategory_attribute').up('tr');
99
+
100
+ if (showSelect) {
101
+ catRow.show();
102
+ subcatRow.show();
103
+ }
104
+ else {
105
+ catRow.hide();
106
+ subcatRow.hide();
107
+ }
108
+ }
109
+
110
+ toggleValueElements($('categories_use_config_source'), $('categories_use_config_source').parentNode);
111
+
112
+ Event.observe($('categories_source'), 'change', changeCategoriesSourceOption);
113
+ Event.observe($('categories_use_config_source'), 'change', changeCategoriesSourceOption);
114
+ changeCategoriesSourceOption();
115
+
116
+ Validation.add('listrak_validate_unique_selection_category_attribute', 'You may select an attribute only once.', function(attr) {
117
+ if (attr == '')
118
+ return true;
119
+
120
+ // make sure brand doesn't have this value
121
+ var brandAttr = $('brand_attribute');
122
+ return brandAttr == null || !(brandAttr.selectedIndex > 0 && brandAttr.value == attr);
123
+ });
124
+
125
+ Validation.add('listrak_validate_unique_selection_subcategory_attribute', 'You may select an attribute only once.', function(attr) {
126
+ if (attr == '')
127
+ return true;
128
+
129
+ // make sure neither brand nor category has the same value
130
+ var brandAttr = $('brand_attribute');
131
+ var catAttr = $('categories_category_attribute');
132
+ return ((brandAttr == null || !(brandAttr.selectedIndex > 0 && brandAttr.value == attr)) && !(catAttr.selectedIndex > 0 && catAttr.value == attr));
133
+ });
134
+ //]]>
135
+ </script>
136
+ </fieldset>
137
+ </div>
app/design/adminhtml/default/default/template/listrak/remarketing/productattributes/form/initbrands.phtml ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @see Listrak_Remarketing_Block_Adminhtml_Productattributes_Init_Brands
4
+ */
5
+ ?>
6
+ <div class="message">
7
+ <div class="mainText">Multiple attribute sets are missing a brand attribute mapping.</div>
8
+ <div class="note">Please select an attribute from the dropdown to use for the attribute sets that include the selected attribute.</div>
9
+ <div class="form">
10
+ <?php echo $this->getFormInitScripts() ?>
11
+ <?php echo $this->getFormHtml(); ?>
12
+ <script type="text/javascript">
13
+ bulkassignForm = new varienForm('bulk_form', '');
14
+ $('bulkassign_submit').onclick = function() {
15
+ bulkassignForm.submit();
16
+ };
17
+ </script>
18
+ <?php echo $this->getFormScripts() ?>
19
+ </div>
20
+ </div>
21
+ <style>
22
+ .message {
23
+ margin-bottom: 15px !important;
24
+ min-height: 23px !important;
25
+ padding: 8px 8px 4px 16px !important;
26
+ border: 1px solid #FFD967 !important;
27
+ background: 10px #FFFBF0 !important;
28
+ }
29
+
30
+ .mainText {
31
+ color: #3D6611 !important;
32
+ font-size: 0.95em !important;
33
+ font-weight: bold !important;
34
+ }
35
+
36
+ .note {
37
+ color: #777;
38
+ font-size:0.9em !important;
39
+ }
40
+
41
+ .form {
42
+ margin-top: 6px !important;
43
+ }
44
+ </style>
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Listrak_Remarketing</name>
4
- <version>1.1.4</version>
5
  <stability>stable</stability>
6
  <license uri="http://s1.listrakbi.com/licenses/magento.txt">Listrak EULA</license>
7
  <channel>community</channel>
@@ -46,11 +46,13 @@ To make sure your marketing list is always current, all newsletter subscribers a
46
  &#xD;
47
  &lt;p&gt;&lt;b&gt;About Listrak&lt;/b&gt;&lt;br /&gt;&#xD;
48
  Listrak works with online retailers to maximize marketing ROI by helping them reach optimal engagement with their customers. Our focus is on prompting dialog and interaction through email and mobile marketing to increase customer lifetime value.&lt;/p&gt;</description>
49
- <notes>Added support for Magento product reviews.</notes>
 
 
50
  <authors><author><name>Listrak</name><user>auto-converted</user><email>magento@listrak.com</email></author></authors>
51
- <date>2012-12-17</date>
52
- <time>15:47:20</time>
53
- <contents><target name="magecommunity"><dir name="Listrak"><dir name="Remarketing"><dir name="Block"><dir name="Adminhtml"><dir name="Abandonedcartreport"><file name="Grid.php" hash="6c9975250ee0d3318fe1a996e19b554f"/></dir><dir name="Emailcapture"><dir name="Edit"><dir name="Tab"><file name="Form.php" hash="d1b495e77fd135af95457ee7c3f1f21c"/></dir><file name="Form.php" hash="dae25c78913b35bb3ad64da797cd82b4"/><file name="Tabs.php" hash="b7c89cd1e1fae23ed52079c6d63ef4ee"/></dir><file name="Edit.php" hash="6a06c2b0dfb5a0414a642bc0cd3b5461"/><file name="Grid.php" hash="9eca43e603861ce2f24ec21a4d3a5064"/></dir><file name="Abandonedcartreport.php" hash="5c348aeec1c636b39ac037b5abc1875a"/><file name="Emailcapture.php" hash="accf0689467c5446e7605cad41e427b0"/><file name="Notifications.php" hash="dec4ef3882d5d11d738576787d05ec61"/></dir><file name="Ecjs.php" hash="f03a34349994a31feb3ae5f2edcdb6bb"/><file name="Modal.php" hash="d66d74cc8695efd8ef8dc4c15433170e"/></dir><dir name="Helper"><dir name="Review"><file name="Update.php" hash="4418214678ef257817c07d71c7b74eef"/></dir><file name="Data.php" hash="26a1f5a63694ac715727531fe4b1bb30"/></dir><dir name="Model"><dir name="Abandonedcart"><dir name="Api"><file name="V2.php" hash="c7b46e1feab677e41f4f9a3914e415fb"/></dir><file name="Api.php" hash="5bdfa82e2bed90e602c010fa59ccd525"/></dir><dir name="Apiextension"><dir name="Api"><file name="V2.php" hash="ff5a5f68d92c8a790bb00282c30c1378"/></dir><file name="Api.php" hash="55f02bd4afb07a6b13d419647fd333e9"/></dir><dir name="Click"><dir name="Api"><file name="V2.php" hash="510ae6b8032ff54b5f43d94f447f35e2"/></dir><file name="Api.php" hash="cafb4a68915c115cd648512a196cb342"/></dir><dir name="Log"><dir name="Api"><file name="V2.php" hash="ace9ca737ebefd47205886fdef504a05"/></dir><file name="Api.php" hash="62c02694e7bec2a0975572078e81de19"/></dir><dir name="Mysql4"><dir name="Abandonedcart"><file name="Collection.php" hash="fed7e7d3b7dc74b42f21c9599f06b872"/></dir><dir name="Click"><file name="Collection.php" hash="dac93dbb083339bb047d296868cdb597"/></dir><dir name="Emailcapture"><file name="Collection.php" hash="4dbc86c599e6a390e1f8bde7752f09c2"/></dir><dir name="Log"><file name="Collection.php" hash="1765ae33eb74e9593d8266702cfe4160"/></dir><dir name="Review"><dir name="Update"><file name="Collection.php" hash="d9feaf6ff25b1b3612bf03dd57ee8d6c"/></dir><file name="Update.php" hash="ce81fcbaaf52850189feb56ef1247380"/></dir><dir name="Session"><file name="Collection.php" hash="c095fdf0c54184df63ff6dd8636d779e"/></dir><dir name="Subscriberupdate"><file name="Collection.php" hash="1fd68314a80e93f416815273f29bf9f5"/></dir><file name="Abandonedcart.php" hash="627320d084a92ffa9b5c1f3e45687eda"/><file name="Apiextension.php" hash="b243c6feafd1b2401541f96112b9f522"/><file name="Click.php" hash="baabaf95e4d4f7f3fb1a2ac1c1965984"/><file name="Emailcapture.php" hash="b68ee210c3bcec8f2fccef7979b022b7"/><file name="Log.php" hash="e244d19b857ee9d03a7955a30d3f6cf3"/><file name="Session.php" hash="454a2c56529a0db4db3a5b8473952f78"/><file name="Subscriberupdate.php" hash="4957865b4aa8bbdda3a50484d7e49880"/></dir><dir name="Review"><dir name="Update"><dir name="Api"><file name="V2.php" hash="51e0152349088b445e6e6e0ab11315a6"/></dir><file name="Api.php" hash="42a23cfa9ce897ffd40d9d2df9360916"/></dir><file name="Update.php" hash="2ff5b032f20a77ecfb828a29368aecc0"/></dir><file name="Abandonedcart.php" hash="2bd672054843917133e3ac7d941be42c"/><file name="Apiextension.php" hash="1a5964f749523d74c648d6609673fb08"/><file name="Click.php" hash="f5275919f3b677a196cca0b47572edb1"/><file name="Emailcapture.php" hash="4987ceda6dda7ca134736895e3cfed74"/><file name="Log.php" hash="577b2308bdbc531c867c67277d513371"/><file name="Observer.php" hash="92208fb7a6eeab880f4f7281764048eb"/><file name="Session.php" hash="2653ba8c029180fc455a4551fede9515"/><file name="Subscriber.php" hash="7addcff01d1c12e88baad9064a362f2c"/><file name="Subscriberupdate.php" hash="77df791c2d17772345f518ce3b4dab90"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="AbandonedcartreportController.php" hash="36cef4591dfd2edee90447649cb767df"/><file name="EmailcaptureController.php" hash="48001875974ad6d83a1e1b5238443859"/></dir><file name="CartController.php" hash="bab8c133100ae8bcd4ccdeb43329370a"/><file name="ConfigController.php" hash="7250d699110107b35fa004833dc3595e"/><file name="EmailController.php" hash="d1706df1448e6bd85826357efd9a22d4"/><file name="TroubleshootingController.php" hash="8e9355a2c91ee3508620fc893aabe050"/></dir><dir name="etc"><file name="adminhtml.xml" hash="0e01a6415641c271f4eb3067419c7f0a"/><file name="api.xml" hash="37986e45324636237565bab6aff95bd6"/><file name="config.xml" hash="d830db358a45a1dd34f0dd226343c97f"/><file name="system.xml" hash="97a11d49780c4362f66b79a1672acc2b"/><file name="wsdl.xml" hash="d6352b50ab97e560b5a46342fe8d68ff"/><file name="wsi.xml" hash="e6fc96537d37c0c688454442d05c637d"/></dir><dir name="sql"><dir name="listrak_remarketing_setup"><file name="mysql4-install-1.0.0.php" hash="9969325db69a8582cd2807343dc1c5bc"/><file name="mysql4-upgrade-1.0.0-1.0.1.php" hash="51d6494a61a2e32907cdc8eaf078274c"/><file name="mysql4-upgrade-1.0.8-1.0.9.php" hash="8c935ec4a7ff8816c1ab1df644c1edf3"/><file name="mysql4-upgrade-1.1.0-1.1.1.php" hash="df4e8464d389d3f0155755c362b5a7ac"/><file name="mysql4-upgrade-1.1.3-1.1.4.php" hash="44de533b51944af71bf2e66f3a1e134c"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="remarketing.xml" hash="3f8da579155772292019871e92d3642a"/></dir></dir></dir></dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="remarketing.xml" hash="44d7027ba447c4aaf0841d32d185ffde"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Listrak_Remarketing.xml" hash="1fc68edb656e220874e64cffaf7f2dbd"/></dir></target></contents>
54
  <compatible/>
55
  <dependencies/>
56
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Listrak_Remarketing</name>
4
+ <version>1.1.5</version>
5
  <stability>stable</stability>
6
  <license uri="http://s1.listrakbi.com/licenses/magento.txt">Listrak EULA</license>
7
  <channel>community</channel>
46
  &#xD;
47
  &lt;p&gt;&lt;b&gt;About Listrak&lt;/b&gt;&lt;br /&gt;&#xD;
48
  Listrak works with online retailers to maximize marketing ROI by helping them reach optimal engagement with their customers. Our focus is on prompting dialog and interaction through email and mobile marketing to increase customer lifetime value.&lt;/p&gt;</description>
49
+ <notes>Added support for product brand and category.&#xD;
50
+ Added support for configurable products.&#xD;
51
+ Added support for WS-I compliant API.</notes>
52
  <authors><author><name>Listrak</name><user>auto-converted</user><email>magento@listrak.com</email></author></authors>
53
+ <date>2013-03-13</date>
54
+ <time>14:44:36</time>
55
+ <contents><target name="magecommunity"><dir name="Listrak"><dir name="Remarketing"><dir name="Block"><dir name="Adminhtml"><dir name="Abandonedcartreport"><file name="Grid.php" hash="dfff4ecf6bcba6756b91cda0a2290835"/></dir><dir name="Emailcapture"><dir name="Edit"><dir name="Tab"><file name="Form.php" hash="92a9e3b2bd634293b8a7162d84087db9"/></dir><file name="Form.php" hash="dae25c78913b35bb3ad64da797cd82b4"/><file name="Tabs.php" hash="b7c89cd1e1fae23ed52079c6d63ef4ee"/></dir><file name="Edit.php" hash="6a06c2b0dfb5a0414a642bc0cd3b5461"/><file name="Grid.php" hash="9eca43e603861ce2f24ec21a4d3a5064"/></dir><dir name="Productattributes"><dir name="Edit"><dir name="Tab"><dir name="Form"><file name="Brand.php" hash="b9c541642a6dc33324b49fb9f5d33704"/><file name="Categories.php" hash="b742aa9b9b81bc7dd97b1b2f341b6bf7"/></dir></dir><file name="Form.php" hash="81b446cc962137c87fee660e069f4a02"/><file name="Tabs.php" hash="1017fd97dda042f83b4cec43255153e4"/></dir><dir name="Init"><dir name="Brands"><file name="Form.php" hash="24371d35a17edc1e3dc45fbd6259ca36"/></dir><file name="Brands.php" hash="e49da5ec06aa13b11f4dc3fd8357e9a2"/></dir><file name="Edit.php" hash="46643579ff4e0f22a942e971443dab52"/><file name="Grid.php" hash="3448edcc2d457875e33d15a23670c846"/></dir><file name="Abandonedcartreport.php" hash="bc8cfafff4f3ce84f5e0b03418aba735"/><file name="Emailcapture.php" hash="accf0689467c5446e7605cad41e427b0"/><file name="Notifications.php" hash="3a02f6a6dad92636be25e43c82187e04"/><file name="Productattributes.php" hash="066eaf58d70c4bf4749b3fcf5bd80cea"/></dir><file name="Ecjs.php" hash="1d688b67533446025f495ecb4e8c9e5a"/><file name="Modal.php" hash="a8640436592cf3789c59a1b95f28599a"/></dir><dir name="Helper"><dir name="Product"><dir name="Attribute"><dir name="Set"><file name="Map.php" hash="95a611a6ec108616142c3f47c7c1b0d8"/></dir></dir></dir><dir name="Review"><file name="Update.php" hash="4418214678ef257817c07d71c7b74eef"/></dir><file name="Data.php" hash="95d44efd1e74f37ce0ca0583edd605f6"/><file name="Product.php" hash="03c4775020f6cfc01c1bb021a1f4dd6e"/></dir><dir name="Model"><dir name="Abandonedcart"><dir name="Api"><file name="V2.php" hash="c7b46e1feab677e41f4f9a3914e415fb"/></dir><file name="Api.php" hash="2c9753d12a71c079ec3b66767b084972"/></dir><dir name="Apiextension"><dir name="Api"><file name="V2.php" hash="ff5a5f68d92c8a790bb00282c30c1378"/></dir><file name="Api.php" hash="de92560881bd5390828427413ad8adaf"/></dir><dir name="Click"><dir name="Api"><file name="V2.php" hash="510ae6b8032ff54b5f43d94f447f35e2"/></dir><file name="Api.php" hash="584c289a1f62cbe655289b54c17df62a"/></dir><dir name="Log"><dir name="Api"><file name="V2.php" hash="ace9ca737ebefd47205886fdef504a05"/></dir><file name="Api.php" hash="0c4c6716b6b23bd89a85dd04d287904e"/></dir><dir name="Mysql4"><dir name="Abandonedcart"><file name="Collection.php" hash="01f43c07a5db53287f251e5721551a78"/></dir><dir name="Click"><file name="Collection.php" hash="ac88a96a8601e9629e5541221a8ff0d8"/></dir><dir name="Emailcapture"><file name="Collection.php" hash="983eefb82471caf514986948ff2a5a42"/></dir><dir name="Log"><file name="Collection.php" hash="976e70d5a5e1b1ac460e4d3ecd9362db"/></dir><dir name="Product"><dir name="Attribute"><dir name="Set"><dir name="Map"><file name="Collection.php" hash="83a5849c787fbea97f176bdae888b1f9"/></dir><file name="Map.php" hash="f16a9629bd4ef6866d11f5748741132b"/></dir></dir></dir><dir name="Review"><dir name="Update"><file name="Collection.php" hash="d9feaf6ff25b1b3612bf03dd57ee8d6c"/></dir><file name="Update.php" hash="32239591d41681ab01f8fd46cc7eddd8"/></dir><dir name="Session"><file name="Collection.php" hash="a9bcf4116bc67e6abffee3f396261c9e"/></dir><dir name="Subscriberupdate"><file name="Collection.php" hash="1fd68314a80e93f416815273f29bf9f5"/></dir><file name="Abandonedcart.php" hash="924fa4da3776dad7138c469fc66cd7b6"/><file name="Apiextension.php" hash="b243c6feafd1b2401541f96112b9f522"/><file name="Click.php" hash="17f6fecfc5b99d49558cd2fcfbb4e91d"/><file name="Emailcapture.php" hash="4750ef310e825734beb429587d3d31de"/><file name="Log.php" hash="4e7740928f1423e1c54de6299f83939d"/><file name="Session.php" hash="f0b0848720c12f3dc7b3bcbdc612c5fe"/><file name="Subscriberupdate.php" hash="f18f4873c12fa93963f805c40c3f555e"/></dir><dir name="Product"><dir name="Attribute"><dir name="Set"><file name="Map.php" hash="6da94e216ea2a670a4ca52b58c65b7c2"/></dir></dir><dir name="Category"><file name="Source.php" hash="b81e03493f4316d2894977c8634a473f"/></dir><file name="Attributes.php" hash="754a437c7c193e28524781c19cd514e5"/></dir><dir name="Review"><dir name="Update"><dir name="Api"><file name="V2.php" hash="51e0152349088b445e6e6e0ab11315a6"/></dir><file name="Api.php" hash="42a23cfa9ce897ffd40d9d2df9360916"/></dir><file name="Update.php" hash="4dde575584578a60a6ee2b21b0e48ff8"/></dir><file name="Abandonedcart.php" hash="1594f67eee181e974cb146ebd76c6d26"/><file name="Apiextension.php" hash="1a5964f749523d74c648d6609673fb08"/><file name="Click.php" hash="6c063eeb2f2a1d22edd2473dac6b1d45"/><file name="Emailcapture.php" hash="6a2be232addf49ca9bba708474705961"/><file name="Log.php" hash="624cde46b767a4edd80ac6fb0b776877"/><file name="Observer.php" hash="e357de2fecec983d28438d9370485e7b"/><file name="Session.php" hash="c9e66df411294870a525285c3aea0eec"/><file name="Subscriber.php" hash="9937ebd06975ef7fdd007c4e94895627"/><file name="Subscriberupdate.php" hash="77df791c2d17772345f518ce3b4dab90"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="AbandonedcartreportController.php" hash="041edcc97605c1e88976bfe2d267ba19"/><file name="EmailcaptureController.php" hash="c81598d3afcc856a5715f3280cdd7684"/><file name="ProductattributesController.php" hash="3ac5cd8f35e6d76a66e68ed31fa47e0c"/></dir><file name="CartController.php" hash="58194cedbf4cadd368245c9eee50520c"/><file name="ConfigController.php" hash="7250d699110107b35fa004833dc3595e"/><file name="EmailController.php" hash="d1706df1448e6bd85826357efd9a22d4"/><file name="TroubleshootingController.php" hash="8e9355a2c91ee3508620fc893aabe050"/></dir><dir name="etc"><file name="adminhtml.xml" hash="cb0de18133da51645bb5b1f28eba4e95"/><file name="api.xml" hash="37986e45324636237565bab6aff95bd6"/><file name="config.xml" hash="d3a74d9e4a7ee45036f177d4d6073bed"/><file name="system.xml" hash="944a758d56cb93ac6470986fcce9bb1f"/><file name="wsdl.xml" hash="bf27bdb550de4fdbbe41c5751047f7fc"/><file name="wsi.xml" hash="2ee7d46db93d65eea632fdbe1f8a4460"/></dir><dir name="sql"><dir name="listrak_remarketing_setup"><file name="mysql4-install-1.0.0.php" hash="3688a3cb8403bbbf25f715a01176a6e7"/><file name="mysql4-upgrade-1.0.0-1.0.1.php" hash="51d6494a61a2e32907cdc8eaf078274c"/><file name="mysql4-upgrade-1.0.8-1.0.9.php" hash="8c935ec4a7ff8816c1ab1df644c1edf3"/><file name="mysql4-upgrade-1.1.0-1.1.1.php" hash="df4e8464d389d3f0155755c362b5a7ac"/><file name="mysql4-upgrade-1.1.3-1.1.4.php" hash="44de533b51944af71bf2e66f3a1e134c"/><file name="mysql4-upgrade-1.1.4-1.1.5.php" hash="6e25c29ce700708d7c01300e5f4e3434"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="remarketing.xml" hash="3f8da579155772292019871e92d3642a"/></dir></dir></dir></dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="remarketing.xml" hash="b2159348d52015985c2540c8f34505ca"/></dir><dir name="template"><dir name="listrak"><dir name="remarketing"><dir name="productattributes"><dir name="form"><file name="categories.phtml" hash="d8c7535c8f63ad94b3db026f583fd4df"/><file name="initbrands.phtml" hash="155e42a5b6fa960bee683fdcaedd6664"/></dir></dir><file name="productattributes.phtml" hash="b2d21ce2554c566e39b257334eb7c58f"/></dir></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Listrak_Remarketing.xml" hash="1fc68edb656e220874e64cffaf7f2dbd"/></dir></target></contents>
56
  <compatible/>
57
  <dependencies/>
58
  </package>