Cue - Version 3.0.11

Version Notes

- removed catalog sync
- bug fixes.

Download this release

Release Info

Developer Cue Connect
Extension Cue
Version 3.0.11
Comparing to
See all releases


Code changes from version 3.0.10 to 3.0.11

Files changed (65) hide show
  1. app/code/community/CueConnect/Cue/Block/Adminhtml/Catalog/Product.php +30 -0
  2. app/code/community/CueConnect/Cue/Block/Adminhtml/Index.php +29 -0
  3. app/code/community/CueConnect/Cue/Block/Adminhtml/Progress.php +56 -0
  4. app/code/community/CueConnect/Cue/Block/Adminhtml/System/Config/.DS_Store +0 -0
  5. app/code/community/CueConnect/Cue/Block/Adminhtml/System/Config/._.DS_Store +0 -0
  6. app/code/community/CueConnect/Cue/Block/Adminhtml/System/Config/Form/Field/Readonly.php +18 -0
  7. app/code/community/CueConnect/Cue/Block/Alert.php +17 -0
  8. app/code/community/CueConnect/Cue/Block/BaseCueBlock.php +102 -0
  9. app/code/community/CueConnect/Cue/Block/Collection.php +23 -0
  10. app/code/community/CueConnect/Cue/Block/Elist.php +38 -0
  11. app/code/community/CueConnect/Cue/Block/Favorite.php +17 -0
  12. app/code/community/CueConnect/Cue/Block/Js.php +14 -0
  13. app/code/community/CueConnect/Cue/Block/Meta.php +44 -0
  14. app/code/community/CueConnect/Cue/Block/Navigation.php +28 -0
  15. app/code/community/CueConnect/Cue/Block/Share.php +17 -0
  16. app/code/community/CueConnect/Cue/Helper/Data.php +290 -0
  17. app/code/community/CueConnect/Cue/Helper/Wishlist/Data.php +41 -0
  18. app/code/community/CueConnect/Cue/Model/.CueConnect.php.swp +0 -0
  19. app/code/community/CueConnect/Cue/Model/.Inmarkit.php.swp +0 -0
  20. app/code/community/CueConnect/Cue/Model/CueConnect.php +297 -0
  21. app/code/community/CueConnect/Cue/Model/Demand.php +24 -0
  22. app/code/community/CueConnect/Cue/Model/Mysql4/Demand.php +18 -0
  23. app/code/community/CueConnect/Cue/Model/Mysql4/Demand/Collection.php +18 -0
  24. app/code/community/CueConnect/Cue/Model/Mysql4/UserSync.php +18 -0
  25. app/code/community/CueConnect/Cue/Model/Mysql4/UserSync/Collection.php +18 -0
  26. app/code/community/CueConnect/Cue/Model/Mysql4/WishlistSync.php +18 -0
  27. app/code/community/CueConnect/Cue/Model/Mysql4/WishlistSync/Collection.php +18 -0
  28. app/code/community/CueConnect/Cue/Model/Observer.php +643 -0
  29. app/code/community/CueConnect/Cue/Model/Options.php +21 -0
  30. app/code/community/CueConnect/Cue/Model/UserSync.php +23 -0
  31. app/code/community/CueConnect/Cue/Model/WishlistSync.php +23 -0
  32. app/code/community/CueConnect/Cue/controllers/Adminhtml/SyncController.php +40 -0
  33. app/code/community/CueConnect/Cue/controllers/ElistController.php +54 -0
  34. app/code/community/CueConnect/Cue/etc/.config.xml.swp +0 -0
  35. app/code/community/CueConnect/Cue/etc/config.xml +259 -0
  36. app/code/community/CueConnect/Cue/etc/system.xml +230 -0
  37. app/code/community/CueConnect/Cue/sql/cueconnect_setup/{mysql4-install-3.0.10.php → mysql4-install-3.0.9.php} +0 -0
  38. app/code/community/CueConnect/Cue/sql/cueconnect_setup/{mysql4-upgrade-3.0.9-3.0.10.php → mysql4-upgrade-3.0.8-3.0.9.php} +0 -0
  39. app/design/frontend/base/default/layout/cueconnect.xml +66 -0
  40. app/design/frontend/base/default/template/cueconnect/._alert.phtml +0 -0
  41. app/design/frontend/base/default/template/cueconnect/._collection.phtml +0 -0
  42. app/design/frontend/base/default/template/cueconnect/._customer +0 -0
  43. app/design/frontend/base/default/template/cueconnect/._elist.phtml +0 -0
  44. app/design/frontend/base/default/template/cueconnect/._favorite.phtml +0 -0
  45. app/design/frontend/base/default/template/cueconnect/._js.phtml +0 -0
  46. app/design/frontend/base/default/template/cueconnect/._links.phtml +0 -0
  47. app/design/frontend/base/default/template/cueconnect/._meta.phtml +0 -0
  48. app/design/frontend/base/default/template/cueconnect/._share.phtml +0 -0
  49. app/design/frontend/base/default/template/cueconnect/alert.phtml +3 -0
  50. app/design/frontend/base/default/template/cueconnect/collection.phtml +0 -0
  51. app/design/frontend/base/default/template/cueconnect/customer/._form +0 -0
  52. app/design/frontend/base/default/template/cueconnect/customer/form/._forgotpassword.phtml +0 -0
  53. app/design/frontend/base/default/template/cueconnect/customer/form/._login.phtml +0 -0
  54. app/design/frontend/base/default/template/cueconnect/customer/form/._register.phtml +0 -0
  55. app/design/frontend/base/default/template/cueconnect/customer/form/forgotpassword.phtml +54 -0
  56. app/design/frontend/base/default/template/cueconnect/customer/form/login.phtml +74 -0
  57. app/design/frontend/base/default/template/cueconnect/customer/form/register.phtml +182 -0
  58. app/design/frontend/base/default/template/cueconnect/elist.phtml +173 -0
  59. app/design/frontend/base/default/template/cueconnect/favorite.phtml +4 -0
  60. app/design/frontend/base/default/template/cueconnect/js.phtml +16 -0
  61. app/design/frontend/base/default/template/cueconnect/links.phtml +39 -0
  62. app/design/frontend/base/default/template/cueconnect/meta.phtml +19 -0
  63. app/design/frontend/base/default/template/cueconnect/share.phtml +3 -0
  64. app/etc/modules/CueConnect_Cue.xml +9 -0
  65. package.xml +4 -4
