Version Notes
Magento code audit changes x3
Support for dotmailer regions
Bug fixed for fatal error on manual sync
Email validation on ajax call
Escape logs before showing
Download this release
Release Info
Developer | Calin Diacon |
Extension | dotmailermagento |
Version | 5.3.0 |
Comparing to | |
See all releases |
Code changes from version 5.2.0 to 5.3.0
- app/code/community/Dotdigitalgroup/Email/Block/Adminhtml/Contact/Grid.php +2 -5
- app/code/community/Dotdigitalgroup/Email/Block/Adminhtml/Dashboard/Tabs/Analysis/Rfm.php +15 -0
- app/code/community/Dotdigitalgroup/Email/Block/Adminhtml/Dashboard/Tabs/Status.php +32 -0
- app/code/community/Dotdigitalgroup/Email/Block/Basket.php +38 -1
- app/code/community/Dotdigitalgroup/Email/Block/Coupon.php +22 -0
- app/code/community/Dotdigitalgroup/Email/Block/Order.php +39 -0
- app/code/community/Dotdigitalgroup/Email/Helper/Config.php +4 -0
- app/code/community/Dotdigitalgroup/Email/Helper/Data.php +26 -4
- app/code/community/Dotdigitalgroup/Email/Model/Adminhtml/Observer.php +16 -2
- app/code/community/Dotdigitalgroup/Email/Model/Adminhtml/Source/Automation/Programme.php +11 -10
- app/code/community/Dotdigitalgroup/Email/Model/Adminhtml/Source/Importer/Mode.php +4 -1
- app/code/community/Dotdigitalgroup/Email/Model/Apiconnector/Client.php +97 -61
- app/code/community/Dotdigitalgroup/Email/Model/Connector/Order.php +1 -1
- app/code/community/Dotdigitalgroup/Email/Model/Contact.php +0 -14
- app/code/community/Dotdigitalgroup/Email/Model/Customer/Observer.php +11 -25
- app/code/community/Dotdigitalgroup/Email/Model/Importer.php +57 -1
- app/code/community/Dotdigitalgroup/Email/Model/Newsletter/Observer.php +21 -35
- app/code/community/Dotdigitalgroup/Email/Model/Resource/Contact.php +2 -2
- app/code/community/Dotdigitalgroup/Email/Model/Review.php +1 -1
- app/code/community/Dotdigitalgroup/Email/Model/Sales/Observer.php +11 -12
- app/code/community/Dotdigitalgroup/Email/Model/Sales/Quote.php +7 -7
- app/code/community/Dotdigitalgroup/Email/Model/Wishlist.php +3 -4
- app/code/community/Dotdigitalgroup/Email/controllers/Adminhtml/ConnectorController.php +1 -1
- app/code/community/Dotdigitalgroup/Email/controllers/AjaxController.php +9 -0
- app/code/community/Dotdigitalgroup/Email/controllers/ResponseController.php +5 -4
- app/code/community/Dotdigitalgroup/Email/etc/system.xml +3 -2
- app/design/adminhtml/default/default/template/connector/dashboard/logs.phtml +1 -1
- app/design/adminhtml/default/default/template/connector/dashboard/status.phtml +5 -12
- app/design/adminhtml/default/default/template/connector/dashboard/tabs/analysis/rfm.phtml +1 -5
- app/design/frontend/base/default/layout/connector.xml +7 -14
- app/design/frontend/base/default/template/connector/basket.phtml +27 -34
- app/design/frontend/base/default/template/connector/coupon.phtml +6 -6
- app/design/frontend/base/default/template/connector/product/list.phtml +43 -32
- app/design/frontend/base/default/template/connector/review.phtml +73 -73
- app/design/frontend/base/default/template/connector/wishlist.phtml +69 -62
- package.xml +10 -22
app/code/community/Dotdigitalgroup/Email/Block/Adminhtml/Contact/Grid.php
CHANGED
@@ -6,8 +6,8 @@ class Dotdigitalgroup_Email_Block_Adminhtml_Contact_Grid extends Mage_Adminhtml_
|
|
6 |
{
|
7 |
parent::__construct();
|
8 |
$this->setId('email_contact_id');
|
9 |
-
$this->setDefaultSort('
|
10 |
-
$this->setDefaultDir('
|
11 |
$this->setSaveParametersInSession(true);
|
12 |
$this->setUseAjax(true);
|
13 |
}
|
@@ -16,8 +16,6 @@ class Dotdigitalgroup_Email_Block_Adminhtml_Contact_Grid extends Mage_Adminhtml_
|
|
16 |
{
|
17 |
$collection = Mage::getModel('ddg_automation/contact')->getCollection();
|
18 |
$this->setCollection($collection);
|
19 |
-
$this->setDefaultSort('updated_at');
|
20 |
-
$this->setDefaultDir('DESC');
|
21 |
return parent::_prepareCollection();
|
22 |
}
|
23 |
|
@@ -39,7 +37,6 @@ class Dotdigitalgroup_Email_Block_Adminhtml_Contact_Grid extends Mage_Adminhtml_
|
|
39 |
))->addColumn('customer_id', array(
|
40 |
'header' => Mage::helper('ddg')->__('Customer ID'),
|
41 |
'align' => 'left',
|
42 |
-
'width' => '20px',
|
43 |
'index' => 'customer_id',
|
44 |
'type' => 'number',
|
45 |
'escape' => true
|
6 |
{
|
7 |
parent::__construct();
|
8 |
$this->setId('email_contact_id');
|
9 |
+
$this->setDefaultSort('email_contact_id');
|
10 |
+
$this->setDefaultDir('DESC');
|
11 |
$this->setSaveParametersInSession(true);
|
12 |
$this->setUseAjax(true);
|
13 |
}
|
16 |
{
|
17 |
$collection = Mage::getModel('ddg_automation/contact')->getCollection();
|
18 |
$this->setCollection($collection);
|
|
|
|
|
19 |
return parent::_prepareCollection();
|
20 |
}
|
21 |
|
37 |
))->addColumn('customer_id', array(
|
38 |
'header' => Mage::helper('ddg')->__('Customer ID'),
|
39 |
'align' => 'left',
|
|
|
40 |
'index' => 'customer_id',
|
41 |
'type' => 'number',
|
42 |
'escape' => true
|
app/code/community/Dotdigitalgroup/Email/Block/Adminhtml/Dashboard/Tabs/Analysis/Rfm.php
CHANGED
@@ -7,6 +7,7 @@ class Dotdigitalgroup_Email_Block_Adminhtml_Dashboard_Tabs_Analysis_Rfm extends
|
|
7 |
protected $_group = 0;
|
8 |
protected $_website = 0;
|
9 |
|
|
|
10 |
/**
|
11 |
* set template
|
12 |
*
|
@@ -52,6 +53,20 @@ class Dotdigitalgroup_Email_Block_Adminhtml_Dashboard_Tabs_Analysis_Rfm extends
|
|
52 |
return $this->rfm;
|
53 |
}
|
54 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
55 |
/**
|
56 |
* get currency
|
57 |
*
|
7 |
protected $_group = 0;
|
8 |
protected $_website = 0;
|
9 |
|
10 |
+
|
11 |
/**
|
12 |
* set template
|
13 |
*
|
53 |
return $this->rfm;
|
54 |
}
|
55 |
|
56 |
+
/**
|
57 |
+
* @return array
|
58 |
+
*/
|
59 |
+
protected function getLabels() {
|
60 |
+
|
61 |
+
$labels = array(
|
62 |
+
Dotdigitalgroup_Email_Model_Adminhtml_Dashboard_Tabs_Analysis_Rfm::FREQUENCY => "Frequency (orders)",
|
63 |
+
Dotdigitalgroup_Email_Model_Adminhtml_Dashboard_Tabs_Analysis_Rfm::RECENCY => "Recency (days)",
|
64 |
+
Dotdigitalgroup_Email_Model_Adminhtml_Dashboard_Tabs_Analysis_Rfm::MONETARY => "Monetary (value)"
|
65 |
+
);
|
66 |
+
|
67 |
+
return $labels;
|
68 |
+
}
|
69 |
+
|
70 |
/**
|
71 |
* get currency
|
72 |
*
|
app/code/community/Dotdigitalgroup/Email/Block/Adminhtml/Dashboard/Tabs/Status.php
CHANGED
@@ -94,6 +94,35 @@ class Dotdigitalgroup_Email_Block_Adminhtml_Dashboard_Tabs_Status extends Mage_A
|
|
94 |
return $this->_checkpoints;
|
95 |
}
|
96 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
97 |
|
98 |
public function addCheckpoint($checkpoint)
|
99 |
{
|
@@ -1703,4 +1732,7 @@ class Dotdigitalgroup_Email_Block_Adminhtml_Dashboard_Tabs_Status extends Mage_A
|
|
1703 |
}
|
1704 |
return $resultContent;
|
1705 |
}
|
|
|
|
|
|
|
1706 |
}
|
94 |
return $this->_checkpoints;
|
95 |
}
|
96 |
|
97 |
+
protected function getDisplayData() {
|
98 |
+
|
99 |
+
$displayData = array();
|
100 |
+
foreach ( $this->getCheckpoints() as $key => $checkpoint ) {
|
101 |
+
|
102 |
+
$method = $this->getFormatedMethodName( $key );
|
103 |
+
|
104 |
+
if ( is_callable( array( $this, $method ) ) ) {
|
105 |
+
$data = $this->$method();
|
106 |
+
$showHowTo = '';
|
107 |
+
$collapsable = '1';
|
108 |
+
|
109 |
+
if ( $data->getStyle() == 'connector_passed' ) {
|
110 |
+
$showHowTo = 'no_display';
|
111 |
+
$collapsable = '0';
|
112 |
+
}
|
113 |
+
if ( $this->_getCollapseState( $key ) !== false ) {
|
114 |
+
$collapsable = $this->_getCollapseState( $key );
|
115 |
+
}
|
116 |
+
$displayData[$key] = array(
|
117 |
+
'showHowTo' => $showHowTo,
|
118 |
+
'collapsable' => $collapsable,
|
119 |
+
'data' => $data
|
120 |
+
);
|
121 |
+
}
|
122 |
+
}
|
123 |
+
return $displayData;
|
124 |
+
}
|
125 |
+
|
126 |
|
127 |
public function addCheckpoint($checkpoint)
|
128 |
{
|
1732 |
}
|
1733 |
return $resultContent;
|
1734 |
}
|
1735 |
+
|
1736 |
+
|
1737 |
+
|
1738 |
}
|
app/code/community/Dotdigitalgroup/Email/Block/Basket.php
CHANGED
@@ -40,7 +40,32 @@ class Dotdigitalgroup_Email_Block_Basket extends Mage_Core_Block_Template
|
|
40 |
$appEmulation = Mage::getSingleton('core/app_emulation');
|
41 |
$appEmulation->startEnvironmentEmulation($storeId);
|
42 |
|
43 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
44 |
}
|
45 |
|
46 |
/**
|
@@ -84,4 +109,16 @@ class Dotdigitalgroup_Email_Block_Basket extends Mage_Core_Block_Template
|
|
84 |
Dotdigitalgroup_Email_Helper_Config::XML_PATH_CONNECTOR_CONTENT_LINK_TEXT
|
85 |
);
|
86 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
87 |
}
|
40 |
$appEmulation = Mage::getSingleton('core/app_emulation');
|
41 |
$appEmulation->startEnvironmentEmulation($storeId);
|
42 |
|
43 |
+
$quoteItems = $quoteModel->getAllItems();
|
44 |
+
$itemsData = array();
|
45 |
+
|
46 |
+
foreach ( $quoteItems as $quoteItem ) {
|
47 |
+
if ($quoteItem->getParentItemId() != null)
|
48 |
+
continue;
|
49 |
+
$_product = Mage::getModel('catalog/product')->load($quoteItem->getProductId());
|
50 |
+
|
51 |
+
$inStock = ($_product->getStockItem()->getIsInStock())? 'In Stock' : 'Out of stock';
|
52 |
+
$total = Mage::helper('core')->currency($quoteItem->getBaseRowTotalInclTax());
|
53 |
+
$productUrl = $_product->getProductUrl();
|
54 |
+
$grandTotal = Mage::helper('core')->currency($this->getGrandTotal());
|
55 |
+
$itemsData[] = array(
|
56 |
+
'grandTotal' => $grandTotal,
|
57 |
+
'total' => $total,
|
58 |
+
'inStock' => $inStock,
|
59 |
+
'productUrl' => $productUrl,
|
60 |
+
'product' => $_product,
|
61 |
+
'qty' => $quoteItem->getQty()
|
62 |
+
|
63 |
+
);
|
64 |
+
}
|
65 |
+
|
66 |
+
|
67 |
+
|
68 |
+
return $itemsData;
|
69 |
}
|
70 |
|
71 |
/**
|
109 |
Dotdigitalgroup_Email_Helper_Config::XML_PATH_CONNECTOR_CONTENT_LINK_TEXT
|
110 |
);
|
111 |
}
|
112 |
+
|
113 |
+
|
114 |
+
/**
|
115 |
+
* Get dynamic style configuration.
|
116 |
+
* @return array
|
117 |
+
*/
|
118 |
+
protected function getDynamicStyle() {
|
119 |
+
|
120 |
+
$dynamicStyle = Mage::helper('ddg')->getDynamicStyles();
|
121 |
+
return $dynamicStyle;
|
122 |
+
}
|
123 |
+
|
124 |
}
|
app/code/community/Dotdigitalgroup/Email/Block/Coupon.php
CHANGED
@@ -50,4 +50,26 @@ class Dotdigitalgroup_Email_Block_Coupon extends Mage_Core_Block_Template
|
|
50 |
return false;
|
51 |
}
|
52 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
53 |
}
|
50 |
return false;
|
51 |
}
|
52 |
|
53 |
+
|
54 |
+
protected function getStyle() {
|
55 |
+
return explode(',', Mage::getStoreConfig(Dotdigitalgroup_Email_Helper_Config::XML_PATH_CONNECTOR_DYNAMIC_COUPON_STYLE));
|
56 |
+
}
|
57 |
+
|
58 |
+
protected function getCouponColor() {
|
59 |
+
return Mage::getStoreConfig(Dotdigitalgroup_Email_Helper_Config::XML_PATH_CONNECTOR_DYNAMIC_COUPON_COLOR);
|
60 |
+
}
|
61 |
+
|
62 |
+
protected function getFontSize() {
|
63 |
+
return Mage::getStoreConfig(Dotdigitalgroup_Email_Helper_Config::XML_PATH_CONNECTOR_DYNAMIC_COUPON_FONT_SIZE);
|
64 |
+
}
|
65 |
+
|
66 |
+
protected function getFont()
|
67 |
+
{
|
68 |
+
return Mage::getStoreConfig(Dotdigitalgroup_Email_Helper_Config::XML_PATH_CONNECTOR_DYNAMIC_COUPON_FONT);
|
69 |
+
}
|
70 |
+
|
71 |
+
protected function getBackgroundColor()
|
72 |
+
{
|
73 |
+
return Mage::getStoreConfig(Dotdigitalgroup_Email_Helper_Config::XML_PATH_CONNECTOR_DYNAMIC_COUPON_BG_COLOR);
|
74 |
+
}
|
75 |
}
|
app/code/community/Dotdigitalgroup/Email/Block/Order.php
CHANGED
@@ -33,4 +33,43 @@ class Dotdigitalgroup_Email_Block_Order extends Dotdigitalgroup_Email_Block_Edc
|
|
33 |
return $order;
|
34 |
}
|
35 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
36 |
}
|
33 |
return $order;
|
34 |
}
|
35 |
|
36 |
+
/**
|
37 |
+
* Dysplay mode.
|
38 |
+
* @return string
|
39 |
+
*/
|
40 |
+
public function getMode()
|
41 |
+
{
|
42 |
+
$website = Mage::app()->getStore($this->getOrder()->getStoreId())->getWebsite();
|
43 |
+
$mode = Mage::helper('ddg')->getReviewDisplayType($website);
|
44 |
+
|
45 |
+
return $mode;
|
46 |
+
}
|
47 |
+
|
48 |
+
/**
|
49 |
+
* Order website.
|
50 |
+
* @return Mage_Core_Model_Website
|
51 |
+
*/
|
52 |
+
public function getWebsite()
|
53 |
+
{
|
54 |
+
return Mage::app()->getStore($this->getOrder()->getStoreId())->getWebsite();
|
55 |
+
}
|
56 |
+
/**
|
57 |
+
* Product items to display.
|
58 |
+
* @return Mage_Catalog_Model_Resource_Product_Collection
|
59 |
+
*/
|
60 |
+
public function getItems()
|
61 |
+
{
|
62 |
+
$order = $this->getOrder();
|
63 |
+
$items = $order->getAllVisibleItems();
|
64 |
+
$productIds = array();
|
65 |
+
//get the product ids for the collection
|
66 |
+
foreach ( $items as $item ) {
|
67 |
+
$productIds[] = $item->getProductId();
|
68 |
+
}
|
69 |
+
$items = Mage::getModel('catalog/product')->getCollection()
|
70 |
+
->addAttributeToSelect('*')
|
71 |
+
->addFieldToFilter('entity_id', array('in' => $productIds));
|
72 |
+
|
73 |
+
return $items;
|
74 |
+
}
|
75 |
}
|
app/code/community/Dotdigitalgroup/Email/Helper/Config.php
CHANGED
@@ -264,6 +264,10 @@ class Dotdigitalgroup_Email_Helper_Config
|
|
264 |
|
265 |
const RAYGUN_API_CODE_URL = 'https://dotmailerformagento.co.uk/magento/raygun.xml';
|
266 |
|
|
|
|
|
|
|
|
|
267 |
|
268 |
/**
|
269 |
* @param int $website
|
264 |
|
265 |
const RAYGUN_API_CODE_URL = 'https://dotmailerformagento.co.uk/magento/raygun.xml';
|
266 |
|
267 |
+
/**
|
268 |
+
* API endpoint
|
269 |
+
*/
|
270 |
+
const PATH_FOR_API_ENDPOINT = 'connector/api/endpoint';
|
271 |
|
272 |
/**
|
273 |
* @param int $website
|
app/code/community/Dotdigitalgroup/Email/Helper/Data.php
CHANGED
@@ -879,20 +879,21 @@ class Dotdigitalgroup_Email_Helper_Data extends Mage_Core_Helper_Abstract
|
|
879 |
//string to array
|
880 |
$ipArray = explode(',', $ipString);
|
881 |
//remove white spaces
|
882 |
-
foreach($ipArray as $key => $ip){
|
883 |
$ipArray[$key] = preg_replace('/\s+/', '', $ip);
|
884 |
}
|
885 |
//ip address
|
886 |
$ipAddress = Mage::helper('core/http')->getRemoteAddr();
|
887 |
|
888 |
-
if(in_array($ipAddress, $ipArray)) {
|
889 |
return true;
|
890 |
}
|
891 |
|
892 |
-
$this->getRaygunClient()->Send('Ip address auth failed with ip address :' . $ipAddress);
|
893 |
return false;
|
|
|
|
|
|
|
894 |
}
|
895 |
-
return false;
|
896 |
}
|
897 |
|
898 |
/**
|
@@ -970,4 +971,25 @@ class Dotdigitalgroup_Email_Helper_Data extends Mage_Core_Helper_Abstract
|
|
970 |
return $this->getWebsiteConfig(Dotdigitalgroup_Email_Helper_Config::XML_PATH_AUTOMATION_REVIEW_ANCHOR, $website);
|
971 |
}
|
972 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
973 |
}
|
879 |
//string to array
|
880 |
$ipArray = explode(',', $ipString);
|
881 |
//remove white spaces
|
882 |
+
foreach ($ipArray as $key => $ip) {
|
883 |
$ipArray[$key] = preg_replace('/\s+/', '', $ip);
|
884 |
}
|
885 |
//ip address
|
886 |
$ipAddress = Mage::helper('core/http')->getRemoteAddr();
|
887 |
|
888 |
+
if (in_array($ipAddress, $ipArray)) {
|
889 |
return true;
|
890 |
}
|
891 |
|
|
|
892 |
return false;
|
893 |
+
} else {
|
894 |
+
//empty ip list will ignore the validation
|
895 |
+
return true;
|
896 |
}
|
|
|
897 |
}
|
898 |
|
899 |
/**
|
971 |
return $this->getWebsiteConfig(Dotdigitalgroup_Email_Helper_Config::XML_PATH_AUTOMATION_REVIEW_ANCHOR, $website);
|
972 |
}
|
973 |
|
974 |
+
|
975 |
+
public function getDynamicStyles()
|
976 |
+
{
|
977 |
+
return $dynamicStyle = array(
|
978 |
+
'nameStyle' => explode(',', Mage::getStoreConfig(Dotdigitalgroup_Email_Helper_Config::XML_PATH_CONNECTOR_DYNAMIC_NAME_STYLE)),
|
979 |
+
'priceStyle' => explode(',', Mage::getStoreConfig(Dotdigitalgroup_Email_Helper_Config::XML_PATH_CONNECTOR_DYNAMIC_PRICE_STYLE)),
|
980 |
+
'linkStyle' => explode(',', Mage::getStoreConfig(Dotdigitalgroup_Email_Helper_Config::XML_PATH_CONNECTOR_DYNAMIC_LINK_STYLE)),
|
981 |
+
'otherStyle' => explode(',', Mage::getStoreConfig(Dotdigitalgroup_Email_Helper_Config::XML_PATH_CONNECTOR_DYNAMIC_OTHER_STYLE)),
|
982 |
+
'nameColor' => Mage::getStoreConfig(Dotdigitalgroup_Email_Helper_Config::XML_PATH_CONNECTOR_DYNAMIC_NAME_COLOR),
|
983 |
+
'fontSize' => Mage::getStoreConfig(Dotdigitalgroup_Email_Helper_Config::XML_PATH_CONNECTOR_DYNAMIC_NAME_FONT_SIZE),
|
984 |
+
'priceColor' => Mage::getStoreConfig(Dotdigitalgroup_Email_Helper_Config::XML_PATH_CONNECTOR_DYNAMIC_PRICE_COLOR),
|
985 |
+
'priceFontSize' => Mage::getStoreConfig(Dotdigitalgroup_Email_Helper_Config::XML_PATH_CONNECTOR_DYNAMIC_PRICE_FONT_SIZE),
|
986 |
+
'urlColor' => Mage::getStoreConfig(Dotdigitalgroup_Email_Helper_Config::XML_PATH_CONNECTOR_DYNAMIC_LINK_COLOR),
|
987 |
+
'urlFontSize' => Mage::getStoreConfig(Dotdigitalgroup_Email_Helper_Config::XML_PATH_CONNECTOR_DYNAMIC_LINK_FONT_SIZE),
|
988 |
+
'otherColor' => Mage::getStoreConfig(Dotdigitalgroup_Email_Helper_Config::XML_PATH_CONNECTOR_DYNAMIC_OTHER_COLOR),
|
989 |
+
'otherFontSize' => Mage::getStoreConfig(Dotdigitalgroup_Email_Helper_Config::XML_PATH_CONNECTOR_DYNAMIC_OTHER_FONT_SIZE),
|
990 |
+
'docFont' => Mage::getStoreConfig(Dotdigitalgroup_Email_Helper_Config::XML_PATH_CONNECTOR_DYNAMIC_DOC_FONT),
|
991 |
+
'docBackgroundColor' => Mage::getStoreConfig(Dotdigitalgroup_Email_Helper_Config::XML_PATH_CONNECTOR_DYNAMIC_DOC_BG_COLOR),
|
992 |
+
'dynamicStyling' => Mage::getStoreConfig(Dotdigitalgroup_Email_Helper_Config::XML_PATH_CONNECTOR_DYNAMIC_STYLING)
|
993 |
+
);
|
994 |
+
}
|
995 |
}
|
app/code/community/Dotdigitalgroup/Email/Model/Adminhtml/Observer.php
CHANGED
@@ -98,6 +98,7 @@ class Dotdigitalgroup_Email_Model_Adminhtml_Observer
|
|
98 |
Mage::helper('ddg')->log('----VALIDATING ACCOUNT---');
|
99 |
$testModel = Mage::getModel('ddg_automation/apiconnector_test');
|
100 |
$isValid = $testModel->validate($apiUsername, $apiPassword);
|
|
|
101 |
if (! $isValid) {
|
102 |
/**
|
103 |
* Disable invalid Api credentials
|
@@ -109,10 +110,23 @@ class Dotdigitalgroup_Email_Model_Adminhtml_Observer
|
|
109 |
} else {
|
110 |
$scope = "default";
|
111 |
}
|
112 |
-
$config = Mage::getConfig();
|
113 |
$config->saveConfig(Dotdigitalgroup_Email_Helper_Config::XML_PATH_CONNECTOR_API_ENABLED, 0, $scope, $scopeId);
|
114 |
-
$config->cleanCache();
|
115 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
116 |
Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('ddg')->__('API Credentials Valid.'));
|
117 |
}
|
118 |
return $this;
|
98 |
Mage::helper('ddg')->log('----VALIDATING ACCOUNT---');
|
99 |
$testModel = Mage::getModel('ddg_automation/apiconnector_test');
|
100 |
$isValid = $testModel->validate($apiUsername, $apiPassword);
|
101 |
+
$config = Mage::getConfig();
|
102 |
if (! $isValid) {
|
103 |
/**
|
104 |
* Disable invalid Api credentials
|
110 |
} else {
|
111 |
$scope = "default";
|
112 |
}
|
|
|
113 |
$config->saveConfig(Dotdigitalgroup_Email_Helper_Config::XML_PATH_CONNECTOR_API_ENABLED, 0, $scope, $scopeId);
|
|
|
114 |
}
|
115 |
+
|
116 |
+
//check if returned value is an object
|
117 |
+
if(is_object($isValid)){
|
118 |
+
//save endpoint for account
|
119 |
+
foreach($isValid->properties as $property){
|
120 |
+
if($property->name == 'ApiEndpoint' && strlen($property->value)){
|
121 |
+
$config->saveConfig(
|
122 |
+
Dotdigitalgroup_Email_Helper_Config::PATH_FOR_API_ENDPOINT,
|
123 |
+
$property->value
|
124 |
+
);
|
125 |
+
break;
|
126 |
+
}
|
127 |
+
}
|
128 |
+
}
|
129 |
+
$config->cleanCache();
|
130 |
Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('ddg')->__('API Credentials Valid.'));
|
131 |
}
|
132 |
return $this;
|
app/code/community/Dotdigitalgroup/Email/Model/Adminhtml/Source/Automation/Programme.php
CHANGED
@@ -3,25 +3,26 @@
|
|
3 |
class Dotdigitalgroup_Email_Model_Adminhtml_Source_Automation_Programme
|
4 |
{
|
5 |
|
|
|
|
|
|
|
|
|
6 |
public function toOptionArray()
|
7 |
{
|
8 |
$fields = array();
|
9 |
-
$
|
10 |
|
11 |
-
|
12 |
-
if ($
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
|
17 |
$fields[] = array('value' => '0', 'label' => Mage::helper('ddg')->__('-- Disabled --'));
|
18 |
-
if ($websiteName) {
|
19 |
-
$website = Mage::app()->getWebsite($websiteName);
|
20 |
-
}
|
21 |
|
22 |
if (Mage::helper('ddg')->isEnabled($website)) {
|
23 |
|
24 |
-
$client = Mage::helper(
|
25 |
$programmes = $client->getPrograms();
|
26 |
if ($programmes) {
|
27 |
foreach ( $programmes as $one ) {
|
3 |
class Dotdigitalgroup_Email_Model_Adminhtml_Source_Automation_Programme
|
4 |
{
|
5 |
|
6 |
+
/**
|
7 |
+
* @return array
|
8 |
+
* @throws Mage_Core_Exception
|
9 |
+
*/
|
10 |
public function toOptionArray()
|
11 |
{
|
12 |
$fields = array();
|
13 |
+
$websiteCode = Mage::app()->getRequest()->getParam('website', false);
|
14 |
|
15 |
+
//website code param
|
16 |
+
if (! $websiteCode)
|
17 |
+
$websiteCode = 0;//use admin
|
18 |
+
|
19 |
+
$website = Mage::app()->getWebsite($websiteCode);
|
20 |
|
21 |
$fields[] = array('value' => '0', 'label' => Mage::helper('ddg')->__('-- Disabled --'));
|
|
|
|
|
|
|
22 |
|
23 |
if (Mage::helper('ddg')->isEnabled($website)) {
|
24 |
|
25 |
+
$client = Mage::helper('ddg')->getWebsiteApiClient( $website );
|
26 |
$programmes = $client->getPrograms();
|
27 |
if ($programmes) {
|
28 |
foreach ( $programmes as $one ) {
|
app/code/community/Dotdigitalgroup/Email/Model/Adminhtml/Source/Importer/Mode.php
CHANGED
@@ -13,7 +13,10 @@ class Dotdigitalgroup_Email_Model_Adminhtml_Source_Importer_Mode
|
|
13 |
Dotdigitalgroup_Email_Model_Importer::MODE_BULK => Mage::helper('ddg')->__(Dotdigitalgroup_Email_Model_Importer::MODE_BULK),
|
14 |
Dotdigitalgroup_Email_Model_Importer::MODE_SINGLE => Mage::helper('ddg')->__(Dotdigitalgroup_Email_Model_Importer::MODE_SINGLE),
|
15 |
Dotdigitalgroup_Email_Model_Importer::MODE_SINGLE_DELETE => Mage::helper('ddg')->__(Dotdigitalgroup_Email_Model_Importer::MODE_SINGLE_DELETE),
|
16 |
-
Dotdigitalgroup_Email_Model_Importer::MODE_CONTACT_DELETE => Mage::helper('ddg')->__(Dotdigitalgroup_Email_Model_Importer::MODE_CONTACT_DELETE)
|
|
|
|
|
|
|
17 |
);
|
18 |
}
|
19 |
}
|
13 |
Dotdigitalgroup_Email_Model_Importer::MODE_BULK => Mage::helper('ddg')->__(Dotdigitalgroup_Email_Model_Importer::MODE_BULK),
|
14 |
Dotdigitalgroup_Email_Model_Importer::MODE_SINGLE => Mage::helper('ddg')->__(Dotdigitalgroup_Email_Model_Importer::MODE_SINGLE),
|
15 |
Dotdigitalgroup_Email_Model_Importer::MODE_SINGLE_DELETE => Mage::helper('ddg')->__(Dotdigitalgroup_Email_Model_Importer::MODE_SINGLE_DELETE),
|
16 |
+
Dotdigitalgroup_Email_Model_Importer::MODE_CONTACT_DELETE => Mage::helper('ddg')->__(Dotdigitalgroup_Email_Model_Importer::MODE_CONTACT_DELETE),
|
17 |
+
Dotdigitalgroup_Email_Model_Importer::MODE_SUBSCRIBER_UPDATE => Mage::helper('ddg')->__(Dotdigitalgroup_Email_Model_Importer::MODE_SUBSCRIBER_UPDATE),
|
18 |
+
Dotdigitalgroup_Email_Model_Importer::MODE_SUBSCRIBER_RESUBSCRIBED => Mage::helper('ddg')->__(Dotdigitalgroup_Email_Model_Importer::MODE_SUBSCRIBER_RESUBSCRIBED),
|
19 |
+
Dotdigitalgroup_Email_Model_Importer::MODE_CONTACT_EMAIL_UPDATE => Mage::helper('ddg')->__(Dotdigitalgroup_Email_Model_Importer::MODE_CONTACT_EMAIL_UPDATE)
|
20 |
);
|
21 |
}
|
22 |
}
|
app/code/community/Dotdigitalgroup/Email/Model/Apiconnector/Client.php
CHANGED
@@ -6,23 +6,23 @@ class Dotdigitalgroup_Email_Model_Apiconnector_Client extends Dotdigitalgroup_Em
|
|
6 |
|
7 |
const REST_WAIT_UPLOAD_TIME = 5;
|
8 |
//rest api data
|
9 |
-
const REST_ACCOUNT_INFO = 'https://
|
10 |
-
const REST_CONTACTS = '
|
11 |
-
const REST_CONTACTS_IMPORT = '
|
12 |
-
const REST_ADDRESS_BOOKS = '
|
13 |
-
const REST_DATA_FILEDS = '
|
14 |
-
const REST_TRANSACTIONAL_DATA_IMPORT = '
|
15 |
-
const REST_TRANSACTIONAL_DATA = '
|
16 |
-
const REST_CAMPAIGN_SEND = '
|
17 |
-
const REST_CONTACTS_SUPPRESSED_SINCE = '
|
18 |
-
const REST_DATA_FIELDS_CAMPAIGNS = '
|
19 |
-
const REST_SMS_MESSAGE_SEND_TO = '
|
20 |
-
const REST_CONTACTS_RESUBSCRIBE = '
|
21 |
-
const REST_CAMPAIGN_FROM_ADDRESS_LIST = '
|
22 |
-
const REST_CREATE_CAMPAIGN = '
|
23 |
-
const REST_PROGRAM = '
|
24 |
-
const REST_PROGRAM_ENROLMENTS = '
|
25 |
-
const REST_TEMPLATES = '
|
26 |
|
27 |
//rest error responces
|
28 |
const API_ERROR_API_EXCEEDED = 'Your account has generated excess API activity and is being temporarily capped. Please contact support. ERROR_APIUSAGE_EXCEEDED';
|
@@ -53,6 +53,7 @@ class Dotdigitalgroup_Email_Model_Apiconnector_Client extends Dotdigitalgroup_Em
|
|
53 |
protected $_customers_file_slug = 'customer_sync';
|
54 |
protected $_subscribers_file_slug = 'subscriber_sync';
|
55 |
public $result = array('error' => false, 'message' => '');
|
|
|
56 |
|
57 |
|
58 |
/**
|
@@ -60,9 +61,44 @@ class Dotdigitalgroup_Email_Model_Apiconnector_Client extends Dotdigitalgroup_Em
|
|
60 |
*/
|
61 |
public function __construct()
|
62 |
{
|
|
|
63 |
parent::__construct();
|
64 |
}
|
65 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
66 |
/**
|
67 |
* Excluded api response that we don't want to send.
|
68 |
* @var array
|
@@ -108,7 +144,7 @@ class Dotdigitalgroup_Email_Model_Apiconnector_Client extends Dotdigitalgroup_Em
|
|
108 |
*/
|
109 |
public function getContactById($id)
|
110 |
{
|
111 |
-
$url = self::REST_CONTACTS . $id;
|
112 |
$this->setUrl($url)
|
113 |
->setVerb('GET');
|
114 |
$response = $this->execute();
|
@@ -132,7 +168,7 @@ class Dotdigitalgroup_Email_Model_Apiconnector_Client extends Dotdigitalgroup_Em
|
|
132 |
|
133 |
public function postAddressBookContactsImport($filename, $addressBookId)
|
134 |
{
|
135 |
-
$url = "
|
136 |
$helper = Mage::helper('ddg');
|
137 |
|
138 |
$ch = curl_init($url);
|
@@ -186,7 +222,7 @@ class Dotdigitalgroup_Email_Model_Apiconnector_Client extends Dotdigitalgroup_Em
|
|
186 |
*/
|
187 |
public function postAddressBookContacts($addressBookId, $apiContact)
|
188 |
{
|
189 |
-
$url = self::REST_ADDRESS_BOOKS . $addressBookId . '/contacts';
|
190 |
$this->setUrl($url)
|
191 |
->setVerb("POST")
|
192 |
->buildPostBody($apiContact);
|
@@ -212,7 +248,7 @@ class Dotdigitalgroup_Email_Model_Apiconnector_Client extends Dotdigitalgroup_Em
|
|
212 |
public function deleteAddressBookContact($addressBookId, $contactId)
|
213 |
{
|
214 |
|
215 |
-
$url = self::REST_ADDRESS_BOOKS . $addressBookId . '/contacts/' . $contactId;
|
216 |
$this->setUrl($url)
|
217 |
->setVerb('DELETE');
|
218 |
|
@@ -226,7 +262,7 @@ class Dotdigitalgroup_Email_Model_Apiconnector_Client extends Dotdigitalgroup_Em
|
|
226 |
*/
|
227 |
public function getContactsImportReport($importId)
|
228 |
{
|
229 |
-
$url = self::REST_CONTACTS_IMPORT . $importId . "/report";
|
230 |
$this->setUrl($url)
|
231 |
->setVerb('GET');
|
232 |
$response = $this->execute();
|
@@ -246,7 +282,7 @@ class Dotdigitalgroup_Email_Model_Apiconnector_Client extends Dotdigitalgroup_Em
|
|
246 |
*/
|
247 |
public function getContactByEmail($email)
|
248 |
{
|
249 |
-
$url = self::REST_CONTACTS . $email;
|
250 |
$this->setUrl($url)
|
251 |
->setVerb('GET');
|
252 |
|
@@ -268,7 +304,7 @@ class Dotdigitalgroup_Email_Model_Apiconnector_Client extends Dotdigitalgroup_Em
|
|
268 |
*/
|
269 |
public function getAddressBooks()
|
270 |
{
|
271 |
-
$url = self::REST_ADDRESS_BOOKS;
|
272 |
$this->setUrl($url)
|
273 |
->setVerb("GET");
|
274 |
|
@@ -292,7 +328,7 @@ class Dotdigitalgroup_Email_Model_Apiconnector_Client extends Dotdigitalgroup_Em
|
|
292 |
*/
|
293 |
public function getAddressBookById($id)
|
294 |
{
|
295 |
-
$url = self::REST_ADDRESS_BOOKS . $id;
|
296 |
|
297 |
$this->setUrl($url)
|
298 |
->setVerb('GET');
|
@@ -317,7 +353,7 @@ class Dotdigitalgroup_Email_Model_Apiconnector_Client extends Dotdigitalgroup_Em
|
|
317 |
'Name' => $name,
|
318 |
'Visibility' => $visibility
|
319 |
);
|
320 |
-
$url = self::REST_ADDRESS_BOOKS;
|
321 |
$this->setUrl($url)
|
322 |
->setVerb('POST')
|
323 |
->buildPostBody($data);
|
@@ -339,7 +375,7 @@ class Dotdigitalgroup_Email_Model_Apiconnector_Client extends Dotdigitalgroup_Em
|
|
339 |
*/
|
340 |
public function getCampaigns()
|
341 |
{
|
342 |
-
$url = self::REST_DATA_FIELDS_CAMPAIGNS;
|
343 |
$this->setUrl($url)
|
344 |
->setVerb('GET');
|
345 |
|
@@ -364,7 +400,7 @@ class Dotdigitalgroup_Email_Model_Apiconnector_Client extends Dotdigitalgroup_Em
|
|
364 |
*/
|
365 |
public function postDataFields($data, $type = 'String', $visibility = 'public', $defaultValue = false)
|
366 |
{
|
367 |
-
$url = self::REST_DATA_FILEDS;
|
368 |
//set default value for the numeric datatype
|
369 |
if($type == 'numeric' && !$defaultValue)
|
370 |
$defaultValue = 0;
|
@@ -403,7 +439,7 @@ class Dotdigitalgroup_Email_Model_Apiconnector_Client extends Dotdigitalgroup_Em
|
|
403 |
*/
|
404 |
public function deleteDataField($name)
|
405 |
{
|
406 |
-
$url = self::REST_DATA_FILEDS . '/' . $name;
|
407 |
$this->setUrl($url)
|
408 |
->setVerb('DELETE');
|
409 |
|
@@ -424,7 +460,7 @@ class Dotdigitalgroup_Email_Model_Apiconnector_Client extends Dotdigitalgroup_Em
|
|
424 |
*/
|
425 |
public function getDataFields()
|
426 |
{
|
427 |
-
$url = self::REST_DATA_FILEDS;
|
428 |
$this->setUrl($url)
|
429 |
->setVerb('GET');
|
430 |
|
@@ -447,7 +483,7 @@ class Dotdigitalgroup_Email_Model_Apiconnector_Client extends Dotdigitalgroup_Em
|
|
447 |
*/
|
448 |
public function updateContact($contactId, $data)
|
449 |
{
|
450 |
-
$url = self::REST_CONTACTS . $contactId;
|
451 |
$this->setUrl($url)
|
452 |
->setVerb('PUT')
|
453 |
->buildPostBody($data);
|
@@ -471,7 +507,7 @@ class Dotdigitalgroup_Email_Model_Apiconnector_Client extends Dotdigitalgroup_Em
|
|
471 |
*/
|
472 |
public function deleteContact($contactId)
|
473 |
{
|
474 |
-
$url = self::REST_CONTACTS . $contactId;
|
475 |
$this->setUrl($url)
|
476 |
->setVerb('DELETE');
|
477 |
|
@@ -507,7 +543,7 @@ class Dotdigitalgroup_Email_Model_Apiconnector_Client extends Dotdigitalgroup_Em
|
|
507 |
'Email' => $email,
|
508 |
'EmailType' => 'Html');
|
509 |
$data['DataFields'] = $dataFields;
|
510 |
-
$url = self::REST_CONTACTS . $contactId;
|
511 |
$this->setUrl($url)
|
512 |
->setVerb('PUT')
|
513 |
->buildPostBody($data);
|
@@ -539,7 +575,7 @@ class Dotdigitalgroup_Email_Model_Apiconnector_Client extends Dotdigitalgroup_Em
|
|
539 |
"campaignId" => $campaignId,
|
540 |
"ContactIds" => $contacts
|
541 |
);
|
542 |
-
$this->setUrl(self::REST_CAMPAIGN_SEND)
|
543 |
->setVerb('POST')
|
544 |
->buildPostBody($data);
|
545 |
|
@@ -569,7 +605,7 @@ class Dotdigitalgroup_Email_Model_Apiconnector_Client extends Dotdigitalgroup_Em
|
|
569 |
return $object->message = 'Not valid email :' . $email;
|
570 |
}
|
571 |
|
572 |
-
$url = self::REST_CONTACTS;
|
573 |
$data = array(
|
574 |
'Email' => $email,
|
575 |
'EmailType' => 'Html',
|
@@ -599,7 +635,7 @@ class Dotdigitalgroup_Email_Model_Apiconnector_Client extends Dotdigitalgroup_Em
|
|
599 |
*/
|
600 |
public function getContactsSuppressedSinceDate($dateString, $select = 1000, $skip = 0)
|
601 |
{
|
602 |
-
$url = self::REST_CONTACTS_SUPPRESSED_SINCE . $dateString . '?select=' . $select . '&skip=' . $skip;
|
603 |
$this->setUrl($url)
|
604 |
->setVerb("GET");
|
605 |
|
@@ -632,7 +668,7 @@ class Dotdigitalgroup_Email_Model_Apiconnector_Client extends Dotdigitalgroup_Em
|
|
632 |
);
|
633 |
}
|
634 |
}
|
635 |
-
$url = self::REST_TRANSACTIONAL_DATA_IMPORT . $collectionName;
|
636 |
$this->setURl($url)
|
637 |
->setVerb('POST')
|
638 |
->buildPostBody($orders);
|
@@ -661,9 +697,9 @@ class Dotdigitalgroup_Email_Model_Apiconnector_Client extends Dotdigitalgroup_Em
|
|
661 |
{
|
662 |
$order = $this->getContactsTransactionalDataByKey($collectionName, $data->id);
|
663 |
if(isset($order->message) && $order->message == self::API_ERROR_TRANS_NOT_EXISTS){
|
664 |
-
$url = self::REST_TRANSACTIONAL_DATA . $collectionName;
|
665 |
}else{
|
666 |
-
$url = self::REST_TRANSACTIONAL_DATA . $collectionName . '/' . $order->key ;
|
667 |
}
|
668 |
$apiData = array(
|
669 |
'Key' => $data->id,
|
@@ -694,7 +730,7 @@ class Dotdigitalgroup_Email_Model_Apiconnector_Client extends Dotdigitalgroup_Em
|
|
694 |
*/
|
695 |
public function getContactsTransactionalDataByKey($name, $key)
|
696 |
{
|
697 |
-
$url = self::REST_TRANSACTIONAL_DATA . $name . '/' . $key;
|
698 |
$this->setUrl($url)
|
699 |
->setVerb('GET');
|
700 |
|
@@ -709,7 +745,7 @@ class Dotdigitalgroup_Email_Model_Apiconnector_Client extends Dotdigitalgroup_Em
|
|
709 |
*/
|
710 |
public function deleteContactTransactionalData($email, $collectionName = 'Orders')
|
711 |
{
|
712 |
-
$url = '
|
713 |
$this->setUrl($url)
|
714 |
->setVerb('DELETE');
|
715 |
|
@@ -746,7 +782,7 @@ class Dotdigitalgroup_Email_Model_Apiconnector_Client extends Dotdigitalgroup_Em
|
|
746 |
public function postSmsMessagesSendTo($telephoneNumber, $message)
|
747 |
{
|
748 |
$data = array('Message' => $message);
|
749 |
-
$url = self::REST_SMS_MESSAGE_SEND_TO . $telephoneNumber;
|
750 |
$this->setUrl($url)
|
751 |
->setVerb('POST')
|
752 |
->buildPostBody($data);
|
@@ -771,7 +807,7 @@ class Dotdigitalgroup_Email_Model_Apiconnector_Client extends Dotdigitalgroup_Em
|
|
771 |
*/
|
772 |
public function deleteAddressBookContactsInbulk($addressBookId, $contactIds)
|
773 |
{
|
774 |
-
$url = '
|
775 |
$data = array('ContactIds' => array($contactIds[0]));
|
776 |
$this->setUrl($url)
|
777 |
->setVerb('DELETE')
|
@@ -798,7 +834,7 @@ class Dotdigitalgroup_Email_Model_Apiconnector_Client extends Dotdigitalgroup_Em
|
|
798 |
*/
|
799 |
public function postContactsResubscribe($apiContact)
|
800 |
{
|
801 |
-
$url = self::REST_CONTACTS_RESUBSCRIBE;
|
802 |
$data = array(
|
803 |
'UnsubscribedContact' => $apiContact
|
804 |
);
|
@@ -826,7 +862,7 @@ class Dotdigitalgroup_Email_Model_Apiconnector_Client extends Dotdigitalgroup_Em
|
|
826 |
|
827 |
public function getCustomFromAddresses()
|
828 |
{
|
829 |
-
$url = self::REST_CAMPAIGN_FROM_ADDRESS_LIST;
|
830 |
$this->setUrl($url)
|
831 |
->setVerb('GET');
|
832 |
|
@@ -851,7 +887,7 @@ class Dotdigitalgroup_Email_Model_Apiconnector_Client extends Dotdigitalgroup_Em
|
|
851 |
*/
|
852 |
public function postCampaign($data)
|
853 |
{
|
854 |
-
$url = self::REST_CREATE_CAMPAIGN;
|
855 |
$this->setURl($url)
|
856 |
->setVerb('POST')
|
857 |
->buildPostBody($data);
|
@@ -873,7 +909,7 @@ class Dotdigitalgroup_Email_Model_Apiconnector_Client extends Dotdigitalgroup_Em
|
|
873 |
*/
|
874 |
public function getPrograms()
|
875 |
{
|
876 |
-
$url = self::REST_PROGRAM;
|
877 |
|
878 |
$this->setUrl($url)
|
879 |
->setVerb('GET');
|
@@ -898,7 +934,7 @@ class Dotdigitalgroup_Email_Model_Apiconnector_Client extends Dotdigitalgroup_Em
|
|
898 |
*/
|
899 |
public function postProgramsEnrolments($data)
|
900 |
{
|
901 |
-
$url = self::REST_PROGRAM_ENROLMENTS;
|
902 |
$this->setUrl($url)
|
903 |
->setVerb('POST')
|
904 |
->buildPostBody($data);
|
@@ -924,7 +960,7 @@ class Dotdigitalgroup_Email_Model_Apiconnector_Client extends Dotdigitalgroup_Em
|
|
924 |
*/
|
925 |
public function getProgramById( $id )
|
926 |
{
|
927 |
-
$url = self::REST_PROGRAM . $id;
|
928 |
$this->setUrl($url)
|
929 |
->setVerb('GET');
|
930 |
|
@@ -948,7 +984,7 @@ class Dotdigitalgroup_Email_Model_Apiconnector_Client extends Dotdigitalgroup_Em
|
|
948 |
*/
|
949 |
public function getCampaignSummary($campaignId)
|
950 |
{
|
951 |
-
$url = '
|
952 |
|
953 |
$this->setUrl($url)
|
954 |
->setVerb('GET');
|
@@ -971,7 +1007,7 @@ class Dotdigitalgroup_Email_Model_Apiconnector_Client extends Dotdigitalgroup_Em
|
|
971 |
*/
|
972 |
public function deleteContactsTransactionalData($key, $collectionName = 'Orders')
|
973 |
{
|
974 |
-
$url = '
|
975 |
$this->setUrl($url)
|
976 |
->setVerb('DELETE');
|
977 |
$response = $this->execute();
|
@@ -992,7 +1028,7 @@ class Dotdigitalgroup_Email_Model_Apiconnector_Client extends Dotdigitalgroup_Em
|
|
992 |
*/
|
993 |
public function postCampaignAttachments($campaignId, $data)
|
994 |
{
|
995 |
-
$url = self::REST_CREATE_CAMPAIGN . "/$campaignId/attachments";
|
996 |
$this->setURl($url)
|
997 |
->setVerb('POST')
|
998 |
->buildPostBody($data);
|
@@ -1042,7 +1078,7 @@ class Dotdigitalgroup_Email_Model_Apiconnector_Client extends Dotdigitalgroup_Em
|
|
1042 |
*/
|
1043 |
public function getContactAddressBooks($contactId)
|
1044 |
{
|
1045 |
-
$url = '
|
1046 |
$this->setUrl($url)
|
1047 |
->setVerb('GET');
|
1048 |
$response = $this->execute();
|
@@ -1064,7 +1100,7 @@ class Dotdigitalgroup_Email_Model_Apiconnector_Client extends Dotdigitalgroup_Em
|
|
1064 |
*/
|
1065 |
public function getApiTemplateList()
|
1066 |
{
|
1067 |
-
$url = self::REST_TEMPLATES;
|
1068 |
$this->setUrl($url)
|
1069 |
->setVerb('GET');
|
1070 |
|
@@ -1089,7 +1125,7 @@ class Dotdigitalgroup_Email_Model_Apiconnector_Client extends Dotdigitalgroup_Em
|
|
1089 |
*/
|
1090 |
public function getApiTemplate($templateId)
|
1091 |
{
|
1092 |
-
$url = self::REST_TEMPLATES . '/' . $templateId;
|
1093 |
$this->setUrl($url)
|
1094 |
->setVerb('GET');
|
1095 |
|
@@ -1122,7 +1158,7 @@ class Dotdigitalgroup_Email_Model_Apiconnector_Client extends Dotdigitalgroup_Em
|
|
1122 |
);
|
1123 |
}
|
1124 |
}
|
1125 |
-
$url = self::REST_TRANSACTIONAL_DATA_IMPORT . $collectionName;
|
1126 |
$this->setURl($url)
|
1127 |
->setVerb('POST')
|
1128 |
->buildPostBody($orders);
|
@@ -1140,7 +1176,7 @@ class Dotdigitalgroup_Email_Model_Apiconnector_Client extends Dotdigitalgroup_Em
|
|
1140 |
|
1141 |
public function getCampaignsWithActivitySinceDate($dateTime)
|
1142 |
{
|
1143 |
-
$url = self::REST_DATA_FIELDS_CAMPAIGNS . '/with-activity-since/' . $dateTime;
|
1144 |
|
1145 |
$this->setUrl($url)
|
1146 |
->setVerb('GET');
|
@@ -1158,7 +1194,7 @@ class Dotdigitalgroup_Email_Model_Apiconnector_Client extends Dotdigitalgroup_Em
|
|
1158 |
|
1159 |
public function getCampaignActivityByContactId($campaignId, $contactId)
|
1160 |
{
|
1161 |
-
$url = self::REST_DATA_FIELDS_CAMPAIGNS . '/' . $campaignId . '/activities/' . $contactId;
|
1162 |
|
1163 |
$this->setUrl($url)
|
1164 |
->setVerb('GET');
|
@@ -1182,7 +1218,7 @@ class Dotdigitalgroup_Email_Model_Apiconnector_Client extends Dotdigitalgroup_Em
|
|
1182 |
*/
|
1183 |
public function getContactsImportByImportId($importId)
|
1184 |
{
|
1185 |
-
$url = self::REST_CONTACTS_IMPORT . $importId;
|
1186 |
|
1187 |
$this->setUrl($url)
|
1188 |
->setVerb('GET');
|
@@ -1206,7 +1242,7 @@ class Dotdigitalgroup_Email_Model_Apiconnector_Client extends Dotdigitalgroup_Em
|
|
1206 |
*/
|
1207 |
public function getContactsTransactionalDataImportByImportId($importId)
|
1208 |
{
|
1209 |
-
$url = self::REST_TRANSACTIONAL_DATA_IMPORT . $importId;
|
1210 |
|
1211 |
$this->setUrl($url)
|
1212 |
->setVerb('GET');
|
@@ -1231,7 +1267,7 @@ class Dotdigitalgroup_Email_Model_Apiconnector_Client extends Dotdigitalgroup_Em
|
|
1231 |
*/
|
1232 |
public function getContactImportReportFaults($id)
|
1233 |
{
|
1234 |
-
$url = self::REST_CONTACTS_IMPORT . $id . '/report-faults';
|
1235 |
$this->setUrl($url)
|
1236 |
->setVerb('GET');
|
1237 |
|
6 |
|
7 |
const REST_WAIT_UPLOAD_TIME = 5;
|
8 |
//rest api data
|
9 |
+
const REST_ACCOUNT_INFO = 'https://r1-api.dotmailer.com/v2/account-info';
|
10 |
+
const REST_CONTACTS = '/v2/contacts/';
|
11 |
+
const REST_CONTACTS_IMPORT = '/v2/contacts/import/';
|
12 |
+
const REST_ADDRESS_BOOKS = '/v2/address-books/';
|
13 |
+
const REST_DATA_FILEDS = '/v2/data-fields';
|
14 |
+
const REST_TRANSACTIONAL_DATA_IMPORT = '/v2/contacts/transactional-data/import/';
|
15 |
+
const REST_TRANSACTIONAL_DATA = '/v2/contacts/transactional-data/';
|
16 |
+
const REST_CAMPAIGN_SEND = '/v2/campaigns/send';
|
17 |
+
const REST_CONTACTS_SUPPRESSED_SINCE = '/v2/contacts/suppressed-since/';
|
18 |
+
const REST_DATA_FIELDS_CAMPAIGNS = '/v2/campaigns';
|
19 |
+
const REST_SMS_MESSAGE_SEND_TO = '/v2/sms-messages/send-to/';
|
20 |
+
const REST_CONTACTS_RESUBSCRIBE = '/v2/contacts/resubscribe';
|
21 |
+
const REST_CAMPAIGN_FROM_ADDRESS_LIST = '/v2/custom-from-addresses';
|
22 |
+
const REST_CREATE_CAMPAIGN = '/v2/campaigns';
|
23 |
+
const REST_PROGRAM = '/v2/programs/';
|
24 |
+
const REST_PROGRAM_ENROLMENTS = '/v2/programs/enrolments';
|
25 |
+
const REST_TEMPLATES = '/v2/templates';
|
26 |
|
27 |
//rest error responces
|
28 |
const API_ERROR_API_EXCEEDED = 'Your account has generated excess API activity and is being temporarily capped. Please contact support. ERROR_APIUSAGE_EXCEEDED';
|
53 |
protected $_customers_file_slug = 'customer_sync';
|
54 |
protected $_subscribers_file_slug = 'subscriber_sync';
|
55 |
public $result = array('error' => false, 'message' => '');
|
56 |
+
protected $_apiEndpoint;
|
57 |
|
58 |
|
59 |
/**
|
61 |
*/
|
62 |
public function __construct()
|
63 |
{
|
64 |
+
$this->_checkApiEndPoint();
|
65 |
parent::__construct();
|
66 |
}
|
67 |
|
68 |
+
protected function _checkApiEndPoint()
|
69 |
+
{
|
70 |
+
$apiEndpoint = Mage::helper('ddg')->getWebsiteConfig(Dotdigitalgroup_Email_Helper_Config::PATH_FOR_API_ENDPOINT);
|
71 |
+
if(!$apiEndpoint){
|
72 |
+
$helper = Mage::helper('ddg');
|
73 |
+
$this->setApiUsername($helper->getApiUsername())
|
74 |
+
->setApiPassword($helper->getApiPassword());
|
75 |
+
|
76 |
+
$accountInfo = $this->getAccountInfo();
|
77 |
+
//check if returned value is an object
|
78 |
+
if(is_object($accountInfo) && !isset($accountInfo->message)){
|
79 |
+
//save endpoint for account
|
80 |
+
foreach($accountInfo->properties as $property){
|
81 |
+
if($property->name == 'ApiEndpoint' && strlen($property->value)){
|
82 |
+
$apiEndpoint = $property->value;
|
83 |
+
$config = Mage::getConfig();
|
84 |
+
$config->saveConfig(
|
85 |
+
Dotdigitalgroup_Email_Helper_Config::PATH_FOR_API_ENDPOINT,
|
86 |
+
$property->value
|
87 |
+
);
|
88 |
+
$config->cleanCache();
|
89 |
+
break;
|
90 |
+
}
|
91 |
+
}
|
92 |
+
}
|
93 |
+
|
94 |
+
//check api endpoint again
|
95 |
+
if(!$apiEndpoint)
|
96 |
+
throw new Exception('API endpoint cannot be empty. Re-save api credentials to retrieve API endpoint.');
|
97 |
+
}
|
98 |
+
|
99 |
+
$this->_apiEndpoint = $apiEndpoint;
|
100 |
+
}
|
101 |
+
|
102 |
/**
|
103 |
* Excluded api response that we don't want to send.
|
104 |
* @var array
|
144 |
*/
|
145 |
public function getContactById($id)
|
146 |
{
|
147 |
+
$url = $this->_apiEndpoint . self::REST_CONTACTS . $id;
|
148 |
$this->setUrl($url)
|
149 |
->setVerb('GET');
|
150 |
$response = $this->execute();
|
168 |
|
169 |
public function postAddressBookContactsImport($filename, $addressBookId)
|
170 |
{
|
171 |
+
$url = $this->_apiEndpoint . "/v2/address-books/{$addressBookId}/contacts/import";
|
172 |
$helper = Mage::helper('ddg');
|
173 |
|
174 |
$ch = curl_init($url);
|
222 |
*/
|
223 |
public function postAddressBookContacts($addressBookId, $apiContact)
|
224 |
{
|
225 |
+
$url = $this->_apiEndpoint . self::REST_ADDRESS_BOOKS . $addressBookId . '/contacts';
|
226 |
$this->setUrl($url)
|
227 |
->setVerb("POST")
|
228 |
->buildPostBody($apiContact);
|
248 |
public function deleteAddressBookContact($addressBookId, $contactId)
|
249 |
{
|
250 |
|
251 |
+
$url = $this->_apiEndpoint . self::REST_ADDRESS_BOOKS . $addressBookId . '/contacts/' . $contactId;
|
252 |
$this->setUrl($url)
|
253 |
->setVerb('DELETE');
|
254 |
|
262 |
*/
|
263 |
public function getContactsImportReport($importId)
|
264 |
{
|
265 |
+
$url = $this->_apiEndpoint . self::REST_CONTACTS_IMPORT . $importId . "/report";
|
266 |
$this->setUrl($url)
|
267 |
->setVerb('GET');
|
268 |
$response = $this->execute();
|
282 |
*/
|
283 |
public function getContactByEmail($email)
|
284 |
{
|
285 |
+
$url = $this->_apiEndpoint . self::REST_CONTACTS . $email;
|
286 |
$this->setUrl($url)
|
287 |
->setVerb('GET');
|
288 |
|
304 |
*/
|
305 |
public function getAddressBooks()
|
306 |
{
|
307 |
+
$url = $this->_apiEndpoint . self::REST_ADDRESS_BOOKS;
|
308 |
$this->setUrl($url)
|
309 |
->setVerb("GET");
|
310 |
|
328 |
*/
|
329 |
public function getAddressBookById($id)
|
330 |
{
|
331 |
+
$url = $this->_apiEndpoint . self::REST_ADDRESS_BOOKS . $id;
|
332 |
|
333 |
$this->setUrl($url)
|
334 |
->setVerb('GET');
|
353 |
'Name' => $name,
|
354 |
'Visibility' => $visibility
|
355 |
);
|
356 |
+
$url = $this->_apiEndpoint . self::REST_ADDRESS_BOOKS;
|
357 |
$this->setUrl($url)
|
358 |
->setVerb('POST')
|
359 |
->buildPostBody($data);
|
375 |
*/
|
376 |
public function getCampaigns()
|
377 |
{
|
378 |
+
$url = $this->_apiEndpoint . self::REST_DATA_FIELDS_CAMPAIGNS;
|
379 |
$this->setUrl($url)
|
380 |
->setVerb('GET');
|
381 |
|
400 |
*/
|
401 |
public function postDataFields($data, $type = 'String', $visibility = 'public', $defaultValue = false)
|
402 |
{
|
403 |
+
$url = $this->_apiEndpoint . self::REST_DATA_FILEDS;
|
404 |
//set default value for the numeric datatype
|
405 |
if($type == 'numeric' && !$defaultValue)
|
406 |
$defaultValue = 0;
|
439 |
*/
|
440 |
public function deleteDataField($name)
|
441 |
{
|
442 |
+
$url = $this->_apiEndpoint . self::REST_DATA_FILEDS . '/' . $name;
|
443 |
$this->setUrl($url)
|
444 |
->setVerb('DELETE');
|
445 |
|
460 |
*/
|
461 |
public function getDataFields()
|
462 |
{
|
463 |
+
$url = $this->_apiEndpoint . self::REST_DATA_FILEDS;
|
464 |
$this->setUrl($url)
|
465 |
->setVerb('GET');
|
466 |
|
483 |
*/
|
484 |
public function updateContact($contactId, $data)
|
485 |
{
|
486 |
+
$url = $this->_apiEndpoint . self::REST_CONTACTS . $contactId;
|
487 |
$this->setUrl($url)
|
488 |
->setVerb('PUT')
|
489 |
->buildPostBody($data);
|
507 |
*/
|
508 |
public function deleteContact($contactId)
|
509 |
{
|
510 |
+
$url = $this->_apiEndpoint . self::REST_CONTACTS . $contactId;
|
511 |
$this->setUrl($url)
|
512 |
->setVerb('DELETE');
|
513 |
|
543 |
'Email' => $email,
|
544 |
'EmailType' => 'Html');
|
545 |
$data['DataFields'] = $dataFields;
|
546 |
+
$url = $this->_apiEndpoint . self::REST_CONTACTS . $contactId;
|
547 |
$this->setUrl($url)
|
548 |
->setVerb('PUT')
|
549 |
->buildPostBody($data);
|
575 |
"campaignId" => $campaignId,
|
576 |
"ContactIds" => $contacts
|
577 |
);
|
578 |
+
$this->setUrl($this->_apiEndpoint . self::REST_CAMPAIGN_SEND)
|
579 |
->setVerb('POST')
|
580 |
->buildPostBody($data);
|
581 |
|
605 |
return $object->message = 'Not valid email :' . $email;
|
606 |
}
|
607 |
|
608 |
+
$url = $this->_apiEndpoint . self::REST_CONTACTS;
|
609 |
$data = array(
|
610 |
'Email' => $email,
|
611 |
'EmailType' => 'Html',
|
635 |
*/
|
636 |
public function getContactsSuppressedSinceDate($dateString, $select = 1000, $skip = 0)
|
637 |
{
|
638 |
+
$url = $this->_apiEndpoint . self::REST_CONTACTS_SUPPRESSED_SINCE . $dateString . '?select=' . $select . '&skip=' . $skip;
|
639 |
$this->setUrl($url)
|
640 |
->setVerb("GET");
|
641 |
|
668 |
);
|
669 |
}
|
670 |
}
|
671 |
+
$url = $this->_apiEndpoint . self::REST_TRANSACTIONAL_DATA_IMPORT . $collectionName;
|
672 |
$this->setURl($url)
|
673 |
->setVerb('POST')
|
674 |
->buildPostBody($orders);
|
697 |
{
|
698 |
$order = $this->getContactsTransactionalDataByKey($collectionName, $data->id);
|
699 |
if(isset($order->message) && $order->message == self::API_ERROR_TRANS_NOT_EXISTS){
|
700 |
+
$url = $this->_apiEndpoint . self::REST_TRANSACTIONAL_DATA . $collectionName;
|
701 |
}else{
|
702 |
+
$url = $this->_apiEndpoint . self::REST_TRANSACTIONAL_DATA . $collectionName . '/' . $order->key ;
|
703 |
}
|
704 |
$apiData = array(
|
705 |
'Key' => $data->id,
|
730 |
*/
|
731 |
public function getContactsTransactionalDataByKey($name, $key)
|
732 |
{
|
733 |
+
$url = $this->_apiEndpoint . self::REST_TRANSACTIONAL_DATA . $name . '/' . $key;
|
734 |
$this->setUrl($url)
|
735 |
->setVerb('GET');
|
736 |
|
745 |
*/
|
746 |
public function deleteContactTransactionalData($email, $collectionName = 'Orders')
|
747 |
{
|
748 |
+
$url = $this->_apiEndpoint . '/v2/contacts/' . $email . '/transactional-data/' . $collectionName ;
|
749 |
$this->setUrl($url)
|
750 |
->setVerb('DELETE');
|
751 |
|
782 |
public function postSmsMessagesSendTo($telephoneNumber, $message)
|
783 |
{
|
784 |
$data = array('Message' => $message);
|
785 |
+
$url = $this->_apiEndpoint . self::REST_SMS_MESSAGE_SEND_TO . $telephoneNumber;
|
786 |
$this->setUrl($url)
|
787 |
->setVerb('POST')
|
788 |
->buildPostBody($data);
|
807 |
*/
|
808 |
public function deleteAddressBookContactsInbulk($addressBookId, $contactIds)
|
809 |
{
|
810 |
+
$url = $this->_apiEndpoint . '/v2/address-books/' . $addressBookId . '/contacts/inbulk';
|
811 |
$data = array('ContactIds' => array($contactIds[0]));
|
812 |
$this->setUrl($url)
|
813 |
->setVerb('DELETE')
|
834 |
*/
|
835 |
public function postContactsResubscribe($apiContact)
|
836 |
{
|
837 |
+
$url = $this->_apiEndpoint . self::REST_CONTACTS_RESUBSCRIBE;
|
838 |
$data = array(
|
839 |
'UnsubscribedContact' => $apiContact
|
840 |
);
|
862 |
|
863 |
public function getCustomFromAddresses()
|
864 |
{
|
865 |
+
$url = $this->_apiEndpoint . self::REST_CAMPAIGN_FROM_ADDRESS_LIST;
|
866 |
$this->setUrl($url)
|
867 |
->setVerb('GET');
|
868 |
|
887 |
*/
|
888 |
public function postCampaign($data)
|
889 |
{
|
890 |
+
$url = $this->_apiEndpoint . self::REST_CREATE_CAMPAIGN;
|
891 |
$this->setURl($url)
|
892 |
->setVerb('POST')
|
893 |
->buildPostBody($data);
|
909 |
*/
|
910 |
public function getPrograms()
|
911 |
{
|
912 |
+
$url = $this->_apiEndpoint . self::REST_PROGRAM;
|
913 |
|
914 |
$this->setUrl($url)
|
915 |
->setVerb('GET');
|
934 |
*/
|
935 |
public function postProgramsEnrolments($data)
|
936 |
{
|
937 |
+
$url = $this->_apiEndpoint . self::REST_PROGRAM_ENROLMENTS;
|
938 |
$this->setUrl($url)
|
939 |
->setVerb('POST')
|
940 |
->buildPostBody($data);
|
960 |
*/
|
961 |
public function getProgramById( $id )
|
962 |
{
|
963 |
+
$url = $this->_apiEndpoint . self::REST_PROGRAM . $id;
|
964 |
$this->setUrl($url)
|
965 |
->setVerb('GET');
|
966 |
|
984 |
*/
|
985 |
public function getCampaignSummary($campaignId)
|
986 |
{
|
987 |
+
$url = $this->_apiEndpoint . '/v2/campaigns/' . $campaignId . '/summary';
|
988 |
|
989 |
$this->setUrl($url)
|
990 |
->setVerb('GET');
|
1007 |
*/
|
1008 |
public function deleteContactsTransactionalData($key, $collectionName = 'Orders')
|
1009 |
{
|
1010 |
+
$url = $this->_apiEndpoint . '/v2/contacts/transactional-data/' . $collectionName .'/' . $key ;
|
1011 |
$this->setUrl($url)
|
1012 |
->setVerb('DELETE');
|
1013 |
$response = $this->execute();
|
1028 |
*/
|
1029 |
public function postCampaignAttachments($campaignId, $data)
|
1030 |
{
|
1031 |
+
$url = $this->_apiEndpoint . self::REST_CREATE_CAMPAIGN . "/$campaignId/attachments";
|
1032 |
$this->setURl($url)
|
1033 |
->setVerb('POST')
|
1034 |
->buildPostBody($data);
|
1078 |
*/
|
1079 |
public function getContactAddressBooks($contactId)
|
1080 |
{
|
1081 |
+
$url = $this->_apiEndpoint . '/v2/contacts/' . $contactId . '/address-books' ;
|
1082 |
$this->setUrl($url)
|
1083 |
->setVerb('GET');
|
1084 |
$response = $this->execute();
|
1100 |
*/
|
1101 |
public function getApiTemplateList()
|
1102 |
{
|
1103 |
+
$url = $this->_apiEndpoint . self::REST_TEMPLATES;
|
1104 |
$this->setUrl($url)
|
1105 |
->setVerb('GET');
|
1106 |
|
1125 |
*/
|
1126 |
public function getApiTemplate($templateId)
|
1127 |
{
|
1128 |
+
$url = $this->_apiEndpoint . self::REST_TEMPLATES . '/' . $templateId;
|
1129 |
$this->setUrl($url)
|
1130 |
->setVerb('GET');
|
1131 |
|
1158 |
);
|
1159 |
}
|
1160 |
}
|
1161 |
+
$url = $this->_apiEndpoint . self::REST_TRANSACTIONAL_DATA_IMPORT . $collectionName;
|
1162 |
$this->setURl($url)
|
1163 |
->setVerb('POST')
|
1164 |
->buildPostBody($orders);
|
1176 |
|
1177 |
public function getCampaignsWithActivitySinceDate($dateTime)
|
1178 |
{
|
1179 |
+
$url = $this->_apiEndpoint . self::REST_DATA_FIELDS_CAMPAIGNS . '/with-activity-since/' . $dateTime;
|
1180 |
|
1181 |
$this->setUrl($url)
|
1182 |
->setVerb('GET');
|
1194 |
|
1195 |
public function getCampaignActivityByContactId($campaignId, $contactId)
|
1196 |
{
|
1197 |
+
$url = $this->_apiEndpoint . self::REST_DATA_FIELDS_CAMPAIGNS . '/' . $campaignId . '/activities/' . $contactId;
|
1198 |
|
1199 |
$this->setUrl($url)
|
1200 |
->setVerb('GET');
|
1218 |
*/
|
1219 |
public function getContactsImportByImportId($importId)
|
1220 |
{
|
1221 |
+
$url = $this->_apiEndpoint . self::REST_CONTACTS_IMPORT . $importId;
|
1222 |
|
1223 |
$this->setUrl($url)
|
1224 |
->setVerb('GET');
|
1242 |
*/
|
1243 |
public function getContactsTransactionalDataImportByImportId($importId)
|
1244 |
{
|
1245 |
+
$url = $this->_apiEndpoint . self::REST_TRANSACTIONAL_DATA_IMPORT . $importId;
|
1246 |
|
1247 |
$this->setUrl($url)
|
1248 |
->setVerb('GET');
|
1267 |
*/
|
1268 |
public function getContactImportReportFaults($id)
|
1269 |
{
|
1270 |
+
$url = $this->_apiEndpoint . self::REST_CONTACTS_IMPORT . $id . '/report-faults';
|
1271 |
$this->setUrl($url)
|
1272 |
->setVerb('GET');
|
1273 |
|
app/code/community/Dotdigitalgroup/Email/Model/Connector/Order.php
CHANGED
@@ -431,7 +431,7 @@ class Dotdigitalgroup_Email_Model_Connector_Order
|
|
431 |
}
|
432 |
|
433 |
|
434 |
-
if ($value) // check limit on text and assign value to array
|
435 |
$attributes[][$attribute_code] = $this->_limitLength($value);
|
436 |
}
|
437 |
}
|
431 |
}
|
432 |
|
433 |
|
434 |
+
if (is_string($value)) // check limit on text and assign value to array
|
435 |
$attributes[][$attribute_code] = $this->_limitLength($value);
|
436 |
}
|
437 |
}
|
app/code/community/Dotdigitalgroup/Email/Model/Contact.php
CHANGED
@@ -15,20 +15,6 @@ class Dotdigitalgroup_Email_Model_Contact extends Mage_Core_Model_Abstract
|
|
15 |
$this->_init('ddg_automation/contact');
|
16 |
}
|
17 |
|
18 |
-
|
19 |
-
/**
|
20 |
-
* @return $this|Mage_Core_Model_Abstract
|
21 |
-
*/
|
22 |
-
protected function _beforeSave()
|
23 |
-
{
|
24 |
-
parent::_beforeSave();
|
25 |
-
$now = Mage::getSingleton('core/date')->gmtDate();
|
26 |
-
if ($this->isObjectNew()) {
|
27 |
-
$this->setCreatedAt($now);
|
28 |
-
}
|
29 |
-
return $this;
|
30 |
-
}
|
31 |
-
|
32 |
/**
|
33 |
* Load contact by customer id
|
34 |
* @param $customerId
|
15 |
$this->_init('ddg_automation/contact');
|
16 |
}
|
17 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
18 |
/**
|
19 |
* Load contact by customer id
|
20 |
* @param $customerId
|
app/code/community/Dotdigitalgroup/Email/Model/Customer/Observer.php
CHANGED
@@ -32,31 +32,17 @@ class Dotdigitalgroup_Email_Model_Customer_Observer
|
|
32 |
//email change detection
|
33 |
if ($emailBefore && $email != $emailBefore) {
|
34 |
Mage::helper('ddg')->log('email change detected : ' . $email . ', after : ' . $emailBefore . ', website id : ' . $websiteId);
|
35 |
-
$
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
'Email' => $email,
|
47 |
-
'EmailType' => 'Html'
|
48 |
-
);
|
49 |
-
//update the contact with same id - different email
|
50 |
-
$client->updateContact($response->id, $data);
|
51 |
-
|
52 |
-
}
|
53 |
-
if (!$isSubscribed && $response->status == 'Subscribed') {
|
54 |
-
$client->deleteAddressBookContact($subscribersAddressBook, $response->id);
|
55 |
-
}
|
56 |
-
} elseif (isset($response->message)) {
|
57 |
-
Mage::helper('ddg')->log('Email change error : ' . $response->message);
|
58 |
-
}
|
59 |
-
}
|
60 |
|
61 |
} elseif (!$emailBefore) {
|
62 |
//for new contacts update email
|
32 |
//email change detection
|
33 |
if ($emailBefore && $email != $emailBefore) {
|
34 |
Mage::helper('ddg')->log('email change detected : ' . $email . ', after : ' . $emailBefore . ', website id : ' . $websiteId);
|
35 |
+
$data = array(
|
36 |
+
'emailBefore' => $emailBefore,
|
37 |
+
'email' => $email,
|
38 |
+
'isSubscribed' => $isSubscribed
|
39 |
+
);
|
40 |
+
Mage::getModel('ddg_automation/importer')->registerQueue(
|
41 |
+
Dotdigitalgroup_Email_Model_Importer::IMPORT_TYPE_CONTACT_UPDATE,
|
42 |
+
$data,
|
43 |
+
Dotdigitalgroup_Email_Model_Importer::MODE_CONTACT_EMAIL_UPDATE,
|
44 |
+
$websiteId
|
45 |
+
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
46 |
|
47 |
} elseif (!$emailBefore) {
|
48 |
//for new contacts update email
|
app/code/community/Dotdigitalgroup/Email/Model/Importer.php
CHANGED
@@ -13,6 +13,9 @@ class Dotdigitalgroup_Email_Model_Importer extends Mage_Core_Model_Abstract
|
|
13 |
const MODE_SINGLE = 'Single';
|
14 |
const MODE_SINGLE_DELETE = 'Single_Delete';
|
15 |
const MODE_CONTACT_DELETE = 'Contact_Delete';
|
|
|
|
|
|
|
16 |
|
17 |
//import type
|
18 |
const IMPORT_TYPE_CONTACT = 'Contact';
|
@@ -23,6 +26,9 @@ class Dotdigitalgroup_Email_Model_Importer extends Mage_Core_Model_Abstract
|
|
23 |
const IMPORT_TYPE_QUOTE = 'Quote';
|
24 |
const IMPORT_TYPE_SUBSCRIBERS = 'Subscriber';
|
25 |
const IMPORT_TYPE_GUEST = 'Guest';
|
|
|
|
|
|
|
26 |
|
27 |
protected $_reasons = array(
|
28 |
'Globally Suppressed',
|
@@ -260,6 +266,53 @@ class Dotdigitalgroup_Email_Model_Importer extends Mage_Core_Model_Abstract
|
|
260 |
if (isset($result->message)) {
|
261 |
$error = true;
|
262 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
263 |
} else { //bulk import transactional data
|
264 |
$result = $client->postContactsTransactionalDataImport($importData, $item->getImportType());
|
265 |
if (isset($result->message) && !isset($result->id)) {
|
@@ -277,7 +330,10 @@ class Dotdigitalgroup_Email_Model_Importer extends Mage_Core_Model_Abstract
|
|
277 |
if (!$error) {
|
278 |
if ($item->getImportMode() == self::MODE_SINGLE_DELETE or
|
279 |
$item->getImportMode() == self::MODE_SINGLE or
|
280 |
-
$item->getImportMode() == self::MODE_CONTACT_DELETE
|
|
|
|
|
|
|
281 |
) {
|
282 |
$item->setImportStatus(self::IMPORTED)
|
283 |
->setImportFinished($now)
|
13 |
const MODE_SINGLE = 'Single';
|
14 |
const MODE_SINGLE_DELETE = 'Single_Delete';
|
15 |
const MODE_CONTACT_DELETE = 'Contact_Delete';
|
16 |
+
const MODE_CONTACT_EMAIL_UPDATE = 'Contact_Email_Update';
|
17 |
+
const MODE_SUBSCRIBER_UPDATE = 'Subscriber_Update';
|
18 |
+
const MODE_SUBSCRIBER_RESUBSCRIBED = 'Subscriber_Resubscribed';
|
19 |
|
20 |
//import type
|
21 |
const IMPORT_TYPE_CONTACT = 'Contact';
|
26 |
const IMPORT_TYPE_QUOTE = 'Quote';
|
27 |
const IMPORT_TYPE_SUBSCRIBERS = 'Subscriber';
|
28 |
const IMPORT_TYPE_GUEST = 'Guest';
|
29 |
+
const IMPORT_TYPE_CONTACT_UPDATE = 'Contact';
|
30 |
+
const IMPORT_TYPE_SUBSCRIBER_UPDATE = 'Subscriber';
|
31 |
+
const IMPORT_TYPE_SUBSCRIBER_RESUBSCRIBED = 'Subscriber';
|
32 |
|
33 |
protected $_reasons = array(
|
34 |
'Globally Suppressed',
|
266 |
if (isset($result->message)) {
|
267 |
$error = true;
|
268 |
}
|
269 |
+
} elseif ($item->getImportMode() == self::MODE_CONTACT_EMAIL_UPDATE){
|
270 |
+
$emailBefore = $importData['emailBefore'];
|
271 |
+
$email = $importData['email'];
|
272 |
+
$isSubscribed = $importData['isSubscribed'];
|
273 |
+
$subscribersAddressBook = Mage::helper('ddg')->getWebsiteConfig(
|
274 |
+
Dotdigitalgroup_Email_Helper_Config::XML_PATH_CONNECTOR_SUBSCRIBERS_ADDRESS_BOOK_ID, $websiteId);
|
275 |
+
$result = $client->postContacts($emailBefore);
|
276 |
+
//check for matching email
|
277 |
+
if (isset($result->id)) {
|
278 |
+
if ($email != $result->email) {
|
279 |
+
$data = array(
|
280 |
+
'Email' => $email,
|
281 |
+
'EmailType' => 'Html'
|
282 |
+
);
|
283 |
+
//update the contact with same id - different email
|
284 |
+
$client->updateContact($result->id, $data);
|
285 |
+
}
|
286 |
+
if (!$isSubscribed && $result->status == 'Subscribed') {
|
287 |
+
$client->deleteAddressBookContact($subscribersAddressBook, $result->id);
|
288 |
+
}
|
289 |
+
} elseif (isset($result->message)) {
|
290 |
+
$error = true;
|
291 |
+
Mage::helper('ddg')->log('Email change error : ' . $result->message);
|
292 |
+
}
|
293 |
+
} elseif ($item->getImportMode() == self::MODE_SUBSCRIBER_UPDATE){
|
294 |
+
$email = $importData['email'];
|
295 |
+
$id = $importData['id'];
|
296 |
+
$contactEmail = Mage::getModel('ddg_automation/contact')->load($id);
|
297 |
+
$result = $client->postContacts( $email );
|
298 |
+
if ( isset( $result->id ) ) {
|
299 |
+
$contactId = $result->id;
|
300 |
+
$client->deleteAddressBookContact( $helper->getSubscriberAddressBook( $websiteId ), $contactId );
|
301 |
+
$contactEmail->setContactId($contactId)
|
302 |
+
->save();
|
303 |
+
} else {
|
304 |
+
$contactEmail->setSuppressed( '1' )
|
305 |
+
->save();
|
306 |
+
}
|
307 |
+
} elseif ($item->getImportMode() == self::MODE_SUBSCRIBER_RESUBSCRIBED){
|
308 |
+
$email = $importData['email'];
|
309 |
+
$apiContact = $client->postContacts( $email );
|
310 |
+
|
311 |
+
//resubscribe suppressed contacts
|
312 |
+
if (isset($apiContact->message) && $apiContact->message == Dotdigitalgroup_Email_Model_Apiconnector_Client::API_ERROR_CONTACT_SUPPRESSED) {
|
313 |
+
$apiContact = $client->getContactByEmail($email);
|
314 |
+
$client->postContactsResubscribe( $apiContact );
|
315 |
+
}
|
316 |
} else { //bulk import transactional data
|
317 |
$result = $client->postContactsTransactionalDataImport($importData, $item->getImportType());
|
318 |
if (isset($result->message) && !isset($result->id)) {
|
330 |
if (!$error) {
|
331 |
if ($item->getImportMode() == self::MODE_SINGLE_DELETE or
|
332 |
$item->getImportMode() == self::MODE_SINGLE or
|
333 |
+
$item->getImportMode() == self::MODE_CONTACT_DELETE or
|
334 |
+
$item->getImportMode() == self::MODE_CONTACT_EMAIL_UPDATE or
|
335 |
+
$item->getImportMode() == self::MODE_SUBSCRIBER_RESUBSCRIBED or
|
336 |
+
$item->getImportMode() == self::MODE_SUBSCRIBER_UPDATE
|
337 |
) {
|
338 |
$item->setImportStatus(self::IMPORTED)
|
339 |
->setImportFinished($now)
|
app/code/community/Dotdigitalgroup/Email/Model/Newsletter/Observer.php
CHANGED
@@ -29,20 +29,16 @@ class Dotdigitalgroup_Email_Model_Newsletter_Observer
|
|
29 |
|
30 |
// only for subsribers
|
31 |
if ($subscriberStatus == Mage_Newsletter_Model_Subscriber::STATUS_SUBSCRIBED) {
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
$apiContact = $client->getContactByEmail($email);
|
43 |
-
$client->postContactsResubscribe( $apiContact );
|
44 |
-
}
|
45 |
-
}
|
46 |
// reset the subscriber as suppressed
|
47 |
$contactEmail->setSuppressed(null);
|
48 |
|
@@ -51,26 +47,17 @@ class Dotdigitalgroup_Email_Model_Newsletter_Observer
|
|
51 |
//skip if contact is suppressed
|
52 |
if ($contactEmail->getSuppressed())
|
53 |
return $this;
|
|
|
54 |
//update contact id for the subscriber
|
55 |
-
$
|
56 |
-
//
|
57 |
-
if (
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
$
|
63 |
-
|
64 |
-
$contactId = $result->id;
|
65 |
-
} else {
|
66 |
-
//no contact id skip
|
67 |
-
$contactEmail->setSuppressed( '1' )
|
68 |
-
->save();
|
69 |
-
return $this;
|
70 |
-
}
|
71 |
-
}
|
72 |
-
//remove contact from address book
|
73 |
-
$client->deleteAddressBookContact( $helper->getSubscriberAddressBook( $websiteId ), $contactId );
|
74 |
}
|
75 |
$contactEmail->setIsSubscriber(null)
|
76 |
->setSubscriberStatus(Mage_Newsletter_Model_Subscriber::STATUS_UNSUBSCRIBED);
|
@@ -88,8 +75,7 @@ class Dotdigitalgroup_Email_Model_Newsletter_Observer
|
|
88 |
|
89 |
//update the contact
|
90 |
$contactEmail->setStoreId($storeId);
|
91 |
-
|
92 |
-
$contactEmail->setContactId($contactId);
|
93 |
//update contact
|
94 |
$contactEmail->save();
|
95 |
|
29 |
|
30 |
// only for subsribers
|
31 |
if ($subscriberStatus == Mage_Newsletter_Model_Subscriber::STATUS_SUBSCRIBED) {
|
32 |
+
//set contact as subscribed
|
33 |
+
$contactEmail->setSubscriberStatus( $subscriberStatus )
|
34 |
+
->setIsSubscriber('1');
|
35 |
+
|
36 |
+
Mage::getModel('ddg_automation/importer')->registerQueue(
|
37 |
+
Dotdigitalgroup_Email_Model_Importer::IMPORT_TYPE_SUBSCRIBER_RESUBSCRIBED,
|
38 |
+
array('email' => $email),
|
39 |
+
Dotdigitalgroup_Email_Model_Importer::MODE_SUBSCRIBER_RESUBSCRIBED,
|
40 |
+
$websiteId
|
41 |
+
);
|
|
|
|
|
|
|
|
|
42 |
// reset the subscriber as suppressed
|
43 |
$contactEmail->setSuppressed(null);
|
44 |
|
47 |
//skip if contact is suppressed
|
48 |
if ($contactEmail->getSuppressed())
|
49 |
return $this;
|
50 |
+
|
51 |
//update contact id for the subscriber
|
52 |
+
$contactId = $contactEmail->getContactId();
|
53 |
+
//get the contact id
|
54 |
+
if ( !$contactId ) {
|
55 |
+
Mage::getModel('ddg_automation/importer')->registerQueue(
|
56 |
+
Dotdigitalgroup_Email_Model_Importer::IMPORT_TYPE_SUBSCRIBER_UPDATE,
|
57 |
+
array('email' => $email, 'id' => $contactEmail->getId()),
|
58 |
+
Dotdigitalgroup_Email_Model_Importer::MODE_SUBSCRIBER_UPDATE,
|
59 |
+
$websiteId
|
60 |
+
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
61 |
}
|
62 |
$contactEmail->setIsSubscriber(null)
|
63 |
->setSubscriberStatus(Mage_Newsletter_Model_Subscriber::STATUS_UNSUBSCRIBED);
|
75 |
|
76 |
//update the contact
|
77 |
$contactEmail->setStoreId($storeId);
|
78 |
+
|
|
|
79 |
//update contact
|
80 |
$contactEmail->save();
|
81 |
|
app/code/community/Dotdigitalgroup/Email/Model/Resource/Contact.php
CHANGED
@@ -111,7 +111,7 @@ class Dotdigitalgroup_Email_Model_Resource_Contact extends Mage_Core_Model_Mysql
|
|
111 |
|
112 |
$select
|
113 |
->from(
|
114 |
-
array('customer' => $this->getReadConnection()->getTableName('customer/customer')),
|
115 |
array('customer_id' => 'entity_id','email','website_id','store_id')
|
116 |
)
|
117 |
->where("entity_id not in ($emailContacts)");
|
@@ -127,7 +127,7 @@ class Dotdigitalgroup_Email_Model_Resource_Contact extends Mage_Core_Model_Mysql
|
|
127 |
array('c.customer_id')
|
128 |
)
|
129 |
->joinLeft(
|
130 |
-
array('e' => $this->getReadConnection()->getTableName('customer/customer')),
|
131 |
"c.customer_id = e.entity_id"
|
132 |
)
|
133 |
->where('e.entity_id is NULL');
|
111 |
|
112 |
$select
|
113 |
->from(
|
114 |
+
array('customer' => $this->getReadConnection()->getTableName($this->getTable('customer/customer'))),
|
115 |
array('customer_id' => 'entity_id','email','website_id','store_id')
|
116 |
)
|
117 |
->where("entity_id not in ($emailContacts)");
|
127 |
array('c.customer_id')
|
128 |
)
|
129 |
->joinLeft(
|
130 |
+
array('e' => $this->getReadConnection()->getTableName($this->getTable('customer/customer'))),
|
131 |
"c.customer_id = e.entity_id"
|
132 |
)
|
133 |
->where('e.entity_id is NULL');
|
app/code/community/Dotdigitalgroup/Email/Model/Review.php
CHANGED
@@ -94,7 +94,7 @@ class Dotdigitalgroup_Email_Model_Review extends Mage_Core_Model_Abstract
|
|
94 |
|
95 |
$reviews->getSelect()
|
96 |
->joinLeft(
|
97 |
-
array('c' => '
|
98 |
'c.entity_id = customer_id',
|
99 |
array('email','store_id')
|
100 |
);
|
94 |
|
95 |
$reviews->getSelect()
|
96 |
->joinLeft(
|
97 |
+
array('c' => Mage::getSingleton('core/resource')->getTableName('customer/entity')),
|
98 |
'c.entity_id = customer_id',
|
99 |
array('email','store_id')
|
100 |
);
|
app/code/community/Dotdigitalgroup/Email/Model/Sales/Observer.php
CHANGED
@@ -52,19 +52,19 @@ class Dotdigitalgroup_Email_Model_Sales_Observer
|
|
52 |
$emailOrder->save();
|
53 |
//Status check automation enrolment
|
54 |
$configStatusAutomationMap = unserialize(Mage::getStoreConfig(Dotdigitalgroup_Email_Helper_Config::XML_PATH_CONNECTOR_AUTOMATION_STUDIO_ORDER_STATUS, $order->getStore()));
|
55 |
-
if(!empty($configStatusAutomationMap)){
|
56 |
-
foreach($configStatusAutomationMap as $configMap){
|
57 |
if($configMap['status'] == $status) {
|
58 |
try {
|
59 |
$programId = $configMap['automation'];
|
60 |
$automation = Mage::getModel( 'ddg_automation/automation' );
|
61 |
$automation->setEmail( $customerEmail )
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
$automation->save();
|
69 |
}catch(Exception $e){
|
70 |
Mage::logException($e);
|
@@ -100,11 +100,11 @@ class Dotdigitalgroup_Email_Model_Sales_Observer
|
|
100 |
return $this;
|
101 |
|
102 |
//automation enrolment for order
|
103 |
-
if($order->getCustomerIsGuest()){
|
104 |
// guest to automation mapped
|
105 |
$programType = 'XML_PATH_CONNECTOR_AUTOMATION_STUDIO_GUEST_ORDER';
|
106 |
$automationType = Dotdigitalgroup_Email_Model_Automation::AUTOMATION_TYPE_NEW_GUEST_ORDER;
|
107 |
-
}else{
|
108 |
// customer to automation mapped
|
109 |
$programType = 'XML_PATH_CONNECTOR_AUTOMATION_STUDIO_ORDER';
|
110 |
$automationType = Dotdigitalgroup_Email_Model_Automation::AUTOMATION_TYPE_NEW_ORDER;
|
@@ -113,8 +113,7 @@ class Dotdigitalgroup_Email_Model_Sales_Observer
|
|
113 |
$programId = Mage::helper( 'ddg' )->getAutomationIdByType($programType, $order->getWebsiteId());
|
114 |
|
115 |
//the program is not mappped
|
116 |
-
if (! $programId){
|
117 |
-
|
118 |
Mage::log('automation type : ' . $automationType. ' program id not found');
|
119 |
return $this;
|
120 |
}
|
52 |
$emailOrder->save();
|
53 |
//Status check automation enrolment
|
54 |
$configStatusAutomationMap = unserialize(Mage::getStoreConfig(Dotdigitalgroup_Email_Helper_Config::XML_PATH_CONNECTOR_AUTOMATION_STUDIO_ORDER_STATUS, $order->getStore()));
|
55 |
+
if (!empty($configStatusAutomationMap)) {
|
56 |
+
foreach ($configStatusAutomationMap as $configMap) {
|
57 |
if($configMap['status'] == $status) {
|
58 |
try {
|
59 |
$programId = $configMap['automation'];
|
60 |
$automation = Mage::getModel( 'ddg_automation/automation' );
|
61 |
$automation->setEmail( $customerEmail )
|
62 |
+
->setAutomationType( 'order_automation_' . $status )
|
63 |
+
->setEnrolmentStatus( Dotdigitalgroup_Email_Model_Automation::AUTOMATION_STATUS_PENDING )
|
64 |
+
->setTypeId( $order->getId() )
|
65 |
+
->setWebsiteId( $websiteId )
|
66 |
+
->setStoreName( $storeName )
|
67 |
+
->setProgramId( $programId );
|
68 |
$automation->save();
|
69 |
}catch(Exception $e){
|
70 |
Mage::logException($e);
|
100 |
return $this;
|
101 |
|
102 |
//automation enrolment for order
|
103 |
+
if ($order->getCustomerIsGuest()) {
|
104 |
// guest to automation mapped
|
105 |
$programType = 'XML_PATH_CONNECTOR_AUTOMATION_STUDIO_GUEST_ORDER';
|
106 |
$automationType = Dotdigitalgroup_Email_Model_Automation::AUTOMATION_TYPE_NEW_GUEST_ORDER;
|
107 |
+
} else {
|
108 |
// customer to automation mapped
|
109 |
$programType = 'XML_PATH_CONNECTOR_AUTOMATION_STUDIO_ORDER';
|
110 |
$automationType = Dotdigitalgroup_Email_Model_Automation::AUTOMATION_TYPE_NEW_ORDER;
|
113 |
$programId = Mage::helper( 'ddg' )->getAutomationIdByType($programType, $order->getWebsiteId());
|
114 |
|
115 |
//the program is not mappped
|
116 |
+
if (! $programId) {
|
|
|
117 |
Mage::log('automation type : ' . $automationType. ' program id not found');
|
118 |
return $this;
|
119 |
}
|
app/code/community/Dotdigitalgroup/Email/Model/Sales/Quote.php
CHANGED
@@ -72,11 +72,11 @@ class Dotdigitalgroup_Email_Model_Sales_Quote
|
|
72 |
$from->sub('5', Zend_Date::MINUTE);
|
73 |
|
74 |
//active quotes
|
75 |
-
$quoteCollection = $this->_getStoreQuotes( $from->toString( '
|
76 |
$guest = false, $storeId );
|
77 |
if ( $quoteCollection->getSize() ) {
|
78 |
-
Mage::helper( 'ddg' )->log( 'Customer lost baskets : ' . $num . ', from : ' . $from->toString( '
|
79 |
-
':' . $to->toString( '
|
80 |
}
|
81 |
|
82 |
//campaign id for customers
|
@@ -137,10 +137,10 @@ class Dotdigitalgroup_Email_Model_Sales_Quote
|
|
137 |
}
|
138 |
$to = clone($from);
|
139 |
$from->sub('5', Zend_Date::MINUTE);
|
140 |
-
$quoteCollection = $this->_getStoreQuotes( $from->toString( '
|
141 |
|
142 |
if ( $quoteCollection->getSize() ) {
|
143 |
-
Mage::helper( 'ddg' )->log( 'Guest lost baskets : ' . $num . ', from : ' . $from->toString( '
|
144 |
}
|
145 |
$guestCampaignId = $this->_getLostBasketGuestCampaignId( $num, $storeId );
|
146 |
foreach ( $quoteCollection as $quote ) {
|
@@ -232,8 +232,8 @@ class Dotdigitalgroup_Email_Model_Sales_Quote
|
|
232 |
* @param int $storeId
|
233 |
* @return Mage_Eav_Model_Entity_Collection_Abstract
|
234 |
*/
|
235 |
-
protected function _getStoreQuotes($from = null, $to = null, $guest = false, $storeId = 0)
|
236 |
-
|
237 |
$updated = array(
|
238 |
'from' => $from,
|
239 |
'to' => $to,
|
72 |
$from->sub('5', Zend_Date::MINUTE);
|
73 |
|
74 |
//active quotes
|
75 |
+
$quoteCollection = $this->_getStoreQuotes( $from->toString( 'yyyy-MM-dd HH:mm' ), $to->toString( 'yyyy-MM-dd HH:mm' ),
|
76 |
$guest = false, $storeId );
|
77 |
if ( $quoteCollection->getSize() ) {
|
78 |
+
Mage::helper( 'ddg' )->log( 'Customer lost baskets : ' . $num . ', from : ' . $from->toString( 'yyyy-MM-dd HH:mm' ) .
|
79 |
+
':' . $to->toString( 'yyyy-MM-dd HH:mm' ) );
|
80 |
}
|
81 |
|
82 |
//campaign id for customers
|
137 |
}
|
138 |
$to = clone($from);
|
139 |
$from->sub('5', Zend_Date::MINUTE);
|
140 |
+
$quoteCollection = $this->_getStoreQuotes( $from->toString( 'yyyy-MM-dd HH:mm' ), $to->toString( 'yyyy-MM-dd HH:mm' ), $guest = true, $storeId );
|
141 |
|
142 |
if ( $quoteCollection->getSize() ) {
|
143 |
+
Mage::helper( 'ddg' )->log( 'Guest lost baskets : ' . $num . ', from : ' . $from->toString( 'yyyy-MM-dd HH:mm' ) . ':' . $to->toString( 'yyyy-MM-dd HH:mm' ) );
|
144 |
}
|
145 |
$guestCampaignId = $this->_getLostBasketGuestCampaignId( $num, $storeId );
|
146 |
foreach ( $quoteCollection as $quote ) {
|
232 |
* @param int $storeId
|
233 |
* @return Mage_Eav_Model_Entity_Collection_Abstract
|
234 |
*/
|
235 |
+
protected function _getStoreQuotes($from = null, $to = null, $guest = false, $storeId = 0) {
|
236 |
+
|
237 |
$updated = array(
|
238 |
'from' => $from,
|
239 |
'to' => $to,
|
app/code/community/Dotdigitalgroup/Email/Model/Wishlist.php
CHANGED
@@ -153,15 +153,14 @@ class Dotdigitalgroup_Email_Model_Wishlist extends Mage_Core_Model_Abstract
|
|
153 |
protected function _exportWishlistForWebsiteInSingle(Mage_Core_Model_Website $website)
|
154 |
{
|
155 |
$helper = Mage::helper('ddg');
|
156 |
-
$client = $helper->getWebsiteApiClient($website);
|
157 |
$limit = $helper->getWebsiteConfig(Dotdigitalgroup_Email_Helper_Config::XML_PATH_CONNECTOR_TRANSACTIONAL_DATA_SYNC_LIMIT, $website);
|
158 |
$collection = $this->_getModifiedWishlistToImport($website, $limit);
|
159 |
$this->_wishlistIds = array();
|
160 |
-
|
161 |
-
|
162 |
$wishlist = Mage::getModel('wishlist/wishlist')->load($emailWishlist->getWishlistId());
|
163 |
/** @var $connectorWishlist */
|
164 |
-
$connectorWishlist = Mage::getModel('ddg_automation/customer_wishlist'
|
165 |
$connectorWishlist->setId($wishlist->getId());
|
166 |
$wishListItemCollection = $wishlist->getItemCollection();
|
167 |
if ($wishListItemCollection->getSize()) {
|
153 |
protected function _exportWishlistForWebsiteInSingle(Mage_Core_Model_Website $website)
|
154 |
{
|
155 |
$helper = Mage::helper('ddg');
|
|
|
156 |
$limit = $helper->getWebsiteConfig(Dotdigitalgroup_Email_Helper_Config::XML_PATH_CONNECTOR_TRANSACTIONAL_DATA_SYNC_LIMIT, $website);
|
157 |
$collection = $this->_getModifiedWishlistToImport($website, $limit);
|
158 |
$this->_wishlistIds = array();
|
159 |
+
|
160 |
+
foreach ($collection as $emailWishlist) {
|
161 |
$wishlist = Mage::getModel('wishlist/wishlist')->load($emailWishlist->getWishlistId());
|
162 |
/** @var $connectorWishlist */
|
163 |
+
$connectorWishlist = Mage::getModel('ddg_automation/customer_wishlist');
|
164 |
$connectorWishlist->setId($wishlist->getId());
|
165 |
$wishListItemCollection = $wishlist->getItemCollection();
|
166 |
if ($wishListItemCollection->getSize()) {
|
app/code/community/Dotdigitalgroup/Email/controllers/Adminhtml/ConnectorController.php
CHANGED
@@ -284,7 +284,7 @@ class Dotdigitalgroup_Email_Adminhtml_ConnectorController extends Mage_Adminhtml
|
|
284 |
public function runreviewsyncAction()
|
285 |
{
|
286 |
|
287 |
-
$result = Mage::getModel('ddg_automation/
|
288 |
if ($result['message'])
|
289 |
Mage::getSingleton('adminhtml/session')->addSuccess($result['message']);
|
290 |
|
284 |
public function runreviewsyncAction()
|
285 |
{
|
286 |
|
287 |
+
$result = Mage::getModel('ddg_automation/review')->sync();
|
288 |
if ($result['message'])
|
289 |
Mage::getSingleton('adminhtml/session')->addSuccess($result['message']);
|
290 |
|
app/code/community/Dotdigitalgroup/Email/controllers/AjaxController.php
CHANGED
@@ -6,6 +6,15 @@ class Dotdigitalgroup_Email_AjaxController extends Mage_Core_Controller_Front_Ac
|
|
6 |
{
|
7 |
if($this->getRequest()->getParam('email') && Mage::getSingleton('checkout/session')->getQuote()){
|
8 |
$email = $this->getRequest()->getParam('email');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9 |
$quote = Mage::getSingleton('checkout/session')->getQuote();
|
10 |
if($quote->hasItems()){
|
11 |
try {
|
6 |
{
|
7 |
if($this->getRequest()->getParam('email') && Mage::getSingleton('checkout/session')->getQuote()){
|
8 |
$email = $this->getRequest()->getParam('email');
|
9 |
+
$email = filter_var($email, FILTER_SANITIZE_EMAIL);
|
10 |
+
|
11 |
+
//regular expressions from http://regexlib.com.
|
12 |
+
// Match formats joe@aol.com | joe@wrox.co.uk | joe@domain.info
|
13 |
+
if(!preg_match('/^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/', $email)){
|
14 |
+
Mage::helper('ddg')->log('ajax emailCapture fail for given email. Failed by regex');
|
15 |
+
return null;
|
16 |
+
}
|
17 |
+
|
18 |
$quote = Mage::getSingleton('checkout/session')->getQuote();
|
19 |
if($quote->hasItems()){
|
20 |
try {
|
app/code/community/Dotdigitalgroup/Email/controllers/ResponseController.php
CHANGED
@@ -6,15 +6,16 @@ class Dotdigitalgroup_Email_ResponseController extends Mage_Core_Controller_Fron
|
|
6 |
{
|
7 |
//authenticate ip address
|
8 |
$authIp = Mage::helper('ddg')->authIpAddress();
|
9 |
-
|
|
|
10 |
$e = new Exception('You are not authorised to view content of this page.');
|
11 |
Mage::logException($e);
|
12 |
throw new Exception($e->getMessage());
|
13 |
}
|
14 |
-
|
15 |
//authenticate
|
16 |
$auth = Mage::helper('ddg')->auth($this->getRequest()->getParam('code'));
|
17 |
-
|
|
|
18 |
$this->sendResponse();
|
19 |
Mage::throwException(Mage::helper('ddg')->__('Authentication failed!'));
|
20 |
}
|
@@ -23,7 +24,7 @@ class Dotdigitalgroup_Email_ResponseController extends Mage_Core_Controller_Fron
|
|
23 |
protected function checkContentNotEmpty($output, $flag = true)
|
24 |
{
|
25 |
try{
|
26 |
-
if(strlen($output) < 3 && $flag == false)
|
27 |
$this->sendResponse();
|
28 |
elseif($flag && !strpos($output, '<table'))
|
29 |
$this->sendResponse();
|
6 |
{
|
7 |
//authenticate ip address
|
8 |
$authIp = Mage::helper('ddg')->authIpAddress();
|
9 |
+
|
10 |
+
if (!$authIp) {
|
11 |
$e = new Exception('You are not authorised to view content of this page.');
|
12 |
Mage::logException($e);
|
13 |
throw new Exception($e->getMessage());
|
14 |
}
|
|
|
15 |
//authenticate
|
16 |
$auth = Mage::helper('ddg')->auth($this->getRequest()->getParam('code'));
|
17 |
+
|
18 |
+
if (!$auth) {
|
19 |
$this->sendResponse();
|
20 |
Mage::throwException(Mage::helper('ddg')->__('Authentication failed!'));
|
21 |
}
|
24 |
protected function checkContentNotEmpty($output, $flag = true)
|
25 |
{
|
26 |
try{
|
27 |
+
if (strlen($output) < 3 && $flag == false)
|
28 |
$this->sendResponse();
|
29 |
elseif($flag && !strpos($output, '<table'))
|
30 |
$this->sendResponse();
|
app/code/community/Dotdigitalgroup/Email/etc/system.xml
CHANGED
@@ -3306,13 +3306,14 @@
|
|
3306 |
<show_in_store>0</show_in_store>
|
3307 |
<fields>
|
3308 |
<ip_addresses>
|
3309 |
-
<label
|
3310 |
<frontend_type>textarea</frontend_type>
|
3311 |
<sort_order>10</sort_order>
|
3312 |
<show_in_default>1</show_in_default>
|
3313 |
<show_in_website>1</show_in_website>
|
3314 |
<show_in_store>0</show_in_store>
|
3315 |
-
<comment>Enter ip addresses separated by comma (,)
|
|
|
3316 |
</ip_addresses>
|
3317 |
</fields>
|
3318 |
</ip_restriction>
|
3306 |
<show_in_store>0</show_in_store>
|
3307 |
<fields>
|
3308 |
<ip_addresses>
|
3309 |
+
<label>External dynamic content will be limited to these ip's.</label>
|
3310 |
<frontend_type>textarea</frontend_type>
|
3311 |
<sort_order>10</sort_order>
|
3312 |
<show_in_default>1</show_in_default>
|
3313 |
<show_in_website>1</show_in_website>
|
3314 |
<show_in_store>0</show_in_store>
|
3315 |
+
<comment>Enter ip addresses separated by comma (,). Always keep these ip's 94.143.111.2, 94.143.111.3 to stay secure,
|
3316 |
+
empty list will ignore security check.</comment>
|
3317 |
</ip_addresses>
|
3318 |
</fields>
|
3319 |
</ip_restriction>
|
app/design/adminhtml/default/default/template/connector/dashboard/logs.phtml
CHANGED
@@ -5,7 +5,7 @@
|
|
5 |
<div style="border: 4px solid #dfdfdf; overflow: scroll; height: 500px; padding: 5px;">
|
6 |
<div id="log_data" style="width:100%;height:500px;overflow:auto;margin:0px;padding:3px;background:black;color:#2EC029;
|
7 |
font:normal 11px Lucida Console, Courier New, serif;">
|
8 |
-
<?php echo nl2br(Mage::helper('ddg')->getLogFileContent()); ?>
|
9 |
</div>
|
10 |
</div>
|
11 |
|
5 |
<div style="border: 4px solid #dfdfdf; overflow: scroll; height: 500px; padding: 5px;">
|
6 |
<div id="log_data" style="width:100%;height:500px;overflow:auto;margin:0px;padding:3px;background:black;color:#2EC029;
|
7 |
font:normal 11px Lucida Console, Courier New, serif;">
|
8 |
+
<?php echo nl2br($this->escapeHtml(Mage::helper('ddg')->getLogFileContent())); ?>
|
9 |
</div>
|
10 |
</div>
|
11 |
|
app/design/adminhtml/default/default/template/connector/dashboard/status.phtml
CHANGED
@@ -1,20 +1,13 @@
|
|
|
|
1 |
<div class="content-header">
|
2 |
<h3 class="icon-head head-newsletter-report"><?php echo $this->getTabTitle(); ?></h3>
|
3 |
</div>
|
4 |
<?php foreach ( $this->getCheckpoints() as $key => $checkpoint ) :?>
|
5 |
<?php $method = $this->getFormatedMethodName($key);
|
6 |
-
|
7 |
-
|
8 |
-
$
|
9 |
-
|
10 |
-
$collapsable = '1';
|
11 |
-
if ( $data->getStyle() == 'connector_passed' ) {
|
12 |
-
$showHowTo = 'no_display';
|
13 |
-
$collapsable = '0';
|
14 |
-
}
|
15 |
-
if ($this->_getCollapseState($key) !== false)
|
16 |
-
$collapsable = $this->_getCollapseState($key);
|
17 |
-
}?>
|
18 |
|
19 |
<div class="entry-edit connector-fieldset-entry">
|
20 |
<div class="entry-edit-head collapseable ">
|
1 |
+
<?php $displayData = $this->getDisplayData();?>
|
2 |
<div class="content-header">
|
3 |
<h3 class="icon-head head-newsletter-report"><?php echo $this->getTabTitle(); ?></h3>
|
4 |
</div>
|
5 |
<?php foreach ( $this->getCheckpoints() as $key => $checkpoint ) :?>
|
6 |
<?php $method = $this->getFormatedMethodName($key);
|
7 |
+
$data = $displayData[$key]['data'];
|
8 |
+
$showHowTo = $displayData[$key]['showHowTo'];
|
9 |
+
$collapsable = $displayData[$key]['collapsable'];
|
10 |
+
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11 |
|
12 |
<div class="entry-edit connector-fieldset-entry">
|
13 |
<div class="entry-edit-head collapseable ">
|
app/design/adminhtml/default/default/template/connector/dashboard/tabs/analysis/rfm.phtml
CHANGED
@@ -1,9 +1,5 @@
|
|
1 |
<?php
|
2 |
-
$label =
|
3 |
-
Dotdigitalgroup_Email_Model_Adminhtml_Dashboard_Tabs_Analysis_Rfm::FREQUENCY => "Frequency (orders)",
|
4 |
-
Dotdigitalgroup_Email_Model_Adminhtml_Dashboard_Tabs_Analysis_Rfm::RECENCY => "Recency (days)",
|
5 |
-
Dotdigitalgroup_Email_Model_Adminhtml_Dashboard_Tabs_Analysis_Rfm::MONETARY => "Monetary (value)"
|
6 |
-
);
|
7 |
?>
|
8 |
<div style="border: 1px solid #eee2be; padding: 5px;">
|
9 |
<h4 style="text-align: center">
|
1 |
<?php
|
2 |
+
$label = $this->getLabels();
|
|
|
|
|
|
|
|
|
3 |
?>
|
4 |
<div style="border: 1px solid #eee2be; padding: 5px;">
|
5 |
<h4 style="text-align: center">
|
app/design/frontend/base/default/layout/connector.xml
CHANGED
@@ -2,36 +2,29 @@
|
|
2 |
<layout version="0.1.0">
|
3 |
<default>
|
4 |
<reference name="head">
|
5 |
-
<block type="core/template" name="checkout.tag" as="connector.tag"
|
6 |
-
|
7 |
-
<block type="core/template" name="easy.email.capture
|
8 |
-
template="connector/email_capture.phtml"/>
|
9 |
-
<block type="core/template" name="easy.email.capture" as="easy.email.capture"
|
10 |
-
template="connector/email_capture_init.phtml"/>
|
11 |
</reference>
|
12 |
</default>
|
13 |
<ddg_automation_feefo_score>
|
14 |
<reference name="content">
|
15 |
-
<block type="ddg_automation/feefo" name="connector_feefo_service_score"
|
16 |
-
template="connector/feefo/score.phtml"/>
|
17 |
</reference>
|
18 |
</ddg_automation_feefo_score>
|
19 |
<ddg_automation_feefo_reviews>
|
20 |
<reference name="content">
|
21 |
-
<block type="ddg_automation/feefo" name="connector_feefo_product_reviews"
|
22 |
-
template="connector/feefo/reviews.phtml"/>
|
23 |
</reference>
|
24 |
</ddg_automation_feefo_reviews>
|
25 |
<ddg_automation_products_related>
|
26 |
<reference name="content">
|
27 |
-
<block type="ddg_automation/recommended_products" name="connector_recommended_related"
|
28 |
-
template="connector/product/list.phtml"/>
|
29 |
</reference>
|
30 |
</ddg_automation_products_related>
|
31 |
<ddg_automation_products_crosssell>
|
32 |
<reference name="content">
|
33 |
-
<block type="ddg_automation/recommended_products" name="connector_recommended_crosssell"
|
34 |
-
template="connector/product/list.phtml"/>
|
35 |
</reference>
|
36 |
</ddg_automation_products_crosssell>
|
37 |
<ddg_automation_products_upsell>
|
2 |
<layout version="0.1.0">
|
3 |
<default>
|
4 |
<reference name="head">
|
5 |
+
<block type="core/template" name="checkout.tag" as="connector.tag" template="connector/tracking_code.phtml"/>
|
6 |
+
<block type="core/template" name="easy.email.capture.head" as="easy.email.capture.head" template="connector/email_capture.phtml"/>
|
7 |
+
<block type="core/template" name="easy.email.capture" as="easy.email.capture" template="connector/email_capture_init.phtml"/>
|
|
|
|
|
|
|
8 |
</reference>
|
9 |
</default>
|
10 |
<ddg_automation_feefo_score>
|
11 |
<reference name="content">
|
12 |
+
<block type="ddg_automation/feefo" name="connector_feefo_service_score" template="connector/feefo/score.phtml"/>
|
|
|
13 |
</reference>
|
14 |
</ddg_automation_feefo_score>
|
15 |
<ddg_automation_feefo_reviews>
|
16 |
<reference name="content">
|
17 |
+
<block type="ddg_automation/feefo" name="connector_feefo_product_reviews" template="connector/feefo/reviews.phtml"/>
|
|
|
18 |
</reference>
|
19 |
</ddg_automation_feefo_reviews>
|
20 |
<ddg_automation_products_related>
|
21 |
<reference name="content">
|
22 |
+
<block type="ddg_automation/recommended_products" name="connector_recommended_related" template="connector/product/list.phtml"/>
|
|
|
23 |
</reference>
|
24 |
</ddg_automation_products_related>
|
25 |
<ddg_automation_products_crosssell>
|
26 |
<reference name="content">
|
27 |
+
<block type="ddg_automation/recommended_products" name="connector_recommended_crosssell" template="connector/product/list.phtml"/>
|
|
|
28 |
</reference>
|
29 |
</ddg_automation_products_crosssell>
|
30 |
<ddg_automation_products_upsell>
|
app/design/frontend/base/default/template/connector/basket.phtml
CHANGED
@@ -3,76 +3,69 @@ $items = $this->getBasketItems();
|
|
3 |
$helper = Mage::helper('core');
|
4 |
?>
|
5 |
<?php if($items): ?>
|
6 |
-
|
7 |
-
|
8 |
-
<head>
|
9 |
-
|
10 |
-
<title>Basket</title>
|
11 |
-
|
12 |
-
</head>
|
13 |
<body">
|
14 |
<?php
|
15 |
-
|
16 |
-
$priceStyle = explode(',', Mage::getStoreConfig(Dotdigitalgroup_Email_Helper_Config::XML_PATH_CONNECTOR_DYNAMIC_PRICE_STYLE));
|
17 |
-
$linkStyle = explode(',', Mage::getStoreConfig(Dotdigitalgroup_Email_Helper_Config::XML_PATH_CONNECTOR_DYNAMIC_LINK_STYLE));
|
18 |
-
$otherStyle = explode(',', Mage::getStoreConfig(Dotdigitalgroup_Email_Helper_Config::XML_PATH_CONNECTOR_DYNAMIC_OTHER_STYLE));
|
19 |
?>
|
20 |
<style>
|
21 |
.product-name{
|
22 |
-
color: <?php echo
|
23 |
-
font-size: <?php echo
|
24 |
-
<?php if(in_array('bold', $nameStyle)): ?>
|
25 |
font-weight: bold;
|
26 |
<?php endif; ?>
|
27 |
-
<?php if(in_array('italic', $nameStyle)): ?>
|
28 |
font-style: italic;
|
29 |
<?php endif; ?>
|
30 |
-
<?php if(in_array('underline', $nameStyle)): ?>
|
31 |
text-decoration: underline;
|
32 |
<?php endif; ?>
|
33 |
}
|
34 |
.product-price{
|
35 |
-
color: <?php echo
|
36 |
-
font-size: <?php echo
|
37 |
-
<?php if(in_array('bold', $priceStyle)): ?>
|
38 |
font-weight: bold;
|
39 |
<?php endif; ?>
|
40 |
-
<?php if(in_array('italic', $priceStyle)): ?>
|
41 |
font-style: italic;
|
42 |
<?php endif; ?>
|
43 |
-
<?php if(in_array('underline', $priceStyle)): ?>
|
44 |
text-decoration: underline;
|
45 |
<?php endif; ?>
|
46 |
}
|
47 |
.proudct-url{
|
48 |
-
color: <?php echo
|
49 |
-
font-size: <?php echo
|
50 |
-
<?php if(in_array('bold', $linkStyle)): ?>
|
51 |
font-weight: bold;
|
52 |
<?php endif; ?>
|
53 |
-
<?php if(in_array('italic', $linkStyle)): ?>
|
54 |
font-style: italic;
|
55 |
<?php endif; ?>
|
56 |
-
<?php if(in_array('underline', $linkStyle)): ?>
|
57 |
text-decoration: underline;
|
58 |
<?php endif; ?>
|
59 |
}
|
60 |
.other-text{
|
61 |
-
color: <?php echo
|
62 |
-
font-size: <?php echo
|
63 |
-
<?php if(in_array('bold', $otherStyle)): ?>
|
64 |
font-weight: bold;
|
65 |
<?php endif; ?>
|
66 |
-
<?php if(in_array('italic', $otherStyle)): ?>
|
67 |
font-style: italic;
|
68 |
<?php endif; ?>
|
69 |
-
<?php if(in_array('underline', $otherStyle)): ?>
|
70 |
text-decoration: underline;
|
71 |
<?php endif; ?>
|
72 |
}
|
73 |
.product-table{
|
74 |
-
font-family: <?php echo
|
75 |
-
background-color: <?php echo
|
76 |
width: 100% !important;
|
77 |
}
|
78 |
.product-table img{
|
@@ -84,7 +77,7 @@ $helper = Mage::helper('core');
|
|
84 |
width: 25%;
|
85 |
padding-bottom: 10px;
|
86 |
}
|
87 |
-
<?php echo
|
88 |
/** Responsive **/
|
89 |
@media (max-width: 760px) {
|
90 |
/* Force table to not be like tables anymore */
|
3 |
$helper = Mage::helper('core');
|
4 |
?>
|
5 |
<?php if($items): ?>
|
6 |
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
7 |
+
<html xmlns="http://www.w3.org/1999/xhtml" xmlns="http://www.w3.org/1999/html">
|
8 |
+
<head><title>Basket</title></head>
|
|
|
|
|
|
|
|
|
9 |
<body">
|
10 |
<?php
|
11 |
+
$dynamicStyle = $this->getDynamicStyle();
|
|
|
|
|
|
|
12 |
?>
|
13 |
<style>
|
14 |
.product-name{
|
15 |
+
color: <?php echo $dynamicStyle['nameColor'];?>;
|
16 |
+
font-size: <?php echo $dynamicStyle['fontSize'];?>;
|
17 |
+
<?php if(in_array('bold', $dynamicStyle['nameStyle'])): ?>
|
18 |
font-weight: bold;
|
19 |
<?php endif; ?>
|
20 |
+
<?php if(in_array('italic', $dynamicStyle['nameStyle'])): ?>
|
21 |
font-style: italic;
|
22 |
<?php endif; ?>
|
23 |
+
<?php if(in_array('underline', $dynamicStyle['nameStyle'])): ?>
|
24 |
text-decoration: underline;
|
25 |
<?php endif; ?>
|
26 |
}
|
27 |
.product-price{
|
28 |
+
color: <?php echo $dynamicStyle['priceColor'];?>;
|
29 |
+
font-size: <?php echo $dynamicStyle['priceFontSize'];?>;
|
30 |
+
<?php if(in_array('bold', $dynamicStyle['priceStyle'])): ?>
|
31 |
font-weight: bold;
|
32 |
<?php endif; ?>
|
33 |
+
<?php if(in_array('italic', $dynamicStyle['priceStyle'])): ?>
|
34 |
font-style: italic;
|
35 |
<?php endif; ?>
|
36 |
+
<?php if(in_array('underline', $dynamicStyle['priceStyle'])): ?>
|
37 |
text-decoration: underline;
|
38 |
<?php endif; ?>
|
39 |
}
|
40 |
.proudct-url{
|
41 |
+
color: <?php echo $dynamicStyle['urlColor'];?>;
|
42 |
+
font-size: <?php echo $dynamicStyle['urlFontSize'];?>;
|
43 |
+
<?php if(in_array('bold', $dynamicStyle['linkStyle'])): ?>
|
44 |
font-weight: bold;
|
45 |
<?php endif; ?>
|
46 |
+
<?php if(in_array('italic', $dynamicStyle['linkStyle'])): ?>
|
47 |
font-style: italic;
|
48 |
<?php endif; ?>
|
49 |
+
<?php if(in_array('underline', $dynamicStyle['linkStyle'])): ?>
|
50 |
text-decoration: underline;
|
51 |
<?php endif; ?>
|
52 |
}
|
53 |
.other-text{
|
54 |
+
color: <?php echo $dynamicStyle['otherColor'];?>;
|
55 |
+
font-size: <?php echo $dynamicStyle['otherFontSize'];?>;
|
56 |
+
<?php if(in_array('bold', $dynamicStyle['otherStyle'])): ?>
|
57 |
font-weight: bold;
|
58 |
<?php endif; ?>
|
59 |
+
<?php if(in_array('italic', $dynamicStyle['otherStyle'])): ?>
|
60 |
font-style: italic;
|
61 |
<?php endif; ?>
|
62 |
+
<?php if(in_array('underline', $dynamicStyle['otherStyle'])): ?>
|
63 |
text-decoration: underline;
|
64 |
<?php endif; ?>
|
65 |
}
|
66 |
.product-table{
|
67 |
+
font-family: <?php echo $dynamicStyle['docFont'];?>;
|
68 |
+
background-color: <?php echo $dynamicStyle['docBackgroundColor'];?>;
|
69 |
width: 100% !important;
|
70 |
}
|
71 |
.product-table img{
|
77 |
width: 25%;
|
78 |
padding-bottom: 10px;
|
79 |
}
|
80 |
+
<?php echo $dynamicStyle['dynamicStyling'];?>
|
81 |
/** Responsive **/
|
82 |
@media (max-width: 760px) {
|
83 |
/* Force table to not be like tables anymore */
|
app/design/frontend/base/default/template/connector/coupon.phtml
CHANGED
@@ -1,12 +1,12 @@
|
|
1 |
<?php $coupon = $this->generateCoupon(); ?>
|
2 |
-
<?php if($coupon): ?>
|
3 |
<?php
|
4 |
-
$style =
|
5 |
?>
|
6 |
<style>
|
7 |
.edc-coupon{
|
8 |
-
color: <?php echo
|
9 |
-
font-size: <?php echo
|
10 |
<?php if(in_array('bold', $style)): ?>
|
11 |
font-weight: bold;
|
12 |
<?php endif; ?>
|
@@ -16,8 +16,8 @@
|
|
16 |
<?php if(in_array('underline', $style)): ?>
|
17 |
text-decoration: underline;
|
18 |
<?php endif; ?>
|
19 |
-
font-family: <?php echo
|
20 |
-
background-color: <?php echo
|
21 |
}
|
22 |
</style>
|
23 |
<div class="edc-coupon">
|
1 |
<?php $coupon = $this->generateCoupon(); ?>
|
2 |
+
<?php if ($coupon): ?>
|
3 |
<?php
|
4 |
+
$style = $this->getStyle();
|
5 |
?>
|
6 |
<style>
|
7 |
.edc-coupon{
|
8 |
+
color: <?php echo $this->getCouponColor();?>;
|
9 |
+
font-size: <?php echo $this->getFontSize();?>;
|
10 |
<?php if(in_array('bold', $style)): ?>
|
11 |
font-weight: bold;
|
12 |
<?php endif; ?>
|
16 |
<?php if(in_array('underline', $style)): ?>
|
17 |
text-decoration: underline;
|
18 |
<?php endif; ?>
|
19 |
+
font-family: <?php echo $this->getFont();?>;
|
20 |
+
background-color: <?php echo $this->getBackgroundColor();?>;
|
21 |
}
|
22 |
</style>
|
23 |
<div class="edc-coupon">
|
app/design/frontend/base/default/template/connector/product/list.phtml
CHANGED
@@ -4,56 +4,67 @@ $mode = $this->getMode();
|
|
4 |
$products = $this->getLoadedProductCollection();
|
5 |
?>
|
6 |
|
7 |
-
<?php if(!empty($products)): ?>
|
8 |
<?php
|
9 |
-
|
10 |
-
$price_style = explode(',', Mage::getStoreConfig(Dotdigitalgroup_Email_Helper_Config::XML_PATH_CONNECTOR_DYNAMIC_PRICE_STYLE));
|
11 |
-
$link_style = explode(',', Mage::getStoreConfig(Dotdigitalgroup_Email_Helper_Config::XML_PATH_CONNECTOR_DYNAMIC_LINK_STYLE));
|
12 |
?>
|
13 |
<style>
|
14 |
.product-name{
|
15 |
-
color: <?php echo
|
16 |
-
font-size: <?php echo
|
17 |
-
<?php if(in_array('bold', $
|
18 |
-
|
19 |
<?php endif; ?>
|
20 |
-
<?php if(in_array('italic', $
|
21 |
-
|
22 |
<?php endif; ?>
|
23 |
-
<?php if(in_array('underline', $
|
24 |
-
|
25 |
<?php endif; ?>
|
26 |
}
|
27 |
.product-price{
|
28 |
-
|
29 |
-
|
30 |
-
<?php if(in_array('bold', $
|
31 |
-
|
32 |
<?php endif; ?>
|
33 |
-
<?php if(in_array('italic', $
|
34 |
-
|
35 |
<?php endif; ?>
|
36 |
-
<?php if(in_array('underline', $
|
37 |
-
|
38 |
<?php endif; ?>
|
39 |
}
|
40 |
.proudct-url{
|
41 |
-
|
42 |
-
|
43 |
-
<?php if(in_array('bold', $
|
44 |
-
|
45 |
<?php endif; ?>
|
46 |
-
<?php if(in_array('italic', $
|
47 |
-
|
48 |
<?php endif; ?>
|
49 |
-
<?php if(in_array('underline', $
|
50 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
51 |
<?php endif; ?>
|
52 |
}
|
53 |
.product-table{
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
}
|
58 |
.product-table img{
|
59 |
display: block;
|
@@ -65,7 +76,7 @@ $products = $this->getLoadedProductCollection();
|
|
65 |
padding-bottom: 10px;
|
66 |
}
|
67 |
/** Styling from config field **/
|
68 |
-
<?php echo
|
69 |
/** Responsive **/
|
70 |
@media (max-width: 760px) {
|
71 |
/* Force table to not be like tables anymore */
|
4 |
$products = $this->getLoadedProductCollection();
|
5 |
?>
|
6 |
|
7 |
+
<?php if (!empty($products)): ?>
|
8 |
<?php
|
9 |
+
$dynamicStyle = Mage::helper('ddg')->getDynamicStyles();
|
|
|
|
|
10 |
?>
|
11 |
<style>
|
12 |
.product-name{
|
13 |
+
color: <?php echo $dynamicStyle['nameColor'];?>;
|
14 |
+
font-size: <?php echo $dynamicStyle['fontSize'];?>;
|
15 |
+
<?php if(in_array('bold', $dynamicStyle['nameStyle'])): ?>
|
16 |
+
font-weight: bold;
|
17 |
<?php endif; ?>
|
18 |
+
<?php if(in_array('italic', $dynamicStyle['nameStyle'])): ?>
|
19 |
+
font-style: italic;
|
20 |
<?php endif; ?>
|
21 |
+
<?php if(in_array('underline', $dynamicStyle['nameStyle'])): ?>
|
22 |
+
text-decoration: underline;
|
23 |
<?php endif; ?>
|
24 |
}
|
25 |
.product-price{
|
26 |
+
color: <?php echo $dynamicStyle['priceColor'];?>;
|
27 |
+
font-size: <?php echo $dynamicStyle['priceFontSize'];?>;
|
28 |
+
<?php if(in_array('bold', $dynamicStyle['priceStyle'])): ?>
|
29 |
+
font-weight: bold;
|
30 |
<?php endif; ?>
|
31 |
+
<?php if(in_array('italic', $dynamicStyle['priceStyle'])): ?>
|
32 |
+
font-style: italic;
|
33 |
<?php endif; ?>
|
34 |
+
<?php if(in_array('underline', $dynamicStyle['priceStyle'])): ?>
|
35 |
+
text-decoration: underline;
|
36 |
<?php endif; ?>
|
37 |
}
|
38 |
.proudct-url{
|
39 |
+
color: <?php echo $dynamicStyle['urlColor'];?>;
|
40 |
+
font-size: <?php echo $dynamicStyle['urlFontSize'];?>;
|
41 |
+
<?php if(in_array('bold', $dynamicStyle['linkStyle'])): ?>
|
42 |
+
font-weight: bold;
|
43 |
<?php endif; ?>
|
44 |
+
<?php if(in_array('italic', $dynamicStyle['linkStyle'])): ?>
|
45 |
+
font-style: italic;
|
46 |
<?php endif; ?>
|
47 |
+
<?php if(in_array('underline', $dynamicStyle['linkStyle'])): ?>
|
48 |
+
text-decoration: underline;
|
49 |
+
<?php endif; ?>
|
50 |
+
}
|
51 |
+
.other-text{
|
52 |
+
color: <?php echo $dynamicStyle['otherColor'];?>;
|
53 |
+
font-size: <?php echo $dynamicStyle['otherFontSize'];?>;
|
54 |
+
<?php if(in_array('bold', $dynamicStyle['otherStyle'])): ?>
|
55 |
+
font-weight: bold;
|
56 |
+
<?php endif; ?>
|
57 |
+
<?php if(in_array('italic', $dynamicStyle['otherStyle'])): ?>
|
58 |
+
font-style: italic;
|
59 |
+
<?php endif; ?>
|
60 |
+
<?php if(in_array('underline', $dynamicStyle['otherStyle'])): ?>
|
61 |
+
text-decoration: underline;
|
62 |
<?php endif; ?>
|
63 |
}
|
64 |
.product-table{
|
65 |
+
font-family: <?php echo $dynamicStyle['docFont'];?>;
|
66 |
+
background-color: <?php echo $dynamicStyle['docBackgroundColor'];?>;
|
67 |
+
width: 100% !important;
|
68 |
}
|
69 |
.product-table img{
|
70 |
display: block;
|
76 |
padding-bottom: 10px;
|
77 |
}
|
78 |
/** Styling from config field **/
|
79 |
+
<?php echo $dynamicStyle['dynamicStyling'];?>
|
80 |
/** Responsive **/
|
81 |
@media (max-width: 760px) {
|
82 |
/* Force table to not be like tables anymore */
|
app/design/frontend/base/default/template/connector/review.phtml
CHANGED
@@ -2,69 +2,79 @@
|
|
2 |
$i = 0;
|
3 |
$helper = Mage::helper('ddg');
|
4 |
$order = $this->getOrder();
|
|
|
|
|
5 |
?>
|
6 |
<?php if($order): ?>
|
7 |
-
|
8 |
-
<?php
|
9 |
-
$name_style = explode(',', Mage::getStoreConfig(Dotdigitalgroup_Email_Helper_Config::XML_PATH_CONNECTOR_DYNAMIC_NAME_STYLE));
|
10 |
-
$price_style = explode(',', Mage::getStoreConfig(Dotdigitalgroup_Email_Helper_Config::XML_PATH_CONNECTOR_DYNAMIC_PRICE_STYLE));
|
11 |
-
$link_style = explode(',', Mage::getStoreConfig(Dotdigitalgroup_Email_Helper_Config::XML_PATH_CONNECTOR_DYNAMIC_LINK_STYLE));
|
12 |
-
?>
|
13 |
<style>
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
68 |
/** Responsive **/
|
69 |
@media (max-width: 760px) {
|
70 |
/* Force table to not be like tables anymore */
|
@@ -81,17 +91,7 @@ $order = $this->getOrder();
|
|
81 |
</style>
|
82 |
|
83 |
<?php
|
84 |
-
$
|
85 |
-
$mode = $helper->getReviewDisplayType($website);
|
86 |
-
$items = $order->getAllVisibleItems();
|
87 |
-
$productIds = array();
|
88 |
-
//get the product ids for the collection
|
89 |
-
foreach ( $items as $item ) {
|
90 |
-
$productIds[] = $item->getProductId();
|
91 |
-
}
|
92 |
-
$items = Mage::getModel('catalog/product')->getCollection()
|
93 |
-
->addAttributeToSelect('*')
|
94 |
-
->addFieldToFilter('entity_id', array('in' => $productIds));
|
95 |
?>
|
96 |
|
97 |
<?php foreach ($items as $item) :?>
|
@@ -116,9 +116,9 @@ $order = $this->getOrder();
|
|
116 |
</div>
|
117 |
</td>
|
118 |
|
119 |
-
<?php if($i++ % 4 ==3 && $mode == 'grid'):?></tr><tr><?php endif;?>
|
120 |
<?php endforeach;?>
|
121 |
-
<?php if( $i > 0):?>
|
122 |
</table>
|
123 |
<?php endif;?>
|
124 |
<?php endif;
|
2 |
$i = 0;
|
3 |
$helper = Mage::helper('ddg');
|
4 |
$order = $this->getOrder();
|
5 |
+
$mode = $this->getMode();
|
6 |
+
$website = $this->getWebsite();
|
7 |
?>
|
8 |
<?php if($order): ?>
|
9 |
+
<?php $dynamicStyle = $helper->getDynamicStyles(); ?>
|
|
|
|
|
|
|
|
|
|
|
10 |
<style>
|
11 |
+
.product-name{
|
12 |
+
color: <?php echo $dynamicStyle['nameColor'];?>;
|
13 |
+
font-size: <?php echo $dynamicStyle['fontSize'];?>;
|
14 |
+
<?php if(in_array('bold', $dynamicStyle['nameStyle'])): ?>
|
15 |
+
font-weight: bold;
|
16 |
+
<?php endif; ?>
|
17 |
+
<?php if(in_array('italic', $dynamicStyle['nameStyle'])): ?>
|
18 |
+
font-style: italic;
|
19 |
+
<?php endif; ?>
|
20 |
+
<?php if(in_array('underline', $dynamicStyle['nameStyle'])): ?>
|
21 |
+
text-decoration: underline;
|
22 |
+
<?php endif; ?>
|
23 |
+
}
|
24 |
+
.product-price{
|
25 |
+
color: <?php echo $dynamicStyle['priceColor'];?>;
|
26 |
+
font-size: <?php echo $dynamicStyle['priceFontSize'];?>;
|
27 |
+
<?php if(in_array('bold', $dynamicStyle['priceStyle'])): ?>
|
28 |
+
font-weight: bold;
|
29 |
+
<?php endif; ?>
|
30 |
+
<?php if(in_array('italic', $dynamicStyle['priceStyle'])): ?>
|
31 |
+
font-style: italic;
|
32 |
+
<?php endif; ?>
|
33 |
+
<?php if(in_array('underline', $dynamicStyle['priceStyle'])): ?>
|
34 |
+
text-decoration: underline;
|
35 |
+
<?php endif; ?>
|
36 |
+
}
|
37 |
+
.proudct-url{
|
38 |
+
color: <?php echo $dynamicStyle['urlColor'];?>;
|
39 |
+
font-size: <?php echo $dynamicStyle['urlFontSize'];?>;
|
40 |
+
<?php if(in_array('bold', $dynamicStyle['linkStyle'])): ?>
|
41 |
+
font-weight: bold;
|
42 |
+
<?php endif; ?>
|
43 |
+
<?php if(in_array('italic', $dynamicStyle['linkStyle'])): ?>
|
44 |
+
font-style: italic;
|
45 |
+
<?php endif; ?>
|
46 |
+
<?php if(in_array('underline', $dynamicStyle['linkStyle'])): ?>
|
47 |
+
text-decoration: underline;
|
48 |
+
<?php endif; ?>
|
49 |
+
}
|
50 |
+
.other-text{
|
51 |
+
color: <?php echo $dynamicStyle['otherColor'];?>;
|
52 |
+
font-size: <?php echo $dynamicStyle['otherFontSize'];?>;
|
53 |
+
<?php if(in_array('bold', $dynamicStyle['otherStyle'])): ?>
|
54 |
+
font-weight: bold;
|
55 |
+
<?php endif; ?>
|
56 |
+
<?php if(in_array('italic', $dynamicStyle['otherStyle'])): ?>
|
57 |
+
font-style: italic;
|
58 |
+
<?php endif; ?>
|
59 |
+
<?php if(in_array('underline', $dynamicStyle['otherStyle'])): ?>
|
60 |
+
text-decoration: underline;
|
61 |
+
<?php endif; ?>
|
62 |
+
}
|
63 |
+
.product-table{
|
64 |
+
font-family: <?php echo $dynamicStyle['docFont'];?>;
|
65 |
+
background-color: <?php echo $dynamicStyle['docBackgroundColor'];?>;
|
66 |
+
width: 100% !important;
|
67 |
+
}
|
68 |
+
.product-table img{
|
69 |
+
display: block;
|
70 |
+
margin-left: auto;
|
71 |
+
margin-right: auto
|
72 |
+
}
|
73 |
+
.product-table td{
|
74 |
+
width: 25%;
|
75 |
+
padding-bottom: 10px;
|
76 |
+
}
|
77 |
+
<?php echo $dynamicStyle['dynamicStyling'];?>
|
78 |
/** Responsive **/
|
79 |
@media (max-width: 760px) {
|
80 |
/* Force table to not be like tables anymore */
|
91 |
</style>
|
92 |
|
93 |
<?php
|
94 |
+
$items = $this->getItems();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
95 |
?>
|
96 |
|
97 |
<?php foreach ($items as $item) :?>
|
116 |
</div>
|
117 |
</td>
|
118 |
|
119 |
+
<?php if ($i++ % 4 ==3 && $mode == 'grid'):?></tr><tr><?php endif;?>
|
120 |
<?php endforeach;?>
|
121 |
+
<?php if ( $i > 0):?>
|
122 |
</table>
|
123 |
<?php endif;?>
|
124 |
<?php endif;
|
app/design/frontend/base/default/template/connector/wishlist.phtml
CHANGED
@@ -4,68 +4,75 @@
|
|
4 |
$items = $this->getWishlistItems();
|
5 |
?>
|
6 |
<?php if($items): ?>
|
7 |
-
|
8 |
-
<?php
|
9 |
-
$name_style = explode(',', Mage::getStoreConfig(Dotdigitalgroup_Email_Helper_Config::XML_PATH_CONNECTOR_DYNAMIC_NAME_STYLE));
|
10 |
-
$price_style = explode(',', Mage::getStoreConfig(Dotdigitalgroup_Email_Helper_Config::XML_PATH_CONNECTOR_DYNAMIC_PRICE_STYLE));
|
11 |
-
$link_style = explode(',', Mage::getStoreConfig(Dotdigitalgroup_Email_Helper_Config::XML_PATH_CONNECTOR_DYNAMIC_LINK_STYLE));
|
12 |
-
?>
|
13 |
<style>
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
69 |
/** Responsive **/
|
70 |
@media (max-width: 760px) {
|
71 |
/* Force table to not be like tables anymore */
|
@@ -97,7 +104,7 @@
|
|
97 |
<div align="center">
|
98 |
<a class="proudct-url" href="<?php echo $_product->getProductUrl();?>">
|
99 |
<?php
|
100 |
-
if($urlText = $this->getTextForUrl($_product->getStoreId()))
|
101 |
echo $this->escapeHtml($urlText);
|
102 |
else
|
103 |
echo $this->__('View Now');
|
4 |
$items = $this->getWishlistItems();
|
5 |
?>
|
6 |
<?php if($items): ?>
|
7 |
+
<?php $dynamicStyle = Mage::helper('ddg')->getDynamicStyles();?>
|
|
|
|
|
|
|
|
|
|
|
8 |
<style>
|
9 |
+
.product-name{
|
10 |
+
color: <?php echo $dynamicStyle['nameColor'];?>;
|
11 |
+
font-size: <?php echo $dynamicStyle['fontSize'];?>;
|
12 |
+
<?php if(in_array('bold', $dynamicStyle['nameStyle'])): ?>
|
13 |
+
font-weight: bold;
|
14 |
+
<?php endif; ?>
|
15 |
+
<?php if(in_array('italic', $dynamicStyle['nameStyle'])): ?>
|
16 |
+
font-style: italic;
|
17 |
+
<?php endif; ?>
|
18 |
+
<?php if(in_array('underline', $dynamicStyle['nameStyle'])): ?>
|
19 |
+
text-decoration: underline;
|
20 |
+
<?php endif; ?>
|
21 |
+
}
|
22 |
+
.product-price{
|
23 |
+
color: <?php echo $dynamicStyle['priceColor'];?>;
|
24 |
+
font-size: <?php echo $dynamicStyle['priceFontSize'];?>;
|
25 |
+
<?php if(in_array('bold', $dynamicStyle['priceStyle'])): ?>
|
26 |
+
font-weight: bold;
|
27 |
+
<?php endif; ?>
|
28 |
+
<?php if(in_array('italic', $dynamicStyle['priceStyle'])): ?>
|
29 |
+
font-style: italic;
|
30 |
+
<?php endif; ?>
|
31 |
+
<?php if(in_array('underline', $dynamicStyle['priceStyle'])): ?>
|
32 |
+
text-decoration: underline;
|
33 |
+
<?php endif; ?>
|
34 |
+
}
|
35 |
+
.proudct-url{
|
36 |
+
color: <?php echo $dynamicStyle['urlColor'];?>;
|
37 |
+
font-size: <?php echo $dynamicStyle['urlFontSize'];?>;
|
38 |
+
<?php if(in_array('bold', $dynamicStyle['linkStyle'])): ?>
|
39 |
+
font-weight: bold;
|
40 |
+
<?php endif; ?>
|
41 |
+
<?php if(in_array('italic', $dynamicStyle['linkStyle'])): ?>
|
42 |
+
font-style: italic;
|
43 |
+
<?php endif; ?>
|
44 |
+
<?php if(in_array('underline', $dynamicStyle['linkStyle'])): ?>
|
45 |
+
text-decoration: underline;
|
46 |
+
<?php endif; ?>
|
47 |
+
}
|
48 |
+
.other-text{
|
49 |
+
color: <?php echo $dynamicStyle['otherColor'];?>;
|
50 |
+
font-size: <?php echo $dynamicStyle['otherFontSize'];?>;
|
51 |
+
<?php if(in_array('bold', $dynamicStyle['otherStyle'])): ?>
|
52 |
+
font-weight: bold;
|
53 |
+
<?php endif; ?>
|
54 |
+
<?php if(in_array('italic', $dynamicStyle['otherStyle'])): ?>
|
55 |
+
font-style: italic;
|
56 |
+
<?php endif; ?>
|
57 |
+
<?php if(in_array('underline', $dynamicStyle['otherStyle'])): ?>
|
58 |
+
text-decoration: underline;
|
59 |
+
<?php endif; ?>
|
60 |
+
}
|
61 |
+
.product-table{
|
62 |
+
font-family: <?php echo $dynamicStyle['docFont'];?>;
|
63 |
+
background-color: <?php echo $dynamicStyle['docBackgroundColor'];?>;
|
64 |
+
width: 100% !important;
|
65 |
+
}
|
66 |
+
.product-table img{
|
67 |
+
display: block;
|
68 |
+
margin-left: auto;
|
69 |
+
margin-right: auto
|
70 |
+
}
|
71 |
+
.product-table td{
|
72 |
+
width: 25%;
|
73 |
+
padding-bottom: 10px;
|
74 |
+
}
|
75 |
+
<?php echo $dynamicStyle['dynamicStyling'];?>
|
76 |
/** Responsive **/
|
77 |
@media (max-width: 760px) {
|
78 |
/* Force table to not be like tables anymore */
|
104 |
<div align="center">
|
105 |
<a class="proudct-url" href="<?php echo $_product->getProductUrl();?>">
|
106 |
<?php
|
107 |
+
if ($urlText = $this->getTextForUrl($_product->getStoreId()))
|
108 |
echo $this->escapeHtml($urlText);
|
109 |
else
|
110 |
echo $this->__('View Now');
|
package.xml
CHANGED
@@ -1,34 +1,22 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>dotmailermagento</name>
|
4 |
-
<version>5.
|
5 |
<stability>stable</stability>
|
6 |
<license uri="http://opensource.org/licenses/osl-3.0.php">OSL v3.0</license>
|
7 |
<channel>community</channel>
|
8 |
<extends/>
|
9 |
<summary>Integrate your ecommerce with dotMailer's powerful triggered email marketing and convert more visits to sales.</summary>
|
10 |
<description>Connector Integration for Magento, allows to manage and synchronise customer data and lost baskets.</description>
|
11 |
-
<notes>
|
12 |
-

|
13 |
-
|
14 |
-

|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
Release Highlights:
|
20 |
-

|
21 |
-
+ Transactional Emails: Replace the standard emails Magento currently sends to your customers and guests with beautifully created campaigns from dotMailer. Emails include new account, new order, dispatch, cancel and refund emails. **A dotMailer child account is required to enable this functionality**
|
22 |
-

|
23 |
-
+ Custom Customer Attributes: Sync your custom created customer attributes to dotMailer 
|
24 |
-

|
25 |
-
+ Dynamic Content Styling: Apply custom CSS to all dynamic content pages e.g. font size, colour and type.
|
26 |
-

|
27 |
-
+ Reporting: Now within the Newsletter section in Magento you can view the import status of contacts and orders, as well as the sending status of transactional and lost basket emails.</notes>
|
28 |
-
<authors><author><name>Calin Diacon</name><user>cdiacon</user><email>calin.diacon@dotmailer.com</email></author><author><name>Adeel Qamar</name><user>adeel</user><email>adeel.qamar@dotmailer.com</email></author></authors>
|
29 |
-
<date>2015-12-14</date>
|
30 |
-
<time>15:41:46</time>
|
31 |
-
<contents><target name="magecommunity"><dir name="Dotdigitalgroup"><dir name="Email"><dir name="Block"><dir name="Adminhtml"><dir name="Automation"><file name="Grid.php" hash="7059908834fdfed28182e2fe672e0d33"/></dir><file name="Automation.php" hash="7e1b876bf5619cb4533fb935b67b7103"/><dir name="Campaign"><file name="Grid.php" hash="ed3b11f23f8029c7af4dd63f5dceed0e"/></dir><file name="Campaign.php" hash="1b09266adba5191df1d39330e4832d41"/><dir name="Catalog"><file name="Grid.php" hash="e5545ec424a1011117e869984e90a754"/></dir><file name="Catalog.php" hash="f9d97d5ff57987714788ef0511405d46"/><dir name="Column"><dir name="Renderer"><file name="Delete.php" hash="2741323edb5151b4211244ccf115d796"/><file name="Imported.php" hash="894d7ead94e40d20cabb082346830c35"/><file name="Reset.php" hash="f85c3f41af7e6929dc169fb231e24162"/><file name="Script.php" hash="d4f0356fc226028af5857549733a84d3"/><file name="Status.php" hash="92c7256da2ca42ec9c11c255e2cd4e51"/><file name="Sync.php" hash="c85a2e4784b73e709bfe82468a4200b0"/><file name="Website.php" hash="ca2c1f34b86e5ccf022fdc395cf07084"/></dir></dir><dir name="Config"><dir name="Automation"><file name="Customdatafields.php" hash="7ae2aef7d636c19dd2fcc9ba57ab4635"/></dir><file name="Customdatafields.php" hash="ee28b3fe691ade18fcc217b330d8dac6"/><dir name="Rules"><file name="Customdatafields.php" hash="c56d50e7eb3854ec67e026023d38d4d7"/></dir><file name="Select.php" hash="b92091e08d7e24032be9b8aea033b81d"/></dir><dir name="Contact"><dir name="Edit"><file name="Form.php" hash="1d0f6eba1f3a59c38ccfc01b3d5eb447"/></dir><file name="Edit.php" hash="051408ea54be21761e1ab2210ea0bc30"/><file name="Grid.php" hash="5d3dd60e4a530a64370c744717b2b49e"/></dir><file name="Contact.php" hash="ecf231c9d8eb789a4f0863f92d323c38"/><dir name="Customer"><dir name="Tab"><file name="Stats.php" hash="ee77ed9c68e790842d308eab4dd8e8c2"/></dir><file name="Tab.php" hash="507172f634c4db4350fb0288464a348a"/></dir><dir name="Dashboard"><file name="Switcher.php" hash="dac118060238aef3b2a4f60d11c0a3eb"/><dir name="Tabs"><dir name="Analysis"><file name="Abandonedcarts.php" hash="b5ca264c215c98545c882646f4d44bd2"/><file name="Customer.php" hash="01ab9dc18bce37c70de130393ed85902"/><file name="Rfm.php" hash="29e94c92b7c577274a4a70f314e6e5a4"/><file name="Sales.php" hash="6abc5d3bb6f1e668ffa696cd34e3adf4"/><file name="Subscriber.php" hash="4dc3d4a2553a64befd5a94cd64d9658e"/></dir><file name="Analysis.php" hash="b2d6a5a2bab0c8117b89d0f6e91051e2"/><dir name="General"><file name="Data.php" hash="f55fbdda9c380b3ad01c4672e05fcea7"/></dir><file name="General.php" hash="d79b87c420c7c708f7ef86fe18d244c0"/><file name="Logs.php" hash="1fc8ae9c5e8370718f70075afa8e3d81"/><file name="Status.php" hash="48737849dac3ebaba5df9d3ad0b3f6ad"/></dir><file name="Tabs.php" hash="8da89ad9d407a489b04ae47924e0b30f"/></dir><file name="Dashboard.php" hash="1f06a5dcb5a934d239c9627b9bbea822"/><dir name="Importer"><file name="Grid.php" hash="8de43bab33f75c0f64198709dbb1b5e9"/></dir><file name="Importer.php" hash="833d5c2a48f40c9fa27aed4bbd74bd2c"/><dir name="Order"><file name="Grid.php" hash="96e62a99c8295f442377124d37a114f2"/></dir><file name="Order.php" hash="dc6b0cd9c9ac9d8c291f72dbbd4c1a15"/><dir name="Quote"><file name="Grid.php" hash="241108bfb525bbbad0c543fef7673546"/></dir><file name="Quote.php" hash="edcacdf20da2f046ab4654dceef2399f"/><dir name="Review"><file name="Grid.php" hash="85919ad9bfc19eec32e673a699f850c5"/></dir><file name="Review.php" hash="822d452ee01499b4b493e19e6d810afd"/><dir name="Rules"><dir name="Edit"><file name="Form.php" hash="13f8b943873d30609ca3a2af6c72f502"/><dir name="Tab"><file name="Conditions.php" hash="1a11c398065666e0b77e0bf30827c81e"/><file name="Main.php" hash="aaf575a2db857eaac0f9e5006064fc3d"/></dir><file name="Tabs.php" hash="99c7258e593bff52b3976c359ad4235a"/></dir><file name="Edit.php" hash="bf987a05ecfc0c7540c6f86275582733"/><file name="Grid.php" hash="6a9077456ab1b8b72ed26406af336437"/></dir><file name="Rules.php" hash="4dc3b7ac89293d996f3e2a8fd3d12eb9"/><dir name="Sales"><dir name="Order"><dir name="Creditmemo"><file name="View.php" hash="ab9cfcc946e03f8b8fdf33d606222427"/></dir></dir></dir><dir name="System"><dir name="Advanced"><file name="Deletecontactids.php" hash="293320187b8ec5514ff69e027a808321"/><file name="Notification.php" hash="0ea9608a09ae2dad6e4c78738c583c2d"/><file name="Reimportcatalog.php" hash="a497ac63a609440dbd723bc3a2a2819f"/><file name="Reimportorders.php" hash="d29f38c149d2fbfb6b8589491b050247"/><file name="Reimportquotes.php" hash="6089df53be37afe6c4f9f10147730bc7"/><file name="Reimportreviews.php" hash="2c14cd482a448be01c8ceb3d0a9c7dd5"/><file name="Reimportsubscribers.php" hash="43b98ca37accc978ba8e9bd087b9a2c7"/><file name="Reimportwishlists.php" hash="f6bce4f06bc91f69242bd2f59220285d"/><file name="Reset.php" hash="41053dc403c95328402c0e3886307859"/><file name="Resetcustomersimport.php" hash="21bab61f962ed4a3a3c14656781c4e3b"/><file name="Runcatalogsync.php" hash="ecaa5a7b8ebc78a5f84f0870a90a0cd9"/><file name="Runcontactsync.php" hash="747b338c4fe3d3603ce60a68b7e1d5c4"/><file name="Runimportersync.php" hash="e2eee8773c0019dd7e8c5d9553a75d39"/><file name="Runordersync.php" hash="58d7672919b3387d73472e6a10a850af"/><file name="Runquotesync.php" hash="c4bbc5616a080b5dbaad02717225f507"/><file name="Runreviewsync.php" hash="dafef47cb94f595af038698f1f233421"/><file name="Runsubscribersync.php" hash="090707901889d4bae741fe59747cfbff"/><file name="Runwishlistsync.php" hash="8453adae849a6ad9aaecb1f27dc46b72"/><file name="Setupdatafields.php" hash="48373eb08bb90bf4417c830723a4df11"/><file name=".DS_Store" hash="194577a7e20bdcc7afbb718f502c134c"/></dir><file name="Ajaxvalidate.php" hash="2647705ecfcd6c1cd39489febd38b490"/><dir name="Automation"><file name="Connect.php" hash="6a104d54949f4dd845e2dd273ec59b59"/></dir><dir name="Config"><file name="Addressbook.php" hash="ac68b4c742413e5cdcce9c5c78e836a9"/><file name="Colorpicker.php" hash="a22c6d50728e2edaf43399093b1f4a61"/><file name="Datafield.php" hash="5b30377c5423fcccd424c4ca0ad3224f"/><file name="Enterprisevalidator.php" hash="92b60f1f8ca067887dc17afac7be6f24"/><file name="Resetcontacts.php" hash="22ef003f51db85bed2ebb85c5834b352"/><file name="Resetguests.php" hash="002ced7daec912bdad0890b26afcc4a0"/><file name="Resetsubscribers.php" hash="d5be1a595576ea63883c0249be835c7f"/><file name="Validator.php" hash="995386364c7434ad50bb87477c46f6eb"/><file name="Waitingfield.php" hash="7ffe44f6ae4b879336344882ba7e020e"/><file name="Wrapper.php" hash="2813c1d11255f10bc1ff804650a634b7"/></dir><dir name="Dynamic"><file name="Addressbookbutton.php" hash="744ca8346bf67fb7c7b96f92ad67e993"/><dir name="Basket"><file name="Crosssell.php" hash="aa00e37f15d822bf8448fbe79d70d1d5"/><file name="Related.php" hash="a1b0f467eee4513be21fdc58bdf6e59e"/><file name="Upsell.php" hash="dc7a0dbea77d7c88c9fbb660131d1773"/></dir><file name="Bestsellers.php" hash="47d8b2f89290c034c1c74ae0dad5463a"/><file name="Couponinfo.php" hash="646acc6eb041db4041c1df04e2e2fe26"/><file name="Creditmemonew.php" hash="c36bcff6b33f441b11cc5a45a5abe60d"/><file name="Crosssell.php" hash="e1085bb71156dcb1bb012044c5d4a076"/><file name="Datafieldbutton.php" hash="369eec55df4d51ce367abb9c81402976"/><file name="Fallbackchooser.php" hash="28601a2fb0407ece1269a9e3d95757de"/><file name="Fallbackcontainer.php" hash="e3044fc492790758b646a9a656ea1f79"/><dir name="Feefo"><file name="Reviews.php" hash="8a32c6e10d93621fe63c6307c5da17da"/><file name="Score.php" hash="a5a2b4a16e1645107c9dd360dbf03a6b"/></dir><file name="Gridlist.php" hash="9329c6aa0ab3118b8f03af66761f038d"/><file name="Lostbasket.php" hash="506dd83329b4b342af7239a419925a93"/><file name="Manualchooser.php" hash="d9e2e198bb53fdf4a329915db7d07281"/><file name="Manualcontainer.php" hash="689696990974ce7cd1db3df3b73bb864"/><file name="Mostviewed.php" hash="cd49997a51f34aa36470dae896336fee"/><file name="Nosto.php" hash="ec90847ea7170baf8bc197057a13dcac"/><file name="Productpush.php" hash="2623fd4a941ff0e06504dc87b877bb50"/><file name="Recentlyviewed.php" hash="b73e60e76daaca15891e3cbc3700182c"/><file name="Related.php" hash="8b8022dac18181a3ab11837be34beced"/><file name="Review.php" hash="02a962eaf8231981f3d999be9a904c77"/><file name="Upsell.php" hash="898fe5ffc06063450034a8980f54db33"/><dir name="Wishlist"><file name="Crosssell.php" hash="c5c191438715b4f8ad36c62b705cfbb5"/><file name="Related.php" hash="d94412911bb7b85ce73718adc244d6e8"/><file name="Upsell.php" hash="d79aed858a2f4c2a29299fe8868d7ef7"/></dir><file name="Wishlist.php" hash="46c433fda7ec07c82025d88014d93471"/></dir><file name="Emailapivalidate.php" hash="d2b05128440217064792b82e0911e1e6"/><file name="Installation.php" hash="03707c42dcca01e1c156b48a6246a74c"/><dir name="Sms"><file name="Smsmessagefour.php" hash="d5f61111d9c58ee99dc10cb53afea060"/><file name="Smsmessageone.php" hash="00b65d2fcd16c11b93db8fff1ffda069"/><file name="Smsmessagethree.php" hash="eec8120e729a8dd0d248e184564eefcd"/><file name="Smsmessagetwo.php" hash="5f9fa9aca352c389a2cd75ef4366baed"/></dir><dir name="Url"><file name="Creditmemoupdate.php" hash="07113ed35f709e2e65c4c61521e560a8"/><file name="Creditmemoupdateguest.php" hash="034e033269cf142f930b6bff1c36d10a"/><file name="Customerconfirmation.php" hash="260a57d13b20cda7229eb33c9a73559c"/><file name="Customerconfirmed.php" hash="1743ddf8f308eb375f44ac32da3c3c91"/><file name="Customernew.php" hash="2878ef6c84303614ac3426838f8b65d5"/><file name="Invoiceupdate.php" hash="d4eb69e2e0f5e3b7e9ea1da5d3adb578"/><file name="Invoiceupdateguest.php" hash="1ebd3c14e380043fa16b7e36d821d15c"/><file name="Newcreditmemo.php" hash="20b55e9ce5371a371ff0c94bd0fda178"/><file name="Newcreditmemoguest.php" hash="5bd16181c61c1bfb98e6eea3e1c7281f"/><file name="Newinvoice.php" hash="ff95c29ff62359ab2d0366098029a704"/><file name="Newinvoiceguest.php" hash="d05a14bb52facf8635c89642165e39ec"/><file name="Neworder.php" hash="f67882d758909fda7364fa04cb51e2f0"/><file name="Neworderguest.php" hash="ac3b96283e7e5e3ce68e35bf84f9043d"/><file name="Newshipment.php" hash="f059c430fb155c8f9da10b6dd4c67e01"/><file name="Newshipmentguest.php" hash="f73d439fb93eb7f20289e021b10b69a8"/><file name="Orderupdate.php" hash="1c27f18bf9ff58c1f0668539b7ca6896"/><file name="Orderupdateguest.php" hash="d4a2479efa67e900fbe69f6954707076"/><file name="Shipmentupdate.php" hash="f6f2fe91a159b8bf9c70c3a8773a058c"/><file name="Shipmentupdateguest.php" hash="f0ce96ef2e562cae6d155e4d38f1dcac"/></dir></dir><dir name="Widget"><dir name="Chooser"><file name="Product.php" hash="b2f77407f30411d5447fbd1ffac3e415"/></dir></dir><dir name="Wishlist"><file name="Grid.php" hash="fc60afe27facac4a3fb4677ba1aa2fbe"/></dir><file name="Wishlist.php" hash="74f5fb49b057af35ee320f442c664a6b"/></dir><file name="Basket.php" hash="435ae9c1945579ac9da0b4b9025f5251"/><file name="Coupon.php" hash="fe3affe1a8d9a7a885d81f19f4adb51e"/><dir name="Customer"><dir name="Account"><file name="Books.php" hash="4513840169af5af3ecb5682111c8798b"/></dir></dir><file name="Edc.php" hash="5a9937398bd001e4cccb4620cedf624a"/><file name="Feefo.php" hash="69eae3b3ef72a610ef7671347095127e"/><dir name="Order"><file name="Creditmemo.php" hash="3b8be146530d2ef5b408c91dda73dd9d"/><file name="Invoice.php" hash="0e2e69a44e6952e4803afe0778b57567"/><file name="Shipping.php" hash="dec79e54b6029c8a478b519f99470e72"/></dir><file name="Order.php" hash="ce3098054467d5f5c21840469e5a512a"/><file name="Products.php" hash="d38365bc368c1d6e8e867de39c4a1495"/><dir name="Recommended"><file name="Products.php" hash="507a2ab57f718870064272084cf58bb6"/><file name="Wishlistproducts.php" hash="943a5b7697bacb899cb4e81a587fe334"/></dir><file name="Wishlist.php" hash="c0adad8c73b8cbf50596c202032422e3"/></dir><dir name="Helper"><file name="Config.php" hash="550a3230f37f0335de2267d037328358"/><file name="Dashboard.php" hash="19fb73389f2ef6a65c83325e8059de67"/><file name="Data.php" hash="460f62593e4052c9cb9391a466bf5e2a"/><file name="File.php" hash="93f15c70a6babbc8174098bcac0758be"/><file name="Recommended.php" hash="d77533b7b110828e07f7a9d9a80606fe"/><file name="Transactional.php" hash="a399ced08b031a9d5f4cdab3d28db6a6"/></dir><dir name="Model"><dir name="Abstract"><file name="Rest.php" hash="9dcbb422c4bb28bab2e88c9ba0b21cba"/></dir><dir name="Adminhtml"><dir name="Dashboard"><file name="Content.php" hash="a415e7d3fad5d27ce27f6172a50d4997"/><dir name="Tabs"><dir name="Analysis"><file name="Abandoned.php" hash="915c2e848bdb8c2629a90d6d4326b8e8"/><file name="Customer.php" hash="f56d20e6620589c31b8468d8f06d975e"/><file name="Orders.php" hash="9ac9df6980ecedcdcd2567656ebc3a4c"/><file name="Rfm.php" hash="1bd137928d701485c995b6a236ea1ef6"/><file name="Subscriber.php" hash="1b44da59332b7f233499abe3408ed70a"/></dir></dir></dir><file name="Observer.php" hash="ca17335a3a44a498b98170f7fe07ecb4"/><dir name="Source"><file name="Addressbooks.php" hash="af92437b4ed2a7fc6fede455420f11c0"/><file name="Addressbookspref.php" hash="be0c23d42b1a30f9c719c382be865e8d"/><dir name="Advanced"><file name="Abandonedlimit.php" hash="cd280151523091f85af89b0e22ff0abf"/><file name="Attributes.php" hash="9d08d5ab758447987c7ab9ba6d5c45b2"/><file name="Cronexpressionsone.php" hash="3877dd7041189aedf2c972b4361d2134"/><file name="Cronexpressionstwo.php" hash="0a97c58dff29e17a8448ff0c17e393d7"/><file name="Frequency.php" hash="28292fba0dd62bb6730ccd7bfa2b8e70"/><file name="Quoteattributes.php" hash="a1ddcbd001b9cd5b40157ba3c9435bef"/><file name="Transdata.php" hash="5c670a26d641c4b7e73bbaff48af3dd6"/></dir><file name="Attributes.php" hash="4b079aac1a25bec3c7c7e4152a66daa8"/><dir name="Automation"><file name="Programme.php" hash="d65ea01f846798ded93b420889da89c2"/></dir><file name="Campaigns.php" hash="35014267c18ab36cd6d849318914185e"/><dir name="Contact"><file name="Imported.php" hash="f44a906cb28c81c709c649b6ed8a0ccd"/><file name="Modified.php" hash="30e2f9e3d55ecd65a3cd0be1136db38d"/></dir><dir name="Customer"><dir name="Attributes"><file name="Select.php" hash="a77542918db6d3ba1c0298b475e8e9ed"/></dir></dir><file name="Datafields.php" hash="0a12d3c9c63476ea6981e416dfec6155"/><dir name="Datamapping"><file name="Datafieldaccess.php" hash="eba7f16c5e03ebc4bca00b1dcfc5dbc7"/><file name="Datafieldtype.php" hash="1b9ac7be92d60718981d4b17be4dbeda"/></dir><dir name="Dynamic"><file name="Displaytype.php" hash="3c84fc4962406d0e4b974e1c0e40f6e4"/><file name="Gridview.php" hash="5f033792839adf57fb37b277dc662237"/></dir><file name="Fontpicker.php" hash="a943850c33229bc471ad9e94023347e3"/><file name="Fontsize.php" hash="7eb842a6f895b3f8a279c53fa961f173"/><dir name="Importer"><file name="Mode.php" hash="6a4649e9311b6aaf2997a434438dfb29"/><file name="Status.php" hash="97dfab5de2ada065f335ede94301c27c"/></dir><dir name="Lostbaskets"><file name="Interval.php" hash="e3ed7930ab2b4526c0d6d2b76784331c"/><file name="Intervalminute.php" hash="7777a4757d8fa8deebfa94cca9ac4053"/></dir><file name="Orderstatus.php" hash="b02456d91d6e27ae9f330c2b16b0fb8f"/><file name="Publicdatafields.php" hash="28c5710e4618e3ee90e8432a66aad31e"/><dir name="Reviews"><file name="Delay.php" hash="393704cfa870165ef3b3ba59e454953b"/></dir><dir name="Rules"><file name="Condition.php" hash="377f65c9b5ee85e44b2fb4ac72021770"/><file name="Type.php" hash="2ccd61f1f5a098e876b79ac24529d41b"/><file name="Value.php" hash="94d4df5777c098e5f04f5be125772ce5"/></dir><file name="Styling.php" hash="ff6d61cb3b533db33c26fd303befd09c"/><dir name="Sweettooth"><file name="Yesno.php" hash="8345e519b0e6b8eb75bca72a16e66014"/></dir><dir name="Sync"><dir name="Catalog"><file name="Attributes.php" hash="323d3400bb91b89ff880421823f54052"/><file name="Type.php" hash="265862a32c3d11509bf4f9ec3fac65fb"/><file name="Values.php" hash="30eedb9ac9f72edb94d9abef91b9fcfb"/><file name="Visibility.php" hash="84cc10186bfc1d00dd967027f6c2a413"/></dir><file name="Yesno.php" hash="00c1b84aeb7f10fafea884410e4e408a"/></dir><dir name="Transactional"><file name="Mode.php" hash="02f45553e3bc342ddd3f205993a5384e"/><file name="Port.php" hash="3dc1b86a9034e2098f98921109d7187f"/></dir></dir></dir><dir name="Api2"><dir name="Subscriber"><dir name="Rest"><dir name="Admin"><file name="V1.php" hash="388059f47bcfc581ab084676e5fa5953"/></dir></dir></dir></dir><dir name="Apiconnector"><file name="Client.php" hash="9efa9cd1261165abd0c10bfff9a62b83"/><file name="Contact.php" hash="4f041bb45a08415faef415f6f7b8e2fb"/><file name="Customer.php" hash="b83a108e33c28fd6ec8c46adde3cb446"/><file name="Test.php" hash="c1c0274bb9b707af55ebdd7a4263bf6e"/></dir><file name="Automation.php" hash="bfa50bdec7764e573391003773d5c70b"/><file name="Campaign.php" hash="08e6f1f963c05afac07288b66b305609"/><file name="Catalog.php" hash="4aa25dbe530cb3f2ad6c57d0a0f88cb4"/><dir name="Connector"><file name="Account.php" hash="11d1674896695b0cd15b891ab5165fb4"/><file name="Campaign.php" hash="6358f4a22cadd80a985865353eec0112"/><file name="Datafield.php" hash="616fa71b66833c5bb6abd5c3e24876f9"/><file name="Order.php" hash="9d8025ac4b78a6e6320705a24c45af0a"/><file name="Product.php" hash="d1d35faa5a0d9f7a4e6ec900b8413cfa"/><file name="Quote.php" hash="3f5a94f5de010c1a2c5e96c27e6b14f4"/></dir><file name="Contact.php" hash="6f48a12c66a13e8aa2b4ef4828aaade8"/><dir name="Controller"><file name="Observer.php" hash="b01537009a0061c4266fbf2f8c52251d"/></dir><file name="Cron.php" hash="ff2fcf008d5b4b16e4c1cd5616bfcc5a"/><dir name="Customer"><file name="Guest.php" hash="bd1e1b8f82f25d808700c33f726cb19a"/><file name="Observer.php" hash="1562634f26756a4a6956816ff879a835"/><dir name="Review"><file name="Rating.php" hash="a91b68302e270aa08ea3762f63225a80"/></dir><file name="Review.php" hash="f17180683194eca1e49782c36e310200"/><dir name="Wishlist"><file name="Item.php" hash="c5faac748a970502457e92dbb1f2df69"/></dir><file name="Wishlist.php" hash="598eddf031e56fa752bf64fe32773da5"/></dir><file name="Customer.php" hash="e1dd3b479c9bbf125cf1ec36206d1c7f"/><dir name="Email"><file name="Template.php" hash="1b6d1a45b2af72a7a0aa92a835f2c558"/></dir><file name="Email.php" hash="6cf3844e7f4c75c534a50486631ec10e"/><file name="Feed.php" hash="09151ffa241990ed28f4acb99c7d72ca"/><file name="Importer.php" hash="fe40d3282cfc73fb90a8d8403e1cce1d"/><dir name="Newsletter"><file name="Observer.php" hash="33111ce1f54e8549c76955bbdf8c7ee2"/><file name="Sub.php" hash="a8a3fd672f62288be68001b3dc0bd58d"/><file name="Subscriber.php" hash="53c2ba474048763384dbcd0a6d590488"/></dir><file name="Order.php" hash="012e78e61057a2a33285a68ec93a7999"/><file name="Quote.php" hash="7c13764201f798464dfbbb6123370b76"/><dir name="Resource"><dir name="Automation"><file name="Collection.php" hash="b0e7826c3c153cac3d9bcaed76d1d75e"/></dir><file name="Automation.php" hash="902f696eb797323101f1a3b4c9abf84d"/><dir name="Campaign"><file name="Collection.php" hash="736cc4414d45d0dca975101bc75919c6"/></dir><file name="Campaign.php" hash="b2d6c5e4396794efd97562f2f23f2f40"/><dir name="Catalog"><file name="Collection.php" hash="ef157bd81d50a49e94058b986aac5b2e"/></dir><file name="Catalog.php" hash="e447f04904e9b964359497c79a6ea1eb"/><dir name="Contact"><file name="Collection.php" hash="a6da2689f90a668b08a549a200f9c6a9"/></dir><file name="Contact.php" hash="e7c076d0f5efe25bdf2a94503820e4cb"/><dir name="Importer"><file name="Collection.php" hash="605d0e7091f309e6a5f6e2d15513c8bf"/></dir><file name="Importer.php" hash="565087fd0df9fa9c2f84cc5ac5e20e17"/><dir name="Order"><file name="Collection.php" hash="87cf24cbbd5d6c0141b7c401238b5c50"/></dir><file name="Order.php" hash="11fcf2784fb5f80594e6672d867c3d5a"/><dir name="Quote"><file name="Collection.php" hash="4d9ed530f86edb24c2d8e89db3c2b6b1"/></dir><file name="Quote.php" hash="598747a52e2a2d41dd7582bba69fef4a"/><dir name="Review"><file name="Collection.php" hash="c7e03d9bd662df5dd2a1a31e246b97e4"/></dir><file name="Review.php" hash="761eec4269e616ec356634d9346020b6"/><dir name="Rules"><file name="Collection.php" hash="b0da90dc943d5c6a8dd47d3fe245677c"/></dir><file name="Rules.php" hash="4b688c552b91487c22482f059cb49bc9"/><file name="Segment.php" hash="32b94ab790a3508658a663d2e2361065"/><file name="Setup.php" hash="442dda9eabbd1fb6e88e7d2baaa2a28c"/><dir name="Wishlist"><file name="Collection.php" hash="6d75820d8b8d5ed1af2fc77522205a8d"/></dir><file name="Wishlist.php" hash="6047d392299414bbf17c9aaf83a159ff"/></dir><file name="Review.php" hash="e35b2eae08be29cf58686e8b1ab3854e"/><file name="Rules.php" hash="ab5ece927a411a2f77e5c515555f814f"/><dir name="Sales"><file name="Observer.php" hash="e9aa80219d3af19b2c8b0aa482e999ae"/><file name="Order.php" hash="cd5abf018a37abdccc60a595b5e00217"/><file name="Quote.php" hash="3c6dbd5722f6d2e50832b8ea14f726c1"/></dir><dir name="Sms"><file name="Campaign.php" hash="79714d233916229b905a081fbda164c5"/></dir><dir name="Sweettooth"><file name="Observer.php" hash="36ce70503cd8abbafd8b5340a06d2072"/></dir><file name="Wishlist.php" hash="5b14130bf3c4975f6c9335c5a1a993d4"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="ConnectorController.php" hash="1fcd0cc5396b18a78b00ef5cb17952f9"/><dir name="Email"><file name="AutomationController.php" hash="12ebc887254ac470d418492eb0bacba8"/><file name="CampaignController.php" hash="dbe5e2bbfeab5b33315dc63f9c5ee7ad"/><file name="CatalogController.php" hash="e43c7a33bec07c1cedbd73a0aa9c54af"/><file name="ContactController.php" hash="b9c342c297d243661cc9a8e58f778257"/><file name="DashboardController.php" hash="13572a0ae47a09ed1cd4af0b870e8320"/><file name="ImporterController.php" hash="21540bb7f839cafcc6f70b7bee5b2774"/><file name="OrderController.php" hash="64b719cf2a80847b82a7849be7ffe68c"/><file name="QuoteController.php" hash="4167890a19fa6716e64a79afca55e2e3"/><file name="ReviewController.php" hash="13d74d52e160555e0c029a360d562a51"/><file name="RulesController.php" hash="6e33826563242604e83fe25344f7bf3e"/><file name="StudioController.php" hash="c24e13f8fb26805937b71d8d3eebcddc"/><file name="WishlistController.php" hash="b4d3a20f38a0a45886cc7dfa963894dc"/></dir><file name="RulesController.php" hash="629d3517648602792cb43c71c97dc0c9"/><dir name="System"><dir name="Email"><file name="TemplateController.php" hash="98d9c1f5aae8f94de0102ccdcdb2fe7c"/></dir></dir><dir name="Widget"><file name="ChooserController.php" hash="7607cec3305ab9d4381c89fa12703a64"/></dir></dir><file name="AjaxController.php" hash="cd16d360815bfcf72b77a78d9dc938f0"/><dir name="Customer"><file name="AccountController.php" hash="4b78330a34d2985fa2526c935073a65f"/><file name="NewsletterController.php" hash="f7425d9524504163d6e91ae3fa640c88"/></dir><file name="DynamicContentController.php" hash="c8e6dd34bfadc36701ce15478c79cddd"/><file name="EmailController.php" hash="c9a9a843d2f8e386a5669fd27c1cd79c"/><file name="FeefoController.php" hash="f3613defc5132cdabc5536483ae75bb5"/><file name="ProductsController.php" hash="d54c85bc071a0fcda6a8e5969e3c5f63"/><file name="QuoteproductsController.php" hash="3867af36e829e4cf22d81a4d96757d6a"/><file name="ReportController.php" hash="c8c670deae7bec4e17bb3251015dfffb"/><file name="ResponseController.php" hash="b30cec90880bf1646cda32561f0edff3"/><file name="WishlistController.php" hash="a8d20ad1304bf13a5de8847e726d9ee5"/></dir><dir name="etc"><file name="adminhtml.xml" hash="6cceb9fd48260c046b190bc8002df639"/><file name="api2.xml" hash="e6be0fdc4206cb242f22b2335476b497"/><file name="config.xml" hash="ec90fc12ef21125e84e7fb902d59e39e"/><file name="files.yaml" hash="f84a8e4814f128cd57cabe1f64f5360e"/><file name="system.xml" hash="a5ae837b7a5dd269d2009c21739b003f"/></dir><dir name="sql"><dir name="email_connector_setup"><file name="mysql4-install-0.1.0.php" hash="26042b2a6d9cd6241d52f826188483f4"/><file name="mysql4-install-3.0.0.php" hash="0874c77e934295ba2c68f9d553eb90ba"/><file name="mysql4-install-4.0.0.php" hash="8b534d2b2f5e2ef7443108fdf57ebdf0"/><file name="mysql4-install-5.0.0.php" hash="911128612ce03cd67068bb821af024f0"/><file name="mysql4-upgrade-1.1.1-1.1.2.php" hash="7fae25a8ae47fe0ba692076ac04237a4"/><file name="mysql4-upgrade-1.1.2-1.5.0.php" hash="34ac896f6e681c56d8d2dd6bf411215e"/><file name="mysql4-upgrade-1.5.0-2.0.0.php" hash="75020a02255ea63e9bc4599d85ab4e2f"/><file name="mysql4-upgrade-2.0.0-2.0.1.php" hash="2f71a10d19eddd97c9eba9af840e4f09"/><file name="mysql4-upgrade-2.0.1-2.0.2.php" hash="6b7af944ebc76328d16223cdb245c568"/><file name="mysql4-upgrade-2.0.3-2.0.4.php" hash="97ff7b08533c33b97398b91ec68ceaf1"/><file name="mysql4-upgrade-2.0.4-2.0.5.php" hash="f2080852fd1e0512da9bf1074767a9b3"/><file name="mysql4-upgrade-2.0.5-2.0.6.php" hash="438ea31fe7b8ed88160ae8c231ec9ccc"/><file name="mysql4-upgrade-3.0.1-3.0.2.php" hash="7c53b291487987ae73929acea576bc51"/><file name="mysql4-upgrade-3.0.3-3.0.4.php" hash="7adaa83b6da0000ca7d1491c3af76682"/><file name="mysql4-upgrade-3.0.4-3.0.5.php" hash="c08939ca13713f335bacc593d0e780d3"/><file name="mysql4-upgrade-3.1.2-3.1.3.php" hash="f5ba2c14acd01144297fab7070558ddd"/><file name="mysql4-upgrade-3.2.1-3.3.0.php" hash="1b6540a260f25ae849f433cb60f0c39d"/><file name="mysql4-upgrade-3.3.0-3.3.1.php" hash="df5afd27a3d0e542f85f762af28d5c85"/><file name="mysql4-upgrade-3.3.2-3.3.3.php" hash="1707de69aa9294821195cfafa1a1798e"/><file name="mysql4-upgrade-3.4.0-4.0.0.php" hash="39b55697d152529c4ba32ff6b9cffa48"/><file name="mysql4-upgrade-4.0.0-4.1.0.php" hash="fd8ffbebbbc4d04a2b9e1c90344ae6cc"/><file name="mysql4-upgrade-4.1.3-5.0.0.php" hash="c762c1263e3595162100ff48db52597b"/><file name="mysql4-upgrade-5.0.0-5.0.1.php" hash="a8603a251c822c67d0afde4b64d82da6"/><file name="mysql4-upgrade-5.0.4-5.1.0.php" hash="4640e2ea0587c2b3ead18cfa29b5fa04"/></dir></dir></dir><dir name="Mailcheck"><dir name="Helper"><file name="Data.php" hash="589b8909f08143ad44234f05911488df"/></dir><dir name="etc"><file name="config.xml" hash="841542418fa8e50cb53a3bde50ce38f4"/><file name="jstranslator.xml" hash="d0f175944d2c14badd2cade8d4a40585"/><file name="system.xml" hash="7d64665436e5eb104a1316c32338ec72"/></dir></dir></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="connector.xml" hash="4a5ad4efa2ea66fe9deccb81196582a1"/><file name="mailcheck.xml" hash="ff97a71e8124f8e6e55d951124addace"/></dir><dir name="template"><dir name="connector"><file name="additional-newsletter-pref.phtml" hash="db1251a0475c0947fd8e5854da4fd9ae"/><file name="basket.phtml" hash="fef3c4961495d63ae2a99c77dde591ff"/><file name="coupon.phtml" hash="2b5164dcd30b0311ed90e2e523403d65"/><dir><dir name="customer"><file name="stats.phtml" hash="b26f6331faa6b3e662b14e5bde8c66d8"/></dir><dir name="feefo"><file name="reviews.phtml" hash="cd1dc08242588b1427534326eb7525ab"/><file name="score.phtml" hash="74d48f68f5d0ec044a8c067fa7f3c631"/></dir><dir name="product"><file name="list.phtml" hash="a07f871bc93483fe16d9271f01a5dfef"/><file name="nosto.phtml" hash="fe3d6efaca5d739374c29046c87c8a86"/><file name="price.phtml" hash="4d0674f2d03160617536338744330ff4"/></dir></dir><file name="email_capture.phtml" hash="faf17eaeb824877f5998f1e3ab91504d"/><file name="email_capture_init.phtml" hash="f485003272b78400308d3af73574f4a7"/><file name="review.phtml" hash="38d28e9de70c280c73bcf25dd604581b"/><file name="roi_code.phtml" hash="108934652f443d0328a60893cad70742"/><file name="tracking_code.phtml" hash="1bbccb72db1a769ef8e14e0df2c9febd"/><file name="wishlist.phtml" hash="a891cd526661c4c6ec42c94af22b4bd0"/></dir><dir name="page"><file name="blank.phtml" hash="7a10ef1534ebe3b449cf051799e5a066"/></dir><dir name="mailcheck"><file name="scripts.phtml" hash="adbf073bb2cb944c44b11d79bcca1eb5"/></dir></dir></dir></dir></dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><dir name="connector"><file name="email.xml" hash="907e33ef044db87b0cbdadd480c5c43a"/></dir></dir><dir name="template"><dir name="connector"><file name="appcues.phtml" hash="11bb1143b5334bbcbf182d17a118f281"/><file name="beacon.phtml" hash="18d507b6041ac64b167d27a606fdcb83"/><dir><dir name="customer"><file name="stats.phtml" hash="0b842d3ccaa1cc33098be44a7935f97f"/></dir><dir name="dashboard"><file name="accountbar.phtml" hash="e01c432f6690613fd2845769777830cf"/><file name="content.phtml" hash="9e5c843b6323ea80c410662fb4f39793"/><file name="logs.phtml" hash="197596058232e7abd79dbbba860268cb"/><file name="status.phtml" hash="eb2fb3ef2d76df71fd453f1ddb376226"/><dir name="tabs"><dir name="analysis"><file name="index.phtml" hash="a9ef11d470dae139ad5243fc1bc91431"/><file name="rfm.phtml" hash="8129887ef234cd4571aa28c5fd124d3b"/></dir><file name="data.phtml" hash="bd7952625a3697cf4e5ef3cd0feb0a80"/><dir name="general"><file name="index.phtml" hash="68fa10c2aeef745d80b60317c9461a94"/></dir></dir><file name="tabs.phtml" hash="8df8befdd2f2300b177aacaca5d8a278"/></dir><dir name="system"><dir name="config"><file name="createdatafield.phtml" hash="a1a571fa0957d7fadf346d1b89c5a0b0"/></dir></dir></dir></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Dotdigitalgroup_Email.xml" hash="8745c0b2eae08783b6203a613acdbcb8"/><file name="Dotdigitalgroup_Mailcheck.xml" hash="247272e2cc981e8b91af95962b0f0470"/></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="connector"><file name="config.css" hash="433bf71f40517a667ee9aba495f1746c"/><file name="dashboard.css" hash="08e2c6ae799757fd68a85781311f2b97"/></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="js"><dir name="mailcheck"><file name="init.js" hash="585e518d5d2dd2d0f50243f51a3c881b"/></dir></dir></dir></dir></dir></target><target name="magelocale"><dir name="en_US"><file name="Dotdigitalgroup_Email.csv" hash="67022e746e28d74b86509b70f336db4f"/></dir></target><target name="mageweb"><dir name="lib"><dir name="Raygun4php"><dir><dir name="Exception"><file name="UnsatisfiedDependencyException.php" hash="32b7fff3854ba20107b89a100550dc41"/><file name="UnsupportedOperationException.php" hash="951d8a9fc2bdfae0acc432ea6dabffa4"/></dir></dir><file name="README.md" hash="0aed7c6a52f358016b2c1b8f5e4e35ed"/><file name="Raygun4PhpException.php" hash="f6d4ef9f38a74578b115fbdf6e2fd3c5"/><file name="RaygunClient.php" hash="f9511057d3280a3a6d02b9b2a1517fd1"/><file name="RaygunClientMessage.php" hash="df9bd918ff13b50146b252208a5ce737"/><file name="RaygunEnvironmentMessage.php" hash="a7dff1914fcb7f6a61577b758edba47e"/><file name="RaygunExceptionMessage.php" hash="fcf7e3cbf9fbafb3ff4a6d56135a190d"/><file name="RaygunExceptionTraceLineMessage.php" hash="8aa87f7ddee8c00855737e85bbcb29cd"/><file name="RaygunIdentifier.php" hash="49461fa525594b15f3a350fd1da1c2a0"/><file name="RaygunMessage.php" hash="865eaa58577265fb52a85ee861102625"/><file name="RaygunMessageDetails.php" hash="2403453f658d7a943bd476e7fad186d7"/><file name="RaygunRequestMessage.php" hash="038703138dcd19aefbc9a7e44bd6f198"/><file name="Uuid.php" hash="9db740992b0dad17bf2047d13565b428"/><file name="cacert.crt" hash="47961e7ef15667c93cd99be01b51f00a"/></dir><dir name="connector"><dir><dir name="feefo"><file name="feedback-no-th.xsl" hash="239c40764293a65b85d9f86479ced8b6"/><file name="feedback.xsl" hash="7167570192e48fdf57baa9c2cf56986b"/></dir></dir></dir></dir><dir name="js"><dir name="connector"><dir><dir name="procolor-1.0"><dir name="img"><file name="procolor_win_bars.png" hash="a8e41fdddd2253309e0b3e5154668c24"/><file name="procolor_win_bg.gif" hash="c0558cecd0e0ffb9ca89efe00f422261"/><file name="procolor_win_bg.png" hash="4e2a34cc64888fe264fcf6249dfe40da"/><file name="procolor_win_boxes.png" hash="e971c1ca87a0cb52d32408270d00a0da"/><file name="procolor_win_close.png" hash="20a8bb9433157962ab25d86d28d088a3"/><file name="procolor_win_drop.png" hash="9ddce741de330573f082ffe83005d691"/><file name="procolor_win_palette_raw.png" hash="ea98dde528e987029af6e24dbef53922"/><file name="procolor_win_sel_circle.gif" hash="3674b62db5a6eaa4dcedb0749dde4106"/><file name="procolor_win_sel_circle.png" hash="d76195d1777e9a14ebc1a242ab712037"/><file name="procolor_win_sel_rect.gif" hash="b74a72aaf1ea21d55b8751079f283537"/><file name="procolor_win_sel_rect.png" hash="5513589e2b6dc1a980a4e65a746005d0"/><file name="procolor_win_wheel_black.png" hash="62353005bb70bbfa8ffd700112d72582"/><file name="procolor_win_wheel_rgb.jpg" hash="afdd3852c3788a58794ddf1de9557fd8"/></dir><file name="procolor.compressed.js" hash="79e463efad21212e4096d40b9e17d96c"/><file name="procolor.js" hash="93ec3cb6a0356cce4cf8e51006dfaeec"/></dir></dir><file name="selector.js" hash="5dc1900967679a41c70ed5f1755240e2"/></dir><dir name="mailcheck"><file name="magentoMailcheck.js" hash="b4eaabac0b6e8753e09ab6ea449e6519"/><file name="mailcheck.min.js" hash="25966edf6e585822063b48dd34bcee9b"/></dir></dir></target></contents>
|
32 |
<compatible/>
|
33 |
<dependencies><required><php><min>1.5.2</min><max>6.0.0</max></php><extension><name>curl</name><min>7.15.1</min><max>7.30.0</max></extension></required></dependencies>
|
34 |
</package>
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>dotmailermagento</name>
|
4 |
+
<version>5.3.0</version>
|
5 |
<stability>stable</stability>
|
6 |
<license uri="http://opensource.org/licenses/osl-3.0.php">OSL v3.0</license>
|
7 |
<channel>community</channel>
|
8 |
<extends/>
|
9 |
<summary>Integrate your ecommerce with dotMailer's powerful triggered email marketing and convert more visits to sales.</summary>
|
10 |
<description>Connector Integration for Magento, allows to manage and synchronise customer data and lost baskets.</description>
|
11 |
+
<notes>Magento code audit changes x3
|
12 |
+
Support for dotmailer regions
|
13 |
+
Bug fixed for fatal error on manual sync
|
14 |
+
Email validation on ajax call
|
15 |
+
Escape logs before showing </notes>
|
16 |
+
<authors><author><name>Calin Diacon</name><user>cdiacon</user><email>calin.diacon@dotmailer.com</email></author><author><name>Adeel Qamar</name><user>adeelq</user><email>adeel.qamar@dotmailer.com</email></author></authors>
|
17 |
+
<date>2016-02-17</date>
|
18 |
+
<time>17:05:31</time>
|
19 |
+
<contents><target name="magecommunity"><dir name="Dotdigitalgroup"><dir name="Email"><dir name="Block"><dir name="Adminhtml"><dir name="Automation"><file name="Grid.php" hash="7059908834fdfed28182e2fe672e0d33"/></dir><file name="Automation.php" hash="7e1b876bf5619cb4533fb935b67b7103"/><dir name="Campaign"><file name="Grid.php" hash="ed3b11f23f8029c7af4dd63f5dceed0e"/></dir><file name="Campaign.php" hash="1b09266adba5191df1d39330e4832d41"/><dir name="Catalog"><file name="Grid.php" hash="e5545ec424a1011117e869984e90a754"/></dir><file name="Catalog.php" hash="f9d97d5ff57987714788ef0511405d46"/><dir name="Column"><dir name="Renderer"><file name="Delete.php" hash="2741323edb5151b4211244ccf115d796"/><file name="Imported.php" hash="894d7ead94e40d20cabb082346830c35"/><file name="Reset.php" hash="f85c3f41af7e6929dc169fb231e24162"/><file name="Script.php" hash="d4f0356fc226028af5857549733a84d3"/><file name="Status.php" hash="92c7256da2ca42ec9c11c255e2cd4e51"/><file name="Sync.php" hash="c85a2e4784b73e709bfe82468a4200b0"/><file name="Website.php" hash="ca2c1f34b86e5ccf022fdc395cf07084"/></dir></dir><dir name="Config"><dir name="Automation"><file name="Customdatafields.php" hash="7ae2aef7d636c19dd2fcc9ba57ab4635"/></dir><file name="Customdatafields.php" hash="ee28b3fe691ade18fcc217b330d8dac6"/><dir name="Rules"><file name="Customdatafields.php" hash="c56d50e7eb3854ec67e026023d38d4d7"/></dir><file name="Select.php" hash="b92091e08d7e24032be9b8aea033b81d"/></dir><dir name="Contact"><dir name="Edit"><file name="Form.php" hash="1d0f6eba1f3a59c38ccfc01b3d5eb447"/></dir><file name="Edit.php" hash="051408ea54be21761e1ab2210ea0bc30"/><file name="Grid.php" hash="7d1f44fcfb247e899104819b8e1ca3b8"/></dir><file name="Contact.php" hash="ecf231c9d8eb789a4f0863f92d323c38"/><dir name="Customer"><dir name="Tab"><file name="Stats.php" hash="ee77ed9c68e790842d308eab4dd8e8c2"/></dir><file name="Tab.php" hash="507172f634c4db4350fb0288464a348a"/></dir><dir name="Dashboard"><file name="Switcher.php" hash="dac118060238aef3b2a4f60d11c0a3eb"/><dir name="Tabs"><dir name="Analysis"><file name="Abandonedcarts.php" hash="b5ca264c215c98545c882646f4d44bd2"/><file name="Customer.php" hash="01ab9dc18bce37c70de130393ed85902"/><file name="Rfm.php" hash="1d163726953644043e37ace0061592d1"/><file name="Sales.php" hash="6abc5d3bb6f1e668ffa696cd34e3adf4"/><file name="Subscriber.php" hash="4dc3d4a2553a64befd5a94cd64d9658e"/></dir><file name="Analysis.php" hash="b2d6a5a2bab0c8117b89d0f6e91051e2"/><dir name="General"><file name="Data.php" hash="f55fbdda9c380b3ad01c4672e05fcea7"/></dir><file name="General.php" hash="d79b87c420c7c708f7ef86fe18d244c0"/><file name="Logs.php" hash="1fc8ae9c5e8370718f70075afa8e3d81"/><file name="Status.php" hash="7eb580c5c3beeca939830d9f0ee7240b"/></dir><file name="Tabs.php" hash="8da89ad9d407a489b04ae47924e0b30f"/></dir><file name="Dashboard.php" hash="1f06a5dcb5a934d239c9627b9bbea822"/><dir name="Importer"><file name="Grid.php" hash="8de43bab33f75c0f64198709dbb1b5e9"/></dir><file name="Importer.php" hash="833d5c2a48f40c9fa27aed4bbd74bd2c"/><dir name="Order"><file name="Grid.php" hash="96e62a99c8295f442377124d37a114f2"/></dir><file name="Order.php" hash="dc6b0cd9c9ac9d8c291f72dbbd4c1a15"/><dir name="Quote"><file name="Grid.php" hash="241108bfb525bbbad0c543fef7673546"/></dir><file name="Quote.php" hash="edcacdf20da2f046ab4654dceef2399f"/><dir name="Review"><file name="Grid.php" hash="85919ad9bfc19eec32e673a699f850c5"/></dir><file name="Review.php" hash="822d452ee01499b4b493e19e6d810afd"/><dir name="Rules"><dir name="Edit"><file name="Form.php" hash="13f8b943873d30609ca3a2af6c72f502"/><dir name="Tab"><file name="Conditions.php" hash="1a11c398065666e0b77e0bf30827c81e"/><file name="Main.php" hash="aaf575a2db857eaac0f9e5006064fc3d"/></dir><file name="Tabs.php" hash="99c7258e593bff52b3976c359ad4235a"/></dir><file name="Edit.php" hash="bf987a05ecfc0c7540c6f86275582733"/><file name="Grid.php" hash="6a9077456ab1b8b72ed26406af336437"/></dir><file name="Rules.php" hash="4dc3b7ac89293d996f3e2a8fd3d12eb9"/><dir name="Sales"><dir name="Order"><dir name="Creditmemo"><file name="View.php" hash="ab9cfcc946e03f8b8fdf33d606222427"/></dir></dir></dir><dir name="System"><dir name="Advanced"><file name="Deletecontactids.php" hash="293320187b8ec5514ff69e027a808321"/><file name="Notification.php" hash="0ea9608a09ae2dad6e4c78738c583c2d"/><file name="Reimportcatalog.php" hash="a497ac63a609440dbd723bc3a2a2819f"/><file name="Reimportorders.php" hash="d29f38c149d2fbfb6b8589491b050247"/><file name="Reimportquotes.php" hash="6089df53be37afe6c4f9f10147730bc7"/><file name="Reimportreviews.php" hash="2c14cd482a448be01c8ceb3d0a9c7dd5"/><file name="Reimportsubscribers.php" hash="43b98ca37accc978ba8e9bd087b9a2c7"/><file name="Reimportwishlists.php" hash="f6bce4f06bc91f69242bd2f59220285d"/><file name="Reset.php" hash="41053dc403c95328402c0e3886307859"/><file name="Resetcustomersimport.php" hash="21bab61f962ed4a3a3c14656781c4e3b"/><file name="Runcatalogsync.php" hash="ecaa5a7b8ebc78a5f84f0870a90a0cd9"/><file name="Runcontactsync.php" hash="747b338c4fe3d3603ce60a68b7e1d5c4"/><file name="Runimportersync.php" hash="e2eee8773c0019dd7e8c5d9553a75d39"/><file name="Runordersync.php" hash="58d7672919b3387d73472e6a10a850af"/><file name="Runquotesync.php" hash="c4bbc5616a080b5dbaad02717225f507"/><file name="Runreviewsync.php" hash="dafef47cb94f595af038698f1f233421"/><file name="Runsubscribersync.php" hash="090707901889d4bae741fe59747cfbff"/><file name="Runwishlistsync.php" hash="8453adae849a6ad9aaecb1f27dc46b72"/><file name="Setupdatafields.php" hash="48373eb08bb90bf4417c830723a4df11"/><file name=".DS_Store" hash="194577a7e20bdcc7afbb718f502c134c"/></dir><file name="Ajaxvalidate.php" hash="2647705ecfcd6c1cd39489febd38b490"/><dir name="Automation"><file name="Connect.php" hash="6a104d54949f4dd845e2dd273ec59b59"/></dir><dir name="Config"><file name="Addressbook.php" hash="ac68b4c742413e5cdcce9c5c78e836a9"/><file name="Colorpicker.php" hash="a22c6d50728e2edaf43399093b1f4a61"/><file name="Datafield.php" hash="5b30377c5423fcccd424c4ca0ad3224f"/><file name="Enterprisevalidator.php" hash="92b60f1f8ca067887dc17afac7be6f24"/><file name="Resetcontacts.php" hash="22ef003f51db85bed2ebb85c5834b352"/><file name="Resetguests.php" hash="002ced7daec912bdad0890b26afcc4a0"/><file name="Resetsubscribers.php" hash="d5be1a595576ea63883c0249be835c7f"/><file name="Validator.php" hash="995386364c7434ad50bb87477c46f6eb"/><file name="Waitingfield.php" hash="7ffe44f6ae4b879336344882ba7e020e"/><file name="Wrapper.php" hash="2813c1d11255f10bc1ff804650a634b7"/></dir><dir name="Dynamic"><file name="Addressbookbutton.php" hash="744ca8346bf67fb7c7b96f92ad67e993"/><dir name="Basket"><file name="Crosssell.php" hash="aa00e37f15d822bf8448fbe79d70d1d5"/><file name="Related.php" hash="a1b0f467eee4513be21fdc58bdf6e59e"/><file name="Upsell.php" hash="dc7a0dbea77d7c88c9fbb660131d1773"/></dir><file name="Bestsellers.php" hash="47d8b2f89290c034c1c74ae0dad5463a"/><file name="Couponinfo.php" hash="646acc6eb041db4041c1df04e2e2fe26"/><file name="Creditmemonew.php" hash="c36bcff6b33f441b11cc5a45a5abe60d"/><file name="Crosssell.php" hash="e1085bb71156dcb1bb012044c5d4a076"/><file name="Datafieldbutton.php" hash="369eec55df4d51ce367abb9c81402976"/><file name="Fallbackchooser.php" hash="28601a2fb0407ece1269a9e3d95757de"/><file name="Fallbackcontainer.php" hash="e3044fc492790758b646a9a656ea1f79"/><dir name="Feefo"><file name="Reviews.php" hash="8a32c6e10d93621fe63c6307c5da17da"/><file name="Score.php" hash="a5a2b4a16e1645107c9dd360dbf03a6b"/></dir><file name="Gridlist.php" hash="9329c6aa0ab3118b8f03af66761f038d"/><file name="Lostbasket.php" hash="506dd83329b4b342af7239a419925a93"/><file name="Manualchooser.php" hash="d9e2e198bb53fdf4a329915db7d07281"/><file name="Manualcontainer.php" hash="689696990974ce7cd1db3df3b73bb864"/><file name="Mostviewed.php" hash="cd49997a51f34aa36470dae896336fee"/><file name="Nosto.php" hash="ec90847ea7170baf8bc197057a13dcac"/><file name="Productpush.php" hash="2623fd4a941ff0e06504dc87b877bb50"/><file name="Recentlyviewed.php" hash="b73e60e76daaca15891e3cbc3700182c"/><file name="Related.php" hash="8b8022dac18181a3ab11837be34beced"/><file name="Review.php" hash="02a962eaf8231981f3d999be9a904c77"/><file name="Upsell.php" hash="898fe5ffc06063450034a8980f54db33"/><dir name="Wishlist"><file name="Crosssell.php" hash="c5c191438715b4f8ad36c62b705cfbb5"/><file name="Related.php" hash="d94412911bb7b85ce73718adc244d6e8"/><file name="Upsell.php" hash="d79aed858a2f4c2a29299fe8868d7ef7"/></dir><file name="Wishlist.php" hash="46c433fda7ec07c82025d88014d93471"/></dir><file name="Emailapivalidate.php" hash="d2b05128440217064792b82e0911e1e6"/><file name="Installation.php" hash="03707c42dcca01e1c156b48a6246a74c"/><dir name="Sms"><file name="Smsmessagefour.php" hash="d5f61111d9c58ee99dc10cb53afea060"/><file name="Smsmessageone.php" hash="00b65d2fcd16c11b93db8fff1ffda069"/><file name="Smsmessagethree.php" hash="eec8120e729a8dd0d248e184564eefcd"/><file name="Smsmessagetwo.php" hash="5f9fa9aca352c389a2cd75ef4366baed"/></dir><dir name="Url"><file name="Creditmemoupdate.php" hash="07113ed35f709e2e65c4c61521e560a8"/><file name="Creditmemoupdateguest.php" hash="034e033269cf142f930b6bff1c36d10a"/><file name="Customerconfirmation.php" hash="260a57d13b20cda7229eb33c9a73559c"/><file name="Customerconfirmed.php" hash="1743ddf8f308eb375f44ac32da3c3c91"/><file name="Customernew.php" hash="2878ef6c84303614ac3426838f8b65d5"/><file name="Invoiceupdate.php" hash="d4eb69e2e0f5e3b7e9ea1da5d3adb578"/><file name="Invoiceupdateguest.php" hash="1ebd3c14e380043fa16b7e36d821d15c"/><file name="Newcreditmemo.php" hash="20b55e9ce5371a371ff0c94bd0fda178"/><file name="Newcreditmemoguest.php" hash="5bd16181c61c1bfb98e6eea3e1c7281f"/><file name="Newinvoice.php" hash="ff95c29ff62359ab2d0366098029a704"/><file name="Newinvoiceguest.php" hash="d05a14bb52facf8635c89642165e39ec"/><file name="Neworder.php" hash="f67882d758909fda7364fa04cb51e2f0"/><file name="Neworderguest.php" hash="ac3b96283e7e5e3ce68e35bf84f9043d"/><file name="Newshipment.php" hash="f059c430fb155c8f9da10b6dd4c67e01"/><file name="Newshipmentguest.php" hash="f73d439fb93eb7f20289e021b10b69a8"/><file name="Orderupdate.php" hash="1c27f18bf9ff58c1f0668539b7ca6896"/><file name="Orderupdateguest.php" hash="d4a2479efa67e900fbe69f6954707076"/><file name="Shipmentupdate.php" hash="f6f2fe91a159b8bf9c70c3a8773a058c"/><file name="Shipmentupdateguest.php" hash="f0ce96ef2e562cae6d155e4d38f1dcac"/></dir></dir><dir name="Widget"><dir name="Chooser"><file name="Product.php" hash="b2f77407f30411d5447fbd1ffac3e415"/></dir></dir><dir name="Wishlist"><file name="Grid.php" hash="fc60afe27facac4a3fb4677ba1aa2fbe"/></dir><file name="Wishlist.php" hash="74f5fb49b057af35ee320f442c664a6b"/></dir><file name="Basket.php" hash="74854e35887abe27614bc4f3054fd40d"/><file name="Coupon.php" hash="87809cee79ae38e413f9547abe6e928f"/><dir name="Customer"><dir name="Account"><file name="Books.php" hash="4513840169af5af3ecb5682111c8798b"/></dir></dir><file name="Edc.php" hash="5a9937398bd001e4cccb4620cedf624a"/><file name="Feefo.php" hash="69eae3b3ef72a610ef7671347095127e"/><dir name="Order"><file name="Creditmemo.php" hash="3b8be146530d2ef5b408c91dda73dd9d"/><file name="Invoice.php" hash="0e2e69a44e6952e4803afe0778b57567"/><file name="Shipping.php" hash="dec79e54b6029c8a478b519f99470e72"/></dir><file name="Order.php" hash="c01fe53687b795fbba54131f06080c65"/><file name="Products.php" hash="d38365bc368c1d6e8e867de39c4a1495"/><dir name="Recommended"><file name="Products.php" hash="507a2ab57f718870064272084cf58bb6"/><file name="Wishlistproducts.php" hash="943a5b7697bacb899cb4e81a587fe334"/></dir><file name="Wishlist.php" hash="c0adad8c73b8cbf50596c202032422e3"/></dir><dir name="Helper"><file name="Config.php" hash="3b4d61db65c5af6dd237cecd87cb0bbd"/><file name="Dashboard.php" hash="19fb73389f2ef6a65c83325e8059de67"/><file name="Data.php" hash="03f77d7a8253c789e5e8db892abfd139"/><file name="File.php" hash="93f15c70a6babbc8174098bcac0758be"/><file name="Recommended.php" hash="d77533b7b110828e07f7a9d9a80606fe"/><file name="Transactional.php" hash="a399ced08b031a9d5f4cdab3d28db6a6"/></dir><dir name="Model"><dir name="Abstract"><file name="Rest.php" hash="9dcbb422c4bb28bab2e88c9ba0b21cba"/></dir><dir name="Adminhtml"><dir name="Dashboard"><file name="Content.php" hash="a415e7d3fad5d27ce27f6172a50d4997"/><dir name="Tabs"><dir name="Analysis"><file name="Abandoned.php" hash="915c2e848bdb8c2629a90d6d4326b8e8"/><file name="Customer.php" hash="f56d20e6620589c31b8468d8f06d975e"/><file name="Orders.php" hash="9ac9df6980ecedcdcd2567656ebc3a4c"/><file name="Rfm.php" hash="1bd137928d701485c995b6a236ea1ef6"/><file name="Subscriber.php" hash="1b44da59332b7f233499abe3408ed70a"/></dir></dir></dir><file name="Observer.php" hash="6dd036535d2effc5d9d39ed79d5aed58"/><dir name="Source"><file name="Addressbooks.php" hash="af92437b4ed2a7fc6fede455420f11c0"/><file name="Addressbookspref.php" hash="be0c23d42b1a30f9c719c382be865e8d"/><dir name="Advanced"><file name="Abandonedlimit.php" hash="cd280151523091f85af89b0e22ff0abf"/><file name="Attributes.php" hash="9d08d5ab758447987c7ab9ba6d5c45b2"/><file name="Cronexpressionsone.php" hash="3877dd7041189aedf2c972b4361d2134"/><file name="Cronexpressionstwo.php" hash="0a97c58dff29e17a8448ff0c17e393d7"/><file name="Frequency.php" hash="28292fba0dd62bb6730ccd7bfa2b8e70"/><file name="Quoteattributes.php" hash="a1ddcbd001b9cd5b40157ba3c9435bef"/><file name="Transdata.php" hash="5c670a26d641c4b7e73bbaff48af3dd6"/></dir><file name="Attributes.php" hash="4b079aac1a25bec3c7c7e4152a66daa8"/><dir name="Automation"><file name="Programme.php" hash="7ac64e4f820d85d20be5dc6b9b6571f1"/></dir><file name="Campaigns.php" hash="35014267c18ab36cd6d849318914185e"/><dir name="Contact"><file name="Imported.php" hash="f44a906cb28c81c709c649b6ed8a0ccd"/><file name="Modified.php" hash="30e2f9e3d55ecd65a3cd0be1136db38d"/></dir><dir name="Customer"><dir name="Attributes"><file name="Select.php" hash="a77542918db6d3ba1c0298b475e8e9ed"/></dir></dir><file name="Datafields.php" hash="0a12d3c9c63476ea6981e416dfec6155"/><dir name="Datamapping"><file name="Datafieldaccess.php" hash="eba7f16c5e03ebc4bca00b1dcfc5dbc7"/><file name="Datafieldtype.php" hash="1b9ac7be92d60718981d4b17be4dbeda"/></dir><dir name="Dynamic"><file name="Displaytype.php" hash="3c84fc4962406d0e4b974e1c0e40f6e4"/><file name="Gridview.php" hash="5f033792839adf57fb37b277dc662237"/></dir><file name="Fontpicker.php" hash="a943850c33229bc471ad9e94023347e3"/><file name="Fontsize.php" hash="7eb842a6f895b3f8a279c53fa961f173"/><dir name="Importer"><file name="Mode.php" hash="e41602dcc5d2a22466edaf6b43d8136f"/><file name="Status.php" hash="97dfab5de2ada065f335ede94301c27c"/></dir><dir name="Lostbaskets"><file name="Interval.php" hash="e3ed7930ab2b4526c0d6d2b76784331c"/><file name="Intervalminute.php" hash="7777a4757d8fa8deebfa94cca9ac4053"/></dir><file name="Orderstatus.php" hash="b02456d91d6e27ae9f330c2b16b0fb8f"/><file name="Publicdatafields.php" hash="28c5710e4618e3ee90e8432a66aad31e"/><dir name="Reviews"><file name="Delay.php" hash="393704cfa870165ef3b3ba59e454953b"/></dir><dir name="Rules"><file name="Condition.php" hash="377f65c9b5ee85e44b2fb4ac72021770"/><file name="Type.php" hash="2ccd61f1f5a098e876b79ac24529d41b"/><file name="Value.php" hash="94d4df5777c098e5f04f5be125772ce5"/></dir><file name="Styling.php" hash="ff6d61cb3b533db33c26fd303befd09c"/><dir name="Sweettooth"><file name="Yesno.php" hash="8345e519b0e6b8eb75bca72a16e66014"/></dir><dir name="Sync"><dir name="Catalog"><file name="Attributes.php" hash="323d3400bb91b89ff880421823f54052"/><file name="Type.php" hash="265862a32c3d11509bf4f9ec3fac65fb"/><file name="Values.php" hash="30eedb9ac9f72edb94d9abef91b9fcfb"/><file name="Visibility.php" hash="84cc10186bfc1d00dd967027f6c2a413"/></dir><file name="Yesno.php" hash="00c1b84aeb7f10fafea884410e4e408a"/></dir><dir name="Transactional"><file name="Mode.php" hash="02f45553e3bc342ddd3f205993a5384e"/><file name="Port.php" hash="3dc1b86a9034e2098f98921109d7187f"/></dir></dir></dir><dir name="Api2"><dir name="Subscriber"><dir name="Rest"><dir name="Admin"><file name="V1.php" hash="388059f47bcfc581ab084676e5fa5953"/></dir></dir></dir></dir><dir name="Apiconnector"><file name="Client.php" hash="b1c5be1d82dd1e745d064fbaed23ec6a"/><file name="Contact.php" hash="4f041bb45a08415faef415f6f7b8e2fb"/><file name="Customer.php" hash="b83a108e33c28fd6ec8c46adde3cb446"/><file name="Test.php" hash="c1c0274bb9b707af55ebdd7a4263bf6e"/></dir><file name="Automation.php" hash="bfa50bdec7764e573391003773d5c70b"/><file name="Campaign.php" hash="08e6f1f963c05afac07288b66b305609"/><file name="Catalog.php" hash="4aa25dbe530cb3f2ad6c57d0a0f88cb4"/><dir name="Connector"><file name="Account.php" hash="11d1674896695b0cd15b891ab5165fb4"/><file name="Campaign.php" hash="6358f4a22cadd80a985865353eec0112"/><file name="Datafield.php" hash="616fa71b66833c5bb6abd5c3e24876f9"/><file name="Order.php" hash="f04d71407c48dcaa72725fdb664d8d82"/><file name="Product.php" hash="d1d35faa5a0d9f7a4e6ec900b8413cfa"/><file name="Quote.php" hash="3f5a94f5de010c1a2c5e96c27e6b14f4"/></dir><file name="Contact.php" hash="f12c9ddaf0ee9156c4521f6d37d7b00f"/><dir name="Controller"><file name="Observer.php" hash="b01537009a0061c4266fbf2f8c52251d"/></dir><file name="Cron.php" hash="ff2fcf008d5b4b16e4c1cd5616bfcc5a"/><dir name="Customer"><file name="Guest.php" hash="bd1e1b8f82f25d808700c33f726cb19a"/><file name="Observer.php" hash="07d97d2871ee5ceb48a37425b54d64dd"/><dir name="Review"><file name="Rating.php" hash="a91b68302e270aa08ea3762f63225a80"/></dir><file name="Review.php" hash="f17180683194eca1e49782c36e310200"/><dir name="Wishlist"><file name="Item.php" hash="c5faac748a970502457e92dbb1f2df69"/></dir><file name="Wishlist.php" hash="598eddf031e56fa752bf64fe32773da5"/></dir><file name="Customer.php" hash="e1dd3b479c9bbf125cf1ec36206d1c7f"/><dir name="Email"><file name="Template.php" hash="1b6d1a45b2af72a7a0aa92a835f2c558"/></dir><file name="Email.php" hash="6cf3844e7f4c75c534a50486631ec10e"/><file name="Feed.php" hash="09151ffa241990ed28f4acb99c7d72ca"/><file name="Importer.php" hash="4aa186976b8df0dcdba794657b5a7753"/><dir name="Newsletter"><file name="Observer.php" hash="ab58ec4cbea7e77a8a9ea80b0c576879"/><file name="Sub.php" hash="a8a3fd672f62288be68001b3dc0bd58d"/><file name="Subscriber.php" hash="53c2ba474048763384dbcd0a6d590488"/></dir><file name="Order.php" hash="012e78e61057a2a33285a68ec93a7999"/><file name="Quote.php" hash="7c13764201f798464dfbbb6123370b76"/><dir name="Resource"><dir name="Automation"><file name="Collection.php" hash="b0e7826c3c153cac3d9bcaed76d1d75e"/></dir><file name="Automation.php" hash="902f696eb797323101f1a3b4c9abf84d"/><dir name="Campaign"><file name="Collection.php" hash="736cc4414d45d0dca975101bc75919c6"/></dir><file name="Campaign.php" hash="b2d6c5e4396794efd97562f2f23f2f40"/><dir name="Catalog"><file name="Collection.php" hash="ef157bd81d50a49e94058b986aac5b2e"/></dir><file name="Catalog.php" hash="e447f04904e9b964359497c79a6ea1eb"/><dir name="Contact"><file name="Collection.php" hash="a6da2689f90a668b08a549a200f9c6a9"/></dir><file name="Contact.php" hash="621839c28822845ca7c9566cd7d91557"/><dir name="Importer"><file name="Collection.php" hash="605d0e7091f309e6a5f6e2d15513c8bf"/></dir><file name="Importer.php" hash="565087fd0df9fa9c2f84cc5ac5e20e17"/><dir name="Order"><file name="Collection.php" hash="87cf24cbbd5d6c0141b7c401238b5c50"/></dir><file name="Order.php" hash="11fcf2784fb5f80594e6672d867c3d5a"/><dir name="Quote"><file name="Collection.php" hash="4d9ed530f86edb24c2d8e89db3c2b6b1"/></dir><file name="Quote.php" hash="598747a52e2a2d41dd7582bba69fef4a"/><dir name="Review"><file name="Collection.php" hash="c7e03d9bd662df5dd2a1a31e246b97e4"/></dir><file name="Review.php" hash="761eec4269e616ec356634d9346020b6"/><dir name="Rules"><file name="Collection.php" hash="b0da90dc943d5c6a8dd47d3fe245677c"/></dir><file name="Rules.php" hash="4b688c552b91487c22482f059cb49bc9"/><file name="Segment.php" hash="32b94ab790a3508658a663d2e2361065"/><file name="Setup.php" hash="442dda9eabbd1fb6e88e7d2baaa2a28c"/><dir name="Wishlist"><file name="Collection.php" hash="6d75820d8b8d5ed1af2fc77522205a8d"/></dir><file name="Wishlist.php" hash="6047d392299414bbf17c9aaf83a159ff"/></dir><file name="Review.php" hash="c3be61564625a5fb75dc927c3501e083"/><file name="Rules.php" hash="ab5ece927a411a2f77e5c515555f814f"/><dir name="Sales"><file name="Observer.php" hash="1fb5ec2d0ac4f8c11649c99a351d2f6e"/><file name="Order.php" hash="cd5abf018a37abdccc60a595b5e00217"/><file name="Quote.php" hash="64c06195c9c0ec2dba0d59e3b9848375"/></dir><dir name="Sms"><file name="Campaign.php" hash="79714d233916229b905a081fbda164c5"/></dir><dir name="Sweettooth"><file name="Observer.php" hash="36ce70503cd8abbafd8b5340a06d2072"/></dir><file name="Wishlist.php" hash="7574e06a6bae577ab18322d5229e9661"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="ConnectorController.php" hash="251a71b0f363ef11c770c292e7bf9a2f"/><dir name="Email"><file name="AutomationController.php" hash="12ebc887254ac470d418492eb0bacba8"/><file name="CampaignController.php" hash="dbe5e2bbfeab5b33315dc63f9c5ee7ad"/><file name="CatalogController.php" hash="e43c7a33bec07c1cedbd73a0aa9c54af"/><file name="ContactController.php" hash="b9c342c297d243661cc9a8e58f778257"/><file name="DashboardController.php" hash="13572a0ae47a09ed1cd4af0b870e8320"/><file name="ImporterController.php" hash="21540bb7f839cafcc6f70b7bee5b2774"/><file name="OrderController.php" hash="64b719cf2a80847b82a7849be7ffe68c"/><file name="QuoteController.php" hash="4167890a19fa6716e64a79afca55e2e3"/><file name="ReviewController.php" hash="13d74d52e160555e0c029a360d562a51"/><file name="RulesController.php" hash="6e33826563242604e83fe25344f7bf3e"/><file name="StudioController.php" hash="c24e13f8fb26805937b71d8d3eebcddc"/><file name="WishlistController.php" hash="b4d3a20f38a0a45886cc7dfa963894dc"/></dir><file name="RulesController.php" hash="629d3517648602792cb43c71c97dc0c9"/><dir name="System"><dir name="Email"><file name="TemplateController.php" hash="98d9c1f5aae8f94de0102ccdcdb2fe7c"/></dir></dir><dir name="Widget"><file name="ChooserController.php" hash="7607cec3305ab9d4381c89fa12703a64"/></dir></dir><file name="AjaxController.php" hash="db9e4860fd6963717ae51cc6ac62bb97"/><dir name="Customer"><file name="AccountController.php" hash="4b78330a34d2985fa2526c935073a65f"/><file name="NewsletterController.php" hash="f7425d9524504163d6e91ae3fa640c88"/></dir><file name="DynamicContentController.php" hash="c8e6dd34bfadc36701ce15478c79cddd"/><file name="EmailController.php" hash="c9a9a843d2f8e386a5669fd27c1cd79c"/><file name="FeefoController.php" hash="f3613defc5132cdabc5536483ae75bb5"/><file name="ProductsController.php" hash="d54c85bc071a0fcda6a8e5969e3c5f63"/><file name="QuoteproductsController.php" hash="3867af36e829e4cf22d81a4d96757d6a"/><file name="ReportController.php" hash="c8c670deae7bec4e17bb3251015dfffb"/><file name="ResponseController.php" hash="a59a752342c3f93946cb4061e6de17f6"/><file name="WishlistController.php" hash="a8d20ad1304bf13a5de8847e726d9ee5"/></dir><dir name="etc"><file name="adminhtml.xml" hash="6cceb9fd48260c046b190bc8002df639"/><file name="api2.xml" hash="e6be0fdc4206cb242f22b2335476b497"/><file name="config.xml" hash="ec90fc12ef21125e84e7fb902d59e39e"/><file name="files.yaml" hash="f84a8e4814f128cd57cabe1f64f5360e"/><file name="system.xml" hash="213ddebb6c4e38abe7a861a1cf1e4aa5"/></dir><dir name="sql"><dir name="email_connector_setup"><file name="mysql4-install-0.1.0.php" hash="26042b2a6d9cd6241d52f826188483f4"/><file name="mysql4-install-3.0.0.php" hash="0874c77e934295ba2c68f9d553eb90ba"/><file name="mysql4-install-4.0.0.php" hash="8b534d2b2f5e2ef7443108fdf57ebdf0"/><file name="mysql4-install-5.0.0.php" hash="911128612ce03cd67068bb821af024f0"/><file name="mysql4-upgrade-1.1.1-1.1.2.php" hash="7fae25a8ae47fe0ba692076ac04237a4"/><file name="mysql4-upgrade-1.1.2-1.5.0.php" hash="34ac896f6e681c56d8d2dd6bf411215e"/><file name="mysql4-upgrade-1.5.0-2.0.0.php" hash="75020a02255ea63e9bc4599d85ab4e2f"/><file name="mysql4-upgrade-2.0.0-2.0.1.php" hash="2f71a10d19eddd97c9eba9af840e4f09"/><file name="mysql4-upgrade-2.0.1-2.0.2.php" hash="6b7af944ebc76328d16223cdb245c568"/><file name="mysql4-upgrade-2.0.3-2.0.4.php" hash="97ff7b08533c33b97398b91ec68ceaf1"/><file name="mysql4-upgrade-2.0.4-2.0.5.php" hash="f2080852fd1e0512da9bf1074767a9b3"/><file name="mysql4-upgrade-2.0.5-2.0.6.php" hash="438ea31fe7b8ed88160ae8c231ec9ccc"/><file name="mysql4-upgrade-3.0.1-3.0.2.php" hash="7c53b291487987ae73929acea576bc51"/><file name="mysql4-upgrade-3.0.3-3.0.4.php" hash="7adaa83b6da0000ca7d1491c3af76682"/><file name="mysql4-upgrade-3.0.4-3.0.5.php" hash="c08939ca13713f335bacc593d0e780d3"/><file name="mysql4-upgrade-3.1.2-3.1.3.php" hash="f5ba2c14acd01144297fab7070558ddd"/><file name="mysql4-upgrade-3.2.1-3.3.0.php" hash="1b6540a260f25ae849f433cb60f0c39d"/><file name="mysql4-upgrade-3.3.0-3.3.1.php" hash="df5afd27a3d0e542f85f762af28d5c85"/><file name="mysql4-upgrade-3.3.2-3.3.3.php" hash="1707de69aa9294821195cfafa1a1798e"/><file name="mysql4-upgrade-3.4.0-4.0.0.php" hash="39b55697d152529c4ba32ff6b9cffa48"/><file name="mysql4-upgrade-4.0.0-4.1.0.php" hash="fd8ffbebbbc4d04a2b9e1c90344ae6cc"/><file name="mysql4-upgrade-4.1.3-5.0.0.php" hash="c762c1263e3595162100ff48db52597b"/><file name="mysql4-upgrade-5.0.0-5.0.1.php" hash="a8603a251c822c67d0afde4b64d82da6"/><file name="mysql4-upgrade-5.0.4-5.1.0.php" hash="4640e2ea0587c2b3ead18cfa29b5fa04"/></dir></dir></dir><dir name="Mailcheck"><dir name="Helper"><file name="Data.php" hash="589b8909f08143ad44234f05911488df"/></dir><dir name="etc"><file name="config.xml" hash="841542418fa8e50cb53a3bde50ce38f4"/><file name="jstranslator.xml" hash="d0f175944d2c14badd2cade8d4a40585"/><file name="system.xml" hash="7d64665436e5eb104a1316c32338ec72"/></dir></dir></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="connector.xml" hash="16858a24b4e575254124058e6de09f49"/><file name="mailcheck.xml" hash="ff97a71e8124f8e6e55d951124addace"/></dir><dir name="template"><dir name="connector"><file name="additional-newsletter-pref.phtml" hash="db1251a0475c0947fd8e5854da4fd9ae"/><file name="basket.phtml" hash="856f6612aa23210f35cba8313edbe08b"/><file name="coupon.phtml" hash="aee5dd843d100228a51bd1b82ae62b59"/><dir name="customer"><file name="stats.phtml" hash="b26f6331faa6b3e662b14e5bde8c66d8"/></dir><file name="email_capture.phtml" hash="faf17eaeb824877f5998f1e3ab91504d"/><file name="email_capture_init.phtml" hash="f485003272b78400308d3af73574f4a7"/><dir name="feefo"><file name="reviews.phtml" hash="cd1dc08242588b1427534326eb7525ab"/><file name="score.phtml" hash="74d48f68f5d0ec044a8c067fa7f3c631"/></dir><dir name="product"><file name="list.phtml" hash="46dbd832182739db91a38aaa8c1af656"/><file name="nosto.phtml" hash="fe3d6efaca5d739374c29046c87c8a86"/><file name="price.phtml" hash="4d0674f2d03160617536338744330ff4"/></dir><file name="review.phtml" hash="6f1bac730b6309572ae30bee005f64b3"/><file name="roi_code.phtml" hash="108934652f443d0328a60893cad70742"/><file name="tracking_code.phtml" hash="1bbccb72db1a769ef8e14e0df2c9febd"/><file name="wishlist.phtml" hash="c52ad7ebc198972f716c40aa9f2f199e"/></dir><dir name="mailcheck"><file name="scripts.phtml" hash="adbf073bb2cb944c44b11d79bcca1eb5"/></dir><dir name="page"><file name="blank.phtml" hash="7a10ef1534ebe3b449cf051799e5a066"/></dir></dir></dir></dir></dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><dir name="connector"><file name="email.xml" hash="907e33ef044db87b0cbdadd480c5c43a"/></dir></dir><dir name="template"><dir name="connector"><file name="appcues.phtml" hash="11bb1143b5334bbcbf182d17a118f281"/><file name="beacon.phtml" hash="18d507b6041ac64b167d27a606fdcb83"/><dir name="customer"><file name="stats.phtml" hash="0b842d3ccaa1cc33098be44a7935f97f"/></dir><dir name="dashboard"><file name="accountbar.phtml" hash="e01c432f6690613fd2845769777830cf"/><file name="content.phtml" hash="9e5c843b6323ea80c410662fb4f39793"/><file name="logs.phtml" hash="0a06f9e56b4113e8face6ce325f4b0d1"/><file name="status.phtml" hash="bdbe1b08db2f733b4135782e7666c186"/><dir name="tabs"><dir name="analysis"><file name="index.phtml" hash="a9ef11d470dae139ad5243fc1bc91431"/><file name="rfm.phtml" hash="ba40514bd39c3c582eb1b141b71c6158"/></dir><file name="data.phtml" hash="bd7952625a3697cf4e5ef3cd0feb0a80"/><dir name="general"><file name="index.phtml" hash="68fa10c2aeef745d80b60317c9461a94"/></dir></dir><file name="tabs.phtml" hash="8df8befdd2f2300b177aacaca5d8a278"/></dir><dir name="system"><dir name="config"><file name="createdatafield.phtml" hash="a1a571fa0957d7fadf346d1b89c5a0b0"/></dir></dir></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Dotdigitalgroup_Email.xml" hash="8745c0b2eae08783b6203a613acdbcb8"/><file name="Dotdigitalgroup_Mailcheck.xml" hash="247272e2cc981e8b91af95962b0f0470"/></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="connector"><file name="config.css" hash="433bf71f40517a667ee9aba495f1746c"/><file name="dashboard.css" hash="08e2c6ae799757fd68a85781311f2b97"/></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="js"><dir name="mailcheck"><file name="init.js" hash="585e518d5d2dd2d0f50243f51a3c881b"/></dir></dir></dir></dir></dir></target><target name="magelocale"><dir name="en_US"><file name="Dotdigitalgroup_Email.csv" hash="67022e746e28d74b86509b70f336db4f"/></dir></target><target name="mageweb"><dir name="lib"><dir name="Raygun4php"><dir name="Exception"><file name="UnsatisfiedDependencyException.php" hash="32b7fff3854ba20107b89a100550dc41"/><file name="UnsupportedOperationException.php" hash="951d8a9fc2bdfae0acc432ea6dabffa4"/></dir><file name="README.md" hash="0aed7c6a52f358016b2c1b8f5e4e35ed"/><file name="Raygun4PhpException.php" hash="f6d4ef9f38a74578b115fbdf6e2fd3c5"/><file name="RaygunClient.php" hash="f9511057d3280a3a6d02b9b2a1517fd1"/><file name="RaygunClientMessage.php" hash="df9bd918ff13b50146b252208a5ce737"/><file name="RaygunEnvironmentMessage.php" hash="a7dff1914fcb7f6a61577b758edba47e"/><file name="RaygunExceptionMessage.php" hash="fcf7e3cbf9fbafb3ff4a6d56135a190d"/><file name="RaygunExceptionTraceLineMessage.php" hash="8aa87f7ddee8c00855737e85bbcb29cd"/><file name="RaygunIdentifier.php" hash="49461fa525594b15f3a350fd1da1c2a0"/><file name="RaygunMessage.php" hash="865eaa58577265fb52a85ee861102625"/><file name="RaygunMessageDetails.php" hash="2403453f658d7a943bd476e7fad186d7"/><file name="RaygunRequestMessage.php" hash="038703138dcd19aefbc9a7e44bd6f198"/><file name="Uuid.php" hash="9db740992b0dad17bf2047d13565b428"/><file name="cacert.crt" hash="47961e7ef15667c93cd99be01b51f00a"/></dir><dir name="connector"><dir name="feefo"><file name="feedback-no-th.xsl" hash="239c40764293a65b85d9f86479ced8b6"/><file name="feedback.xsl" hash="7167570192e48fdf57baa9c2cf56986b"/></dir></dir></dir><dir name="js"><dir name="connector"><dir name="procolor-1.0"><dir name="img"><file name="procolor_win_bars.png" hash="a8e41fdddd2253309e0b3e5154668c24"/><file name="procolor_win_bg.gif" hash="c0558cecd0e0ffb9ca89efe00f422261"/><file name="procolor_win_bg.png" hash="4e2a34cc64888fe264fcf6249dfe40da"/><file name="procolor_win_boxes.png" hash="e971c1ca87a0cb52d32408270d00a0da"/><file name="procolor_win_close.png" hash="20a8bb9433157962ab25d86d28d088a3"/><file name="procolor_win_drop.png" hash="9ddce741de330573f082ffe83005d691"/><file name="procolor_win_palette_raw.png" hash="ea98dde528e987029af6e24dbef53922"/><file name="procolor_win_sel_circle.gif" hash="3674b62db5a6eaa4dcedb0749dde4106"/><file name="procolor_win_sel_circle.png" hash="d76195d1777e9a14ebc1a242ab712037"/><file name="procolor_win_sel_rect.gif" hash="b74a72aaf1ea21d55b8751079f283537"/><file name="procolor_win_sel_rect.png" hash="5513589e2b6dc1a980a4e65a746005d0"/><file name="procolor_win_wheel_black.png" hash="62353005bb70bbfa8ffd700112d72582"/><file name="procolor_win_wheel_rgb.jpg" hash="afdd3852c3788a58794ddf1de9557fd8"/></dir><file name="procolor.compressed.js" hash="79e463efad21212e4096d40b9e17d96c"/><file name="procolor.js" hash="93ec3cb6a0356cce4cf8e51006dfaeec"/></dir><file name="selector.js" hash="5dc1900967679a41c70ed5f1755240e2"/></dir><dir name="mailcheck"><file name="magentoMailcheck.js" hash="b4eaabac0b6e8753e09ab6ea449e6519"/><file name="mailcheck.min.js" hash="25966edf6e585822063b48dd34bcee9b"/></dir></dir></target></contents>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
20 |
<compatible/>
|
21 |
<dependencies><required><php><min>1.5.2</min><max>6.0.0</max></php><extension><name>curl</name><min>7.15.1</min><max>7.30.0</max></extension></required></dependencies>
|
22 |
</package>
|