increasingly_key - Version 1.0.8

Version Notes

Placeholder for bundle display above product details.
Removed final price attribute while importing the product data.

Download this release

Release Info

Developer Increasingly
Extension increasingly_key
Version 1.0.8
Comparing to
See all releases


Code changes from version 1.0.7 to 1.0.8

app/code/community/Increasingly/Analytics/Helper/Data.php~ DELETED
@@ -1,351 +0,0 @@
1
- <?php
2
- /**
3
- * Magento
4
- *
5
- * NOTICE OF LICENSE
6
- *
7
- * This source file is subject to the Open Software License (OSL 3.0)
8
- * that is bundled with this package in the file LICENSE.txt.
9
- * It is also available through the world-wide-web at this URL:
10
- * http://opensource.org/licenses/osl-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 Increasingly
22
- * @package Increasingly_Analytics
23
- * @author Increasingly Pvt Ltd
24
- * @copyright Copyright (c) 2015-2016 Increasingly Ltd (http://www.increasingly.co)
25
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
26
- */
27
- /**
28
- * Helper class provides api call functionality and building order details, track events etc.
29
- */
30
- class Increasingly_Analytics_Helper_Data extends Mage_Core_Helper_Abstract
31
- {
32
- /**
33
- * Path to store config installation ID.
34
- */
35
- const XML_PATH_INSTALLATION_ID = 'increasingly_analytics/installation/id';
36
-
37
- /**
38
- * Path to store config Increasingly product image version.
39
- */
40
- const XML_PATH_IMAGE_VERSION = 'increasingly_analytics/image_options/image_version';
41
-
42
- /**
43
- * @var string the name of the cookie where the Increasingly ID can be found.
44
- */
45
- const COOKIE_NAME = '2c_cId';
46
-
47
- /**
48
- * @var string the name of the cookie where the Increasingly ID can be found.
49
- */
50
- const VISITOR_HASH_ALGO = 'sha256';
51
- /**
52
- * Get session instance
53
- *
54
- * @return Mage_Core_Model_Session
55
- */
56
- public function getSession()
57
- {
58
- return Mage::getSingleton('core/session');
59
- }
60
-
61
- /**
62
- * Check if increasingly module is enabled
63
- *
64
- * @return boolean
65
- */
66
- public function isEnabled()
67
- {
68
- return Mage::getStoreConfig('increasingly_analytics/settings/enable');
69
- }
70
-
71
- /**
72
- * Get API Token from configuration
73
- *
74
- * @return string
75
- */
76
- public function getApiToken()
77
- {
78
- return Mage::getStoreConfig('increasingly_analytics/settings/api_key');
79
- }
80
-
81
- /**
82
- * Get API Secret from configuration
83
- *
84
- * @return string
85
- */
86
- public function getApiSecret()
87
- {
88
- return Mage::getStoreConfig('increasingly_analytics/settings/api_secret');
89
- }
90
-
91
- /**
92
- * Add event for tracking
93
- *
94
- */
95
- public function addEvent($method, $type, $data)
96
- {
97
- $event_data = array();
98
-
99
- if ($this->getSession()->getData(Increasingly_Analytics_Block_Track::DATA_KEY) != '')
100
- {
101
- $event_data = (array)$this->getSession()->getData(Increasingly_Analytics_Block_Track::DATA_KEY);
102
- }
103
-
104
- $version = (string)Mage::getConfig()->getModuleConfig("Increasingly_Analytics")->version;
105
-
106
- $currentEvent = array(
107
- 'event_data' => $data,
108
- 'event_type' => $type,
109
- 'method' => $method,
110
- 'platform' => 'Magento ' . Mage::getEdition() . ' ' . Mage::getVersion(),
111
- 'token' => $this->getApiToken(),
112
- 'version' => $version
113
- );
114
-
115
- array_push($event_data, $currentEvent);
116
- $this->getSession()->setData(Increasingly_Analytics_Block_Track::DATA_KEY, $event_data);
117
- }
118
-
119
- /**
120
- * Get order details and sort them
121
- * @param Mage_Sales_Model_Order $order
122
- * @return array
123
- */
124
- public function buildOrderDetailsData($order)
125
- {
126
- $priceFormatter = Mage::helper('increasingly_analytics/PriceFormatter');
127
- $data = array(
128
- 'order_id' => $order->getIncrementId(),
129
- 'order_status' => $order->getStatus(),
130
- 'order_amount' => $priceFormatter->format($order->getGrandTotal()),
131
- 'shipping_amount' => $priceFormatter->format($order->getShippingAmount()),
132
- 'tax_amount' => $priceFormatter->format($order->getTaxAmount()),
133
- 'items' => array(),
134
- 'shipping_method' => $order->getShippingDescription(),
135
- 'currency_code' => $order->getOrderCurrencyCode(),
136
- 'payment_method' => $order->getPayment()->getMethodInstance()->getTitle()
137
- );
138
-
139
- if($order->getCustomerIsGuest()){
140
- $data['customer_email'] = $order->getCustomerEmail();
141
- $data['customer_first_name'] = $order->getCustomerFirstname();
142
- $data['customer_last_name'] = $order->getCustomerLastname();
143
- $data['customer_name'] = $order->getCustomerFirstname(). ' '. $order->getCustomerLastname();
144
- }
145
- else {
146
- $data['customer_email'] = $order->getCustomerEmail();
147
- $data['customer_first_name'] = $order->getBillingAddress()->getFirstname();
148
- $data['customer_last_name'] = $order->getBillingAddress()->getLastname();
149
- $data['customer_name'] = $order->getBillingAddress()->getName();
150
- }
151
- if ($order->getDiscountAmount()) {
152
- $data['discount_amount'] = $priceFormatter->format($order->getDiscountAmount());
153
- }
154
- if ($order->getCouponCode()) {
155
- $data['coupons'] = $order->getCouponCode();
156
- }
157
- if($order->getRemoteIp()){
158
- $data['user_ip'] = $order->getRemoteIp();
159
- }
160
- if ($order->getCreatedAt()) {
161
- $data['order_time'] = $order->getCreatedAt();
162
- }
163
- foreach ($order->getAllItems() as $item)
164
- {
165
- $dataItem = array(
166
- 'product_id' => $item->getProductId(),
167
- 'product_price' => $priceFormatter->format($item->getPrice()) ? $priceFormatter->format($item->getPrice()) :
168
- $priceFormatter->format($item->getProduct()->getFinalPrice()),
169
- 'product_name' => $item->getName(),
170
- 'product_url' => $item->getProduct()->getProductUrl(),
171
- 'product_sku' => $item->getSku(),
172
- 'qty' => (int)$item->getQtyOrdered(),
173
- 'product_type' => $item->getProductType()
174
- );
175
- $data['items'][] = $dataItem;
176
- }
177
-
178
- $data['bundles'] = $this->formBundleJson();
179
- return $data;
180
- }
181
-
182
- /**Form json data for sending the bundle details to the Increasingly API
183
- **
184
- */
185
- public function formBundleJson(){
186
- try {
187
- $bundleData = [];
188
- $cookieValue = Mage::getModel('core/cookie')->get('ivid');
189
- $userBundleCollection = Mage::getModel('increasingly_analytics/bundle')->getCollection()
190
- ->addFieldToFilter('increasingly_visitor_id',$cookieValue);
191
- foreach($userBundleCollection as $userBundle){
192
- $userBundle->getBundleId();
193
- $userBundle->getDiscountPrice();
194
- $userBundle->getTotalPrice();
195
- array_push($bundleData,
196
- array('id' => $userBundle->getBundleId(),
197
- 'discountPrice' => $userBundle->getDiscountPrice(),
198
- 'totalPrice' => $userBundle->getTotalPrice()
199
- ));
200
- }
201
- }
202
- catch (Exception $e)
203
- {
204
- Mage::log("Increasingly form bundle json- " . $e->getMessage(), null, 'Increasingly_Analytics.log');
205
- }
206
- return $bundleData;
207
- }
208
-
209
- /**Delete bundle when the products in the cart are deleted
210
- **
211
- */
212
- public function deleteBundleOnProductDeleteFromCart($product_id){
213
- try {
214
-
215
- $cookieValue = Mage::getModel('core/cookie')->get('ivid');
216
- $userBundleCollection = Mage::getModel('increasingly_analytics/bundle')->getCollection()->addFieldToFilter('increasingly_visitor_id',$cookieValue);
217
-
218
- if(count($userBundleCollection) >= 1){
219
-
220
- foreach($userBundleCollection as $bundle){
221
-
222
- $isProductInBundle = in_array($product_id, explode(',',$bundle->getProductIds()));
223
-
224
- if(!is_null($isProductInBundle) && !empty($isProductInBundle) && $isProductInBundle == true)
225
- {
226
- $userBundle = Mage::getModel('increasingly_analytics/bundle');
227
- $userBundle->setId($bundle->getId())->delete();
228
- }
229
-
230
- }
231
- }
232
- }
233
- catch (Exception $e)
234
- {
235
- Mage::log("Increasingly delete bundle on delete from cart- " . $e->getMessage(), null, 'Increasingly_Analytics.log');
236
- }
237
-
238
- }
239
-
240
- /**Delete bundle when all the items in the cart are deleted
241
- **
242
- */
243
- public function deleteBundleOnEmptyCart($quote){
244
- try {
245
- $cookieValue = Mage::getModel('core/cookie')->get('ivid');
246
- $userBundleCollection = Mage::getModel('increasingly_analytics/bundle')->getCollection()->addFieldToFilter('increasingly_visitor_id',$cookieValue);
247
- $productIds = explode(',', $userBundle->getProductIds);
248
- if($quote->getItemsCount() == 0 && count($userBundleCollection) >= 0) {
249
- foreach ($userBundleCollection as $userBundle) {
250
- $userBundle->delete();
251
-
252
- }
253
- }
254
- }
255
- catch (Exception $e)
256
- {
257
- Mage::log("Increasingly delete bundle on emptyCart- " . $e->getMessage(), null, 'Increasingly_Analytics.log');
258
- }
259
-
260
- }
261
-
262
- /**
263
- * Sends event data to increasingly through API
264
- */
265
- public function increasinglyApi($importData,$event_type,$method,$api_token,$api_secret)
266
- { Mage::log("Server call".$event_type, null, 'Increasingly_Analytics.log');
267
- $result = '';
268
- try {
269
- $version = (string)Mage::getConfig()->getModuleConfig("Increasingly_Analytics")->version;
270
- $data = array(
271
- 'event_data' => $importData,
272
- 'event_type'=> $event_type,
273
- 'method' => $method,
274
- 'platform' => 'Magento ' . Mage::getEdition() . ' ' . Mage::getVersion(),
275
- 'token' => $api_token,
276
- 'version' => $version
277
- );
278
- // sort data
279
- ksort($data);
280
- $encodedData = base64_encode(Mage::helper('core')->jsonEncode($data));
281
- $signature = md5($encodedData.$api_secret);
282
- $url = 'http://localhost:8087/ImportData';
283
- $client = new Varien_Http_Client($url);
284
-
285
- $postData = array(
286
- 'signature' => $signature,
287
- 'eventData' => $encodedData
288
- );
289
- $jsonData = json_encode($postData);
290
- $client->setRawData($jsonData, 'application/json');
291
- $response = $client->request('POST');
292
- $result = json_decode($response->getBody());
293
-
294
- if ($response->isError()) {
295
- Mage::log($response->getBody(), null, 'Increasingly_Analytics.log');
296
- }
297
-
298
- }
299
- catch (Exception $e)
300
- {
301
- Mage::log("Increasingly api call- " . $e->getMessage(), null, 'Increasingly_Analytics.log');
302
- }
303
- return $result;
304
- }
305
-
306
- /**
307
- * Builds a tagging string of the given category including all its parent
308
- * categories.
309
- * The categories are sorted by their position in the category tree path.
310
- *
311
- * @param Mage_Catalog_Model_Category $category the category model.
312
- *
313
- * @return string
314
- */
315
- public function buildCategoryString($category)
316
- {
317
- $data = array();
318
- if ($category instanceof Mage_Catalog_Model_Category) {
319
- /** @var $categories Mage_Catalog_Model_Category[] */
320
- $categories = $category->getParentCategories();
321
- $path = $category->getPathInStore();
322
- $ids = array_reverse(explode(',', $path));
323
- foreach ($ids as $id) {
324
- if (isset($categories[$id]) && $categories[$id]->getName()) {
325
- $data[] = $categories[$id]->getId();
326
- }
327
- }
328
- }
329
- if (!empty($data)) {
330
- return DS . implode(DS, $data);
331
- } else {
332
- return '';
333
- }
334
- }
335
-
336
- /**
337
- * Return the product image version to include in product tagging.
338
- *
339
- * @param Mage_Core_Model_Store|null $store the store model or null.
340
- *
341
- * @return string
342
- */
343
- public function getProductImageVersion($store = null)
344
- {
345
- return Mage::getStoreConfig(self::XML_PATH_IMAGE_VERSION, $store);
346
- }
347
-
348
-
349
-
350
-
351
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Increasingly/Analytics/Model/Observer.php CHANGED
@@ -103,7 +103,7 @@ class Increasingly_Analytics_Model_Observer
103
  $data = array(
104
  'product_id' => $product->getId(),
105
  'product_name' => $product->getName(),
106
- 'product_price' => $priceFormatter->format($product->getFinalPrice()),
107
  'product_url' => $product->getProductUrl(),
108
  'product_sku' => $product->getSku(),
109
  );
@@ -216,11 +216,11 @@ class Increasingly_Analytics_Model_Observer
216
  if ($cartProduct->isGrouped() || $cartProduct->isConfigurable()) {
217
  $product = Mage::getModel('catalog/product')->load($productId);
218
 
219
- $data['product_price'] = $priceFormatter->format($product->getFinalPrice());
220
  $data['option_product_id'] = $product->getId();
221
  $data['option_product_sku'] = $product->getSku();
222
  $data['option_product_name'] = $product->getName();
223
- $data['option_product_price'] = $priceFormatter->format($product->getFinalPrice());
224
  }
225
 
226
  if(Mage::getSingleton('customer/session')->isLoggedIn()) {
103
  $data = array(
104
  'product_id' => $product->getId(),
105
  'product_name' => $product->getName(),
106
+ 'product_price' => $priceFormatter->format($product->getPrice()),
107
  'product_url' => $product->getProductUrl(),
108
  'product_sku' => $product->getSku(),
109
  );
216
  if ($cartProduct->isGrouped() || $cartProduct->isConfigurable()) {
217
  $product = Mage::getModel('catalog/product')->load($productId);
218
 
219
+ $data['product_price'] = $priceFormatter->format($product->getPrice());
220
  $data['option_product_id'] = $product->getId();
221
  $data['option_product_sku'] = $product->getSku();
222
  $data['option_product_name'] = $product->getName();
223
+ $data['option_product_price'] = $priceFormatter->format($product->getPrice());
224
  }
225
 
226
  if(Mage::getSingleton('customer/session')->isLoggedIn()) {
app/code/community/Increasingly/Analytics/Model/Observer.php~ DELETED
@@ -1,545 +0,0 @@
1
- <?php
2
- /**
3
- * Magento
4
- *
5
- * NOTICE OF LICENSE
6
- *
7
- * This source file is subject to the Open Software License (OSL 3.0)
8
- * that is bundled with this package in the file LICENSE.txt.
9
- * It is also available through the world-wide-web at this URL:
10
- * http://opensource.org/licenses/osl-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 Increasingly
22
- * @package Increasingly_Analytics
23
- * @author Increasingly Pvt Ltd
24
- * @copyright Copyright (c) 2015-2016 Increasingly Ltd (http://www.increasingly.co)
25
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
26
- */
27
- /**
28
- * Catch events and track them to increasingly api
29
- *
30
- */
31
- class Increasingly_Analytics_Model_Observer
32
- {
33
- /**
34
- * Identify customer after login
35
- *
36
- * @param Varien_Event_Observer $observer
37
- * @return void
38
- */
39
- public function customerLogin(Varien_Event_Observer $observer)
40
- {
41
- try
42
- {
43
- $helper = Mage::helper('increasingly_analytics');
44
-
45
- if ($helper->isEnabled())
46
- {
47
- $customer = $observer->getEvent()->getCustomer();
48
- $data = array(
49
- 'customer_email' => $customer->getEmail(),
50
- 'customer_first_name' => $customer->getFirstname(),
51
- 'customer_last_name' => $customer->getLastname(),
52
- 'customer_name' => $customer->getName()
53
- );
54
-
55
- $helper->addEvent('track', 'login',$data);
56
- }
57
- }
58
- catch(Exception $e)
59
- {
60
- Mage::log("Customer login tracking - " . $e->getMessage(), null, 'Increasingly_Analytics.log');
61
- }
62
- }
63
-
64
- /**
65
- * Track page views
66
- */
67
- public function trackPageView(Varien_Event_Observer $observer)
68
- {
69
- try
70
- {
71
- $helper = Mage::helper('increasingly_analytics');
72
- $priceFormatter = Mage::helper('increasingly_analytics/PriceFormatter');
73
-
74
- if ($helper->isEnabled())
75
- {
76
- $action = (string)$observer->getEvent()->getAction()->getFullActionName();
77
-
78
- if ($this->_isRejected($action)) {
79
- return;
80
- }
81
-
82
- // homepage page
83
- if ($action == 'cms_index_index' || $action == 'cms_page_view') {
84
- $title = Mage::getSingleton('cms/page')->getTitle();
85
- $data = array('page_title' => $title);
86
- $helper->addEvent('track', 'home_page_visit', $data);
87
- return;
88
- }
89
-
90
- // category view page
91
- if($action == 'catalog_category_view') {
92
- $category = Mage::registry('current_category');
93
- $data = array(
94
- 'category_id' => $category->getId(),
95
- 'category_name' => $category->getName()
96
- );
97
- $helper->addEvent('track', 'category_page_visit', $data);
98
- return;
99
- }
100
- // product view page
101
- if ($action == 'catalog_product_view') {
102
- $product = Mage::registry('current_product');
103
- $data = array(
104
- 'product_id' => $product->getId(),
105
- 'product_name' => $product->getName(),
106
- 'product_price' => $priceFormatter->format($product->getFinalPrice()),
107
- 'product_url' => $product->getProductUrl(),
108
- 'product_sku' => $product->getSku(),
109
- );
110
-
111
- if($product->getImage())
112
- $data['product_image_url'] = (string)Mage::helper('catalog/image')->init($product, 'image');
113
-
114
- if(count($product->getCategoryIds())) {
115
- $categories = array();
116
- $collection = $product->getCategoryCollection()->addAttributeToSelect('*');
117
- foreach ($collection as $category) {
118
- $categories[] = array(
119
- 'category_id' => $category->getId(),
120
- 'category_name' => $category->getName()
121
- );
122
- }
123
- $data['categories'] = $categories;
124
- }
125
- $helper->addEvent('track', 'product_page_visit', $data);
126
- return;
127
- }
128
-
129
- // Catalog search page
130
- if ($action == 'catalogsearch_result_index') {
131
- $query = Mage::helper('catalogsearch')->getQuery();
132
- if ($text = $query->getQueryText()) {
133
- $resultCount = Mage::app()->getLayout()->getBlock('search.result')->getResultCount();
134
- $params = array(
135
- 'query' => $text,
136
- 'result_count' => $resultCount
137
- );
138
- $helper->addEvent('track', 'search_page', $params);
139
- return;
140
- }
141
- }
142
- }
143
- }
144
- catch(Exception $e)
145
- {
146
- Mage::log("Page View tracking - " . $e->getMessage(), null, 'Increasingly_Analytics.log');
147
- }
148
- }
149
-
150
-
151
- /**
152
- * List of events that we don't want to track
153
- *
154
- * @param string event
155
- */
156
- private function _isRejected($event)
157
- {
158
- return in_array(
159
- $event,
160
- array('catalogsearch_advanced_result', 'catalogsearch_advanced_index')
161
- );
162
- }
163
-
164
- /**
165
- * Adding to cart
166
- * "checkout_cart_product_add_after"
167
- */
168
- public function addToCart(Varien_Event_Observer $observer)
169
- {
170
- try
171
- {
172
- /**
173
- * @var Mage_Sales_Model_Quote_Item
174
- */
175
- $item = $observer->getQuoteItem();
176
- $product = $item->getProduct();
177
- $cartProduct = $observer->getProduct();
178
- if ($cartProduct->isGrouped()) {
179
- $options = Mage::app()->getRequest()->getParam('super_group');
180
- if (is_array($options)) {
181
- foreach ($options as $productId => $qty) {
182
- $this->_addToCart((int)$productId, $cartProduct, (int)$qty);
183
- }
184
- }
185
- } elseif($cartProduct->isConfigurable()) {
186
- $this->_addToCart($product->getId(), $cartProduct, (int)$cartProduct->getCartQty());
187
- } else {
188
- $this->_addToCart($cartProduct->getId(), $cartProduct, (int)$cartProduct->getCartQty());
189
- }
190
- }
191
- catch(Exception $e)
192
- {
193
- Mage::log("Add to cart tracking - " . $e->getMessage(), null, 'Increasingly_Analytics.log');
194
- }
195
- }
196
-
197
- /**
198
- * Add to cart
199
- */
200
- private function _addToCart($productId, $cartProduct, $qty) {
201
-
202
- $helper = Mage::helper('increasingly_analytics');
203
- $priceFormatter = Mage::helper('increasingly_analytics/PriceFormatter');
204
- $product = Mage::getModel('catalog/product')->load($productId);
205
- if ($helper->isEnabled()){
206
- $data = array(
207
- 'product_id' => $cartProduct->getId(),
208
- 'product_name' => $cartProduct->getName(),
209
- 'product_url' => $cartProduct->getProductUrl(),
210
- 'product_sku' => $cartProduct->getSku(),
211
- 'product_type' => $cartProduct->getTypeId(),
212
- 'qty' => $qty,
213
- 'product_price' => $priceFormatter->format($cartProduct->getFinalPrice())
214
- );
215
-
216
- if ($cartProduct->isGrouped() || $cartProduct->isConfigurable()) {
217
- $product = Mage::getModel('catalog/product')->load($productId);
218
-
219
- $data['product_price'] = $priceFormatter->format($product->getFinalPrice());
220
- $data['option_product_id'] = $product->getId();
221
- $data['option_product_sku'] = $product->getSku();
222
- $data['option_product_name'] = $product->getName();
223
- $data['option_product_price'] = $priceFormatter->format($product->getFinalPrice());
224
- }
225
-
226
- if(Mage::getSingleton('customer/session')->isLoggedIn()) {
227
- $data['is_logged_in'] = true;
228
- }
229
- else {
230
- $data['is_logged_in'] = false;
231
- }
232
- $helper->addEvent('track', 'add_to_cart', $data);
233
- }
234
-
235
- }
236
-
237
- /**
238
- * Removing item from shopping cart
239
- *
240
- * @param Varien_Event_Observer $observer
241
- * @return void
242
- */
243
- public function removeFromCart(Varien_Event_Observer $observer)
244
- {
245
- try
246
- {
247
- $helper = Mage::helper('increasingly_analytics');
248
-
249
- if ($helper->isEnabled())
250
- {
251
- $item = $observer->getQuoteItem();
252
- $product = $item->getProduct();
253
-
254
- $data = array(
255
- 'product_id' => $product->getId()
256
- );
257
-
258
- if(Mage::getSingleton('customer/session')->isLoggedIn()) {
259
- $data['is_logged_in'] = true;
260
- }
261
- else {
262
- $data['is_logged_in'] = false;
263
- }
264
- $helper->deleteBundleOnProductDeleteFromCart($product->getId());
265
- $helper->addEvent('track', 'remove_from_cart', $data);
266
- }
267
-
268
- }
269
- catch(Exception $e)
270
- {
271
- Mage::log("Remove from cart tracking - " . $e->getMessage(), null, 'Increasingly_Analytics.log');
272
- }
273
- }
274
-
275
- /**
276
- * Empty cart handler to delete all products from bundle
277
- */
278
- public function empty_cart(Varien_Event_Observer $observer){
279
- $helper = Mage::helper('increasingly_analytics');
280
-
281
- $quote = $observer->getEvent()->getQuote();
282
- if($quote->getItemsCount() == 0) {
283
- $helper->deleteBundleOnEmptyCart($quote);
284
- }
285
- }
286
- /**
287
- * applyCartDiscount to shopping cart
288
- *
289
- * @param Varien_Event_Observer $observer
290
- * @return void
291
- */
292
- public function applyCartDiscount(Varien_Event_Observer $observer)
293
- {
294
- try
295
- {
296
- $bundle_product_ids = [];
297
- $quote_product_ids = [];
298
- $cookieValue = Mage::getModel('core/cookie')->get('ivid');
299
- $userBundleCollection = Mage::getModel('increasingly_analytics/bundle')->getCollection()->addFieldToFilter('increasingly_visitor_id',$cookieValue);
300
- $items = $observer->getEvent()->getQuote()->getAllItems();
301
- $eligibleProducts = [];
302
- $discount = 0;
303
- foreach ($items as $item) {
304
- array_push($quote_product_ids, $item->getProductId());
305
- }
306
- foreach ($userBundleCollection as $bundle) {
307
- //First Bundle products
308
- $bundle_product_ids = explode(',', $bundle->getProductIds());
309
- $productsIds = array_intersect($quote_product_ids, $bundle_product_ids);
310
- if(count($productsIds) == count($bundle_product_ids) )
311
- $discount += $bundle->getDiscountPrice();
312
- }
313
-
314
- if($discount > 0){
315
- $quote=$observer->getEvent()->getQuote();
316
- $quoteid=$quote->getId();
317
- $discountAmount=$discount;
318
- if($quoteid) {
319
- if($discountAmount>0) {
320
- $total=$quote->getBaseSubtotal();
321
- $quote->setSubtotal(0);
322
- $quote->setBaseSubtotal(0);
323
-
324
- $quote->setSubtotalWithDiscount(0);
325
- $quote->setBaseSubtotalWithDiscount(0);
326
-
327
- $quote->setGrandTotal(0);
328
- $quote->setBaseGrandTotal(0);
329
-
330
-
331
- $canAddItems = $quote->isVirtual()? ('billing') : ('shipping');
332
- foreach ($quote->getAllAddresses() as $address) {
333
-
334
- $address->setSubtotal(0);
335
- $address->setBaseSubtotal(0);
336
-
337
- $address->setGrandTotal(0);
338
- $address->setBaseGrandTotal(0);
339
-
340
- $address->collectTotals();
341
-
342
- $quote->setSubtotal((float) $quote->getSubtotal() + $address->getSubtotal());
343
- $quote->setBaseSubtotal((float) $quote->getBaseSubtotal() + $address->getBaseSubtotal());
344
-
345
- $quote->setSubtotalWithDiscount(
346
- (float) $quote->getSubtotalWithDiscount() + $address->getSubtotalWithDiscount()
347
- );
348
- $quote->setBaseSubtotalWithDiscount(
349
- (float) $quote->getBaseSubtotalWithDiscount() + $address->getBaseSubtotalWithDiscount()
350
- );
351
-
352
- $quote->setGrandTotal((float) $quote->getGrandTotal() + $address->getGrandTotal());
353
- $quote->setBaseGrandTotal((float) $quote->getBaseGrandTotal() + $address->getBaseGrandTotal());
354
-
355
- $quote ->save();
356
-
357
- $quote->setGrandTotal($quote->getBaseSubtotal()-$discountAmount)
358
- ->setBaseGrandTotal($quote->getBaseSubtotal()-$discountAmount)
359
- ->setSubtotalWithDiscount($quote->getBaseSubtotal()-$discountAmount)
360
- ->setBaseSubtotalWithDiscount($quote->getBaseSubtotal()-$discountAmount)
361
- ->save();
362
-
363
-
364
- if($address->getAddressType()==$canAddItems) {
365
- //echo $address->setDiscountAmount; exit;
366
- $address->setSubtotalWithDiscount((float) $address->getSubtotalWithDiscount()-$discountAmount);
367
- $address->setGrandTotal((float) $address->getGrandTotal()-$discountAmount);
368
- $address->setBaseSubtotalWithDiscount((float) $address->getBaseSubtotalWithDiscount()-$discountAmount);
369
- $address->setBaseGrandTotal((float) $address->getBaseGrandTotal()-$discountAmount);
370
- if($address->getDiscountDescription()){
371
- $address->setDiscountAmount(-($address->getDiscountAmount()-$discountAmount));
372
- $address->setDiscountDescription($address->getDiscountDescription().', Custom Discount');
373
- $address->setBaseDiscountAmount(-($address->getBaseDiscountAmount()-$discountAmount));
374
- }else {
375
- $address->setDiscountAmount(-($discountAmount));
376
- $address->setDiscountDescription('Custom Discount');
377
- $address->setBaseDiscountAmount(-($discountAmount));
378
- }
379
- $address->save();
380
- }//end: if
381
- } //end: foreach
382
- //echo $quote->getGrandTotal();
383
-
384
- foreach($quote->getAllItems() as $item){
385
- //We apply discount amount based on the ratio between the GrandTotal and the RowTotal
386
- $rat=$item->getPriceInclTax()/$total;
387
- $ratdisc=$discountAmount*$rat;
388
- $item->setDiscountAmount(($item->getDiscountAmount()+$ratdisc) * $item->getQty());
389
- $item->setBaseDiscountAmount(($item->getBaseDiscountAmount()+$ratdisc) * $item->getQty())->save();
390
- }
391
- }
392
- }
393
- }
394
- }
395
- catch(Exception $e)
396
- {
397
- Mage::log("Remove from cart tracking - " . $e->getMessage(), null, 'Increasingly_Analytics.log');
398
- }
399
-
400
- }
401
-
402
-
403
- /**
404
- * Track new order
405
- *
406
- */
407
- public function trackNewOrder(Varien_Event_Observer $observer)
408
- {
409
- try
410
- {
411
-
412
- $helper = Mage::helper('increasingly_analytics');
413
-
414
- if ($helper->isEnabled())
415
- {
416
- $data = array();
417
- $order = $observer->getOrder();
418
-
419
- if ($order->getId())
420
- {
421
- $data = $helper->buildOrderDetailsData($order);
422
- $helper->addEvent('track', 'order', $data);
423
- }
424
- }
425
- }
426
- catch(Exception $e)
427
- {
428
- Mage::log("New order tracking - " . $e->getMessage(), null, 'Increasingly_Analytics.log');
429
- }
430
- }
431
-
432
-
433
- /**
434
- * Send order update information
435
- *
436
- */
437
- public function updateOrder(Varien_Event_Observer $observer)
438
- {
439
- try
440
- {
441
- $helper = Mage::helper('increasingly_analytics');
442
-
443
- if ($helper->isEnabled())
444
- {
445
- $order = $observer->getOrder();
446
- $orderDetails = $helper->buildOrderDetailsData($order);
447
- $helper->increasinglyApi($orderDetails,'order','track',$helper->getApiToken(),$helper->getApiSecret());
448
- }
449
-
450
- }
451
- catch(Exception $e)
452
- {
453
- Mage::log("Update order tracking - " . $e->getMessage(), null, 'Increasingly_Analytics.log');
454
- }
455
- }
456
-
457
- /**
458
- * Send product update information
459
- *
460
- */
461
- public function productAddOrUpdate(Varien_Event_Observer $observer)
462
- {
463
- try
464
- {
465
- $helper = Mage::helper('increasingly_analytics');
466
-
467
- if ($helper->isEnabled())
468
- {
469
- $productId = $observer->getEvent()->getProduct()->getId();
470
- $product = Mage::getModel('catalog/product')->load($productId);
471
-
472
- $productFormatHelper = Mage::helper('increasingly_analytics/ProductFormatter');
473
-
474
- $formattedProductInfo = $productFormatHelper->formatProductInfo($product);
475
- $helper->increasinglyApi($formattedProductInfo,'product_add_or_update','track',$helper->getApiToken(),$helper->getApiSecret());
476
- }
477
-
478
- }
479
- catch(Exception $e)
480
- {
481
- Mage::log("Product Add or Update tracking - " . $e->getMessage(), null, 'Increasingly_Analytics.log');
482
- }
483
- }
484
-
485
- /**
486
- * Send product delete information
487
- *
488
- */
489
- public function productDelete(Varien_Event_Observer $observer)
490
- {
491
- try
492
- {
493
- $helper = Mage::helper('increasingly_analytics');
494
-
495
- if ($helper->isEnabled()){
496
- $productId = $observer->getEvent()->getProduct()->getId();
497
-
498
- $productData = array('product_id' => $productId);
499
- $helper->deleteBundleOnProductDeleteFromCart($productId);
500
- $helper->increasinglyApi($productData,'product_delete','track',$helper->getApiToken(),$helper->getApiSecret());
501
- }
502
-
503
- }
504
- catch(Exception $e)
505
- {
506
- Mage::log("Product delete tracking - " . $e->getMessage(), null, 'Increasingly_Analytics.log');
507
- }
508
- }
509
-
510
- public function importShippingDetails(Varien_Event_Observer $observer)
511
- {
512
- try
513
- {
514
- $helper = Mage::helper('increasingly_analytics');
515
- $priceFormatter = Mage::helper('increasingly_analytics/PriceFormatter');
516
-
517
- if ($helper->isEnabled())
518
- {
519
- $data = array();
520
- $carriers = array();
521
- $config = Mage::getStoreConfig('carriers', Mage::app()->getStore()->getId());
522
-
523
- foreach ($config as $code => $carrierConfig)
524
- {
525
- if ($carrierConfig['model'] == 'shipping/carrier_freeshipping')
526
- {
527
- $data['is_free_shipping_active'] = Mage::getStoreConfigFlag('carriers/'.$code.'/active', $store);
528
- $data['free_shipping_subtotal'] = $priceFormatter->format($carrierConfig['free_shipping_subtotal']);
529
- $data['free_shipping_title'] = $carrierConfig['title'];
530
- }
531
- }
532
-
533
- $helper->increasinglyApi($data,'shipping_details_import','track',$helper->getApiToken(),$helper->getApiSecret());
534
-
535
- }
536
-
537
- }
538
- catch(Exception $e)
539
- {
540
- Mage::log("Import shipping details - " . $e->getMessage(), null, 'Increasingly_Analytics.log');
541
- }
542
-
543
- }
544
-
545
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Increasingly/Analytics/controllers/AddbundletocartController.php~ DELETED
@@ -1,297 +0,0 @@
1
- <?php
2
- /**
3
- * Magento
4
- *
5
- * NOTICE OF LICENSE
6
- *
7
- * This source file is subject to the Open Software License (OSL 3.0)
8
- * that is bundled with this package in the file LICENSE.txt.
9
- * It is also available through the world-wide-web at this URL:
10
- * http://opensource.org/licenses/osl-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 Increasingly
22
- * @package Increasingly_Analytics
23
- * @author Increasingly Pvt Ltd
24
- * @copyright Copyright (c) 2015-2016 Increasingly Ltd (http://www.increasingly.co)
25
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
26
- */
27
- /**
28
- * Returns product details to increasingly on API call
29
- */
30
-
31
- require_once 'Mage/Checkout/controllers/CartController.php';
32
- class Increasingly_Analytics_AddbundletocartController extends Mage_Core_Controller_Front_Action
33
- {
34
- public $cart;
35
- /***Index cart for add to cart
36
- *
37
- */
38
- public function indexAction ()
39
- {
40
- try
41
- {
42
- $this->cart = Mage::getSingleton('checkout/cart');
43
- $data = $_POST["jsonData"];
44
- $data = json_decode($data,TRUE);
45
- $current_page = $data[0]["current_page"];
46
- $product = Mage::getModel('catalog/product');
47
- $inStockProducts = [];
48
- $outOfStockProducts = [];
49
- $productErrorStr = "";
50
- $productSuccessStr = "";
51
-
52
- if($current_page == "checkout_cart_index"){
53
- $quote = Mage::getModel('checkout/cart')->getQuote();
54
-
55
- //Get all Cart product Ids
56
- $cartProductIds =[];
57
- foreach ($quote->getAllItems() as $item) {
58
- array_push($cartProductIds, $item->getProduct()->getId());
59
- }
60
-
61
- //Get all bundle Product Ids
62
- $previousCartProducts = [];
63
- for ($x = 0; $x < count($data[0]["params"]); $x++) {
64
- array_push($previousCartProducts,trim($data[0]["params"][$x]["product_id"]));
65
- }
66
-
67
- //Get all Bundle product Ids that are in cart
68
- $result = array_intersect($cartProductIds, $previousCartProducts);
69
- $productsToAddToCart = array_diff($previousCartProducts,$result);
70
-
71
- //All bundle products are in cart,add all
72
- if(count($result) == count($cartProductIds) && count($result) == count($previousCartProducts) && count($cartProductIds) == count($previousCartProducts)){
73
- $this->addToCart($data);
74
- }else{
75
-
76
- //Not all bundled products are in the cart,add only products from the bundle to cart that doesn't exists in cart and dont add bundles to the database
77
- if(count($productsToAddToCart) >= 1){
78
-
79
- //Push the products into instock and out of stock arrays to handle the success and error messages at cart page
80
- foreach ($productsToAddToCart as $productId) {
81
- $product = Mage::getModel('catalog/product');
82
- $product->load($productId);
83
-
84
- //In Stock or Out of stock status of the product
85
- $inStock = Mage::getModel('cataloginventory/stock_item')->loadByProduct($product)->getIsInStock();
86
- if($inStock){
87
-
88
- //Push all the instock products to the inStockProducts array
89
- array_push($inStockProducts, $productId);
90
- }
91
- else{
92
-
93
- //Push all the out of stock products to the outOfStockProducts array
94
- array_push($outOfStockProducts, $productId);
95
- //Prepare the error message for the products out of stock
96
- $productErrorStr .= $product->getName().", ";
97
- }
98
- }
99
- //Add all the instock products to the cart and prepare the success message
100
- foreach ($inStockProducts as $product_id) {
101
- $this->addTo($product_id,$data);
102
- $productSuccessStr .= $product->getName().", ";
103
- }
104
- //Trim the success message
105
- $productSuccessStr = rtrim(trim($productSuccessStr),',');
106
- //Trim the error message
107
- $productErrorStr = rtrim(trim($productErrorStr),',');
108
- //Save the cart
109
- $this->cart->save();
110
- //Get teh quote
111
- $quote = Mage::getModel('checkout/cart')->getQuote();
112
- //Add success message
113
- if($productSuccessStr != "")
114
- Mage::getSingleton('core/session')->addSuccess($productSuccessStr.' added to your shopping cart');
115
- //Add error message
116
- if($productErrorStr != "")
117
- Mage::getSingleton('core/session')->addNotice($productErrorStr.' is out of stock');
118
- //Set cart was updated
119
- Mage::getSingleton('checkout/session')->setCartWasUpdated(true);
120
- //Redirect to cart
121
- $this->_redirect('checkout/cart');
122
- }
123
- if(count($productsToAddToCart)==0){
124
- //Add all bundled products to the cart when the cart is empty from the cart page and add bundles
125
- $this->addToCart($data);
126
- }
127
- }
128
-
129
- }else{
130
- //Add to bundle from all other pages except cart
131
- $this->addToCart($data);
132
- }
133
- }
134
- catch(Exception $e)
135
- {
136
- $this->_redirect('checkout/cart');
137
- }
138
-
139
-
140
- }
141
- /**Adds the product to the cart on click of Add to Basket button
142
- *
143
- */
144
- public function addTo($productId,$data){
145
- try{
146
- if($data[0]["bundle_id"] != null || $data[0]["bundle_id"] || ""){
147
- $bundle_id = $data[0]["bundle_id"];
148
- $productIds = [];
149
- $discountPrice = $data[0]["discountPrice"];
150
- $totalPrice = $data[0]["totalPrice"];
151
- $product = Mage::getModel('catalog/product');
152
- $product->load($productId);
153
- $this->cart->addProduct($product,array('qty' => 1));
154
-
155
- for ($x = 0; $x < count($data[0]["params"]); $x++) {
156
- $productIds[$x] = trim($data[0]["params"][$x]["product_id"]);
157
- }
158
- $productIdsStr = implode(',',$productIds);
159
-
160
- $cookieValue = Mage::getModel('core/cookie')->get('ivid');
161
- $userBundleCollection = Mage::getModel('increasingly_analytics/bundle')->getCollection()
162
- ->addFieldToFilter('bundle_id', $bundle_id)
163
- ->addFieldToFilter('increasingly_visitor_id',$cookieValue);
164
-
165
- //Check if bundle already exists,add if not already present
166
- if(count($userBundleCollection) < 1){
167
- $userBundle = Mage::getModel('increasingly_analytics/bundle');
168
- $userBundle->setBundleId(intval($bundle_id));
169
- $userBundle->setProductIds($productIdsStr);
170
- $userBundle->setIncreasinglyVisitorId($cookieValue);
171
- $userBundle->setDiscountPrice($discountPrice);
172
- $userBundle->setTotalPrice($totalPrice);
173
- $userBundle->save();
174
- }
175
- }
176
- }
177
- catch(Exception $e)
178
- {
179
- Mage::log("Increasingly AddTo cart controller - " . $e->getMessage(), null, 'Increasingly_Analytics.log');
180
- }
181
- }
182
-
183
- /**Adds all the bundled products to the cart from all pages
184
- *
185
- */
186
- public function addToCart($data){
187
-
188
- $redirectUrl = "";
189
- try{
190
-
191
- $redirectUrl = Mage::app()->getRequest()->getServer('HTTP_REFERER');
192
- $this->cart= Mage::getSingleton('checkout/cart');
193
-
194
- if($data[0]["bundle_id"] != null || $data[0]["bundle_id"] || ""){
195
-
196
- $bundle_id = $data[0]["bundle_id"];
197
- $productIds = [];
198
- $discountPrice = $data[0]["discountPrice"];
199
- $totalPrice = $data[0]["totalPrice"];
200
- $inStockProducts = [];
201
- $outOfStockProducts = [];
202
- $productErrorStr = "";
203
- $productSuccessStr = "";
204
- $quantity = 1;
205
-
206
- for ($x = 0; $x < count($data[0]["params"]); $x++) {
207
- $productIds[$x] = trim($data[0]["params"][$x]["product_id"]);
208
- }
209
-
210
- if(count($productIds) == 1 && $bundle_id == 0){
211
-
212
- $quantity = $data[0]["params"][0]["qty"];
213
- }
214
-
215
-
216
- //Push the products into instock and out of stock arrays to handle the success and error messages at cart page
217
- foreach ($productIds as $productId) {
218
- $product = Mage::getModel('catalog/product');
219
- $product->load($productId);
220
-
221
- $inStock = Mage::getModel('cataloginventory/stock_item')->loadByProduct($product)->getIsInStock();
222
- if($inStock){
223
- array_push($inStockProducts, $productId);
224
- }
225
- else{
226
- array_push($outOfStockProducts, $productId);
227
- //Prepare the error message for the products out of stock
228
- $productErrorStr .= $product->getName().", ";
229
- }
230
- }
231
-
232
- //Add all the instock products to the cart and prepare the success message
233
- foreach ($inStockProducts as $product_id) {
234
- $product = Mage::getModel('catalog/product');
235
- $product->load($product_id);
236
-
237
- $redirectUrl = $product->getProductUrl();
238
-
239
- $this->cart->addProduct($product,array('qty' => $quantity));
240
- $productSuccessStr .= $product->getName().", ";
241
- }
242
-
243
- //Trim the success message
244
- $productSuccessStr = rtrim(trim($productSuccessStr),',');
245
-
246
- //Trim the error message
247
- $productErrorStr = rtrim(trim($productErrorStr),',');
248
-
249
- //Save all the products added to the cart
250
- $this->cart->save();
251
-
252
- //Add the bundles to the database if all the products are in stock
253
- if(count($outOfStockProducts) == 0 && count($productIds) > 1 && $bundle_id > 0){
254
-
255
- $productIdsStr = implode(',',$productIds);
256
- $cookieValue = Mage::getModel('core/cookie')->get('ivid');
257
- $userBundleCollection = Mage::getModel('increasingly_analytics/bundle')->getCollection()
258
- ->addFieldToFilter('bundle_id', $bundle_id)
259
- ->addFieldToFilter('increasingly_visitor_id',$cookieValue);
260
-
261
- //Check if bundle already exists,add if not already present
262
- if(count($userBundleCollection) < 1){
263
- $userBundle = Mage::getModel('increasingly_analytics/bundle');
264
- $userBundle->setBundleId(intval($bundle_id));
265
- $userBundle->setProductIds($productIdsStr);
266
- $userBundle->setIncreasinglyVisitorId($cookieValue);
267
- $userBundle->setDiscountPrice($discountPrice);
268
- $userBundle->setTotalPrice($totalPrice);
269
- $userBundle->save();
270
- }
271
-
272
- //Set cart was updated flag
273
- Mage::getSingleton('checkout/session')->setCartWasUpdated(true);
274
-
275
- }
276
-
277
- if($productSuccessStr != "")
278
- Mage::getSingleton('core/session')->addSuccess($productSuccessStr.' added to your shopping cart');
279
-
280
- //Error message for the out of stock products
281
- if($productErrorStr != "")
282
- Mage::getSingleton('core/session')->addNotice($productErrorStr.' is out of stock');
283
-
284
- //Redirect to the cart
285
- $this->_redirect('checkout/cart');
286
-
287
- }
288
- }
289
- catch(Exception $e)
290
- {
291
- Mage::log("Increasingly addToCart controller - " . $e->getMessage(), null, 'Increasingly_Analytics.log');
292
- Mage::getSingleton('core/session')->addNotice($e->getMessage());
293
- $this->_redirectUrl($redirectUrl);
294
- }
295
-
296
- }
297
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Increasingly/Analytics/controllers/ProductsApiController.php CHANGED
@@ -31,7 +31,7 @@
31
  class Increasingly_Analytics_ProductsApiController extends Mage_Core_Controller_Front_Action
32
  {
33
 
34
- public function productsAction()
35
  {
36
  try
37
  {
@@ -45,24 +45,74 @@ class Increasingly_Analytics_ProductsApiController extends Mage_Core_Controller_
45
  $products = array();
46
  $productFormatHelper = Mage::helper('increasingly_analytics/ProductFormatter');
47
 
48
- $attributes = array(
49
- 'name',
50
- 'sku',
51
- 'image',
52
- 'manufacturer',
53
- 'price',
54
- 'final_price',
55
- 'special_price',
56
- 'description',
57
- 'short_description',
58
- 'color',
59
- 'weight',
60
- 'size'
61
- );
62
 
63
  $limit = $this->getRequest()->getParam('limit', 200);
64
  $offset = $this->getRequest()->getParam('offset', 1);
65
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
66
  $productsCollection = Mage::getModel('catalog/product')->getCollection();
67
 
68
  $productsCollection->addAttributeToSelect($attributes)->getSelect()->limit($limit, $offset);
31
  class Increasingly_Analytics_ProductsApiController extends Mage_Core_Controller_Front_Action
32
  {
33
 
34
+ public function productsAction()
35
  {
36
  try
37
  {
45
  $products = array();
46
  $productFormatHelper = Mage::helper('increasingly_analytics/ProductFormatter');
47
 
48
+ // $attributes = array(
49
+ // 'name',
50
+ // 'sku',
51
+ // 'image',
52
+ // 'manufacturer',
53
+ // 'price',
54
+ // 'final_price',
55
+ // 'special_price',
56
+ // 'description',
57
+ // 'short_description',
58
+ // 'color',
59
+ // 'weight',
60
+ // 'size'
61
+ // );
62
 
63
  $limit = $this->getRequest()->getParam('limit', 200);
64
  $offset = $this->getRequest()->getParam('offset', 1);
65
+ $tempAttributes = array();
66
+ $productsCollection = Mage::getModel('catalog/product')->getCollection();
67
+ $tempProduct = $productsCollection->getFirstItem();
68
+ $attributes = $tempProduct->getAttributes();
69
+ foreach ($attributes as $attribute) {
70
+ if($attribute->getAttributeCode() == 'name')
71
+ {
72
+ array_push($tempAttributes,'name');
73
+ }
74
+ if($attribute->getAttributeCode() == 'sku')
75
+ {
76
+ array_push($tempAttributes,'sku');
77
+ }
78
+ if($attribute->getAttributeCode() == 'image')
79
+ {
80
+ array_push($tempAttributes,'image');
81
+ }
82
+ if($attribute->getAttributeCode() == 'manufacturer')
83
+ {
84
+ array_push($tempAttributes,'manufacturer');
85
+ }
86
+ if($attribute->getAttributeCode() == 'price')
87
+ {
88
+ array_push($tempAttributes,'price');
89
+ }
90
+ if($attribute->getAttributeCode() == 'special_price')
91
+ {
92
+ array_push($tempAttributes,'special_price');
93
+ }
94
+ if($attribute->getAttributeCode() == 'description')
95
+ {
96
+ array_push($tempAttributes,'description');
97
+ }
98
+ if($attribute->getAttributeCode() == 'short_description')
99
+ {
100
+ array_push($tempAttributes,'short_description');
101
+ }
102
+ if($attribute->getAttributeCode() == 'color')
103
+ {
104
+ array_push($tempAttributes,'color');
105
+ }
106
+ if($attribute->getAttributeCode() == 'weight')
107
+ {
108
+ array_push($tempAttributes,'weight');
109
+ }
110
+ if($attribute->getAttributeCode() == 'size')
111
+ {
112
+ array_push($tempAttributes,'size');
113
+ }
114
+ }
115
+ $attributes = $tempAttributes;
116
  $productsCollection = Mage::getModel('catalog/product')->getCollection();
117
 
118
  $productsCollection->addAttributeToSelect($attributes)->getSelect()->limit($limit, $offset);
app/code/community/Increasingly/Analytics/controllers/ProductsApiController.php~ DELETED
@@ -1,158 +0,0 @@
1
- <?php
2
- /**
3
- * Magento
4
- *
5
- * NOTICE OF LICENSE
6
- *
7
- * This source file is subject to the Open Software License (OSL 3.0)
8
- * that is bundled with this package in the file LICENSE.txt.
9
- * It is also available through the world-wide-web at this URL:
10
- * http://opensource.org/licenses/osl-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 Increasingly
22
- * @package Increasingly_Analytics
23
- * @author Increasingly Pvt Ltd
24
- * @copyright Copyright (c) 2015-2016 Increasingly Ltd (http://www.increasingly.co)
25
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
26
- */
27
- /**
28
- * Returns product details to increasingly on API call
29
- */
30
-
31
- class Increasingly_Analytics_ProductsApiController extends Mage_Core_Controller_Front_Action
32
- {
33
-
34
- public function productsAction()
35
- {
36
- try
37
- {
38
- $version = (string)Mage::getConfig()->getModuleConfig("Increasingly_Analytics")->version;
39
-
40
- if(!$this->isRequestAuthorized())
41
- {
42
- return $this;
43
- }
44
-
45
- $products = array();
46
- $productFormatHelper = Mage::helper('increasingly_analytics/ProductFormatter');
47
-
48
- $attributes = array(
49
- 'name',
50
- 'sku',
51
- 'image',
52
- 'manufacturer',
53
- 'price',
54
- 'final_price',
55
- 'special_price',
56
- 'description',
57
- 'short_description',
58
- 'color',
59
- 'weight',
60
- 'size'
61
- );
62
-
63
- $limit = $this->getRequest()->getParam('limit', 200);
64
- $offset = $this->getRequest()->getParam('offset', 1);
65
-
66
- $productsCollection = Mage::getModel('catalog/product')->getCollection();
67
-
68
- $productsCollection->addAttributeToSelect($attributes)->getSelect()->limit($limit, $offset);
69
-
70
- $totalProductCount = Mage::getModel('catalog/product')->getCollection()->count();
71
-
72
- foreach($productsCollection as $product)
73
- {
74
- $product = $productFormatHelper->formatProductInfo($product);
75
-
76
- if($product !== null)
77
- {
78
- $products[] = $product;
79
- }
80
- }
81
-
82
- $this->getResponse()
83
- ->setBody(json_encode(array('products' => $products,'version' => $version, 'total_product_count' => $totalProductCount)))
84
- ->setHttpResponseCode(200)
85
- ->setHeader('Content-type', 'application/json', true);
86
-
87
-
88
- } catch(Exception $e) {
89
-
90
- Mage::log($e->getMessage(), null, 'Increasingly_Analytics.log');
91
-
92
- $this->getResponse()
93
- ->setBody(json_encode(array('status' => 'error', 'message' => $e->getMessage(), 'version' => $version)))
94
- ->setHttpResponseCode(500)
95
- ->setHeader('Content-type', 'application/json', true);
96
- }
97
-
98
- return $this;
99
-
100
- }
101
-
102
- private function isRequestAuthorized()
103
- {
104
- $helper = Mage::helper('increasingly_analytics');
105
-
106
- if ($helper->isEnabled())
107
- {
108
- $apiKey = $helper->getApiToken();
109
- $version = (string)Mage::getConfig()->getModuleConfig("Increasingly_Analytics")->version;
110
-
111
- // Check for api key
112
- if(!$apiKey && strlen($apiKey) === 0) {
113
-
114
- $this->getResponse()
115
- ->setBody(json_encode(array('status' => 'error', 'message' => 'API key is missing', 'version' => $version)))
116
- ->setHttpResponseCode(403)
117
- ->setHeader('Content-type', 'application/json', true);
118
- return false;
119
- }
120
-
121
- $authKey = $this->getRequest()->getHeader('authKey');
122
-
123
- if (!$authKey || strlen($authKey) == 0) {
124
- $authKey = $this->getRequest()->getParam('authKey');
125
- }
126
-
127
- if (!$authKey) {
128
-
129
- $this->getResponse()
130
- ->setBody(json_encode(array('status' => 'error', 'message' => 'Error,Authorization header not found', 'version' => $version)))
131
- ->setHttpResponseCode(500)
132
- ->setHeader('Content-type', 'application/json', true);
133
- return false;
134
- }
135
-
136
- if(trim($authKey) !== trim($apiKey)) {
137
-
138
- $this->getResponse()
139
- ->setBody(json_encode(array('status' => 'error', 'message' => 'Authorization failed', 'version' => $version)))
140
- ->setHttpResponseCode(401)
141
- ->setHeader('Content-type', 'application/json', true);
142
- return false;
143
- }
144
-
145
- return true;
146
- }
147
- else {
148
-
149
- $this->getResponse()
150
- ->setBody(json_encode(array('status' => 'error', 'message' => 'Increasingly module is disabled', 'version' => $version)))
151
- ->setHttpResponseCode(403)
152
- ->setHeader('Content-type', 'application/json', true);
153
- return false;
154
- }
155
-
156
- }
157
-
158
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Increasingly/Analytics/etc/config.xml CHANGED
@@ -32,7 +32,7 @@
32
  <config>
33
  <modules>
34
  <Increasingly_Analytics>
35
- <version>1.0.7</version>
36
  </Increasingly_Analytics>
37
  </modules>
38
  <global>
32
  <config>
33
  <modules>
34
  <Increasingly_Analytics>
35
+ <version>1.0.8</version>
36
  </Increasingly_Analytics>
37
  </modules>
38
  <global>
app/code/community/Increasingly/Analytics/etc/config.xml~ DELETED
@@ -1,250 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <!--
3
- * Magento
4
- *
5
- * NOTICE OF LICENSE
6
- *
7
- * This source file is subject to the Open Software License (OSL 3.0)
8
- * that is bundled with this package in the file LICENSE.txt.
9
- * It is also available through the world-wide-web at this URL:
10
- * http://opensource.org/licenses/osl-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 Increasingly
22
- * @package Increasingly_Analytics
23
- * @author Increasingly Pvt Ltd
24
- * @copyright Copyright (c) 2015-2016 Increasingly Ltd (http://www.increasingly.co)
25
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
26
- -->
27
- <!--
28
- /**
29
- * @package Increasingly_Analytics
30
- */
31
- -->
32
- <config>
33
- <modules>
34
- <Increasingly_Analytics>
35
- <version>1.0.4</version>
36
- </Increasingly_Analytics>
37
- </modules>
38
- <global>
39
- <events>
40
- <controller_action_layout_generate_blocks_after>
41
- <observers>
42
- <page_view>
43
- <class>Increasingly_Analytics_Model_Observer</class>
44
- <method>trackPageView</method>
45
- <type>singleton</type>
46
- </page_view>
47
- </observers>
48
- </controller_action_layout_generate_blocks_after>
49
- <checkout_cart_product_add_after>
50
- <observers>
51
- <add_to_cart>
52
- <type>singleton</type>
53
- <class>Increasingly_Analytics_Model_Observer</class>
54
- <method>addToCart</method>
55
- </add_to_cart>
56
- </observers>
57
- </checkout_cart_product_add_after>
58
- <sales_quote_remove_item>
59
- <observers>
60
- <remove_from_cart>
61
- <type>singleton</type>
62
- <class>Increasingly_Analytics_Model_Observer</class>
63
- <method>removeFromCart</method>
64
- </remove_from_cart>
65
- </observers>
66
- </sales_quote_remove_item>
67
- <sales_order_place_after>
68
- <observers>
69
- <place_order>
70
- <type>singleton</type>
71
- <class>Increasingly_Analytics_Model_Observer</class>
72
- <method>trackNewOrder</method>
73
- </place_order>
74
- </observers>
75
- </sales_order_place_after>
76
- <sales_quote_collect_totals_after>
77
- <observers>
78
- <apply_cart_discount>
79
- <type>singleton</type>
80
- <class>Increasingly_Analytics_Model_Observer</class>
81
- <method>applyCartDiscount</method>
82
- </apply_cart_discount>
83
- </observers>
84
- </sales_quote_collect_totals_after>
85
- <sales_quote_save_after>
86
- <observers>
87
- <empty_cart>
88
- <type>singleton</type>
89
- <class>Increasingly_Analytics_Model_Observer</class>
90
- <method>empty_cart</method>
91
- </empty_cart>
92
- </observers>
93
- </sales_quote_save_after>
94
- <catalog_product_save_commit_after>
95
- <observers>
96
- <product_update>
97
- <type>singleton</type>
98
- <class>Increasingly_Analytics_Model_Observer</class>
99
- <method>productAddOrUpdate</method>
100
- </product_update>
101
- </observers>
102
- </catalog_product_save_commit_after>
103
- <catalog_product_delete_commit_after>
104
- <observers>
105
- <product_delete>
106
- <type>singleton</type>
107
- <class>Increasingly_Analytics_Model_Observer</class>
108
- <method>productDelete</method>
109
- </product_delete>
110
- </observers>
111
- </catalog_product_delete_commit_after>
112
- <admin_system_config_changed_section_carriers>
113
- <observers>
114
- <import_shipping_details>
115
- <type>singleton</type>
116
- <class>Increasingly_Analytics_Model_Observer</class>
117
- <method>importShippingDetails</method>
118
- </import_shipping_details>
119
- </observers>
120
- </admin_system_config_changed_section_carriers>
121
- </events>
122
- <models>
123
- <increasingly_analytics>
124
- <class>Increasingly_Analytics_Model</class>
125
- <resourceModel>increasingly_analytics_mysql4</resourceModel>
126
- </increasingly_analytics>
127
- <increasingly_analytics_mysql4>
128
- <class>Increasingly_Analytics_Model_Mysql4</class>
129
- <entities>
130
- <bundle>
131
- <table>increasingly_analytics_bundle</table>
132
- </bundle>
133
- </entities>
134
- </increasingly_analytics_mysql4>
135
- </models>
136
- <resources>
137
- <increasingly_analytics_setup>
138
- <setup>
139
- <module>Increasingly_Analytics</module>
140
- <class>Increasingly_Analytics_Model_Mysql4_Setup</class>
141
- </setup>
142
- <connection>
143
- <use>core_setup</use>
144
- </connection>
145
- </increasingly_analytics_setup>
146
- <increasingly_analytics_write>
147
- <connection>
148
- <use>core_write</use>
149
- </connection>
150
- </increasingly_analytics_write>
151
- <increasingly_analytics_read>
152
- <connection>
153
- <use>core_read</use>
154
- </connection>
155
- </increasingly_analytics_read>
156
- </resources>
157
- <blocks>
158
- <increasingly_analytics>
159
- <class>Increasingly_Analytics_Block</class>
160
- </increasingly_analytics>
161
- </blocks>
162
- <helpers>
163
- <increasingly_analytics>
164
- <class>Increasingly_Analytics_Helper</class>
165
- </increasingly_analytics>
166
- </helpers>
167
- </global>
168
- <frontend>
169
- <layout>
170
- <updates>
171
- <increasingly_analytics>
172
- <file>increasingly_analytics.xml</file>
173
- </increasingly_analytics>
174
- </updates>
175
- </layout>
176
- <routers>
177
- <increasingly_analytics>
178
- <use>standard</use>
179
- <args>
180
- <module>Increasingly_Analytics</module>
181
- <frontName>increasingly</frontName>
182
- </args>
183
- </increasingly_analytics>
184
- </routers>
185
- <events>
186
- <customer_login>
187
- <observers>
188
- <increasingly_login>
189
- <type>singleton</type>
190
- <class>Increasingly_Analytics_Model_Observer</class>
191
- <method>customerLogin</method>
192
- </increasingly_login>
193
- </observers>
194
- </customer_login>
195
- </events>
196
- </frontend>
197
- <admin>
198
- <routers>
199
- <adminhtml>
200
- <args>
201
- <modules>
202
- <Increasingly_Analytics before="Mage_adminhtml">Increasingly_Analytics_Adminhtml</Increasingly_Analytics>
203
- </modules>
204
- </args>
205
- </adminhtml>
206
- </routers>
207
- </admin>
208
- <adminhtml>
209
- <acl>
210
- <resources>
211
- <admin>
212
- <children>
213
- <system>
214
- <children>
215
- <config>
216
- <children>
217
- <increasingly_analytics>
218
- <title>Increasingly Configuration</title>
219
- </increasingly_analytics>
220
- </children>
221
- </config>
222
- </children>
223
- </system>
224
- </children>
225
- </admin>
226
- </resources>
227
- </acl>
228
- <layout>
229
- <updates>
230
- <increasingly_analytics>
231
- <file>increasingly_analytics.xml</file>
232
- </increasingly_analytics>
233
- </updates>
234
- </layout>
235
- <menu>
236
- <increasingly>
237
- <title>Increasingly</title>
238
- <sort_order>70</sort_order>
239
- <action>adminhtml/DataIntegration/index</action>
240
- </increasingly>
241
- </menu>
242
- </adminhtml>
243
- <default>
244
- <increasingly_analytics>
245
- <settings>
246
- <enable>0</enable>
247
- </settings>
248
- </increasingly_analytics>
249
- </default>
250
- </config>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Increasingly/Analytics/sql/increasingly_analytics_setup/mysql4-install-1.0.8.php ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ $installer = $this;
4
+
5
+ $installer->startSetup();
6
+
7
+ $installer->run("
8
+
9
+ CREATE TABLE IF NOT EXISTS {$this->getTable('increasingly_analytics_bundle')} (
10
+
11
+ `id` int NOT NULL auto_increment,
12
+
13
+ `bundle_id` int NOT NULL default 0,
14
+
15
+ `product_ids` varchar(100) NOT NULL,
16
+
17
+ `increasingly_visitor_id` varchar(100) NOT NULL,
18
+
19
+ `discount_price` decimal(12,4) NULL,
20
+
21
+ `total_price` decimal(12,4) NOT NULL,
22
+
23
+ PRIMARY KEY (`id`)
24
+
25
+ );
26
+
27
+ ");
28
+
29
+ $installer->endSetup();
app/design/frontend/base/default/layout/increasingly_analytics.xml CHANGED
@@ -151,7 +151,27 @@
151
  <value>increasingly-catalog-product1</value>
152
  </action>
153
  </block>
154
- </reference>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
155
  </catalog_product_view>
156
 
157
  <MY_HANDLE_catalog_product_view>
151
  <value>increasingly-catalog-product1</value>
152
  </action>
153
  </block>
154
+ </reference>
155
+ <reference name="content">
156
+ <reference name="product.info.media.after">
157
+ <block type="increasingly_analytics/element" name="increasingly.catalog.product3" template="increasingly/element.phtml" after="-">
158
+ <action method="setData">
159
+ <name>div_id</name>
160
+ <value>increasingly-catalog-product3</value>
161
+ </action>
162
+ </block>
163
+ </reference>
164
+ </reference>
165
+ <!-- <reference name="content">
166
+ <reference name="product.info.media.after">
167
+ <block type="increasingly_analytics/element" name="increasingly.catalog.product3" template="increasingly/element.phtml">
168
+ <action method="setData">
169
+ <name>div_id</name>
170
+ <value>increasingly-catalog-product3</value>
171
+ </action>
172
+ </block>
173
+ </reference>
174
+ </reference> -->
175
  </catalog_product_view>
176
 
177
  <MY_HANDLE_catalog_product_view>
app/design/frontend/base/default/template/increasingly/track.phtml~ DELETED
@@ -1,57 +0,0 @@
1
- <?php
2
- /**
3
- * Magento
4
- *
5
- * NOTICE OF LICENSE
6
- *
7
- * This source file is subject to the Open Software License (OSL 3.0)
8
- * that is bundled with this package in the file LICENSE.txt.
9
- * It is also available through the world-wide-web at this URL:
10
- * http://opensource.org/licenses/osl-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 Increasingly
22
- * @package Increasingly_Analytics
23
- * @author Increasingly Pvt Ltd
24
- * @copyright Copyright (c) 2015-2016 Increasingly Ltd (http://www.increasingly.co)
25
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
26
- */
27
- ?>
28
- <?php $helper = Mage::helper('increasingly_analytics'); ?>
29
- <?php $events = $this->getTrackingEvents(); ?>
30
-
31
- <script type="text/javascript">
32
-
33
- window.increasingly=window.increasingly||[],window.increasingly.queue=[],window.increasingly.methods=["identify","track"],
34
- window.increasingly.filter=function(e){return function(){a=Array.prototype.slice.call(arguments);a.unshift(e);window.increasingly.queue.push(a);}};
35
-
36
- for(var i=0;window.increasingly.methods.length>i;i++)
37
- {
38
- var mthd=window.increasingly.methods[i];
39
- window.increasingly[mthd]=window.increasingly.filter(mthd);
40
- }
41
-
42
- window.increasingly.load=function(){var t=document;var n=t.getElementsByTagName("script")[0];var r=t.createElement("script");
43
- r.type="text/javascript";r.async=true;r.src="http://127.0.0.1/js/track.js";n.parentNode.insertBefore(r,n);};
44
-
45
- window.increasingly.loadJs=function(){var t=document;var n=t.getElementsByTagName("script")[0];var r=t.createElement("script");
46
- r.type="text/javascript";r.async=true;r.src="http://127.0.0.1/js/increasingly.js";n.parentNode.insertBefore(r,n);};
47
-
48
- increasingly.load();
49
- increasingly.loadJs();
50
- <?php foreach ($events as $trackEvent) : ?>
51
-
52
- <?php if($trackEvent['method'] == 'track') : ?>
53
- increasingly.track("<?php echo $trackEvent['event_type']; ?>", "<?php echo base64_encode(json_encode($trackEvent)); ?>");
54
- <?php endif; ?>
55
-
56
- <?php endforeach; ?>
57
- </script>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>increasingly_key</name>
4
- <version>1.0.7</version>
5
  <stability>stable</stability>
6
  <license uri="https://opensource.org/licenses/osl-3.0.php">Open Software License (OSL)</license>
7
  <channel>community</channel>
@@ -44,13 +44,12 @@ It's free to try &amp; we have a 14-day trial where you can test it for no-risk
44
  &#xD;
45
  We have a dashboard which provides you with in depth analytics and insights on what's sells together &amp; allows you to administer and manage your bundles.&#xD;
46
  </description>
47
- <notes>Fix for redirecting to same product page, if entered qty for product is more than available.&#xD;
48
- &#xD;
49
- Fix for redundant tracking of new orders.</notes>
50
  <authors><author><name>Increasingly</name><user>Increasingly</user><email>renu@increasingly.co</email></author><author><name>Increasingly</name><user>Increasingly</user><email>shree@increasingly.co</email></author><author><name>Increasingly</name><user>Increasingly</user><email>satish@increasingly.co</email></author></authors>
51
- <date>2016-08-04</date>
52
- <time>14:00:04</time>
53
- <contents><target name="magecommunity"><dir name="Increasingly"><dir name="Analytics"><dir name="Block"><file name="Addtocart.php" hash="3429b60b501c7681a3c79fd46138b787"/><dir name="Adminhtml"><file name="DataIntegration.php" hash="b7c543b33f563ef458d403df94c62a4c"/></dir><file name="Cart.php" hash="56c9f503b7c55d835cbd93c675dcc338"/><file name="Category.php" hash="3b87f305e0957dd1fdace455c1f0fa7c"/><file name="Element.php" hash="8d533705e7a3c1ada7d775a6d9282f43"/><file name="Embed.php" hash="5ba08a6642ed22d8bb1a84ab0501f8dc"/><file name="Pagetype.php" hash="f670440a3f90bfa9a48b406fc37d538c"/><file name="Product.php" hash="2da759eb9bd2bf13e5a8a92087981206"/><file name="Track.php" hash="aa6a9d870f14c4e3721675658dfb276e"/></dir><dir name="Helper"><file name="Data.php" hash="5040e70b54e323a88a319d4b8088a47c"/><file name="Data.php~" hash="ede50838de4fc53665c829bc3ef4e07c"/><file name="DateFormatter.php" hash="d8f963bd1f9fe390e038a2065fd5c4c4"/><file name="PriceFormatter.php" hash="9bc46d3afb4612131a29b9a1c2b82fad"/><file name="ProductFormatter.php" hash="4bb2579b007700a808cdcea4fdb978c8"/></dir><dir name="Model"><file name="Base.php" hash="957cc5bb083e9b49b5468c986a1e846a"/><file name="Bundle.php" hash="767a26eaefaed893d163737d64930933"/><file name="DataIntegration.php" hash="ff9dc202ea17e49ceaba09c6190492cd"/><dir name="Meta"><file name="Product.php" hash="6a037e5325193fae3147fc1a9891606c"/></dir><dir name="Mysql4"><dir name="Bundle"><file name="Collection.php" hash="021c49a92767b78e238477a3dc8da783"/></dir><file name="Bundle.php" hash="83ad548248f3ebcfc73158ab672cb683"/><file name="Setup.php" hash="664019080c6c0ebdbc50b889eac1e1e0"/></dir><file name="Observer.php" hash="8abc968469d1c8f1eee79925a26e2802"/><file name="Observer.php~" hash="f069d141e1bdae7c18a711b04aafa996"/><file name="Product.php" hash="f473c25a470a2509b00a4a15ed8b857f"/></dir><dir name="controllers"><file name="AddbundletocartController.php" hash="d9de59fcb68d0d27326f8ccfa24d1486"/><file name="AddbundletocartController.php~" hash="d9de59fcb68d0d27326f8ccfa24d1486"/><dir name="Adminhtml"><file name="DataIntegrationController.php" hash="0758d4716d337002a8c49f843e06cec2"/></dir><file name="ProductsApiController.php" hash="f6e9868dec4f496762bbeef51f9ee3bf"/><file name="ProductsApiController.php~" hash="f6e9868dec4f496762bbeef51f9ee3bf"/></dir><dir name="etc"><file name="config.xml" hash="e325bfebf76b9645d682714b0569de89"/><file name="config.xml~" hash="4137154b5643c28abbc48f230107ea13"/></dir><dir name="sql"><dir name="increasingly_analytics_setup"><file name="mysql-install-1.0.0.php" hash="bddf4e67e7b69c5604b448e3b1fa27a0"/><file name="mysql4-install-1.0.3.php" hash="e857df177cfbb887cece6de0ff5498b6"/><file name="mysql4-install-1.0.4.php" hash="e857df177cfbb887cece6de0ff5498b6"/><file name="mysql4-install-1.0.5.php" hash="e857df177cfbb887cece6de0ff5498b6"/><file name="mysql4-install-1.0.6.php" hash="e857df177cfbb887cece6de0ff5498b6"/><file name="mysql4-install-1.0.7.php" hash="e857df177cfbb887cece6de0ff5498b6"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="increasingly"><file name="dataintegration.phtml" hash="8a730e566c21b2155d6f3e4ca73a1b6d"/></dir></dir><dir name="layout"><file name="increasingly_analytics.xml" hash="d859a26dba5142f02e514f28f507891c"/></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="template"><dir name="increasingly"><file name="addtocart.phtml" hash="e3af2445ac014887b3072cf85dd81d4f"/><file name="cart.phtml" hash="1c5ee986109cfb4600d3e15057263d36"/><file name="category.phtml" hash="75e77b9d1cbbd1e0129c0c10737461e6"/><file name="element.phtml" hash="c5f1cbbc02801009247409890172ca4e"/><file name="embed.phtml" hash="52cde76a239e3084ce3a1254b004a742"/><file name="pagetype.phtml" hash="fe1a7f313c82f355f14d5f13c284cb28"/><file name="product.phtml" hash="14d24b0ced5abc85619aa3538b21f2f7"/><file name="track.phtml" hash="4473f97cc5aa3a02bf0a87877b14b5eb"/><file name="track.phtml~" hash="e016135e7157214d85e905ebc0f3e1b3"/></dir></dir><dir name="layout"><file name="increasingly_analytics.xml" hash="78766218deed3d60d4ab0fdee7729b91"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Increasingly_Analytics.xml" hash="d285a9ae62b5b0624b727e341fe8e005"/></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="increasingly"><file name="loader.gif" hash="a51c5608d01acf32df728f299767f82b"/></dir></dir></dir></dir></target></contents>
54
  <compatible/>
55
  <dependencies><required><php><min>5.2.0</min><max>7.0.7</max></php></required></dependencies>
56
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>increasingly_key</name>
4
+ <version>1.0.8</version>
5
  <stability>stable</stability>
6
  <license uri="https://opensource.org/licenses/osl-3.0.php">Open Software License (OSL)</license>
7
  <channel>community</channel>
44
  &#xD;
45
  We have a dashboard which provides you with in depth analytics and insights on what's sells together &amp; allows you to administer and manage your bundles.&#xD;
46
  </description>
47
+ <notes>Placeholder for bundle display above product details.&#xD;
48
+ Removed final price attribute while importing the product data.</notes>
 
49
  <authors><author><name>Increasingly</name><user>Increasingly</user><email>renu@increasingly.co</email></author><author><name>Increasingly</name><user>Increasingly</user><email>shree@increasingly.co</email></author><author><name>Increasingly</name><user>Increasingly</user><email>satish@increasingly.co</email></author></authors>
50
+ <date>2016-08-10</date>
51
+ <time>06:43:16</time>
52
+ <contents><target name="magecommunity"><dir name="Increasingly"><dir name="Analytics"><dir name="Block"><file name="Addtocart.php" hash="3429b60b501c7681a3c79fd46138b787"/><dir name="Adminhtml"><file name="DataIntegration.php" hash="b7c543b33f563ef458d403df94c62a4c"/></dir><file name="Cart.php" hash="56c9f503b7c55d835cbd93c675dcc338"/><file name="Category.php" hash="3b87f305e0957dd1fdace455c1f0fa7c"/><file name="Element.php" hash="8d533705e7a3c1ada7d775a6d9282f43"/><file name="Embed.php" hash="5ba08a6642ed22d8bb1a84ab0501f8dc"/><file name="Pagetype.php" hash="f670440a3f90bfa9a48b406fc37d538c"/><file name="Product.php" hash="2da759eb9bd2bf13e5a8a92087981206"/><file name="Track.php" hash="aa6a9d870f14c4e3721675658dfb276e"/></dir><dir name="Helper"><file name="Data.php" hash="5040e70b54e323a88a319d4b8088a47c"/><file name="DateFormatter.php" hash="d8f963bd1f9fe390e038a2065fd5c4c4"/><file name="PriceFormatter.php" hash="9bc46d3afb4612131a29b9a1c2b82fad"/><file name="ProductFormatter.php" hash="4bb2579b007700a808cdcea4fdb978c8"/></dir><dir name="Model"><file name="Base.php" hash="957cc5bb083e9b49b5468c986a1e846a"/><file name="Bundle.php" hash="767a26eaefaed893d163737d64930933"/><file name="DataIntegration.php" hash="ff9dc202ea17e49ceaba09c6190492cd"/><dir name="Meta"><file name="Product.php" hash="6a037e5325193fae3147fc1a9891606c"/></dir><dir name="Mysql4"><dir name="Bundle"><file name="Collection.php" hash="021c49a92767b78e238477a3dc8da783"/></dir><file name="Bundle.php" hash="83ad548248f3ebcfc73158ab672cb683"/><file name="Setup.php" hash="664019080c6c0ebdbc50b889eac1e1e0"/></dir><file name="Observer.php" hash="3f50c7b59b931584b18a2f9693cb7c72"/><file name="Product.php" hash="f473c25a470a2509b00a4a15ed8b857f"/></dir><dir name="controllers"><file name="AddbundletocartController.php" hash="d9de59fcb68d0d27326f8ccfa24d1486"/><dir name="Adminhtml"><file name="DataIntegrationController.php" hash="0758d4716d337002a8c49f843e06cec2"/></dir><file name="ProductsApiController.php" hash="0c74c69260853b878bb48e97253437bc"/></dir><dir name="etc"><file name="config.xml" hash="1284e9c24288d7081db6166cc2059a25"/></dir><dir name="sql"><dir name="increasingly_analytics_setup"><file name="mysql-install-1.0.0.php" hash="bddf4e67e7b69c5604b448e3b1fa27a0"/><file name="mysql4-install-1.0.3.php" hash="e857df177cfbb887cece6de0ff5498b6"/><file name="mysql4-install-1.0.4.php" hash="e857df177cfbb887cece6de0ff5498b6"/><file name="mysql4-install-1.0.5.php" hash="e857df177cfbb887cece6de0ff5498b6"/><file name="mysql4-install-1.0.6.php" hash="e857df177cfbb887cece6de0ff5498b6"/><file name="mysql4-install-1.0.7.php" hash="e857df177cfbb887cece6de0ff5498b6"/><file name="mysql4-install-1.0.8.php" hash="e857df177cfbb887cece6de0ff5498b6"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="increasingly"><file name="dataintegration.phtml" hash="8a730e566c21b2155d6f3e4ca73a1b6d"/></dir></dir><dir name="layout"><file name="increasingly_analytics.xml" hash="d859a26dba5142f02e514f28f507891c"/></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="template"><dir name="increasingly"><file name="addtocart.phtml" hash="e3af2445ac014887b3072cf85dd81d4f"/><file name="cart.phtml" hash="1c5ee986109cfb4600d3e15057263d36"/><file name="category.phtml" hash="75e77b9d1cbbd1e0129c0c10737461e6"/><file name="element.phtml" hash="c5f1cbbc02801009247409890172ca4e"/><file name="embed.phtml" hash="52cde76a239e3084ce3a1254b004a742"/><file name="pagetype.phtml" hash="fe1a7f313c82f355f14d5f13c284cb28"/><file name="product.phtml" hash="14d24b0ced5abc85619aa3538b21f2f7"/><file name="track.phtml" hash="4473f97cc5aa3a02bf0a87877b14b5eb"/></dir></dir><dir name="layout"><file name="increasingly_analytics.xml" hash="8fdd89adb4a85e83237ada872ba43f88"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Increasingly_Analytics.xml" hash="d285a9ae62b5b0624b727e341fe8e005"/></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="increasingly"><file name="loader.gif" hash="a51c5608d01acf32df728f299767f82b"/></dir></dir></dir></dir></target></contents>
53
  <compatible/>
54
  <dependencies><required><php><min>5.2.0</min><max>7.0.7</max></php></required></dependencies>
55
  </package>