Remarkety_Mgconnector - Version 1.4.9.4

Version Notes

No comments

Download this release

Release Info

Developer Remarkety
Extension Remarkety_Mgconnector
Version 1.4.9.4
Comparing to
See all releases


Code changes from version 1.4.9.3 to 1.4.9.4

CHANGELOG.txt CHANGED
@@ -1,3 +1,7 @@
 
 
 
 
1
  1.4.9.3
2
  -------
3
  Bugfix - Orders sync issue fixed
1
+ 1.4.9.4
2
+ -------
3
+ Skip orders with data errors
4
+
5
  1.4.9.3
6
  -------
7
  Bugfix - Orders sync issue fixed
app/code/community/Remarkety/Mgconnector/Model/Core.php CHANGED
@@ -17,7 +17,8 @@ define('REMARKETY_EXECUTION_TIME', 'EXECUTION_TIME_MS');
17
  define('REMARKETY_LOG', 'remarkety_mgconnector.log');
18
  define('REMARKETY_LOG_SEPARATOR', '|');
19
 
20
- class Remarkety_Mgconnector_Model_Core extends Mage_Core_Model_Abstract {
 
21
 
22
  const XPATH_CATEGORIES_TO_IGNORE = 'remarkety/mgconnector/categories-to-ignore';
23
  private $_categoriesToIgnore = array();
@@ -186,7 +187,7 @@ class Remarkety_Mgconnector_Model_Core extends Mage_Core_Model_Abstract {
186
  $logMsg = implode(REMARKETY_LOG_SEPARATOR, array($function, $status, $message, json_encode($data)));
187
  // $force = ($status != REMARKETY_MGCONNECTOR_CALLED_STATUS);
188
  if ($this->_sendLogInResponse)
189
- $this->_log[] = $logLevel.": ".$logMsg;
190
  Mage::log($logMsg, $logLevel, REMARKETY_LOG);
191
  }
192
 
@@ -195,7 +196,7 @@ class Remarkety_Mgconnector_Model_Core extends Mage_Core_Model_Abstract {
195
  $logMsg = implode(REMARKETY_LOG_SEPARATOR, array($function, $status, $message, json_encode($data)));
196
  // $force = ($status != REMARKETY_MGCONNECTOR_CALLED_STATUS);
197
  if ($this->_sendLogInResponse)
198
- $this->_log[] = Zend_Log::DEBUG.": ".$logMsg;
199
  Mage::log($logMsg, Zend_Log::DEBUG, REMARKETY_LOG);
200
  }
201
 
@@ -275,9 +276,9 @@ class Remarkety_Mgconnector_Model_Core extends Mage_Core_Model_Abstract {
275
  }
276
  }
277
  //if no categories found, get from parent product