app/code/community/CueConnect/Cue/Block/Adminhtml/Catalog/Product.php ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * CueConnect_Cue
4
+ *
5
+ * @category CueConnect
6
+ * @package CueConnect_Cue
7
+ * @copyright Copyright (c) 2015 Cue Connect
8
+ * @author Cue Connect (http://www.cueconnect.com)
9
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
10
+ */
11
+
12
+ class CueConnect_Cue_Block_Adminhtml_Catalog_Product extends Mage_Adminhtml_Block_Catalog_Product {
13
+
14
+ /**
15
+ * Prepare button and grid
16
+ *
17
+ * @return Mage_Adminhtml_Block_Catalog_Product
18
+ */
19
+ protected function _prepareLayout()
20
+ {
21
+ $this->_addButton('cueconnect_sync_catalog', array(
22
+ 'label' => Mage::helper('catalog')->__('Export catalog to Cue'),
23
+ 'onclick' => "setLocation('{$this->getUrl('cueconnect/adminhtml_sync/export')}')",
24
+ 'class' => ''
25
+ ));
26
+
27
+ return parent::_prepareLayout();
28
+ }
29
+
30
+ }
app/code/community/CueConnect/Cue/Block/Adminhtml/Index.php ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * CueConnect_Cue
4
+ *
5
+ * @category CueConnect
6
+ * @package CueConnect_Cue
7
+ * @copyright Copyright (c) 2015 Cue Connect
8
+ * @author Cue Connect (http://www.cueconnect.com)
9
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
10
+ */
11
+
12
+ class CueConnect_Cue_Block_Adminhtml_Index extends Mage_Adminhtml_Block_Template {
13
+
14
+ /**
15
+ * Get last export demands
16
+ *
17
+ * @return array
18
+ */
19
+ protected function getDemands()
20
+ {
21
+ $demands = Mage::getModel('cueconnect/demand')
22
+ ->getCollection()
23
+ ->setOrder('updated_at', 'desc')
24
+ ->setPageSize(10);
25
+
26
+ return $demands;
27
+ }
28
+
29
+ }
app/code/community/CueConnect/Cue/Block/Adminhtml/Progress.php ADDED
@@ -0,0 +1,56 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * CueConnect_Cue
4
+ *
5
+ * @category CueConnect
6
+ * @package CueConnect_Cue
7
+ * @copyright Copyright (c) 2015 Cue Connect
8
+ * @author Cue Connect (http://www.cueconnect.com)
9
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
10
+ */
11
+
12
+ class CueConnect_Cue_Block_Adminhtml_Progress extends Mage_Adminhtml_Block_Template {
13
+
14
+ /**
15
+ * Get last export progress
16
+ *
17
+ * @return array
18
+ */
19
+ protected function getLastExportProgress()
20
+ {
21
+ // Get data
22
+ $last_export_progress = Mage::helper('cueconnect')->getExportProgress();
23
+
24
+ if ($last_export_progress && is_object($last_export_progress)) {
25
+ // Percentage
26
+ $last_export_progress->completion = 0;
27
+ if (isset($last_export_progress->total_products)) {
28
+ $total_to_do = $last_export_progress->total_products_to_create + $last_export_progress->total_products_to_update + $last_export_progress->total_products_to_delete;
29
+ $total_done = $last_export_progress->total_products_created + $last_export_progress->total_products_updated + $last_export_progress->total_products_deleted;
30
+ $last_export_progress->completion = ceil(($total_done / $total_to_do) * 100);
31
+ }
32
+
33
+ // Message
34
+ if (isset($last_export_progress->message) && $last_export_progress->message) {
35
+ $last_export_progress->message = $last_export_progress->message;
36
+ }
37
+ else {
38
+ if ($last_export_progress->completion == 0) {
39
+ $last_export_progress->message = "Starting...";
40
+ }
41
+ elseif ($last_export_progress->completion == 100) {
42
+ $last_export_progress->message = "Completed";
43
+ }
44
+ else {
45
+ $last_export_progress->message = "Progressing...";
46
+ }
47
+ }
48
+
49
+ return $last_export_progress;
50
+ }
51
+ else {
52
+ return false;
53
+ }
54
+ }
55
+
56
+ }
app/code/community/CueConnect/Cue/Block/Adminhtml/System/Config/.DS_Store ADDED
Binary file
app/code/community/CueConnect/Cue/Block/Adminhtml/System/Config/._.DS_Store ADDED
Binary file
app/code/community/CueConnect/Cue/Block/Adminhtml/System/Config/Form/Field/Readonly.php ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * CueConnect_Cue
4
+ *
5
+ * @category CueConnect
6
+ * @package CueConnect_Cue
7
+ * @copyright Copyright (c) 2015 Cue Connect
8
+ * @author Cue Connect (http://www.cueconnect.com)
9
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
10
+ */
11
+
12
+ class CueConnect_Cue_Block_Adminhtml_System_Config_Form_Field_Readonly extends Mage_Adminhtml_Block_System_Config_Form_Field
13
+ {
14
+ protected function _getElementHtml($element) {
15
+ $element->setDisabled('disabled');
16
+ return parent::_getElementHtml($element);
17
+ }
18
+ }
app/code/community/CueConnect/Cue/Block/Alert.php ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * CueConnect_Cue
4
+ *
5
+ * @category CueConnect
6
+ * @package CueConnect_Cue
7
+ * @copyright Copyright (c) 2015 Cue Connect
8
+ * @author Cue Connect (http://www.cueconnect.com)
9
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
10
+ */
11
+
12
+ class CueConnect_Cue_Block_Alert extends CueConnect_Cue_Block_BaseCueBlock {
13
+ public function isAlertEnabled() {
14
+ $store = Mage::app()->getStore();
15
+ return $store->getConfig('cueconnect/alert/enabled');
16
+ }
17
+ }
app/code/community/CueConnect/Cue/Block/BaseCueBlock.php ADDED
@@ -0,0 +1,102 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * CueConnect_Cue
4
+ *
5
+ * @category CueConnect
6
+ * @package CueConnect_Cue
7
+ * @copyright Copyright (c) 2015 Cue Connect
8
+ * @author Cue Connect (http://www.cueconnect.com)
9
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
10
+ */
11
+
12
+ class CueConnect_Cue_Block_BaseCueBlock extends Mage_Core_Block_Template {
13
+ /**
14
+ * return current retailer id
15
+ * @return integer
16
+ */
17
+ public function getRetailerId() {
18
+ return Mage::helper('cueconnect')->getRetailerId();
19
+
20
+ $store = Mage::app()->getStore();
21
+ $retailer = Mage::helper('cueconnect')->getRetailer($store);
22
+ if ($retailer && $retailer->id) {
23
+ return $retailer->id;
24
+ }
25
+ }
26
+
27
+ /**
28
+ * return api key for current retailer
29
+ * @return string
30
+ */
31
+ public function getApiKey() {
32
+ $store = Mage::app()->getStore();
33
+ return $store->getConfig('cueconnect/credentials/api_key');
34
+ }
35
+
36
+ /**
37
+ * check whether the functionalities are enabled or not
38
+ * @return boolean
39
+ */
40
+ public function isEnabled() {
41
+ $store = Mage::app()->getStore();
42
+ return $store->getConfig('cueconnect/enabled/enabled');
43
+ }
44
+
45
+ /**
46
+ * get e-List mode
47
+ * @return integer
48
+ */
49
+ public function getMode() {
50
+ $store = Mage::app()->getStore();
51
+ $mode = $store->getConfig('cueconnect/mode');
52
+ if (is_array($mode)) {
53
+ if (isset($mode['mode'])) {
54
+ return $mode['mode'];
55
+ }
56
+ }
57
+
58
+ return 1;
59
+ }
60
+
61
+ /**
62
+ * return current product sku
63
+ * @return string
64
+ */
65
+ public function getSku() {
66
+ $current_product = Mage::registry('current_product');
67
+ return $current_product->getSku();
68
+ }
69
+
70
+
71
+ /**
72
+ * check whether a session is open
73
+ * @return boolean
74
+ */
75
+ public function isLoggedIn(){
76
+ return Mage::getSingleton('customer/session')->isLoggedIn();
77
+ }
78
+
79
+
80
+ /**
81
+ * Get CID
82
+ *
83
+ * @return string
84
+ */
85
+ public function getCID() {
86
+ return ($this->isLoggedIn()) ? 'true' : 'null';
87
+ }
88
+
89
+
90
+ /**
91
+ * Get elist path
92
+ *
93
+ * @return string
94
+ */
95
+ public function getElistPath() {
96
+ $store = Mage::app()->getStore();
97
+ return $this->getUrl($store->getConfig('cueconnect/path/elist'));
98
+ }
99
+
100
+
101
+
102
+ }
app/code/community/CueConnect/Cue/Block/Collection.php ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * CueConnect_Cue
4
+ *
5
+ * @category CueConnect
6
+ * @package CueConnect_Cue
7
+ * @copyright Copyright (c) 2015 Cue Connect
8
+ * @author Cue Connect (http://www.cueconnect.com)
9
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
10
+ */
11
+
12
+ class CueConnect_Cue_Block_Collection extends CueConnect_Cue_Block_BaseCueBlock {
13
+ public function isCollectionEnabled() {
14
+ $store = Mage::app()->getStore();
15
+ if ($store->getConfig('cueconnect/collection/enabled') && $store->getConfig('cueconnect/collection/enabled')) {
16
+ return true;
17
+ }
18
+ else {
19
+ return false;
20
+ }
21
+ }
22
+
23
+ }
app/code/community/CueConnect/Cue/Block/Elist.php ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * CueConnect_Cue
4
+ *
5
+ * @category CueConnect
6
+ * @package CueConnect_Cue
7
+ * @copyright Copyright (c) 2015 Cue Connect
8
+ * @author Cue Connect (http://www.cueconnect.com)
9
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
10
+ */
11
+
12
+ class CueConnect_Cue_Block_Elist extends CueConnect_Cue_Block_BaseCueBlock {
13
+ public function getCustomerEmail() {
14
+ if (Mage::getSingleton('customer/session')->isLoggedIn()) {
15
+ $customer = Mage::getSingleton('customer/session')->getCustomer();
16
+
17
+ if ($customer) {
18
+ return $customer->getEmail();
19
+ }
20
+ }
21
+
22
+ return false;
23
+ }
24
+
25
+ public function getCustomerId() {
26
+ if (Mage::getSingleton('customer/session')->isLoggedIn()) {
27
+ $customer = Mage::getSingleton('customer/session')->getCustomer();
28
+
29
+ if ($customer) {
30
+ return $customer->getId();
31
+ }
32
+ }
33
+
34
+ return 0;
35
+ }
36
+
37
+
38
+ }
app/code/community/CueConnect/Cue/Block/Favorite.php ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * CueConnect_Cue
4
+ *
5
+ * @category CueConnect
6
+ * @package CueConnect_Cue
7
+ * @copyright Copyright (c) 2015 Cue Connect
8
+ * @author Cue Connect (http://www.cueconnect.com)
9
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
10
+ */
11
+
12
+ class CueConnect_Cue_Block_Favorite extends CueConnect_Cue_Block_BaseCueBlock {
13
+ public function isFavoriteEnabled() {
14
+ $store = Mage::app()->getStore();
15
+ return $store->getConfig('cueconnect/favorite/enabled');
16
+ }
17
+ }
app/code/community/CueConnect/Cue/Block/Js.php ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * CueConnect_Cue
4
+ *
5
+ * @category CueConnect
6
+ * @package CueConnect_Cue
7
+ * @copyright Copyright (c) 2015 Cue Connect
8
+ * @author Cue Connect (http://www.cueconnect.com)
9
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
10
+ */
11
+
12
+ class CueConnect_Cue_Block_Js extends CueConnect_Cue_Block_BaseCueBlock {
13
+
14
+ }
app/code/community/CueConnect/Cue/Block/Meta.php ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * CueConnect_Cue
4
+ *
5
+ * @category CueConnect
6
+ * @package CueConnect_Cue
7
+ * @copyright Copyright (c) 2015 Cue Connect
8
+ * @author Cue Connect (http://www.cueconnect.com)
9
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
10
+ */
11
+
12
+ class CueConnect_Cue_Block_Meta extends CueConnect_Cue_Block_BaseCueBlock {
13
+
14
+ /**
15
+ * return current product information in order to feed the meta tags
16
+ * @return array
17
+ */
18
+ public function getProductData() {
19
+ $current_product = Mage::registry('current_product');
20
+ if ($current_product) {
21
+ $width = Mage::getStoreConfig('cueconnect/image/width');
22
+ $height = Mage::getStoreConfig('cueconnect/image/height');
23
+
24
+ return array(
25
+ 'name' => $this->escape($current_product->getName()),
26
+ 'description' => $this->escape(strip_tags(($current_product->getShortDescription()))),
27
+ 'sku' => $this->escape($current_product->getSku()),
28
+ 'brand' => $this->escape(($current_product->getAttributeText('manufacturer')) ? $current_product->getAttributeText('manufacturer') : Mage::app()->getStore()->getName()),
29
+ 'price' => $this->escape(number_format(Mage::helper('core')->currency($current_product->getPrice(), false, false), 2)),
30
+ 'currency' => $this->escape(Mage::app()->getStore(Mage::app()->getStore()->getId())->getCurrentCurrencyCode()),
31
+ 'picture' => $this->escape($this->helper('catalog/image')->init($current_product, 'small_image')->resize($width, $height)),
32
+ 'url' => $this->escape($current_product->getProductUrl()),
33
+ );
34
+ }
35
+
36
+ return array();
37
+ }
38
+
39
+
40
+ protected function escape($str)
41
+ {
42
+ return addslashes($this->htmlEscape($str));
43
+ }
44
+ }
app/code/community/CueConnect/Cue/Block/Navigation.php ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * CueConnect_Cue
4
+ *
5
+ * @category CueConnect
6
+ * @package CueConnect_Cue
7
+ * @copyright Copyright (c) 2015 Cue Connect
8
+ * @author Cue Connect (http://www.cueconnect.com)
9
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
10
+ */
11
+
12
+ class CueConnect_Cue_Block_Navigation extends Mage_Page_Block_Switch
13
+ {
14
+ public function addMyElistLink() {
15
+ if (Mage::helper('core/data')->isModuleEnabled('CueConnect_Cue')) {
16
+ if (Mage::helper('cueconnect')->isEnabled()) {
17
+ if (Mage::helper('cueconnect')->isCollectionAuto()) {
18
+ $parentBlock = $this->getParentBlock();
19
+ if ($parentBlock) {
20
+ $parentBlock->addLink('My e-List', $this->getUrl('apps/myelist'), 'My e-List', false, array(), 200, null, 'class="cue-stream"');
21
+ }
22
+ }
23
+ }
24
+ }
25
+
26
+ return $this;
27
+ }
28
+ }
app/code/community/CueConnect/Cue/Block/Share.php ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * CueConnect_Cue
4
+ *
5
+ * @category CueConnect
6
+ * @package CueConnect_Cue
7
+ * @copyright Copyright (c) 2015 Cue Connect
8
+ * @author Cue Connect (http://www.cueconnect.com)
9
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
10
+ */
11
+
12
+ class CueConnect_Cue_Block_Share extends CueConnect_Cue_Block_BaseCueBlock {
13
+ public function isObEnabled() {
14
+ $store = Mage::app()->getStore();
15
+ return $store->getConfig('cueconnect/ob/enabled');
16
+ }
17
+ }
app/code/community/CueConnect/Cue/Helper/Data.php ADDED
@@ -0,0 +1,290 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * CueConnect_Cue
4
+ *
5
+ * @category CueConnect
6
+ * @package CueConnect_Cue
7
+ * @copyright Copyright (c) 2015 Cue Connect
8
+ * @author Cue Connect (http://www.cueconnect.com)
9
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
10
+ */
11
+
12
+ class CueConnect_Cue_Helper_Data extends Mage_Core_Helper_Abstract
13
+ {
14
+ /**
15
+ * Get webhook URL for adding customers to Cue
16
+ *
17
+ * @return string
18
+ */
19
+ public function getWebhookSaveCustomerUrl() {
20
+
21
+ return Mage::getStoreConfig('cueconnect/webhook/save_customer/url');
22
+ }
23
+
24
+ /**
25
+ * Get webhook auth key for adding customers to Cue
26
+ *
27
+ * @return string
28
+ */
29
+ public function getWebhookSaveCustomerKey() {
30
+
31
+ return Mage::getStoreConfig('cueconnect/webhook/save_customer/key');
32
+ }
33
+
34
+ /**
35
+ * Get webhook URL for adding marks to Cue
36
+ *
37
+ * @return string
38
+ */
39
+ public function getWebhookSaveMarkUrl() {
40
+
41
+ return Mage::getStoreConfig('cueconnect/webhook/save_mark/url');
42
+ }
43
+
44
+ /**
45
+ * Get webhook auth key for adding marks to Cue
46
+ *
47
+ * @return string
48
+ */
49
+ public function getWebhookSaveMarkKey() {
50
+
51
+ return Mage::getStoreConfig('cueconnect/webhook/save_mark/key');
52
+ }
53
+
54
+ /**
55
+ * Get webhook auth key for version change
56
+ *
57
+ * @return string
58
+ */
59
+ public function getWebhookSelectVersionKey() {
60
+
61
+ return Mage::getStoreConfig('cueconnect/webhook/select_version/key');
62
+ }
63
+
64
+ /**
65
+ * Get webhook url for version change
66
+ *
67
+ * @return string
68
+ */
69
+ public function getWebhookSelectVersionUrl() {
70
+
71
+ return Mage::getStoreConfig('cueconnect/webhook/select_version/url');
72
+ }
73
+
74
+ /**
75
+ * Get webhook auth key for price change
76
+ *
77
+ * @return string
78
+ */
79
+ public function getWebhookPriceChangedKey() {
80
+
81
+ return Mage::getStoreConfig('cueconnect/webhook/price_changed/key');
82
+ }
83
+
84
+ /**
85
+ * Get webhook url for price change
86
+ *
87
+ * @return string
88
+ */
89
+ public function getWebhookPriceChangedUrl() {
90
+
91
+ return Mage::getStoreConfig('cueconnect/webhook/price_changed/url');
92
+ }
93
+
94
+
95
+ /**
96
+ * Get retailer id from config
97
+ *
98
+ * @return string
99
+ */
100
+ public function getRetailerId() {
101
+ return Mage::getStoreConfig('cueconnect/credentials/retailer_id');
102
+ }
103
+
104
+ /**
105
+ * check if module is enabled
106
+ *
107
+ * @return string
108
+ */
109
+ public function isEnabled() {
110
+ return Mage::getStoreConfig('cueconnect/enabled');
111
+ }
112
+
113
+
114
+
115
+ /**
116
+ * Get webhook URL for adding marks to Cue
117
+ *
118
+ * @return string
119
+ */
120
+ public function getElistMode() {
121
+ $mode = Mage::getStoreConfig('cueconnect/mode');
122
+ if (is_array($mode)) {
123
+ if (isset($mode['mode'])) {
124
+ return $mode['mode'];
125
+ }
126
+ }
127
+
128
+ return 1;
129
+ }
130
+
131
+ /**
132
+ * Get api key
133
+ *
134
+ * @return string
135
+ */
136
+ public function getApiKey() {
137
+ return Mage::getStoreConfig('cueconnect/crendentials/api_key');
138
+ }
139
+
140
+ /**
141
+ * Get my e-list menu generation mode
142
+ *
143
+ * @return bool
144
+ */
145
+ public function isCollectionAuto() {
146
+ $enabled = Mage::getStoreConfig('cueconnect/collection');
147
+
148
+ if (is_array($enabled)) {
149
+ if (isset($enabled['enabled'])) {
150
+ return $enabled['enabled'];
151
+ }
152
+ }
153
+
154
+ return 0;
155
+ }
156
+
157
+
158
+
159
+
160
+
161
+ /**
162
+ * Get retailer object via SOAP
163
+ *
164
+ * @return string
165
+ * @deprecated
166
+ */
167
+ public function getRetailer($store) {
168
+ $soap_client = Mage::helper('cueconnect')->getSoapClient(
169
+ Mage::helper('cueconnect')->getWsUrl('place'),
170
+ $store->getConfig('cueconnect/credentials/login'),
171
+ $store->getConfig('cueconnect/credentials/password'));
172
+ try {
173
+ $result = $soap_client->get();
174
+ }
175
+ catch (Exception $e) {
176
+ return;
177
+ }
178
+ return $result->data;
179
+ }
180
+
181
+ /**
182
+ * Cut an array in multiple smaller array
183
+ *
184
+ * @return string
185
+ * @deprecated
186
+ */
187
+ public function getSlicesFromArray($data, $slice_size = 30) {
188
+ $slices = array();
189
+ if (count($data) > $slice_size) {
190
+ $i = 0;
191
+ while ($i < count($data)) {
192
+ if ($i % $slice_size == 0) {
193
+ $slices[] = array_slice($data, $i, $slice_size);
194
+ }
195
+ $i++;
196
+ }
197
+ }
198
+ else {
199
+ $slices[] = $data;
200
+ }
201
+ return $slices;
202
+ }
203
+
204
+ /**
205
+ * Log JSON data in Cue export log
206
+ *
207
+ * @return string
208
+ * @deprecated
209
+ */
210
+ public function logExportProgress($json) {
211
+ // Create folder
212
+ $cueconnect_var_dir = Mage::getBaseDir('var').'/cueconnect/';
213
+ if (!file_exists($cueconnect_var_dir)) {
214
+ mkdir($cueconnect_var_dir, 0777);
215
+ }
216
+
217
+ // Create log file
218
+ $cueconnect_import_log_file = $cueconnect_var_dir.'export.log';
219
+
220
+ // Log json in file
221
+ $file = fopen($cueconnect_import_log_file, "w+");
222
+ fwrite($file, $json);
223
+ fclose($file);
224
+ }
225
+
226
+ /**
227
+ * Get export log data
228
+ *
229
+ * @return string
230
+ * @deprecated
231
+ */
232
+ public function getExportProgress() {
233
+ // File path
234
+ $cueconnect_var_dir = Mage::getBaseDir('var').'/cueconnect/';
235
+ $cueconnect_import_log_file = $cueconnect_var_dir.'export.log';
236
+ if (file_exists($cueconnect_import_log_file)) {
237
+ // Read file
238
+ $file = fopen($cueconnect_import_log_file, "r");
239
+ $data = fread($file, 100000);
240
+ fclose($file);
241
+
242
+ // Return decoded data
243
+ return json_decode($data);
244
+ }
245
+ }
246
+
247
+
248
+ /**
249
+ * Get WSSE Header
250
+ *
251
+ * @return string
252
+ * @deprecated
253
+ */
254
+ public function getWsseHeader($login, $password) {
255
+ $authheader = sprintf('
256
+ <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
257
+ <wsse:UsernameToken>
258
+ <wsse:Username>%s</wsse:Username>
259
+ <wsse:Password>%s</wsse:Password>
260
+ </wsse:UsernameToken>
261
+ </wsse:Security>
262
+ ', htmlspecialchars($login), htmlspecialchars($password));
263
+ return $authheader;
264
+ }
265
+
266
+ /**
267
+ * Get webservice URL by service name
268
+ *
269
+ * @return string
270
+ * @deprecated
271
+ */
272
+ public function getWsUrl($service) {
273
+ return Mage::getStoreConfig('cueconnect/webservice/url').$service."?wsdl";
274
+ }
275
+
276
+ /**
277
+ * Get SOAP client by URL
278
+ *
279
+ * @return string
280
+ * @deprecated
281
+ */
282
+ public function getSoapClient($url, $login, $password) {
283
+ $client = new SOAPClient($url, array('trace' => 1, 'soap_version' => SOAP_1_1));
284
+ $authvars = new SoapVar($this->getWsseHeader($login, $password), XSD_ANYXML);
285
+ $header = new SoapHeader("http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd", "Security", $authvars);
286
+ $client->__setSoapHeaders($header);
287
+ return $client;
288
+ }
289
+
290
+ }
app/code/community/CueConnect/Cue/Helper/Wishlist/Data.php ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * CueConnect_Cue
4
+ *
5
+ * @category CueConnect
6
+ * @package CueConnect_Cue
7
+ * @copyright Copyright (c) 2015 Cue Connect
8
+ * @author Cue Connect (http://www.cueconnect.com)
9
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
10
+ */
11
+
12
+ class CueConnect_Cue_Helper_Wishlist_Data extends Mage_Wishlist_Helper_Data
13
+ {
14
+ /**
15
+ * return true if extension is enabled
16
+ * @return boolean
17
+ */
18
+ protected function isEnabled()
19
+ {
20
+ $store = Mage::app()->getStore();
21
+ return $store->getConfig('cueconnect/enabled/enabled');
22
+ }
23
+
24
+ /**
25
+ * Disallow use of the native Magento wishlist in Shopping Cart
26
+ *
27
+ * @return bool
28
+ */
29
+ public function isAllowInCart() {
30
+ return !$this->isEnabled();
31
+ }
32
+
33
+ /**
34
+ * Disallow use of the native Magento wishlist in all pages
35
+ *
36
+ * @return bool
37
+ */
38
+ public function isAllow() {
39
+ return !$this->isEnabled();
40
+ }
41
+ }
app/code/community/CueConnect/Cue/Model/.CueConnect.php.swp ADDED
Binary file
app/code/community/CueConnect/Cue/Model/.Inmarkit.php.swp ADDED
Binary file
app/code/community/CueConnect/Cue/Model/CueConnect.php ADDED
@@ -0,0 +1,297 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * CueConnect_Cue
4
+ *
5
+ * @category CueConnect
6
+ * @package CueConnect_Cue
7
+ * @copyright Copyright (c) 2015 Cue Connect
8
+ * @author Cue Connect (http://www.cueconnect.com)
9
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
10
+ */
11
+
12
+ class CueConnect_Cue_Model_CueConnect extends Mage_Core_Model_Abstract
13
+ {
14
+ /**
15
+ * Construct
16
+ */
17
+ public function _construct() {
18
+ $this->_init('cueconnect/cueconnect');
19
+ }
20
+
21
+ /**
22
+ * Execute export and put result in message box
23
+ */
24
+ public static function dailyExport() {
25
+ if (Mage::getStoreConfig('cueconnect/cron/enabled')) {
26
+ // Execute export() for each stores
27
+ foreach (Mage::app()->getStores() as $store) {
28
+ if ($store->getConfig('cueconnect/enabled/enabled')) {
29
+ // Export
30
+ $result = self::export($store);
31
+
32
+ // Notification
33
+ $inbox = Mage::getModel('adminnotification/inbox');
34
+ if ($result['success']) {
35
+ $inbox->addNotice(sprintf("%s products has been successfully synced with Cue.", $store->getName()), $result['message']);
36
+ }
37
+ else {
38
+ $inbox->addCritical(sprintf("%s products has not been successfully synced with Cue.", $store->getName()), $result['message']);
39
+ }
40
+ }
41
+ }
42
+ }
43
+ }
44
+
45
+ /**
46
+ * Execute export if manually asked and put result in message box
47
+ */
48
+ public static function manualExport() {
49
+ // Check for demands
50
+ $demand = Mage::getModel('cueconnect/demand');
51
+ $awaiting_demands = Mage::getModel('cueconnect/demand')
52
+ ->getCollection()
53
+ ->addFilter('status', $demand::STATUS_WAITING);
54
+
55
+ if (count($awaiting_demands)) {
56
+ // Update demands
57
+ foreach ($awaiting_demands as $awaiting_demand) {
58
+ $awaiting_demand->setStatus($demand::STATUS_PROGRESSING);
59
+ $awaiting_demand->setUpdatedAt(date('Y-m-d H:i:s'));
60
+ $awaiting_demand->save();
61
+ }
62
+
63
+ // Execute export() for each stores
64
+ foreach (Mage::app()->getStores() as $store) {
65
+ if ($store->getConfig('cueconnect/enabled/enabled')) {
66
+ // Export
67
+ $result = self::export($store);
68
+
69
+ // Log
70
+ $log = $result['log'];
71
+ $log['end_at'] = date('Y-m-d H:i:s');
72
+
73
+ // Notification
74
+ $inbox = Mage::getModel('adminnotification/inbox');
75
+ if ($result['success']) {
76
+ $inbox->addNotice(sprintf("%s products has been successfully synced with Cue.", $store->getName()), $result['message']);
77
+ }
78
+ else {
79
+ $inbox->addCritical(sprintf("%s products has not been successfully synced with Cue.", $store->getName()), $result['message']);
80
+ $log['status'] = 'error';
81
+ }
82
+
83
+ Mage::helper('cueconnect')->logExportProgress(json_encode($log));
84
+ }
85
+ }
86
+
87
+ // Update demands
88
+ foreach ($awaiting_demands as $awaiting_demand) {
89
+ $awaiting_demand->setStatus($demand::STATUS_DONE);
90
+ $awaiting_demand->setUpdatedAt(date('Y-m-d H:i:s'));
91
+ $awaiting_demand->save();
92
+ }
93
+ }
94
+ }
95
+
96
+ /**
97
+ * Export catalog products to Cue
98
+ */
99
+ public static function export($store) {
100
+ // Log
101
+ $log = array();
102
+ $log['started_at'] = date('Y-m-d H:i:s');
103
+ $log['status'] = "progressing";
104
+ $log['store'] = $store->getName();
105
+ Mage::helper('cueconnect')->logExportProgress(json_encode($log));
106
+
107
+ // Check if crententials has been filled
108
+ if (!$store->getConfig('cueconnect/credentials/login') || !$store->getConfig('cueconnect/credentials/password')) {
109
+ $message = "Cue credentials are not filled.";
110
+ return array('success' => false, 'message' => $message, 'log' => $log);
111
+ }
112
+
113
+ // Retailuser WS
114
+ $soap_client = Mage::helper('cueconnect')->getSoapClient(
115
+ Mage::helper('cueconnect')->getWsUrl('retailuser'),
116
+ $store->getConfig('cueconnect/credentials/login'),
117
+ $store->getConfig('cueconnect/credentials/password')
118
+ );
119
+
120
+ // Get place ID
121
+ $place_id = null;
122
+ try {
123
+ $result = $soap_client->get(array(
124
+ 'email' => $store->getConfig('cueconnect/credentials/login')
125
+ ));
126
+ $place_id = $result->data->id;
127
+ }
128
+ catch (Exception $e) {
129
+ $message = $e->getMessage();
130
+ return array('success' => false, 'message' => $message, 'log' => $log);
131
+ }
132
+
133
+ // Product WS
134
+ $soap_client = Mage::helper('cueconnect')->getSoapClient(
135
+ Mage::helper('cueconnect')->getWsUrl('product'),
136
+ $store->getConfig('cueconnect/credentials/login'),
137
+ $store->getConfig('cueconnect/credentials/password')
138
+ );
139
+
140
+ // Get Cue Catalog
141
+ $cueconnect_products = array();
142
+ $results = $soap_client->get(array('page' => 1, 'pagesize' => 100000, 'clipped' => false));
143
+ foreach ($results->data as $result) {
144
+ if ($result->sku) {
145
+ $cueconnect_products[$result->sku] = $result;
146
+ }
147
+ }
148
+
149
+ // Catalog products
150
+ $catalog_products = Mage::getModel('catalog/product')
151
+ ->getCollection()
152
+ ->addAttributeToSelect('name')
153
+ ->addAttributeToSelect('description')
154
+ ->addAttributeToSelect('price')
155
+ ->addAttributeToSelect('image')
156
+ ->addAttributeToSelect('url_path')
157
+ ->addStoreFilter($store->getId());
158
+ $catalog_products_skus = array();
159
+ $new_data = array();
160
+ $updated_data = array();
161
+ foreach ($catalog_products as $catalog_product) {
162
+ $catalog_products_skus[] = $catalog_product->getSku();
163
+
164
+ // Product image
165
+ $icon = "http://www.cueconnect.com/images/no_image.gif";
166
+ if ($catalog_product->getData('image')) {
167
+ $icon = $catalog_product->getMediaConfig()->getMediaUrl($catalog_product->getData('image'));
168
+ }
169
+
170
+ // Product URL
171
+ $url = $store->getBaseUrl(Mage_Core_Model_Store::URL_TYPE_LINK).$catalog_product->getUrlPath();
172
+
173
+ // Check if product exists in Cue database
174
+ if (in_array($catalog_product->getSku(), array_keys($cueconnect_products))) {
175
+ $updated_data[] = array(
176
+ 'product_imic' => null,
177
+ 'sku' => $catalog_product->getSku(),
178
+ 'name' => $catalog_product->getName(),
179
+ 'description' => $catalog_product->getDescription(),
180
+ 'sms_name' => $catalog_product->getName(),
181
+ 'sms_desc' => $catalog_product->getDescription(),
182
+ 'url' => $url,
183
+ 'taxonomy_id' => Mage::getStoreConfig('cueconnect/taxomomy_id'),
184
+ 'icon' => $icon,
185
+ 'live' => '1',
186
+ 'price' => $catalog_product->getPrice()
187
+ );
188
+ }
189
+ else {
190
+ $new_data[] = array(
191
+ 'sku' => $catalog_product->getSku(),
192
+ 'upc' => uniqid(),
193
+ 'name' => $catalog_product->getName(),
194
+ 'description' => $catalog_product->getDescription(),
195
+ 'sms_name' => $catalog_product->getName(),
196
+ 'sms_desc' => $catalog_product->getDescription(),
197
+ 'url' => $url,
198
+ 'taxonomy_id' => Mage::getStoreConfig('cueconnect/taxomomy_id'),
199
+ 'icon' => $icon,
200
+ 'live' => '1',
201
+ 'price' => $catalog_product->getPrice()
202
+ );
203
+ }
204
+ }
205
+ // Product to delete
206
+ $skus_to_delete = array_diff(array_keys($cueconnect_products), $catalog_products_skus);
207
+ $imics_to_delete = array();
208
+ foreach ($skus_to_delete as $sku_to_delete) {
209
+ $imics_to_delete[] = $cueconnect_products[$sku_to_delete]->product_imic;
210
+ }
211
+
212
+ // Log
213
+ $log['total_products'] = count($catalog_products);
214
+ $log['total_products_to_create'] = count($new_data);
215
+ $log['total_products_to_update'] = count($updated_data);
216
+ $log['total_products_to_delete'] = count($imics_to_delete);
217
+ $log['total_products_created'] = 0;
218
+ $log['total_products_updated'] = 0;
219
+ $log['total_products_deleted'] = 0;
220
+ Mage::helper('cueconnect')->logExportProgress(json_encode($log));
221
+
222
+ // Send new data data to Cue (per slices)
223
+ if (count($new_data)) {
224
+ $new_data_slices = Mage::helper('cueconnect')->getSlicesFromArray($new_data, 20);
225
+ foreach ($new_data_slices as $new_data_slice) {
226
+ try {
227
+ $soap_client->create(array(
228
+ 'place_id' => $place_id,
229
+ 'data' => $new_data_slice,
230
+ 'count' => count($new_data_slice)
231
+ ));
232
+ // Log
233
+ $log['total_products_created'] = $log['total_products_created'] + count($new_data_slice);
234
+ Mage::helper('cueconnect')->logExportProgress(json_encode($log));
235
+ }
236
+ catch (Exception $e) {
237
+ return array('success' => false, 'message' => $e->getMessage(), 'log' => $log);
238
+ }
239
+ }
240
+ }
241
+
242
+ // Send updated data data to Cue (per slices)
243
+ if (count($updated_data)) {
244
+ $updated_data_slices = Mage::helper('cueconnect')->getSlicesFromArray($updated_data, 20);
245
+ foreach ($updated_data_slices as $updated_data_slice) {
246
+ try {
247
+ $soap_client->set(array(
248
+ 'place_id' => $place_id,
249
+ 'data' => $updated_data_slice,
250
+ 'count' => count($updated_data_slice)
251
+ ));
252
+ // Log
253
+ $log['total_products_updated'] = $log['total_products_updated'] + count($updated_data_slice);
254
+ Mage::helper('cueconnect')->logExportProgress(json_encode($log));
255
+ }
256
+ catch (Exception $e) {
257
+ return array('success' => false, 'message' => $e->getMessage(), 'log' => $log);
258
+ }
259
+ }
260
+ }
261
+
262
+ // Delete products which are not in the Magento catalog anymore
263
+ if (count($imics_to_delete)) {
264
+ $imics_to_delete_slices = Mage::helper('cueconnect')->getSlicesFromArray($imics_to_delete, 50);
265
+ foreach ($imics_to_delete_slices as $imics_to_delete_slice) {
266
+ try {
267
+ $soap_client->delete(array(
268
+ 'place_id' => $place_id,
269
+ 'data' => $imics_to_delete_slice,
270
+ 'count' => count($imics_to_delete_slice)
271
+ ));
272
+ // Log
273
+ $log['total_products_deleted'] = $log['total_products_deleted'] + count($imics_to_delete_slice);
274
+ Mage::helper('cueconnect')->logExportProgress(json_encode($log));
275
+ }
276
+ catch (Exception $e) {
277
+ return array('success' => false, 'message' => $e->getMessage(), 'log' => $log);
278
+ }
279
+ }
280
+ }
281
+
282
+ // Log
283
+ $log['end_at'] = date('Y-m-d H:i:s');
284
+ $log['status'] = "done";
285
+ Mage::helper('cueconnect')->logExportProgress(json_encode($log));
286
+
287
+ // Return
288
+ return array(
289
+ 'success' => true,
290
+ 'created_count' => count($new_data),
291
+ 'updated_count' => count($updated_data),
292
+ 'deleted_count' => count($imics_to_delete),
293
+ 'message' => sprintf("%s product(s) has been created. %s product(s) has been updated. %s product(s) has been deleted.", count($new_data), count($updated_data), count($imics_to_delete)),
294
+ 'log' => $log
295
+ );
296
+ }
297
+ }
app/code/community/CueConnect/Cue/Model/Demand.php ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * CueConnect_Cue
4
+ *
5
+ * @category CueConnect
6
+ * @package CueConnect_Cue
7
+ * @copyright Copyright (c) 2015 Cue Connect
8
+ * @author Cue Connect (http://www.cueconnect.com)
9
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
10
+ */
11
+
12
+ class CueConnect_Cue_Model_Demand extends Mage_Core_Model_Abstract
13
+ {
14
+ const STATUS_WAITING = 1;
15
+ const STATUS_PROGRESSING = 2;
16
+ const STATUS_DONE = 3;
17
+ const STATUS_ERROR = 4;
18
+
19
+ public function _construct()
20
+ {
21
+ parent::_construct();
22
+ $this->_init('cueconnect/demand');
23
+ }
24
+ }
app/code/community/CueConnect/Cue/Model/Mysql4/Demand.php ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * CueConnect_Cue
4
+ *
5
+ * @category CueConnect
6
+ * @package CueConnect_Cue
7
+ * @copyright Copyright (c) 2015 Cue Connect
8
+ * @author Cue Connect (http://www.cueconnect.com)
9
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
10
+ */
11
+
12
+ class CueConnect_Cue_Model_Mysql4_Demand extends Mage_Core_Model_Mysql4_Abstract
13
+ {
14
+ public function _construct()
15
+ {
16
+ $this->_init('cueconnect/demand', 'id');
17
+ }
18
+ }
app/code/community/CueConnect/Cue/Model/Mysql4/Demand/Collection.php ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * CueConnect_Cue
4
+ *
5
+ * @category CueConnect
6
+ * @package CueConnect_Cue
7
+ * @copyright Copyright (c) 2015 Cue Connect
8
+ * @author Cue Connect (http://www.cueconnect.com)
9
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
10
+ */
11
+
12
+ class CueConnect_Cue_Model_Mysql4_Demand_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract
13
+ {
14
+ public function _construct()
15
+ {
16
+ $this->_init('cueconnect/demand');
17
+ }
18
+ }
app/code/community/CueConnect/Cue/Model/Mysql4/UserSync.php ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * CueConnect_Cue
4
+ *
5
+ * @category CueConnect
6
+ * @package CueConnect_Cue
7
+ * @copyright Copyright (c) 2015 Cue Connect
8
+ * @author Cue Connect (http://www.cueconnect.com)
9
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
10
+ */
11
+
12
+ class CueConnect_Cue_Model_Mysql4_UserSync extends Mage_Core_Model_Mysql4_Abstract
13
+ {
14
+ public function _construct()
15
+ {
16
+ $this->_init('cueconnect/userSync', 'id');
17
+ }
18
+ }
app/code/community/CueConnect/Cue/Model/Mysql4/UserSync/Collection.php ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * CueConnect_Cue
4
+ *
5
+ * @category CueConnect
6
+ * @package CueConnect_Cue
7
+ * @copyright Copyright (c) 2015 Cue Connect
8
+ * @author Cue Connect (http://www.cueconnect.com)
9
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
10
+ */
11
+
12
+ class CueConnect_Cue_Model_Mysql4_UserSync_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract
13
+ {
14
+ public function _construct()
15
+ {
16
+ $this->_init('cueconnect/userSync');
17
+ }
18
+ }
app/code/community/CueConnect/Cue/Model/Mysql4/WishlistSync.php ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * CueConnect_Cue
4
+ *
5
+ * @category CueConnect
6
+ * @package CueConnect_Cue
7
+ * @copyright Copyright (c) 2015 Cue Connect
8
+ * @author Cue Connect (http://www.cueconnect.com)
9
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
10
+ */
11
+
12
+ class CueConnect_Cue_Model_Mysql4_WishlistSync extends Mage_Core_Model_Mysql4_Abstract
13
+ {
14
+ public function _construct()
15
+ {
16
+ $this->_init('cueconnect/wishlistSync', 'id');
17
+ }
18
+ }
app/code/community/CueConnect/Cue/Model/Mysql4/WishlistSync/Collection.php ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * CueConnect_Cue
4
+ *
5
+ * @category CueConnect
6
+ * @package CueConnect_Cue
7
+ * @copyright Copyright (c) 2015 Cue Connect
8
+ * @author Cue Connect (http://www.cueconnect.com)
9
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
10
+ */
11
+
12
+ class CueConnect_Cue_Model_Mysql4_WishlistSync_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract
13
+ {
14
+ public function _construct()
15
+ {
16
+ $this->_init('cueconnect/wishlistSync');
17
+ }
18
+ }
app/code/community/CueConnect/Cue/Model/Observer.php ADDED
@@ -0,0 +1,643 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * CueConnect_Cue
4
+ *
5
+ * @category CueConnect
6
+ * @package CueConnect_Cue
7
+ * @copyright Copyright (c) 2015 Cue Connect
8
+ * @author Cue Connect (http://www.cueconnect.com)
9
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
10
+ */
11
+
12
+ class CueConnect_Cue_Model_Observer
13
+ {
14
+
15
+ /**
16
+ * accessing e-List - used to sync saved items to Cue if not already done
17
+ * @param Varien_Event_Observer $observer
18
+ */
19
+ public function viewElist(Varien_Event_Observer $observer) {
20
+ if (Mage::getSingleton('customer/session')->isLoggedIn()) {
21
+ $event = $observer->getEvent();
22
+ $customer = $event->getCustomer();
23
+
24
+ if ($customer) {
25
+ $wishList = Mage::getModel('wishlist/wishlist')->loadByCustomer($customer);
26
+
27
+ if ($wishList) {
28
+ $wishListItemCollection = $wishList->getItemCollection();
29
+
30
+ if (count($wishListItemCollection)) {
31
+ foreach ($wishListItemCollection as $item) {
32
+ $this->syncMark($item->getProduct(), $item->getDescription(), $customer);
33
+ }
34
+ }
35
+ }
36
+ }
37
+ }
38
+ }
39
+
40
+
41
+ /**
42
+ * Add e-List to menu
43
+ * @param Varien_Event_Observer $observer
44
+
45
+ public function regenerateMenu(Varien_Event_Observer $observer) {
46
+ // if module is active
47
+ if (!Mage::getStoreConfig('advanced/modules_disable_output/CueConnect_Cue')) {
48
+ $layout = Mage::getSingleton('core/layout');
49
+
50
+ // remove all the blocks you don't want
51
+ //$layout->getUpdate()->addUpdate('<remove name="catalog.topnav"/>');
52
+
53
+ // load layout updates by specified handles
54
+ $layout->getUpdate()->load();
55
+
56
+ // generate xml from collected text updates
57
+ $layout->generateXml();
58
+
59
+ // generate blocks from xml layout
60
+ $layout->generateBlocks();
61
+ }
62
+ }*/
63
+
64
+
65
+
66
+ /**
67
+ * sync customer account with Cue account after login
68
+ * @param Varien_Event_Observer $observer
69
+ */
70
+ public function customerLogin(Varien_Event_Observer $observer) {
71
+ if (Mage::getSingleton('customer/session')->isLoggedIn()) {
72
+ $event = $observer->getEvent();
73
+ $customer = $event->getCustomer();
74
+
75
+ if ($customer) {
76
+ $this->syncCustomer($customer);
77
+ }
78
+ }
79
+ }
80
+
81
+
82
+ /**
83
+ * sync magento customer profile with cue user (Magento -> Cue)
84
+ * @param Varien_Event_Observer $observer
85
+ */
86
+ public function customerSaveProfile(Varien_Event_Observer $observer) {
87
+ $event = $observer->getEvent();
88
+ $customer = $event->getCustomer();
89
+
90
+ if ($customer) {
91
+ $this->syncCustomer($customer);
92
+ }
93
+ }
94
+
95
+
96
+ /**
97
+ * sync product data with e-List product (Magento -> Cue)
98
+ * @param Varien_Event_Observer $observer [description]
99
+ */
100
+ public function updateProduct(Varien_Event_Observer $observer)
101
+ {
102
+ // Get catalog product
103
+ $catalog_product = $observer->getEvent()->getProduct();
104
+
105
+ // For each related stores
106
+ foreach ($catalog_product->getStoreIds() as $store_id) {
107
+ // Get store
108
+ $store = Mage::getModel('core/store')->load($store_id);
109
+ if ($store->getConfig('cueconnect/enabled/enabled')) {
110
+ // Retailuser SOAP client
111
+ $soap_client = Mage::helper('cueconnect')->getSoapClient(
112
+ Mage::helper('cueconnect')->getWsUrl('retailuser'),
113
+ $store->getConfig('cueconnect/credentials/login'),
114
+ $store->getConfig('cueconnect/credentials/password')
115
+ );
116
+
117
+ // Get place ID
118
+ $place_id = null;
119
+ try {
120
+ $result = $soap_client->get(array(
121
+ 'email' => $store->getConfig('cueconnect/credentials/login')
122
+ ));
123
+ $place_id = $result->data->id;
124
+ }
125
+ catch (Exception $e) {
126
+ Mage::log($e->getMessage());
127
+ }
128
+
129
+ if ($place_id) {
130
+ // Product SOAP client
131
+ $soap_client = Mage::helper('cueconnect')->getSoapClient(
132
+ Mage::helper('cueconnect')->getWsUrl('product'),
133
+ $store->getConfig('cueconnect/credentials/login'),
134
+ $store->getConfig('cueconnect/credentials/password')
135
+ );
136
+
137
+ // Product icon
138
+ $icon = "http://www.cueconnect.com/images/no_image.gif";
139
+ if ($catalog_product->getData('image')) {
140
+ $icon = $catalog_product->getMediaConfig()->getMediaUrl($catalog_product->getData('image'));
141
+ }
142
+
143
+ // Get product and update/create product
144
+ try {
145
+ $result = $soap_client->get(array(
146
+ 'place_id' => $place_id,
147
+ 'sku' => $catalog_product->getSku(),
148
+ 'page' => 1,
149
+ 'page_size' => 1
150
+ ));
151
+ if ($result && isset($result->data) && isset($result->data[0]) && isset($result->inpagecount) && $result->inpagecount) {
152
+ $cueconnect_product = $result->data[0];
153
+ $data = array(
154
+ 'product_imic' => null,
155
+ 'sku' => $catalog_product->getSku(),
156
+ 'name' => $catalog_product->getName(),
157
+ 'description' => $catalog_product->getDescription(),
158
+ 'sms_name' => $catalog_product->getName(),
159
+ 'sms_desc' => $catalog_product->getDescription(),
160
+ 'url' => $catalog_product->getProductUrl(),
161
+ 'taxonomy_id' => Mage::getStoreConfig('cueconnect/taxomomy_id'),
162
+ 'icon' => $icon,
163
+ 'live' => '1',
164
+ 'price' => $catalog_product->getPrice()
165
+ );
166
+ $soap_client->set(array(
167
+ 'place_id' => $place_id,
168
+ 'data' => array(0 => $data),
169
+ 'count' => 1
170
+ ));
171
+ }
172
+ else {
173
+ $data = array(
174
+ 'sku' => $catalog_product->getSku(),
175
+ 'upc' => uniqid(),
176
+ 'name' => $catalog_product->getName(),
177
+ 'description' => $catalog_product->getDescription(),
178
+ 'sms_name' => $catalog_product->getName(),
179
+ 'sms_desc' => $catalog_product->getDescription(),
180
+ 'url' => $catalog_product->getProductUrl(),
181
+ 'taxonomy_id' => Mage::getStoreConfig('cueconnect/taxomomy_id'),
182
+ 'icon' => $icon,
183
+ 'live' => '1',
184
+ 'price' => $catalog_product->getPrice()
185
+ );
186
+ $soap_client->create(array(
187
+ 'place_id' => $place_id,
188
+ 'data' => array(0 => $data),
189
+ 'count' => 1
190
+ ));
191
+ }
192
+ }
193
+ catch (Exception $e) {
194
+ Mage::log($e->getMessage());
195
+ }
196
+ }
197
+ }
198
+ }
199
+ }
200
+
201
+ /**
202
+ * update config in Cue when updated in Magento (Magento -> Cue)
203
+ * @param Varien_Event_Observer $observer
204
+ */
205
+ public function adminCueConnectUpdated(Varien_Event_Observer $observer)
206
+ {
207
+ $storeId = $observer->getEvent()->getStore();
208
+ $store = Mage::getModel('core/store')->load($storeId);
209
+ if ($store) {
210
+ $post = Mage::app()->getRequest()->getPost();
211
+ $version = $post['groups']['mode']['fields']['mode']['value'];
212
+
213
+ $placeApiKey = $store->getConfig('cueconnect/credentials/api_key');
214
+ $str = "v$version" . Mage::helper('cueconnect')->getWebhookSelectVersionKey() . Mage::helper('cueconnect')->getWebhookSelectVersionUrl() . $placeApiKey;
215
+ $key = sha1($str) . '$' . $placeApiKey;
216
+
217
+ $params = array(
218
+ 'version' => $version
219
+ );
220
+
221
+ $retailerId = (int)$this->doRequest(Mage::helper('cueconnect')->getWebhookSelectVersionUrl(), $key, $params);
222
+
223
+ if ($retailerId) {
224
+ /*$config = new Mage_Core_Model_Config();
225
+ $config->saveConfig('cueconnect/credentials/retailer_id', $retailerId, 'default', 1);
226
+ Mage::app()->getCacheInstance()->cleanType('config');
227
+ */
228
+ Mage::getModel('core/config')->saveConfig('cueconnect/credentials/retailer_id', $retailerId);
229
+ Mage::app()->getCacheInstance()->cleanType('config');
230
+ }
231
+ }
232
+ }
233
+
234
+ /**
235
+ * update product in Cue when updated in Magento (Magento -> Cue)
236
+ * @param Varien_Event_Observer $observer
237
+ */
238
+ public function adminProductUpdated(Varien_Event_Observer $observer)
239
+ {
240
+ $product = $observer->getEvent()->getProduct();
241
+
242
+ // For each related stores
243
+ foreach ($product->getStoreIds() as $storeId) {
244
+ $store = Mage::getModel('core/store')->load($storeId);
245
+ $placeApiKey = $store->getConfig('cueconnect/credentials/api_key');
246
+
247
+ $str = $product->getSku() . Mage::helper('cueconnect')->getWebhookPriceChangedKey() . Mage::helper('cueconnect')->getWebhookPriceChangedUrl() . $product->getId();
248
+
249
+ $key = sha1($str) . '$' . $placeApiKey;
250
+
251
+ $width = Mage::getStoreConfig('cueconnect/image/width');
252
+ $height = Mage::getStoreConfig('cueconnect/image/height');
253
+
254
+ $params = array(
255
+ 'id' => $product->getId(),
256
+ 'sku' => (string)$product->getSku(),
257
+ 'name' => $product->getName(),
258
+ 'description' => (string)$product->getDescription(),
259
+ 'comment' => (string)$description,
260
+ 'brand' => (string)$product->getAttributeText('manufacturer'),
261
+ 'upc' => uniqid(),
262
+ 'sms_name' => $product->getName(),
263
+ 'sms_desc' => (string)$product->getDescription(),
264
+ 'url' => $product->getProductUrl(),
265
+ 'taxonomy_id' => Mage::getStoreConfig('cueconnect/taxomomy_id'),
266
+ 'image' => (string)Mage::helper('catalog/image')->init($product, 'small_image')->resize($width, $height),
267
+ 'price' => number_format(Mage::helper('core')->currency($product->getPrice(), false, false), 2),
268
+ );
269
+
270
+ $url = Mage::helper('cueconnect')->getWebhookPriceChangedUrl();
271
+
272
+ $this->doRequest($url, $key, $params);
273
+ }
274
+ }
275
+
276
+
277
+ /**
278
+ * delete product from e-List when deleted in Magento (Magento -> Cue)
279
+ * @param Varien_Event_Observer $observer
280
+ */
281
+ public function deleteProduct(Varien_Event_Observer $observer)
282
+ {
283
+ // Get catalog product
284
+ $catalog_product = $observer->getEvent()->getProduct();
285
+
286
+ // For each related stores
287
+ foreach ($catalog_product->getStoreIds() as $store_id) {
288
+ // Get store
289
+ $store = Mage::getModel('core/store')->load($store_id);
290
+ if ($store->getConfig('cueconnect/enabled/enabled')) {
291
+ // Retailuser SOAP client
292
+ $soap_client = Mage::helper('cueconnect')->getSoapClient(
293
+ Mage::helper('cueconnect')->getWsUrl('retailuser'),
294
+ $store->getConfig('cueconnect/credentials/login'),
295
+ $store->getConfig('cueconnect/credentials/password')
296
+ );
297
+
298
+ // Get place ID
299
+ $place_id = null;
300
+ try {
301
+ $result = $soap_client->get(array(
302
+ 'email' => $store->getConfig('cueconnect/credentials/login')
303
+ ));
304
+ $place_id = $result->data->id;
305
+ }
306
+ catch (Exception $e) {
307
+ Mage::log($e->getMessage());
308
+ }
309
+
310
+ // Product SOAP client
311
+ $soap_client = Mage::helper('cueconnect')->getSoapClient(
312
+ Mage::helper('cueconnect')->getWsUrl('product'),
313
+ $store->getConfig('cueconnect/credentials/login'),
314
+ $store->getConfig('cueconnect/credentials/password')
315
+ );
316
+
317
+ // Get and delete Cue Connect product
318
+ try {
319
+ $result = $soap_client->get(array(
320
+ 'place_id' => $place_id,
321
+ 'sku' => $catalog_product->getSku(),
322
+ 'page' => 1,
323
+ 'page_size' => 1
324
+ ));
325
+ if ($result && isset($result->data) && isset($result->data[0]) && isset($result->inpagecount) && $result->inpagecount) {
326
+ $cueconnect_product = $result->data[0];
327
+ $result = $soap_client->delete(array(
328
+ 'place_id' => $place_id,
329
+ 'data' => array($cueconnect_product->product_imic),
330
+ 'count' => 1
331
+ ));
332
+ }
333
+ }
334
+ catch (Exception $e) {
335
+ Mage::log($e->getMessage());
336
+ }
337
+ }
338
+ }
339
+ }
340
+
341
+
342
+ /**
343
+ * sync function
344
+ * @param Mage_Customer_Model_Customer $customer
345
+ */
346
+ protected function createCueUser($customer) {
347
+ if ($customer) {
348
+ $storeId = $customer->getStoreId();
349
+ if (!$storeId) {
350
+ $storeId = Mage::app()->getStore()->getStoreId();
351
+ }
352
+
353
+ $store = Mage::getModel('core/store')->load($storeId);
354
+ $placeApiKey = $store->getConfig('cueconnect/credentials/api_key');
355
+
356
+ $str = Mage::helper('cueconnect')->getWebhookSaveCustomerKey() . Mage::helper('cueconnect')->getWebhookSaveCustomerUrl() . $customer->getId() . $customer->getEmail();
357
+
358
+ $key = sha1($str) . '$' . $placeApiKey;
359
+
360
+ $params = array(
361
+ 'storeId' => $storeId,
362
+ 'id' => $customer->getId(),
363
+ 'email' => $customer->getEmail(),
364
+ 'fullName' => $customer->getName(),
365
+ 'firstName' => $customer->getFirstname(),
366
+ 'lastName' => $customer->getLastname(),
367
+ 'created' => $customer->getCreatedAt(),
368
+ 'dob' => $customer->getDob(),
369
+ 'gender' => $customer->getGender(),
370
+ );
371
+
372
+ $url = Mage::helper('cueconnect')->getWebhookSaveCustomerUrl();
373
+ $response = $this->doRequest($url, $key, $params);
374
+
375
+ // do POST - use curl
376
+ /*if (function_exists('curl_version')) {
377
+ try {
378
+ $ch = curl_init();
379
+ curl_setopt($ch, CURLOPT_URL, $url);
380
+ curl_setopt($ch, CURLOPT_HEADER);
381
+ curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
382
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
383
+ curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
384
+ curl_setopt($ch, CURLOPT_HTTPHEADER,array('X-Cue-Mage-Auth: ' . $key));
385
+
386
+ $response = curl_exec($ch);
387
+ $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
388
+
389
+ curl_close($ch);
390
+
391
+ } catch (Exception $e) {
392
+ Mage::log($e->getMessage());
393
+ }
394
+ }
395
+ // do GET
396
+ else {
397
+ $params['key'] = $key;
398
+ $queryString = '?' . http_build_query($params);
399
+
400
+ try {
401
+ $response = file_get_contents($url . $queryString);
402
+ } catch (Exception $e) {
403
+ Mage::log($e->getMessage());
404
+ }
405
+ }*/
406
+
407
+ return $response;
408
+ }
409
+
410
+ return null;
411
+ }
412
+
413
+
414
+ protected function createCueProduct($product, $description, $customer)
415
+ {
416
+ if ($product && $customer) {
417
+ $storeId = $customer->getStoreId();
418
+ if (!$storeId) {
419
+ $storeId = Mage::app()->getStore()->getStoreId();
420
+ }
421
+
422
+ $store = Mage::getModel('core/store')->load($storeId);
423
+ $placeApiKey = $store->getConfig('cueconnect/credentials/api_key');
424
+
425
+ $str = Mage::helper('cueconnect')->getWebhookSaveMarkKey() . Mage::helper('cueconnect')->getWebhookSaveMarkUrl() . $customer->getId() . $customer->getEmail();
426
+
427
+ $key = sha1($str) . '$' . $placeApiKey;
428
+
429
+ $width = Mage::getStoreConfig('cueconnect/image/width');
430
+ $height = Mage::getStoreConfig('cueconnect/image/height');
431
+
432
+ $params = array(
433
+ // customer
434
+ 'storeId' => $storeId,
435
+ 'id' => $customer->getId(),
436
+ 'email' => $customer->getEmail(),
437
+ 'fullName' => $customer->getName(),
438
+ 'firstName' => $customer->getFirstname(),
439
+ 'lastName' => $customer->getLastname(),
440
+ 'created' => $customer->getCreatedAt(),
441
+ 'dob' => $customer->getDob(),
442
+ 'gender' => $customer->getGender(),
443
+
444
+ // product
445
+ 'sku' => (string)$product->getSku(),
446
+ 'name' => $product->getName(),
447
+ 'description' => (string)$product->getDescription(),
448
+ 'comment' => (string)$description,
449
+ 'brand' => (string)$product->getAttributeText('manufacturer'),
450
+ 'upc' => uniqid(),
451
+ 'sms_name' => $product->getName(),
452
+ 'sms_desc' => (string)$product->getDescription(),
453
+ 'url' => $product->getProductUrl(),
454
+ 'taxonomy_id' => Mage::getStoreConfig('cueconnect/taxomomy_id'),
455
+ 'image' => (string)Mage::helper('catalog/image')->init($product, 'small_image')->resize($width, $height),
456
+ 'live' => '1',
457
+ 'price' => number_format(Mage::helper('core')->currency($product->getPrice(), false, false), 2),
458
+ );
459
+
460
+ $url = Mage::helper('cueconnect')->getWebhookSaveMarkUrl();
461
+ $response = $this->doRequest($url, $key, $params);
462
+
463
+ // do POST - use curl
464
+ /*if (function_exists('curl_version')) {
465
+ try {
466
+ $ch = curl_init();
467
+ curl_setopt($ch, CURLOPT_URL, $url);
468
+ curl_setopt($ch, CURLOPT_HEADER);
469
+ curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
470
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
471
+ curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
472
+ curl_setopt($ch, CURLOPT_HTTPHEADER,array('X-Cue-Mage-Auth: ' . $key));
473
+
474
+ $response = curl_exec($ch);
475
+ $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
476
+
477
+ curl_close($ch);
478
+
479
+ } catch (Exception $e) {
480
+ Mage::log($e->getMessage());
481
+ }
482
+ }
483
+ // do GET
484
+ else {
485
+ $params['key'] = $key;
486
+ $queryString = '?' . http_build_query($params);
487
+
488
+ try {
489
+ $response = file_get_contents($url . $queryString);
490
+ } catch (Exception $e) {
491
+ Mage::log($e->getMessage());
492
+ }
493
+ }*/
494
+
495
+ return $response;
496
+ }
497
+
498
+ return null;
499
+ }
500
+
501
+
502
+
503
+ /**
504
+ * flag local user as synced and create Cue user
505
+ * @param Mage_Customer_Model_Customer $customer
506
+ */
507
+ protected function syncCustomer($customer)
508
+ {
509
+ if ($customer) {
510
+ $exception = false;
511
+ $userSyncModel = Mage::getModel('cueconnect/userSync');
512
+
513
+ if ($userSyncModel) {
514
+ $row = $userSyncModel->getCollection()
515
+ ->addFieldToFilter('customer_id', $customer->getId())
516
+ ->addFieldToFilter('status', $userSyncModel::STATUS_DONE)
517
+ ->getFirstItem();
518
+
519
+ if (!$row->getData()) {
520
+ $userSyncModel->setData(array(
521
+ 'customer_id' => $customer->getId(),
522
+ 'status' => $userSyncModel::STATUS_WAITING,
523
+ 'created_at' => date('Y-m-d H:i:s')
524
+ ));
525
+
526
+ $id = $userSyncModel->save()->getId();
527
+
528
+ // sync customer
529
+ $response = $this->createCueUser($customer);
530
+ $exception = ($response != 1);
531
+
532
+ // update status
533
+ $row = $userSyncModel->load($id);
534
+ if ($row->getData()) {
535
+ $row->addData(array(
536
+ 'status' => ($response) ? $userSyncModel::STATUS_DONE : $userSyncModel::STATUS_ERROR,
537
+ ));
538
+ $row->save();
539
+ }
540
+ }
541
+ }
542
+
543
+ // if unable to save local flag, then sync customer with Cue anyway
544
+ if ($exception) {
545
+ $this->createCueUser($customer);
546
+ }
547
+ }
548
+ }
549
+
550
+
551
+ /**
552
+ * copy native wishlist items to e-List saves when accessing e-List for first time
553
+ * @param [type] $product
554
+ * @param [type] $description
555
+ * @param [type] $customer
556
+ */
557
+ protected function syncMark($product, $description, $customer)
558
+ {
559
+ if ($customer && $product) {
560
+ $exception = false;
561
+ $wishlistSyncModel = Mage::getModel('cueconnect/wishlistSync');
562
+
563
+ if ($wishlistSyncModel) {
564
+ $row = $wishlistSyncModel->getCollection()
565
+ ->addFieldToFilter('product_id', $product->getId())
566
+ ->addFieldToFilter('customer_id', $customer->getId())
567
+ ->addFieldToFilter('status', $wishlistSyncModel::STATUS_DONE)
568
+ ->getFirstItem();
569
+
570
+ if (!$row->getData()) {
571
+ $wishlistSyncModel->setData(array(
572
+ 'customer_id' => $customer->getId(),
573
+ 'product_id' => $product->getId(),
574
+ 'status' => $wishlistSyncModel::STATUS_WAITING,
575
+ 'created_at' => date('Y-m-d H:i:s')
576
+ ));
577
+
578
+ $id = $wishlistSyncModel->save()->getId();
579
+
580
+ // sync product/customer
581
+ $response = $this->createCueProduct($product, $description, $customer);
582
+ $exception = ($response != 1);
583
+
584
+ // update status
585
+ $row = $wishlistSyncModel->load($id);
586
+ if ($row->getData()) {
587
+ $row->addData(array(
588
+ 'status' => ($response) ? $wishlistSyncModel::STATUS_DONE : $wishlistSyncModel::STATUS_ERROR,
589
+ ));
590
+ $row->save();
591
+ }
592
+ }
593
+ }
594
+
595
+ // if unable to save local flag, then sync product/customer with Cue anyway => this means the op will be executed each time we access eList
596
+ if ($exception) {
597
+ $this->createCueProduct($product, $customer);
598
+ }
599
+ }
600
+ }
601
+
602
+
603
+
604
+ protected function doRequest($url, $key, $params)
605
+ {
606
+ $response = null;
607
+
608
+ // do POST - use curl
609
+ if (function_exists('curl_version')) {
610
+ try {
611
+ $ch = curl_init();
612
+ curl_setopt($ch, CURLOPT_URL, $url);
613
+ curl_setopt($ch, CURLOPT_HEADER);
614
+ curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
615
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
616
+ curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
617
+ curl_setopt($ch, CURLOPT_HTTPHEADER,array('X-Cue-Mage-Auth: ' . $key));
618
+
619
+ $response = curl_exec($ch);
620
+ $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
621
+
622
+ curl_close($ch);
623
+
624
+ } catch (Exception $e) {
625
+ Mage::log($e->getMessage());
626
+ }
627
+ }
628
+ // do GET
629
+ else {
630
+ $params['key'] = $key;
631
+ $queryString = '?' . http_build_query($params);
632
+
633
+ try {
634
+ $response = file_get_contents($url . $queryString);
635
+ } catch (Exception $e) {
636
+ Mage::log($e->getMessage());
637
+ }
638
+ }
639
+
640
+ return $response;
641
+ }
642
+
643
+ }
app/code/community/CueConnect/Cue/Model/Options.php ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * CueConnect_Cue
4
+ *
5
+ * @category CueConnect
6
+ * @package CueConnect_Cue
7
+ * @copyright Copyright (c) 2015 Cue Connect
8
+ * @author Cue Connect (http://www.cueconnect.com)
9
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
10
+ */
11
+
12
+ class CueConnect_Cue_Model_Options
13
+ {
14
+ public function toOptionArray()
15
+ {
16
+ return array(
17
+ array('value' => 1, 'label' => 'Standalone Widget'),
18
+ array('value' => 2, 'label' => 'Fully Integrated'),
19
+ );
20
+ }
21
+ }
app/code/community/CueConnect/Cue/Model/UserSync.php ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * CueConnect_Cue
4
+ *
5
+ * @category CueConnect
6
+ * @package CueConnect_Cue
7
+ * @copyright Copyright (c) 2015 Cue Connect
8
+ * @author Cue Connect (http://www.cueconnect.com)
9
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
10
+ */
11
+
12
+ class CueConnect_Cue_Model_UserSync extends Mage_Core_Model_Abstract
13
+ {
14
+ const STATUS_WAITING = 0;
15
+ const STATUS_DONE = 1;
16
+ const STATUS_ERROR = 2;
17
+
18
+ public function _construct()
19
+ {
20
+ parent::_construct();
21
+ $this->_init('cueconnect/userSync');
22
+ }
23
+ }
app/code/community/CueConnect/Cue/Model/WishlistSync.php ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * CueConnect_Cue
4
+ *
5
+ * @category CueConnect
6
+ * @package CueConnect_Cue
7
+ * @copyright Copyright (c) 2015 Cue Connect
8
+ * @author Cue Connect (http://www.cueconnect.com)
9
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
10
+ */
11
+
12
+ class CueConnect_Cue_Model_WishlistSync extends Mage_Core_Model_Abstract
13
+ {
14
+ const STATUS_WAITING = 1;
15
+ const STATUS_DONE = 2;
16
+ const STATUS_ERROR = 3;
17
+
18
+ public function _construct()
19
+ {
20
+ parent::_construct();
21
+ $this->_init('cueconnect/wishlistSync');
22
+ }
23
+ }
app/code/community/CueConnect/Cue/controllers/Adminhtml/SyncController.php ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * CueConnect_Cue
4
+ *
5
+ * @category CueConnect
6
+ * @package CueConnect_Cue
7
+ * @copyright Copyright (c) 2015 Cue Connect
8
+ * @author Cue Connect (http://www.cueconnect.com)
9
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
10
+ */
11
+
12
+ class CueConnect_Cue_Adminhtml_SyncController extends Mage_Adminhtml_Controller_Action
13
+ {
14
+ /**
15
+ * View export progression and last asked exports
16
+ */
17
+ public function indexAction() {
18
+ // Render layout
19
+ $this->loadLayout();
20
+ $this->renderLayout();
21
+ }
22
+
23
+ /**
24
+ * Manually ask for an export
25
+ */
26
+ public function exportAction() {
27
+ // Create a demand
28
+ $demand = Mage::getModel('cueconnect/demand');
29
+ $demand->setStatus($demand::STATUS_WAITING);
30
+ $demand->setCreatedAt(date('Y-m-d H:i:s'));
31
+ $demand->setUpdatedAt(date('Y-m-d H:i:s'));
32
+ $demand->save();
33
+
34
+ // Notice
35
+ Mage::getSingleton('adminhtml/session')->addSuccess("The catalog will be exported in a few moments. Pleae make sure that Magento cron is correctly configured.");
36
+
37
+ // Redirect to catalog
38
+ return $this->_redirect('cueconnect/adminhtml_sync/index');
39
+ }
40
+ }
app/code/community/CueConnect/Cue/controllers/ElistController.php ADDED
@@ -0,0 +1,54 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * CueConnect_Cue
4
+ *
5
+ * @category CueConnect
6
+ * @package CueConnect_Cue
7
+ * @copyright Copyright (c) 2015 Cue Connect
8
+ * @author Cue Connect (http://www.cueconnect.com)
9
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
10
+ */
11
+
12
+ class CueConnect_Cue_ElistController extends Mage_Core_Controller_Front_Action
13
+ {
14
+ /**
15
+ * View export progression and last asked exports
16
+ */
17
+ public function indexAction() {
18
+ // if PB, redirect to home page - only CP is allowed here
19
+ if (1 == Mage::helper('cueconnect')->getElistMode()) {
20
+ Mage::app()->getResponse()->setRedirect(Mage::getBaseUrl());
21
+ }
22
+
23
+ if (!Mage::getSingleton('customer/session')->isLoggedIn()){
24
+ Mage::getSingleton('customer/session')->setBeforeAuthUrl(Mage::helper('core/url')->getCurrentUrl());
25
+ Mage::getSingleton('customer/session')->setAfterAuthUrl(Mage::helper('core/url')->getCurrentUrl());
26
+ }
27
+ else {
28
+ // fire custom event for CP so we sync accounts and wishlist items with Cue
29
+ Mage::dispatchEvent('elist_view', array('customer' => Mage::getSingleton('customer/session')->getCustomer()));
30
+ }
31
+
32
+ // Render layout
33
+ $this->loadLayout();
34
+
35
+ // update page title
36
+ $this->getLayout()->getBlock("head")->setTitle($this->__("Cue e-List"));
37
+
38
+ // show breadcrumbs
39
+ $breadcrumbs = $this->getLayout()->getBlock("breadcrumbs");
40
+ $breadcrumbs->addCrumb("home", array(
41
+ "label" => $this->__("Home"),
42
+ "title" => $this->__("Home"),
43
+ "link" => Mage::getBaseUrl()
44
+ ));
45
+
46
+ $breadcrumbs->addCrumb("elist", array(
47
+ "label" => $this->__("e-List"),
48
+ "title" => $this->__("e-List")
49
+ ));
50
+
51
+ // render layout
52
+ $this->renderLayout();
53
+ }
54
+ }
app/code/community/CueConnect/Cue/etc/.config.xml.swp ADDED
Binary file
app/code/community/CueConnect/Cue/etc/config.xml ADDED
@@ -0,0 +1,259 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <config>
3
+ <modules>
4
+ <CueConnect_Cue>
5
+ <version>3.0.9</version>
6
+ </CueConnect_Cue>
7
+ </modules>
8
+ <global>
9
+ <models>
10
+ <cueconnect>
11
+ <class>CueConnect_Cue_Model</class>
12
+ <resourceModel>cueconnect_mysql4</resourceModel>
13
+ </cueconnect>
14
+ <cueconnect_mysql4>
15
+ <class>CueConnect_Cue_Model_Mysql4</class>
16
+ <entities>
17
+ <demand>
18
+ <table>cueconnect_demand</table>
19
+ </demand>
20
+ <userSync>
21
+ <table>cueconnect_user_sync</table>
22
+ </userSync>
23
+ <wishlistSync>
24
+ <table>cueconnect_wishlist_sync</table>
25
+ </wishlistSync>
26
+ </entities>
27
+ </cueconnect_mysql4>
28
+ </models>
29
+ <blocks>
30
+ <cueconnect>
31
+ <class>CueConnect_Cue_Block</class>
32
+ </cueconnect>
33
+ </blocks>
34
+ <helpers>
35
+ <cueconnect>
36
+ <class>CueConnect_Cue_Helper</class>
37
+ </cueconnect>
38
+ <wishlist>
39
+ <rewrite>
40
+ <data>CueConnect_Cue_Helper_Wishlist_Data</data> <!-- tell magento to use your own helper instead of the default one -->
41
+ </rewrite>
42
+ </wishlist>
43
+ </helpers>
44
+ <resources>
45
+ <cueconnect_setup>
46
+ <setup>
47
+ <module>CueConnect_Cue</module>
48
+ </setup>
49
+ </cueconnect_setup>
50
+ <cueconnect_write>
51
+ <connection>
52
+ <use>core_write</use>
53
+ </connection>
54
+ </cueconnect_write>
55
+ <cueconnect_read>
56
+ <connection>
57
+ <use>core_read</use>
58
+ </connection>
59
+ </cueconnect_read>
60
+ </resources>
61
+ <events>
62
+ <catalog_product_save_after>
63
+ <observers>
64
+ <cueconnect_cue_observer_update_product>
65
+ <type>singleton</type>
66
+ <class>CueConnect_Cue_Model_Observer</class>
67
+ <method>updateProduct</method>
68
+ </cueconnect_cue_observer_update_product>
69
+ </observers>
70
+ </catalog_product_save_after>
71
+ <catalog_product_delete_before>
72
+ <observers>
73
+ <cueconnect_cue_observer_delete_product>
74
+ <type>singleton</type>
75
+ <class>CueConnect_Cue_Model_Observer</class>
76
+ <method>deleteProduct</method>
77
+ </cueconnect_cue_observer_delete_product>
78
+ </observers>
79
+ </catalog_product_delete_before>
80
+ <customer_register_success>
81
+ <observers>
82
+ <cueconnect_cue_customer_register_success>
83
+ <type>singleton</type>
84
+ <class>CueConnect_Cue_Model_Observer</class>
85
+ <method>customerSaveProfile</method>
86
+ </cueconnect_cue_customer_register_success>
87
+ </observers>
88
+ </customer_register_success>
89
+ <customer_save_after>
90
+ <observers>
91
+ <cueconnect_cue_customer_save_after>
92
+ <type>singleton</type>
93
+ <class>CueConnect_Cue_Model_Observer</class>
94
+ <method>customerSaveProfile</method>
95
+ </cueconnect_cue_customer_save_after>
96
+ </observers>
97
+ </customer_save_after>
98
+ <elist_view>
99
+ <observers>
100
+ <cueconnect_cue_elist_view>
101
+ <type>singleton</type>
102
+ <class>CueConnect_Cue_Model_Observer</class>
103
+ <method>viewElist</method>
104
+ </cueconnect_cue_elist_view>
105
+ </observers>
106
+ </elist_view>
107
+ </events>
108
+ <rewrite>
109
+ <elist_url>
110
+ <from><![CDATA[#^/apps/myelist(\/)*$#]]></from>
111
+ <to><![CDATA[/cueconnect/elist/index]]></to>
112
+ <complete>1</complete>
113
+ </elist_url>
114
+ </rewrite>
115
+ </global>
116
+ <frontend>
117
+ <layout>
118
+ <updates>
119
+ <cueconnect module="cueconnect">
120
+ <file>cueconnect.xml</file>
121
+ </cueconnect>
122
+ </updates>
123
+ </layout>
124
+ <routers>
125
+ <cueconnect>
126
+ <use>standard</use>
127
+ <args>
128
+ <module>CueConnect_Cue</module>
129
+ <frontName>elist</frontName>
130
+ </args>
131
+ </cueconnect>
132
+ </routers>
133
+ <events>
134
+ <customer_login>
135
+ <observers>
136
+ <cueconnect_cue_customer_login>
137
+ <type>model</type>
138
+ <class>CueConnect_Cue_Model_Observer</class>
139
+ <method>customerLogin</method>
140
+ </cueconnect_cue_customer_login>
141
+ </observers>
142
+ </customer_login>
143
+ </events>
144
+ </frontend>
145
+ <admin>
146
+ <routers>
147
+ <cueconnect>
148
+ <use>admin</use>
149
+ <args>
150
+ <module>CueConnect_Cue</module>
151
+ <frontName>cueconnect</frontName>
152
+ </args>
153
+ </cueconnect>
154
+ </routers>
155
+ </admin>
156
+ <adminhtml>
157
+ <acl>
158
+ <resources>
159
+ <all>
160
+ <title>Allow Everything</title>
161
+ </all>
162
+ <admin>
163
+ <children>
164
+ <system>
165
+ <children>
166
+ <config>
167
+ <children>
168
+ <cueconnect translate="title" module="cueconnect">
169
+ <title>Cue - All</title>
170
+ <sort_order>100</sort_order>
171
+ </cueconnect>
172
+ </children>
173
+ </config>
174
+ </children>
175
+ </system>
176
+ </children>
177
+ </admin>
178
+ </resources>
179
+ </acl>
180
+ <layout>
181
+ <updates>
182
+ <cueconnect module="cueconnect">
183
+ <file>cueconnect.xml</file>
184
+ </cueconnect>
185
+ </updates>
186
+ </layout>
187
+ <events>
188
+ <admin_system_config_changed_section_cueconnect>
189
+ <observers>
190
+ <cueconnect_cue_version_change>
191
+ <type>singleton</type>
192
+ <class>CueConnect_Cue_Model_Observer</class>
193
+ <method>adminCueConnectUpdated</method>
194
+ </cueconnect_cue_version_change>
195
+ </observers>
196
+ </admin_system_config_changed_section_cueconnect>
197
+ <catalog_product_save_after>
198
+ <observers>
199
+ <cueconnect_cue_product_update>
200
+ <type>singleton</type>
201
+ <class>CueConnect_Cue_Model_Observer</class>
202
+ <method>adminProductUpdated</method>
203
+ </cueconnect_cue_product_update>
204
+ </observers>
205
+ </catalog_product_save_after>
206
+ </events>
207
+ </adminhtml>
208
+ <default>
209
+ <cueconnect>
210
+ <enabled>
211
+ <enabled>1</enabled>
212
+ </enabled>
213
+ <mode>
214
+ <mode>1</mode>
215
+ </mode>
216
+ <collection>
217
+ <enabled>1</enabled>
218
+ </collection>
219
+ <ob>
220
+ <enabled>1</enabled>
221
+ </ob>
222
+ <favorite>
223
+ <enabled>1</enabled>
224
+ </favorite>
225
+ <alert>
226
+ <enabled>1</enabled>
227
+ </alert>
228
+ <webservice>
229
+ <url>http://rapi.cueconnect.com/</url>
230
+ </webservice>
231
+ <taxomomy_id>fcc3465</taxomomy_id>
232
+ <image>
233
+ <width>480</width>
234
+ <height>480</height>
235
+ </image>
236
+ <path>
237
+ <elist>apps/myelist</elist>
238
+ </path>
239
+ <webhook>
240
+ <save_customer>
241
+ <url>https://business.cueconnect.com/magento/saveCustomer</url>
242
+ <key>026132282952ccf731a765413bf11ca32ccbc683ab92c7ad3171b2a0a71ef21d69d1334efcf79da5ecc2d496221e0e28ed025e71d210ebf16e70bfa338c4f2d3</key>
243
+ </save_customer>
244
+ <save_mark>
245
+ <url>https://business.cueconnect.com/magento/saveMark</url>
246
+ <key>bf83fc65e0e710e68e17c811bdb6e5d48ea2e805d8fc4af3ac9c8c428631fa044fa6509f128e6891b6d5e8df54508e045b53d95289d72f2f46d98499286772ca</key>
247
+ </save_mark>
248
+ <price_changed>
249
+ <url>https://business.cueconnect.com/magento/priceChanged</url>
250
+ <key>f7ba9544bdded1d3a1aead3cb43557b340bf69ce1919a94e7282bfe11f573c94ffc375bf778bc374677c8150ae3880e9fa1502bb5e4235d7628e1ed3e95a6895</key>
251
+ </price_changed>
252
+ <select_version>
253
+ <url>https://business.cueconnect.com/magento/selectVersion</url>
254
+ <key>a2645def81375a4f88475acc6b4b0639fd87bfaef715b828e1704f79bac6262ef0e85876dd7047765360678b3372812b5f1741b3abfe9159a3d50fe01e05d757</key>
255
+ </select_version>
256
+ </webhook>
257
+ </cueconnect>
258
+ </default>
259
+ </config>
app/code/community/CueConnect/Cue/etc/system.xml ADDED
@@ -0,0 +1,230 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" ?>
2
+ <config>
3
+ <sections>
4
+ <cueconnect module="cueconnect" translate="label">
5
+ <label>Cue</label>
6
+ <tab>catalog</tab>
7
+ <frontend_type>text</frontend_type>
8
+ <sort_order>300</sort_order>
9
+ <show_in_default>1</show_in_default>
10
+ <show_in_website>1</show_in_website>
11
+ <show_in_store>1</show_in_store>
12
+ <groups>
13
+ <credentials translate="label">
14
+ <label>Cue API Key</label>
15
+ <comment><![CDATA[<p>Get your Cue API key from your Merchant Hub account under the Code Implementation section.</p>]]></comment>
16
+ <frontend_type>text</frontend_type>
17
+ <sort_order>1</sort_order>
18
+ <show_in_default>0</show_in_default>
19
+ <show_in_website>0</show_in_website>
20
+ <show_in_store>1</show_in_store>
21
+ <fields>
22
+ <api_key translate="label">
23
+ <label>API key</label>
24
+ <tooltip>Get your Cue API key from your Merchant Hub account.</tooltip>
25
+ <show_in_default>0</show_in_default>
26
+ <show_in_website>0</show_in_website>
27
+ <show_in_store>1</show_in_store>
28
+ <frontend_type>text</frontend_type>
29
+ <sort_order>3</sort_order>
30
+ </api_key>
31
+ </fields>
32
+ </credentials>
33
+ <enabled translate="label">
34
+ <label>Enable e-List for this store</label>
35
+ <comment><![CDATA[<p>When &quot;e-List&quot; is enabled, magento's native wishlist will be disabled and customers' saved items are transfered to &quot;e-List&quot;.</p>]]></comment>
36
+ <frontend_type>text</frontend_type>
37
+ <sort_order>2</sort_order>
38
+ <show_in_default>0</show_in_default>
39
+ <show_in_website>0</show_in_website>
40
+ <show_in_store>1</show_in_store>
41
+ <fields>
42
+ <enabled translate="label">
43
+ <label>Enabled</label>
44
+ <tooltip>Enable e-List for this store</tooltip>
45
+ <show_in_default>0</show_in_default>
46
+ <show_in_website>0</show_in_website>
47
+ <show_in_store>1</show_in_store>
48
+ <frontend_type>select</frontend_type>
49
+ <source_model>adminhtml/system_config_source_yesno</source_model>
50
+ <sort_order>1</sort_order>
51
+ </enabled>
52
+ </fields>
53
+ </enabled>
54
+
55
+
56
+ <mode translate="label">
57
+ <label>e-List Version</label>
58
+ <comment><![CDATA[<p>Available in two versions: a customizable widget or enterprise fully integrated that works seamlessly with your existing Customer Account and Profile.</p><p><strong>Standalone Widget:</strong> e-List technology is deployed on a standalone widget. Shoppers will opt into this service by signing up through the e-list login popup modal.</p><p><strong>Fully Integrated:</strong> works seamlessly with your existing Customer Account and Profile. Shoppers simply need to create an account with your store to have access to e-List capabilities.</p>]]></comment>
59
+ <frontend_type>text</frontend_type>
60
+ <sort_order>3</sort_order>
61
+ <show_in_default>0</show_in_default>
62
+ <show_in_website>0</show_in_website>
63
+ <show_in_store>1</show_in_store>
64
+ <fields>
65
+ <mode translate="label">
66
+ <label>Version</label>
67
+ <frontend_type>select</frontend_type>
68
+ <source_model>cueconnect/options</source_model>
69
+ <sort_order>1</sort_order>
70
+ <show_in_default>0</show_in_default>
71
+ <show_in_website>0</show_in_website>
72
+ <show_in_store>1</show_in_store>
73
+ </mode>
74
+ </fields>
75
+ </mode>
76
+ <collection translate="label">
77
+ <label>My e-List</label>
78
+ <comment><![CDATA[<p>The &quot;My e-List&quot; link can be automatically added to the top links or manually inserted in any location in your theme files. <br>If you wish to manually place the &quot;My e-List&quot; link, set this option to &quot;No&quot; and follow the steps in the Manual Setup Instructions section below in this page.</p>]]></comment>
79
+ <frontend_type>text</frontend_type>
80
+ <sort_order>4</sort_order>
81
+ <show_in_default>0</show_in_default>
82
+ <show_in_website>0</show_in_website>
83
+ <show_in_store>1</show_in_store>
84
+ <fields>
85
+ <enabled translate="label">
86
+ <label>Automatic</label>
87
+ <show_in_default>0</show_in_default>
88
+ <show_in_website>0</show_in_website>
89
+ <show_in_store>1</show_in_store>
90
+ <frontend_type>select</frontend_type>
91
+ <source_model>adminhtml/system_config_source_yesno</source_model>
92
+ <sort_order>1</sort_order>
93
+ </enabled>
94
+ </fields>
95
+ </collection>
96
+ <ob translate="label">
97
+ <label>Share Button</label>
98
+ <comment><![CDATA[<p>The &quot;Share&quot; button can be automatically added or manually inserted into the product page.<br>If you wish to manually place the &quot;Share&quot; button, set this option to &quot;No&quot; and follow the steps in the Manual Setup Instructions section below in this page.</p>]]></comment>
99
+ <frontend_type>text</frontend_type>
100
+ <sort_order>5</sort_order>
101
+ <show_in_default>0</show_in_default>
102
+ <show_in_website>0</show_in_website>
103
+ <show_in_store>1</show_in_store>
104
+ <fields>
105
+ <enabled translate="label">
106
+ <label>Automatic</label>
107
+ <show_in_default>0</show_in_default>
108
+ <show_in_website>0</show_in_website>
109
+ <show_in_store>1</show_in_store>
110
+ <frontend_type>select</frontend_type>
111
+ <source_model>adminhtml/system_config_source_yesno</source_model>
112
+ <sort_order>1</sort_order>
113
+ </enabled>
114
+ </fields>
115
+ </ob>
116
+ <favorite translate="label">
117
+ <label>Add to Wishlist Link</label>
118
+ <comment><![CDATA[<p>The &quot;Add to Wishlist&quot; link can be automatically added or manually inserted into the product page.<br>If you wish to manually place the &quot;Add to Wishlist&quot; link, set this option to &quot;No&quot; and follow the steps in the Manual Setup Instructions section below in this page.</p>]]></comment>
119
+ <frontend_type>text</frontend_type>
120
+ <sort_order>6</sort_order>
121
+ <show_in_default>0</show_in_default>
122
+ <show_in_website>0</show_in_website>
123
+ <show_in_store>1</show_in_store>
124
+ <fields>
125
+ <enabled translate="label">
126
+ <label>Automatic</label>
127
+ <show_in_default>0</show_in_default>
128
+ <show_in_website>0</show_in_website>
129
+ <show_in_store>1</show_in_store>
130
+ <frontend_type>select</frontend_type>
131
+ <source_model>adminhtml/system_config_source_yesno</source_model>
132
+ <sort_order>1</sort_order>
133
+ </enabled>
134
+ </fields>
135
+ </favorite>
136
+ <alert translate="label">
137
+ <label>Price Alert</label>
138
+ <comment><![CDATA[<p>The &quot;Price Alert&quot; link can be automatically added or manually inserted into the product page.<br>If you wish to manually place the &quot;Price Alert&quot; link, set this option to &quot;No&quot; and follow the steps in the Manual Setup Instructions section below in this page.</p>]]></comment>
139
+ <frontend_type>text</frontend_type>
140
+ <sort_order>7</sort_order>
141
+ <show_in_default>0</show_in_default>
142
+ <show_in_website>0</show_in_website>
143
+ <show_in_store>1</show_in_store>
144
+ <fields>
145
+ <enabled translate="label">
146
+ <label>Automatic</label>
147
+ <show_in_default>0</show_in_default>
148
+ <show_in_website>0</show_in_website>
149
+ <show_in_store>1</show_in_store>
150
+ <frontend_type>select</frontend_type>
151
+ <source_model>adminhtml/system_config_source_yesno</source_model>
152
+ <sort_order>1</sort_order>
153
+ </enabled>
154
+ </fields>
155
+ </alert>
156
+
157
+ <setup translate="label">
158
+ <label>Manual Setup Instructions</label>
159
+ <comment><![CDATA[
160
+
161
+ <strong>Step 1. 'My e-List' link setup</strong>
162
+
163
+
164
+ <p>Copy the &lt;a&gt; tag and paste it in the theme's source code where you wish the 'My e-List' link to appear:</p>
165
+
166
+ <div class="reg_main" style="padding:0 20px;margin-bottom: 20px">
167
+ <textarea readonly="readonly" style="width: 80%; height: 50px;">
168
+
169
+ <a class="cue-stream"></a>
170
+
171
+ </textarea>
172
+ </div>
173
+
174
+ <div style="padding:0 20px;margin-bottom: 20px; color: blue; font-size: 12px;">Tip: <br>
175
+ We recommend that you place the link in your header or menu.<br>You can replace the &lt;a&gt; by any HTML tag that fits your design best.
176
+ </div>
177
+
178
+ <strong>Step 2. Implement the 'Share' button</strong>
179
+
180
+ <p>Copy the &lt;div&gt; tag and insert it in your product's html page, where you wish the button to appear.</p>
181
+
182
+ <div class="reg_main" style="padding:0 20px;margin-bottom: 20px">
183
+ <textarea readonly="readonly" style="width: 80%; height: 60px;">
184
+
185
+ <div class="cue-onebutton" data-imisku="<?php echo $this->htmlEscape($_product->getSku()) ?>"></div>
186
+
187
+ </textarea>
188
+ </div>
189
+
190
+
191
+ <strong>Step 3. Implement the 'Add to Wishlist' link</strong>
192
+
193
+
194
+ <p>Copy the &lt;div&gt; tag and insert it in your product's html page, where you wish the link to appear.</p>
195
+
196
+
197
+ <div class="reg_main" style="padding:0 20px;margin-bottom: 20px">
198
+ <textarea readonly="readonly" style="width: 80%; height: 60px;">
199
+
200
+
201
+ <div class="cue-cueit" data-imisku="<?php echo $this->htmlEscape($_product->getSku()) ?>"></div>
202
+
203
+ </textarea>
204
+ </div>
205
+
206
+ <strong>Step 4. Implement the 'Price Alert' link</strong>
207
+
208
+
209
+ <p>Copy the &lt;div&gt; tag and insert it in your product's html page, where you wish the link to appear.</p>
210
+
211
+
212
+ <div class="reg_main" style="padding:0 20px;margin-bottom: 20px">
213
+ <textarea readonly="readonly" style="width: 80%; height: 60px;">
214
+
215
+
216
+ <div class="cue-learnmore"></div>
217
+
218
+ </textarea>
219
+ </div>
220
+ ]]></comment>
221
+ <frontend_type>text</frontend_type>
222
+ <sort_order>8</sort_order>
223
+ <show_in_default>0</show_in_default>
224
+ <show_in_website>0</show_in_website>
225
+ <show_in_store>1</show_in_store>
226
+ </setup>
227
+ </groups>
228
+ </cueconnect>
229
+ </sections>
230
+ </config>
app/code/community/CueConnect/Cue/sql/cueconnect_setup/{mysql4-install-3.0.10.php → mysql4-install-3.0.9.php} RENAMED
File without changes
app/code/community/CueConnect/Cue/sql/cueconnect_setup/{mysql4-upgrade-3.0.9-3.0.10.php → mysql4-upgrade-3.0.8-3.0.9.php} RENAMED
File without changes
app/design/frontend/base/default/layout/cueconnect.xml ADDED
@@ -0,0 +1,66 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <layout version="0.1.2">
3
+ <catalog_product_view>
4
+ <reference name="content">
5
+ <reference name="product.info.extrahint">
6
+ <block type="cueconnect/share" name="product.info.cueconnect.share" template="cueconnect/share.phtml" />
7
+ <block type="cueconnect/favorite" name="product.info.cueconnect.favorite" template="cueconnect/favorite.phtml" />
8
+ <block type="cueconnect/alert" name="product.info.cueconnect.alert" template="cueconnect/alert.phtml" />
9
+ </reference>
10
+ </reference>
11
+ </catalog_product_view>
12
+ <cueconnect_elist_index>
13
+ <reference name="root">
14
+ <action method="setTemplate">
15
+ <template>page/1column.phtml</template>
16
+ </action>
17
+
18
+ <reference name="content">
19
+ <block type="cueconnect/elist" name="cueconnect.elist" template="cueconnect/elist.phtml">
20
+ <block type="customer/form_login" name="customer_form_login" template="cueconnect/customer/form/login.phtml" />
21
+ <block type="customer/form_register" name="customer_form_register" template="cueconnect/customer/form/register.phtml" />
22
+ <block type="customer/account_forgotpassword" name="forgotPassword" template="cueconnect/customer/form/forgotpassword.phtml" />
23
+ </block>
24
+
25
+ </reference>
26
+ </reference>
27
+
28
+ </cueconnect_elist_index>
29
+ <default>
30
+ <reference name="root">
31
+ <reference name="head">
32
+ <block type="cueconnect/meta" name="cueconnect.meta" template="cueconnect/meta.phtml" />
33
+ </reference>
34
+ <reference name="header">
35
+ <reference name="top.container">
36
+ <block type="cueconnect/collection" name="cueconnect.button.collection" template="cueconnect/collection.phtml" />
37
+ </reference>
38
+ </reference>
39
+ <reference name="after_body_start">
40
+ <block type="cueconnect/js" name="cueconnect.js" template="cueconnect/js.phtml" />
41
+ </reference>
42
+ <reference name="top.links">
43
+ <block type="cueconnect/navigation" name="cueconnect.navigation">
44
+ <action method="addMyElistLink"></action>
45
+ </block>
46
+ </reference>
47
+ <!-- <reference name="top.links">
48
+ <block type="cueconnect/navigation" name="cueconnect.toplinks" template="page/html/header.phtml" />
49
+ </reference> -->
50
+ <!-- <reference name="top.links">
51
+ <action method="addLink" translate="label title">
52
+ <label>My e-List</label>
53
+ <url>cueconnect/elist</url>
54
+ <title>My e-List</title>
55
+ <prepare>true</prepare>
56
+ <urlParams helper="core/url/getUrl"/>
57
+ <position>1</position>
58
+ <liParams>id="cue-stream-li"</liParams>
59
+ <aParams>class="cue-stream" id="cue-stream-nav"</aParams>
60
+ <beforeText/>
61
+ <afterText>|</afterText>
62
+ </action>
63
+ </reference> -->
64
+ </reference>
65
+ </default>
66
+ </layout>
app/design/frontend/base/default/template/cueconnect/._alert.phtml ADDED
Binary file
app/design/frontend/base/default/template/cueconnect/._collection.phtml ADDED
Binary file
app/design/frontend/base/default/template/cueconnect/._customer ADDED
Binary file
app/design/frontend/base/default/template/cueconnect/._elist.phtml ADDED
Binary file
app/design/frontend/base/default/template/cueconnect/._favorite.phtml ADDED
Binary file
app/design/frontend/base/default/template/cueconnect/._js.phtml ADDED
Binary file
app/design/frontend/base/default/template/cueconnect/._links.phtml ADDED
Binary file
app/design/frontend/base/default/template/cueconnect/._meta.phtml ADDED
Binary file
app/design/frontend/base/default/template/cueconnect/._share.phtml ADDED
Binary file
app/design/frontend/base/default/template/cueconnect/alert.phtml ADDED
@@ -0,0 +1,3 @@
 
 
 
1
+ <?php if ($this->isEnabled() && $this->isAlertEnabled() && $this->getRetailerId()): ?>
2
+ <div class="cue-learnmore" data-imisku="<?php echo $this->getSku() ?>" style="margin-top: 10px;" data-cid="<?php echo $this->getCID(); ?>"></div>
3
+ <?php endif; ?>
app/design/frontend/base/default/template/cueconnect/collection.phtml ADDED
File without changes
app/design/frontend/base/default/template/cueconnect/customer/._form ADDED
Binary file
app/design/frontend/base/default/template/cueconnect/customer/form/._forgotpassword.phtml ADDED
Binary file
app/design/frontend/base/default/template/cueconnect/customer/form/._login.phtml ADDED
Binary file
app/design/frontend/base/default/template/cueconnect/customer/form/._register.phtml ADDED
Binary file
app/design/frontend/base/default/template/cueconnect/customer/form/forgotpassword.phtml ADDED
@@ -0,0 +1,54 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magentocommerce.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magentocommerce.com for more information.
20
+ *
21
+ * @category design
22
+ * @package base_default
23
+ * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <div class="page-title">
28
+ <h1><?php echo $this->__('Forgot Your Password?') ?></h1>
29
+ </div>
30
+ <?php echo $this->getMessagesBlock()->getGroupedHtml() ?>
31
+ <form action="<?php echo $this->getUrl('*/*/forgotpasswordpost') ?>" method="post" id="form-validate">
32
+ <div class="fieldset">
33
+ <h2 class="legend"><?php echo $this->__('Retrieve your password here') ?></h2>
34
+ <p><?php echo $this->__('Please enter your email address below. You will receive a link to reset your password.') ?></p>
35
+ <ul class="form-list">
36
+ <li>
37
+ <label for="email_address" class="required"><em>*</em><?php echo $this->__('Email Address') ?></label>
38
+ <div class="input-box">
39
+ <input type="text" name="email" alt="email" id="email_address" class="input-text required-entry validate-email" value="<?php echo $this->htmlEscape($this->getEmailValue()) ?>" />
40
+ </div>
41
+ </li>
42
+ </ul>
43
+ </div>
44
+ <div class="buttons-set">
45
+ <p class="required"><?php echo $this->__('* Required Fields') ?></p>
46
+ <p class="back-link"><a href="#" onclick="hideRecoverPasswordForm();return false;"><small>&laquo; </small><?php echo $this->__('Back to Login') ?></a></p>
47
+ <button type="submit" title="<?php echo $this->__('Submit') ?>" class="button"><span><span><?php echo $this->__('Submit') ?></span></span></button>
48
+ </div>
49
+ </form>
50
+ <script type="text/javascript">
51
+ //<![CDATA[
52
+ var dataForm = new VarienForm('form-validate', true);
53
+ //]]>
54
+ </script>
app/design/frontend/base/default/template/cueconnect/customer/form/login.phtml ADDED
@@ -0,0 +1,74 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magentocommerce.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magentocommerce.com for more information.
20
+ *
21
+ * @category design
22
+ * @package base_default
23
+ * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <?php
28
+ /**
29
+ * Customer login form template
30
+ *
31
+ * @see Mage_Customer_Block_Form_Login
32
+ */
33
+ ?>
34
+ <div class="account-login">
35
+ <?php echo $this->getMessagesBlock()->getGroupedHtml() ?>
36
+ <form action="<?php echo $this->getPostActionUrl() ?>" method="post" id="login-form">
37
+ <?php echo $this->getBlockHtml('formkey'); ?>
38
+ <div class="col1-set">
39
+ <div class="col-1 registered-users">
40
+ <div class="content">
41
+ <p><?php echo $this->__('If you have an account with us, please log in.') ?></p>
42
+ <ul class="form-list">
43
+ <li>
44
+ <label for="email" class="required"><em>*</em><?php echo $this->__('Email Address') ?></label>
45
+ <div class="input-box">
46
+ <input type="text" name="login[username]" value="<?php echo $this->htmlEscape($this->getUsername()) ?>" id="email" class="input-text required-entry validate-email" title="<?php echo $this->__('Email Address') ?>" />
47
+ </div>
48
+ </li>
49
+ <li>
50
+ <label for="pass" class="required"><em>*</em><?php echo $this->__('Password') ?></label>
51
+ <div class="input-box">
52
+ <input type="password" name="login[password]" class="input-text required-entry validate-password" id="pass" title="<?php echo $this->__('Password') ?>" />
53
+ </div>
54
+ </li>
55
+ </ul>
56
+ <p class="required"><?php echo $this->__('* Required Fields') ?></p>
57
+ </div>
58
+ </div>
59
+ </div>
60
+ <div class="col1-set">
61
+ <div class="col-1 registered-users">
62
+ <div class="buttons-set">
63
+ <a href="#" onclick="showRecoverPasswordForm();return false;" class="f-left"><?php echo $this->__('Forgot Your Password?') ?></a>
64
+ <button type="submit" class="button" title="<?php echo $this->__('Login') ?>" name="send" id="send2"><span><span><?php echo $this->__('Login') ?></span></span></button>
65
+ </div>
66
+ </div>
67
+ </div>
68
+ </form>
69
+ <script type="text/javascript">
70
+ //<![CDATA[
71
+ var dataForm = new VarienForm('login-form', true);
72
+ //]]>
73
+ </script>
74
+ </div>
app/design/frontend/base/default/template/cueconnect/customer/form/register.phtml ADDED
@@ -0,0 +1,182 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magentocommerce.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magentocommerce.com for more information.
20
+ *
21
+ * @category design
22
+ * @package base_default
23
+ * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <?php
28
+ /**
29
+ * Create account form template
30
+ *
31
+ * @see Mage_Customer_Block_Form_Register
32
+ */
33
+ ?>
34
+ <div class="account-create">
35
+ <?php echo $this->getChildHtml('form_fields_before')?>
36
+ <?php echo $this->getMessagesBlock()->getGroupedHtml() ?>
37
+ <form action="<?php echo $this->getPostActionUrl() ?>" method="post" id="form-validate">
38
+ <div class="fieldset">
39
+ <input type="hidden" name="success_url" value="<?php echo $this->getSuccessUrl() ?>" />
40
+ <input type="hidden" name="error_url" value="<?php echo $this->getErrorUrl() ?>" />
41
+ <input name="form_key" type="hidden" value="<?php echo Mage::getSingleton('core/session')->getFormKey() ?>" />
42
+ <h2 class="legend"><?php echo $this->__('Personal Information') ?></h2>
43
+ <ul class="form-list">
44
+ <li class="fields">
45
+ <?php echo $this->getLayout()->createBlock('customer/widget_name')->setObject($this->getFormData())->setForceUseCustomerAttributes(true)->toHtml() ?>
46
+ </li>
47
+ <li>
48
+ <label for="email_address" class="required"><em>*</em><?php echo $this->__('Email Address') ?></label>
49
+ <div class="input-box">
50
+ <input type="text" name="email" id="email_address" value="<?php echo $this->htmlEscape($this->getFormData()->getEmail()) ?>" title="<?php echo $this->__('Email Address') ?>" class="input-text validate-email required-entry" />
51
+ </div>
52
+ </li>
53
+ <?php if ($this->isNewsletterEnabled()): ?>
54
+ <li class="control">
55
+ <div class="input-box">
56
+ <input type="checkbox" name="is_subscribed" title="<?php echo $this->__('Sign Up for Newsletter') ?>" value="1" id="is_subscribed"<?php if($this->getFormData()->getIsSubscribed()): ?> checked="checked"<?php endif; ?> class="checkbox" />
57
+ </div>
58
+ <label for="is_subscribed"><?php echo $this->__('Sign Up for Newsletter') ?></label>
59
+ </li>
60
+ <?php endif ?>
61
+ <?php $_dob = $this->getLayout()->createBlock('customer/widget_dob') ?>
62
+ <?php if ($_dob->isEnabled()): ?>
63
+ <li><?php echo $_dob->setDate($this->getFormData()->getDob())->toHtml() ?></li>
64
+ <?php endif ?>
65
+ <?php $_taxvat = $this->getLayout()->createBlock('customer/widget_taxvat') ?>
66
+ <?php if ($_taxvat->isEnabled()): ?>
67
+ <li><?php echo $_taxvat->setTaxvat($this->getFormData()->getTaxvat())->toHtml() ?></li>
68
+ <?php endif ?>
69
+ <?php $_gender = $this->getLayout()->createBlock('customer/widget_gender') ?>
70
+ <?php if ($_gender->isEnabled()): ?>
71
+ <li><?php echo $_gender->setGender($this->getFormData()->getGender())->toHtml() ?></li>
72
+ <?php endif ?>
73
+ </ul>
74
+ </div>
75
+ <?php if($this->getShowAddressFields()): ?>
76
+ <div class="fieldset">
77
+ <input type="hidden" name="create_address" value="1" />
78
+ <h2 class="legend"><?php echo $this->__('Address Information') ?></h2>
79
+ <ul class="form-list">
80
+ <li class="fields">
81
+ <div class="field">
82
+ <label for="company"><?php echo $this->__('Company') ?></label>
83
+ <div class="input-box">
84
+ <input type="text" name="company" id="company" value="<?php echo $this->htmlEscape($this->getFormData()->getCompany()) ?>" title="<?php echo $this->__('Company') ?>" class="input-text" />
85
+ </div>
86
+ </div>
87
+ <div class="field">
88
+ <label for="telephone" class="required"><em>*</em><?php echo $this->__('Telephone') ?></label>
89
+ <div class="input-box">
90
+ <input type="text" name="telephone" id="telephone" value="<?php echo $this->htmlEscape($this->getFormData()->getTelephone()) ?>" title="<?php echo $this->__('Telephone') ?>" class="input-text required-entry" />
91
+ </div>
92
+ </div>
93
+ </li>
94
+ <li class="wide">
95
+ <label for="street_1" class="required"><em>*</em><?php echo $this->__('Street Address') ?></label>
96
+ <div class="input-box">
97
+ <input type="text" name="street[]" value="<?php echo $this->htmlEscape($this->getFormData()->getStreet(1)) ?>" title="<?php echo $this->__('Street Address') ?>" id="street_1" class="input-text required-entry" />
98
+ </div>
99
+ </li>
100
+ <?php for ($_i=2, $_n=$this->helper('customer/address')->getStreetLines(); $_i<=$_n; $_i++): ?>
101
+ <li class="wide">
102
+ <div class="input-box">
103
+ <input type="text" name="street[]" value="<?php echo $this->htmlEscape($this->getFormData()->getStreet($_i)) ?>" title="<?php echo $this->__('Street Address %s', $_i) ?>" id="street_<?php echo $_i?>" class="input-text" />
104
+ </div>
105
+ </li>
106
+ <?php endfor ?>
107
+ <li class="fields">
108
+ <div class="field">
109
+ <label for="city" class="required"><em>*</em><?php echo $this->__('City') ?></label>
110
+ <div class="input-box">
111
+ <input type="text" name="city" value="<?php echo $this->htmlEscape($this->getFormData()->getCity()) ?>" title="<?php echo $this->__('City') ?>" class="input-text required-entry" id="city" />
112
+ </div>
113
+ </div>
114
+ <div class="field">
115
+ <label for="region_id" class="required"><em>*</em><?php echo $this->__('State/Province') ?></label>
116
+ <div class="input-box">
117
+ <select id="region_id" name="region_id" title="<?php echo $this->__('State/Province') ?>" class="validate-select" style="display:none;">
118
+ <option value=""><?php echo $this->__('Please select region, state or province') ?></option>
119
+ </select>
120
+ <script type="text/javascript">
121
+ //<![CDATA[
122
+ $('region_id').setAttribute('defaultValue', "<?php echo $this->getFormData()->getRegionId() ?>");
123
+ //]]>
124
+ </script>
125
+ <input type="text" id="region" name="region" value="<?php echo $this->htmlEscape($this->getRegion()) ?>" title="<?php echo $this->__('State/Province') ?>" class="input-text" style="display:none;" />
126
+ </div>
127
+ </div>
128
+ </li>
129
+ <li class="fields">
130
+ <div class="field">
131
+ <label for="zip" class="required"><em>*</em><?php echo $this->__('Zip/Postal Code') ?></label>
132
+ <div class="input-box">
133
+ <input type="text" name="postcode" value="<?php echo $this->htmlEscape($this->getFormData()->getPostcode()) ?>" title="<?php echo $this->__('Zip/Postal Code') ?>" id="zip" class="input-text validate-zip-international required-entry" />
134
+ </div>
135
+ </div>
136
+ <div class="field">
137
+ <label for="country" class="required"><em>*</em><?php echo $this->__('Country') ?></label>
138
+ <div class="input-box">
139
+ <?php echo $this->getCountryHtmlSelect() ?>
140
+ </div>
141
+ </div>
142
+ </li>
143
+ </ul>
144
+ <input type="hidden" name="default_billing" value="1" />
145
+ <input type="hidden" name="default_shipping" value="1" />
146
+ </div>
147
+ <?php endif; ?>
148
+ <div class="fieldset">
149
+ <h2 class="legend"><?php echo $this->__('Login Information') ?></h2>
150
+ <ul class="form-list">
151
+ <li class="fields">
152
+ <div class="field">
153
+ <label for="password" class="required"><em>*</em><?php echo $this->__('Password') ?></label>
154
+ <div class="input-box">
155
+ <input type="password" name="password" id="password" title="<?php echo $this->__('Password') ?>" class="input-text required-entry validate-password" />
156
+ </div>
157
+ </div>
158
+ <div class="field">
159
+ <label for="confirmation" class="required"><em>*</em><?php echo $this->__('Confirm Password') ?></label>
160
+ <div class="input-box">
161
+ <input type="password" name="confirmation" title="<?php echo $this->__('Confirm Password') ?>" id="confirmation" class="input-text required-entry validate-cpassword" />
162
+ </div>
163
+ </div>
164
+ </li>
165
+ </ul>
166
+ </div>
167
+ <div class="buttons-set">
168
+ <p class="required"><?php echo $this->__('* Required Fields') ?></p>
169
+ <p class="back-link cue-secondary-button"><a href="#" class="back-link" onclick="cueShowSignin();return false;"><small>&laquo; </small><?php echo $this->__('Back') ?></a></p>
170
+
171
+ <button type="submit" title="<?php echo $this->__('Submit') ?>" class="button"><span><span><?php echo $this->__('Submit') ?></span></span></button>
172
+ </div>
173
+ </form>
174
+ <script type="text/javascript">
175
+ //<![CDATA[
176
+ var dataForm = new VarienForm('form-validate', true);
177
+ <?php if($this->getShowAddressFields()): ?>
178
+ new RegionUpdater('country', 'region', 'region_id', <?php echo $this->helper('directory')->getRegionJson() ?>, undefined, 'zip');
179
+ <?php endif; ?>
180
+ //]]>
181
+ </script>
182
+ </div>
app/design/frontend/base/default/template/cueconnect/elist.phtml ADDED
@@ -0,0 +1,173 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // CP
3
+ if (($this->getMode() == 2) && $this->getRetailerId() && $this->isEnabled()) :
4
+ // signed in so show elist
5
+ if ($this->getCustomerEmail()):
6
+ ?>
7
+ <iframe id="streamIFrame" name="streamIFrame" src="https://www.cueconnect.com/poweredby/<?php echo $this->getRetailerId() ?>/?origin=<?php echo Mage::getBaseUrl(); ?>&amp;version=embed&amp;from=stream&amp;email=<?php echo $this->getCustomerEmail() ?>" height="640px" width="100%" scrolling="no"></iframe>
8
+ <?php
9
+ // show prelogin
10
+ else:
11
+ ?>
12
+ <!-- BEGIN Cue e-List -->
13
+ <style>
14
+ iframe {border: none;}
15
+ #cue-magento-forms-container{
16
+ display: block;
17
+ width: 100%;
18
+ padding: 30px 0 100px 0;
19
+ margin: auto;
20
+ max-width: 1000px;
21
+ }
22
+ .cue-auth-and-info-container{
23
+ display: table;
24
+ width: 100%
25
+ }
26
+ .cue-auth-container{
27
+ display: table-cell;
28
+ width: 50%;
29
+ text-align: left;
30
+ }
31
+ .cue-info-container{
32
+ display: table-cell;
33
+ width: 50%;
34
+ text-align: left;
35
+ }
36
+ .cue-form-container{
37
+ width: 100%;
38
+ margin: auto;
39
+ }
40
+ .cue-form-container .account-login .content{
41
+ min-height: auto !important;
42
+ }
43
+ .cue-form-container .form-list .input-box {
44
+ width:90% ;
45
+ max-width:260px;
46
+ }
47
+ .cue-form-container .buttons-set {
48
+ margin-top: 0 !important;
49
+ background: #dee5e8;
50
+ }
51
+ .cue-forgot-pswd-container{
52
+ width: 100%;
53
+ margin: auto;
54
+ }
55
+ .cue-form-input{
56
+ width: 96% !important;
57
+ }
58
+ .cue-secondary-button{
59
+ border: none;
60
+ background-color: transparent;
61
+ }
62
+ #cue-show-signup{
63
+ padding: 20px 0;
64
+ width: 100%;
65
+ margin: auto;
66
+ }
67
+ .cue-title{
68
+ line-height: normal;
69
+ }
70
+ .cue-forgot-pswd{
71
+ display: inline-block;
72
+ margin: 10px 0;
73
+ }
74
+ @media screen and (max-width: 798px){
75
+ .cue-auth-container{
76
+ display: block;
77
+ width: 100%;
78
+ }
79
+ .cue-info-container{
80
+ display: block;
81
+ width: 100%;
82
+ }
83
+ }
84
+ </style>
85
+
86
+ <!-- user is not authenticated -->
87
+ <div id="cue-magento-forms-container">
88
+ <div class="cue-auth-and-info-container">
89
+ <div class="cue-info-container">
90
+ <div style="margin: auto;max-width: 400px;">
91
+ <h2 class="title cue-title">Welcome to My e-List</h2>
92
+
93
+ <p style="padding: 12px 0 12px 0;">Everything you care about in one place. Built just for you.</p>
94
+ <ul style="margin: auto;display: inline-block;text-align: left;padding: 0 0 0 20px;line-height: 2;">
95
+ <li>Wishlist items</li>
96
+ <li>Shares and Posts you want to remember</li>
97
+ <li>Price Alerts on items you care about</li>
98
+ <li>Special offers and rewards</li>
99
+ <li>Always on, always available</li>
100
+ </ul>
101
+ <p style="padding: 50px 0 50px 0;">Goodbye forgetting. Hello remembering</p>
102
+ </div>
103
+ </div>
104
+
105
+ <div class="cue-auth-container">
106
+ <!-- register form START -->
107
+ <div id="customer-register" class="cue-form-container" style="display: none;">
108
+ <div class="">
109
+ <div id="register" class="">
110
+ <h2 class="title cue-title">Create Account</h2>
111
+
112
+ <?php echo $this->getChildHtml('customer_form_register') ?>
113
+ </div><!-- #register -->
114
+ </div><!-- .row -->
115
+ </div><!-- #customer-register -->
116
+ <!-- register form END -->
117
+
118
+
119
+ <!-- login form START -->
120
+ <div id="customer-login" class="cue-form-container">
121
+ <div class="">
122
+ <div id="login" class="">
123
+ <h2 class="title cue-title">Login</h2>
124
+ <?php echo $this->getChildHtml('customer_form_login') ?>
125
+ </div>
126
+
127
+ <div id="recover-password" style="display:none;width: 100% !important;" class="cue-forgot-pswd-container">
128
+ <?php echo $this->getChildHtml('forgotPassword') ?>
129
+ </div>
130
+ </div>
131
+ </div>
132
+
133
+ <script type="text/javascript">
134
+ function showRecoverPasswordForm() {
135
+ document.getElementById('recover-password').style.display = 'block';
136
+ document.getElementById('login').style.display='none';
137
+ }
138
+
139
+ function hideRecoverPasswordForm() {
140
+ document.getElementById('recover-password').style.display = 'none';
141
+ document.getElementById('login').style.display = 'block';
142
+ }
143
+
144
+ if (window.location.hash == '#recover') { showRecoverPasswordForm() }
145
+ </script>
146
+ <!-- login form END -->
147
+
148
+ <p id="cue-show-signup" >Don't have an account? <a href="#" onclick="cueShowSignup();return false;">Sign up</a></p>
149
+
150
+ <script>
151
+ function cueShowSignup(){
152
+ document.getElementById('cue-show-signup').style.display = 'none';
153
+ document.getElementById('customer-login').style.display = 'none';
154
+ document.getElementById('customer-register').style.display = 'block';
155
+ console.log(this);
156
+ }
157
+
158
+ function cueShowSignin(){
159
+ document.getElementById('customer-register').style.display = 'none';
160
+ document.getElementById('customer-login').style.display = 'block';
161
+ document.getElementById('cue-show-signup').style.display = 'block';
162
+ }
163
+
164
+ var pid = <?php echo ($this->getRetailerId()) ? $this->getRetailerId() : 0 ; ?>;
165
+ </script>
166
+ </div>
167
+ </div>
168
+ </div>
169
+ <!-- END Cue e-List -->
170
+ <?php
171
+ endif;
172
+ endif;
173
+ ?>
app/design/frontend/base/default/template/cueconnect/favorite.phtml ADDED
@@ -0,0 +1,4 @@
 
 
 
 
1
+ <?php // Todo: Rename template file name ?>
2
+ <?php if ($this->isEnabled() && $this->isFavoriteEnabled() && $this->getRetailerId()): ?>
3
+ <div class="cue-cueit" data-imisku="<?php echo $this->getSku(); ?>" data-cid="<?php echo $this->getCID(); ?>"></div>
4
+ <?php endif; ?>
app/design/frontend/base/default/template/cueconnect/js.phtml ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php // Todo: Update the JS snippet code ?>
2
+ <?php if ($this->isEnabled() && $this->getRetailerId()): ?>
3
+ <script type="text/javascript">
4
+ function executeOnLoad(script) {
5
+ var script = script || this;
6
+ if (!script.readyState || script.readyState == "loaded" || script.readyState == "complete") {
7
+ CUE({'retailId': <?php echo $this->getRetailerId(); ?>, 'apiKey': '<?php echo $this->getApiKey(); ?>', 'cid': <?php echo $this->getCID(); ?>, 'path': '<?php echo $this->getElistPath() ?>'});
8
+ }
9
+ }
10
+ var scriptElement = document.createElement('script');
11
+ scriptElement.setAttribute('src', "https://stream.cueconnect.com/js/cue-seed.js");
12
+ scriptElement.setAttribute('onload', 'executeOnLoad.apply(this)');
13
+ scriptElement.setAttribute('onreadystatechange', 'executeOnLoad.apply(this)');
14
+ document.body.appendChild(scriptElement);
15
+ </script>
16
+ <?php endif; ?>
app/design/frontend/base/default/template/cueconnect/links.phtml ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magentocommerce.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magentocommerce.com for more information.
20
+ *
21
+ * @category design
22
+ * @package base_default
23
+ * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <?php
28
+ /**
29
+ * @deprecated after 1.4.0.1
30
+ */
31
+ ?>
32
+ <?php if($toplinks && is_array($toplinks)): ?>
33
+ <ul class="links">
34
+ <?php echo $this->getChildHtml() ?>
35
+ <?php foreach($toplinks as $_toplink): ?>
36
+ <li<?php if($_toplink['first']||$_toplink['last']): ?> class="<?php if($_toplink['first']): ?>first<?php endif; ?><?php if($_toplink['last']): ?> last<?php endif; ?>"<?php endif; ?> <?php echo $_toplink['liParams'] ?>><?php echo $_toplink['beforeText'] ?><a <?php echo $_toplink['aParams'] ?>><?php echo $_toplink['innerText'] ?></a><?php echo $_toplink['afterText'] ?></li>
37
+ <?php endforeach; ?>
38
+ </ul>
39
+ <?php endif; ?>
app/design/frontend/base/default/template/cueconnect/meta.phtml ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if ($this->isEnabled() && $this->getRetailerId()):
3
+ $productInfo = $this->getProductData();
4
+
5
+ if ($productInfo):
6
+ ?>
7
+ <meta name="cue:name" content="<?php echo $productInfo['name'] ?>" />
8
+ <meta name="cue:description" content="<?php echo $productInfo['description'] ?>" />
9
+ <meta name="cue:image_url" content="<?php echo $productInfo['picture'] ?>" />
10
+ <meta name="cue:sku" content="<?php echo $productInfo['sku'] ?>" />
11
+ <meta name="cue:brand" content="<?php echo $productInfo['brand'] ?>" />
12
+ <meta name="cue:url" content="<?php echo $productInfo['url'] ?>" />
13
+ <meta name="cue:price" content="<?php echo $productInfo['price'] ?>" />
14
+ <meta name="cue:currency" content="<?php echo $productInfo['currency'] ?>" />
15
+ <meta name="cue:product_type" content="" />
16
+ <?php
17
+ endif;
18
+ endif;
19
+ ?>
app/design/frontend/base/default/template/cueconnect/share.phtml ADDED
@@ -0,0 +1,3 @@
 
 
 
1
+ <?php if ($this->isEnabled() && $this->isObEnabled() && $this->getRetailerId()): ?>
2
+ <div class="cue-onebutton" style="margin-right: 15px; float: left;" data-imisku="<?php echo $this->getSku(); ?>" data-cid="<?php echo $this->getCID(); ?>"></div>
3
+ <?php endif; ?>
app/etc/modules/CueConnect_Cue.xml ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <config>
3
+ <modules>
4
+ <CueConnect_Cue>
5
+ <active>true</active>
6
+ <codePool>community</codePool>
7
+ </CueConnect_Cue>
8
+ </modules>
9
+ </config>
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Cue</name>
4
- <version>3.0.10</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/osl-3.0.php">Open Software License (OSL)</license>
7
  <channel>community</channel>
@@ -11,9 +11,9 @@
11
  <notes>- removed catalog sync&#xD;
12
  - bug fixes.</notes>
13
  <authors><author><name>Cue Connect</name><user>hrais</user><email>hrais@cueconnect.com</email></author></authors>
14
- <date>2016-06-23</date>
15
- <time>16:01:21</time>
16
- <contents><target name="magecommunity"><dir name="CueConnect"><dir name="Cue"><dir name="sql"><dir name="cueconnect_setup"><file name="mysql4-install-3.0.10.php" hash="35e874c8e139497043b0e50ea6cf2fa0"/><file name="mysql4-upgrade-3.0.9-3.0.10.php" hash="54cfba6c455bebb9e614013642fb8fdd"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="cueconnect.xml" hash=""/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="CueConnect_Cue.xml" hash=""/></dir></target></contents>
17
  <compatible/>
18
  <dependencies><required><php><min>5.1.0</min><max>5.6.22</max></php><extension><name>Core</name><min/><max/></extension></required></dependencies>
19
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Cue</name>
4
+ <version>3.0.11</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/osl-3.0.php">Open Software License (OSL)</license>
7
  <channel>community</channel>
11
  <notes>- removed catalog sync&#xD;
12
  - bug fixes.</notes>
13
  <authors><author><name>Cue Connect</name><user>hrais</user><email>hrais@cueconnect.com</email></author></authors>
14
+ <date>2016-06-27</date>
15
+ <time>18:11:16</time>
16
+ <contents><target name="mageetc"><dir name="modules"><file name="CueConnect_Cue.xml" hash="6bd6cf8a7f9e647dc5729e8b0a77cfa1"/></dir></target><target name="magecommunity"><dir name="CueConnect"><dir name="Cue"><dir name="Block"><dir name="Adminhtml"><dir name="Catalog"><file name="Product.php" hash="da20e73d9d6c46f8e9b8f2e0b130b69a"/></dir><file name="Index.php" hash="0c40f5f733dd6ecd2dd5a0453d1df14b"/><file name="Progress.php" hash="9767500cf8507eacd58c6b441a23d7c1"/><dir name="System"><dir name="Config"><dir name="Form"><dir name="Field"><file name="Readonly.php" hash="847f56fbe8ce7b3334b8831981aff5fb"/></dir></dir><file name=".DS_Store" hash="194577a7e20bdcc7afbb718f502c134c"/><file name="._.DS_Store" hash="7d40ce63be1b295f209e8b80541f880d"/></dir></dir></dir><file name="Alert.php" hash="416cb0dba8485a32feb55306f2004664"/><file name="BaseCueBlock.php" hash="762bd5f6105ae2c82bb06888ac7e079d"/><file name="Collection.php" hash="34049e05086f52a1b74bcf7046f8a4f8"/><file name="Elist.php" hash="7832410c357470a083cf3d3679ab376d"/><file name="Favorite.php" hash="dd4bd0736e3cfea4d87e366fb0e228b3"/><file name="Js.php" hash="fa423dff429d99b1969fe9b2932be095"/><file name="Meta.php" hash="c16b07f77ac3c1ccb6fdcbcfc17ea703"/><file name="Navigation.php" hash="260d23cb79f3ecaafd099dfdc54f2440"/><file name="Share.php" hash="c0a2dd7fcc9a3537718fe811d1b4d7df"/></dir><dir name="Helper"><file name="Data.php" hash="b6483a7a9d4bd1025aaeec93840145a2"/><dir name="Wishlist"><file name="Data.php" hash="df7c81da4f905c5cfdc9adf18b2918f7"/></dir></dir><dir name="Model"><file name="CueConnect.php" hash="f87201b50f23e93a3c34f995de8a2fe5"/><file name="Demand.php" hash="e1d627c3207a364c861faf8decbcd7cc"/><dir name="Mysql4"><dir name="Demand"><file name="Collection.php" hash="4bd64ac5500aacdd861c05161bfdea60"/></dir><file name="Demand.php" hash="6b3b0d54f7d15fb55d47773ea96690d8"/><dir name="UserSync"><file name="Collection.php" hash="2f70172ef8506195355d0f34fa963de7"/></dir><file name="UserSync.php" hash="29fbf5674f15ba2a8db2c4f79545431c"/><dir name="WishlistSync"><file name="Collection.php" hash="c7ae0dc2a51c0d6e26360cba2c82c685"/></dir><file name="WishlistSync.php" hash="18079cce3dcf1129dd412d9de5199351"/></dir><file name="Observer.php" hash="b47e9899847de6d7eba5b61037eabff2"/><file name="Options.php" hash="6f312d0f07fb27129c6bb8eb83fdda8c"/><file name="UserSync.php" hash="45dc5508786c1db53088f4257cd5e3bd"/><file name="WishlistSync.php" hash="4b77f0097f4ed05ea63058cc1099ce66"/><file name=".CueConnect.php.swp" hash="6563f1a641f3083c5dceca707cd9f034"/><file name=".Inmarkit.php.swp" hash="1e57142b5a69936aab17cbc6fabdd16a"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="SyncController.php" hash="c9cd0b21c257205cae0f09044ba12333"/></dir><file name="ElistController.php" hash="640114fb4c0db81cd8d557a53037d56f"/></dir><dir name="etc"><file name="config.xml" hash="43c6ff20853b3bef82082a10419df52e"/><file name="system.xml" hash="2d0b7c73ca99f2f64d7a498d6027b2c8"/><file name=".config.xml.swp" hash="7c3ff1e6ecfc9385b61e2d46e4b5665b"/></dir><dir name="sql"><dir name="cueconnect_setup"><file name="mysql4-install-3.0.9.php" hash="35e874c8e139497043b0e50ea6cf2fa0"/><file name="mysql4-upgrade-3.0.8-3.0.9.php" hash="54cfba6c455bebb9e614013642fb8fdd"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="cueconnect.xml" hash="3e6420fa5d4300556155a8cbb02735de"/></dir><dir name="template"><dir name="cueconnect"><file name="alert.phtml" hash="1b84532e255e6c4cfba9881e48013896"/><file name="collection.phtml" hash="d41d8cd98f00b204e9800998ecf8427e"/><dir name="customer"><dir name="form"><file name="forgotpassword.phtml" hash="6cc627d8f6f4224965c00d4f7c2fb939"/><file name="login.phtml" hash="830203b7f6a8d8647a3812b51ac45721"/><file name="register.phtml" hash="b23b45199434202d0c7f582e804fb8c1"/><file name="._forgotpassword.phtml" hash="be96eb95d99175b5d949f7522b817acf"/><file name="._login.phtml" hash="c3985224f945021e0b551663a0777474"/><file name="._register.phtml" hash="1887ac812b9ec145125dd7d880a52d64"/></dir><file name="._form" hash="8b450f16a603208d111eb82066ebf4da"/></dir><file name="elist.phtml" hash="3ed94664554464a5fca29422c7f807d9"/><file name="favorite.phtml" hash="89f0bca645d6f81e2a3c3cf375c5d44e"/><file name="js.phtml" hash="4c48daf984c8598263f29370bb0aad2a"/><file name="links.phtml" hash="b5567bf97bd53184fb84e23c73ab4778"/><file name="meta.phtml" hash="e58be8efa734b25a51716f745fd176b3"/><file name="share.phtml" hash="781d6414c1b41f3bdb2a5befc8817463"/><file name="._alert.phtml" hash="0d8035019776f8a22ac30d1d777d85f7"/><file name="._collection.phtml" hash="5f1b28e5f96c323e841435866397a2b2"/><file name="._customer" hash="3c79ef325dc3238c90a5f4859e12e4f4"/><file name="._elist.phtml" hash="a522791cf7aceb3203a1cae3709d1a29"/><file name="._favorite.phtml" hash="f22bbcd7505590884d3ecb8d694e4107"/><file name="._js.phtml" hash="509cf56063f3e46bd13b91d0265d5424"/><file name="._links.phtml" hash="f57f7ec8ab261aebddeb44b469585293"/><file name="._meta.phtml" hash="ce401a5bf24cb6796595406e718e7790"/><file name="._share.phtml" hash="ef2618187f061333b7f4b75d4bce2942"/></dir></dir></dir></dir></dir></target></contents>
17
  <compatible/>
18
  <dependencies><required><php><min>5.1.0</min><max>5.6.22</max></php><extension><name>Core</name><min/><max/></extension></required></dependencies>
19
  </package>