Version Notes
First released version.
Download this release
Release Info
Developer | Affiliate4You |
Extension | Affiliate4You_A4yPixelAndFeed |
Version | 0.1.1 |
Comparing to | |
See all releases |
Version 0.1.1
- app/code/community/Affiliate4You/A4yPixelAndFeed/Block/Conversion.php +14 -0
- app/code/community/Affiliate4You/A4yPixelAndFeed/Helper/Data.php +7 -0
- app/code/community/Affiliate4You/A4yPixelAndFeed/Helper/SimpleXml.php +22 -0
- app/code/community/Affiliate4You/A4yPixelAndFeed/Helper/XmlFeed.php +65 -0
- app/code/community/Affiliate4You/A4yPixelAndFeed/Model/Observer.php +20 -0
- app/code/community/Affiliate4You/A4yPixelAndFeed/controllers/IndexController.php +153 -0
- app/code/community/Affiliate4You/A4yPixelAndFeed/etc/adminhtml.xml +31 -0
- app/code/community/Affiliate4You/A4yPixelAndFeed/etc/config.xml +78 -0
- app/code/community/Affiliate4You/A4yPixelAndFeed/etc/system.xml +147 -0
- app/design/frontend/base/default/layout/affiliate4you_a4ypixelandfeed.xml +11 -0
- app/design/frontend/base/default/template/affiliate4you_a4ypixelandfeed/conversion.phtml +44 -0
- app/etc/modules/Affiliate4You_A4yPixelAndFeed.xml +9 -0
- package.xml +44 -0
app/code/community/Affiliate4You/A4yPixelAndFeed/Block/Conversion.php
ADDED
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Affiliate4You_A4yPixelAndFeed_Block_Conversion extends Mage_Core_Block_Template
|
4 |
+
{
|
5 |
+
public function getIsActive()
|
6 |
+
{
|
7 |
+
return Mage::getStoreConfig('a4ypixel/general/enabled') ? true : false;
|
8 |
+
}
|
9 |
+
|
10 |
+
public function getCampaignId()
|
11 |
+
{
|
12 |
+
return Mage::getStoreConfig('a4ypixel/general/campaign_id');
|
13 |
+
}
|
14 |
+
}
|
app/code/community/Affiliate4You/A4yPixelAndFeed/Helper/Data.php
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Affiliate4You_A4yPixelAndFeed_Helper_Data extends Mage_Core_Helper_Abstract {
|
4 |
+
|
5 |
+
}
|
6 |
+
|
7 |
+
?>
|
app/code/community/Affiliate4You/A4yPixelAndFeed/Helper/SimpleXml.php
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Affiliate4You_A4yPixelAndFeed_Helper_SimpleXml extends SimpleXMLElement
|
4 |
+
{
|
5 |
+
|
6 |
+
public function add_cdata( $cdata_text )
|
7 |
+
{
|
8 |
+
$node = dom_import_simplexml( $this );
|
9 |
+
$no = $node->ownerDocument;
|
10 |
+
$node->appendChild( $no->createCDATASection( $cdata_text ) );
|
11 |
+
}
|
12 |
+
|
13 |
+
public function as_formated_xml()
|
14 |
+
{
|
15 |
+
$xml_string = $this->asXML();
|
16 |
+
$dom = new DOMDocument( '1.0', 'UTF-8' );
|
17 |
+
$dom->loadXML( $xml_string );
|
18 |
+
$dom->preserveWhiteSpace = FALSE;
|
19 |
+
$dom->formatOutput = TRUE;
|
20 |
+
return $dom->saveXML();
|
21 |
+
}
|
22 |
+
}
|
app/code/community/Affiliate4You/A4yPixelAndFeed/Helper/XmlFeed.php
ADDED
@@ -0,0 +1,65 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
Author: Lennart Kramer
|
4 |
+
Company: Affiliate4You
|
5 |
+
Version: 0.1.1
|
6 |
+
Date: 14 August 2013
|
7 |
+
*/
|
8 |
+
|
9 |
+
class Affiliate4You_A4yPixelAndFeed_Helper_XmlFeed
|
10 |
+
{
|
11 |
+
private $_config;
|
12 |
+
|
13 |
+
function __construct($config)
|
14 |
+
{
|
15 |
+
$this->_config = $config;
|
16 |
+
}
|
17 |
+
|
18 |
+
public function build_xml(array $products)
|
19 |
+
{
|
20 |
+
$xml_feed = new Affiliate4You_A4yPixelAndFeed_Helper_SimpleXml('<?xml version="1.0" encoding="UTF-8"?><products></products>');
|
21 |
+
foreach ($products as $product)
|
22 |
+
{
|
23 |
+
$xml_product = $xml_feed->addChild('product');
|
24 |
+
$xml_product = $this->_add_product_fields($xml_product, $product);
|
25 |
+
}
|
26 |
+
return $xml_feed->as_formated_xml();
|
27 |
+
}
|
28 |
+
|
29 |
+
private function _add_product_fields($xml_product, $product_fields)
|
30 |
+
{
|
31 |
+
foreach($product_fields as $field_name => $field_value)
|
32 |
+
{
|
33 |
+
$field_value = $this->_clean_string($field_value);
|
34 |
+
if ($field_name == 'link')
|
35 |
+
{
|
36 |
+
$field_value = $this->_add_url_params($field_value);
|
37 |
+
}
|
38 |
+
$product = $xml_product->addChild($field_name, NULL);
|
39 |
+
$product->add_cdata($field_value);
|
40 |
+
}
|
41 |
+
|
42 |
+
return $xml_product;
|
43 |
+
}
|
44 |
+
|
45 |
+
private function _add_url_params($url)
|
46 |
+
{
|
47 |
+
if( ! strstr($url, '?'))
|
48 |
+
{
|
49 |
+
$url .= '?'.str_replace('?','', $this->_config->general->urlparam);
|
50 |
+
}
|
51 |
+
else
|
52 |
+
{
|
53 |
+
$url .= '&'.str_replace('?','', $this->_config->general->urlparam);
|
54 |
+
}
|
55 |
+
return $url;
|
56 |
+
}
|
57 |
+
|
58 |
+
private function _clean_string($string)
|
59 |
+
{
|
60 |
+
$string = strip_tags($string);
|
61 |
+
$string = str_replace(array('"',"\r\n","\n","\r","\t"), array(""," "," "," ",""), $string);
|
62 |
+
return $string;
|
63 |
+
}
|
64 |
+
}
|
65 |
+
?>
|
app/code/community/Affiliate4You/A4yPixelAndFeed/Model/Observer.php
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
class Affiliate4You_A4yPixelAndFeed_Model_Observer
|
3 |
+
{
|
4 |
+
public function captureReferral(Varien_Event_Observer $observer)
|
5 |
+
{
|
6 |
+
if (!empty($_GET["a4ytrid"]) && !empty($_GET["a4yadvid"]))
|
7 |
+
{
|
8 |
+
// If you do not use the built-in session functionality in PHP, modify below
|
9 |
+
session_start();
|
10 |
+
// set domain from the SERVER vars
|
11 |
+
$a4yCookieDomain = str_replace("www.", "", (!empty($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : $_SERVER['SERVER_NAME']));
|
12 |
+
|
13 |
+
// set cookie for default 100 days. Actual time will be set when checking order
|
14 |
+
setcookie("A4Ytrid[".$_GET["a4yadvid"]."]", $_GET["a4ytrid"],(time() + 100*24*60*60), "/", '.'.$a4yCookieDomain);
|
15 |
+
// If you do not use the built-in session functionality in PHP, modify
|
16 |
+
// the following expression to work with your session handling routines.
|
17 |
+
$_SESSION["A4Ytrid"] = $_GET["a4ytrid"];
|
18 |
+
}
|
19 |
+
}
|
20 |
+
}
|
app/code/community/Affiliate4You/A4yPixelAndFeed/controllers/IndexController.php
ADDED
@@ -0,0 +1,153 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
Author: Lennart Kramer
|
4 |
+
Company: Affiliate4You
|
5 |
+
Version: 0.1.1
|
6 |
+
Date: 14 August 2013
|
7 |
+
*/
|
8 |
+
class Affiliate4You_A4yPixelAndFeed_IndexController extends Mage_Core_Controller_Front_Action {
|
9 |
+
private $_Products;
|
10 |
+
private $_ProductIds;
|
11 |
+
private $_Config;
|
12 |
+
private $_ConfigPaths = array
|
13 |
+
(
|
14 |
+
'a4yfeed/general/enabled',
|
15 |
+
'a4yfeed/general/urlparam',
|
16 |
+
'a4yfeed/general/imgsmall_width',
|
17 |
+
'a4yfeed/general/imgsmall_height',
|
18 |
+
'a4yfeed/general/imgmedium_width',
|
19 |
+
'a4yfeed/general/imgmedium_height',
|
20 |
+
'a4yfeed/general/shippingtime',
|
21 |
+
'a4yfeed/general/shippingcost'
|
22 |
+
);
|
23 |
+
|
24 |
+
public function indexAction()
|
25 |
+
{
|
26 |
+
set_time_limit(3600);
|
27 |
+
$this->_setConfig();
|
28 |
+
if($this->_Config->general->enabled == 1)
|
29 |
+
{
|
30 |
+
$Feed = new Affiliate4You_A4yPixelAndFeed_Helper_XmlFeed($this->_Config);
|
31 |
+
$this->_buildProductsArray();
|
32 |
+
$_Products = array();
|
33 |
+
foreach($this->_ProductIds as $iProduct)
|
34 |
+
{
|
35 |
+
array_push($_Products,$this->_getProductData($iProduct));
|
36 |
+
}
|
37 |
+
$xmlFeed = $Feed->build_xml($_Products);
|
38 |
+
$this->_sendHeader();
|
39 |
+
echo $xmlFeed;
|
40 |
+
}
|
41 |
+
}
|
42 |
+
|
43 |
+
private function _setConfig()
|
44 |
+
{
|
45 |
+
$this->_Config = new StdClass();
|
46 |
+
foreach($this->_ConfigPaths as $Path)
|
47 |
+
{
|
48 |
+
$Parts = explode('/',$Path);
|
49 |
+
@$this->_Config->$Parts[1]->$Parts[2] = Mage::getStoreConfig($Path);
|
50 |
+
}
|
51 |
+
|
52 |
+
if(!is_numeric($this->_Config->general->imgsmall_width))
|
53 |
+
{
|
54 |
+
$this->_Config->general->imgsmall_width = 150;
|
55 |
+
}
|
56 |
+
|
57 |
+
if(!is_numeric($this->_Config->general->imgsmall_height))
|
58 |
+
{
|
59 |
+
$this->_Config->general->imgsmall_height = 150;
|
60 |
+
}
|
61 |
+
|
62 |
+
if(!is_numeric($this->_Config->general->imgmedium_width))
|
63 |
+
{
|
64 |
+
$this->_Config->general->imgmedium_width = 320;
|
65 |
+
}
|
66 |
+
|
67 |
+
if(!is_numeric($this->_Config->general->imgmedium_height))
|
68 |
+
{
|
69 |
+
$this->_Config->general->imgmedium_height = 320;
|
70 |
+
}
|
71 |
+
}
|
72 |
+
|
73 |
+
private function _buildProductsArray()
|
74 |
+
{
|
75 |
+
$this->_Products = Mage::getModel('catalog/product')->getCollection();
|
76 |
+
$this->_Products->addAttributeToFilter('status', 1);//enabled
|
77 |
+
$this->_Products->addAttributeToFilter('visibility', 4);//catalog, search
|
78 |
+
$this->_Products->addAttributeToSelect('*');
|
79 |
+
$this->_ProductIds = $this->_Products->getAllIds();
|
80 |
+
}
|
81 |
+
|
82 |
+
private function _getProductData($ProductInput)
|
83 |
+
{
|
84 |
+
$Product = Mage::getModel('catalog/product')->load($ProductInput);
|
85 |
+
$Cats = $this->_getCategories($Product);
|
86 |
+
$Data = array();
|
87 |
+
$Data['id']=$ProductInput;
|
88 |
+
$Data['title']=$Product->getName();
|
89 |
+
$Data['description']=strip_tags($Product->getDescription());
|
90 |
+
$Data['price']=$Product->getPrice();
|
91 |
+
$Data['special_price']=$Product->getSpecialPrice();
|
92 |
+
$Data['link']=$Product->getProductUrl();
|
93 |
+
$Data['image_link_large']= Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA).'catalog/product'.$Product->getImage();
|
94 |
+
$Data['image_link_small']= (string) Mage::helper('catalog/image')->init( $Product, 'image')->resize($this->_Config->general->imgsmall_width,$this->_Config->general->imgsmall_height);
|
95 |
+
$Data['image_link_medium']= (string) Mage::helper('catalog/image')->init($Product, 'image')->resize($this->_Config->general->imgmedium_width,$this->_Config->general->imgmedium_width);
|
96 |
+
$Data['category'] = $Cats['main'];
|
97 |
+
$Data['subcategory'] = $Cats['sub'];
|
98 |
+
$Data['brand']=$Product->getResource()->getAttribute('manufacturer')->getFrontend()->getValue($Product);
|
99 |
+
$Data['availability']='yes';
|
100 |
+
$Data['shippingcost'] = $this->_Config->general->shippingcost;
|
101 |
+
$Data['shippingtime'] = $this->_Config->general->shippingtime;
|
102 |
+
|
103 |
+
$attributes = $Product->getAttributes();
|
104 |
+
|
105 |
+
foreach ($attributes as $attribute)
|
106 |
+
{
|
107 |
+
if ($attribute->getIsVisibleOnFront())
|
108 |
+
{
|
109 |
+
$Data[$attribute->getAttributeCode()] = $attribute->getFrontend()->getValue($Product);
|
110 |
+
// do something with $value here
|
111 |
+
}
|
112 |
+
}
|
113 |
+
|
114 |
+
if($Data['special_price'] == '')
|
115 |
+
{
|
116 |
+
$Data['special_price'] = $Data['price'];
|
117 |
+
}
|
118 |
+
|
119 |
+
return $Data;
|
120 |
+
}
|
121 |
+
|
122 |
+
private function _getCategories($Product)
|
123 |
+
{
|
124 |
+
$Ids = $Product->getCategoryIds();
|
125 |
+
|
126 |
+
$Categories = array();
|
127 |
+
|
128 |
+
foreach($Ids as $Category)
|
129 |
+
{
|
130 |
+
$CategoryModel = Mage::getModel('catalog/category')->load($Category);
|
131 |
+
if ($CategoryModel->getLevel() != '3' && $CategoryModel->getLevel() != '4')
|
132 |
+
{
|
133 |
+
continue;
|
134 |
+
}
|
135 |
+
$Categories['main'] = $CategoryModel->getParentCategory()->getName();
|
136 |
+
$Categories['sub'] = $CategoryModel->getName();
|
137 |
+
}
|
138 |
+
|
139 |
+
return $Categories;
|
140 |
+
}
|
141 |
+
|
142 |
+
private function _sendHeader()
|
143 |
+
{
|
144 |
+
header('Content-type: text/xml');
|
145 |
+
}
|
146 |
+
|
147 |
+
private function _debug($m)
|
148 |
+
{
|
149 |
+
echo '<pre>';
|
150 |
+
print_r($m);
|
151 |
+
echo '</pre>';
|
152 |
+
}
|
153 |
+
}
|
app/code/community/Affiliate4You/A4yPixelAndFeed/etc/adminhtml.xml
ADDED
@@ -0,0 +1,31 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
+
<!--
|
3 |
+
Author: Lennart Kramer
|
4 |
+
Company: Affiliate4You
|
5 |
+
Version: 0.1.1
|
6 |
+
Date: 14 August 2013
|
7 |
+
-->
|
8 |
+
<config>
|
9 |
+
<acl>
|
10 |
+
<resources>
|
11 |
+
<admin>
|
12 |
+
<children>
|
13 |
+
<system>
|
14 |
+
<children>
|
15 |
+
<config>
|
16 |
+
<children>
|
17 |
+
<a4yfeed translate="title" module="a4ypixelandfeed">
|
18 |
+
<title>Affiliate4You Product Feed</title>
|
19 |
+
</a4yfeed>
|
20 |
+
<a4ypixel translate="title" module="a4ypixelandfeed">
|
21 |
+
<title>Affiliate4You Tracking Pixel</title>
|
22 |
+
</a4ypixel>
|
23 |
+
</children>
|
24 |
+
</config>
|
25 |
+
</children>
|
26 |
+
</system>
|
27 |
+
</children>
|
28 |
+
</admin>
|
29 |
+
</resources>
|
30 |
+
</acl>
|
31 |
+
</config>
|
app/code/community/Affiliate4You/A4yPixelAndFeed/etc/config.xml
ADDED
@@ -0,0 +1,78 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<!--
|
3 |
+
Author: Lennart Kramer
|
4 |
+
Company: Affiliate4You
|
5 |
+
Version: 0.1.1
|
6 |
+
Date: 14 August 2013
|
7 |
+
-->
|
8 |
+
<config>
|
9 |
+
<modules>
|
10 |
+
<Affiliate4You_A4yPixelAndFeed>
|
11 |
+
<version>0.1.1</version>
|
12 |
+
</Affiliate4You_A4yPixelAndFeed>
|
13 |
+
</modules>
|
14 |
+
<global>
|
15 |
+
<models>
|
16 |
+
<a4ypixelandfeed>
|
17 |
+
<class>Affiliate4You_A4yPixelAndFeed_Model</class>
|
18 |
+
</a4ypixelandfeed>
|
19 |
+
</models>
|
20 |
+
<blocks>
|
21 |
+
<affiliate4you_a4ypixelandfeed>
|
22 |
+
<class>Affiliate4You_A4yPixelAndFeed_Block</class>
|
23 |
+
</affiliate4you_a4ypixelandfeed>
|
24 |
+
</blocks>
|
25 |
+
<helpers>
|
26 |
+
<a4ypixelandfeed>
|
27 |
+
<class>Affiliate4You_A4yPixelAndFeed_Helper</class>
|
28 |
+
</a4ypixelandfeed>
|
29 |
+
</helpers>
|
30 |
+
<events>
|
31 |
+
<controller_front_init_before>
|
32 |
+
<observers>
|
33 |
+
<a4ypixelandfeed>
|
34 |
+
<class>Affiliate4You_A4yPixelAndFeed_Model_Observer</class>
|
35 |
+
<method>captureReferral</method>
|
36 |
+
<type>singleton</type>
|
37 |
+
</a4ypixelandfeed>
|
38 |
+
</observers>
|
39 |
+
</controller_front_init_before>
|
40 |
+
</events>
|
41 |
+
</global>
|
42 |
+
<frontend>
|
43 |
+
<routers>
|
44 |
+
<affiliate4you_a4ypixelandfeed>
|
45 |
+
<use>standard</use>
|
46 |
+
<args>
|
47 |
+
<module>Affiliate4You_A4yPixelAndFeed</module>
|
48 |
+
<frontName>a4ypixelandfeed</frontName>
|
49 |
+
</args>
|
50 |
+
</affiliate4you_a4ypixelandfeed>
|
51 |
+
</routers>
|
52 |
+
<layout>
|
53 |
+
<updates>
|
54 |
+
<affiliate4you_a4ypixelandfeed module="Affiliate4You_A4yPixelAndFeed">
|
55 |
+
<file>affiliate4you_a4ypixelandfeed.xml</file>
|
56 |
+
</affiliate4you_a4ypixelandfeed>
|
57 |
+
</updates>
|
58 |
+
</layout>
|
59 |
+
</frontend>
|
60 |
+
<default>
|
61 |
+
<a4yfeed>
|
62 |
+
<general>
|
63 |
+
<enabled>1</enabled>
|
64 |
+
<imgsmall_width>150</imgsmall_width>
|
65 |
+
<imgsmall_height>150</imgsmall_height>
|
66 |
+
<imgmedium_width>300</imgmedium_width>
|
67 |
+
<imgmedium_height>300</imgmedium_height>
|
68 |
+
<shippingtime>1 day</shippingtime>
|
69 |
+
<shippingcost>1.50</shippingcost>
|
70 |
+
</general>
|
71 |
+
</a4yfeed>
|
72 |
+
<a4ypixel>
|
73 |
+
<general>
|
74 |
+
<enabled>1</enabled>
|
75 |
+
</general>
|
76 |
+
</a4ypixel>
|
77 |
+
</default>
|
78 |
+
</config>
|
app/code/community/Affiliate4You/A4yPixelAndFeed/etc/system.xml
ADDED
@@ -0,0 +1,147 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
+
<!--
|
3 |
+
Author: Lennart Kramer
|
4 |
+
Company: Affiliate4You
|
5 |
+
Version: 0.1.1
|
6 |
+
Date: 14 August 2013
|
7 |
+
-->
|
8 |
+
<config>
|
9 |
+
<tabs>
|
10 |
+
<affiliate4you>
|
11 |
+
<label>Affiliate4You</label>
|
12 |
+
<sort_order>200</sort_order>
|
13 |
+
</affiliate4you>
|
14 |
+
</tabs>
|
15 |
+
<sections>
|
16 |
+
<a4yfeed module="a4ypixelandfeed">
|
17 |
+
<label>Affiliate4You Product Feed</label>
|
18 |
+
<tab>affiliate4you</tab>
|
19 |
+
<frontend_type>text</frontend_type>
|
20 |
+
<sort_order>200</sort_order>
|
21 |
+
<show_in_default>1</show_in_default>
|
22 |
+
<show_in_website>1</show_in_website>
|
23 |
+
<show_in_store>1</show_in_store>
|
24 |
+
<groups>
|
25 |
+
<general>
|
26 |
+
<label>General</label>
|
27 |
+
<sort_order>100</sort_order>
|
28 |
+
<show_in_default>1</show_in_default>
|
29 |
+
<show_in_website>1</show_in_website>
|
30 |
+
<show_in_store>1</show_in_store>
|
31 |
+
<fields>
|
32 |
+
<enabled>
|
33 |
+
<label>Enabled</label>
|
34 |
+
<frontend_type>select</frontend_type>
|
35 |
+
<comment><![CDATA[ When enabled you can access the feed at: http://yourdomain.com/a4ypixelandfeed ]]></comment>
|
36 |
+
<source_model>adminhtml/system_config_source_enabledisable</source_model>
|
37 |
+
<sort_order>0</sort_order>
|
38 |
+
<show_in_default>1</show_in_default>
|
39 |
+
<show_in_website>1</show_in_website>
|
40 |
+
<show_in_store>1</show_in_store>
|
41 |
+
</enabled>
|
42 |
+
<urlparam>
|
43 |
+
<label>Optional URL parameters</label>
|
44 |
+
<comment><![CDATA[ Extra parameters to add to product URLs. For example: utm_source=ay&utm_medium=feed&utm_campaign=mycampaign ]]></comment>
|
45 |
+
<frontend_type>text</frontend_type>
|
46 |
+
<sort_order>10</sort_order>
|
47 |
+
<show_in_default>1</show_in_default>
|
48 |
+
<show_in_website>1</show_in_website>
|
49 |
+
<show_in_store>1</show_in_store>
|
50 |
+
</urlparam>
|
51 |
+
<imgsmall_width>
|
52 |
+
<label>Width for small image</label>
|
53 |
+
<comment><![CDATA[ in pixels ]]></comment>
|
54 |
+
<frontend_type>text</frontend_type>
|
55 |
+
<sort_order>20</sort_order>
|
56 |
+
<show_in_default>1</show_in_default>
|
57 |
+
<show_in_website>1</show_in_website>
|
58 |
+
<show_in_store>1</show_in_store>
|
59 |
+
</imgsmall_width>
|
60 |
+
<imgsmall_height>
|
61 |
+
<label>Height for small image</label>
|
62 |
+
<comment><![CDATA[ in pixels ]]></comment>
|
63 |
+
<frontend_type>text</frontend_type>
|
64 |
+
<sort_order>30</sort_order>
|
65 |
+
<show_in_default>1</show_in_default>
|
66 |
+
<show_in_website>1</show_in_website>
|
67 |
+
<show_in_store>1</show_in_store>
|
68 |
+
</imgsmall_height>
|
69 |
+
<imgmedium_width>
|
70 |
+
<label>Width for medium image</label>
|
71 |
+
<comment><![CDATA[ in pixels (max 500px)]]></comment>
|
72 |
+
<frontend_type>text</frontend_type>
|
73 |
+
<sort_order>40</sort_order>
|
74 |
+
<show_in_default>1</show_in_default>
|
75 |
+
<show_in_website>1</show_in_website>
|
76 |
+
<show_in_store>1</show_in_store>
|
77 |
+
</imgmedium_width>
|
78 |
+
<imgmedium_height>
|
79 |
+
<label>Height for medium image</label>
|
80 |
+
<comment><![CDATA[ in pixels (max 500px)]]></comment>
|
81 |
+
<frontend_type>text</frontend_type>
|
82 |
+
<sort_order>50</sort_order>
|
83 |
+
<show_in_default>1</show_in_default>
|
84 |
+
<show_in_website>1</show_in_website>
|
85 |
+
<show_in_store>1</show_in_store>
|
86 |
+
</imgmedium_height>
|
87 |
+
<shippingtime>
|
88 |
+
<label>Usual shipping time for products</label>
|
89 |
+
<comment><![CDATA[ Can contain letters "1 day" is allowed]]></comment>
|
90 |
+
<frontend_type>text</frontend_type>
|
91 |
+
<sort_order>60</sort_order>
|
92 |
+
<show_in_default>1</show_in_default>
|
93 |
+
<show_in_website>1</show_in_website>
|
94 |
+
<show_in_store>1</show_in_store>
|
95 |
+
</shippingtime>
|
96 |
+
<shippingcost>
|
97 |
+
<label>Usual shipping cost for products</label>
|
98 |
+
<comment><![CDATA[ The format "2.25" is preferred ]]></comment>
|
99 |
+
<frontend_type>text</frontend_type>
|
100 |
+
<sort_order>70</sort_order>
|
101 |
+
<show_in_default>1</show_in_default>
|
102 |
+
<show_in_website>1</show_in_website>
|
103 |
+
<show_in_store>1</show_in_store>
|
104 |
+
</shippingcost>
|
105 |
+
</fields>
|
106 |
+
</general>
|
107 |
+
</groups>
|
108 |
+
</a4yfeed>
|
109 |
+
<a4ypixel module="a4ypixelandfeed">
|
110 |
+
<label>Affilate4You Tracking Pixel</label>
|
111 |
+
<tab>affiliate4you</tab>
|
112 |
+
<sort_order>300</sort_order>
|
113 |
+
<show_in_default>1</show_in_default>
|
114 |
+
<show_in_website>1</show_in_website>
|
115 |
+
<show_in_store>1</show_in_store>
|
116 |
+
<groups>
|
117 |
+
<general>
|
118 |
+
<label>General</label>
|
119 |
+
<sort_order>100</sort_order>
|
120 |
+
<show_in_default>1</show_in_default>
|
121 |
+
<show_in_website>1</show_in_website>
|
122 |
+
<show_in_store>1</show_in_store>
|
123 |
+
<fields>
|
124 |
+
<enabled>
|
125 |
+
<label>Enabled</label>
|
126 |
+
<frontend_type>select</frontend_type>
|
127 |
+
<source_model>adminhtml/system_config_source_enabledisable</source_model>
|
128 |
+
<sort_order>0</sort_order>
|
129 |
+
<show_in_default>1</show_in_default>
|
130 |
+
<show_in_website>1</show_in_website>
|
131 |
+
<show_in_store>0</show_in_store>
|
132 |
+
</enabled>
|
133 |
+
<campaign_id>
|
134 |
+
<label>Campaign ID</label>
|
135 |
+
<comment><![CDATA[ The correct campaign id will be given to you by Affiliate4You ]]></comment>
|
136 |
+
<frontend_type>text</frontend_type>
|
137 |
+
<sort_order>10</sort_order>
|
138 |
+
<show_in_default>1</show_in_default>
|
139 |
+
<show_in_website>1</show_in_website>
|
140 |
+
<show_in_store>1</show_in_store>
|
141 |
+
</campaign_id>
|
142 |
+
</fields>
|
143 |
+
</general>
|
144 |
+
</groups>
|
145 |
+
</a4ypixel>
|
146 |
+
</sections>
|
147 |
+
</config>
|
app/design/frontend/base/default/layout/affiliate4you_a4ypixelandfeed.xml
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
+
<layout>
|
3 |
+
<checkout_onepage_success>
|
4 |
+
<reference name="before_body_end">
|
5 |
+
<block type="affiliate4you_a4ypixelandfeed/conversion"
|
6 |
+
name="affiliate4you_a4ypixelandfeed_conversion"
|
7 |
+
template="affiliate4you_a4ypixelandfeed/conversion.phtml">
|
8 |
+
</block>
|
9 |
+
</reference>
|
10 |
+
</checkout_onepage_success>
|
11 |
+
</layout>
|
app/design/frontend/base/default/template/affiliate4you_a4ypixelandfeed/conversion.phtml
ADDED
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
if($this->getIsActive())
|
3 |
+
{
|
4 |
+
$orderId = Mage::getSingleton('checkout/session')->getLastRealOrderId();
|
5 |
+
$order_info = Mage::getModel('sales/order')->loadByIncrementId($orderId);
|
6 |
+
$billing_address = $order_info->getBillingAddress();
|
7 |
+
|
8 |
+
foreach ($order_info->getAllItems() as $order_item)
|
9 |
+
{
|
10 |
+
break;
|
11 |
+
}
|
12 |
+
|
13 |
+
// Get the Magento Information
|
14 |
+
$campaign = $this->getCampaignId();
|
15 |
+
$order_number = urlencode($orderId);
|
16 |
+
$order_amount = urlencode(number_format($order_info->getSubtotal(), 2, '.', ''));
|
17 |
+
$order_description = urlencode(substr($order_item->getName(), 0, 50));
|
18 |
+
$customer_info = urlencode($billing_address['postcode'].' '.$billing_address['country_id']);
|
19 |
+
|
20 |
+
// Get the Tracking ID
|
21 |
+
$tracking_id = '';
|
22 |
+
if ( ! empty($_SESSION["A4Ytrid"]))
|
23 |
+
{
|
24 |
+
$tracking_id = $_SESSION["A4Ytrid"];
|
25 |
+
}
|
26 |
+
elseif ( ! empty($_COOKIE["A4Ytrid"][$campaign]))
|
27 |
+
{
|
28 |
+
$tracking_id = $_COOKIE["A4Ytrid"][$campaign];
|
29 |
+
}
|
30 |
+
|
31 |
+
$_a4yprotocol = ((strtolower(substr($_SERVER['SERVER_PROTOCOL'],0,5))=='https' || (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on')) ? 'https://' : 'http://');
|
32 |
+
|
33 |
+
$trackingUrl = $_a4yprotocol . "leads.affiliate4you.nl/"
|
34 |
+
. "?campagne=" . $campaign
|
35 |
+
. "&ordernummer=" . $order_number
|
36 |
+
. "&orderbedrag=" . $order_amount
|
37 |
+
. "&a4ytrid=" . $tracking_id
|
38 |
+
. "&klantnaam=" . $customer_info
|
39 |
+
. "&omschr=" . $order_description;
|
40 |
+
|
41 |
+
echo "\n<img src=\"" . $trackingUrl . "\" alt=\"\" style=\"border: none\" border=\"0\" width=\"1\" height=\"1\" />\n";
|
42 |
+
}
|
43 |
+
?>
|
44 |
+
|
app/etc/modules/Affiliate4You_A4yPixelAndFeed.xml
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<config>
|
3 |
+
<modules>
|
4 |
+
<Affiliate4You_A4yPixelAndFeed>
|
5 |
+
<active>true</active>
|
6 |
+
<codePool>community</codePool>
|
7 |
+
</Affiliate4You_A4yPixelAndFeed>
|
8 |
+
</modules>
|
9 |
+
</config>
|
package.xml
ADDED
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<package>
|
3 |
+
<name>Affiliate4You_A4yPixelAndFeed</name>
|
4 |
+
<version>0.1.1</version>
|
5 |
+
<stability>stable</stability>
|
6 |
+
<license uri="http://www.gnu.org/licenses/gpl-3.0.html">GPL v3</license>
|
7 |
+
<channel>community</channel>
|
8 |
+
<extends/>
|
9 |
+
<summary>Automatic tracking pixel placement and xml product feed generator for affiliate marketing purpose.</summary>
|
10 |
+
<description>1. Contents
|
11 |
+
- Uses
|
12 |
+
- Xml product feed generator
|
13 |
+
- Tracking pixel on success page
|
14 |
+

|
15 |
+
2. Uses
|
16 |
+
This module is intended as a convience meassure for Affiliate4You customers and is optimized to those specifications. However the xml product feed can be used for other purposes.
|
17 |
+

|
18 |
+
3. Xml product feed generator
|
19 |
+
When enabled this will provide a xml product feed that has the required fields for Affiliate4you as well as any custom fields you added personally. You can use this generator to easily create a product feed with the correct specifications.
|
20 |
+

|
21 |
+
Admin options:
|
22 |
+
- Enable/Disable
|
23 |
+
- Optional URL parameters
|
24 |
+
- Width for small image
|
25 |
+
- Height for small image
|
26 |
+
- Width for medium image
|
27 |
+
- Height for medium image
|
28 |
+
- Usual shipping time for products
|
29 |
+
- Usual shipping cost for products
|
30 |
+

|
31 |
+
4. Tracking pixel on success page
|
32 |
+
When enabled this will add a tracking pixel to the succes sale page without you having to edit any base files. The correct campaign ID will be supplied by Affiliate4you.
|
33 |
+

|
34 |
+
Admin options:
|
35 |
+
- Enable/Disable
|
36 |
+
- Campaign ID</description>
|
37 |
+
<notes>First released version.</notes>
|
38 |
+
<authors><author><name>Affiliate4You</name><user>Affiliate4You</user><email>support@affiliate4you.nl</email></author><author><name>Lennart Kramer</name><user>lennartkramer</user><email>lennart@affiliate4you.nl</email></author></authors>
|
39 |
+
<date>2013-08-16</date>
|
40 |
+
<time>09:32:57</time>
|
41 |
+
<contents><target name="magecommunity"><dir name="Affiliate4You"><dir name="A4yPixelAndFeed"><dir name="Block"><file name="Conversion.php" hash="841dbd0c7dc96dbd220f6eecd44ee847"/></dir><dir name="Helper"><file name="Data.php" hash="e1569c51c71ca2c8cf010c702d0d3a49"/><file name="SimpleXml.php" hash="e0f2005a5d7e413bd33b5c904ecc45dc"/><file name="XmlFeed.php" hash="ba0720b40aaba458d5a897b240700d11"/></dir><dir name="Model"><file name="Observer.php" hash="31305b0b35ea8ab288e467ba28d2dd8e"/></dir><dir name="controllers"><file name="IndexController.php" hash="5eebe4a65f12c6b7f8ee6c15f1880418"/></dir><dir name="etc"><file name="adminhtml.xml" hash="8ea247e15036ac836a7c82d08f0ce2a2"/><file name="config.xml" hash="1073db6cacde3168de9060819274be16"/><file name="system.xml" hash="b4b0857d931fed53dd23af4f4e342eff"/></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Affiliate4You_A4yPixelAndFeed.xml" hash="74f6011a3faf75b1635eef047719815c"/></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="template"><dir name="affiliate4you_a4ypixelandfeed"><file name="conversion.phtml" hash="601d76dbbc3dbf3d03e266c7185926a1"/></dir></dir><dir name="layout"><file name="affiliate4you_a4ypixelandfeed.xml" hash="e87a32ab186a2fd1c25fc1b8d82885e1"/></dir></dir></dir></dir></target></contents>
|
42 |
+
<compatible/>
|
43 |
+
<dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
|
44 |
+
</package>
|