Version Notes
Initial release
Download this release
Release Info
Developer | Sevenlike |
Extension | Trackset |
Version | 1.0.0 |
Comparing to | |
See all releases |
Version 1.0.0
- app/code/local/Sevenlike/Trackset/Block/Tracksetcode.php +118 -0
- app/code/local/Sevenlike/Trackset/Helper/Data.php +5 -0
- app/code/local/Sevenlike/Trackset/Model/Adminhtml/System/Source/Clientversions.php +18 -0
- app/code/local/Sevenlike/Trackset/Model/Adminhtml/System/Source/Yesno.php +18 -0
- app/code/local/Sevenlike/Trackset/Model/Observer.php +13 -0
- app/code/local/Sevenlike/Trackset/etc/adminhtml.xml +23 -0
- app/code/local/Sevenlike/Trackset/etc/config.xml +40 -0
- app/code/local/Sevenlike/Trackset/etc/system.xml +53 -0
- app/design/frontend/base/default/layout/trackset.xml +8 -0
- app/etc/modules/Sevenlike_Trackset.xml +10 -0
- package.xml +18 -0
app/code/local/Sevenlike/Trackset/Block/Tracksetcode.php
ADDED
@@ -0,0 +1,118 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Sevenlike_Trackset_Block_Tracksetcode extends Mage_Core_Block_Text
|
4 |
+
{
|
5 |
+
public function __construct()
|
6 |
+
{
|
7 |
+
if (!isset($_SESSION["__sevenlike_trackset"])) $_SESSION["__sevenlike_trackset"] = array();
|
8 |
+
if (!isset($_SESSION["__sevenlike_trackset"]["cart"])) $_SESSION["__sevenlike_trackset"]["cart"] = array();
|
9 |
+
if (!isset($_SESSION["__sevenlike_trackset"]["order_to_send"])) $_SESSION["__sevenlike_trackset"]["order_to_send"] = null;
|
10 |
+
|
11 |
+
return parent::__construct();
|
12 |
+
}
|
13 |
+
|
14 |
+
/**
|
15 |
+
* @return array
|
16 |
+
*/
|
17 |
+
protected function processCart()
|
18 |
+
{
|
19 |
+
$session = Mage::getSingleton("checkout/session");
|
20 |
+
$quote = $session->getQuote();
|
21 |
+
|
22 |
+
$modified = array();
|
23 |
+
foreach ($quote->getAllItems() as $item) {
|
24 |
+
$sku = $item->getSku();
|
25 |
+
if (!isset($_SESSION["__sevenlike_trackset"]["cart"][$sku])) {
|
26 |
+
$_SESSION["__sevenlike_trackset"]["cart"][$sku] = 0;
|
27 |
+
}
|
28 |
+
|
29 |
+
$qty_difference = $item->getQty() - $_SESSION["__sevenlike_trackset"]["cart"][$sku];
|
30 |
+
if ($qty_difference == 0) continue;
|
31 |
+
|
32 |
+
$modified[$sku] = $qty_difference;
|
33 |
+
$_SESSION["__sevenlike_trackset"]["cart"][$sku] = $item->getQty();
|
34 |
+
}
|
35 |
+
|
36 |
+
return $modified;
|
37 |
+
}
|
38 |
+
|
39 |
+
/**
|
40 |
+
* @return string
|
41 |
+
*/
|
42 |
+
protected function _toHtml()
|
43 |
+
{
|
44 |
+
$account_id = Mage::getStoreConfig("trackset/config/account_id");
|
45 |
+
$client_version = Mage::getStoreConfig("trackset/config/client_version");
|
46 |
+
$enable_ecommerce_tracking = Mage::getStoreConfig("trackset/config/enable_ecommerce_tracking");
|
47 |
+
$referer = addslashes(@$_SERVER["HTTP_REFERER"]);
|
48 |
+
|
49 |
+
$https = isset($_SERVER["HTTPS"]) ? "s" : "";
|
50 |
+
$return = "<!-- Inizio Codice Conversion Lab -->";
|
51 |
+
|
52 |
+
switch ($client_version) {
|
53 |
+
case "5";
|
54 |
+
$return .= '
|
55 |
+
<script language="JavaScript" type="text/javascript">
|
56 |
+
var us="' . $account_id . '2";
|
57 |
+
</script>
|
58 |
+
<script language="JavaScript" src="http' . $https . '://conversionlab.trackset.com/track/tsend.js" type="text/javascript"></script>
|
59 |
+
<noscript>
|
60 |
+
<a href="http://www.trackset.it/">
|
61 |
+
<img alt="Web Analytics" src="http' . $https . '://conversionlab.trackset.com/track/cl.gif?md5=' . $account_id . '" />
|
62 |
+
</a>
|
63 |
+
</noscript>';
|
64 |
+
break;
|
65 |
+
default:
|
66 |
+
$return .= '<!-- TRACKSET CLIENT VERSION NOT SUPPORTED -->';
|
67 |
+
return $return;
|
68 |
+
}
|
69 |
+
|
70 |
+
if (!$enable_ecommerce_tracking) return $return;
|
71 |
+
|
72 |
+
$quote = Mage::getSingleton("checkout/session")->getQuote();
|
73 |
+
$quote_id = $quote->getId();
|
74 |
+
$products_still_in_cart = array();
|
75 |
+
foreach ($quote->getAllItems() as $item) {
|
76 |
+
$sku = $item->getSku();
|
77 |
+
$products_still_in_cart[] = $sku;
|
78 |
+
if (!isset($_SESSION["__sevenlike_trackset"]["cart"][$sku])) {
|
79 |
+
$_SESSION["__sevenlike_trackset"]["cart"][$sku] = 0;
|
80 |
+
}
|
81 |
+
|
82 |
+
$qty_difference = $item->getQty() - $_SESSION["__sevenlike_trackset"]["cart"][$sku];
|
83 |
+
if ($qty_difference == 0) continue;
|
84 |
+
|
85 |
+
$name = addslashes($item->getName());
|
86 |
+
$category = $item->getProduct()->getCategoryIds();
|
87 |
+
if ($category) {
|
88 |
+
$category = $category[0];
|
89 |
+
$category = Mage::getModel('catalog/category')->load($category)->getName();
|
90 |
+
$category = addslashes($category);
|
91 |
+
} else {
|
92 |
+
$category = "";
|
93 |
+
}
|
94 |
+
|
95 |
+
$return .= "<script language='JavaScript' type='text/javascript'>sendevent('_addItem', '$quote_id', '$sku', '$name', '$category', '{$item->getCalculationPrice()}', {$item->getQty()}, '$referer');</script>";
|
96 |
+
$_SESSION["__sevenlike_trackset"]["cart"][$sku] = $item->getQty();
|
97 |
+
}
|
98 |
+
|
99 |
+
foreach($_SESSION["__sevenlike_trackset"]["cart"] as $sku=>$qty) {
|
100 |
+
if (!in_array($sku, $products_still_in_cart)) {
|
101 |
+
unset($_SESSION["__sevenlike_trackset"]["cart"][$sku]);
|
102 |
+
$product = Mage::getModel("catalog/product")->load($sku, "sku");
|
103 |
+
$return .= "<script language='JavaScript' type='text/javascript'>sendevent('_addItem', '$quote_id', '$sku', '', '', '{$product->getPrice()}', 0, '$referer');</script>";
|
104 |
+
}
|
105 |
+
}
|
106 |
+
|
107 |
+
if ($_SESSION["__sevenlike_trackset"]["order_to_send"]) {
|
108 |
+
$order = Mage::getModel("sales/order")->loadByIncrementId($_SESSION["__sevenlike_trackset"]["order_to_send"]);
|
109 |
+
$shipping_address = $order->getShippingAddress();
|
110 |
+
$city = addslashes($shipping_address->getCity());
|
111 |
+
$return .= "<script language='JavaScript' type='text/javascript'>sendevent('_addTransaction', '{$order->getIncrementId()}', '{$order->getQuoteId()}', '{$order->getGrandTotal()}', '{$order->getTaxAmount()}', '{$order->getShippingAmount()}', 1, '{$shipping_address->getCountryId()}','$city');</script>";
|
112 |
+
unset($_SESSION["__sevenlike_trackset"]["order_to_send"]);
|
113 |
+
}
|
114 |
+
|
115 |
+
$return .= "<!-- Fine Codice Conversion Lab -->";
|
116 |
+
return $return;
|
117 |
+
}
|
118 |
+
}
|
app/code/local/Sevenlike/Trackset/Helper/Data.php
ADDED
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
class Sevenlike_Trackset_Helper_Data extends Mage_Core_Helper_Abstract
|
3 |
+
{
|
4 |
+
}
|
5 |
+
|
app/code/local/Sevenlike/Trackset/Model/Adminhtml/System/Source/Clientversions.php
ADDED
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Sevenlike_Trackset_Model_Adminhtml_System_Source_Clientversions
|
4 |
+
{
|
5 |
+
public function toOptionArray()
|
6 |
+
{
|
7 |
+
return array(
|
8 |
+
array(
|
9 |
+
"label" => 5,
|
10 |
+
"value" => 5
|
11 |
+
),
|
12 |
+
array(
|
13 |
+
"label" => 6,
|
14 |
+
"value" => 6
|
15 |
+
),
|
16 |
+
);
|
17 |
+
}
|
18 |
+
}
|
app/code/local/Sevenlike/Trackset/Model/Adminhtml/System/Source/Yesno.php
ADDED
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Sevenlike_Trackset_Model_Adminhtml_System_Source_Yesno
|
4 |
+
{
|
5 |
+
public function toOptionArray()
|
6 |
+
{
|
7 |
+
return array(
|
8 |
+
array(
|
9 |
+
"label" => "Yes",
|
10 |
+
"value" => 1
|
11 |
+
),
|
12 |
+
array(
|
13 |
+
"label" => "No",
|
14 |
+
"value" => 0
|
15 |
+
),
|
16 |
+
);
|
17 |
+
}
|
18 |
+
}
|
app/code/local/Sevenlike/Trackset/Model/Observer.php
ADDED
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Sevenlike_Trackset_Model_Observer
|
4 |
+
{
|
5 |
+
public function orderIsConfirmed($observer)
|
6 |
+
{
|
7 |
+
try {
|
8 |
+
$_SESSION["__sevenlike_trackset"]["order_to_send"] = $observer->getEvent()->getOrder()->getIncrementId();
|
9 |
+
} catch (Exception $e) {}
|
10 |
+
|
11 |
+
unset($_SESSION["__sevenlike_trackset"]["cart"]);
|
12 |
+
}
|
13 |
+
}
|
app/code/local/Sevenlike/Trackset/etc/adminhtml.xml
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<config>
|
3 |
+
<acl>
|
4 |
+
<resources>
|
5 |
+
<admin>
|
6 |
+
<children>
|
7 |
+
<system>
|
8 |
+
<children>
|
9 |
+
<config>
|
10 |
+
<children>
|
11 |
+
<trackset translate="title" module="trackset">
|
12 |
+
<title>Trackset Section</title>
|
13 |
+
<sort_order>100</sort_order>
|
14 |
+
</trackset>
|
15 |
+
</children>
|
16 |
+
</config>
|
17 |
+
</children>
|
18 |
+
</system>
|
19 |
+
</children>
|
20 |
+
</admin>
|
21 |
+
</resources>
|
22 |
+
</acl>
|
23 |
+
</config>
|
app/code/local/Sevenlike/Trackset/etc/config.xml
ADDED
@@ -0,0 +1,40 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<config>
|
3 |
+
<modules>
|
4 |
+
<Sevenlike_Trackset>
|
5 |
+
<version>0.1.0</version>
|
6 |
+
</Sevenlike_Trackset>
|
7 |
+
</modules>
|
8 |
+
<frontend>
|
9 |
+
<layout>
|
10 |
+
<updates>
|
11 |
+
<trackset>
|
12 |
+
<file>trackset.xml</file>
|
13 |
+
</trackset>
|
14 |
+
</updates>
|
15 |
+
</layout>
|
16 |
+
</frontend>
|
17 |
+
<global>
|
18 |
+
<blocks>
|
19 |
+
<trackset>
|
20 |
+
<class>Sevenlike_Trackset_Block</class>
|
21 |
+
</trackset>
|
22 |
+
</blocks>
|
23 |
+
<helpers>
|
24 |
+
<trackset>
|
25 |
+
<class>Sevenlike_Trackset_Helper</class>
|
26 |
+
</trackset>
|
27 |
+
</helpers>
|
28 |
+
<events>
|
29 |
+
<sales_order_place_after>
|
30 |
+
<observers>
|
31 |
+
<tracksetplaceorderafter>
|
32 |
+
<type>singleton</type>
|
33 |
+
<class>Sevenlike_Trackset_Model_Observer</class>
|
34 |
+
<method>orderIsConfirmed</method>
|
35 |
+
</tracksetplaceorderafter>
|
36 |
+
</observers>
|
37 |
+
</sales_order_place_after>
|
38 |
+
</events>
|
39 |
+
</global>
|
40 |
+
</config>
|
app/code/local/Sevenlike/Trackset/etc/system.xml
ADDED
@@ -0,0 +1,53 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<config>
|
3 |
+
<sections>
|
4 |
+
<trackset translate="label" module="trackset">
|
5 |
+
<label>Trackset</label>
|
6 |
+
<tab>general</tab>
|
7 |
+
<frontend_type>text</frontend_type>
|
8 |
+
<sort_order>10000</sort_order>
|
9 |
+
<show_in_default>1</show_in_default>
|
10 |
+
<show_in_website>1</show_in_website>
|
11 |
+
<show_in_store>1</show_in_store>
|
12 |
+
<groups>
|
13 |
+
<config translate="label">
|
14 |
+
<label>Trackset configuration</label>
|
15 |
+
<frontend_type>text</frontend_type>
|
16 |
+
<sort_order>0</sort_order>
|
17 |
+
<show_in_default>1</show_in_default>
|
18 |
+
<show_in_website>1</show_in_website>
|
19 |
+
<show_in_store>1</show_in_store>
|
20 |
+
<fields>
|
21 |
+
<account_id translate="label">
|
22 |
+
<label>Account ID</label>
|
23 |
+
<frontend_type>text</frontend_type>
|
24 |
+
<sort_order>10</sort_order>
|
25 |
+
<show_in_default>1</show_in_default>
|
26 |
+
<show_in_website>1</show_in_website>
|
27 |
+
<show_in_store>1</show_in_store>
|
28 |
+
<comment><![CDATA[You can find your account ID under Trackset ConversionLab console -> Account -> Account & login -> Track Code]]></comment>
|
29 |
+
</account_id>
|
30 |
+
<client_version translate="label">
|
31 |
+
<label>Client version</label>
|
32 |
+
<frontend_type>select</frontend_type>
|
33 |
+
<source_model>Sevenlike_Trackset_Model_Adminhtml_System_Source_Clientversions</source_model>
|
34 |
+
<sort_order>20</sort_order>
|
35 |
+
<show_in_default>1</show_in_default>
|
36 |
+
<show_in_website>1</show_in_website>
|
37 |
+
<show_in_store>1</show_in_store>
|
38 |
+
</client_version>
|
39 |
+
<enable_ecommerce_tracking>
|
40 |
+
<label>Enable e-commerce tracking</label>
|
41 |
+
<frontend_type>select</frontend_type>
|
42 |
+
<source_model>Sevenlike_Trackset_Model_Adminhtml_System_Source_Yesno</source_model>
|
43 |
+
<sort_order>30</sort_order>
|
44 |
+
<show_in_default>1</show_in_default>
|
45 |
+
<show_in_website>1</show_in_website>
|
46 |
+
<show_in_store>1</show_in_store>
|
47 |
+
</enable_ecommerce_tracking>
|
48 |
+
</fields>
|
49 |
+
</config>
|
50 |
+
</groups>
|
51 |
+
</trackset>
|
52 |
+
</sections>
|
53 |
+
</config>
|
app/design/frontend/base/default/layout/trackset.xml
ADDED
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<layout version="0.1.0">
|
3 |
+
<default>
|
4 |
+
<reference name="before_body_end">
|
5 |
+
<block type="trackset/tracksetcode" name="trackset_code" as="trackset_code" />
|
6 |
+
</reference>
|
7 |
+
</default>
|
8 |
+
</layout>
|
app/etc/modules/Sevenlike_Trackset.xml
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<config>
|
3 |
+
<modules>
|
4 |
+
<Sevenlike_Trackset>
|
5 |
+
<active>true</active>
|
6 |
+
<codePool>local</codePool>
|
7 |
+
<version>0.1.0</version>
|
8 |
+
</Sevenlike_Trackset>
|
9 |
+
</modules>
|
10 |
+
</config>
|
package.xml
ADDED
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<package>
|
3 |
+
<name>Trackset</name>
|
4 |
+
<version>1.0.0</version>
|
5 |
+
<stability>stable</stability>
|
6 |
+
<license uri="http://www.opensource.org/licenses/academic.php">Academic Free License (AFL)</license>
|
7 |
+
<channel>community</channel>
|
8 |
+
<extends/>
|
9 |
+
<summary>Enables integration between Magento and Trackset Conversionlab.</summary>
|
10 |
+
<description>It supports general tracking, add/remove items to/from cart and completed transaction tracking.</description>
|
11 |
+
<notes>Initial release</notes>
|
12 |
+
<authors><author><name>Sevenlike</name><user>sevenlike</user><email>info@sevenlike.com</email></author></authors>
|
13 |
+
<date>2012-10-02</date>
|
14 |
+
<time>09:23:10</time>
|
15 |
+
<contents><target name="magelocal"><dir name="Sevenlike"><dir name="Trackset"><dir name="Block"><file name="Tracksetcode.php" hash="62734a08282d472ff5553cbf9e86b8fb"/></dir><dir name="Helper"><file name="Data.php" hash="dc259d6db79493ea84cfc7d0844ec10c"/></dir><dir name="Model"><dir name="Adminhtml"><dir name="System"><dir name="Source"><file name="Clientversions.php" hash="6e1a8768b2fec142073c83b0fa3b0a63"/><file name="Yesno.php" hash="7932f569dbd03025c4937a29933bba7f"/></dir></dir></dir><file name="Observer.php" hash="496d0dfbf83294f7f4c0bc53e7c6b26e"/></dir><dir name="etc"><file name="adminhtml.xml" hash="e6d2eff3a220b86bf9c9626e8d4d2e95"/><file name="config.xml" hash="532ccfde3c6a572842bcb8ead58aec0b"/><file name="system.xml" hash="ad3eb40787b94316a121d02fc427e45a"/></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Sevenlike_Trackset.xml" hash="6c21042b7e6ed972262bb1ec4ea11e67"/></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="trackset.xml" hash="77bd8b22e1623c74c24f16ba1e8c95fc"/></dir></dir></dir></dir></target></contents>
|
16 |
+
<compatible/>
|
17 |
+
<dependencies><required><php><min>5.1.0</min><max>6.0.0</max></php></required></dependencies>
|
18 |
+
</package>
|