Version Notes
v.1.1.7: Oct 28, 2016
- Added sync for cross-sell related data.
- Added sync for order comments and order status
Download this release
Release Info
| Developer | EYEMAGINE |
| Extension | Eyemagine_HubSpot |
| Version | 1.1.7 |
| Comparing to | |
| See all releases | |
Code changes from version 1.1.6 to 1.1.7
- app/code/community/Eyemagine/HubSpot/Helper/Data.php +20 -0
- app/code/community/Eyemagine/HubSpot/controllers/Adminhtml/.DS_Store +0 -0
- app/code/community/Eyemagine/HubSpot/controllers/LinkController.php +59 -48
- app/code/community/Eyemagine/HubSpot/controllers/SyncController.php +14 -4
- app/code/community/Eyemagine/HubSpot/etc/config.xml +1 -1
- app/code/community/Eyemagine/HubSpot/readme.txt +3 -2
- package.xml +7 -6
app/code/community/Eyemagine/HubSpot/Helper/Data.php
CHANGED
|
@@ -128,6 +128,7 @@ class Eyemagine_HubSpot_Helper_Data extends Mage_Core_Helper_Abstract
|
|
| 128 |
$categories = array();
|
| 129 |
$related = array();
|
| 130 |
$upsells = array();
|
|
|
|
| 131 |
|
| 132 |
// load product details
|
| 133 |
if ($item->getProductId()) {
|
|
@@ -170,6 +171,24 @@ class Eyemagine_HubSpot_Helper_Data extends Mage_Core_Helper_Abstract
|
|
| 170 |
$upsells[$p->getId()] = $this->convertAttributeData($p);
|
| 171 |
}
|
| 172 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 173 |
|
| 174 |
$categoryCollection = $product->getCategoryCollection()
|
| 175 |
->addAttributeToSelect('name')
|
|
@@ -187,6 +206,7 @@ class Eyemagine_HubSpot_Helper_Data extends Mage_Core_Helper_Abstract
|
|
| 187 |
|
| 188 |
$product->setRelatedProducts($related);
|
| 189 |
$product->setUpSellProducts($upsells);
|
|
|
|
| 190 |
}
|
| 191 |
|
| 192 |
$item->setData('product', $product);
|
| 128 |
$categories = array();
|
| 129 |
$related = array();
|
| 130 |
$upsells = array();
|
| 131 |
+
$crossSells = array();
|
| 132 |
|
| 133 |
// load product details
|
| 134 |
if ($item->getProductId()) {
|
| 171 |
$upsells[$p->getId()] = $this->convertAttributeData($p);
|
| 172 |
}
|
| 173 |
}
|
| 174 |
+
|
| 175 |
+
|
| 176 |
+
$crossSellCollection = $product->getCrossSellProductCollection()
|
| 177 |
+
->addAttributeToSelect('name')
|
| 178 |
+
->addAttributeToSelect('sku')
|
| 179 |
+
->addAttributeToSelect('url_path')
|
| 180 |
+
->addAttributeToSelect('image')
|
| 181 |
+
->addAttributeToSelect('visibility')
|
| 182 |
+
->addAttributeToFilter('status', Mage_Catalog_Model_Product_Status::STATUS_ENABLED)
|
| 183 |
+
->setPageSize($maxLimit);
|
| 184 |
+
|
| 185 |
+
foreach ($crossSellCollection as $p) {
|
| 186 |
+
$websiteIds = $p->getWebsiteIds();
|
| 187 |
+
if (in_array($websiteId, $websiteIds) || $multistore) {
|
| 188 |
+
$crossSells[$p->getId()] = $this->convertAttributeData($p);
|
| 189 |
+
}
|
| 190 |
+
}
|
| 191 |
+
|
| 192 |
|
| 193 |
$categoryCollection = $product->getCategoryCollection()
|
| 194 |
->addAttributeToSelect('name')
|
| 206 |
|
| 207 |
$product->setRelatedProducts($related);
|
| 208 |
$product->setUpSellProducts($upsells);
|
| 209 |
+
$product->setCrossSellProducts($crossSells);
|
| 210 |
}
|
| 211 |
|
| 212 |
$item->setData('product', $product);
|
app/code/community/Eyemagine/HubSpot/controllers/Adminhtml/.DS_Store
ADDED
|
Binary file
|
app/code/community/Eyemagine/HubSpot/controllers/LinkController.php
CHANGED
|
@@ -83,60 +83,71 @@ class Eyemagine_HubSpot_LinkController extends Mage_Core_Controller_Front_Action
|
|
| 83 |
->setRedirect($url, ($permanent) ? 301 : 302)
|
| 84 |
->sendResponse();
|
| 85 |
}
|
| 86 |
-
|
| 87 |
-
|
| 88 |
/**
|
| 89 |
* Resamples the product image and returns the contents as raw data
|
| 90 |
*/
|
| 91 |
public function imageAction()
|
| 92 |
{
|
| 93 |
-
|
| 94 |
-
|
| 95 |
-
|
| 96 |
-
|
| 97 |
-
|
| 98 |
-
|
| 99 |
-
|
| 100 |
-
|
| 101 |
-
|
| 102 |
-
|
| 103 |
-
|
| 104 |
-
|
| 105 |
-
|
| 106 |
-
|
| 107 |
-
|
| 108 |
-
|
| 109 |
-
|
| 110 |
-
|
| 111 |
-
|
| 112 |
-
|
| 113 |
-
|
| 114 |
-
|
| 115 |
-
|
| 116 |
-
|
| 117 |
-
|
| 118 |
-
|
| 119 |
-
|
| 120 |
-
|
| 121 |
-
|
| 122 |
-
|
| 123 |
-
|
| 124 |
-
|
| 125 |
-
|
| 126 |
-
|
| 127 |
-
|
| 128 |
-
|
| 129 |
-
|
| 130 |
-
|
| 131 |
-
|
| 132 |
-
|
| 133 |
-
|
| 134 |
-
|
| 135 |
-
|
| 136 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 137 |
}
|
| 138 |
-
|
| 139 |
-
exit;
|
| 140 |
}
|
| 141 |
|
| 142 |
|
| 83 |
->setRedirect($url, ($permanent) ? 301 : 302)
|
| 84 |
->sendResponse();
|
| 85 |
}
|
| 86 |
+
|
|
|
|
| 87 |
/**
|
| 88 |
* Resamples the product image and returns the contents as raw data
|
| 89 |
*/
|
| 90 |
public function imageAction()
|
| 91 |
{
|
| 92 |
+
try {
|
| 93 |
+
// set up min max of values for the resize (smallest 50, largest 640)
|
| 94 |
+
$size = (int) ($this->getRequest()->getParam('size'));
|
| 95 |
+
$size = ($size > 0) ? min(max(50, $size), 640) : 100;
|
| 96 |
+
|
| 97 |
+
// render the thumbnail and get the server path
|
| 98 |
+
$product = $this->_initProduct(false);
|
| 99 |
+
$helper = Mage::helper('catalog/image');
|
| 100 |
+
$url = $helper->init($product, 'thumbnail')->resize($size ? min(max(50, $size), 640) : 100);
|
| 101 |
+
$serverPath = str_replace(Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB), '', (string) $url);
|
| 102 |
+
$pathinfo = pathinfo($url);
|
| 103 |
+
$file = @realpath($serverPath);
|
| 104 |
+
// add the mime-type header
|
| 105 |
+
switch ($pathinfo['extension']) {
|
| 106 |
+
case 'jpg':
|
| 107 |
+
$content_type = 'image/jpeg';
|
| 108 |
+
break;
|
| 109 |
+
case 'png':
|
| 110 |
+
$content_type = 'image/png';
|
| 111 |
+
break;
|
| 112 |
+
case 'gif':
|
| 113 |
+
$content_type = 'image/gif';
|
| 114 |
+
break;
|
| 115 |
+
case 'xbm':
|
| 116 |
+
$content_type = 'image/x-xbitmap';
|
| 117 |
+
break;
|
| 118 |
+
case 'wbpm':
|
| 119 |
+
$content_type = 'image/vnd.wap.wbmp';
|
| 120 |
+
break;
|
| 121 |
+
default:
|
| 122 |
+
$content_type = 'image/jpeg';
|
| 123 |
+
break;
|
| 124 |
+
}
|
| 125 |
+
|
| 126 |
+
// add the size header, and output
|
| 127 |
+
if ($file && file_exists($file)) {
|
| 128 |
+
header('Content-Type: ' . $content_type);
|
| 129 |
+
header('Content-Length: ' . filesize($file));
|
| 130 |
+
if (ob_get_level())
|
| 131 |
+
ob_end_clean();
|
| 132 |
+
flush();
|
| 133 |
+
readfile($file);
|
| 134 |
+
} else {
|
| 135 |
+
if ($url && $content_type) {
|
| 136 |
+
|
| 137 |
+
$this->getResponse()
|
| 138 |
+
->setHeader('Content-Type', $content_type)
|
| 139 |
+
->setBody(file_get_contents((string) $url));
|
| 140 |
+
}
|
| 141 |
+
}
|
| 142 |
+
} catch (Exception $e) {
|
| 143 |
+
|
| 144 |
+
if ($url && $content_type) {
|
| 145 |
+
|
| 146 |
+
$this->getResponse()
|
| 147 |
+
->setHeader('Content-Type', $content_type)
|
| 148 |
+
->setBody(file_get_contents((string) $url));
|
| 149 |
+
}
|
| 150 |
}
|
|
|
|
|
|
|
| 151 |
}
|
| 152 |
|
| 153 |
|
app/code/community/Eyemagine/HubSpot/controllers/SyncController.php
CHANGED
|
@@ -117,7 +117,8 @@ class Eyemagine_HubSpot_SyncController extends Mage_Core_Controller_Front_Action
|
|
| 117 |
$this->_outputJson(array(
|
| 118 |
'customers' => $customerData,
|
| 119 |
'website' => $websiteId,
|
| 120 |
-
'store' => $storeId
|
|
|
|
| 121 |
));
|
| 122 |
}
|
| 123 |
|
|
@@ -178,8 +179,16 @@ class Eyemagine_HubSpot_SyncController extends Mage_Core_Controller_Front_Action
|
|
| 178 |
$result['shipping_address'] = $helper->convertAttributeData($order->getShippingAddress());
|
| 179 |
$result['billing_address'] = $helper->convertAttributeData($order->getBillingAddress());
|
| 180 |
$result['items'] = array();
|
| 181 |
-
|
| 182 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 183 |
$helper->loadCatalogData($item, $storeId, $websiteId, $multistore, $maxAssociated);
|
| 184 |
$result['items'][] = $helper->convertAttributeData($item);
|
| 185 |
}
|
|
@@ -197,7 +206,8 @@ class Eyemagine_HubSpot_SyncController extends Mage_Core_Controller_Front_Action
|
|
| 197 |
|
| 198 |
$this->_outputJson(array(
|
| 199 |
'orders' => $ordersData,
|
| 200 |
-
'stores'
|
|
|
|
| 201 |
));
|
| 202 |
}
|
| 203 |
|
| 117 |
$this->_outputJson(array(
|
| 118 |
'customers' => $customerData,
|
| 119 |
'website' => $websiteId,
|
| 120 |
+
'store' => $storeId,
|
| 121 |
+
'start' => $start
|
| 122 |
));
|
| 123 |
}
|
| 124 |
|
| 179 |
$result['shipping_address'] = $helper->convertAttributeData($order->getShippingAddress());
|
| 180 |
$result['billing_address'] = $helper->convertAttributeData($order->getBillingAddress());
|
| 181 |
$result['items'] = array();
|
| 182 |
+
$result['comment'] = $order->getStatusHistoryCollection()->getFirstItem()->getComment();
|
| 183 |
+
|
| 184 |
+
|
| 185 |
+
$ordertItems = $order->getItemsCollection()
|
| 186 |
+
|
| 187 |
+
->setOrder('base_price', Varien_Data_Collection::SORT_ORDER_DESC)
|
| 188 |
+
->setPageSize($maxAssociated);
|
| 189 |
+
|
| 190 |
+
|
| 191 |
+
foreach ($ordertItems as $item) {
|
| 192 |
$helper->loadCatalogData($item, $storeId, $websiteId, $multistore, $maxAssociated);
|
| 193 |
$result['items'][] = $helper->convertAttributeData($item);
|
| 194 |
}
|
| 206 |
|
| 207 |
$this->_outputJson(array(
|
| 208 |
'orders' => $ordersData,
|
| 209 |
+
'stores' => $stores,
|
| 210 |
+
'start' => $start
|
| 211 |
));
|
| 212 |
}
|
| 213 |
|
app/code/community/Eyemagine/HubSpot/etc/config.xml
CHANGED
|
@@ -15,7 +15,7 @@
|
|
| 15 |
<config>
|
| 16 |
<modules>
|
| 17 |
<Eyemagine_HubSpot>
|
| 18 |
-
<version>1.1.
|
| 19 |
</Eyemagine_HubSpot>
|
| 20 |
</modules>
|
| 21 |
<global>
|
| 15 |
<config>
|
| 16 |
<modules>
|
| 17 |
<Eyemagine_HubSpot>
|
| 18 |
+
<version>1.1.7</version>
|
| 19 |
</Eyemagine_HubSpot>
|
| 20 |
</modules>
|
| 21 |
<global>
|
app/code/community/Eyemagine/HubSpot/readme.txt
CHANGED
|
@@ -43,8 +43,9 @@ COMPATIBILITY:
|
|
| 43 |
-------------------------------------------------------------------------------
|
| 44 |
RELEASE NOTES:
|
| 45 |
-------------------------------------------------------------------------------
|
| 46 |
-
v.1.1.
|
| 47 |
-
-
|
|
|
|
| 48 |
|
| 49 |
v.1.1.5: Sep 8, 2016
|
| 50 |
- Fixed product and media url for multistores.
|
| 43 |
-------------------------------------------------------------------------------
|
| 44 |
RELEASE NOTES:
|
| 45 |
-------------------------------------------------------------------------------
|
| 46 |
+
v.1.1.7: Oct 28, 2016
|
| 47 |
+
- Added sync for cross-sell related data.
|
| 48 |
+
- Added sync for order comments and order status
|
| 49 |
|
| 50 |
v.1.1.5: Sep 8, 2016
|
| 51 |
- Fixed product and media url for multistores.
|
package.xml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
| 1 |
<?xml version="1.0"?>
|
| 2 |
<package>
|
| 3 |
<name>Eyemagine_HubSpot</name>
|
| 4 |
-
<version>1.1.
|
| 5 |
<stability>stable</stability>
|
| 6 |
<license uri="http://www.eyemaginetech.com/license">Custom</license>
|
| 7 |
<channel>community</channel>
|
|
@@ -49,13 +49,14 @@ HubSpot's Social Inbox and Smart Content tools help you break out of the inbox a
|
|
| 49 |
Attribute revenue generated to specific marketing channels and campaigns.
|
| 50 |