278
- if($getFromParent && empty($categories)){
279
  $parent_id = $this->getProductParentId($product);
280
- if($parent_id !== false){
281
  $parentProduct = $this->loadProduct($parent_id);
282
  return $this->_productCategories($parentProduct, false);
283
  }
@@ -297,18 +298,20 @@ class Remarkety_Mgconnector_Model_Core extends Mage_Core_Model_Abstract {
297
  return $currencyInfo;
298
  }
299
 
300
- public function __construct() {
 
301
  $this->_startTime = microtime(true);
302
  $collection = Mage::getModel('core/config_data')->getCollection();
303
  $collection
304
  ->getSelect()
305
  ->where('path = ?', self::XPATH_CATEGORIES_TO_IGNORE);
306
  foreach ($collection as $config) {
307
- $this->_categoriesToIgnore = array_merge($this->_categoriesToIgnore, explode(",",$config->getValue()));
308
  }
309
  }
310
 
311
- public function getSubscribers($mage_store_view_id = null, $limit = null, $page = null, $sinceId = null) {
 
312
  register_shutdown_function('handleShutdown');
313
  $ret = array();
314
  $pageNumber = null;
@@ -356,7 +359,7 @@ class Remarkety_Mgconnector_Model_Core extends Mage_Core_Model_Abstract {
356
 
357
  $this->_debug(__FUNCTION__, REMARKETY_MGCONNECTOR_SUCCESS_STATUS, null, '');
358
  return $this->_wrapResponse($ret, REMARKETY_MGCONNECTOR_SUCCESS_STATUS);
359
- } catch (Mage_Core_Exception $e) {
360
  $this->_log(__FUNCTION__, REMARKETY_MGCONNECTOR_FAILED_STATUS, $e->getMessage(), $myArgs);
361
  return $this->_wrapResponse(null, REMARKETY_MGCONNECTOR_FAILED_STATUS, $e->getMessage());
362
  } catch (Exception $e) {
@@ -430,7 +433,7 @@ class Remarkety_Mgconnector_Model_Core extends Mage_Core_Model_Abstract {
430
  // $customersCollection->addFieldToFilter('store_id', array('eq' => $mage_store_view_id));
431
 
432
  $store = Mage::getModel('core/store')->load($mage_store_view_id);
433
- $name= $store->getName();
434
  // $viewName = Mage::getModel(""); XXX
435
  $customersCollection->addFieldToFilter('store_id', array('eq' => $mage_store_view_id)); //$mage_store_id));
436
  if ($updated_at_min != null) {
@@ -602,58 +605,63 @@ class Remarkety_Mgconnector_Model_Core extends Mage_Core_Model_Abstract {
602
  $orderIds = array();
603
 
604
  foreach ($ordersCollection as $order) {
605
- $orderData = $order->toArray();
606
- if (!empty($orderData['relation_child_id'])) {
607
- continue;
608
- }
609
- $orderIds[] = $orderData['entity_id'];
610
- $orderData['rem_main_increment_id'] = (empty($orderData['original_increment_id'])) ? $orderData['increment_id'] : $orderData['original_increment_id'];
611
- $orderData['currency'] = $this->_currencyInfo($orderData['order_currency_code']);
 
612
 
613
- $subscriberModel->loadByEmail($orderData['customer_email']);
614
- $orderData['customer_registered_to_newsletter'] = $subscriberModel->isSubscribed();
615
 
616
- $addressID = null;
617
 
618
- if (isset($orderData['billing_address_id']) && $orderData['billing_address_id']) {
619
- $addressID = $orderData['billing_address_id'];
620
- } elseif (isset($orderData['shipping_address_id']) && $orderData['shipping_address_id']) {
621
- $addressID = $orderData['shipping_address_id'];
622
- }
623
 
624
- if (!empty($addressID)) {
625
- $address = Mage::getModel('sales/order_address')->load($addressID)->toArray();
626
- $orderData['address'] = $address;
627
- }
628
 
629
- $storeUrl = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB);
630
 
631
- $itemsCollection = $order->getItemsCollection();
632
  // $itemsCollection->join(
633
  //
634
  // );
635
  // $itemsCollection = $order->getAllVisibleItems();
636
 
637
- foreach ($itemsCollection as $item) {
638
- $product = null;
639
 
640
- try {
641
- $itemData = $item->toArray();
642
- $productIdsToLoad[] = $itemData['product_id'];
643
- /* The item data is loaded later and populated for performance reasons - get all the products at once instead of one-by-one in a loop */
644
- $orderData['items'][$itemData['item_id']] = $itemData;
645
 
646
- } catch (Exception $e) {
647
- $this->_log(__FUNCTION__, 'Error in handling order items for order ID '.$orderData['entity_id'], $e->getMessage(), $myArgs);
 
648
  }
649
- }
650
 
651
- $groupModel->load($orderData['customer_group_id']);
652
- $groupName = $groupModel->getCustomerGroupCode();
653
- $orderData['customer_group'] = $groupName;
654
 
655
 
656
- $orders[] = $orderData;
 
 
 
 
657
  }
658
 
659
  //load all payment methods at once
@@ -664,36 +672,47 @@ class Remarkety_Mgconnector_Model_Core extends Mage_Core_Model_Abstract {
664
 
665
  $ret = array();
666
  foreach ($orders as &$orderData) {
667
- if (array_key_exists('items', $orderData)) {
668
- foreach ($orderData['items'] as &$itemData) {
669
- $product = $this->loadProduct($itemData['product_id']);
670
- if (empty($product)) {
671
- $this->debug("Could not load product, productID: ".$itemData['product_id']);
672
- continue;
673
- }
 
 
674
 
675
  // $product->setStoreId($mage_store_view_id)->load($product->getId());
676
- $itemData['base_image'] = $this->getImageUrl($product, 'image', $mage_store_view_id);
677
- $itemData['small_image'] = $this->getImageUrl($product, 'small', $mage_store_view_id);
678
- $itemData['thumbnail_image'] = $this->getImageUrl($product, 'thumbnail', $mage_store_view_id);
679
-
680
- $itemData['name'] = $this->getProductName($product, $mage_store_view_id);
681
-
682
- $itemData['type_id'] = $product->getData('type_id');
683
- //$itemData['categories'] = $this->_productCategories($product);
684
- $prodUrl = $this->getProdUrl($product, $storeUrl, $mage_store_view_id);
685
- $itemData['url_path'] = $prodUrl;
 
 
 
 
 
686
  }
687
- }
688
- //set payment method
689
- if(!empty($orderData['entity_id'])){
690
- if(isset($paymentMethods[$orderData['entity_id']])){
691
- $orderData['payment_method'] = $paymentMethods[$orderData['entity_id']];
692
  }
 
 
 
 
693
  }
694
- $ret[] = $this->_filter_output_data($orderData, $this->response_mask['order']);
695
  }
696
 
 
697
  $this->_debug(__FUNCTION__, REMARKETY_MGCONNECTOR_SUCCESS_STATUS, null, '');
698
  return $this->_wrapResponse($ret, REMARKETY_MGCONNECTOR_SUCCESS_STATUS);
699
  } catch (Mage_Core_Exception $e) {
@@ -754,12 +773,12 @@ class Remarkety_Mgconnector_Model_Core extends Mage_Core_Model_Abstract {
754
  }
755
  }
756
 
757
- if (!is_null($pageSize)){
758
  $quotesCollection->setPageSize($pageSize)->setCurPage($pageNumber);
759
  }
760
 
761
  //$storeUrl = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB);
762
- $this->_debug(__FUNCTION__, " collection SQL: ".$quotesCollection->getSelect()->__toString(), null, null);
763
 
764
  foreach ($quotesCollection as $quote) {
765
  $this->_debug(__FUNCTION__, REMARKETY_MGCONNECTOR_CALLED_STATUS, "inside carts loop", null);
@@ -832,12 +851,11 @@ class Remarkety_Mgconnector_Model_Core extends Mage_Core_Model_Abstract {
832
  $ret = array();
833
  $myArgs = func_get_args();
834
  $this->simpleProductsStandalone = Mage::helper('mgconnector/configuration')->getValue('configurable_standalone', false);
835
- try
836
- {
837
  try {
838
  $store = Mage::app()->getStore($mage_store_id);
839
  Mage::app()->setCurrentStore($store);
840
- } catch (Exception $ex){
841
  $this->_debug(__FUNCTION__, REMARKETY_MGCONNECTOR_ERROR, "Cannot set active store", $myArgs);
842
  }
843
 
@@ -965,8 +983,8 @@ class Remarkety_Mgconnector_Model_Core extends Mage_Core_Model_Abstract {
965
  */
966
 
967
  $parent_id = $this->getProductParentId($product);
968
- if($parent_id !== false){
969
- $productData['parent_id'] = $parent_id;
970
  }
971
 
972
  $productData = $this->_filter_output_data($productData, $this->response_mask['product']);
@@ -983,7 +1001,8 @@ class Remarkety_Mgconnector_Model_Core extends Mage_Core_Model_Abstract {
983
  }
984
  }
985
 
986
- private function getCategories($product) {
 
987
  $categories = array();
988
  $categoryCollection = $product->getCategoryCollection()->addAttributeToSelect('name');
989
  foreach ($categoryCollection as $category) {
@@ -1018,13 +1037,13 @@ class Remarkety_Mgconnector_Model_Core extends Mage_Core_Model_Abstract {
1018
  $storeUrl = $storeView->getBaseUrl(Mage_Core_Model_Store::URL_TYPE_LINK);
1019
  $ret = array(
1020
  'domain' => $baseUrl,
1021
- 'storeFrontUrl' => $storeUrl,
1022
  'name' => $storeName,
1023
- 'viewName' => $storeViewName,
1024
  'phone' => Mage::getStoreConfig('general/store_information/phone', $mage_store_view_id),
1025
  'contactEmail' => Mage::getStoreConfig('contacts/email/recipient_email', $mage_store_view_id),
1026
  'timezone' => Mage::getStoreConfig('general/locale/timezone', $mage_store_view_id),
1027
- 'locale' => Mage::getStoreConfig('general/locale/code', $mage_store_view_id),
1028
  'address' => Mage::getStoreConfig('general/store_information/address', $mage_store_view_id),
1029
  'country' => Mage::getStoreConfig('general/store_information/merchant_country', $mage_store_view_id),
1030
  'currency' => $currency,
@@ -1202,13 +1221,14 @@ class Remarkety_Mgconnector_Model_Core extends Mage_Core_Model_Abstract {
1202
  }
1203
  }
1204
 
1205
- public function getProductParentId($product){
 
1206
  if (!in_array($product->type_id, $this->_groupedTypes)) {
1207
  $arrayOfParentIds = Mage::helper('mgconnector/links')->getParentId($product->getId());
1208
  $parentId = null;
1209
 
1210
- if($arrayOfParentIds && count($arrayOfParentIds)) {
1211
- if(is_array($arrayOfParentIds)) {
1212
  $parentId = $arrayOfParentIds[0];
1213
  } else {
1214
  $parentId = $arrayOfParentIds;
@@ -1224,7 +1244,7 @@ class Remarkety_Mgconnector_Model_Core extends Mage_Core_Model_Abstract {
1224
 
1225
  public function getProdUrl($product, $storeUrl, $mage_store_view_id)
1226
  {
1227
- $this->_debug(__FUNCTION__, "Start - prod id ".$product->getId(), null, '');
1228
  $url = '';
1229
  $visibility = $product->getVisibility();
1230
  if ($visibility == 1 || !in_array($product->type_id, $this->_groupedTypes)) {
@@ -1240,7 +1260,7 @@ class Remarkety_Mgconnector_Model_Core extends Mage_Core_Model_Abstract {
1240
  }
1241
  }
1242
  if (!is_null($parentId)) {
1243
- $this->_debug(__FUNCTION__, "parent id ".$parentId, null, '');
1244
  $product_id = $parentId;
1245
  } else {
1246
  $product_id = $product->getId();
@@ -1249,24 +1269,24 @@ class Remarkety_Mgconnector_Model_Core extends Mage_Core_Model_Abstract {
1249
  $product_id = $product->getId();
1250
  }
1251
 
1252
- try{
1253
  $url = Mage::helper('mgconnector/urls')->getValue($product_id, $mage_store_view_id);
1254
- if(!empty($url)) {
1255
  $url = $storeUrl . $url;
1256
- if(Mage::getStoreConfig('catalog/seo/product_url_suffix', $mage_store_view_id)) {
1257
  $url .= Mage::getStoreConfig('catalog/seo/product_url_suffix', $mage_store_view_id);
1258
  }
1259
  }
1260
- $this->_debug(__FUNCTION__, "after setStoreId getProductUrl: ".$url, null, '');
1261
- }catch(Exception $e){
1262
  $this->_log(__FUNCTION__, "failed after setStoreId: ", $e->getMessage(), '');
1263
  }
1264
 
1265
- if(!empty($url)) {
1266
  return $url;
1267
  } else {
1268
  $getProductUrl = $product->getProductUrl();
1269
- $this->_debug(__FUNCTION__, "getProductUrl: ".$getProductUrl, null, '');
1270
  return $getProductUrl;
1271
  }
1272
 
@@ -1281,8 +1301,8 @@ class Remarkety_Mgconnector_Model_Core extends Mage_Core_Model_Abstract {
1281
  $arrayOfParentIds = Mage::helper('mgconnector/links')->getParentId($product->getId());
1282
  $parentId = null;
1283
 
1284
- if($arrayOfParentIds && count($arrayOfParentIds)) {
1285
- if(is_array($arrayOfParentIds)) {
1286
  $parentId = $arrayOfParentIds[0];
1287
  } else {
1288
  $parentId = $arrayOfParentIds;
@@ -1290,7 +1310,7 @@ class Remarkety_Mgconnector_Model_Core extends Mage_Core_Model_Abstract {
1290
  }
1291
 
1292
  if (!is_null($parentId)) {
1293
- $this->_debug(__FUNCTION__, null, "parent id: ".$parentId, '');
1294
  $product = $this->loadProduct($parentId, $mage_store_view_id);
1295
  }
1296
  } else {
@@ -1298,7 +1318,7 @@ class Remarkety_Mgconnector_Model_Core extends Mage_Core_Model_Abstract {
1298
  }
1299
  $this->_debug(__FUNCTION__, null, "Getting image url for product: " . $product->getId(), '');
1300
 
1301
- switch($type){
1302
  case "small":
1303
  $imagePath = $product->getSmallImage();
1304
  break;
@@ -1315,40 +1335,42 @@ class Remarkety_Mgconnector_Model_Core extends Mage_Core_Model_Abstract {
1315
 
1316
  }
1317
 
1318
- public function getCartRecoveryURL($cart_id){
 
1319
  $recovery = Mage::getModel('mgconnector/recovery');
1320
  $id = $recovery->encodeQuoteId($cart_id);
1321
  $url = (string)Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_LINK) . 'remarkety/recovery/cart/quote_id/' . $id;
1322
  return $url;
1323
  }
1324
-
1325
- public function getProductName($product, $mage_store_view_id){
 
1326
  $name = '';
1327
- if(!$this->simpleProductsStandalone && !in_array($product->type_id, $this->_groupedTypes)) {
1328
- $this->_debug(__FUNCTION__, null, "not config prod id ".$product->getId(), '');
1329
  $arrayOfParentIds = Mage::helper('mgconnector/links')->getParentId($product->getId());
1330
  $parentId = null;
1331
 
1332
- if($arrayOfParentIds && count($arrayOfParentIds)) {
1333
- if(is_array($arrayOfParentIds)) {
1334
  $parentId = $arrayOfParentIds[0];
1335
  } else {
1336
  $parentId = $arrayOfParentIds;
1337
  }
1338
  }
1339
 
1340
- if(!is_null($parentId)){
1341
- $this->_debug(__FUNCTION__, null, "parent id: ".$parentId, '');
1342
  $product = $this->loadProduct($parentId);
1343
  // $product->setStoreId($mage_store_view_id)->load($parentId);
1344
  //$product->setStoreId($mage_store_view_id);
1345
  }
1346
- }else{
1347
- $this->_debug(__FUNCTION__, null, "configurable prod id ".$product->getId(), '');
1348
  }
1349
 
1350
  $name = $product->getName();
1351
- $this->_debug(__FUNCTION__, null, "Prod name: ".$name, '');
1352
  return $name;
1353
  }
1354
 
@@ -1372,7 +1394,7 @@ class Remarkety_Mgconnector_Model_Core extends Mage_Core_Model_Abstract {
1372
  $this->_debug(__FUNCTION__, REMARKETY_MGCONNECTOR_FAILED_STATUS, $msg, $myArgs);
1373
  return $this->_wrapResponse(null, REMARKETY_MGCONNECTOR_FAILED_STATUS, $msg);
1374
  }
1375
- Mage::register('remarkety_subscriber_deleted',true, true);
1376
  $subscriber->unsubscribe();
1377
 
1378
  $msg = "Successfuly unsubscribed customer using email: " . $email;
@@ -1395,7 +1417,8 @@ class Remarkety_Mgconnector_Model_Core extends Mage_Core_Model_Abstract {
1395
  return $this->configurable_product_model;
1396
  }
1397
 
1398
- private function loadProduct($productId) {
 
1399
  if (!isset($this->_productCache[$productId])) {
1400
  $this->_productCache[$productId] = Mage::getModel("catalog/product")->load($productId);
1401
  }
@@ -1407,7 +1430,8 @@ class Remarkety_Mgconnector_Model_Core extends Mage_Core_Model_Abstract {
1407
  * @param $orderIds
1408
  * @return array
1409
  */
1410
- private function loadPaymentMethods($orderIds){
 
1411
 
1412
  $orderIds = array_unique($orderIds);
1413
  $paymentsCollection = Mage::getModel("sales/order_payment")
@@ -1420,14 +1444,14 @@ class Remarkety_Mgconnector_Model_Core extends Mage_Core_Model_Abstract {
1420
  $payments = array();
1421
  $paymentMethodsNames = array();
1422
 
1423
- foreach($paymentsCollection as $payment){
1424
  $row = $payment->toArray();
1425
- if(!isset($payments[$row['parent_id']])){
1426
  $method = $row['method'];
1427
  //convert method code to name
1428
- if(!isset($paymentMethodsNames[$method])){
1429
- $methodName = Mage::getStoreConfig('payment/'.$method.'/title');
1430
- if(!empty($methodName)){
1431
  $paymentMethodsNames[$method] = $methodName;
1432
  } else {
1433
  $paymentMethodsNames[$method] = $method;
@@ -1441,7 +1465,8 @@ class Remarkety_Mgconnector_Model_Core extends Mage_Core_Model_Abstract {
1441
  return $payments;
1442
  }
1443
 
1444
- private function loadProducts($storeId, $productIds, $loadParents = true) {
 
1445
  if (empty($productIds))
1446
  return;
1447
  $productIds = array_unique($productIds);
@@ -1455,7 +1480,7 @@ class Remarkety_Mgconnector_Model_Core extends Mage_Core_Model_Abstract {
1455
  ->addCategoryIds()
1456
  // ->addUrlRewrite()
1457
  ->addAttributeToSelect('*');
1458
- $productsCollection->load(false,true);
1459
  $parentIds = array();
1460
  foreach ($productsCollection as $product) {
1461
  $productId = $product->getId();
@@ -1469,11 +1494,13 @@ class Remarkety_Mgconnector_Model_Core extends Mage_Core_Model_Abstract {
1469
  $this->loadProducts($storeId, $parentIds, false);
1470
  }
1471
 
1472
- public function sendLogInResponse() {
 
1473
  $this->_sendLogInResponse = true;
1474
  }
1475
 
1476
- private function _setupConfiguration() {
 
1477
  $keys = array('categories-to-ignore', 'configurable_standalone');
1478
 
1479
  $this->simpleProductsStandalone = Mage::getStoreConfig('remarkety/mgconnector/configurable_standalone');
17
  define('REMARKETY_LOG', 'remarkety_mgconnector.log');
18
  define('REMARKETY_LOG_SEPARATOR', '|');
19
 
20
+ class Remarkety_Mgconnector_Model_Core extends Mage_Core_Model_Abstract
21
+ {
22
 
23
  const XPATH_CATEGORIES_TO_IGNORE = 'remarkety/mgconnector/categories-to-ignore';
24
  private $_categoriesToIgnore = array();
187
  $logMsg = implode(REMARKETY_LOG_SEPARATOR, array($function, $status, $message, json_encode($data)));
188
  // $force = ($status != REMARKETY_MGCONNECTOR_CALLED_STATUS);
189
  if ($this->_sendLogInResponse)
190
+ $this->_log[] = $logLevel . ": " . $logMsg;
191
  Mage::log($logMsg, $logLevel, REMARKETY_LOG);
192
  }
193
 
196
  $logMsg = implode(REMARKETY_LOG_SEPARATOR, array($function, $status, $message, json_encode($data)));
197
  // $force = ($status != REMARKETY_MGCONNECTOR_CALLED_STATUS);
198
  if ($this->_sendLogInResponse)
199
+ $this->_log[] = Zend_Log::DEBUG . ": " . $logMsg;
200
  Mage::log($logMsg, Zend_Log::DEBUG, REMARKETY_LOG);
201
  }
202
 
276
  }
277
  }
278
  //if no categories found, get from parent product
279
+ if ($getFromParent && empty($categories)) {
280
  $parent_id = $this->getProductParentId($product);
281
+ if ($parent_id !== false) {
282
  $parentProduct = $this->loadProduct($parent_id);
283
  return $this->_productCategories($parentProduct, false);
284
  }
298
  return $currencyInfo;
299
  }
300
 
301
+ public function __construct()
302
+ {
303
  $this->_startTime = microtime(true);
304
  $collection = Mage::getModel('core/config_data')->getCollection();
305
  $collection
306
  ->getSelect()
307
  ->where('path = ?', self::XPATH_CATEGORIES_TO_IGNORE);
308
  foreach ($collection as $config) {
309
+ $this->_categoriesToIgnore = array_merge($this->_categoriesToIgnore, explode(",", $config->getValue()));
310
  }
311
  }
312
 
313
+ public function getSubscribers($mage_store_view_id = null, $limit = null, $page = null, $sinceId = null)
314
+ {
315
  register_shutdown_function('handleShutdown');
316
  $ret = array();
317
  $pageNumber = null;
359
 
360
  $this->_debug(__FUNCTION__, REMARKETY_MGCONNECTOR_SUCCESS_STATUS, null, '');
361
  return $this->_wrapResponse($ret, REMARKETY_MGCONNECTOR_SUCCESS_STATUS);
362
+ } catch (Mage_Core_Exception $e) {
363
  $this->_log(__FUNCTION__, REMARKETY_MGCONNECTOR_FAILED_STATUS, $e->getMessage(), $myArgs);
364
  return $this->_wrapResponse(null, REMARKETY_MGCONNECTOR_FAILED_STATUS, $e->getMessage());
365
  } catch (Exception $e) {
433
  // $customersCollection->addFieldToFilter('store_id', array('eq' => $mage_store_view_id));
434
 
435
  $store = Mage::getModel('core/store')->load($mage_store_view_id);
436
+ $name = $store->getName();
437
  // $viewName = Mage::getModel(""); XXX
438
  $customersCollection->addFieldToFilter('store_id', array('eq' => $mage_store_view_id)); //$mage_store_id));
439
  if ($updated_at_min != null) {
605
  $orderIds = array();
606
 
607
  foreach ($ordersCollection as $order) {
608
+ try {
609
+ $orderData = $order->toArray();
610
+ if (!empty($orderData['relation_child_id'])) {
611
+ continue;
612
+ }
613
+ $orderIds[] = $orderData['entity_id'];
614
+ $orderData['rem_main_increment_id'] = (empty($orderData['original_increment_id'])) ? $orderData['increment_id'] : $orderData['original_increment_id'];
615
+ $orderData['currency'] = $this->_currencyInfo($orderData['order_currency_code']);
616
 
617
+ $subscriberModel->loadByEmail($orderData['customer_email']);
618
+ $orderData['customer_registered_to_newsletter'] = $subscriberModel->isSubscribed();
619
 
620
+ $addressID = null;
621
 
622
+ if (isset($orderData['billing_address_id']) && $orderData['billing_address_id']) {
623
+ $addressID = $orderData['billing_address_id'];
624
+ } elseif (isset($orderData['shipping_address_id']) && $orderData['shipping_address_id']) {
625
+ $addressID = $orderData['shipping_address_id'];
626
+ }
627
 
628
+ if (!empty($addressID)) {
629
+ $address = Mage::getModel('sales/order_address')->load($addressID)->toArray();
630
+ $orderData['address'] = $address;
631
+ }
632
 
633
+ $storeUrl = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB);
634
 
635
+ $itemsCollection = $order->getItemsCollection();
636
  // $itemsCollection->join(
637
  //
638
  // );
639
  // $itemsCollection = $order->getAllVisibleItems();
640
 
641
+ foreach ($itemsCollection as $item) {
642
+ $product = null;
643
 
644
+ try {
645
+ $itemData = $item->toArray();
646
+ $productIdsToLoad[] = $itemData['product_id'];
647
+ /* The item data is loaded later and populated for performance reasons - get all the products at once instead of one-by-one in a loop */
648
+ $orderData['items'][$itemData['item_id']] = $itemData;
649
 
650
+ } catch (Exception $e) {
651
+ $this->_log(__FUNCTION__, 'Error in handling order items for order ID ' . $orderData['entity_id'], $e->getMessage(), $myArgs);
652
+ }
653
  }
 
654
 
655
+ $groupModel->load($orderData['customer_group_id']);
656
+ $groupName = $groupModel->getCustomerGroupCode();
657
+ $orderData['customer_group'] = $groupName;
658
 
659
 
660
+ $orders[] = $orderData;
661
+ } catch (Exception $e) {
662
+ $this->_log(__FUNCTION__, REMARKETY_MGCONNECTOR_FAILED_STATUS, 'Fetch order failed. continue to next order - ' . $e->getMessage(), $myArgs);
663
+ continue;
664
+ }
665
  }
666
 
667
  //load all payment methods at once
672
 
673
  $ret = array();
674
  foreach ($orders as &$orderData) {
675
+ try {
676
+ if (array_key_exists('items', $orderData)) {
677
+ foreach ($orderData['items'] as &$itemData) {
678
+ try {
679
+ $product = $this->loadProduct($itemData['product_id']);
680
+ if (empty($product)) {
681
+ $this->debug("Could not load product, productID: " . $itemData['product_id']);
682
+ continue;
683
+ }
684
 
685
  // $product->setStoreId($mage_store_view_id)->load($product->getId());
686
+ $itemData['base_image'] = $this->getImageUrl($product, 'image', $mage_store_view_id);
687
+ $itemData['small_image'] = $this->getImageUrl($product, 'small', $mage_store_view_id);
688
+ $itemData['thumbnail_image'] = $this->getImageUrl($product, 'thumbnail', $mage_store_view_id);
689
+
690
+ $itemData['name'] = $this->getProductName($product, $mage_store_view_id);
691
+
692
+ $itemData['type_id'] = $product->getData('type_id');
693
+ //$itemData['categories'] = $this->_productCategories($product);
694
+ $prodUrl = $this->getProdUrl($product, $storeUrl, $mage_store_view_id);
695
+ $itemData['url_path'] = $prodUrl;
696
+ } catch (Exception $e) {
697
+ $this->_log(__FUNCTION__, REMARKETY_MGCONNECTOR_FAILED_STATUS, 'Handle order items data failed. continue to next item - ' . $e->getMessage(), $myArgs);
698
+ continue;
699
+ }
700
+ }
701
  }
702
+ //set payment method
703
+ if (!empty($orderData['entity_id'])) {
704
+ if (isset($paymentMethods[$orderData['entity_id']])) {
705
+ $orderData['payment_method'] = $paymentMethods[$orderData['entity_id']];
706
+ }
707
  }
708
+ $ret[] = $this->_filter_output_data($orderData, $this->response_mask['order']);
709
+ } catch (Exception $e) {
710
+ $this->_log(__FUNCTION__, REMARKETY_MGCONNECTOR_FAILED_STATUS, 'Handle order failed. continue to next order - ' . $e->getMessage(), $myArgs);
711
+ continue;
712
  }
 
713
  }
714
 
715
+
716
  $this->_debug(__FUNCTION__, REMARKETY_MGCONNECTOR_SUCCESS_STATUS, null, '');
717
  return $this->_wrapResponse($ret, REMARKETY_MGCONNECTOR_SUCCESS_STATUS);
718
  } catch (Mage_Core_Exception $e) {
773
  }
774
  }
775
 
776
+ if (!is_null($pageSize)) {
777
  $quotesCollection->setPageSize($pageSize)->setCurPage($pageNumber);
778
  }
779
 
780
  //$storeUrl = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB);
781
+ $this->_debug(__FUNCTION__, " collection SQL: " . $quotesCollection->getSelect()->__toString(), null, null);
782
 
783
  foreach ($quotesCollection as $quote) {
784
  $this->_debug(__FUNCTION__, REMARKETY_MGCONNECTOR_CALLED_STATUS, "inside carts loop", null);
851
  $ret = array();
852
  $myArgs = func_get_args();
853
  $this->simpleProductsStandalone = Mage::helper('mgconnector/configuration')->getValue('configurable_standalone', false);
854
+ try {
 
855
  try {
856
  $store = Mage::app()->getStore($mage_store_id);
857
  Mage::app()->setCurrentStore($store);
858
+ } catch (Exception $ex) {
859
  $this->_debug(__FUNCTION__, REMARKETY_MGCONNECTOR_ERROR, "Cannot set active store", $myArgs);
860
  }
861
 
983
  */
984
 
985
  $parent_id = $this->getProductParentId($product);
986
+ if ($parent_id !== false) {
987
+ $productData['parent_id'] = $parent_id;
988
  }
989
 
990
  $productData = $this->_filter_output_data($productData, $this->response_mask['product']);
1001
  }
1002
  }
1003
 
1004
+ private function getCategories($product)
1005
+ {
1006
  $categories = array();
1007
  $categoryCollection = $product->getCategoryCollection()->addAttributeToSelect('name');
1008
  foreach ($categoryCollection as $category) {
1037
  $storeUrl = $storeView->getBaseUrl(Mage_Core_Model_Store::URL_TYPE_LINK);
1038
  $ret = array(
1039
  'domain' => $baseUrl,
1040
+ 'storeFrontUrl' => $storeUrl,
1041
  'name' => $storeName,
1042
+ 'viewName' => $storeViewName,
1043
  'phone' => Mage::getStoreConfig('general/store_information/phone', $mage_store_view_id),
1044
  'contactEmail' => Mage::getStoreConfig('contacts/email/recipient_email', $mage_store_view_id),
1045
  'timezone' => Mage::getStoreConfig('general/locale/timezone', $mage_store_view_id),
1046
+ 'locale' => Mage::getStoreConfig('general/locale/code', $mage_store_view_id),
1047
  'address' => Mage::getStoreConfig('general/store_information/address', $mage_store_view_id),
1048
  'country' => Mage::getStoreConfig('general/store_information/merchant_country', $mage_store_view_id),
1049
  'currency' => $currency,
1221
  }
1222
  }
1223
 
1224
+ public function getProductParentId($product)
1225
+ {
1226
  if (!in_array($product->type_id, $this->_groupedTypes)) {
1227
  $arrayOfParentIds = Mage::helper('mgconnector/links')->getParentId($product->getId());
1228
  $parentId = null;
1229
 
1230
+ if ($arrayOfParentIds && count($arrayOfParentIds)) {
1231
+ if (is_array($arrayOfParentIds)) {
1232
  $parentId = $arrayOfParentIds[0];
1233
  } else {
1234
  $parentId = $arrayOfParentIds;
1244
 
1245
  public function getProdUrl($product, $storeUrl, $mage_store_view_id)
1246
  {
1247
+ $this->_debug(__FUNCTION__, "Start - prod id " . $product->getId(), null, '');
1248
  $url = '';
1249
  $visibility = $product->getVisibility();
1250
  if ($visibility == 1 || !in_array($product->type_id, $this->_groupedTypes)) {
1260
  }
1261
  }
1262
  if (!is_null($parentId)) {
1263
+ $this->_debug(__FUNCTION__, "parent id " . $parentId, null, '');
1264
  $product_id = $parentId;
1265
  } else {
1266
  $product_id = $product->getId();
1269
  $product_id = $product->getId();
1270
  }
1271
 
1272
+ try {
1273
  $url = Mage::helper('mgconnector/urls')->getValue($product_id, $mage_store_view_id);
1274
+ if (!empty($url)) {
1275
  $url = $storeUrl . $url;
1276
+ if (Mage::getStoreConfig('catalog/seo/product_url_suffix', $mage_store_view_id)) {
1277
  $url .= Mage::getStoreConfig('catalog/seo/product_url_suffix', $mage_store_view_id);
1278
  }
1279
  }
1280
+ $this->_debug(__FUNCTION__, "after setStoreId getProductUrl: " . $url, null, '');
1281
+ } catch (Exception $e) {
1282
  $this->_log(__FUNCTION__, "failed after setStoreId: ", $e->getMessage(), '');
1283
  }
1284
 
1285
+ if (!empty($url)) {
1286
  return $url;
1287
  } else {
1288
  $getProductUrl = $product->getProductUrl();
1289
+ $this->_debug(__FUNCTION__, "getProductUrl: " . $getProductUrl, null, '');
1290
  return $getProductUrl;
1291
  }
1292
 
1301
  $arrayOfParentIds = Mage::helper('mgconnector/links')->getParentId($product->getId());
1302
  $parentId = null;
1303
 
1304
+ if ($arrayOfParentIds && count($arrayOfParentIds)) {
1305
+ if (is_array($arrayOfParentIds)) {
1306
  $parentId = $arrayOfParentIds[0];
1307
  } else {
1308
  $parentId = $arrayOfParentIds;
1310
  }
1311
 
1312
  if (!is_null($parentId)) {
1313
+ $this->_debug(__FUNCTION__, null, "parent id: " . $parentId, '');
1314
  $product = $this->loadProduct($parentId, $mage_store_view_id);
1315
  }
1316
  } else {
1318
  }
1319
  $this->_debug(__FUNCTION__, null, "Getting image url for product: " . $product->getId(), '');
1320
 
1321
+ switch ($type) {
1322
  case "small":
1323
  $imagePath = $product->getSmallImage();
1324
  break;
1335
 
1336
  }
1337
 
1338
+ public function getCartRecoveryURL($cart_id)
1339
+ {
1340
  $recovery = Mage::getModel('mgconnector/recovery');
1341
  $id = $recovery->encodeQuoteId($cart_id);
1342
  $url = (string)Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_LINK) . 'remarkety/recovery/cart/quote_id/' . $id;
1343
  return $url;
1344
  }
1345
+
1346
+ public function getProductName($product, $mage_store_view_id)
1347
+ {
1348
  $name = '';
1349
+ if (!$this->simpleProductsStandalone && !in_array($product->type_id, $this->_groupedTypes)) {
1350
+ $this->_debug(__FUNCTION__, null, "not config prod id " . $product->getId(), '');
1351
  $arrayOfParentIds = Mage::helper('mgconnector/links')->getParentId($product->getId());
1352
  $parentId = null;
1353
 
1354
+ if ($arrayOfParentIds && count($arrayOfParentIds)) {
1355
+ if (is_array($arrayOfParentIds)) {
1356
  $parentId = $arrayOfParentIds[0];
1357
  } else {
1358
  $parentId = $arrayOfParentIds;
1359
  }
1360
  }
1361
 
1362
+ if (!is_null($parentId)) {
1363
+ $this->_debug(__FUNCTION__, null, "parent id: " . $parentId, '');
1364
  $product = $this->loadProduct($parentId);
1365
  // $product->setStoreId($mage_store_view_id)->load($parentId);
1366
  //$product->setStoreId($mage_store_view_id);
1367
  }
1368
+ } else {
1369
+ $this->_debug(__FUNCTION__, null, "configurable prod id " . $product->getId(), '');
1370
  }
1371
 
1372
  $name = $product->getName();
1373
+ $this->_debug(__FUNCTION__, null, "Prod name: " . $name, '');
1374
  return $name;
1375
  }
1376
 
1394
  $this->_debug(__FUNCTION__, REMARKETY_MGCONNECTOR_FAILED_STATUS, $msg, $myArgs);
1395
  return $this->_wrapResponse(null, REMARKETY_MGCONNECTOR_FAILED_STATUS, $msg);
1396
  }
1397
+ Mage::register('remarkety_subscriber_deleted', true, true);
1398
  $subscriber->unsubscribe();
1399
 
1400
  $msg = "Successfuly unsubscribed customer using email: " . $email;
1417
  return $this->configurable_product_model;
1418
  }
1419
 
1420
+ private function loadProduct($productId)
1421
+ {
1422
  if (!isset($this->_productCache[$productId])) {
1423
  $this->_productCache[$productId] = Mage::getModel("catalog/product")->load($productId);
1424
  }
1430
  * @param $orderIds
1431
  * @return array
1432
  */
1433
+ private function loadPaymentMethods($orderIds)
1434
+ {
1435
 
1436
  $orderIds = array_unique($orderIds);
1437
  $paymentsCollection = Mage::getModel("sales/order_payment")
1444
  $payments = array();
1445
  $paymentMethodsNames = array();
1446
 
1447
+ foreach ($paymentsCollection as $payment) {
1448
  $row = $payment->toArray();
1449
+ if (!isset($payments[$row['parent_id']])) {
1450
  $method = $row['method'];
1451
  //convert method code to name
1452
+ if (!isset($paymentMethodsNames[$method])) {
1453
+ $methodName = Mage::getStoreConfig('payment/' . $method . '/title');
1454
+ if (!empty($methodName)) {
1455
  $paymentMethodsNames[$method] = $methodName;
1456
  } else {
1457
  $paymentMethodsNames[$method] = $method;
1465
  return $payments;
1466
  }
1467
 
1468
+ private function loadProducts($storeId, $productIds, $loadParents = true)
1469
+ {
1470
  if (empty($productIds))
1471
  return;
1472
  $productIds = array_unique($productIds);
1480
  ->addCategoryIds()
1481
  // ->addUrlRewrite()
1482
  ->addAttributeToSelect('*');
1483
+ $productsCollection->load(false, true);
1484
  $parentIds = array();
1485
  foreach ($productsCollection as $product) {
1486
  $productId = $product->getId();
1494
  $this->loadProducts($storeId, $parentIds, false);
1495
  }
1496
 
1497
+ public function sendLogInResponse()
1498
+ {
1499
  $this->_sendLogInResponse = true;
1500
  }
1501
 
1502
+ private function _setupConfiguration()
1503
+ {
1504
  $keys = array('categories-to-ignore', 'configurable_standalone');
1505
 
1506
  $this->simpleProductsStandalone = Mage::getStoreConfig('remarkety/mgconnector/configurable_standalone');
app/code/community/Remarkety/Mgconnector/etc/config.xml CHANGED
@@ -2,7 +2,7 @@
2
  <config>
3
  <modules>
4
  <Remarkety_Mgconnector>
5
- <version>1.4.9.3</version>
6
  </Remarkety_Mgconnector>
7
  </modules>
8
  <global>
2
  <config>
3
  <modules>
4
  <Remarkety_Mgconnector>
5
+ <version>1.4.9.4</version>
6
  </Remarkety_Mgconnector>
7
  </modules>
8
  <global>
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Remarkety_Mgconnector</name>
4
- <version>1.4.9.3</version>
5
  <stability>stable</stability>
6
  <license uri="http://www.gnu.org/licenses/gpl-3.0.html">GPL v3</license>
7
  <channel>community</channel>
@@ -9,11 +9,11 @@
9
  <summary>Remarkety Magento Connector</summary>
10
  <description>Remarkety Magento Connector</description>
11
  <notes>No comments</notes>
12
- <date>2016-12-04</date>
13
- <time>8-36-38</time>
14
  <contents>
15
  <target name="magecommunity">
16
- <dir name="Remarkety"><dir name="Mgconnector"><dir name="Block"><dir name="Adminhtml"><dir name="Configuration"><dir name="Complete"><file name="Form.php" hash="e6dc10d742071fe8d041801d4ae605ff"/></dir><file name="Complete.php" hash="d816f575e8ef99c8dbb4440666963bd0"/><dir name="Configuration"><file name="Form.php" hash="861b674ee5ac1e384fd68e29bd59bb02"/></dir><file name="Configuration.php" hash="8f8c4988205d9d1e2c7cd23c27a9483f"/><dir name="Install"><file name="Form.php" hash="cede3e19bde805c40342ea26e1deeda5"/></dir><file name="Install.php" hash="9c093e25a8cc9a1fe16c87cfea2e3819"/><dir name="Upgrade"><file name="Form.php" hash="9af9dbeae95cbcdae2ec32632447f9c6"/></dir><file name="Upgrade.php" hash="93222bbdfff6b417b4b6ecbfc7c3d764"/></dir><file name="Configuration.php" hash="4df74b83acfbbe6e6fdaa708f0d9ba7e"/><dir name="Extension"><file name="RewardPoints.php" hash="82e320930f59dfd45e5aa73005118833"/></dir><dir name="Install"><dir name="Complete"><file name="Form.php" hash="fd219a65921dba3099ba77166f59e8da"/></dir><file name="Complete.php" hash="c20351873d05cde757620ae6458c1ec4"/><dir name="Install"><dir name="Create"><file name="Form.php" hash="af271c9df233ac8164dfa73216a524fc"/></dir><file name="Create.php" hash="bcd942c4fd64543c1b65001ec84d0d71"/><dir name="Login"><file name="Form.php" hash="bb431cadabe945c82df6cb921c5e2c30"/></dir><file name="Login.php" hash="6f7e30f2c36e56925be25496fde1e29a"/></dir><dir name="Upgrade"><file name="Form.php" hash="490a20b1e39d153af18e90844593c772"/></dir><file name="Upgrade.php" hash="5e30edfcc5954ccf65dcd36192356bed"/><dir name="Welcome"><file name="Form.php" hash="b4f135c3c0106a8391931d6d5865d599"/><file name="Store.php" hash="c4be91045c5ce42128f3c22350ac589b"/></dir><file name="Welcome.php" hash="de47e1c94e4073e2d2af94a0b5455250"/></dir><dir name="Queue"><dir name="Configure"><file name="Form.php" hash="4668539bf05e44ec9cdfcf2388277e9a"/></dir><file name="Configure.php" hash="87841e46d93c568bdd09304d016de589"/><dir name="Grid"><dir name="Column"><dir name="Renderer"><file name="EventType.php" hash="13fd2faaa07dc11d6052ab9e0c6a4261"/><file name="Status.php" hash="7f087c6d8e55b67d5a7781a31d1ed924"/></dir></dir></dir><file name="Grid.php" hash="f822b539114f10256a69333c8bf4a2e6"/></dir><file name="Queue.php" hash="b778ce9202431147083365b8021103d0"/></dir><dir name="Tracking"><file name="Base.php" hash="f80c74e11c575b27110505d51cb4d6fc"/><file name="General.php" hash="2fbff52cfe2924412376bbb4328068be"/><file name="Product.php" hash="11fd52b220b73fb5f2dc87a4684b056a"/></dir></dir><dir name="Helper"><file name="Configuration.php" hash="45084eee5817158fbf19959217797c6e"/><file name="Data.php" hash="e07e033f6594609aa78c82a45708dd85"/><file name="Extension.php" hash="5788a232ffaa32674b4bfc1e12e4ea98"/><file name="Links.php" hash="9f154ee8056f27f8b42f1a42880bb90a"/><file name="Urls.php" hash="2d431aa22e9cd1595c421502ecda62b8"/></dir><dir name="Model"><dir name="Core"><file name="Api.php" hash="fc55e8b87e999498bb14340db7e9cde4"/></dir><file name="Core.php" hash="f40227733f4e02a32ff6fb958db45381"/><dir name="Extension"><dir name="RewardPoints"><file name="AbstractIntegration.php" hash="4ac34942072ce49d2971065a82d1068c"/><file name="IntegrationInterface.php" hash="f95f9f1e243c9fd920d27b9299b90f72"/><file name="MagestoreRewardPoints.php" hash="70c4c74fedd4bfb717132d6d825e438d"/><dir name="Observer"><file name="AbstractObserver.php" hash="eb710b7582050de644de2a8402d759ec"/><file name="MagestoreRewardPoints.php" hash="bac2ae11f94aa923accb0437027b4bec"/></dir></dir></dir><file name="Install.php" hash="902f33bd045e653e9c4fed2ce632b26e"/><file name="Observer.php" hash="a39ccd3d09f949b86d8d5a4b5aa94a9e"/><file name="Queue.php" hash="afda656a56b9d44d2ce18a60fdce0912"/><file name="Recovery.php" hash="69bd78f2a3d92db91601cf2afa9c131c"/><file name="Request.php" hash="e7e8860a186ae21a7eee44f6f49d6a8c"/><dir name="Resource"><file name="Coupon.php" hash="6079c05e422e9c1ad5327fc881cee7e3"/><dir name="Queue"><file name="Collection.php" hash="61b5b2fb72b1cbc9465b8efa6f161e46"/></dir><file name="Queue.php" hash="fd9ce12e48148c2eb88db7336b43e5ac"/><dir name="Rule"><file name="Collection.php" hash="d38eed437f15d67b21c3be935053fea5"/></dir><file name="Setup.php" hash="5387a1470bf28911ba531ed88e156569"/></dir><file name="Webtracking.php" hash="e5b5f1d1bcd50d83e56ce8e3ba910de7"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="ConfigureController.php" hash="0b7a6beed2fc4eed01ad7c3363a73dbb"/><dir name="Extension"><file name="AbstractController.php" hash="fa816f490f29820c3b3faa17a3fc00e5"/><file name="RewardPointsController.php" hash="3e94e5ae4d467abf03f41e260b0421f9"/></dir><file name="InstallController.php" hash="be36853b940c958f29fe00535eea1df1"/><file name="MgconnectorController.php" hash="8eecb0d7625336661d2b541d64999f8a"/><file name="QueueController.php" hash="b8c8a0ab8c4efde1fdc9283a37f93b4e"/></dir><file name="RecoveryController.php" hash="a2493669b27287ceb4ada2f9128f5c08"/><file name="WebtrackingController.php" hash="03835c6f4760d203ed81dcea6b591de5"/></dir><dir name="etc"><file name="adminhtml.xml" hash="a417737a2225ef9f70b47eef77d75b7c"/><file name="api.xml" hash="9f6d5fd3330bb0640f97efc3f819e684"/><file name="config.xml" hash="a268ed7e0ac479c3cb1ec57159200488"/></dir><dir name="sql"><dir name="mgconnector_setup"><file name="mysql4-install-1.0.0.13.php" hash="6d0bc421987b0238e350003629e8c464"/><file name="mysql4-upgrade-1.0.0.13-1.0.0.14.php" hash="2c28f665f2a8f78cdfc0b121703734af"/><file name="mysql4-upgrade-1.0.0.14-1.0.0.15.php" hash="284433b68df4ce4e83389db33f4a197c"/><file name="mysql4-upgrade-1.0.0.14-1.1.0.0.php" hash="2042704f23d7337ba3d0901f662096a8"/><file name="mysql4-upgrade-1.1.0.5-1.1.0.6.php" hash="2cc5dc8b986cd4ea1a70519ca59a7be9"/><file name="mysql4-upgrade-1.1.2.8-1.1.2.9.php" hash="ef7be7f476ed01e81fe8f9a62b63d008"/><file name="mysql4-upgrade-1.1.2.8-1.3.0.0.php" hash="fef6b0ee2a43cd42036ca12915885794"/><file name="mysql4-upgrade-1.1.2.9-1.1.3.0.php" hash="4871718266ef707c3b136e6d5591ed25"/><file name="mysql4-upgrade-1.4.7.2-1.4.8.0.php" hash="d2b686bdedc6645a5c4f9609c6cea434"/></dir></dir></dir></dir></target>
17
  <target name="mageetc">
18
  <dir name="modules"><file name="Remarkety_Mgconnector.xml" hash="d584b234f653fbf34376e7dcb8caf117"/></dir></target>
19
  <target name="magedesign">
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Remarkety_Mgconnector</name>
4
+ <version>1.4.9.4</version>
5
  <stability>stable</stability>
6
  <license uri="http://www.gnu.org/licenses/gpl-3.0.html">GPL v3</license>
7
  <channel>community</channel>
9
  <summary>Remarkety Magento Connector</summary>
10
  <description>Remarkety Magento Connector</description>
11
  <notes>No comments</notes>
12
+ <date>2016-12-07</date>
13
+ <time>10-23-43</time>
14
  <contents>
15
  <target name="magecommunity">
16
+ <dir name="Remarkety"><dir name="Mgconnector"><dir name="Block"><dir name="Adminhtml"><dir name="Configuration"><dir name="Complete"><file name="Form.php" hash="e6dc10d742071fe8d041801d4ae605ff"/></dir><file name="Complete.php" hash="d816f575e8ef99c8dbb4440666963bd0"/><dir name="Configuration"><file name="Form.php" hash="861b674ee5ac1e384fd68e29bd59bb02"/></dir><file name="Configuration.php" hash="8f8c4988205d9d1e2c7cd23c27a9483f"/><dir name="Install"><file name="Form.php" hash="cede3e19bde805c40342ea26e1deeda5"/></dir><file name="Install.php" hash="9c093e25a8cc9a1fe16c87cfea2e3819"/><dir name="Upgrade"><file name="Form.php" hash="9af9dbeae95cbcdae2ec32632447f9c6"/></dir><file name="Upgrade.php" hash="93222bbdfff6b417b4b6ecbfc7c3d764"/></dir><file name="Configuration.php" hash="4df74b83acfbbe6e6fdaa708f0d9ba7e"/><dir name="Extension"><file name="RewardPoints.php" hash="82e320930f59dfd45e5aa73005118833"/></dir><dir name="Install"><dir name="Complete"><file name="Form.php" hash="fd219a65921dba3099ba77166f59e8da"/></dir><file name="Complete.php" hash="c20351873d05cde757620ae6458c1ec4"/><dir name="Install"><dir name="Create"><file name="Form.php" hash="af271c9df233ac8164dfa73216a524fc"/></dir><file name="Create.php" hash="bcd942c4fd64543c1b65001ec84d0d71"/><dir name="Login"><file name="Form.php" hash="bb431cadabe945c82df6cb921c5e2c30"/></dir><file name="Login.php" hash="6f7e30f2c36e56925be25496fde1e29a"/></dir><dir name="Upgrade"><file name="Form.php" hash="490a20b1e39d153af18e90844593c772"/></dir><file name="Upgrade.php" hash="5e30edfcc5954ccf65dcd36192356bed"/><dir name="Welcome"><file name="Form.php" hash="b4f135c3c0106a8391931d6d5865d599"/><file name="Store.php" hash="c4be91045c5ce42128f3c22350ac589b"/></dir><file name="Welcome.php" hash="de47e1c94e4073e2d2af94a0b5455250"/></dir><dir name="Queue"><dir name="Configure"><file name="Form.php" hash="4668539bf05e44ec9cdfcf2388277e9a"/></dir><file name="Configure.php" hash="87841e46d93c568bdd09304d016de589"/><dir name="Grid"><dir name="Column"><dir name="Renderer"><file name="EventType.php" hash="13fd2faaa07dc11d6052ab9e0c6a4261"/><file name="Status.php" hash="7f087c6d8e55b67d5a7781a31d1ed924"/></dir></dir></dir><file name="Grid.php" hash="f822b539114f10256a69333c8bf4a2e6"/></dir><file name="Queue.php" hash="b778ce9202431147083365b8021103d0"/></dir><dir name="Tracking"><file name="Base.php" hash="f80c74e11c575b27110505d51cb4d6fc"/><file name="General.php" hash="2fbff52cfe2924412376bbb4328068be"/><file name="Product.php" hash="11fd52b220b73fb5f2dc87a4684b056a"/></dir></dir><dir name="Helper"><file name="Configuration.php" hash="45084eee5817158fbf19959217797c6e"/><file name="Data.php" hash="e07e033f6594609aa78c82a45708dd85"/><file name="Extension.php" hash="5788a232ffaa32674b4bfc1e12e4ea98"/><file name="Links.php" hash="9f154ee8056f27f8b42f1a42880bb90a"/><file name="Urls.php" hash="2d431aa22e9cd1595c421502ecda62b8"/></dir><dir name="Model"><dir name="Core"><file name="Api.php" hash="fc55e8b87e999498bb14340db7e9cde4"/></dir><file name="Core.php" hash="9bd2a91e901901fd13af3b4c7e14fa13"/><dir name="Extension"><dir name="RewardPoints"><file name="AbstractIntegration.php" hash="4ac34942072ce49d2971065a82d1068c"/><file name="IntegrationInterface.php" hash="f95f9f1e243c9fd920d27b9299b90f72"/><file name="MagestoreRewardPoints.php" hash="70c4c74fedd4bfb717132d6d825e438d"/><dir name="Observer"><file name="AbstractObserver.php" hash="eb710b7582050de644de2a8402d759ec"/><file name="MagestoreRewardPoints.php" hash="bac2ae11f94aa923accb0437027b4bec"/></dir></dir></dir><file name="Install.php" hash="902f33bd045e653e9c4fed2ce632b26e"/><file name="Observer.php" hash="a39ccd3d09f949b86d8d5a4b5aa94a9e"/><file name="Queue.php" hash="afda656a56b9d44d2ce18a60fdce0912"/><file name="Recovery.php" hash="69bd78f2a3d92db91601cf2afa9c131c"/><file name="Request.php" hash="e7e8860a186ae21a7eee44f6f49d6a8c"/><dir name="Resource"><file name="Coupon.php" hash="6079c05e422e9c1ad5327fc881cee7e3"/><dir name="Queue"><file name="Collection.php" hash="61b5b2fb72b1cbc9465b8efa6f161e46"/></dir><file name="Queue.php" hash="fd9ce12e48148c2eb88db7336b43e5ac"/><dir name="Rule"><file name="Collection.php" hash="d38eed437f15d67b21c3be935053fea5"/></dir><file name="Setup.php" hash="5387a1470bf28911ba531ed88e156569"/></dir><file name="Webtracking.php" hash="e5b5f1d1bcd50d83e56ce8e3ba910de7"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="ConfigureController.php" hash="0b7a6beed2fc4eed01ad7c3363a73dbb"/><dir name="Extension"><file name="AbstractController.php" hash="fa816f490f29820c3b3faa17a3fc00e5"/><file name="RewardPointsController.php" hash="3e94e5ae4d467abf03f41e260b0421f9"/></dir><file name="InstallController.php" hash="be36853b940c958f29fe00535eea1df1"/><file name="MgconnectorController.php" hash="8eecb0d7625336661d2b541d64999f8a"/><file name="QueueController.php" hash="b8c8a0ab8c4efde1fdc9283a37f93b4e"/></dir><file name="RecoveryController.php" hash="a2493669b27287ceb4ada2f9128f5c08"/><file name="WebtrackingController.php" hash="03835c6f4760d203ed81dcea6b591de5"/></dir><dir name="etc"><file name="adminhtml.xml" hash="a417737a2225ef9f70b47eef77d75b7c"/><file name="api.xml" hash="9f6d5fd3330bb0640f97efc3f819e684"/><file name="config.xml" hash="d125cd6d24ead691c58fd762e5882c69"/></dir><dir name="sql"><dir name="mgconnector_setup"><file name="mysql4-install-1.0.0.13.php" hash="6d0bc421987b0238e350003629e8c464"/><file name="mysql4-upgrade-1.0.0.13-1.0.0.14.php" hash="2c28f665f2a8f78cdfc0b121703734af"/><file name="mysql4-upgrade-1.0.0.14-1.0.0.15.php" hash="284433b68df4ce4e83389db33f4a197c"/><file name="mysql4-upgrade-1.0.0.14-1.1.0.0.php" hash="2042704f23d7337ba3d0901f662096a8"/><file name="mysql4-upgrade-1.1.0.5-1.1.0.6.php" hash="2cc5dc8b986cd4ea1a70519ca59a7be9"/><file name="mysql4-upgrade-1.1.2.8-1.1.2.9.php" hash="ef7be7f476ed01e81fe8f9a62b63d008"/><file name="mysql4-upgrade-1.1.2.8-1.3.0.0.php" hash="fef6b0ee2a43cd42036ca12915885794"/><file name="mysql4-upgrade-1.1.2.9-1.1.3.0.php" hash="4871718266ef707c3b136e6d5591ed25"/><file name="mysql4-upgrade-1.4.7.2-1.4.8.0.php" hash="d2b686bdedc6645a5c4f9609c6cea434"/></dir></dir></dir></dir></target>
17
  <target name="mageetc">
18
  <dir name="modules"><file name="Remarkety_Mgconnector.xml" hash="d584b234f653fbf34376e7dcb8caf117"/></dir></target>
19
  <target name="magedesign">