Version Notes
More cool updates!
Download this release
Release Info
Developer | David Webber |
Extension | recapture |
Version | 1.0.2 |
Comparing to | |
See all releases |
Code changes from version 1.0.1 to 1.0.2
- app/code/local/Recapture/Connector/Helper/Data.php +36 -0
- app/code/local/Recapture/Connector/controllers/Adminhtml/AuthenticateController.php +1 -1
- app/code/local/Recapture/Connector/controllers/CartController.php +37 -0
- app/code/local/Recapture/Connector/controllers/ExportController.php +0 -115
- app/code/local/Recapture/Connector/etc/config.xml +1 -1
- package.xml +5 -5
app/code/local/Recapture/Connector/Helper/Data.php
CHANGED
@@ -14,4 +14,40 @@ class Recapture_Connector_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
14 |
|
15 |
}
|
16 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
17 |
}
|
14 |
|
15 |
}
|
16 |
|
17 |
+
public function translateCartHash($hash = ''){
|
18 |
+
|
19 |
+
if (empty($hash)) return false;
|
20 |
+
|
21 |
+
$result = Mage::helper('recapture/transport')->dispatch('cart/retrieve', array(
|
22 |
+
'hash' => $hash
|
23 |
+
));
|
24 |
+
|
25 |
+
$body = @json_decode($result->getBody());
|
26 |
+
|
27 |
+
if ($body->status == 'success'){
|
28 |
+
|
29 |
+
return $body->data->cart_id;
|
30 |
+
|
31 |
+
} else return false;
|
32 |
+
|
33 |
+
}
|
34 |
+
|
35 |
+
public function associateCartToMe($cartId = null){
|
36 |
+
|
37 |
+
if (empty($cartId)) return false;
|
38 |
+
|
39 |
+
$session = Mage::getSingleton('checkout/session');
|
40 |
+
|
41 |
+
$session->clear();
|
42 |
+
$session->setQuoteId($cartId);
|
43 |
+
|
44 |
+
$quote = $session->getQuote();
|
45 |
+
|
46 |
+
//if this cart somehow was already converted, we're not going to be able to load it. as such, we can't associate it.
|
47 |
+
if ($quote->getId() != $cartId) return false;
|
48 |
+
|
49 |
+
return true;
|
50 |
+
|
51 |
+
}
|
52 |
+
|
53 |
}
|
app/code/local/Recapture/Connector/controllers/Adminhtml/AuthenticateController.php
CHANGED
@@ -6,7 +6,7 @@ class Recapture_Connector_Adminhtml_AuthenticateController extends Mage_Adminhtm
|
|
6 |
|
7 |
$query = http_build_query(array(
|
8 |
'return' => Mage::helper('adminhtml')->getUrl('recapture_admin/authenticate/return'),
|
9 |
-
'recapture' => Mage::getUrl('recapture/cart/index')
|
10 |
));
|
11 |
|
12 |
$authenticateUrl = 'http://recapture.io/account/auth?' . $query;
|
6 |
|
7 |
$query = http_build_query(array(
|
8 |
'return' => Mage::helper('adminhtml')->getUrl('recapture_admin/authenticate/return'),
|
9 |
+
'recapture' => Mage::getUrl('recapture/cart/index', array('hash' => 'CART_HASH'))
|
10 |
));
|
11 |
|
12 |
$authenticateUrl = 'http://recapture.io/account/auth?' . $query;
|
app/code/local/Recapture/Connector/controllers/CartController.php
ADDED
@@ -0,0 +1,37 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Recapture_Connector_CartController extends Mage_Core_Controller_Front_Action {
|
4 |
+
|
5 |
+
public function indexAction(){
|
6 |
+
|
7 |
+
$helper = Mage::helper('recapture');
|
8 |
+
|
9 |
+
$hash = $this->getRequest()->getParam('hash');
|
10 |
+
|
11 |
+
$cartId = $helper->translateCartHash($hash);
|
12 |
+
|
13 |
+
if (!$cartId){
|
14 |
+
|
15 |
+
Mage::getSingleton('core/session')->addError('There was an error retrieving your cart.');
|
16 |
+
$this->_redirect('/');
|
17 |
+
|
18 |
+
}
|
19 |
+
|
20 |
+
$result = $helper->associateCartToMe($cartId);
|
21 |
+
|
22 |
+
if (!$result){
|
23 |
+
|
24 |
+
Mage::getSingleton('core/session')->addError('There was an error retrieving your cart.');
|
25 |
+
$this->_redirect('/');
|
26 |
+
|
27 |
+
} else {
|
28 |
+
|
29 |
+
$cart = Mage::getModel('checkout/cart')->getQuote();
|
30 |
+
|
31 |
+
$this->_redirect('checkout/cart');
|
32 |
+
|
33 |
+
}
|
34 |
+
|
35 |
+
}
|
36 |
+
|
37 |
+
}
|
app/code/local/Recapture/Connector/controllers/ExportController.php
DELETED
@@ -1,115 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class Soshify_Connector_ExportController extends Mage_Core_Controller_Front_Action {
|
4 |
-
|
5 |
-
public function indexAction(){
|
6 |
-
|
7 |
-
$resource = Mage::getSingleton('core/resource');
|
8 |
-
$readConnection = $resource->getConnection('core_read');
|
9 |
-
$productResource = Mage::getModel('catalog/product')->getResource();
|
10 |
-
|
11 |
-
$name = $productResource->getAttribute('name');
|
12 |
-
$visibility = $productResource->getAttribute('visibility');
|
13 |
-
$status = $productResource->getAttribute('status');
|
14 |
-
|
15 |
-
$nameId = $name->getId();
|
16 |
-
$visibilityId = $visibility->getId();
|
17 |
-
$statusId = $status->getId();
|
18 |
-
|
19 |
-
$select = $readConnection->select();
|
20 |
-
$select = $select->from(array('e' => $resource->getTableName('catalog/product')), array('sku'))->where(new Zend_Db_Expr('sku IS NOT NULL'));
|
21 |
-
|
22 |
-
//is active
|
23 |
-
$select->joinLeft(array('table_status' => $status->getBackendTable()), "(table_status.entity_id = e.entity_id AND table_status.attribute_id = $statusId)", null)->where("table_status.value = '" . Mage_Catalog_Model_Product_Status::STATUS_ENABLED . "'");
|
24 |
-
|
25 |
-
//name
|
26 |
-
$select->joinLeft(array('table_name' => $name->getBackendTable()), "(table_name.entity_id = e.entity_id AND table_name.attribute_id = $nameId)", array('name' => 'value'));
|
27 |
-
|
28 |
-
//visibility
|
29 |
-
$select->joinLeft(array('table_visibility' => $visibility->getBackendTable()), "(table_visibility.entity_id = e.entity_id AND table_visibility.attribute_id = $visibilityId)", array('visibility' => 'value'))->where("table_visibility.value != '" . Mage_Catalog_Model_Product_Visibility::VISIBILITY_NOT_VISIBLE . "'");
|
30 |
-
|
31 |
-
$query = $select->query();
|
32 |
-
|
33 |
-
$dir = Mage::getBaseDir('var') . '/soshify/';
|
34 |
-
$file = 'soshify.csv';
|
35 |
-
|
36 |
-
mkdir($dir, 0777, true);
|
37 |
-
|
38 |
-
$fh = fopen($dir . '/' . $file, 'w');
|
39 |
-
$csv = new Varien_File_Csv();
|
40 |
-
|
41 |
-
while ($product = $query->fetch()){
|
42 |
-
|
43 |
-
$csv->fputcsv($fh, $product);
|
44 |
-
|
45 |
-
}
|
46 |
-
|
47 |
-
fclose($fh);
|
48 |
-
|
49 |
-
}
|
50 |
-
|
51 |
-
public function exportAction(){
|
52 |
-
|
53 |
-
$resource = Mage::getSingleton('core/resource');
|
54 |
-
$readConnection = $resource->getConnection('core_read');
|
55 |
-
$productResource = Mage::getModel('catalog/product')->getResource();
|
56 |
-
|
57 |
-
$name = $productResource->getAttribute('name');
|
58 |
-
$photos = $productResource->getAttribute('instagram_photos');
|
59 |
-
|
60 |
-
$nameId = $name->getId();
|
61 |
-
$photosId = $photos->getId();
|
62 |
-
|
63 |
-
$select = $readConnection->select();
|
64 |
-
$select = $select->from(array('e' => $resource->getTableName('catalog/product')), array('sku'))->where(new Zend_Db_Expr('sku IS NOT NULL'));
|
65 |
-
|
66 |
-
//name
|
67 |
-
$select->joinLeft(array('table_name' => $name->getBackendTable()), "(table_name.entity_id = e.entity_id AND table_name.attribute_id = $nameId)", array('name' => 'value'));
|
68 |
-
|
69 |
-
//name
|
70 |
-
$select->joinLeft(array('table_photos' => $photos->getBackendTable()), "(table_photos.entity_id = e.entity_id AND table_photos.attribute_id = $photosId)", array('photos' => 'value'));
|
71 |
-
|
72 |
-
$query = $select->query();
|
73 |
-
|
74 |
-
$ids = array();
|
75 |
-
|
76 |
-
while ($product = $query->fetch()){
|
77 |
-
|
78 |
-
$theseIds = explode(',', $product['photos']);
|
79 |
-
|
80 |
-
if (count($theseIds)){
|
81 |
-
|
82 |
-
foreach ($theseIds as $id){
|
83 |
-
|
84 |
-
if (empty($id)) continue;
|
85 |
-
|
86 |
-
if (!isset($ids[$id])) $ids[$id] = array();
|
87 |
-
|
88 |
-
$ids[$id][] = $product['sku'];
|
89 |
-
|
90 |
-
}
|
91 |
-
|
92 |
-
}
|
93 |
-
|
94 |
-
}
|
95 |
-
|
96 |
-
$dir = Mage::getBaseDir('var') . '/soshify/';
|
97 |
-
$file = 'soshify-photos.csv';
|
98 |
-
|
99 |
-
$fh = fopen($dir . '/' . $file, 'w');
|
100 |
-
$csv = new Varien_File_Csv();
|
101 |
-
|
102 |
-
foreach ($ids as $id => $products){
|
103 |
-
|
104 |
-
$csv->fputcsv($fh, array(
|
105 |
-
'code' => $id,
|
106 |
-
'products' => implode(',', $products)
|
107 |
-
));
|
108 |
-
|
109 |
-
}
|
110 |
-
|
111 |
-
fclose($fh);
|
112 |
-
|
113 |
-
}
|
114 |
-
|
115 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/code/local/Recapture/Connector/etc/config.xml
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Recapture_Connector>
|
5 |
-
<version>1.0.
|
6 |
</Recapture_Connector>
|
7 |
</modules>
|
8 |
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Recapture_Connector>
|
5 |
+
<version>1.0.2</version>
|
6 |
</Recapture_Connector>
|
7 |
</modules>
|
8 |
|
package.xml
CHANGED
@@ -1,18 +1,18 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>recapture</name>
|
4 |
-
<version>1.0.
|
5 |
<stability>stable</stability>
|
6 |
<license>OSL</license>
|
7 |
<channel>community</channel>
|
8 |
<extends/>
|
9 |
<summary>Free analytics dashboard for abandoned carts. Set up automated cart recovery email campaigns in minutes.</summary>
|
10 |
<description>Free analytics dashboard for abandoned carts. Set up automated cart recovery email campaigns in minutes.</description>
|
11 |
-
<notes>
|
12 |
<authors><author><name>David Webber</name><user>Adstream</user><email>david@adstreaminc.com</email></author></authors>
|
13 |
-
<date>2015-07-
|
14 |
-
<time>
|
15 |
-
<contents><target name="magelocal"><dir name="Recapture"><dir name="Connector"><dir name="Block"><dir name="Adminhtml"><dir name="System"><dir name="Config"><file name="Authenticate.php" hash="b4def4c279d801f7e9c327d8ee87c414"/><file name="Key.php" hash="f95c74992894b0a823793ef605c103e1"/><file name="Status.php" hash="003133a47fb37e6f522314778eec9632"/></dir></dir></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="AuthenticateController.php" hash="
|
16 |
<compatible/>
|
17 |
<dependencies><required><php><min>5.1.0</min><max>6.0.0</max></php></required></dependencies>
|
18 |
</package>
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>recapture</name>
|
4 |
+
<version>1.0.2</version>
|
5 |
<stability>stable</stability>
|
6 |
<license>OSL</license>
|
7 |
<channel>community</channel>
|
8 |
<extends/>
|
9 |
<summary>Free analytics dashboard for abandoned carts. Set up automated cart recovery email campaigns in minutes.</summary>
|
10 |
<description>Free analytics dashboard for abandoned carts. Set up automated cart recovery email campaigns in minutes.</description>
|
11 |
+
<notes>More cool updates!</notes>
|
12 |
<authors><author><name>David Webber</name><user>Adstream</user><email>david@adstreaminc.com</email></author></authors>
|
13 |
+
<date>2015-07-24</date>
|
14 |
+
<time>23:37:19</time>
|
15 |
+
<contents><target name="magelocal"><dir name="Recapture"><dir name="Connector"><dir name="Block"><dir name="Adminhtml"><dir name="System"><dir name="Config"><file name="Authenticate.php" hash="b4def4c279d801f7e9c327d8ee87c414"/><file name="Key.php" hash="f95c74992894b0a823793ef605c103e1"/><file name="Status.php" hash="003133a47fb37e6f522314778eec9632"/></dir></dir></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="AuthenticateController.php" hash="677c55f039ca051b44fec1bfbf63b969"/></dir><file name="CartController.php" hash="0ec0843034d768ad6d978e291183a980"/></dir><dir name="etc"><file name="config.xml" hash="50062202cfd4a8262cd001bfb7e4f6f0"/><file name="system.xml" hash="12f5cd5932b919ba61f0cb366f252efc"/></dir><dir name="Helper"><file name="Data.php" hash="a8256fffe350a4bd82ba13a9af8ddd54"/><file name="Transport.php" hash="a13bf58b13e207f5260fe2bdbe86fb5e"/></dir><dir name="Model"><file name="Observer.php" hash="3dbcbfc25944aedb3cc6658c495bb70b"/></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Recapture_Connector.xml" hash="e8fea9dc4237af6b34219c7f52bd02d8"/></dir></target></contents>
|
16 |
<compatible/>
|
17 |
<dependencies><required><php><min>5.1.0</min><max>6.0.0</max></php></required></dependencies>
|
18 |
</package>
|