|
| 51 |
HubSpot's suite of analytics and reporting tools allows you to quickly and easily see which traffic sources or marketing actions turned into revenue for you during any given time period. Generate a report in seconds and email it to anyone in the company--you can even set up recurring reports so everyone can keep track of the company's progress.</description>
|
| 52 |
-
<notes>v.1.1.
|
| 53 |

|
| 54 |
-
-
|
|
|
|
| 55 |
<authors><author><name>EYEMAGINE</name><user>eyemagine</user><email>andy@eyemaginetech.com</email></author></authors>
|
| 56 |
-
<date>2016-
|
| 57 |
-
<time>
|
| 58 |
-
<contents><target name="magecommunity"><dir name="Eyemagine"><dir name="HubSpot"><dir name="Block"><dir name="Adminhtml"><dir name="Frontend"><dir name="Button"><file name="Regen.php" hash="da45b06b8577c597efd5d21954da7338"/><file name="._Regen.php" hash="03ec92c7aa4a80b83dab35ae888c547b"/></dir><dir name="Eyemagine"><file name="Info.php" hash="241764d8a2ef0cea19590ed1e278459f"/><file name="Support.php" hash="af9992b0108aa1b45f847cd00dfde88d"/><file name="Version.php" hash="7e587492716799a25b9a9c8a898d872a"/><file name="._Info.php" hash="ce0cf7ed20da8016624555bbb5968191"/><file name="._Support.php" hash="d7af6eacee8bbc688f3be8c5b681b7bb"/><file name="._Version.php" hash="aa0f9e438f113f370a375ec75e45dfdc"/></dir><file name="Utk.php" hash="ae331d527c62a9afc50dabc05dfda90f"/></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="
|
| 59 |
<compatible/>
|
| 60 |
<dependencies><required><php><min>5.3.0</min><max>7.0.0</max></php></required></dependencies>
|
| 61 |
</package>
|
| 1 |
<?xml version="1.0"?>
|
| 2 |
<package>
|
| 3 |
<name>Eyemagine_HubSpot</name>
|
| 4 |
+
<version>1.1.7</version>
|
| 5 |
<stability>stable</stability>
|
| 6 |
<license uri="http://www.eyemaginetech.com/license">Custom</license>
|
| 7 |
<channel>community</channel>
|
| 49 |
Attribute revenue generated to specific marketing channels and campaigns.
|
| 50 |

|
| 51 |
HubSpot's suite of analytics and reporting tools allows you to quickly and easily see which traffic sources or marketing actions turned into revenue for you during any given time period. Generate a report in seconds and email it to anyone in the company--you can even set up recurring reports so everyone can keep track of the company's progress.</description>
|
| 52 |
+
<notes>v.1.1.7: Oct 28, 2016
|
| 53 |

|
| 54 |
+
- Added sync for cross-sell related data.
|
| 55 |
+
- Added sync for order comments and order status</notes>
|
| 56 |
<authors><author><name>EYEMAGINE</name><user>eyemagine</user><email>andy@eyemaginetech.com</email></author></authors>
|
| 57 |
+
<date>2016-10-31</date>
|
| 58 |
+
<time>18:38:36</time>
|
| 59 |
+
<contents><target name="magecommunity"><dir name="Eyemagine"><dir name="HubSpot"><dir name="Block"><dir name="Adminhtml"><dir name="Frontend"><dir name="Button"><file name="Regen.php" hash="da45b06b8577c597efd5d21954da7338"/><file name="._Regen.php" hash="03ec92c7aa4a80b83dab35ae888c547b"/></dir><dir name="Eyemagine"><file name="Info.php" hash="241764d8a2ef0cea19590ed1e278459f"/><file name="Support.php" hash="af9992b0108aa1b45f847cd00dfde88d"/><file name="Version.php" hash="7e587492716799a25b9a9c8a898d872a"/><file name="._Info.php" hash="ce0cf7ed20da8016624555bbb5968191"/><file name="._Support.php" hash="d7af6eacee8bbc688f3be8c5b681b7bb"/><file name="._Version.php" hash="aa0f9e438f113f370a375ec75e45dfdc"/></dir><file name="Utk.php" hash="ae331d527c62a9afc50dabc05dfda90f"/></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="80b353bad679602d68e939446c22d664"/></dir><dir name="Model"><file name="Observer.php" hash="b6324baf056a15b740db37596174c8e6"/></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Hubspot"><file name="IndexController.php" hash="ce74c1cbb68569a834c55e530884fdf3"/></dir><file name=".DS_Store" hash="99afa5d6f042ec44f5661080a02ed4ab"/></dir><file name="LinkController.php" hash="3179c792d39904a65f54cec8723ec331"/><file name="SyncController.php" hash="c43ffaffd5e7c050808be26b4c62a547"/></dir><dir name="etc"><file name="adminhtml.xml" hash="30c1e3594efb50975820d190c6152122"/><file name="config.xml" hash="7e6e59911946ba09dfc780fb28cceb24"/><file name="system.xml" hash="e0d5b580d7094942555662d527c02dbc"/></dir><file name="readme.txt" hash="c98856b20dfb7f5ab600164491bd8fa0"/><dir name="sql"><dir name="eyehubspot_setup"><file name="mysql4-install-1.0.0.php" hash="a0f5a0a9fa39c641c70771ba1056be80"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Eyemagine_HubSpot.xml" hash="0442e65d79b182a43b1cdb58e95e6e36"/></dir></target></contents>
|
| 60 |
<compatible/>
|
| 61 |
<dependencies><required><php><min>5.3.0</min><max>7.0.0</max></php></required></dependencies>
|
| 62 |
</package>
|
