Version Notes
For installation and configuration instructions, as well as a full list of new features and known issues, please review the Implementation Guide.
Download this release
Release Info
Developer | Chris Geiss |
Extension | Bronto_Extension |
Version | 2.0.2 |
Comparing to | |
See all releases |
Code changes from version 2.0.1 to 2.0.2
- app/code/community/Bronto/Common/Block/Adminhtml/System/Config/About.php +1 -1
- app/code/community/Bronto/Common/Helper/Data.php +22 -0
- app/code/community/Bronto/Common/etc/config.xml +1 -1
- app/code/community/Bronto/Customer/Block/Adminhtml/System/Config/Cron.php +7 -23
- app/code/community/Bronto/Customer/Helper/Data.php +19 -0
- app/code/community/Bronto/Customer/Model/Mysql4/Queue.php +22 -0
- app/code/community/Bronto/Customer/Model/Mysql4/Queue/Collection.php +88 -0
- app/code/community/Bronto/Customer/Model/Observer.php +58 -43
- app/code/community/Bronto/Customer/Model/Queue.php +10 -0
- app/code/community/Bronto/Customer/Model/Resource/Customer/Collection.php +1 -1
- app/code/community/Bronto/Customer/Test/Config/Config.php +15 -4
- app/code/community/Bronto/Customer/controllers/Adminhtml/CustomerController.php +16 -31
- app/code/community/Bronto/Customer/etc/config.xml +12 -11
- app/code/community/Bronto/Customer/sql/bronto_customer_setup/mysql4-upgrade-1.0.0-1.0.1.php +46 -0
- app/code/community/Bronto/Newsletter/Block/Adminhtml/System/Config/Cron.php +1 -1
- app/code/community/Bronto/Newsletter/Block/Adminhtml/Widget/Button/Reset.php +23 -0
- app/code/community/Bronto/Newsletter/Block/Adminhtml/Widget/Button/Run.php +6 -1
- app/code/community/Bronto/Newsletter/Model/Mysql4/Queue.php +12 -6
- app/code/community/Bronto/Newsletter/Model/Mysql4/Queue/Collection.php +5 -6
- app/code/community/Bronto/Newsletter/Model/Observer.php +194 -25
- app/code/community/Bronto/Newsletter/Model/Queue.php +22 -7
- app/code/community/Bronto/Newsletter/Model/System/Config/Backend/Cron.php +11 -0
- app/code/community/Bronto/Newsletter/Test/Config/Config.php +2 -0
- app/code/community/Bronto/Newsletter/controllers/Adminhtml/NewsletterController.php +14 -33
- app/code/community/Bronto/Newsletter/etc/config.xml +13 -15
- app/code/community/Bronto/Newsletter/etc/system.xml +3 -2
- app/code/community/Bronto/Newsletter/sql/bronto_newsletter_setup/mysql4-install-1.0.0.php +1 -1
- app/code/community/Bronto/Newsletter/sql/bronto_newsletter_setup/mysql4-install-1.4.0.php +1 -1
- app/code/community/Bronto/Newsletter/sql/bronto_newsletter_setup/mysql4-upgrade-1.4.0-1.4.1.php +1 -1
- app/code/community/Bronto/Newsletter/sql/bronto_newsletter_setup/mysql4-upgrade-1.4.1-1.4.2.php +21 -0
- app/code/community/Bronto/Newsletter/sql/bronto_newsletter_setup/mysql4-upgrade-1.4.2-1.4.3.php +21 -0
- app/code/community/Bronto/Newsletter/sql/bronto_newsletter_setup/mysql4-upgrade-1.4.3-1.4.4.php +25 -0
- app/code/community/Bronto/Order/Block/Adminhtml/Sales/Order/View/Tab/Info.php +4 -2
- app/code/community/Bronto/Order/Block/Adminhtml/System/Config/Cron.php +8 -16
- app/code/community/Bronto/Order/Model/Mysql4/Queue.php +22 -0
- app/code/community/Bronto/Order/Model/Mysql4/Queue/Collection.php +88 -0
- app/code/community/Bronto/Order/Model/Observer.php +29 -23
- app/code/community/Bronto/Order/Model/Order/Observer.php +32 -3
- app/code/community/Bronto/Order/Model/Queue.php +28 -0
- app/code/community/Bronto/Order/Model/Quote/Observer.php +5 -1
- app/code/community/Bronto/Order/Model/Resource/Setup.php +53 -0
- app/code/community/Bronto/Order/Test/Config/Config.php +3 -0
- app/code/community/Bronto/Order/controllers/Adminhtml/OrderController.php +13 -42
- app/code/community/Bronto/Order/etc/config.xml +17 -11
- app/code/community/Bronto/Order/sql/bronto_order_setup/mysql4-upgrade-1.1.5-1.1.6.php +51 -0
- app/code/community/Bronto/Reminder/Test/Config/Config.php +1 -2
- app/code/community/Bronto/Reminder/etc/config.xml +1 -2
- app/code/community/Bronto/Roundtrip/Test/Model/Roundtrip.php +7 -0
- app/design/frontend/base/default/template/bronto/newsletter/js.phtml +11 -2
- package.xml +4 -4
app/code/community/Bronto/Common/Block/Adminhtml/System/Config/About.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
/**
|
4 |
* @package Bronto\Common
|
5 |
* @copyright 2011-2013 Bronto Software, Inc.
|
6 |
-
* @version 2.0.
|
7 |
*/
|
8 |
class Bronto_Common_Block_Adminhtml_System_Config_About extends Mage_Adminhtml_Block_System_Config_Form_Fieldset
|
9 |
{
|
3 |
/**
|
4 |
* @package Bronto\Common
|
5 |
* @copyright 2011-2013 Bronto Software, Inc.
|
6 |
+
* @version 2.0.2
|
7 |
*/
|
8 |
class Bronto_Common_Block_Adminhtml_System_Config_About extends Mage_Adminhtml_Block_System_Config_Form_Fieldset
|
9 |
{
|
app/code/community/Bronto/Common/Helper/Data.php
CHANGED
@@ -437,4 +437,26 @@ class Bronto_Common_Helper_Data extends Mage_Core_Helper_Abstract
|
|
437 |
}
|
438 |
return Mage::log($message, $level, $file, true);
|
439 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
440 |
}
|
437 |
}
|
438 |
return Mage::log($message, $level, $file, true);
|
439 |
}
|
440 |
+
|
441 |
+
/**
|
442 |
+
* Get Array of Store Ids based on current store/website/group
|
443 |
+
* @return boolean|array
|
444 |
+
*/
|
445 |
+
public function getStoreIds()
|
446 |
+
{
|
447 |
+
if ($storeCode = Mage::app()->getRequest()->getParam('store')) {
|
448 |
+
$store = Mage::app()->getStore($storeCode);
|
449 |
+
$storeIds[] = $store->getId();
|
450 |
+
} elseif ($websiteCode = Mage::app()->getRequest()->getParam('website')){
|
451 |
+
$website = Mage::app()->getWebsite($websiteCode);
|
452 |
+
$storeIds = $website->getStoreIds();
|
453 |
+
} elseif ($groupCode = Mage::app()->getRequest()->getParam('group')){
|
454 |
+
$website = Mage::app()->getGroup($groupCode)->getWebsite();
|
455 |
+
$storeIds = $website->getStoreIds();
|
456 |
+
} else {
|
457 |
+
$storeIds = false;
|
458 |
+
}
|
459 |
+
|
460 |
+
return $storeIds;
|
461 |
+
}
|
462 |
}
|
app/code/community/Bronto/Common/etc/config.xml
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Bronto_Common>
|
5 |
-
<version>2.0.
|
6 |
</Bronto_Common>
|
7 |
</modules>
|
8 |
<global>
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Bronto_Common>
|
5 |
+
<version>2.0.2</version>
|
6 |
</Bronto_Common>
|
7 |
</modules>
|
8 |
<global>
|
app/code/community/Bronto/Customer/Block/Adminhtml/System/Config/Cron.php
CHANGED
@@ -36,19 +36,9 @@ class Bronto_Customer_Block_Adminhtml_System_Config_Cron extends Bronto_Common_B
|
|
36 |
*/
|
37 |
protected function getProgressBarPending()
|
38 |
{
|
39 |
-
$
|
40 |
->addBrontoNotImportedFilter()
|
41 |
-
->
|
42 |
-
->getAllIds();
|
43 |
-
|
44 |
-
// This will find all customers who are missing the bronto_imported attribute on their entity
|
45 |
-
$notImportedCustomersWithoutAttribute = Mage::getModel('bronto_customer/resource_customer_collection')
|
46 |
-
->addBrontoMissingImportedAttribute()
|
47 |
-
->orderByUpdatedAt()
|
48 |
-
->getAllIds();
|
49 |
-
|
50 |
-
$allCustomerIds = array_merge($notImportedCustomersWithAttribute, $notImportedCustomersWithoutAttribute);
|
51 |
-
return count($allCustomerIds);
|
52 |
}
|
53 |
|
54 |
/**
|
@@ -56,17 +46,11 @@ class Bronto_Customer_Block_Adminhtml_System_Config_Cron extends Bronto_Common_B
|
|
56 |
*/
|
57 |
protected function getCustomerResourceCollection()
|
58 |
{
|
59 |
-
$collection = Mage::getModel('bronto_customer/
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
$collection->addStoreFilter($
|
64 |
-
} else if ($websiteCode = Mage::app()->getRequest()->getParam('website')){
|
65 |
-
$website = Mage::app()->getWebsite($websiteCode);
|
66 |
-
$collection->addStoreFilter($website->getStoreids());
|
67 |
-
} else if ($groupCode = Mage::app()->getRequest()->getParam('group')){
|
68 |
-
$website = Mage::app()->getGroup($groupCode)->getWebsite();
|
69 |
-
$collection->addStoreFilter($website->getStoreids());
|
70 |
}
|
71 |
|
72 |
return $collection;
|
36 |
*/
|
37 |
protected function getProgressBarPending()
|
38 |
{
|
39 |
+
return $this->getCustomerResourceCollection()
|
40 |
->addBrontoNotImportedFilter()
|
41 |
+
->getSize();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
42 |
}
|
43 |
|
44 |
/**
|
46 |
*/
|
47 |
protected function getCustomerResourceCollection()
|
48 |
{
|
49 |
+
$collection = Mage::getModel('bronto_customer/queue')->getCollection();
|
50 |
+
$storeIds = Mage::helper('bronto_customer')->getStoreIds();
|
51 |
+
|
52 |
+
if ($storeIds) {
|
53 |
+
$collection->addStoreFilter($storeIds);
|
|
|
|
|
|
|
|
|
|
|
|
|
54 |
}
|
55 |
|
56 |
return $collection;
|
app/code/community/Bronto/Customer/Helper/Data.php
CHANGED
@@ -60,4 +60,23 @@ class Bronto_Customer_Helper_Data extends Bronto_Common_Helper_Data implements B
|
|
60 |
{
|
61 |
return 'bronto_customer';
|
62 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
63 |
}
|
60 |
{
|
61 |
return 'bronto_customer';
|
62 |
}
|
63 |
+
|
64 |
+
/**
|
65 |
+
* Get Human Readable label for attribute value option
|
66 |
+
* @param Mage_Eav_Model_Entity_Attribute $attribute
|
67 |
+
* @param int|string $attributeValueId
|
68 |
+
* @return string|boolean
|
69 |
+
*/
|
70 |
+
public function getAttributeAdminLabel($attribute, $attributeValueId) {
|
71 |
+
$_collection = Mage::getResourceModel('eav/entity_attribute_option_collection')
|
72 |
+
->setStoreFilter(0)
|
73 |
+
->setAttributeFilter($attribute->getId())
|
74 |
+
->load();
|
75 |
+
|
76 |
+
foreach( $_collection->toOptionArray() as $_cur_option ) {
|
77 |
+
if ($_cur_option['value'] == $attributeValueId){ return $_cur_option['label']; }
|
78 |
+
|
79 |
+
}
|
80 |
+
return false;
|
81 |
+
}
|
82 |
}
|
app/code/community/Bronto/Customer/Model/Mysql4/Queue.php
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Bronto_Customer_Model_Mysql4_Queue extends Mage_Core_Model_Mysql4_Abstract
|
4 |
+
{
|
5 |
+
/**
|
6 |
+
* Primary key auto increment flag
|
7 |
+
*
|
8 |
+
* @var bool
|
9 |
+
*/
|
10 |
+
protected $_isPkAutoIncrement = false;
|
11 |
+
|
12 |
+
/**
|
13 |
+
* Initialize Model
|
14 |
+
*
|
15 |
+
* @return void
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public function _construct()
|
19 |
+
{
|
20 |
+
$this->_init('bronto_customer/queue', 'customer_id');
|
21 |
+
}
|
22 |
+
}
|
app/code/community/Bronto/Customer/Model/Mysql4/Queue/Collection.php
ADDED
@@ -0,0 +1,88 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Bronto_Customer_Model_Mysql4_Queue_Collection
|
4 |
+
extends Mage_Core_Model_Mysql4_Collection_Abstract
|
5 |
+
{
|
6 |
+
/**
|
7 |
+
* Initialize Model
|
8 |
+
*
|
9 |
+
* @return void
|
10 |
+
* @access public
|
11 |
+
*/
|
12 |
+
public function _construct() {
|
13 |
+
parent::_construct();
|
14 |
+
$this->_init('bronto_customer/queue');
|
15 |
+
}
|
16 |
+
|
17 |
+
/**
|
18 |
+
* @return Bronto_Order_Model_Mysql4_Queue_Collection
|
19 |
+
*/
|
20 |
+
public function addBrontoImportedFilter()
|
21 |
+
{
|
22 |
+
$this->addFieldToFilter('bronto_imported', array('notnull' => true));
|
23 |
+
return $this;
|
24 |
+
}
|
25 |
+
|
26 |
+
/**
|
27 |
+
* @return Bronto_Order_Model_Mysql4_Queue_Collection
|
28 |
+
*/
|
29 |
+
public function addBrontoNotImportedFilter()
|
30 |
+
{
|
31 |
+
$this->addFieldToFilter('bronto_imported', array('null' => true));
|
32 |
+
return $this;
|
33 |
+
}
|
34 |
+
|
35 |
+
/**
|
36 |
+
* @param mixed $storeIds (null, int|string, array, array may contain null)
|
37 |
+
* @return Bronto_Order_Model_Mysql4_Queue_Collection
|
38 |
+
*/
|
39 |
+
public function addStoreFilter($storeIds)
|
40 |
+
{
|
41 |
+
$nullCheck = false;
|
42 |
+
|
43 |
+
if (!is_array($storeIds)) {
|
44 |
+
$storeIds = array($storeIds);
|
45 |
+
}
|
46 |
+
|
47 |
+
$storeIds = array_unique($storeIds);
|
48 |
+
|
49 |
+
if ($index = array_search(null, $storeIds)) {
|
50 |
+
unset($storeIds[$index]);
|
51 |
+
$nullCheck = true;
|
52 |
+
}
|
53 |
+
|
54 |
+
$storeIds[0] = ($storeIds[0] == '') ? 0 : $storeIds[0];
|
55 |
+
|
56 |
+
if ($nullCheck) {
|
57 |
+
$this->getSelect()->where('store_id IN(?) OR store_id IS NULL', $storeIds);
|
58 |
+
} else {
|
59 |
+
$this->getSelect()->where('store_id IN(?)', $storeIds);
|
60 |
+
}
|
61 |
+
|
62 |
+
return $this;
|
63 |
+
}
|
64 |
+
|
65 |
+
/**
|
66 |
+
* Sort order by order created_at date
|
67 |
+
*
|
68 |
+
* @param string $dir
|
69 |
+
* @return Bronto_Order_Model_Mysql4_Queue_Collection
|
70 |
+
*/
|
71 |
+
public function orderByCreatedAt($dir = self::SORT_ORDER_DESC)
|
72 |
+
{
|
73 |
+
$this->setOrder('created_at', $dir);
|
74 |
+
return $this;
|
75 |
+
}
|
76 |
+
|
77 |
+
/**
|
78 |
+
* Sort order by order updated_at date
|
79 |
+
*
|
80 |
+
* @param string $dir
|
81 |
+
* @return Bronto_Order_Model_Mysql4_Queue_Collection
|
82 |
+
*/
|
83 |
+
public function orderByUpdatedAt($dir = self::SORT_ORDER_DESC)
|
84 |
+
{
|
85 |
+
$this->setOrder('updated_at', $dir);
|
86 |
+
return $this;
|
87 |
+
}
|
88 |
+
}
|
app/code/community/Bronto/Customer/Model/Observer.php
CHANGED
@@ -46,27 +46,17 @@ class Bronto_Customer_Model_Observer extends Mage_Core_Model_Abstract
|
|
46 |
Mage::helper('bronto_customer')->writeDebug(' Limit empty. Skipping...');
|
47 |
return false;
|
48 |
}
|
49 |
-
|
50 |
-
//
|
51 |
-
|
52 |
-
|
53 |
-
$notImportedCustomersWithAttribute = Mage::getModel('bronto_customer/resource_customer_collection')
|
54 |
-
->addStoreFilter($storeId)
|
55 |
->addBrontoNotImportedFilter()
|
56 |
->orderByUpdatedAt()
|
57 |
-
->
|
58 |
-
|
59 |
-
// This will find all customers who are missing the bronto_imported attribute on their entity
|
60 |
-
$notImportedCustomersWithoutAttribute = Mage::getModel('bronto_customer/resource_customer_collection')
|
61 |
->addStoreFilter($storeId)
|
62 |
-
->
|
63 |
-
->orderByUpdatedAt()
|
64 |
-
->getAllIds();
|
65 |
|
66 |
-
|
67 |
-
$customerIds = array_slice($allCustomerIds, 0, $limit);
|
68 |
-
|
69 |
-
if (empty($customerIds)) {
|
70 |
Mage::helper('bronto_customer')->writeVerboseDebug(' No Customers to process. Skipping...');
|
71 |
return $result;
|
72 |
}
|
@@ -76,21 +66,35 @@ class Bronto_Customer_Model_Observer extends Mage_Core_Model_Abstract
|
|
76 |
$customerCache = array();
|
77 |
|
78 |
// For each Customer...
|
79 |
-
foreach ($
|
|
|
80 |
if ($customer = Mage::getModel('customer/customer')->load($customerId) /* @var $customer Mage_Customer_Model_Customer */) {
|
81 |
Mage::helper('bronto_customer')->writeDebug(" Processing Customer ID: {$customerId}");
|
82 |
$customerCache[] = $customerId;
|
83 |
-
|
84 |
/* @var $brontoContact Bronto_Api_Contact_Row */
|
85 |
$brontoContact = $contactObject->createRow();
|
86 |
$brontoContact->email = $customer->getEmail();
|
87 |
-
|
88 |
// For each Customer attribute
|
89 |
foreach ($customerAttributes as $attributeId => $attribute) {
|
90 |
$_attributeCode = $attribute->getAttributeCode();
|
91 |
$_fieldName = Mage::helper('bronto_customer')->getCustomerAttributeField($_attributeCode, $store);
|
92 |
-
|
93 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
94 |
}
|
95 |
}
|
96 |
|
@@ -100,19 +104,20 @@ class Bronto_Customer_Model_Observer extends Mage_Core_Model_Abstract
|
|
100 |
foreach ($addressAttributes as $attributeId => $attribute) {
|
101 |
$_attributeCode = $attribute->getAttributeCode();
|
102 |
$_fieldName = Mage::helper('bronto_customer')->getAddressAttributeField($_attributeCode, $store);
|
103 |
-
|
|
|
104 |
$brontoContact->setField($_fieldName, $primaryAddress->getData($_attributeCode));
|
105 |
}
|
106 |
}
|
107 |
}
|
108 |
-
|
109 |
$brontoContact->persist();
|
110 |
|
111 |
try {
|
112 |
// Mark Customer as imported
|
113 |
-
$
|
114 |
-
$
|
115 |
-
|
116 |
// Flush every 10 Customers
|
117 |
if ($result['total'] % 100 === 0) {
|
118 |
$result = $this->flushCustomers($contactObject, $customerCache, $result);
|
@@ -122,8 +127,8 @@ class Bronto_Customer_Model_Observer extends Mage_Core_Model_Abstract
|
|
122 |
Mage::helper('bronto_customer')->writeError($e);
|
123 |
|
124 |
// Mark Customer as *not* imported
|
125 |
-
$
|
126 |
-
$
|
127 |
|
128 |
$result['error']++;
|
129 |
}
|
@@ -133,13 +138,13 @@ class Bronto_Customer_Model_Observer extends Mage_Core_Model_Abstract
|
|
133 |
}
|
134 |
|
135 |
// Final flush (for any we miss)
|
136 |
-
$
|
137 |
|
138 |
-
Mage::helper('bronto_customer')->writeDebug(' Success: ' . $
|
139 |
-
Mage::helper('bronto_customer')->writeDebug(' Error: ' . $
|
140 |
-
Mage::helper('bronto_customer')->writeDebug(' Total: ' . $
|
141 |
|
142 |
-
return $
|
143 |
}
|
144 |
|
145 |
// }}}
|
@@ -165,10 +170,14 @@ class Bronto_Customer_Model_Observer extends Mage_Core_Model_Abstract
|
|
165 |
$errorCode = $flushResultRow->getErrorCode();
|
166 |
$errorMessage = $flushResultRow->getErrorMessage();
|
167 |
if (isset($customerCache[$i])) {
|
168 |
-
//
|
169 |
$customer = Mage::getModel('customer/customer')->load($customerCache[$i]);
|
170 |
-
|
171 |
-
|
|
|
|
|
|
|
|
|
172 |
Mage::helper('bronto_customer')->writeError("[{$errorCode}] {$errorMessage} ({$customer->getIncrementId})");
|
173 |
} else {
|
174 |
Mage::helper('bronto_customer')->writeError("[{$errorCode}] {$errorMessage}");
|
@@ -197,7 +206,7 @@ class Bronto_Customer_Model_Observer extends Mage_Core_Model_Abstract
|
|
197 |
);
|
198 |
|
199 |
$stores = Mage::app()->getStores();
|
200 |
-
foreach ($stores as $
|
201 |
$storeResult = $this->processCustomersForStore($_store);
|
202 |
$result['total'] += $storeResult['total'];
|
203 |
$result['success'] += $storeResult['success'];
|
@@ -217,11 +226,17 @@ class Bronto_Customer_Model_Observer extends Mage_Core_Model_Abstract
|
|
217 |
{
|
218 |
/* @var $customer Mage_Customer_Model_Customer */
|
219 |
$customer = $observer->getCustomer();
|
220 |
-
|
221 |
-
|
222 |
-
)
|
223 |
-
|
224 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
225 |
}
|
226 |
|
227 |
// }}}
|
46 |
Mage::helper('bronto_customer')->writeDebug(' Limit empty. Skipping...');
|
47 |
return false;
|
48 |
}
|
49 |
+
|
50 |
+
// Get all customers in queue who haven't been imported into bronto
|
51 |
+
$customerRows = Mage::getModel('bronto_customer/queue')
|
52 |
+
->getCollection()
|
|
|
|
|
53 |
->addBrontoNotImportedFilter()
|
54 |
->orderByUpdatedAt()
|
55 |
+
->setPageSize($limit)
|
|
|
|
|
|
|
56 |
->addStoreFilter($storeId)
|
57 |
+
->getItems();
|
|
|
|
|
58 |
|
59 |
+
if (empty($customerRows)) {
|
|
|
|
|
|
|
60 |
Mage::helper('bronto_customer')->writeVerboseDebug(' No Customers to process. Skipping...');
|
61 |
return $result;
|
62 |
}
|
66 |
$customerCache = array();
|
67 |
|
68 |
// For each Customer...
|
69 |
+
foreach ($customerRows as $customerRow) {
|
70 |
+
$customerId = $customerRow->getCustomerId();
|
71 |
if ($customer = Mage::getModel('customer/customer')->load($customerId) /* @var $customer Mage_Customer_Model_Customer */) {
|
72 |
Mage::helper('bronto_customer')->writeDebug(" Processing Customer ID: {$customerId}");
|
73 |
$customerCache[] = $customerId;
|
74 |
+
|
75 |
/* @var $brontoContact Bronto_Api_Contact_Row */
|
76 |
$brontoContact = $contactObject->createRow();
|
77 |
$brontoContact->email = $customer->getEmail();
|
78 |
+
|
79 |
// For each Customer attribute
|
80 |
foreach ($customerAttributes as $attributeId => $attribute) {
|
81 |
$_attributeCode = $attribute->getAttributeCode();
|
82 |
$_fieldName = Mage::helper('bronto_customer')->getCustomerAttributeField($_attributeCode, $store);
|
83 |
+
|
84 |
+
if (!empty($_fieldName) && $_fieldName != '_none_') {
|
85 |
+
switch ($_attributeCode) {
|
86 |
+
case 'gender':
|
87 |
+
$attrValue = Mage::helper('bronto_customer')->getAttributeAdminLabel($attribute, $customer->getData($_attributeCode));
|
88 |
+
break;
|
89 |
+
case 'dob':
|
90 |
+
$attrValue = Mage::getSingleton('core/date')->date('Y-m-d', $customer->getData($_attributeCode));
|
91 |
+
break;
|
92 |
+
default:
|
93 |
+
$attrValue = $customer->getData($_attributeCode);
|
94 |
+
break;
|
95 |
+
}
|
96 |
+
|
97 |
+
$brontoContact->setField($_fieldName, $attrValue);
|
98 |
}
|
99 |
}
|
100 |
|
104 |
foreach ($addressAttributes as $attributeId => $attribute) {
|
105 |
$_attributeCode = $attribute->getAttributeCode();
|
106 |
$_fieldName = Mage::helper('bronto_customer')->getAddressAttributeField($_attributeCode, $store);
|
107 |
+
|
108 |
+
if (!empty($_fieldName) && $_fieldName != '_none_') {
|
109 |
$brontoContact->setField($_fieldName, $primaryAddress->getData($_attributeCode));
|
110 |
}
|
111 |
}
|
112 |
}
|
113 |
+
|
114 |
$brontoContact->persist();
|
115 |
|
116 |
try {
|
117 |
// Mark Customer as imported
|
118 |
+
$customerRow->setBrontoImported(Mage::getSingleton('core/date')->gmtDate());
|
119 |
+
$customerRow->save();
|
120 |
+
|
121 |
// Flush every 10 Customers
|
122 |
if ($result['total'] % 100 === 0) {
|
123 |
$result = $this->flushCustomers($contactObject, $customerCache, $result);
|
127 |
Mage::helper('bronto_customer')->writeError($e);
|
128 |
|
129 |
// Mark Customer as *not* imported
|
130 |
+
$customerRow->setBrontoImported(null);
|
131 |
+
$customerRow->save();
|
132 |
|
133 |
$result['error']++;
|
134 |
}
|
138 |
}
|
139 |
|
140 |
// Final flush (for any we miss)
|
141 |
+
$results = $this->flushCustomers($contactObject, $customerCache, $result);
|
142 |
|
143 |
+
Mage::helper('bronto_customer')->writeDebug(' Success: ' . $results['success']);
|
144 |
+
Mage::helper('bronto_customer')->writeDebug(' Error: ' . $results['error']);
|
145 |
+
Mage::helper('bronto_customer')->writeDebug(' Total: ' . $results['total']);
|
146 |
|
147 |
+
return $results;
|
148 |
}
|
149 |
|
150 |
// }}}
|
170 |
$errorCode = $flushResultRow->getErrorCode();
|
171 |
$errorMessage = $flushResultRow->getErrorMessage();
|
172 |
if (isset($customerCache[$i])) {
|
173 |
+
// Get Customer Object
|
174 |
$customer = Mage::getModel('customer/customer')->load($customerCache[$i]);
|
175 |
+
|
176 |
+
// Reset Bronto Import status
|
177 |
+
$customerRow = Mage::getModel('bronto_customer/queue')->load($customerCache[$i]);
|
178 |
+
$customerRow->setBrontoImported(null);
|
179 |
+
$customerRow->save();
|
180 |
+
Mage::log($customerRow->getId());
|
181 |
Mage::helper('bronto_customer')->writeError("[{$errorCode}] {$errorMessage} ({$customer->getIncrementId})");
|
182 |
} else {
|
183 |
Mage::helper('bronto_customer')->writeError("[{$errorCode}] {$errorMessage}");
|
206 |
);
|
207 |
|
208 |
$stores = Mage::app()->getStores();
|
209 |
+
foreach ($stores as $_store) {
|
210 |
$storeResult = $this->processCustomersForStore($_store);
|
211 |
$result['total'] += $storeResult['total'];
|
212 |
$result['success'] += $storeResult['success'];
|
226 |
{
|
227 |
/* @var $customer Mage_Customer_Model_Customer */
|
228 |
$customer = $observer->getCustomer();
|
229 |
+
|
230 |
+
/* @var $contactQueue Bronto_Customer_Model_Queue */
|
231 |
+
$customerRow = Mage::getModel('bronto_customer/queue');
|
232 |
+
|
233 |
+
// Save Information to Queue table
|
234 |
+
$customerRow->setId($customer->getId())
|
235 |
+
->setStoreId($customer->getStoreId())
|
236 |
+
->setBrontoImported(null)
|
237 |
+
->setCreatedAt($customer->getCreatedAt())
|
238 |
+
->setUpdatedAt(Mage::getSingleton('core/date')->gmtDate())
|
239 |
+
->save();
|
240 |
}
|
241 |
|
242 |
// }}}
|
app/code/community/Bronto/Customer/Model/Queue.php
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Bronto_Customer_Model_Queue extends Mage_Core_Model_Abstract
|
4 |
+
{
|
5 |
+
public function _construct()
|
6 |
+
{
|
7 |
+
parent::_construct();
|
8 |
+
$this->_init('bronto_customer/queue');
|
9 |
+
}
|
10 |
+
}
|
app/code/community/Bronto/Customer/Model/Resource/Customer/Collection.php
CHANGED
@@ -22,7 +22,7 @@ class Bronto_Customer_Model_Resource_Customer_Collection
|
|
22 |
*/
|
23 |
public function addBrontoNotImportedFilter()
|
24 |
{
|
25 |
-
$this->
|
26 |
return $this;
|
27 |
}
|
28 |
|
22 |
*/
|
23 |
public function addBrontoNotImportedFilter()
|
24 |
{
|
25 |
+
$this->addFieldToFilter('bronto_imported', array('null' => true));
|
26 |
return $this;
|
27 |
}
|
28 |
|
app/code/community/Bronto/Customer/Test/Config/Config.php
CHANGED
@@ -14,17 +14,28 @@ class Bronto_Customer_Test_Config_Config
|
|
14 |
|
15 |
public function modelsProvider()
|
16 |
{
|
17 |
-
return array(
|
|
|
|
|
|
|
|
|
18 |
}
|
19 |
|
20 |
public function resourceModelProvider()
|
21 |
{
|
22 |
-
return array(
|
|
|
|
|
|
|
|
|
|
|
23 |
}
|
24 |
|
25 |
public function observersProvider()
|
26 |
{
|
27 |
-
return array(
|
|
|
|
|
28 |
}
|
29 |
|
30 |
public function helpersProvider()
|
@@ -48,7 +59,7 @@ class Bronto_Customer_Test_Config_Config
|
|
48 |
*/
|
49 |
public function assertCustomerModuleVersionGreaterThanOrEquals()
|
50 |
{
|
51 |
-
$this->assertModuleVersionGreaterThanOrEquals('1.0.
|
52 |
}
|
53 |
|
54 |
|
14 |
|
15 |
public function modelsProvider()
|
16 |
{
|
17 |
+
return array(
|
18 |
+
array('bronto_customer/system_config_backend_cron', 'Bronto_Customer_Model_System_Config_Backend_Cron'),
|
19 |
+
array('bronto_customer/system_config_backend_newfield', 'Bronto_Customer_Model_System_Config_Backend_Newfield'),
|
20 |
+
array('bronto_customer/queue', 'Bronto_Customer_Model_Queue'),
|
21 |
+
);
|
22 |
}
|
23 |
|
24 |
public function resourceModelProvider()
|
25 |
{
|
26 |
+
return array(
|
27 |
+
array('bronto_customer_resource/setup', 'Bronto_Customer_Model_Resource_Setup'),
|
28 |
+
array('bronto_customer_resource/customer_collection', 'Bronto_Customer_Model_Resource_Customer_Collection'),
|
29 |
+
array('bronto_customer_mysql4/queue', 'Bronto_Customer_Model_Mysql4_Queue'),
|
30 |
+
array('bronto_customer_mysql4/queue_collection', 'Bronto_Customer_Model_Mysql4_Queue_Collection'),
|
31 |
+
);
|
32 |
}
|
33 |
|
34 |
public function observersProvider()
|
35 |
{
|
36 |
+
return array(
|
37 |
+
array('global', 'customer_save_after', 'bronto_customer/observer', 'markCustomerForReimport'),
|
38 |
+
);
|
39 |
}
|
40 |
|
41 |
public function helpersProvider()
|
59 |
*/
|
60 |
public function assertCustomerModuleVersionGreaterThanOrEquals()
|
61 |
{
|
62 |
+
$this->assertModuleVersionGreaterThanOrEquals('1.0.1');
|
63 |
}
|
64 |
|
65 |
|
app/code/community/Bronto/Customer/controllers/Adminhtml/CustomerController.php
CHANGED
@@ -14,21 +14,9 @@ class Bronto_Customer_Adminhtml_CustomerController extends Mage_Adminhtml_Contro
|
|
14 |
try {
|
15 |
$result = array('total' => 0, 'success' => 0, 'error' => 0);
|
16 |
$model = Mage::getModel('bronto_customer/observer');
|
|
|
17 |
|
18 |
-
if ($
|
19 |
-
$store = Mage::app()->getStore($storeCode);
|
20 |
-
$storeIds[] = $store->getId();
|
21 |
-
} else if ($websiteCode = Mage::app()->getRequest()->getParam('website')){
|
22 |
-
$website = Mage::app()->getWebsite($websiteCode);
|
23 |
-
$storeIds = $website->getStoreIds();
|
24 |
-
} else if ($groupCode = Mage::app()->getRequest()->getParam('group')){
|
25 |
-
$website = Mage::app()->getGroup($groupCode)->getWebsite();
|
26 |
-
$storeIds = $website->getStoreIds();
|
27 |
-
} else {
|
28 |
-
$storeIds = false;
|
29 |
-
}
|
30 |
-
|
31 |
-
if ($storeIds) {
|
32 |
foreach ($storeIds as $storeId) {
|
33 |
$storeResult = $model->processCustomersForStore($storeId);
|
34 |
$result['total'] += $storeResult['total'];
|
@@ -58,25 +46,22 @@ class Bronto_Customer_Adminhtml_CustomerController extends Mage_Adminhtml_Contro
|
|
58 |
*/
|
59 |
public function resetAction()
|
60 |
{
|
61 |
-
$
|
62 |
-
$
|
63 |
-
|
|
|
64 |
|
65 |
-
if ($
|
66 |
-
$
|
67 |
-
$storeIds[] = $store->getId();
|
68 |
-
} else if ($websiteCode = Mage::app()->getRequest()->getParam('website')){
|
69 |
-
$website = Mage::app()->getWebsite($websiteCode);
|
70 |
-
$storeIds = $website->getStoreIds();
|
71 |
-
} else if ($groupCode = Mage::app()->getRequest()->getParam('group')){
|
72 |
-
$website = Mage::app()->getGroup($groupCode)->getWebsite();
|
73 |
-
$storeIds = $website->getStoreIds();
|
74 |
-
} else {
|
75 |
-
$storeIds[] = null;
|
76 |
}
|
77 |
-
|
78 |
-
foreach ($
|
79 |
-
|
|
|
|
|
|
|
|
|
|
|
80 |
}
|
81 |
|
82 |
$this->_redirect('*/system_config/edit', array('section' => 'bronto_customer'));
|
14 |
try {
|
15 |
$result = array('total' => 0, 'success' => 0, 'error' => 0);
|
16 |
$model = Mage::getModel('bronto_customer/observer');
|
17 |
+
$helper = Mage::helper('bronto_customer');
|
18 |
|
19 |
+
if ($storeIds = $helper->getStoreIds()) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
20 |
foreach ($storeIds as $storeId) {
|
21 |
$storeResult = $model->processCustomersForStore($storeId);
|
22 |
$result['total'] += $storeResult['total'];
|
46 |
*/
|
47 |
public function resetAction()
|
48 |
{
|
49 |
+
$helper = Mage::helper('bronto_customer');
|
50 |
+
$storeIds = $helper->getStoreIds();
|
51 |
+
|
52 |
+
$collection = Mage::getModel('bronto_customer/queue')->getCollection();
|
53 |
|
54 |
+
if ($storeIds) {
|
55 |
+
$collection->addStoreFilter($storeIds);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
56 |
}
|
57 |
+
|
58 |
+
foreach ($collection->getItems() as $customerRow) {
|
59 |
+
try {
|
60 |
+
$customerRow->setBrontoImported(null)->save();
|
61 |
+
} catch (Exception $e) {
|
62 |
+
Mage::helper('bronto_customer')->writeError($e);
|
63 |
+
$this->_getSession()->addError('Reset failed: ' . $e->getMessage());
|
64 |
+
}
|
65 |
}
|
66 |
|
67 |
$this->_redirect('*/system_config/edit', array('section' => 'bronto_customer'));
|
app/code/community/Bronto/Customer/etc/config.xml
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Bronto_Customer>
|
5 |
-
<version>1.0.
|
6 |
</Bronto_Customer>
|
7 |
</modules>
|
8 |
<global>
|
@@ -20,15 +20,17 @@
|
|
20 |
<bronto_customer>
|
21 |
<class>Bronto_Customer_Model</class>
|
22 |
<resourceModel>bronto_customer_resource</resourceModel>
|
|
|
23 |
</bronto_customer>
|
24 |
<bronto_customer_resource>
|
25 |
<class>Bronto_Customer_Model_Resource</class>
|
|
|
|
|
|
|
26 |
<entities>
|
27 |
-
<
|
28 |
-
<table>bronto_imported</table>
|
29 |
-
</imported>
|
30 |
</entities>
|
31 |
-
</
|
32 |
</models>
|
33 |
<resources>
|
34 |
<bronto_customer_setup>
|
@@ -52,15 +54,15 @@
|
|
52 |
</bronto_customer_read>
|
53 |
</resources>
|
54 |
<events>
|
55 |
-
<
|
56 |
<observers>
|
57 |
-
<
|
58 |
<type>singleton</type>
|
59 |
<class>bronto_customer/observer</class>
|
60 |
<method>markCustomerForReimport</method>
|
61 |
-
</
|
62 |
</observers>
|
63 |
-
</
|
64 |
</events>
|
65 |
</global>
|
66 |
<adminhtml>
|
@@ -132,8 +134,7 @@
|
|
132 |
</default>
|
133 |
<crontab>
|
134 |
<jobs>
|
135 |
-
<bronto_customer_import>
|
136 |
-
<schedule><cron_expr>*/15 * * * *</cron_expr></schedule>
|
137 |
<run><model>bronto_customer/observer::processCustomers</model></run>
|
138 |
</bronto_customer_import>
|
139 |
</jobs>
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Bronto_Customer>
|
5 |
+
<version>1.0.1</version>
|
6 |
</Bronto_Customer>
|
7 |
</modules>
|
8 |
<global>
|
20 |
<bronto_customer>
|
21 |
<class>Bronto_Customer_Model</class>
|
22 |
<resourceModel>bronto_customer_resource</resourceModel>
|
23 |
+
<resourceModel>bronto_customer_mysql4</resourceModel>
|
24 |
</bronto_customer>
|
25 |
<bronto_customer_resource>
|
26 |
<class>Bronto_Customer_Model_Resource</class>
|
27 |
+
</bronto_customer_resource>
|
28 |
+
<bronto_customer_mysql4>
|
29 |
+
<class>Bronto_Customer_Model_Mysql4</class>
|
30 |
<entities>
|
31 |
+
<queue><table>bronto_customer_queue</table></queue>
|
|
|
|
|
32 |
</entities>
|
33 |
+
</bronto_customer_mysql4>
|
34 |
</models>
|
35 |
<resources>
|
36 |
<bronto_customer_setup>
|
54 |
</bronto_customer_read>
|
55 |
</resources>
|
56 |
<events>
|
57 |
+
<customer_save_after>
|
58 |
<observers>
|
59 |
+
<bronto_customer_sales_customer_save_after>
|
60 |
<type>singleton</type>
|
61 |
<class>bronto_customer/observer</class>
|
62 |
<method>markCustomerForReimport</method>
|
63 |
+
</bronto_customer_sales_customer_save_after>
|
64 |
</observers>
|
65 |
+
</customer_save_after>
|
66 |
</events>
|
67 |
</global>
|
68 |
<adminhtml>
|
134 |
</default>
|
135 |
<crontab>
|
136 |
<jobs>
|
137 |
+
<bronto_customer_import>
|
|
|
138 |
<run><model>bronto_customer/observer::processCustomers</model></run>
|
139 |
</bronto_customer_import>
|
140 |
</jobs>
|
app/code/community/Bronto/Customer/sql/bronto_customer_setup/mysql4-upgrade-1.0.0-1.0.1.php
ADDED
@@ -0,0 +1,46 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* fall back to create table if existing modules already exists to support upgrade
|
4 |
+
*/
|
5 |
+
|
6 |
+
$installer = $this;
|
7 |
+
/* @var $installer Mage_Core_Model_Resource_Setup */
|
8 |
+
|
9 |
+
$installer->startSetup();
|
10 |
+
|
11 |
+
try {
|
12 |
+
// Create New Table
|
13 |
+
$installer->run("
|
14 |
+
CREATE TABLE IF NOT EXISTS `{$this->getTable('bronto_customer_queue')}` (
|
15 |
+
`customer_id` int(10) unsigned NOT NULL COMMENT 'Customer Entity Id',
|
16 |
+
`store_id` smallint(5) unsigned DEFAULT NULL COMMENT 'Store Id',
|
17 |
+
`bronto_imported` datetime DEFAULT NULL COMMENT 'Bronto Imported',
|
18 |
+
`created_at` timestamp NULL DEFAULT NULL COMMENT 'Created At',
|
19 |
+
`updated_at` timestamp NULL DEFAULT NULL COMMENT 'Updated At',
|
20 |
+
PRIMARY KEY (`customer_id`),
|
21 |
+
KEY `IDX_BRONTO_CUSTOMER_QUEUE_STORE_ID` (`store_id`),
|
22 |
+
KEY `IDX_BRONTO_CUSTOMER_QUEUE_BRONTO_IMPORTED` (`bronto_imported`),
|
23 |
+
KEY `IDX_BRONTO_CUSTOMER_QUEUE_CREATED_AT` (`created_at`),
|
24 |
+
KEY `IDX_BRONTO_CUSTOMER_QUEUE_UPDATED_AT` (`updated_at`),
|
25 |
+
CONSTRAINT `FK_BRONTO_CUSTOMER_QUEUE_STORE_ID_CORE_STORE_STORE_ID` FOREIGN KEY (`store_id`) REFERENCES `{$this->getTable('core_store')}` (`store_id`) ON DELETE SET NULL ON UPDATE CASCADE
|
26 |
+
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Bronto Customer Import Queue';
|
27 |
+
");
|
28 |
+
|
29 |
+
// Populate New Table
|
30 |
+
$installer->run("
|
31 |
+
INSERT IGNORE INTO `{$this->getTable('bronto_customer_queue')}`
|
32 |
+
(`customer_id`, `store_id`, `bronto_imported`, `created_at`, `updated_at`)
|
33 |
+
SELECT `ce`.`entity_id`, `ce`.`store_id`, `eav`.`value`, `ce`.`created_at`, `ce`.`updated_at`
|
34 |
+
FROM `{$this->getTable('customer_entity')}` `ce`
|
35 |
+
LEFT JOIN `{$this->getTable('eav_attribute')}` `ea` ON `ea`.`attribute_code` = 'bronto_imported'
|
36 |
+
LEFT JOIN `{$this->getTable('customer_entity_datetime')}` `eav` ON `eav`.`attribute_id` = `ea`.`attribute_id` AND `eav`.`entity_id` = `ce`.`entity_id`
|
37 |
+
WHERE `ce`.`is_active` = 1;
|
38 |
+
");
|
39 |
+
|
40 |
+
// Remove Customer Attribute that was added on install
|
41 |
+
$installer->removeAttribute('customer', 'bronto_imported');
|
42 |
+
} catch (Exception $e) {
|
43 |
+
throw new RuntimeException('Failed Creating and Populating Table: ' . $e->getMessage());
|
44 |
+
}
|
45 |
+
|
46 |
+
$installer->endSetup();
|
app/code/community/Bronto/Newsletter/Block/Adminhtml/System/Config/Cron.php
CHANGED
@@ -15,7 +15,7 @@ class Bronto_Newsletter_Block_Adminhtml_System_Config_Cron extends Bronto_Common
|
|
15 |
*/
|
16 |
protected function _prepareLayout()
|
17 |
{
|
18 |
-
|
19 |
$this->addButton($this->getLayout()->createBlock('bronto_newsletter/adminhtml_widget_button_run'));
|
20 |
|
21 |
return parent::_prepareLayout();
|
15 |
*/
|
16 |
protected function _prepareLayout()
|
17 |
{
|
18 |
+
$this->addButton($this->getLayout()->createBlock('bronto_newsletter/adminhtml_widget_button_reset'));
|
19 |
$this->addButton($this->getLayout()->createBlock('bronto_newsletter/adminhtml_widget_button_run'));
|
20 |
|
21 |
return parent::_prepareLayout();
|
app/code/community/Bronto/Newsletter/Block/Adminhtml/Widget/Button/Reset.php
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* @package Bronto\Newsletter
|
5 |
+
* @copyright 2011-2012 Bronto Software, Inc.
|
6 |
+
* @version 1.1.5
|
7 |
+
*/
|
8 |
+
class Bronto_Newsletter_Block_Adminhtml_Widget_Button_Reset extends Mage_Adminhtml_Block_Widget_Button
|
9 |
+
{
|
10 |
+
/**
|
11 |
+
* Internal constructor not depended on params. Can be used for object initialization
|
12 |
+
*/
|
13 |
+
protected function _construct()
|
14 |
+
{
|
15 |
+
$this->setLabel('Reset All Subscribers');
|
16 |
+
$this->setOnClick("deleteConfirm('This will mark all subscribers as not-imported and will cause the importer to re-process each subscriber again.\\n\\nAre you sure you want to do this?', '" . Mage::helper('adminhtml')->getUrl('*/newsletter/reset') . "'); return false;");
|
17 |
+
$this->setClass('delete');
|
18 |
+
|
19 |
+
if (!extension_loaded('soap') || !extension_loaded('openssl') || !Mage::helper('bronto_common')->getApiToken() || !Mage::helper('bronto_customer')->isEnabled() || (!Mage::helper('bronto_customer')->isDebugEnabled() && !Mage::helper('bronto_customer')->isTestModeEnabled())) {
|
20 |
+
$this->setDisabled(true)->setClass('disabled');
|
21 |
+
}
|
22 |
+
}
|
23 |
+
}
|
app/code/community/Bronto/Newsletter/Block/Adminhtml/Widget/Button/Run.php
CHANGED
@@ -12,8 +12,13 @@ class Bronto_Newsletter_Block_Adminhtml_Widget_Button_Run extends Mage_Adminhtml
|
|
12 |
*/
|
13 |
protected function _construct()
|
14 |
{
|
|
|
|
|
|
|
|
|
|
|
15 |
$this->setLabel('Run Now');
|
16 |
-
$this->setOnClick("setLocation('" . Mage::helper('adminhtml')->getUrl('*/newsletter/run') . "'); return false;");
|
17 |
|
18 |
if (!extension_loaded('soap') || !extension_loaded('openssl') || !Mage::helper('bronto_common')->getApiToken() || !Mage::helper('bronto_newsletter')->isEnabled()) {
|
19 |
$this->setDisabled(true)->setClass('disabled');
|
12 |
*/
|
13 |
protected function _construct()
|
14 |
{
|
15 |
+
$params = array(
|
16 |
+
'section' => Mage::app()->getRequest()->getParam('section'),
|
17 |
+
'website' => Mage::app()->getRequest()->getParam('website'),
|
18 |
+
'store' => Mage::app()->getRequest()->getParam('store'),
|
19 |
+
);
|
20 |
$this->setLabel('Run Now');
|
21 |
+
$this->setOnClick("setLocation('" . Mage::helper('adminhtml')->getUrl('*/newsletter/run', $params) . "'); return false;");
|
22 |
|
23 |
if (!extension_loaded('soap') || !extension_loaded('openssl') || !Mage::helper('bronto_common')->getApiToken() || !Mage::helper('bronto_newsletter')->isEnabled()) {
|
24 |
$this->setDisabled(true)->setClass('disabled');
|
app/code/community/Bronto/Newsletter/Model/Mysql4/Queue.php
CHANGED
@@ -20,10 +20,16 @@
|
|
20 |
*/
|
21 |
/**
|
22 |
* @author Jeff Lambert <jeff.lambert@atlanticbt.com>
|
23 |
-
|
24 |
class Bronto_Newsletter_Model_Mysql4_Queue extends Mage_Core_Model_Mysql4_Abstract
|
25 |
{
|
26 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
27 |
/**
|
28 |
* Short description for function
|
29 |
*
|
@@ -32,8 +38,8 @@ class Bronto_Newsletter_Model_Mysql4_Queue extends Mage_Core_Model_Mysql4_Abstra
|
|
32 |
* @return void
|
33 |
* @access public
|
34 |
*/
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
}
|
20 |
*/
|
21 |
/**
|
22 |
* @author Jeff Lambert <jeff.lambert@atlanticbt.com>
|
23 |
+
*/
|
24 |
class Bronto_Newsletter_Model_Mysql4_Queue extends Mage_Core_Model_Mysql4_Abstract
|
25 |
{
|
26 |
+
/**
|
27 |
+
* Primary key auto increment flag
|
28 |
+
*
|
29 |
+
* @var bool
|
30 |
+
*/
|
31 |
+
protected $_isPkAutoIncrement = false;
|
32 |
+
|
33 |
/**
|
34 |
* Short description for function
|
35 |
*
|
38 |
* @return void
|
39 |
* @access public
|
40 |
*/
|
41 |
+
public function _construct()
|
42 |
+
{
|
43 |
+
$this->_init('bronto_newsletter/queue', 'queue_id');
|
44 |
+
}
|
45 |
}
|
app/code/community/Bronto/Newsletter/Model/Mysql4/Queue/Collection.php
CHANGED
@@ -23,8 +23,7 @@
|
|
23 |
* */
|
24 |
class Bronto_Newsletter_Model_Mysql4_Queue_Collection
|
25 |
extends Mage_Core_Model_Mysql4_Collection_Abstract
|
26 |
-
{
|
27 |
-
|
28 |
/**
|
29 |
* Short description for function
|
30 |
*
|
@@ -33,8 +32,8 @@ class Bronto_Newsletter_Model_Mysql4_Queue_Collection
|
|
33 |
* @return void
|
34 |
* @access public
|
35 |
*/
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
}
|
23 |
* */
|
24 |
class Bronto_Newsletter_Model_Mysql4_Queue_Collection
|
25 |
extends Mage_Core_Model_Mysql4_Collection_Abstract
|
26 |
+
{
|
|
|
27 |
/**
|
28 |
* Short description for function
|
29 |
*
|
32 |
* @return void
|
33 |
* @access public
|
34 |
*/
|
35 |
+
public function _construct() {
|
36 |
+
parent::_construct();
|
37 |
+
$this->_init('bronto_newsletter/queue');
|
38 |
+
}
|
39 |
}
|
app/code/community/Bronto/Newsletter/Model/Observer.php
CHANGED
@@ -70,12 +70,14 @@ class Bronto_Newsletter_Model_Observer extends Mage_Core_Model_Abstract
|
|
70 |
/* @var $subscriber Mage_Newsletter_Model_Subscriber */
|
71 |
$subscriber = Mage::getModel('newsletter/subscriber')->loadByEmail($email);
|
72 |
$isSubscribed = Mage::getSingleton('checkout/session')->getIsSubscribed();
|
73 |
-
|
74 |
switch ($isSubscribed) {
|
75 |
case self::BOX_UNCHECKED:
|
76 |
// Unsubscribe the Customer
|
77 |
if ($subscriber && $subscriber->isSubscribed()) {
|
78 |
return $subscriber->unsubscribe();
|
|
|
|
|
79 |
}
|
80 |
break;
|
81 |
case self::BOX_CHECKED:
|
@@ -95,6 +97,40 @@ class Bronto_Newsletter_Model_Observer extends Mage_Core_Model_Abstract
|
|
95 |
Mage::helper('bronto_newsletter')->writeError($e);
|
96 |
}
|
97 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
98 |
|
99 |
/**
|
100 |
* @param Varien_Event_Observer $observer
|
@@ -105,21 +141,14 @@ class Bronto_Newsletter_Model_Observer extends Mage_Core_Model_Abstract
|
|
105 |
return;
|
106 |
}
|
107 |
|
|
|
|
|
108 |
try {
|
109 |
-
|
110 |
-
// then issue an update to Bronto on its next run.
|
111 |
if ($subscriber = $observer->getEvent()->getSubscriber()) {
|
112 |
-
$email = $subscriber->getEmail();
|
113 |
if (!empty($email)) {
|
114 |
-
|
115 |
-
$contactHelper = Mage::helper('bronto_newsletter/contact');
|
116 |
-
|
117 |
-
if (!$contactHelper->getUpdateStatus()) {
|
118 |
-
$status = Bronto_Api_Contact::STATUS_TRANSACTIONAL;
|
119 |
-
} else {
|
120 |
-
$status = $contactHelper->getContactByEmail($email)->status;
|
121 |
-
}
|
122 |
-
$this->_saveToQueue($email, $contactHelper, Mage::app()->getStore()->getId());
|
123 |
}
|
124 |
}
|
125 |
} catch (Exception $e) {
|
@@ -127,24 +156,164 @@ class Bronto_Newsletter_Model_Observer extends Mage_Core_Model_Abstract
|
|
127 |
}
|
128 |
}
|
129 |
|
130 |
-
|
131 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
132 |
$contactQueue = Mage::getModel('bronto_newsletter/queue');
|
133 |
|
134 |
-
|
135 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
136 |
} else {
|
137 |
-
$
|
|
|
138 |
}
|
139 |
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
146 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
147 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
148 |
static public function cronImport() {
|
149 |
/* var $contactHelper Bronto_Newsletter_Helper_Contact */
|
150 |
$contactHelper = Mage::helper('bronto_newsletter/contact');
|
@@ -159,7 +328,7 @@ class Bronto_Newsletter_Model_Observer extends Mage_Core_Model_Abstract
|
|
159 |
$contact->status = $subscriber->getStatus();
|
160 |
|
161 |
try {
|
162 |
-
|
163 |
$subscriber->setImported(1)->save();
|
164 |
} catch(Exception $e) {
|
165 |
Mage::helper('bronto_newsletter')->writeError($e);
|
70 |
/* @var $subscriber Mage_Newsletter_Model_Subscriber */
|
71 |
$subscriber = Mage::getModel('newsletter/subscriber')->loadByEmail($email);
|
72 |
$isSubscribed = Mage::getSingleton('checkout/session')->getIsSubscribed();
|
73 |
+
|
74 |
switch ($isSubscribed) {
|
75 |
case self::BOX_UNCHECKED:
|
76 |
// Unsubscribe the Customer
|
77 |
if ($subscriber && $subscriber->isSubscribed()) {
|
78 |
return $subscriber->unsubscribe();
|
79 |
+
} else {
|
80 |
+
$this->_makeTransactional($subscriber, $email);
|
81 |
}
|
82 |
break;
|
83 |
case self::BOX_CHECKED:
|
97 |
Mage::helper('bronto_newsletter')->writeError($e);
|
98 |
}
|
99 |
}
|
100 |
+
|
101 |
+
private function _makeTransactional($subscriber, $email)
|
102 |
+
{
|
103 |
+
// Check For Existing Contact from Bronto
|
104 |
+
try {
|
105 |
+
$contactHelper = Mage::helper('bronto_common/contact');
|
106 |
+
$contact = $contactHelper->getContactByEmail($subscriber->getSubscriberEmail(), null, Mage::app()->getStore()->getId());
|
107 |
+
} catch (Exception $e) {
|
108 |
+
Mage::helper('bronto_newsletter')->writeError($e);
|
109 |
+
return false;
|
110 |
+
}
|
111 |
+
|
112 |
+
$ownerId = Mage::getModel('customer/customer')
|
113 |
+
->setWebsiteId(Mage::app()->getStore()->getWebsiteId())
|
114 |
+
->loadByEmail($email)
|
115 |
+
->getId();
|
116 |
+
|
117 |
+
if (!$ownerId) {
|
118 |
+
$ownerId = Mage::getSingleton('customer/session')->getId();
|
119 |
+
}
|
120 |
+
|
121 |
+
$subscriber->setCustomerId($ownerId);
|
122 |
+
$subscriber->setSubscriberEmail($email);
|
123 |
+
$subscriber->setStoreId(Mage::app()->getStore()->getId());
|
124 |
+
if ($contact->status == Bronto_Api_Contact::STATUS_UNSUBSCRIBED) {
|
125 |
+
$subscriber->setStatus(Mage_Newsletter_Model_Subscriber::STATUS_UNSUBSCRIBED);
|
126 |
+
} else {
|
127 |
+
$subscriber->setStatus(Mage_Newsletter_Model_Subscriber::STATUS_NOT_ACTIVE);
|
128 |
+
}
|
129 |
+
|
130 |
+
$subscriber->save();
|
131 |
+
|
132 |
+
$this->_saveToQueue($subscriber, Mage::app()->getStore()->getId());
|
133 |
+
}
|
134 |
|
135 |
/**
|
136 |
* @param Varien_Event_Observer $observer
|
141 |
return;
|
142 |
}
|
143 |
|
144 |
+
// Insert contact email into queuing table. Cron will
|
145 |
+
// then issue an update to Bronto on its next run.
|
146 |
try {
|
147 |
+
/* @var $subscriber Mage_Newsletter_Model_Subscriber */
|
|
|
148 |
if ($subscriber = $observer->getEvent()->getSubscriber()) {
|
149 |
+
$email = $subscriber->getEmail();
|
150 |
if (!empty($email)) {
|
151 |
+
$this->_saveToQueue($subscriber, Mage::app()->getStore()->getId());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
152 |
}
|
153 |
}
|
154 |
} catch (Exception $e) {
|
156 |
}
|
157 |
}
|
158 |
|
159 |
+
/**
|
160 |
+
* Add Subscriber to Bronto Newsletter Opt-in queue
|
161 |
+
* @param Mage_Newsletter_Model_Subscriber $subscriber
|
162 |
+
* @param int $storeId
|
163 |
+
* @param string $status
|
164 |
+
* @return void
|
165 |
+
*/
|
166 |
+
private function _saveToQueue($subscriber, $storeId)
|
167 |
+
{
|
168 |
+
// Get Calculated Status
|
169 |
+
$status = $this->_getQueueStatus($subscriber);
|
170 |
+
|
171 |
+
/* @var $contactQueue Bronto_Newsletter_Model_Queue */
|
172 |
$contactQueue = Mage::getModel('bronto_newsletter/queue');
|
173 |
|
174 |
+
$contact = $contactQueue->getContactRow($subscriber->getId(), $storeId)
|
175 |
+
->setSubscriberEmail($subscriber->getEmail())
|
176 |
+
->setStatus($status)
|
177 |
+
->setMessagePreference('html')
|
178 |
+
->setSource('api')
|
179 |
+
->setImported(0)
|
180 |
+
->save();
|
181 |
+
}
|
182 |
+
|
183 |
+
/**
|
184 |
+
* Determine Status to use when sending subscriber to opt-in queue
|
185 |
+
* @param Mage_Newsletter_Model_Subscriber $subscriber
|
186 |
+
* @param int $storeId
|
187 |
+
* @return boolean
|
188 |
+
*/
|
189 |
+
private function _getQueueStatus($subscriber)
|
190 |
+
{
|
191 |
+
// Set correct status based on subscriber status
|
192 |
+
switch ($subscriber->getStatus()) {
|
193 |
+
case Mage_Newsletter_Model_Subscriber::STATUS_SUBSCRIBED:
|
194 |
+
$status = Bronto_Api_Contact::STATUS_ONBOARDING;
|
195 |
+
break;
|
196 |
+
|
197 |
+
case Mage_Newsletter_Model_Subscriber::STATUS_UNSUBSCRIBED:
|
198 |
+
$status = Bronto_Api_Contact::STATUS_UNSUBSCRIBED;
|
199 |
+
break;
|
200 |
+
|
201 |
+
case Mage_Newsletter_Model_Subscriber::STATUS_NOT_ACTIVE:
|
202 |
+
$status = Bronto_Api_Contact::STATUS_TRANSACTIONAL;
|
203 |
+
break;
|
204 |
+
|
205 |
+
default:
|
206 |
+
$status = false;
|
207 |
+
break;
|
208 |
+
}
|
209 |
+
|
210 |
+
return $status;
|
211 |
+
}
|
212 |
+
|
213 |
+
/**
|
214 |
+
* @param int $storeId
|
215 |
+
* @return array
|
216 |
+
*/
|
217 |
+
public function processSubscribersForStore($storeId = null)
|
218 |
+
{
|
219 |
+
if (is_object($storeId)) {
|
220 |
+
$store = $storeId;
|
221 |
+
$storeId = $store->getId();
|
222 |
} else {
|
223 |
+
$store = Mage::app()->getStore($storeId);
|
224 |
+
$storeId = $store->getId();
|
225 |
}
|
226 |
|
227 |
+
|
228 |
+
|
229 |
+
$result = array('total' => 0, 'success' => 0, 'error' => 0);
|
230 |
+
Mage::helper('bronto_newsletter')->writeDebug("Starting Subscriber Opt-In process for store: {$store->getName()} ({$storeId})");
|
231 |
+
|
232 |
+
if (!$store->getConfig(Bronto_Newsletter_Helper_Data::XML_PATH_ENABLED)) {
|
233 |
+
die('not enabled');
|
234 |
+
Mage::helper('bronto_newsletter')->writeDebug(' Module disabled for this store. Skipping...');
|
235 |
+
return false;
|
236 |
+
}
|
237 |
+
|
238 |
+
$limit = $store->getConfig(Bronto_Newsletter_Helper_Data::XML_PATH_LIMIT);
|
239 |
+
if (!$limit) {
|
240 |
+
die('no limit');
|
241 |
+
Mage::helper('bronto_newsletter')->writeDebug(' Limit empty. Skipping...');
|
242 |
+
return false;
|
243 |
+
}
|
244 |
+
|
245 |
+
$helper = Mage::helper('bronto_newsletter/contact');
|
246 |
+
$contactHelper = Mage::helper('bronto_common/contact');
|
247 |
+
|
248 |
+
$lists = $helper->getListIds($storeId);
|
249 |
+
|
250 |
+
// Get Subscriber Queue for store
|
251 |
+
/* var $subscribers Bronto_Newsletter_Model_Mysql4_Queue_Collection */
|
252 |
+
$subscribers = Mage::getModel('bronto_newsletter/queue')
|
253 |
+
->getCollection()
|
254 |
+
->addFilter('imported', 0)
|
255 |
+
->addFilter('store', $storeId);
|
256 |
+
|
257 |
+
$subscribers->getSelect()->limit($limit);
|
258 |
+
foreach ($subscribers as $subscriber) {
|
259 |
+
echo 'inside foreach';
|
260 |
+
try {
|
261 |
+
echo 'inside try';
|
262 |
+
$contact = $contactHelper->getContactByEmail($subscriber->getSubscriberEmail(), null, $storeId);
|
263 |
+
|
264 |
+
foreach ($lists as $listId) {
|
265 |
+
$contactHelper->writeInfo(" Adding Contact to list: {$listId}");
|
266 |
+
$contact->addToList($listId);
|
267 |
+
}
|
268 |
+
|
269 |
+
var_dump($helper->getUpdateStatus());
|
270 |
+
if ($helper->getUpdateStatus()) {
|
271 |
+
echo 'update status set';
|
272 |
+
$contact->status = $subscriber->getStatus();
|
273 |
+
$contactHelper->writeInfo(" Setting Contact ({$contact->email}) status to: {$contact->status}");
|
274 |
+
}
|
275 |
+
$contact->save();
|
276 |
+
echo 'past save';
|
277 |
+
$subscriber->setImported(1)->save();
|
278 |
+
$result['success']++;
|
279 |
+
} catch (Exception $e) {
|
280 |
+
die($e->getMessage());
|
281 |
+
Mage::helper('bronto_newsletter')->writeError($e);
|
282 |
+
|
283 |
+
$subscriber->setImported(0)->save();
|
284 |
+
$result['error']++;
|
285 |
+
}
|
286 |
+
$result['total']++;
|
287 |
+
}
|
288 |
+
|
289 |
+
return $result;
|
290 |
}
|
291 |
+
|
292 |
+
/**
|
293 |
+
* @return array
|
294 |
+
*/
|
295 |
+
public function processSubscribers()
|
296 |
+
{
|
297 |
+
$result = array(
|
298 |
+
'total' => 0,
|
299 |
+
'success' => 0,
|
300 |
+
'error' => 0,
|
301 |
+
);
|
302 |
|
303 |
+
$stores = Mage::app()->getStores();
|
304 |
+
foreach ($stores as $_store) {
|
305 |
+
$storeResult = $this->processSubscribersForStore($_store);
|
306 |
+
$result['total'] += $storeResult['total'];
|
307 |
+
$result['success'] += $storeResult['success'];
|
308 |
+
$result['error'] += $storeResult['error'];
|
309 |
+
}
|
310 |
+
|
311 |
+
return $result;
|
312 |
+
}
|
313 |
+
|
314 |
+
/**
|
315 |
+
* @depricated
|
316 |
+
*/
|
317 |
static public function cronImport() {
|
318 |
/* var $contactHelper Bronto_Newsletter_Helper_Contact */
|
319 |
$contactHelper = Mage::helper('bronto_newsletter/contact');
|
328 |
$contact->status = $subscriber->getStatus();
|
329 |
|
330 |
try {
|
331 |
+
//$contactHelper->saveContact($contact);
|
332 |
$subscriber->setImported(1)->save();
|
333 |
} catch(Exception $e) {
|
334 |
Mage::helper('bronto_newsletter')->writeError($e);
|
app/code/community/Bronto/Newsletter/Model/Queue.php
CHANGED
@@ -20,7 +20,7 @@
|
|
20 |
*/
|
21 |
/**
|
22 |
* @author Jeff Lambert <jeff.lambert@atlanticbt.com>
|
23 |
-
|
24 |
class Bronto_Newsletter_Model_Queue extends Mage_Core_Model_Abstract
|
25 |
{
|
26 |
|
@@ -32,10 +32,25 @@ class Bronto_Newsletter_Model_Queue extends Mage_Core_Model_Abstract
|
|
32 |
* @return void
|
33 |
* @access public
|
34 |
*/
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
41 |
}
|
20 |
*/
|
21 |
/**
|
22 |
* @author Jeff Lambert <jeff.lambert@atlanticbt.com>
|
23 |
+
*/
|
24 |
class Bronto_Newsletter_Model_Queue extends Mage_Core_Model_Abstract
|
25 |
{
|
26 |
|
32 |
* @return void
|
33 |
* @access public
|
34 |
*/
|
35 |
+
public function _construct()
|
36 |
+
{
|
37 |
+
parent::_construct();
|
38 |
+
$this->_init('bronto_newsletter/queue');
|
39 |
+
}
|
40 |
+
|
41 |
+
public function getContactRow($subscriber_id, $store_id)
|
42 |
+
{
|
43 |
+
$collection = $this->getCollection()
|
44 |
+
->addFieldToFilter('subscriber_id', $subscriber_id)
|
45 |
+
->addFieldToFilter('store', $store_id);
|
46 |
+
|
47 |
+
if ($collection->count() == 1) {
|
48 |
+
return $collection->getFirstItem();
|
49 |
+
} else {
|
50 |
+
$this->setSubscriberId($subscriber_id)
|
51 |
+
->setStore($store_id);
|
52 |
+
}
|
53 |
+
|
54 |
+
return $this;
|
55 |
+
}
|
56 |
}
|
app/code/community/Bronto/Newsletter/Model/System/Config/Backend/Cron.php
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* @package Newsletter
|
5 |
+
* @copyright 2011-2013 Bronto Software, Inc.
|
6 |
+
*/
|
7 |
+
class Bronto_Newsletter_Model_System_Config_Backend_Cron extends Bronto_Common_Model_System_Config_Backend_Cron
|
8 |
+
{
|
9 |
+
protected $_cron_string_path = 'crontab/jobs/bronto_newsletter_import/schedule/cron_expr';
|
10 |
+
protected $_cron_model_path = 'crontab/jobs/bronto_newsletter_import/run/model';
|
11 |
+
}
|
app/code/community/Bronto/Newsletter/Test/Config/Config.php
CHANGED
@@ -9,6 +9,8 @@ class Bronto_Newsletter_Test_Config_Config
|
|
9 |
return array(
|
10 |
array('bronto_newsletter/adminhtml_system_config_about', 'Bronto_Newsletter_Block_Adminhtml_System_Config_About'),
|
11 |
array('bronto_newsletter/checkout_onepage_newsletter', 'Bronto_Newsletter_Block_Checkout_Onepage_Newsletter'),
|
|
|
|
|
12 |
);
|
13 |
}
|
14 |
|
9 |
return array(
|
10 |
array('bronto_newsletter/adminhtml_system_config_about', 'Bronto_Newsletter_Block_Adminhtml_System_Config_About'),
|
11 |
array('bronto_newsletter/checkout_onepage_newsletter', 'Bronto_Newsletter_Block_Checkout_Onepage_Newsletter'),
|
12 |
+
array('bronto_newsletter/adminhtml_widget_button_run', 'Bronto_Newsletter_Block_Adminhtml_Widget_Button_Run'),
|
13 |
+
array('bronto_newsletter/adminhtml_widget_button_reset', 'Bronto_Newsletter_Block_Adminhtml_Widget_Button_Run'),
|
14 |
);
|
15 |
}
|
16 |
|
app/code/community/Bronto/Newsletter/controllers/Adminhtml/NewsletterController.php
CHANGED
@@ -14,35 +14,23 @@ class Bronto_Newsletter_Adminhtml_NewsletterController extends Mage_Adminhtml_Co
|
|
14 |
try {
|
15 |
$result = array('total' => 0, 'success' => 0, 'error' => 0);
|
16 |
$model = Mage::getModel('bronto_newsletter/observer');
|
|
|
17 |
|
18 |
-
if ($
|
19 |
-
$store = Mage::app()->getStore($storeCode);
|
20 |
-
$storeIds[] = $store->getId();
|
21 |
-
} else if ($websiteCode = Mage::app()->getRequest()->getParam('website')){
|
22 |
-
$website = Mage::app()->getWebsite($websiteCode);
|
23 |
-
$storeIds = $website->getStoreIds();
|
24 |
-
} else if ($groupCode = Mage::app()->getRequest()->getParam('group')){
|
25 |
-
$website = Mage::app()->getGroup($groupCode)->getWebsite();
|
26 |
-
$storeIds = $website->getStoreIds();
|
27 |
-
} else {
|
28 |
-
$storeIds = false;
|
29 |
-
}
|
30 |
-
|
31 |
-
if ($storeIds) {
|
32 |
foreach ($storeIds as $storeId) {
|
33 |
-
|
34 |
$result['total'] += $storeResult['total'];
|
35 |
$result['success'] += $storeResult['success'];
|
36 |
$result['error'] += $storeResult['error'];
|
37 |
}
|
38 |
} else {
|
39 |
-
|
40 |
}
|
41 |
|
42 |
if (is_array($result)) {
|
43 |
$this->_getSession()->addSuccess(sprintf("Processed %d Subscribers (%d Error / %d Success)", $result['total'], $result['error'], $result['success']));
|
44 |
} else {
|
45 |
-
$this->_getSession()->addError('Scheduled
|
46 |
}
|
47 |
|
48 |
} catch (Exception $e) {
|
@@ -58,25 +46,18 @@ class Bronto_Newsletter_Adminhtml_NewsletterController extends Mage_Adminhtml_Co
|
|
58 |
*/
|
59 |
public function resetAction()
|
60 |
{
|
61 |
-
$
|
62 |
-
|
63 |
-
|
64 |
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
$storeIds = $website->getStoreIds();
|
71 |
-
} else if ($groupCode = Mage::app()->getRequest()->getParam('group')){
|
72 |
-
$website = Mage::app()->getGroup($groupCode)->getWebsite();
|
73 |
-
$storeIds = $website->getStoreIds();
|
74 |
-
} else {
|
75 |
-
$storeIds[] = null;
|
76 |
}
|
77 |
|
78 |
-
|
79 |
-
//
|
80 |
}
|
81 |
|
82 |
$this->_redirect('*/system_config/edit', array('section' => 'bronto_newsletter'));
|
14 |
try {
|
15 |
$result = array('total' => 0, 'success' => 0, 'error' => 0);
|
16 |
$model = Mage::getModel('bronto_newsletter/observer');
|
17 |
+
$helper = Mage::helper('bronto_common');
|
18 |
|
19 |
+
if ($storeIds = $helper->getStoreIds()) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
20 |
foreach ($storeIds as $storeId) {
|
21 |
+
$storeResult = $model->processSubscribersForStore($storeId);
|
22 |
$result['total'] += $storeResult['total'];
|
23 |
$result['success'] += $storeResult['success'];
|
24 |
$result['error'] += $storeResult['error'];
|
25 |
}
|
26 |
} else {
|
27 |
+
$result = $model->processSubscribers();
|
28 |
}
|
29 |
|
30 |
if (is_array($result)) {
|
31 |
$this->_getSession()->addSuccess(sprintf("Processed %d Subscribers (%d Error / %d Success)", $result['total'], $result['error'], $result['success']));
|
32 |
} else {
|
33 |
+
$this->_getSession()->addError('Scheduled Sync failed: ' . $result);
|
34 |
}
|
35 |
|
36 |
} catch (Exception $e) {
|
46 |
*/
|
47 |
public function resetAction()
|
48 |
{
|
49 |
+
$subscribers = Mage::getModel('bronto_newsletter/queue')
|
50 |
+
->getCollection()
|
51 |
+
->addFilter('imported', 1);
|
52 |
|
53 |
+
foreach($subscribers as $subscriber) {
|
54 |
+
try {
|
55 |
+
$subscriber->setImported(0)->save();
|
56 |
+
} catch(Exception $e) {
|
57 |
+
Mage::helper('bronto_newsletter')->writeError($e);
|
|
|
|
|
|
|
|
|
|
|
|
|
58 |
}
|
59 |
|
60 |
+
|
|
|
61 |
}
|
62 |
|
63 |
$this->_redirect('*/system_config/edit', array('section' => 'bronto_newsletter'));
|
app/code/community/Bronto/Newsletter/etc/config.xml
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Bronto_Newsletter>
|
5 |
-
<version>1.4.
|
6 |
</Bronto_Newsletter>
|
7 |
</modules>
|
8 |
<global>
|
@@ -108,15 +108,7 @@
|
|
108 |
<update_status>1</update_status>
|
109 |
</contacts>
|
110 |
</bronto_newsletter>
|
111 |
-
</default>
|
112 |
-
<crontab>
|
113 |
-
<jobs>
|
114 |
-
<bronto_newsletter_import>
|
115 |
-
<schedule><cron_expr>*/15 * * * *</cron_expr></schedule>
|
116 |
-
<run><model>bronto_newsletter/observer::processSubscribers</model></run>
|
117 |
-
</bronto_newsletter_import>
|
118 |
-
</jobs>
|
119 |
-
</crontab>
|
120 |
<adminhtml>
|
121 |
<events>
|
122 |
<controller_action_predispatch>
|
@@ -149,6 +141,15 @@
|
|
149 |
</acl>
|
150 |
</adminhtml>
|
151 |
<admin>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
152 |
<fieldsets>
|
153 |
<customer_account>
|
154 |
<bronto_contact_id><create>1</create></bronto_contact_id>
|
@@ -157,12 +158,9 @@
|
|
157 |
</admin>
|
158 |
<crontab>
|
159 |
<jobs>
|
160 |
-
<bronto_newsletter_import>
|
161 |
-
<schedule>
|
162 |
-
<cron_expr>*/5 * * * *</cron_expr>
|
163 |
-
</schedule>
|
164 |
<run>
|
165 |
-
<model>bronto_newsletter/observer::
|
166 |
</run>
|
167 |
</bronto_newsletter_import>
|
168 |
</jobs>
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Bronto_Newsletter>
|
5 |
+
<version>1.4.4</version>
|
6 |
</Bronto_Newsletter>
|
7 |
</modules>
|
8 |
<global>
|
108 |
<update_status>1</update_status>
|
109 |
</contacts>
|
110 |
</bronto_newsletter>
|
111 |
+
</default>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
112 |
<adminhtml>
|
113 |
<events>
|
114 |
<controller_action_predispatch>
|
141 |
</acl>
|
142 |
</adminhtml>
|
143 |
<admin>
|
144 |
+
<routers>
|
145 |
+
<adminhtml>
|
146 |
+
<args>
|
147 |
+
<modules>
|
148 |
+
<bronto_newsletter before="Mage_Adminhtml">Bronto_Newsletter_Adminhtml</bronto_newsletter>
|
149 |
+
</modules>
|
150 |
+
</args>
|
151 |
+
</adminhtml>
|
152 |
+
</routers>
|
153 |
<fieldsets>
|
154 |
<customer_account>
|
155 |
<bronto_contact_id><create>1</create></bronto_contact_id>
|
158 |
</admin>
|
159 |
<crontab>
|
160 |
<jobs>
|
161 |
+
<bronto_newsletter_import>
|
|
|
|
|
|
|
162 |
<run>
|
163 |
+
<model>bronto_newsletter/observer::processSubscribers</model>
|
164 |
</run>
|
165 |
</bronto_newsletter_import>
|
166 |
</jobs>
|
app/code/community/Bronto/Newsletter/etc/system.xml
CHANGED
@@ -41,7 +41,7 @@
|
|
41 |
<depends><enabled>1</enabled></depends>
|
42 |
<frontend_type>select</frontend_type>
|
43 |
<source_model>bronto_common/system_config_source_cron_frequency</source_model>
|
44 |
-
<backend_model>
|
45 |
<sort_order>20</sort_order>
|
46 |
<show_in_default>1</show_in_default>
|
47 |
<show_in_website>0</show_in_website>
|
@@ -143,6 +143,7 @@
|
|
143 |
<show_in_website>1</show_in_website>
|
144 |
<show_in_store>1</show_in_store>
|
145 |
</label_text>
|
|
|
146 |
<use_custom_template>
|
147 |
<label>Use Custom Billing Template?</label>
|
148 |
<frontend_type>select</frontend_type>
|
@@ -162,7 +163,7 @@
|
|
162 |
<show_in_website>1</show_in_website>
|
163 |
<show_in_store>1</show_in_store>
|
164 |
<comment><![CDATA[<strong>Magento Default:</strong> <code>checkout/onepage/billing.phtml</code>]]></comment>
|
165 |
-
</billing_template
|
166 |
</fields>
|
167 |
</checkout>
|
168 |
<contacts>
|
41 |
<depends><enabled>1</enabled></depends>
|
42 |
<frontend_type>select</frontend_type>
|
43 |
<source_model>bronto_common/system_config_source_cron_frequency</source_model>
|
44 |
+
<backend_model>bronto_newsletter/system_config_backend_cron</backend_model>
|
45 |
<sort_order>20</sort_order>
|
46 |
<show_in_default>1</show_in_default>
|
47 |
<show_in_website>0</show_in_website>
|
143 |
<show_in_website>1</show_in_website>
|
144 |
<show_in_store>1</show_in_store>
|
145 |
</label_text>
|
146 |
+
<!-- Deprecated: Custom Billing Template not needed
|
147 |
<use_custom_template>
|
148 |
<label>Use Custom Billing Template?</label>
|
149 |
<frontend_type>select</frontend_type>
|
163 |
<show_in_website>1</show_in_website>
|
164 |
<show_in_store>1</show_in_store>
|
165 |
<comment><![CDATA[<strong>Magento Default:</strong> <code>checkout/onepage/billing.phtml</code>]]></comment>
|
166 |
+
</billing_template>-->
|
167 |
</fields>
|
168 |
</checkout>
|
169 |
<contacts>
|
app/code/community/Bronto/Newsletter/sql/bronto_newsletter_setup/mysql4-install-1.0.0.php
CHANGED
@@ -17,7 +17,7 @@ try {
|
|
17 |
$installer->getTable('newsletter/subscriber'), 'IDX_BRONTO_IMPORTED', 'bronto_imported'
|
18 |
);
|
19 |
} catch (Exception $e) {
|
20 |
-
|
21 |
}
|
22 |
|
23 |
$installer->endSetup();
|
17 |
$installer->getTable('newsletter/subscriber'), 'IDX_BRONTO_IMPORTED', 'bronto_imported'
|
18 |
);
|
19 |
} catch (Exception $e) {
|
20 |
+
throw new RuntimeException('Table Already Exists');
|
21 |
}
|
22 |
|
23 |
$installer->endSetup();
|
app/code/community/Bronto/Newsletter/sql/bronto_newsletter_setup/mysql4-install-1.4.0.php
CHANGED
@@ -21,7 +21,7 @@ CREATE TABLE `{$this->getTable('bronto_newsletter_queue')}` (
|
|
21 |
");
|
22 |
|
23 |
} catch (Exception $e) {
|
24 |
-
|
25 |
}
|
26 |
|
27 |
$installer->endSetup();
|
21 |
");
|
22 |
|
23 |
} catch (Exception $e) {
|
24 |
+
throw new RuntimeException('Table Already Exists');
|
25 |
}
|
26 |
|
27 |
$installer->endSetup();
|
app/code/community/Bronto/Newsletter/sql/bronto_newsletter_setup/mysql4-upgrade-1.4.0-1.4.1.php
CHANGED
@@ -23,7 +23,7 @@ try {
|
|
23 |
");
|
24 |
|
25 |
} catch (Exception $e) {
|
26 |
-
|
27 |
}
|
28 |
|
29 |
$installer->endSetup();
|
23 |
");
|
24 |
|
25 |
} catch (Exception $e) {
|
26 |
+
throw new RuntimeException('Table Already Exists');
|
27 |
}
|
28 |
|
29 |
$installer->endSetup();
|
app/code/community/Bronto/Newsletter/sql/bronto_newsletter_setup/mysql4-upgrade-1.4.1-1.4.2.php
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* fall back to create table if existing modules already exists to support upgrade
|
4 |
+
*/
|
5 |
+
|
6 |
+
$installer = $this;
|
7 |
+
/* @var $installer Mage_Core_Model_Resource_Setup */
|
8 |
+
|
9 |
+
$installer->startSetup();
|
10 |
+
|
11 |
+
try {
|
12 |
+
$installer->run("
|
13 |
+
ALTER TABLE `{$this->getTable('bronto_newsletter_queue')}`
|
14 |
+
CHANGE COLUMN `messagePreference` `message_preference` VARCHAR(16) CHARACTER SET 'utf8' NOT NULL;
|
15 |
+
");
|
16 |
+
|
17 |
+
} catch (Exception $e) {
|
18 |
+
throw new RuntimeException('Error altering table');
|
19 |
+
}
|
20 |
+
|
21 |
+
$installer->endSetup();
|
app/code/community/Bronto/Newsletter/sql/bronto_newsletter_setup/mysql4-upgrade-1.4.2-1.4.3.php
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* fall back to create table if existing modules already exists to support upgrade
|
4 |
+
*/
|
5 |
+
|
6 |
+
$installer = $this;
|
7 |
+
/* @var $installer Mage_Core_Model_Resource_Setup */
|
8 |
+
|
9 |
+
$installer->startSetup();
|
10 |
+
|
11 |
+
try {
|
12 |
+
$installer->run("
|
13 |
+
ALTER TABLE `{$this->getTable('bronto_newsletter_queue')}`
|
14 |
+
CHANGE COLUMN `subscriber_id` `subscriber_id` INT(11) NOT NULL;
|
15 |
+
");
|
16 |
+
|
17 |
+
} catch (Exception $e) {
|
18 |
+
throw new RuntimeException('Error altering table');
|
19 |
+
}
|
20 |
+
|
21 |
+
$installer->endSetup();
|
app/code/community/Bronto/Newsletter/sql/bronto_newsletter_setup/mysql4-upgrade-1.4.3-1.4.4.php
ADDED
@@ -0,0 +1,25 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* fall back to create table if existing modules already exists to support upgrade
|
4 |
+
*/
|
5 |
+
|
6 |
+
$installer = $this;
|
7 |
+
/* @var $installer Mage_Core_Model_Resource_Setup */
|
8 |
+
|
9 |
+
$installer->startSetup();
|
10 |
+
|
11 |
+
try {
|
12 |
+
$installer->run("
|
13 |
+
ALTER TABLE `{$this->getTable('bronto_newsletter_queue')}`
|
14 |
+
ADD COLUMN `queue_id` INT(11) NOT NULL AUTO_INCREMENT FIRST ,
|
15 |
+
CHANGE COLUMN `subscriber_id` `subscriber_id` INT(11) NOT NULL AFTER `queue_id` ,
|
16 |
+
CHANGE COLUMN `store` `store` TINYINT(4) NOT NULL AFTER `subscriber_id`,
|
17 |
+
DROP PRIMARY KEY,
|
18 |
+
ADD PRIMARY KEY (`queue_id`, `subscriber_id`, `store`);
|
19 |
+
");
|
20 |
+
|
21 |
+
} catch (Exception $e) {
|
22 |
+
throw new RuntimeException('Error altering table');
|
23 |
+
}
|
24 |
+
|
25 |
+
$installer->endSetup();
|
app/code/community/Bronto/Order/Block/Adminhtml/Sales/Order/View/Tab/Info.php
CHANGED
@@ -15,8 +15,10 @@ class Bronto_Order_Block_Adminhtml_Sales_Order_View_Tab_Info extends Mage_Adminh
|
|
15 |
protected function _toHtml()
|
16 |
{
|
17 |
$order = $this->getOrder();
|
18 |
-
$
|
19 |
-
|
|
|
|
|
20 |
|
21 |
$deliveryHtml = empty($tid) ? $this->_getNoHtml() : $this->_getYesHtml();
|
22 |
$importedHtml = empty($imported) ? $this->_getNoHtml() : $this->_getYesHtml();
|
15 |
protected function _toHtml()
|
16 |
{
|
17 |
$order = $this->getOrder();
|
18 |
+
$orderRow = Mage::getModel('bronto_order/queue')->load($order->getId());
|
19 |
+
|
20 |
+
$tid = $orderRow->getBrontoTid();
|
21 |
+
$imported = $orderRow->getBrontoImported();
|
22 |
|
23 |
$deliveryHtml = empty($tid) ? $this->_getNoHtml() : $this->_getYesHtml();
|
24 |
$importedHtml = empty($imported) ? $this->_getNoHtml() : $this->_getYesHtml();
|
app/code/community/Bronto/Order/Block/Adminhtml/System/Config/Cron.php
CHANGED
@@ -34,8 +34,7 @@ class Bronto_Order_Block_Adminhtml_System_Config_Cron extends Bronto_Common_Bloc
|
|
34 |
protected function getProgressBarTotal()
|
35 |
{
|
36 |
return $this->getOrderResourceCollection()
|
37 |
-
->getSize()
|
38 |
-
;
|
39 |
}
|
40 |
|
41 |
/**
|
@@ -45,8 +44,7 @@ class Bronto_Order_Block_Adminhtml_System_Config_Cron extends Bronto_Common_Bloc
|
|
45 |
{
|
46 |
return $this->getOrderResourceCollection()
|
47 |
->addBrontoNotImportedFilter()
|
48 |
-
->getSize()
|
49 |
-
;
|
50 |
}
|
51 |
|
52 |
/**
|
@@ -54,19 +52,13 @@ class Bronto_Order_Block_Adminhtml_System_Config_Cron extends Bronto_Common_Bloc
|
|
54 |
*/
|
55 |
protected function getOrderResourceCollection()
|
56 |
{
|
57 |
-
$collection = Mage::getModel('bronto_order/
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
$collection->addStoreFilter($
|
62 |
-
} else if ($websiteCode = Mage::app()->getRequest()->getParam('website')){
|
63 |
-
$website = Mage::app()->getWebsite($websiteCode);
|
64 |
-
$collection->addStoreFilter($website->getStoreids());
|
65 |
-
} else if ($groupCode = Mage::app()->getRequest()->getParam('group')){
|
66 |
-
$website = Mage::app()->getGroup($groupCode)->getWebsite();
|
67 |
-
$collection->addStoreFilter($website->getStoreids());
|
68 |
}
|
69 |
-
|
70 |
return $collection;
|
71 |
}
|
72 |
}
|
34 |
protected function getProgressBarTotal()
|
35 |
{
|
36 |
return $this->getOrderResourceCollection()
|
37 |
+
->getSize();
|
|
|
38 |
}
|
39 |
|
40 |
/**
|
44 |
{
|
45 |
return $this->getOrderResourceCollection()
|
46 |
->addBrontoNotImportedFilter()
|
47 |
+
->getSize();
|
|
|
48 |
}
|
49 |
|
50 |
/**
|
52 |
*/
|
53 |
protected function getOrderResourceCollection()
|
54 |
{
|
55 |
+
$collection = Mage::getModel('bronto_order/queue')->getCollection();
|
56 |
+
$storeIds = Mage::helper('bronto_order')->getStoreIds();
|
57 |
+
|
58 |
+
if ($storeIds) {
|
59 |
+
$collection->addStoreFilter($storeIds);
|
|
|
|
|
|
|
|
|
|
|
|
|
60 |
}
|
61 |
+
|
62 |
return $collection;
|
63 |
}
|
64 |
}
|
app/code/community/Bronto/Order/Model/Mysql4/Queue.php
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Bronto_Order_Model_Mysql4_Queue extends Mage_Core_Model_Mysql4_Abstract
|
4 |
+
{
|
5 |
+
/**
|
6 |
+
* Primary key auto increment flag
|
7 |
+
*
|
8 |
+
* @var bool
|
9 |
+
*/
|
10 |
+
protected $_isPkAutoIncrement = false;
|
11 |
+
|
12 |
+
/**
|
13 |
+
* Initialize Model
|
14 |
+
*
|
15 |
+
* @return void
|
16 |
+
* @access public
|
17 |
+
*/
|
18 |
+
public function _construct()
|
19 |
+
{
|
20 |
+
$this->_init('bronto_order/queue', 'order_id');
|
21 |
+
}
|
22 |
+
}
|
app/code/community/Bronto/Order/Model/Mysql4/Queue/Collection.php
ADDED
@@ -0,0 +1,88 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Bronto_Order_Model_Mysql4_Queue_Collection
|
4 |
+
extends Mage_Core_Model_Mysql4_Collection_Abstract
|
5 |
+
{
|
6 |
+
/**
|
7 |
+
* Initialize Model
|
8 |
+
*
|
9 |
+
* @return void
|
10 |
+
* @access public
|
11 |
+
*/
|
12 |
+
public function _construct() {
|
13 |
+
parent::_construct();
|
14 |
+
$this->_init('bronto_order/queue');
|
15 |
+
}
|
16 |
+
|
17 |
+
/**
|
18 |
+
* @return Bronto_Order_Model_Mysql4_Queue_Collection
|
19 |
+
*/
|
20 |
+
public function addBrontoImportedFilter()
|
21 |
+
{
|
22 |
+
$this->addFieldToFilter('bronto_imported', array('notnull' => true));
|
23 |
+
return $this;
|
24 |
+
}
|
25 |
+
|
26 |
+
/**
|
27 |
+
* @return Bronto_Order_Model_Mysql4_Queue_Collection
|
28 |
+
*/
|
29 |
+
public function addBrontoNotImportedFilter()
|
30 |
+
{
|
31 |
+
$this->addFieldToFilter('bronto_imported', array('null' => true));
|
32 |
+
return $this;
|
33 |
+
}
|
34 |
+
|
35 |
+
/**
|
36 |
+
* @param mixed $storeIds (null, int|string, array, array may contain null)
|
37 |
+
* @return Bronto_Order_Model_Mysql4_Queue_Collection
|
38 |
+
*/
|
39 |
+
public function addStoreFilter($storeIds)
|
40 |
+
{
|
41 |
+
$nullCheck = false;
|
42 |
+
|
43 |
+
if (!is_array($storeIds)) {
|
44 |
+
$storeIds = array($storeIds);
|
45 |
+
}
|
46 |
+
|
47 |
+
$storeIds = array_unique($storeIds);
|
48 |
+
|
49 |
+
if ($index = array_search(null, $storeIds)) {
|
50 |
+
unset($storeIds[$index]);
|
51 |
+
$nullCheck = true;
|
52 |
+
}
|
53 |
+
|
54 |
+
$storeIds[0] = ($storeIds[0] == '') ? 0 : $storeIds[0];
|
55 |
+
|
56 |
+
if ($nullCheck) {
|
57 |
+
$this->getSelect()->where('store_id IN(?) OR store_id IS NULL', $storeIds);
|
58 |
+
} else {
|
59 |
+
$this->getSelect()->where('store_id IN(?)', $storeIds);
|
60 |
+
}
|
61 |
+
|
62 |
+
return $this;
|
63 |
+
}
|
64 |
+
|
65 |
+
/**
|
66 |
+
* Sort order by order created_at date
|
67 |
+
*
|
68 |
+
* @param string $dir
|
69 |
+
* @return Bronto_Order_Model_Mysql4_Queue_Collection
|
70 |
+
*/
|
71 |
+
public function orderByCreatedAt($dir = self::SORT_ORDER_DESC)
|
72 |
+
{
|
73 |
+
$this->setOrder('created_at', $dir);
|
74 |
+
return $this;
|
75 |
+
}
|
76 |
+
|
77 |
+
/**
|
78 |
+
* Sort order by order updated_at date
|
79 |
+
*
|
80 |
+
* @param string $dir
|
81 |
+
* @return Bronto_Order_Model_Mysql4_Queue_Collection
|
82 |
+
*/
|
83 |
+
public function orderByUpdatedAt($dir = self::SORT_ORDER_DESC)
|
84 |
+
{
|
85 |
+
$this->setOrder('updated_at', $dir);
|
86 |
+
return $this;
|
87 |
+
}
|
88 |
+
}
|
app/code/community/Bronto/Order/Model/Observer.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
/**
|
4 |
* @package Bronto\Order
|
5 |
* @copyright 2011-2013 Bronto Software, Inc.
|
6 |
-
* @version 1.1.
|
7 |
*/
|
8 |
class Bronto_Order_Model_Observer
|
9 |
{
|
@@ -61,13 +61,15 @@ class Bronto_Order_Model_Observer
|
|
61 |
return $result;
|
62 |
}
|
63 |
|
64 |
-
$
|
65 |
-
->
|
66 |
->addBrontoNotImportedFilter()
|
67 |
->orderByUpdatedAt()
|
68 |
-
->
|
69 |
-
|
70 |
-
|
|
|
|
|
71 |
Mage::helper('bronto_order')->writeVerboseDebug(' No Orders to process. Skipping...');
|
72 |
return $result;
|
73 |
}
|
@@ -77,7 +79,8 @@ class Bronto_Order_Model_Observer
|
|
77 |
$descriptionAttr = $store->getConfig(Bronto_Order_Helper_Data::XML_PATH_DESCRIPTION);
|
78 |
$orderCache = array();
|
79 |
|
80 |
-
foreach ($
|
|
|
81 |
if ($order = Mage::getModel('sales/order')->load($orderId) /* @var $order Mage_Sales_Model_Order */) {
|
82 |
Mage::helper('bronto_order')->writeDebug(" Processing Order ID: {$orderId}");
|
83 |
$orderCache[] = $orderId;
|
@@ -87,7 +90,7 @@ class Bronto_Order_Model_Observer
|
|
87 |
$brontoOrder->email = $order->getCustomerEmail();
|
88 |
$brontoOrder->id = $order->getIncrementId();
|
89 |
$brontoOrder->orderDate = date('c', strtotime($order->getCreatedAt()));
|
90 |
-
if ($tid = $
|
91 |
$brontoOrder->tid = $tid;
|
92 |
}
|
93 |
$brontoOrderItems = array();
|
@@ -147,9 +150,9 @@ class Bronto_Order_Model_Observer
|
|
147 |
|
148 |
try {
|
149 |
// Mark order as imported
|
150 |
-
$
|
151 |
-
$
|
152 |
-
|
153 |
// Flush every 10 orders
|
154 |
if ($result['total'] % 100 === 0) {
|
155 |
$result = $this->flushOrders($orderObject, $orderCache, $result);
|
@@ -159,8 +162,8 @@ class Bronto_Order_Model_Observer
|
|
159 |
Mage::helper('bronto_order')->writeError($e);
|
160 |
|
161 |
// Mark import as *not* imported
|
162 |
-
$
|
163 |
-
$
|
164 |
|
165 |
$result['error']++;
|
166 |
}
|
@@ -168,15 +171,15 @@ class Bronto_Order_Model_Observer
|
|
168 |
$result['total']++;
|
169 |
}
|
170 |
}
|
171 |
-
|
172 |
// Final flush (for any we miss)
|
173 |
-
$
|
174 |
|
175 |
-
Mage::helper('bronto_order')->writeDebug(' Success: ' . $
|
176 |
-
Mage::helper('bronto_order')->writeDebug(' Error: ' . $
|
177 |
-
Mage::helper('bronto_order')->writeDebug(' Total: ' . $
|
178 |
|
179 |
-
return $
|
180 |
}
|
181 |
|
182 |
/**
|
@@ -198,10 +201,13 @@ class Bronto_Order_Model_Observer
|
|
198 |
$errorCode = $flushResultRow->getErrorCode();
|
199 |
$errorMessage = $flushResultRow->getErrorMessage();
|
200 |
if (isset($orderCache[$i])) {
|
201 |
-
//
|
202 |
$order = Mage::getModel('sales/order')->load($orderCache[$i]);
|
203 |
-
|
204 |
-
|
|
|
|
|
|
|
205 |
Mage::helper('bronto_order')->writeError("[{$errorCode}] {$errorMessage} ({$order->getIncrementId})");
|
206 |
} else {
|
207 |
Mage::helper('bronto_order')->writeError("[{$errorCode}] {$errorMessage}");
|
@@ -227,7 +233,7 @@ class Bronto_Order_Model_Observer
|
|
227 |
);
|
228 |
|
229 |
$stores = Mage::app()->getStores();
|
230 |
-
foreach ($stores as $
|
231 |
$storeResult = $this->processOrdersForStore($_store);
|
232 |
$result['total'] += $storeResult['total'];
|
233 |
$result['success'] += $storeResult['success'];
|
3 |
/**
|
4 |
* @package Bronto\Order
|
5 |
* @copyright 2011-2013 Bronto Software, Inc.
|
6 |
+
* @version 1.1.6
|
7 |
*/
|
8 |
class Bronto_Order_Model_Observer
|
9 |
{
|
61 |
return $result;
|
62 |
}
|
63 |
|
64 |
+
$orderRows = Mage::getModel('bronto_order/queue')
|
65 |
+
->getCollection()
|
66 |
->addBrontoNotImportedFilter()
|
67 |
->orderByUpdatedAt()
|
68 |
+
->setPageSize($limit)
|
69 |
+
->addStoreFilter($storeId)
|
70 |
+
->getItems();
|
71 |
+
|
72 |
+
if (empty($orderRows)) {
|
73 |
Mage::helper('bronto_order')->writeVerboseDebug(' No Orders to process. Skipping...');
|
74 |
return $result;
|
75 |
}
|
79 |
$descriptionAttr = $store->getConfig(Bronto_Order_Helper_Data::XML_PATH_DESCRIPTION);
|
80 |
$orderCache = array();
|
81 |
|
82 |
+
foreach ($orderRows as $orderRow) {
|
83 |
+
$orderId = $orderRow->getOrderId();
|
84 |
if ($order = Mage::getModel('sales/order')->load($orderId) /* @var $order Mage_Sales_Model_Order */) {
|
85 |
Mage::helper('bronto_order')->writeDebug(" Processing Order ID: {$orderId}");
|
86 |
$orderCache[] = $orderId;
|
90 |
$brontoOrder->email = $order->getCustomerEmail();
|
91 |
$brontoOrder->id = $order->getIncrementId();
|
92 |
$brontoOrder->orderDate = date('c', strtotime($order->getCreatedAt()));
|
93 |
+
if ($tid = $orderRow->getBrontoTid()) {
|
94 |
$brontoOrder->tid = $tid;
|
95 |
}
|
96 |
$brontoOrderItems = array();
|
150 |
|
151 |
try {
|
152 |
// Mark order as imported
|
153 |
+
$orderRow->setBrontoImported(Mage::getSingleton('core/date')->gmtDate());
|
154 |
+
$orderRow->save();
|
155 |
+
|
156 |
// Flush every 10 orders
|
157 |
if ($result['total'] % 100 === 0) {
|
158 |
$result = $this->flushOrders($orderObject, $orderCache, $result);
|
162 |
Mage::helper('bronto_order')->writeError($e);
|
163 |
|
164 |
// Mark import as *not* imported
|
165 |
+
$orderRow->setBrontoImported(null);
|
166 |
+
$orderRow->save();
|
167 |
|
168 |
$result['error']++;
|
169 |
}
|
171 |
$result['total']++;
|
172 |
}
|
173 |
}
|
174 |
+
|
175 |
// Final flush (for any we miss)
|
176 |
+
$results = $this->flushOrders($orderObject, $orderCache, $result);
|
177 |
|
178 |
+
Mage::helper('bronto_order')->writeDebug(' Success: ' . $results['success']);
|
179 |
+
Mage::helper('bronto_order')->writeDebug(' Error: ' . $results['error']);
|
180 |
+
Mage::helper('bronto_order')->writeDebug(' Total: ' . $results['total']);
|
181 |
|
182 |
+
return $results;
|
183 |
}
|
184 |
|
185 |
/**
|
201 |
$errorCode = $flushResultRow->getErrorCode();
|
202 |
$errorMessage = $flushResultRow->getErrorMessage();
|
203 |
if (isset($orderCache[$i])) {
|
204 |
+
// Get Order Object
|
205 |
$order = Mage::getModel('sales/order')->load($orderCache[$i]);
|
206 |
+
|
207 |
+
// Reset Bronto Import status
|
208 |
+
$orderRow = Mage::getModel('bronto_order/queue')->load($orderCache[$i]);
|
209 |
+
$orderRow->setBrontoImported(null);
|
210 |
+
$orderRow->save();
|
211 |
Mage::helper('bronto_order')->writeError("[{$errorCode}] {$errorMessage} ({$order->getIncrementId})");
|
212 |
} else {
|
213 |
Mage::helper('bronto_order')->writeError("[{$errorCode}] {$errorMessage}");
|
233 |
);
|
234 |
|
235 |
$stores = Mage::app()->getStores();
|
236 |
+
foreach ($stores as $_store) {
|
237 |
$storeResult = $this->processOrdersForStore($_store);
|
238 |
$result['total'] += $storeResult['total'];
|
239 |
$result['success'] += $storeResult['success'];
|
app/code/community/Bronto/Order/Model/Order/Observer.php
CHANGED
@@ -16,7 +16,16 @@ class Bronto_Order_Model_Order_Observer
|
|
16 |
{
|
17 |
/* @var $order Mage_Sales_Model_Order */
|
18 |
$order = $observer->getCreditmemo()->getOrder();
|
19 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
20 |
}
|
21 |
|
22 |
/**
|
@@ -28,7 +37,16 @@ class Bronto_Order_Model_Order_Observer
|
|
28 |
{
|
29 |
/* @var $order Mage_Sales_Model_Order */
|
30 |
$order = $observer->getPayment()->getOrder();
|
31 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
32 |
}
|
33 |
|
34 |
/**
|
@@ -41,6 +59,17 @@ class Bronto_Order_Model_Order_Observer
|
|
41 |
{
|
42 |
/* @var $order Mage_Sales_Model_Order */
|
43 |
$order = $observer->getOrder();
|
44 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
45 |
}
|
46 |
}
|
16 |
{
|
17 |
/* @var $order Mage_Sales_Model_Order */
|
18 |
$order = $observer->getCreditmemo()->getOrder();
|
19 |
+
|
20 |
+
/* @var $contactQueue Bronto_Order_Model_Queue */
|
21 |
+
$orderRow = Mage::getModel('bronto_order/queue');
|
22 |
+
|
23 |
+
// Save Information to Queue table
|
24 |
+
$orderRow->setId($order->getId())
|
25 |
+
->setQuoteId($order->getQuoteId())
|
26 |
+
->setStoreId($order->getStoreId())
|
27 |
+
->setBrontoImported(null)
|
28 |
+
->save();
|
29 |
}
|
30 |
|
31 |
/**
|
37 |
{
|
38 |
/* @var $order Mage_Sales_Model_Order */
|
39 |
$order = $observer->getPayment()->getOrder();
|
40 |
+
|
41 |
+
/* @var $contactQueue Bronto_Order_Model_Queue */
|
42 |
+
$orderRow = Mage::getModel('bronto_order/queue');
|
43 |
+
|
44 |
+
// Save Information to Queue table
|
45 |
+
$orderRow->setId($order->getId())
|
46 |
+
->setQuoteId($order->getQuoteId())
|
47 |
+
->setStoreId($order->getStoreId())
|
48 |
+
->setBrontoImported(null)
|
49 |
+
->save();
|
50 |
}
|
51 |
|
52 |
/**
|
59 |
{
|
60 |
/* @var $order Mage_Sales_Model_Order */
|
61 |
$order = $observer->getOrder();
|
62 |
+
|
63 |
+
/* @var $contactQueue Bronto_Order_Model_Queue */
|
64 |
+
$orderRow = Mage::getModel('bronto_order/queue');
|
65 |
+
|
66 |
+
// Save Information to Queue table
|
67 |
+
$orderRow->setId($order->getId())
|
68 |
+
->setQuoteId($order->getQuoteId())
|
69 |
+
->setStoreId($order->getStoreId())
|
70 |
+
->setCreatedAt($order->getCreatedAt())
|
71 |
+
->setUpdatedAt($order->getUpdatedAt())
|
72 |
+
->setBrontoImported(null)
|
73 |
+
->save();
|
74 |
}
|
75 |
}
|
app/code/community/Bronto/Order/Model/Queue.php
ADDED
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Bronto_Order_Model_Queue extends Mage_Core_Model_Abstract
|
4 |
+
{
|
5 |
+
public function _construct()
|
6 |
+
{
|
7 |
+
parent::_construct();
|
8 |
+
$this->_init('bronto_order/queue');
|
9 |
+
}
|
10 |
+
|
11 |
+
public function loadByQuote(Mage_Sales_Model_Quote $quote)
|
12 |
+
{
|
13 |
+
$collection = $this->getCollection()
|
14 |
+
->addFieldToFilter('quote_id', $quote->getId());
|
15 |
+
|
16 |
+
if ($collection->count() > 0) {
|
17 |
+
return $collection->getFirstItem();
|
18 |
+
} else {
|
19 |
+
if (!is_null($quote->getReservedOrderId()) && $quote->getReservedOrderId() != 0) {
|
20 |
+
Mage::log('Quote Order ID: ' . $quote->getReservedOrderId());
|
21 |
+
$this->setId($quote->getReservedOrderId())
|
22 |
+
->setQuoteId($quote->getId())
|
23 |
+
->setStoreId($quote->getStoreId());
|
24 |
+
}
|
25 |
+
return $this;
|
26 |
+
}
|
27 |
+
}
|
28 |
+
}
|
app/code/community/Bronto/Order/Model/Quote/Observer.php
CHANGED
@@ -17,10 +17,14 @@ class Bronto_Order_Model_Quote_Observer
|
|
17 |
{
|
18 |
/* @var $quote Mage_Sales_Model_Quote */
|
19 |
$quote = $observer->getQuote();
|
|
|
|
|
|
|
|
|
20 |
|
21 |
foreach (Mage::getModel('core/cookie')->get() as $key => $value) {
|
22 |
if (stripos($key, "tid_") !== false) {
|
23 |
-
$
|
24 |
break;
|
25 |
}
|
26 |
}
|
17 |
{
|
18 |
/* @var $quote Mage_Sales_Model_Quote */
|
19 |
$quote = $observer->getQuote();
|
20 |
+
|
21 |
+
/* @var $contactQueue Bronto_Order_Model_Queue */
|
22 |
+
$orderRow = Mage::getModel('bronto_order/queue')
|
23 |
+
->loadByQuote($quote);
|
24 |
|
25 |
foreach (Mage::getModel('core/cookie')->get() as $key => $value) {
|
26 |
if (stripos($key, "tid_") !== false) {
|
27 |
+
$orderRow->setBrontoTid($value)->save();
|
28 |
break;
|
29 |
}
|
30 |
}
|
app/code/community/Bronto/Order/Model/Resource/Setup.php
CHANGED
@@ -28,4 +28,57 @@ class Bronto_Order_Model_Resource_Setup extends Mage_Sales_Model_Mysql4_Setup
|
|
28 |
|
29 |
return $definition;
|
30 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
31 |
}
|
28 |
|
29 |
return $definition;
|
30 |
}
|
31 |
+
|
32 |
+
/**
|
33 |
+
* Remove entity attribute. Overwritten for flat entities support
|
34 |
+
*
|
35 |
+
* @param int|string $entityTypeId
|
36 |
+
* @param string $code
|
37 |
+
* @param array $attr
|
38 |
+
* @return Mage_Sales_Model_Resource_Setup
|
39 |
+
*/
|
40 |
+
public function removeAttribute($entityTypeId, $code)
|
41 |
+
{
|
42 |
+
if (isset($this->_flatEntityTables[$entityTypeId]) &&
|
43 |
+
$this->_flatTableExist($this->_flatEntityTables[$entityTypeId]))
|
44 |
+
{
|
45 |
+
$this->_removeFlatAttribute($this->_flatEntityTables[$entityTypeId], $code);
|
46 |
+
$this->_removeGridAttribute($this->_flatEntityTables[$entityTypeId], $code, $entityTypeId);
|
47 |
+
} else {
|
48 |
+
parent::removeAttribute($entityTypeId, $code, $attr);
|
49 |
+
}
|
50 |
+
return $this;
|
51 |
+
}
|
52 |
+
|
53 |
+
/**
|
54 |
+
* Remove an attribute as separate column in the table
|
55 |
+
* The sales setup class doesn't support it by default
|
56 |
+
*
|
57 |
+
* @param string $table
|
58 |
+
* @param string $attribute
|
59 |
+
* @param array $attr
|
60 |
+
* @return Mage_Sales_Model_Resource_Setup
|
61 |
+
*/
|
62 |
+
protected function _removeFlatAttribute($table, $attribute)
|
63 |
+
{
|
64 |
+
$this->getConnection()->dropColumn($this->getTable($table), $attribute);
|
65 |
+
return $this;
|
66 |
+
}
|
67 |
+
|
68 |
+
/**
|
69 |
+
* Remove attribute from grid
|
70 |
+
*
|
71 |
+
* @param string $table
|
72 |
+
* @param string $attribute
|
73 |
+
* @param array $attr
|
74 |
+
* @param string $entityTypeId
|
75 |
+
* @return Mage_Sales_Model_Resource_Setup
|
76 |
+
*/
|
77 |
+
protected function _removeGridAttribute($table, $attribute, $entityTypeId)
|
78 |
+
{
|
79 |
+
if (in_array($entityTypeId, $this->_flatEntitiesGrid)) {
|
80 |
+
$this->getConnection()->dropColumn($this->getTable($table . '_grid'), $attribute);
|
81 |
+
}
|
82 |
+
return $this;
|
83 |
+
}
|
84 |
}
|
app/code/community/Bronto/Order/Test/Config/Config.php
CHANGED
@@ -24,6 +24,8 @@ class Bronto_Order_Test_Config_Config
|
|
24 |
return array(
|
25 |
array('bronto_order_resource/setup', 'Bronto_Order_Model_Resource_Setup'),
|
26 |
array('bronto_order_resource/order_collection', 'Bronto_Order_Model_Resource_Order_Collection'),
|
|
|
|
|
27 |
);
|
28 |
}
|
29 |
|
@@ -36,6 +38,7 @@ class Bronto_Order_Test_Config_Config
|
|
36 |
array('bronto_order/system_config_backend_cron', 'Bronto_Order_Model_System_Config_Backend_Cron'),
|
37 |
array('bronto_order/system_config_source_description', 'Bronto_Order_Model_System_Config_Source_Description'),
|
38 |
array('bronto_order/system_config_source_limit', 'Bronto_Order_Model_System_Config_Source_Limit'),
|
|
|
39 |
);
|
40 |
}
|
41 |
|
24 |
return array(
|
25 |
array('bronto_order_resource/setup', 'Bronto_Order_Model_Resource_Setup'),
|
26 |
array('bronto_order_resource/order_collection', 'Bronto_Order_Model_Resource_Order_Collection'),
|
27 |
+
array('bronto_order_mysql4/queue', 'Bronto_Order_Model_Mysql4_Queue'),
|
28 |
+
array('bronto_order_mysql4/queue_collection', 'Bronto_Order_Model_Mysql4_Queue_Collection'),
|
29 |
);
|
30 |
}
|
31 |
|
38 |
array('bronto_order/system_config_backend_cron', 'Bronto_Order_Model_System_Config_Backend_Cron'),
|
39 |
array('bronto_order/system_config_source_description', 'Bronto_Order_Model_System_Config_Source_Description'),
|
40 |
array('bronto_order/system_config_source_limit', 'Bronto_Order_Model_System_Config_Source_Limit'),
|
41 |
+
array('bronto_order/queue', 'Bronto_Order_Model_Queue'),
|
42 |
);
|
43 |
}
|
44 |
|
app/code/community/Bronto/Order/controllers/Adminhtml/OrderController.php
CHANGED
@@ -14,21 +14,9 @@ class Bronto_Order_Adminhtml_OrderController extends Mage_Adminhtml_Controller_A
|
|
14 |
try {
|
15 |
$result = array('total' => 0, 'success' => 0, 'error' => 0);
|
16 |
$model = Mage::getModel('bronto_order/observer');
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
$storeIds[] = $store->getId();
|
21 |
-
} elseif ($websiteCode = Mage::app()->getRequest()->getParam('website')){
|
22 |
-
$website = Mage::app()->getWebsite($websiteCode);
|
23 |
-
$storeIds = $website->getStoreIds();
|
24 |
-
} elseif ($groupCode = Mage::app()->getRequest()->getParam('group')){
|
25 |
-
$website = Mage::app()->getGroup($groupCode)->getWebsite();
|
26 |
-
$storeIds = $website->getStoreIds();
|
27 |
-
} else {
|
28 |
-
$storeIds = false;
|
29 |
-
}
|
30 |
-
|
31 |
-
if ($storeIds) {
|
32 |
foreach ($storeIds as $storeId) {
|
33 |
$storeResult = $model->processOrdersForStore($storeId);
|
34 |
$result['total'] += $storeResult['total'];
|
@@ -58,41 +46,24 @@ class Bronto_Order_Adminhtml_OrderController extends Mage_Adminhtml_Controller_A
|
|
58 |
*/
|
59 |
public function resetAction()
|
60 |
{
|
61 |
-
$
|
62 |
-
$
|
63 |
-
|
|
|
64 |
|
65 |
-
if ($
|
66 |
-
$
|
67 |
-
$storeIds[] = $store->getId();
|
68 |
-
} elseif ($websiteCode = Mage::app()->getRequest()->getParam('website')){
|
69 |
-
$website = Mage::app()->getWebsite($websiteCode);
|
70 |
-
$storeIds = $website->getStoreIds();
|
71 |
-
} elseif ($groupCode = Mage::app()->getRequest()->getParam('group')){
|
72 |
-
$website = Mage::app()->getGroup($groupCode)->getWebsite();
|
73 |
-
$storeIds = $website->getStoreIds();
|
74 |
-
} else {
|
75 |
-
$storeIds[] = null;
|
76 |
}
|
77 |
-
|
78 |
-
foreach ($
|
79 |
-
$sql = "
|
80 |
-
UPDATE {$tablePrefix}sales_flat_order
|
81 |
-
SET bronto_imported = null
|
82 |
-
";
|
83 |
-
if (!empty($storeId)) {
|
84 |
-
$storeId = (int) $storeId;
|
85 |
-
$sql .= " WHERE store_id = {$storeId}";
|
86 |
-
}
|
87 |
-
|
88 |
try {
|
89 |
-
$
|
90 |
} catch (Exception $e) {
|
91 |
Mage::helper('bronto_order')->writeError($e);
|
92 |
$this->_getSession()->addError('Reset failed: ' . $e->getMessage());
|
93 |
}
|
94 |
}
|
95 |
-
|
96 |
$this->_redirect('*/system_config/edit', array('section' => 'bronto_order'));
|
97 |
}
|
98 |
|
14 |
try {
|
15 |
$result = array('total' => 0, 'success' => 0, 'error' => 0);
|
16 |
$model = Mage::getModel('bronto_order/observer');
|
17 |
+
$helper = Mage::helper('bronto_order');
|
18 |
+
|
19 |
+
if ($storeIds = $helper->getStoreIds()) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
20 |
foreach ($storeIds as $storeId) {
|
21 |
$storeResult = $model->processOrdersForStore($storeId);
|
22 |
$result['total'] += $storeResult['total'];
|
46 |
*/
|
47 |
public function resetAction()
|
48 |
{
|
49 |
+
$helper = Mage::helper('bronto_order');
|
50 |
+
$storeIds = $helper->getStoreIds();
|
51 |
+
|
52 |
+
$collection = Mage::getModel('bronto_order/queue')->getCollection();
|
53 |
|
54 |
+
if ($storeIds) {
|
55 |
+
$collection->addStoreFilter($storeIds);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
56 |
}
|
57 |
+
|
58 |
+
foreach ($collection->getItems() as $orderRow) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
59 |
try {
|
60 |
+
$orderRow->setBrontoImported(null)->save();
|
61 |
} catch (Exception $e) {
|
62 |
Mage::helper('bronto_order')->writeError($e);
|
63 |
$this->_getSession()->addError('Reset failed: ' . $e->getMessage());
|
64 |
}
|
65 |
}
|
66 |
+
|
67 |
$this->_redirect('*/system_config/edit', array('section' => 'bronto_order'));
|
68 |
}
|
69 |
|
app/code/community/Bronto/Order/etc/config.xml
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Bronto_Order>
|
5 |
-
<version>1.1.
|
6 |
</Bronto_Order>
|
7 |
</modules>
|
8 |
<global>
|
@@ -28,10 +28,17 @@
|
|
28 |
<bronto_order>
|
29 |
<class>Bronto_Order_Model</class>
|
30 |
<resourceModel>bronto_order_resource</resourceModel>
|
|
|
31 |
</bronto_order>
|
32 |
<bronto_order_resource>
|
33 |
<class>Bronto_Order_Model_Resource</class>
|
34 |
</bronto_order_resource>
|
|
|
|
|
|
|
|
|
|
|
|
|
35 |
</models>
|
36 |
<resources>
|
37 |
<bronto_order_setup>
|
@@ -55,15 +62,15 @@
|
|
55 |
</bronto_order_read>
|
56 |
</resources>
|
57 |
<events>
|
58 |
-
<
|
59 |
<observers>
|
60 |
-
<
|
61 |
<type>singleton</type>
|
62 |
<class>bronto_order/order_observer</class>
|
63 |
<method>markOrderForReimport</method>
|
64 |
-
</
|
65 |
</observers>
|
66 |
-
</
|
67 |
<sales_order_creditmemo_refund>
|
68 |
<observers>
|
69 |
<bronto_order_sales_order_creditmemo_refund>
|
@@ -86,15 +93,15 @@
|
|
86 |
</global>
|
87 |
<frontend>
|
88 |
<events>
|
89 |
-
<
|
90 |
<observers>
|
91 |
-
<
|
92 |
<type>singleton</type>
|
93 |
<class>bronto_order/quote_observer</class>
|
94 |
<method>addTidToQuote</method>
|
95 |
-
</
|
96 |
</observers>
|
97 |
-
</
|
98 |
</events>
|
99 |
</frontend>
|
100 |
<admin>
|
@@ -129,8 +136,7 @@
|
|
129 |
</default>
|
130 |
<crontab>
|
131 |
<jobs>
|
132 |
-
<bronto_order_import>
|
133 |
-
<schedule><cron_expr>*/15 * * * *</cron_expr></schedule>
|
134 |
<run><model>bronto_order/observer::processOrders</model></run>
|
135 |
</bronto_order_import>
|
136 |
</jobs>
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Bronto_Order>
|
5 |
+
<version>1.1.6</version>
|
6 |
</Bronto_Order>
|
7 |
</modules>
|
8 |
<global>
|
28 |
<bronto_order>
|
29 |
<class>Bronto_Order_Model</class>
|
30 |
<resourceModel>bronto_order_resource</resourceModel>
|
31 |
+
<resourceModel>bronto_order_mysql4</resourceModel>
|
32 |
</bronto_order>
|
33 |
<bronto_order_resource>
|
34 |
<class>Bronto_Order_Model_Resource</class>
|
35 |
</bronto_order_resource>
|
36 |
+
<bronto_order_mysql4>
|
37 |
+
<class>Bronto_Order_Model_Mysql4</class>
|
38 |
+
<entities>
|
39 |
+
<queue><table>bronto_order_queue</table></queue>
|
40 |
+
</entities>
|
41 |
+
</bronto_order_mysql4>
|
42 |
</models>
|
43 |
<resources>
|
44 |
<bronto_order_setup>
|
62 |
</bronto_order_read>
|
63 |
</resources>
|
64 |
<events>
|
65 |
+
<sales_order_save_after>
|
66 |
<observers>
|
67 |
+
<bronto_order_sales_order_save_after>
|
68 |
<type>singleton</type>
|
69 |
<class>bronto_order/order_observer</class>
|
70 |
<method>markOrderForReimport</method>
|
71 |
+
</bronto_order_sales_order_save_after>
|
72 |
</observers>
|
73 |
+
</sales_order_save_after>
|
74 |
<sales_order_creditmemo_refund>
|
75 |
<observers>
|
76 |
<bronto_order_sales_order_creditmemo_refund>
|
93 |
</global>
|
94 |
<frontend>
|
95 |
<events>
|
96 |
+
<sales_quote_save_after>
|
97 |
<observers>
|
98 |
+
<bronto_order_sales_quote_save_after>
|
99 |
<type>singleton</type>
|
100 |
<class>bronto_order/quote_observer</class>
|
101 |
<method>addTidToQuote</method>
|
102 |
+
</bronto_order_sales_quote_save_after>
|
103 |
</observers>
|
104 |
+
</sales_quote_save_after>
|
105 |
</events>
|
106 |
</frontend>
|
107 |
<admin>
|
136 |
</default>
|
137 |
<crontab>
|
138 |
<jobs>
|
139 |
+
<bronto_order_import>
|
|
|
140 |
<run><model>bronto_order/observer::processOrders</model></run>
|
141 |
</bronto_order_import>
|
142 |
</jobs>
|
app/code/community/Bronto/Order/sql/bronto_order_setup/mysql4-upgrade-1.1.5-1.1.6.php
ADDED
@@ -0,0 +1,51 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* fall back to create table if existing modules already exists to support upgrade
|
4 |
+
*/
|
5 |
+
|
6 |
+
$installer = $this;
|
7 |
+
/* @var $installer Mage_Core_Model_Resource_Setup */
|
8 |
+
|
9 |
+
$installer->startSetup();
|
10 |
+
|
11 |
+
try {
|
12 |
+
// Create New Table
|
13 |
+
$installer->run("
|
14 |
+
CREATE TABLE IF NOT EXISTS `{$this->getTable('bronto_order_queue')}` (
|
15 |
+
`order_id` int(10) unsigned NOT NULL COMMENT 'Order Entity Id',
|
16 |
+
`quote_id` int(11) DEFAULT NULL COMMENT 'Quote Id',
|
17 |
+
`store_id` smallint(5) unsigned DEFAULT NULL COMMENT 'Store Id',
|
18 |
+
`bronto_tid` varchar(255) DEFAULT NULL COMMENT 'Bronto Tid',
|
19 |
+
`bronto_imported` datetime DEFAULT NULL COMMENT 'Bronto Imported',
|
20 |
+
`created_at` timestamp NULL DEFAULT NULL COMMENT 'Created At',
|
21 |
+
`updated_at` timestamp NULL DEFAULT NULL COMMENT 'Updated At',
|
22 |
+
PRIMARY KEY (`order_id`),
|
23 |
+
KEY `IDX_BRONTO_ORDER_QUEUE_STORE_ID` (`store_id`),
|
24 |
+
KEY `IDX_BRONTO_ORDER_QUEUE_QUOTE_ID` (`quote_id`),
|
25 |
+
KEY `IDX_BRONTO_ORDER_QUEUE_BRONTO_IMPORTED` (`bronto_imported`),
|
26 |
+
KEY `IDX_BRONTO_ORDER_QUEUE_CREATED_AT` (`created_at`),
|
27 |
+
KEY `IDX_BRONTO_ORDER_QUEUE_UPDATED_AT` (`updated_at`),
|
28 |
+
CONSTRAINT `FK_BRONTO_ORDER_QUEUE_STORE_ID_CORE_STORE_STORE_ID` FOREIGN KEY (`store_id`) REFERENCES {$this->getTable('core_store')} (`store_id`) ON DELETE SET NULL ON UPDATE CASCADE
|
29 |
+
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Bronto Order Import Queue';
|
30 |
+
");
|
31 |
+
|
32 |
+
// Populate New Table
|
33 |
+
$installer->run("
|
34 |
+
INSERT IGNORE INTO `{$this->getTable('bronto_order_queue')}`
|
35 |
+
(`order_id`, `quote_id`, `store_id`, `bronto_tid`, `bronto_imported`, `created_at`, `updated_at`)
|
36 |
+
SELECT `entity_id`, `quote_id`, `store_id`, `bronto_tid`, `bronto_imported`, `created_at`, `updated_at`
|
37 |
+
FROM `{$this->getTable('sales/order')}`;
|
38 |
+
");
|
39 |
+
|
40 |
+
// Remove Quote and Order Attributes that were added on install
|
41 |
+
$installer->getConnection()->dropKey(
|
42 |
+
$installer->getTable('sales/order'), 'IDX_BRONTO_IMPORTED'
|
43 |
+
);
|
44 |
+
$installer->removeAttribute('quote', 'bronto_tid');
|
45 |
+
$installer->removeAttribute('order', 'bronto_tid');
|
46 |
+
$installer->removeAttribute('order', 'bronto_imported');
|
47 |
+
} catch (Exception $e) {
|
48 |
+
throw new RuntimeException('Failed Creating and Populating Table: ' . $e->getMessage());
|
49 |
+
}
|
50 |
+
|
51 |
+
$installer->endSetup();
|
app/code/community/Bronto/Reminder/Test/Config/Config.php
CHANGED
@@ -29,8 +29,7 @@ class Bronto_Reminder_Test_Config_Config
|
|
29 |
{
|
30 |
return array(
|
31 |
array('adminhtml', 'controller_action_predispatch', 'bronto_reminder/observer', 'checkBrontoRequirements'),
|
32 |
-
array('global', 'salesrule_rule_get_coupon_types', 'bronto_reminder/observer', 'getCouponTypes'),
|
33 |
-
array('global', 'checkout_allow_guest', 'bronto_reminder/observer', 'storeGuestEmailCheckout'),
|
34 |
array('global', 'adminhtml_promo_quote_edit_tab_main_prepare_form', 'bronto_reminder/observer', 'updatePromoQuoteTabMainForm'),
|
35 |
array('frontend', 'sales_quote_save_before', 'bronto_reminder/observer', 'storeGuestEmailCheckout'),
|
36 |
);
|
29 |
{
|
30 |
return array(
|
31 |
array('adminhtml', 'controller_action_predispatch', 'bronto_reminder/observer', 'checkBrontoRequirements'),
|
32 |
+
array('global', 'salesrule_rule_get_coupon_types', 'bronto_reminder/observer', 'getCouponTypes'),
|
|
|
33 |
array('global', 'adminhtml_promo_quote_edit_tab_main_prepare_form', 'bronto_reminder/observer', 'updatePromoQuoteTabMainForm'),
|
34 |
array('frontend', 'sales_quote_save_before', 'bronto_reminder/observer', 'storeGuestEmailCheckout'),
|
35 |
);
|
app/code/community/Bronto/Reminder/etc/config.xml
CHANGED
@@ -177,8 +177,7 @@
|
|
177 |
</adminhtml>
|
178 |
<crontab>
|
179 |
<jobs>
|
180 |
-
<bronto_reminder_send_notification>
|
181 |
-
<schedule><cron_expr>*/15 * * * *</cron_expr></schedule>
|
182 |
<run><model>bronto_reminder/observer::scheduledNotification</model></run>
|
183 |
</bronto_reminder_send_notification>
|
184 |
</jobs>
|
177 |
</adminhtml>
|
178 |
<crontab>
|
179 |
<jobs>
|
180 |
+
<bronto_reminder_send_notification>
|
|
|
181 |
<run><model>bronto_reminder/observer::scheduledNotification</model></run>
|
182 |
</bronto_reminder_send_notification>
|
183 |
</jobs>
|
app/code/community/Bronto/Roundtrip/Test/Model/Roundtrip.php
CHANGED
@@ -15,6 +15,7 @@ class Bronto_RoundTrip_Test_Model_Roundtrip
|
|
15 |
*/
|
16 |
public function processOrderShouldFailGracefully()
|
17 |
{
|
|
|
18 |
$sessions = array('admin/session', 'adminhtml/session', 'core/session');
|
19 |
foreach ($sessions as $session) {
|
20 |
$sessionMock = $this->getModelMockBuilder($session)
|
@@ -70,6 +71,11 @@ class Bronto_RoundTrip_Test_Model_Roundtrip
|
|
70 |
->method('getOrderObject')
|
71 |
->will($this->returnValue($orderObjectMock));
|
72 |
|
|
|
|
|
|
|
|
|
|
|
73 |
// Don't care about any of the following methods - just need to be
|
74 |
// Mocked so they don't choke the system when testing.
|
75 |
$roundTrip->expects($this->any())
|
@@ -78,6 +84,7 @@ class Bronto_RoundTrip_Test_Model_Roundtrip
|
|
78 |
|
79 |
$roundTrip->expects($this->any())
|
80 |
->method('_testCreateContact')
|
|
|
81 |
->will($this->returnValue(true));
|
82 |
|
83 |
$roundTrip->expects($this->any())
|
15 |
*/
|
16 |
public function processOrderShouldFailGracefully()
|
17 |
{
|
18 |
+
$this->markTestIncomplete('_createContact is not mocked correctly - should prob be refactored instead');
|
19 |
$sessions = array('admin/session', 'adminhtml/session', 'core/session');
|
20 |
foreach ($sessions as $session) {
|
21 |
$sessionMock = $this->getModelMockBuilder($session)
|
71 |
->method('getOrderObject')
|
72 |
->will($this->returnValue($orderObjectMock));
|
73 |
|
74 |
+
/*$commonApi = $this->getMock('Bronto_Common_Model_Api', array('getOrderObject'));
|
75 |
+
$commonApi->expects($this->any())
|
76 |
+
->method('getContactObject()')
|
77 |
+
->will($this->returnValue());*/
|
78 |
+
|
79 |
// Don't care about any of the following methods - just need to be
|
80 |
// Mocked so they don't choke the system when testing.
|
81 |
$roundTrip->expects($this->any())
|
84 |
|
85 |
$roundTrip->expects($this->any())
|
86 |
->method('_testCreateContact')
|
87 |
+
//->with($this->returnValue($commonApi))
|
88 |
->will($this->returnValue(true));
|
89 |
|
90 |
$roundTrip->expects($this->any())
|
app/design/frontend/base/default/template/bronto/newsletter/js.phtml
CHANGED
@@ -16,6 +16,9 @@ function prepareNewsletterField() {
|
|
16 |
<?php if ($this->isSubscribed() || $this->isEnabledCheckedByDefault()): ?>
|
17 |
$('billing:is_subscribed_box').checked = true;
|
18 |
$('billing:is_subscribed').value = 1;
|
|
|
|
|
|
|
19 |
<?php endif ?>
|
20 |
<?php else: ?>
|
21 |
Element.hide('register-customer-newsletter');
|
@@ -28,6 +31,9 @@ function prepareNewsletterField() {
|
|
28 |
<?php if ($this->isSubscribed() || $this->isEnabledCheckedByDefault()): ?>
|
29 |
$('billing:is_subscribed_box').checked = true;
|
30 |
$('billing:is_subscribed').value = 1;
|
|
|
|
|
|
|
31 |
<?php endif ?>
|
32 |
<?php else: ?>
|
33 |
Element.hide('register-customer-newsletter');
|
@@ -38,6 +44,8 @@ function prepareNewsletterField() {
|
|
38 |
}
|
39 |
<?php if ($this->isSubscribed() && !$this->isEnabledIfAlreadySubscribed()): ?>
|
40 |
Element.hide('register-customer-newsletter');
|
|
|
|
|
41 |
<?php endif; ?>
|
42 |
}
|
43 |
|
@@ -47,8 +55,9 @@ Event.observe(window, 'load', function() {
|
|
47 |
prepareNewsletterField();
|
48 |
});
|
49 |
}
|
50 |
-
$$('#co-billing-form fieldset')[0].insert('<
|
51 |
-
$$('#co-billing-form fieldset')[0].insert('<
|
|
|
52 |
prepareNewsletterField();
|
53 |
});
|
54 |
</script>
|
16 |
<?php if ($this->isSubscribed() || $this->isEnabledCheckedByDefault()): ?>
|
17 |
$('billing:is_subscribed_box').checked = true;
|
18 |
$('billing:is_subscribed').value = 1;
|
19 |
+
<?php else: ?>
|
20 |
+
$('billing:is_subscribed_box').checked = false;
|
21 |
+
$('billing:is_subscribed').value = 0;
|
22 |
<?php endif ?>
|
23 |
<?php else: ?>
|
24 |
Element.hide('register-customer-newsletter');
|
31 |
<?php if ($this->isSubscribed() || $this->isEnabledCheckedByDefault()): ?>
|
32 |
$('billing:is_subscribed_box').checked = true;
|
33 |
$('billing:is_subscribed').value = 1;
|
34 |
+
<?php else: ?>
|
35 |
+
$('billing:is_subscribed_box').checked = false;
|
36 |
+
$('billing:is_subscribed').value = 0;
|
37 |
<?php endif ?>
|
38 |
<?php else: ?>
|
39 |
Element.hide('register-customer-newsletter');
|
44 |
}
|
45 |
<?php if ($this->isSubscribed() && !$this->isEnabledIfAlreadySubscribed()): ?>
|
46 |
Element.hide('register-customer-newsletter');
|
47 |
+
$('billing:is_subscribed_box').checked = true;
|
48 |
+
$('billing:is_subscribed').value = 1;
|
49 |
<?php endif; ?>
|
50 |
}
|
51 |
|
55 |
prepareNewsletterField();
|
56 |
});
|
57 |
}
|
58 |
+
$$('#co-billing-form fieldset')[0].insert('<span id="register-customer-newsletter" style="display:none;"></span>')
|
59 |
+
$$('#co-billing-form fieldset #register-customer-newsletter')[0].insert('<style>.col1-layout .billing_is_subscribed_box { margin-left: 240px !important; } .col1-layout #billing_subscribed_label { text-align: left; }</style>');
|
60 |
+
$$('#co-billing-form fieldset #register-customer-newsletter')[0].insert('<input id="billing:is_subscribed" type="hidden" name="billing[is_subscribed]" value="1" /><input id="billing:is_subscribed_box" class="billing_is_subscribed_box" type="checkbox" onchange="$(\'billing:is_subscribed\').value = this.checked ? 1 : 0" checked="checked" title="<?php echo $this->__($this->getCheckboxLabelText()) ?>" style="float:left; width: auto; margin: 2px 8px 0 0;" /><label id="billing_subscribed_label" for="billing[is_subscribed]"><?php echo $this->__($this->getCheckboxLabelText()) ?></label>');
|
61 |
prepareNewsletterField();
|
62 |
});
|
63 |
</script>
|
package.xml
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>Bronto_Extension</name>
|
4 |
-
<version>2.0.
|
5 |
<stability>stable</stability>
|
6 |
<license uri="http://opensource.org/licenses/osl-3.0.php">OSL</license>
|
7 |
<channel>community</channel>
|
@@ -55,9 +55,9 @@
|
|
55 |
<p />Bronto Software provides a cloud-based marketing platform for retailers to drive revenue through their email, mobile and social campaigns. The platform is used by over 1000 organizations worldwide, including Party City, Armani Exchange, Timex, Samsonite and Gander Mountain. Bronto is a Gold Magento Industry Partner and the leading self-service email marketing provider to the Internet Retailer Top 1000. Bronto is headquartered in Durham, NC with an office in London, UK. For more information, visit <a href="http://bronto.com">bronto.com</a>.</p></description>
|
56 |
<notes><p />For installation and configuration instructions, as well as a full list of new features and known issues, please review the <a href="http://a.bron.to/magento">Implementation Guide</a>.</notes>
|
57 |
<authors><author><name>Dave Johnson</name><user>BrontoSoftware</user><email>dave.johnson@bronto.com</email></author></authors>
|
58 |
-
<date>2013-
|
59 |
-
<time>
|
60 |
-
<contents><target name="magecommunity"><dir name="Bronto"><dir name="Common"><dir name="Block"><dir name="Adminhtml"><dir name="System"><dir name="Config"><file name="About.php" hash="b9a97e617dd42ef7d79e928338b9c845"/><file name="Cron.php" hash="b1c18891073fa233cd5e44f16c60ec97"/><dir name="Form"><dir name="Field"><file name="Apitoken.php" hash="6f3121e8a5ee54c58993654018048b9e"/><file name="Hidden.php" hash="18a13153df6dd084840086105f8117cc"/><file name="List.php" hash="48f36e9d06e6bc759e36ebb1128aa513"/></dir><file name="Field.php" hash="bfc0b65b927934ba54bb5225c0fb9247"/></dir></dir></dir></dir></dir><dir name="Helper"><file name="Contact.php" hash="aa0f86b84c97399bdf259935de33dca0"/><file name="Data.php" hash="51ab32c1c02291919613d0cd55b5f68f"/><file name="DataInterface.php" hash="a6700f3a4a79f6d6468df24f714427a9"/><file name="Field.php" hash="683839cfcd4fd5cd81b0393fc67b019c"/><file name="Message.php" hash="22d6224ab354a6ed7dc13d1e6e0a2fc5"/><file name="Product.php" hash="64202787e5f0c63a38efff387ab3c325"/></dir><dir name="Model"><file name="Api.php" hash="3716948a5e50e621625714a1e3a93263"/><dir name="Email"><dir name="Message"><file name="Filter.php" hash="4668bb03abbb5029980765c0b712fd5c"/><file name="Templatefilter.php" hash="783dcbb689021665f2b7f34f83bb99c2"/></dir><file name="Message.php" hash="17086fba16eed6986c0ab1fafbeffbd6"/></dir><file name="Keysentry.php" hash="fd39d0a0208668723d0c0adb0b31bd67"/><file name="Observer.php" hash="73b02a94aba279c05dd7753ac10fdb75"/><dir name="Resource"><file name="Setup.php" hash="780f5c070cbd9da2f003372ee90a0891"/></dir><dir name="System"><dir name="Config"><dir name="Backend"><file name="Cron.php" hash="b05e28fb0cc0db0377eee68ffc712c10"/><file name="Token.php" hash="03a0cf45efe77307e06afa3b4a98b214"/></dir><dir name="Source"><dir name="Contact"><file name="Status.php" hash="1bf6c053f8132a36dd6882e0f1faf45f"/></dir><dir name="Cron"><file name="Frequency.php" hash="c6689871a7a8add3dc4b84e4a2ff6f10"/><file name="Minutes.php" hash="be3e3066819785b55a25f22c5bc9392a"/></dir><file name="Field.php" hash="36d8ea711c4eecfa6eaa6b6e3216920e"/><file name="List.php" hash="69497100fe9f036c442b9d94133c8f4a"/><file name="Message.php" hash="4fb4e4f9deaabe4971bfcdf3e12b0da4"/></dir></dir></dir></dir><dir name="Test"><dir name="Config"><file name="Config.php" hash="02b55ba2804a024740506c4df0ebdd42"/></dir><dir name="Model"><file name="Checkout.php" hash="9716ab2c76558e463f1a105308973b74"/><dir name="Keysentry"><dir name="fixtures"><file name="seed.yaml" hash="3a9b13b2ef5a72bea298be72edba821d"/></dir></dir><file name="Keysentry.php" hash="fe06eff7212d57057ed1ee490238694f"/></dir></dir><dir name="controllers"><file name="LogController.php" hash="d97e8dc3624053d563389b8b19c71c06"/></dir><dir name="etc"><file name="adminhtml.xml" hash="f5792bf262cf83cc193d23c09a17a03f"/><file name="config.xml" hash="598489278d358a7297d3ef0f97e5bce2"/><file name="system.xml" hash="3a7ab89d5c344d5600b52604ee5b681a"/></dir><dir name="sql"><dir name="bronto_common_setup"><file name="mysql4-install-1.7.0.php" hash="c8459d26fdfea2fb9430e8829b3257e1"/></dir></dir></dir><dir name="ConflictChecker"><dir name="Block"><dir name="Adminhtml"><dir name="System"><dir name="Config"><file name="About.php" hash="9049055c03e261b2452c926d801196a6"/><file name="Conflictchecker.php" hash="c00f929ef55e95597761871674077b10"/></dir></dir></dir><file name="Printer.php" hash="cd8ef4c01028da3d690ce6f5c53d1f61"/></dir><dir name="Helper"><file name="Data.php" hash="0f5c562370c77b6cfe9579dc7fe396d0"/></dir><dir name="Model"><dir name="Config"><file name="Blocks.php" hash="78eb63947ae94be2b1dc9ee42de52152"/><file name="Checker.php" hash="a1a38b9c4a518e0be2e4ea84adab0107"/><file name="ConfigAbstract.php" hash="8bc2be8485543a17338cb953d760c71c"/><file name="ConfigInterface.php" hash="86a788c1b1971828c8f947b42f03baea"/><file name="Datastore.php" hash="d2b37735fe127d831e6055e05b232fb8"/><file name="Helpers.php" hash="3de600b842bf90c53417843e9b4c1946"/><file name="Models.php" hash="0358f506ff4e5820b61b076701f0746d"/><file name="Printer.php" hash="6d2aec31a623b943d3d982c97999be13"/><file name="Resources.php" hash="9f12487e864cd4005c53b72fe02e4cf4"/></dir><dir name="Core"><dir name="Config"><file name="Base.php" hash="b1ecb5cd90e050d1c825beb65e6d888e"/><file name="Element.php" hash="2efb1a1c022cb393ab5718c1f7eafd1f"/></dir><file name="Config.php" hash="29408203a0aa8b7afa84ba16b1416f91"/></dir><dir name="Lib"><dir name="Varien"><dir name="Simplexml"><file name="Config.php" hash="3acbdd7d7c9fa6c346688e5083569596"/><file name="Element.php" hash="f5961e7a41035851cabf7fcd8022a13a"/></dir></dir></dir><dir name="Mysql4"><dir name="Core"><file name="Config.php" hash="36685bb89b45c71cfc447727ce66ea9a"/></dir></dir><dir name="Path"><dir name="Locator"><file name="Array.php" hash="f82c5966dab92ed91a9441a0231e7ace"/><file name="Factory.php" hash="bea2e4a6bea17815a9040341209f4256"/><file name="IteratorAbstract.php" hash="9adccb7c853d80e8d64a0eb8346f3cbc"/><file name="LocatorInterface.php" hash="b3cf0d528296ee0e87e7898da44baa47"/><file name="Stack.php" hash="4524078604b43dffcf57c7a23959ef03"/></dir></dir><dir name="Resource"><dir name="Core"><file name="Config.php" hash="6b69bd1c0ce0e4c92c1c96436f79e83d"/></dir></dir></dir><dir name="Test"><dir name="Config"><file name="Config.php" hash="23de17a20f7a5588bb9761a2d3eb79ae"/></dir><dir name="Model"><dir name="Path"><dir name="Locator"><file name="Array.php" hash="e219f193e027d5c9a5d9cb9d7a27a6ac"/><file name="Factory.php" hash="36ffe1ec656f3f3ba1f99dd743e52c0b"/><file name="Stack.php" hash="29cbf00cd66bc61ee16c740847d9f400"/></dir></dir></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="9d5cab56f52b0d12688c5787e3bfa03f"/><file name="config.xml" hash="0497e6c9bf942db62d01e0595437166b"/><file name="system.xml" hash="6d6b10860c55f815efe815d7ee0c2290"/></dir></dir><dir name="Customer"><dir name="Block"><dir name="Adminhtml"><dir name="System"><dir name="Config"><file name="About.php" hash="5874d9bf1ff106212a348815104c5244"/><file name="Cron.php" hash="28f60152deb249501def5ec612623398"/><dir name="Form"><dir name="Fieldset"><dir name="Attributes"><file name="Address.php" hash="3dc1e6ab5531e65d229f136b0e7cf1fe"/><file name="Customer.php" hash="655784371a5be6e32b12ad3742145d6d"/></dir><file name="Attributes.php" hash="fd77169977b903ecbd179723c9bad5dd"/></dir></dir></dir></dir><dir name="Widget"><dir name="Button"><file name="Reset.php" hash="74d38897533f7b4e67d476dd791a38ee"/><file name="Run.php" hash="e707627c781ea4323d1924fa33094320"/></dir></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="4c9539a4521e77e961f761301a81a191"/></dir><dir name="Model"><file name="Observer.php" hash="6bff80541229952a66c3c8ffc79bae73"/><dir name="Resource"><dir name="Customer"><file name="Collection.php" hash="35a0ce62d2a29b9cb768698121dfe87b"/></dir><file name="Setup.php" hash="6e988a951049e5b0e0e7ed214e84f277"/></dir><dir name="System"><dir name="Config"><dir name="Backend"><file name="Cron.php" hash="dbcd55d41447d46fded27dfa2e6febb0"/><file name="Newfield.php" hash="d9a66dbc0b932fb80c7c947c3ce29bba"/></dir></dir></dir></dir><dir name="Test"><dir name="Config"><file name="Config.php" hash="1610a3a3256fc0d1b277bb2d82431ae0"/></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="CustomerController.php" hash="d25faab3ee92f4af43347d7924239592"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="6cc229b440b34da710887aaf96bbcf81"/><file name="config.xml" hash="8e547a9e25ef2b203cacaf420107044b"/><file name="system.xml" hash="4ea888d7af3d269937ac8358e8c862ff"/></dir><dir name="sql"><dir name="bronto_customer_setup"><file name="mysql4-install-1.0.0.php" hash="871c225318588b2804a05751bce45e1f"/></dir></dir></dir><dir name="Email"><dir name="Block"><dir name="Adminhtml"><dir name="System"><dir name="Config"><file name="About.php" hash="10cb51420b205c100ef46cf59edef05b"/></dir><dir name="Email"><dir name="Log"><dir name="Grid"><dir name="Renderer"><file name="Customer.php" hash="c2530287b293e05508816049586ef5c2"/><file name="Fields.php" hash="6c5d921b6c636329f035381af4c7f028"/></dir></dir><file name="Grid.php" hash="b54cada4029aa45290679e6cf69f8c47"/></dir><file name="Log.php" hash="3fa0b873d262b3d5c6161c1aef33e6ae"/><dir name="Template"><dir name="Edit"><file name="Form.php" hash="804a3fc8d0e773639f8eb2fe3df1ab1f"/></dir><file name="Edit.php" hash="bcc5b9ba9bee92a3e8f33684dd02506f"/><dir name="Grid"><dir name="Renderer"><file name="Message.php" hash="bf56f19c9f4310609fbb9a788768e222"/></dir></dir><file name="Grid.php" hash="6a253035cf2db239f93b73667e92ee63"/></dir><file name="Template.php" hash="b33503babba2480ca840569629dfbb07"/></dir></dir></dir></dir><dir name="Helper"><file name="Contact.php" hash="712033409f93712e4a22cf89252d44e4"/><file name="Data.php" hash="e582e103dfe73cb4ab9e6eb675f81309"/><file name="Field.php" hash="e4714e9cc95bdfe4da9a16feb604f44c"/><file name="Message.php" hash="f328dcee7934ddc48d6f4d40afff74cc"/></dir><dir name="Model"><dir name="Email"><file name="Message.php" hash="5d2c4b3ac3120352f8424863ad176dc6"/></dir><file name="Log.php" hash="2740d9cd5073106f58880e57e84ce8ee"/><dir name="Mysql4"><dir name="Log"><file name="Collection.php" hash="6de4819537636d3ea7816cb7c6fc250c"/></dir><file name="Log.php" hash="15ffb2c83281c77b5d427ff29abac776"/></dir><file name="Observer.php" hash="0b67950706c21220a4712bc0c279ba00"/><dir name="System"><dir name="Config"><dir name="Source"><dir name="Email"><file name="Template.php" hash="ba80e6553c61e731b85c027cd688ca8f"/></dir></dir></dir></dir><dir name="Template"><file name="Import.php" hash="b808d3e5a70dc30e09448b20dd000708"/></dir></dir><dir name="Test"><dir name="Config"><file name="Config.php" hash="8a74889c3f24c3053baefca6e7d7eddb"/></dir><dir name="Model"><dir name="Email"><file name="Message.php" hash="11a9aded1841673bdafd4675de78a19e"/></dir></dir></dir><dir name="controllers"><dir name="Adminhtml"><dir name="System"><dir name="Email"><file name="LogController.php" hash="386560ba30da12796614db1d0381bb7c"/><file name="TemplateController.php" hash="578112502761e70000ff10ca67502034"/></dir></dir></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="35a2ffa5e273f87b6d2de172cea4a219"/><file name="config.xml" hash="37e21ee9d0458bd28379446f063457a5"/><file name="system.xml" hash="2e6f8375e4794780c2f49f68536d2c6b"/></dir><dir name="sql"><dir name="bronto_email_setup"><file name="mysql4-install-1.0.0.php" hash="516265312ede986c1a35a19b9e5bbfea"/><file name="mysql4-install-1.0.2.php" hash="327ac219e947d608fbf9d3209dd03bab"/><file name="mysql4-install-1.0.5.php" hash="327ac219e947d608fbf9d3209dd03bab"/><file name="mysql4-install-1.0.8.php" hash="b572625c1380dfffe3b089275ac1dc7e"/><file name="mysql4-install-1.1.2.php" hash="bf80f7b12eccdad2e0e36a564e18530c"/><file name="mysql4-upgrade-1.0.0-1.0.2.php" hash="1f797c3f909d72219ef5d00017b10554"/><file name="mysql4-upgrade-1.0.2-1.0.5.php" hash="f2c83b65500d9df0fd10c2e6721f2bfe"/><file name="mysql4-upgrade-1.0.5-1.0.8.php" hash="cdbda7aa084e51b9b222c56e548462a6"/><file name="mysql4-upgrade-1.0.8-1.1.1.php" hash="f2c83b65500d9df0fd10c2e6721f2bfe"/><file name="mysql4-upgrade-1.1.1-1.1.2.php" hash="0538afef03b1e21d509593e2ad275c34"/></dir></dir></dir><dir name="Newsletter"><dir name="Block"><dir name="Adminhtml"><dir name="System"><dir name="Config"><file name="About.php" hash="bc44a52305e7cbe3a41c5f19e6257ede"/><file name="Cron.php" hash="1b4aca8bcab75685754a441e4dd77b04"/></dir></dir><dir name="Widget"><dir name="Button"><file name="Run.php" hash="4d23a9eba8aab13d9fc71ed369e42e4e"/></dir></dir></dir><dir name="Checkout"><dir name="Onepage"><file name="Newsletter.php" hash="e0ba7884794f68fe3c299946ef8e63a4"/></dir></dir></dir><dir name="Helper"><file name="Contact.php" hash="85dffba4f8edd375e53ca59f7a4bf1a0"/><file name="Data.php" hash="62e5be8e1326862fee10774654daad15"/></dir><dir name="Model"><dir name="Mysql4"><dir name="Queue"><file name="Collection.php" hash="de63f9f3b73cf040d16b1eb971d499a5"/></dir><file name="Queue.php" hash="f5a1e0ee4f7901fc555313d9828761c5"/></dir><file name="Observer.php" hash="8318825696a7020c88cec0b459843c5f"/><file name="Queue.php" hash="e7bf4ff44b4033257ae7892f1966e20d"/></dir><dir name="Test"><dir name="Config"><file name="Config.php" hash="c749aea6f1147d0b164de83c7eb0d8d1"/></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="NewsletterController.php" hash="18972c972f84cf8d267bfead4ffc1b7d"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="253518e92554bf89fabe7b832a7a562c"/><file name="config.xml" hash="5f292e14c0f89d901ed94de2351ca978"/><file name="system.xml" hash="b1cfe14bf4b8c5c4097790996bddd2f0"/></dir><dir name="sql"><dir name="bronto_newsletter_setup"><file name="mysql4-install-1.0.0.php" hash="49beafe0e59744cfe7dd1297da7c5975"/><file name="mysql4-install-1.4.0.php" hash="fa8797dee2ef1096292aefb983487eb2"/><file name="mysql4-upgrade-1.4.0-1.4.1.php" hash="bd58648cbf4a65e300ef386db3f51de5"/></dir></dir></dir><dir name="Order"><dir name="Block"><dir name="Adminhtml"><dir name="Sales"><dir name="Order"><dir name="View"><dir name="Tab"><file name="Info.php" hash="7ba16c9e796b59a179ae8af230ccf33e"/></dir></dir></dir></dir><dir name="System"><dir name="Config"><file name="About.php" hash="126e3166dace48941fccbe2bb4c80264"/><file name="Cron.php" hash="ce303baf533f78ce71680602cae07e94"/></dir></dir><dir name="Widget"><dir name="Button"><file name="Reset.php" hash="9bfbc1f1ffb38389a3a47ca009a24a35"/><file name="Run.php" hash="5b833a216bea22b962f633e33f6a86b8"/></dir></dir></dir><file name="Bta.php" hash="10f7f6f5e5e701dafefe8034095ae11e"/></dir><dir name="Helper"><file name="Data.php" hash="87f5a3a40ce32e8fcb2588ef7971c38d"/></dir><dir name="Model"><file name="Observer.php" hash="ef95f78e32c6097f97c8fe34ef951755"/><dir name="Order"><file name="Observer.php" hash="6cd2eab4b2f3535ad51125207f51a329"/></dir><dir name="Quote"><file name="Observer.php" hash="e3edc38e2c4a29c67a65348d1998bded"/></dir><dir name="Resource"><dir name="Order"><file name="Collection.php" hash="115c9b1e668b6c832b158cbce3544254"/></dir><file name="Setup.php" hash="6ad289c714abf1cf9caba38014998838"/></dir><dir name="System"><dir name="Config"><dir name="Backend"><file name="Cron.php" hash="96199a296f15518a89fde9384cf5fb0d"/></dir><dir name="Source"><file name="Description.php" hash="67364bc17dc197e4dd2a6e0382c75722"/><file name="Limit.php" hash="789f0e42eaafa65b4970ad107206102c"/></dir></dir></dir></dir><dir name="Test"><dir name="Config"><file name="Config.php" hash="34bc93c0aab6b4898e3637d2307cab3f"/></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="OrderController.php" hash="c1873347a5d6046ed593d52a74d307e2"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="0c4a0a1117117613d148157557f2abb3"/><file name="config.xml" hash="00072f04579c82955d6215dde944659d"/><file name="system.xml" hash="131d320296a91ef24c43dcb60c01ec8e"/></dir><dir name="sql"><dir name="bronto_order_setup"><file name="mysql4-install-1.0.0.php" hash="81b57488dbc44047db4099c41fdac54e"/></dir></dir></dir><dir name="PermissionChecker"><dir name="Block"><dir name="Adminhtml"><dir name="System"><dir name="Config"><file name="About.php" hash="5c0990417244c38485b5c9eda45fa80a"/><file name="Permissionchecker.php" hash="9cabf571a4dab49fa26d8ff1b35b0646"/></dir></dir></dir><file name="Printer.php" hash="7f9d480227c8211aa9e2db66ecd34f3f"/></dir><dir name="Helper"><file name="Data.php" hash="4fab093494eb9a793583e2294d2a2489"/></dir><dir name="Model"><dir name="Validator"><file name="Checker.php" hash="2a8259840b7f0e75b52bdcc93adb8922"/><file name="Directory.php" hash="89a0981e5ed7b70446054d9e8f31300e"/><file name="File.php" hash="539342c217889f7fd0f19f3b731bea23"/><dir name="Filter"><file name="PatternIterator.php" hash="9bdc50cda8d18e3335d8fc07fa72f733"/></dir><file name="Group.php" hash="8dc26a97c43fa2bbe58264b3117324a9"/><file name="Owner.php" hash="fc20d838f28c3406d74475fd4dbf33f0"/><file name="Printer.php" hash="e49b843f43f835d35ba838a2b8c7d00d"/><file name="ValidatorAbstract.php" hash="bccd4db6601922c5a632680c226e03c6"/><file name="ValidatorInterface.php" hash="877e881c030573fdbcd344174eceec8a"/></dir></dir><dir name="Test"><dir name="Config"><file name="Config.php" hash="672ed6161380fbf88a516377e62031be"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="058c7be44feea32fc5bc646a5632b4f3"/><file name="config.xml" hash="c4df9b0d873371a626029bd25cfe1c41"/><file name="system.xml" hash="4bb28ac8646a04f6ea857f79cd75475e"/></dir></dir><dir name="Reminder"><dir name="Block"><dir name="Adminhtml"><dir name="Promo"><file name="Notice.php" hash="d5991ebe75066fa76f23eb9464619f08"/></dir><dir name="Reminder"><dir name="Edit"><file name="Form.php" hash="779f8effae92303da303c889db9cef65"/><dir name="Tab"><file name="Bronto.php" hash="a4f19c14cddab68e1180723984f10ccb"/><file name="Conditions.php" hash="f3ad1c6438079bf43183825b52fde3f3"/><file name="Customers.php" hash="668c91478d859d2aa1eb6027d2bbef75"/><file name="General.php" hash="8c7ff650f320b57a208ecf825142e877"/></dir><file name="Tabs.php" hash="accefd148ad3cf28d36e890c138078f2"/></dir><file name="Edit.php" hash="a05e23f5249c97ac7965ecf27672d1a6"/><file name="Grid.php" hash="ebbe203d00c8e21ca591b55c48572cdb"/></dir><file name="Reminder.php" hash="82d616907ffc84eed0aa688f218ed7f1"/><dir name="System"><dir name="Config"><file name="About.php" hash="ce52e60802d1b9d251cef6a7c34564ce"/><file name="Cron.php" hash="ba8f69a491407b48ec72eb7351249c98"/></dir></dir><dir name="Widget"><dir name="Grid"><dir name="Column"><dir name="Renderer"><file name="Email.php" hash="5d9cbf69ea3bfcbc0f96d9a3dd8f613a"/><file name="Id.php" hash="e221f8f87969c1299a7daf3796dd7bbf"/></dir></dir></dir></dir></dir></dir><dir name="Helper"><file name="Contact.php" hash="a46c741761b5440eda28c9a8ac2df080"/><file name="Data.php" hash="36eff50aafd65ca66f13aa15c5e65beb"/><file name="Message.php" hash="a02936281f98cd990ecd17c32bfada46"/></dir><dir name="Model"><dir name="Condition"><file name="Abstract.php" hash="92b5e50a4e9b39dff50d83f1099db882"/><dir name="Combine"><file name="Abstract.php" hash="ea03be5f19662b5392147b64c1049e2c"/></dir></dir><dir name="Email"><file name="Message.php" hash="fe2f318ef70bd0d7be3de34b77b5ef2d"/></dir><file name="Guest.php" hash="4e220c343693ca30560294f8e4cfc9be"/><dir name="Mysql4"><dir name="Customer"><file name="Collection.php" hash="4fc63d20f3f7a92770dcaebf17bba84e"/></dir><dir name="Guest"><file name="Collection.php" hash="9002af1ece49d28124724db5dd112119"/></dir><file name="Guest.php" hash="e8b815dce460b039053ef224628ad676"/><dir name="Rule"><file name="Collection.php" hash="2969bb11fa9e83523da7b41d834381b4"/></dir><file name="Rule.php" hash="38a1ac22b504900fe3b0d11426c3f7cf"/></dir><file name="Observer.php" hash="fc4471bd9b2aaaaa8eb689b591cce43f"/><dir name="Rule"><dir name="Condition"><dir name="Cart"><file name="Amount.php" hash="8b2a76a43ebe3735556757db407e3409"/><file name="Attributes.php" hash="6bc41aca8c8a7846fae4f894306ffa45"/><file name="Combine.php" hash="add54bf57284e6c48008db605e0df3d4"/><file name="Couponcode.php" hash="f0144e4e5bbf157e2268e3765b46dd24"/><file name="Itemsquantity.php" hash="6c605a49ebe9582f5b57e24085079a6b"/><file name="Sku.php" hash="090610f405b398600e00d33325ec12c4"/><file name="Storeview.php" hash="00262bc083ef7297989056cdf768274e"/><file name="Subcombine.php" hash="b10d46333d76a881654cc6d2a67e6880"/><file name="Subselection.php" hash="8873aa2845c638d6a7658652eec40f0e"/><file name="Totalquantity.php" hash="5edc528cbd0688746a01157595720076"/><file name="Virtual.php" hash="f65e64572c526c6c50e38d1bb9d9a52f"/></dir><file name="Cart.php" hash="399ea955cdabbaf90155b6a929435a50"/><dir name="Combine"><file name="Root.php" hash="4d020e164faa06fb94c01bc2f7c110b4"/></dir><file name="Combine.php" hash="74f9ec5b8560dabad1e303af18f4cff9"/><dir name="Wishlist"><file name="Attributes.php" hash="bb8205a2b00b58f2a092887db5ef8b63"/><file name="Combine.php" hash="b17a452ea9c090bea3cd1b2529171394"/><file name="Quantity.php" hash="6d228a7fbefd393924d9301c16c8e4b2"/><file name="Sharing.php" hash="9b1d05f4062a8bcda277be627a390c1d"/><file name="Storeview.php" hash="5edfdacb3d69379a4a144df29994ae97"/><file name="Subcombine.php" hash="a063b405ed07c454b5dd0b1d71af430f"/><file name="Subselection.php" hash="4640a52371cdb38c3eee73bd8b215b48"/></dir><file name="Wishlist.php" hash="3e19189f6a045df483635abfdd723304"/></dir></dir><file name="Rule.php" hash="9182c2047b8e79d3ba58b75ef2b58efb"/><dir name="System"><dir name="Config"><dir name="Backend"><file name="Cron.php" hash="3c9c134aee05b3b32fc64a549a3e7cb3"/></dir></dir></dir></dir><dir name="Test"><dir name="Config"><file name="Config.php" hash="1a522335b3e13dd06b4a74576a4ae948"/></dir><dir name="Helper"><file name="Contact.php" hash="e348af94ff0f5444e766fc17f3e6c774"/><file name="Data.php" hash="1b8a488f5aa2892bc39a2a3ad6ffd1d8"/><file name="Message.php" hash="4f4cc99f871c3da8ad0c1a35b7ec04df"/></dir><dir name="Model"><file name="Observer.php" hash="6740f1fa9261885c3ace0769c9dbff67"/><file name="Rule.php" hash="aba91c2be53965dbbd45246990c63d55"/></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="RemindersController.php" hash="f6854e9616c94294236f0aa3f8d91424"/></dir><file name="LoadController.php" hash="563a01392d2df74bd929d9d9e6de5060"/></dir><dir name="etc"><file name="adminhtml.xml" hash="772c6847e1961a7a56fdbcfbce6aaf91"/><file name="config.xml" hash="2607d22509ac28b656efcbfe18188518"/><file name="system.xml" hash="e772ad2e0cf1790c397fcb035eb5f0dd"/></dir><dir name="sql"><dir name="bronto_reminder_setup"><file name="mysql4-install-1.4.2.php" hash="1372af1369e9608159f5b59af75f367e"/><file name="mysql4-upgrade-1.4.0-1.4.2.php" hash="fefa638ca0ed7c5bc80a1b67e27c8703"/><file name="mysql4-upgrade-1.4.10-1.4.11.php" hash="130a688eb03e4f476308d0d11c32141a"/><file name="mysql4-upgrade-1.4.2-1.4.9.php" hash="4692060e7c938aea129c53619f0b3c19"/><file name="mysql4-upgrade-1.4.9-1.4.10.php" hash="9698883135211d54a3c711fead02c187"/></dir><dir name="reference"><file name="saveMatchedCustomers.sql" hash="c4f32ee8be31f7a652369c148271a6c7"/></dir></dir></dir><dir name="Roundtrip"><dir name="Block"><dir name="Adminhtml"><dir name="System"><dir name="Config"><file name="About.php" hash="6adab60e3a5a4668fdf5da8d8d33a024"/><file name="Status.php" hash="c623240112f1f15200f918394f736720"/></dir></dir><dir name="Widget"><dir name="Button"><file name="Run.php" hash="f83df57a3248439261ccf9837a5d2ff9"/></dir></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="231a77cbc7f38838454437c600189217"/></dir><dir name="Model"><dir name="Contact"><file name="Builder.php" hash="e81e78a7e07a81f5a0ec53990d629a31"/></dir><dir name="Roundtrip"><dir name="Test"><file name="Order.php" hash="04ebcb9f0010cab7952b08014010f721"/></dir></dir><file name="Roundtrip.php" hash="9325c6d924c2b9f4cda49ef0a5168d29"/></dir><dir name="Test"><dir name="Config"><file name="Config.php" hash="dbe4fb05bff7630d6130f8d458ed1f57"/></dir><dir name="Model"><dir name="Roundtrip"><file name="Contact.php" hash="787fe5d49eba3819e9af030bb80beeaa"/><dir name="Test"><file name="Order.php" hash="5bf175ebba99f97a93fb6755977dbfa0"/></dir></dir><file name="Roundtrip.php" hash="b4b9ff42575091019e3dcad4d1780eec"/></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="RoundtripController.php" hash="f52fcbd911f40b7637a88a96b0b40869"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="56be6bdda5b7652427bbab1e447a0d2e"/><file name="config.xml" hash="b34c9716b4c6fee7a1d8837b8debff65"/><file name="system.xml" hash="901a0736fb1109f9092fc98daa46dde7"/></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Bronto_All.xml" hash="5a9c06b6313882589765b9bcf0402bbb"/><file name="Bronto_ConflictChecker.xml" hash="1a7dc00b830ca2cc696e67d94b85be5d"/><file name="Bronto_Customer.xml" hash="a11c20f008ee2eae14baa3b549d5adee"/><file name="Bronto_Email.xml" hash="b7cdca4b15753edcefe8b9e0abb780bd"/><file name="Bronto_Newsletter.xml" hash="2115c5225e02ab5d4e56749cc5eff6ad"/><file name="Bronto_Order.xml" hash="63f1537add6088417945657bec98ffe9"/><file name="Bronto_PermissionChecker.xml" hash="55ff239c291529be2dc05799102d24a1"/><file name="Bronto_Reminder.xml" hash="08503ab78994178b822ef9b0add243f9"/><file name="Bronto_Roundtrip.xml" hash="bd2b89f3254e995904da92f025b6321c"/></dir></target><target name="magelib"><dir name="Bronto"><dir name="Api"><dir name="Account"><file name="Exception.php" hash="6048e32e08bac337f37e22918ae92e6a"/><file name="Row.php" hash="de3cb2496c217c25e850573c4d5b2dc2"/></dir><file name="Account.php" hash="30d5ef4bb101748553e239ffe2481183"/><dir name="Activity"><file name="Exception.php" hash="39ac264e8429c000372e849327372471"/><file name="Row.php" hash="b5612081f50d117a7c66f93f9b90382a"/></dir><file name="Activity.php" hash="35aaf580eb62df39b631041937c10187"/><dir name="ApiToken"><file name="Exception.php" hash="ff31b1be1c06581a115aabb7a782d9b5"/><file name="Row.php" hash="1716b6859c05b82301cf28bc7dcca4be"/></dir><file name="ApiToken.php" hash="20ecd2591d6634c42de7b05879c4bc04"/><dir name="Contact"><file name="Exception.php" hash="232fece284740b8e49a5d22ba3082b32"/><file name="Row.php" hash="a85937ee83f1a852372782a8dc1d2eab"/></dir><file name="Contact.php" hash="0413b22277d97b9d9f910281c14a6cea"/><dir name="Conversion"><file name="Exception.php" hash="edaba96e7118b8ce27220ffdabf56721"/><file name="Row.php" hash="495064d7f358f568c0c93b291a267b33"/></dir><file name="Conversion.php" hash="17d45962719271cdc834660cc3478071"/><dir name="Delivery"><file name="Exception.php" hash="c9c746a033ef90ac5e7c70e906331779"/><file name="Recipient.php" hash="9756477b2cbde59ece2b3720c02a5d75"/><file name="Row.php" hash="ca0880566674966a7aa9dee7c4c2c6eb"/></dir><file name="Delivery.php" hash="1866bf3ae809010f630deead7c76a09e"/><dir name="DeliveryGroup"><file name="Exception.php" hash="6ae170c14038a49413580a19ce7ee144"/><file name="Row.php" hash="d5046f7a5dbf39442730f45d17aeaf87"/></dir><file name="DeliveryGroup.php" hash="0e4572ad563c61dd78229af2b6d35cad"/><file name="Exception.php" hash="0df72a2002acff46885dd3978ea95678"/><dir name="Field"><file name="Exception.php" hash="3f900dcdbf5b8b321e48fa6d4a4a5ae1"/><file name="Predefined.php" hash="e876d133b211c4d66ad70ccba7bdff04"/><file name="Row.php" hash="d0c4001b14954dc45e35c8bf8e89cb65"/><file name="TypeGuesser.php" hash="d74ed1da1bd21c93ec68e753edee745f"/></dir><file name="Field.php" hash="4d42365676ef739f72ab50b09595bfa0"/><dir name="List"><file name="Exception.php" hash="ba39e47457265a2042dfaaf0b1c93d70"/><file name="Row.php" hash="bc8f0c84d486f1a41b113529e0da4cc4"/></dir><file name="List.php" hash="589a011d54b9cd6e2400f42fb0391967"/><dir name="Login"><file name="ContactInformation.php" hash="871630e7a0762cb4055183fe9b52b8ea"/><file name="Exception.php" hash="37a401b1206264c7865c62c1c62d394c"/><file name="Row.php" hash="3bfc793c2defa6f538c4b8749dbac22a"/></dir><file name="Login.php" hash="57afd59cd524e57e5a2bdb839a6207e4"/><dir name="Message"><file name="Exception.php" hash="3688ca7320fa9b0a5a3bba80ac4ed072"/><file name="Row.php" hash="ed93a1f123c65324b05e1d2c7b8b4b12"/></dir><file name="Message.php" hash="993e0bfd24d5663078735cbeae9a4b23"/><dir name="MessageRule"><file name="Exception.php" hash="500de77f33962484a640c24521f63659"/><file name="Row.php" hash="5a16b597def2515423e58ab36d17ff01"/></dir><file name="MessageRule.php" hash="bd30a4aa770714ac17b1b33da363aa60"/><file name="Object.php" hash="9681a0940cf96835f2d14b876cce0a4e"/><dir name="Order"><file name="Exception.php" hash="843fd9b527ad8be267664e59e803a2d8"/><file name="Product.php" hash="446161d2fe36cfd849f72066bda8c2ff"/><file name="Row.php" hash="470b921a06f832a0cad81c869038b26e"/></dir><file name="Order.php" hash="9a27755d756a06b82a0cc0d97c315519"/><dir name="Row"><file name="Exception.php" hash="2a48372f5f71cbaad940bc0a62327cff"/></dir><file name="Row.php" hash="459df27d460fd4c3923e860bc8a76a78"/><dir name="Rowset"><file name="Exception.php" hash="5b109a1eef32d14cbc66016fdf65ad9c"/><file name="Iterator.php" hash="0797f8c5a95d47a521ac333e853e6cd3"/></dir><file name="Rowset.php" hash="a10029ba58512887eb7aeb8e40a96a33"/><dir name="Segment"><file name="Exception.php" hash="c0fb3c3a1ed79177f5247abe40adf504"/><file name="Row.php" hash="5211fe7639821a8e413f7832d33dca3c"/></dir><file name="Segment.php" hash="67cf81752cd21a42ad7b6b2ab713c9eb"/></dir><file name="Api.php" hash="2f4d300d9921f4b46faf7d78e34466d9"/><file name="SoapClient.php" hash="f07d2c4551825a1018ddfbd997d660d8"/><dir name="Util"><file name="Colors.php" hash="9bc5a4ce486972d493c82fcb671b416c"/><file name="CountryCodes.php" hash="c666d446d3a156fb2881bf33f2acfc80"/><dir name="Retryer"><file name="FileRetryer.php" hash="6ce89108476048a6e45a7457f53272de"/><file name="RetryerException.php" hash="65ab6cc1f4e71fad55832657f700c653"/><file name="RetryerInterface.php" hash="29aab11684d6eb27439281cd9f6cee76"/></dir><file name="Uuid.php" hash="00f349c1dc57463ebf13639a6bbff6fd"/></dir></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="base"><dir name="default"><dir name="bronto"><file name="cron.css" hash="c7260d3aa14b5945ee76c72dbd914efa"/><dir name="images"><file name="bg_notifications.gif" hash="df73b8aa7e48bb56e0a644245aa3683f"/><file name="logo.jpg" hash="3c6059218195679d99dbb874bdabbd07"/><file name="message_approved.gif" hash="465a056a3ba3d94367f51c3c0b751391"/><file name="message_not_approved.gif" hash="e4f28607f075a105e53fa3113d84bd26"/></dir></dir></dir></dir></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="template"><dir name="bronto"><dir name="newsletter"><file name="js.phtml" hash="1b36b8d1f438d5970b4ab0e8f97246d7"/></dir></dir></dir><dir name="layout"><dir name="bronto"><file name="newsletter.xml" hash="b7d4c9b1fb4fabb4255c6df64e98d332"/></dir></dir></dir></dir></dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="bronto"><dir name="common"><file name="about.phtml" hash="f115cbc70309f4e3b14d33cf29bdb274"/><file name="cron.phtml" hash="f1dbdea68c377d7057230697450e16b1"/></dir><dir name="conflictchecker"><file name="errors.phtml" hash="26c9fa4332b8518141de9dab0db0c823"/></dir><dir name="email"><dir name="template"><file name="edit.phtml" hash="35c4f68337a6be7186be1aac0fbe404e"/><file name="list.phtml" hash="cf2503d79273b5a611cde3acde2bb79d"/></dir></dir><dir name="permissionchecker"><file name="errors.phtml" hash="0306e132afed0c88058be67d37dd211c"/></dir><dir name="roundtrip"><file name="status.phtml" hash="9ce88385bb507dfeb2df9e049a5f9f9d"/></dir></dir></dir><dir name="layout"><dir name="bronto"><file name="email.xml" hash="be77c906770a0d818898a910b03cbe4f"/><file name="reminder.xml" hash="98d835f287cb3aa2ff801f0219f88ccc"/><file name="roundtrip.xml" hash="3da91d3bcb40e1805a80fb2a18ed9cee"/></dir></dir></dir></dir></dir></target><target name="magelocale"><dir name="en_US"><dir name="template"><dir name="email"><dir name="bronto"><file name="abandoned_cart.html" hash="20b0f55098c0f07bf96da3c5309d9192"/></dir></dir></dir></dir></target></contents>
|
61 |
<compatible/>
|
62 |
<dependencies><required><php><min>5.2.13</min><max>5.5.0</max></php><extension><name>soap</name><min></min><max></max></extension><extension><name>openssl</name><min></min><max></max></extension></required></dependencies>
|
63 |
</package>
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>Bronto_Extension</name>
|
4 |
+
<version>2.0.2</version>
|
5 |
<stability>stable</stability>
|
6 |
<license uri="http://opensource.org/licenses/osl-3.0.php">OSL</license>
|
7 |
<channel>community</channel>
|
55 |
<p />Bronto Software provides a cloud-based marketing platform for retailers to drive revenue through their email, mobile and social campaigns. The platform is used by over 1000 organizations worldwide, including Party City, Armani Exchange, Timex, Samsonite and Gander Mountain. Bronto is a Gold Magento Industry Partner and the leading self-service email marketing provider to the Internet Retailer Top 1000. Bronto is headquartered in Durham, NC with an office in London, UK. For more information, visit <a href="http://bronto.com">bronto.com</a>.</p></description>
|
56 |
<notes><p />For installation and configuration instructions, as well as a full list of new features and known issues, please review the <a href="http://a.bron.to/magento">Implementation Guide</a>.</notes>
|
57 |
<authors><author><name>Dave Johnson</name><user>BrontoSoftware</user><email>dave.johnson@bronto.com</email></author></authors>
|
58 |
+
<date>2013-04-04</date>
|
59 |
+
<time>13:25:42</time>
|
60 |
+
<contents><target name="magecommunity"><dir name="Bronto"><dir name="Common"><dir name="Block"><dir name="Adminhtml"><dir name="System"><dir name="Config"><file name="About.php" hash="e4647293bfef908940de7df33e0e754f"/><file name="Cron.php" hash="b1c18891073fa233cd5e44f16c60ec97"/><dir name="Form"><dir name="Field"><file name="Apitoken.php" hash="6f3121e8a5ee54c58993654018048b9e"/><file name="Hidden.php" hash="18a13153df6dd084840086105f8117cc"/><file name="List.php" hash="48f36e9d06e6bc759e36ebb1128aa513"/></dir><file name="Field.php" hash="bfc0b65b927934ba54bb5225c0fb9247"/></dir></dir></dir></dir></dir><dir name="Helper"><file name="Contact.php" hash="aa0f86b84c97399bdf259935de33dca0"/><file name="Data.php" hash="751e551f997c4b1a62ad0e3ebc96512a"/><file name="DataInterface.php" hash="a6700f3a4a79f6d6468df24f714427a9"/><file name="Field.php" hash="683839cfcd4fd5cd81b0393fc67b019c"/><file name="Message.php" hash="22d6224ab354a6ed7dc13d1e6e0a2fc5"/><file name="Product.php" hash="64202787e5f0c63a38efff387ab3c325"/></dir><dir name="Model"><file name="Api.php" hash="3716948a5e50e621625714a1e3a93263"/><dir name="Email"><dir name="Message"><file name="Filter.php" hash="4668bb03abbb5029980765c0b712fd5c"/><file name="Templatefilter.php" hash="783dcbb689021665f2b7f34f83bb99c2"/></dir><file name="Message.php" hash="17086fba16eed6986c0ab1fafbeffbd6"/></dir><file name="Keysentry.php" hash="fd39d0a0208668723d0c0adb0b31bd67"/><file name="Observer.php" hash="73b02a94aba279c05dd7753ac10fdb75"/><dir name="Resource"><file name="Setup.php" hash="780f5c070cbd9da2f003372ee90a0891"/></dir><dir name="System"><dir name="Config"><dir name="Backend"><file name="Cron.php" hash="b05e28fb0cc0db0377eee68ffc712c10"/><file name="Token.php" hash="03a0cf45efe77307e06afa3b4a98b214"/></dir><dir name="Source"><dir name="Contact"><file name="Status.php" hash="1bf6c053f8132a36dd6882e0f1faf45f"/></dir><dir name="Cron"><file name="Frequency.php" hash="c6689871a7a8add3dc4b84e4a2ff6f10"/><file name="Minutes.php" hash="be3e3066819785b55a25f22c5bc9392a"/></dir><file name="Field.php" hash="36d8ea711c4eecfa6eaa6b6e3216920e"/><file name="List.php" hash="69497100fe9f036c442b9d94133c8f4a"/><file name="Message.php" hash="4fb4e4f9deaabe4971bfcdf3e12b0da4"/></dir></dir></dir></dir><dir name="Test"><dir name="Config"><file name="Config.php" hash="02b55ba2804a024740506c4df0ebdd42"/></dir><dir name="Model"><file name="Checkout.php" hash="9716ab2c76558e463f1a105308973b74"/><dir name="Keysentry"><dir name="fixtures"><file name="seed.yaml" hash="3a9b13b2ef5a72bea298be72edba821d"/></dir></dir><file name="Keysentry.php" hash="fe06eff7212d57057ed1ee490238694f"/></dir></dir><dir name="controllers"><file name="LogController.php" hash="d97e8dc3624053d563389b8b19c71c06"/></dir><dir name="etc"><file name="adminhtml.xml" hash="f5792bf262cf83cc193d23c09a17a03f"/><file name="config.xml" hash="0ac1a5e5c10578dab9389b782e5c3a64"/><file name="system.xml" hash="3a7ab89d5c344d5600b52604ee5b681a"/></dir><dir name="sql"><dir name="bronto_common_setup"><file name="mysql4-install-1.7.0.php" hash="c8459d26fdfea2fb9430e8829b3257e1"/></dir></dir></dir><dir name="ConflictChecker"><dir name="Block"><dir name="Adminhtml"><dir name="System"><dir name="Config"><file name="About.php" hash="9049055c03e261b2452c926d801196a6"/><file name="Conflictchecker.php" hash="c00f929ef55e95597761871674077b10"/></dir></dir></dir><file name="Printer.php" hash="cd8ef4c01028da3d690ce6f5c53d1f61"/></dir><dir name="Helper"><file name="Data.php" hash="0f5c562370c77b6cfe9579dc7fe396d0"/></dir><dir name="Model"><dir name="Config"><file name="Blocks.php" hash="78eb63947ae94be2b1dc9ee42de52152"/><file name="Checker.php" hash="a1a38b9c4a518e0be2e4ea84adab0107"/><file name="ConfigAbstract.php" hash="8bc2be8485543a17338cb953d760c71c"/><file name="ConfigInterface.php" hash="86a788c1b1971828c8f947b42f03baea"/><file name="Datastore.php" hash="d2b37735fe127d831e6055e05b232fb8"/><file name="Helpers.php" hash="3de600b842bf90c53417843e9b4c1946"/><file name="Models.php" hash="0358f506ff4e5820b61b076701f0746d"/><file name="Printer.php" hash="6d2aec31a623b943d3d982c97999be13"/><file name="Resources.php" hash="9f12487e864cd4005c53b72fe02e4cf4"/></dir><dir name="Core"><dir name="Config"><file name="Base.php" hash="b1ecb5cd90e050d1c825beb65e6d888e"/><file name="Element.php" hash="2efb1a1c022cb393ab5718c1f7eafd1f"/></dir><file name="Config.php" hash="29408203a0aa8b7afa84ba16b1416f91"/></dir><dir name="Lib"><dir name="Varien"><dir name="Simplexml"><file name="Config.php" hash="3acbdd7d7c9fa6c346688e5083569596"/><file name="Element.php" hash="f5961e7a41035851cabf7fcd8022a13a"/></dir></dir></dir><dir name="Mysql4"><dir name="Core"><file name="Config.php" hash="36685bb89b45c71cfc447727ce66ea9a"/></dir></dir><dir name="Path"><dir name="Locator"><file name="Array.php" hash="f82c5966dab92ed91a9441a0231e7ace"/><file name="Factory.php" hash="bea2e4a6bea17815a9040341209f4256"/><file name="IteratorAbstract.php" hash="9adccb7c853d80e8d64a0eb8346f3cbc"/><file name="LocatorInterface.php" hash="b3cf0d528296ee0e87e7898da44baa47"/><file name="Stack.php" hash="4524078604b43dffcf57c7a23959ef03"/></dir></dir><dir name="Resource"><dir name="Core"><file name="Config.php" hash="6b69bd1c0ce0e4c92c1c96436f79e83d"/></dir></dir></dir><dir name="Test"><dir name="Config"><file name="Config.php" hash="23de17a20f7a5588bb9761a2d3eb79ae"/></dir><dir name="Model"><dir name="Path"><dir name="Locator"><file name="Array.php" hash="e219f193e027d5c9a5d9cb9d7a27a6ac"/><file name="Factory.php" hash="36ffe1ec656f3f3ba1f99dd743e52c0b"/><file name="Stack.php" hash="29cbf00cd66bc61ee16c740847d9f400"/></dir></dir></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="9d5cab56f52b0d12688c5787e3bfa03f"/><file name="config.xml" hash="0497e6c9bf942db62d01e0595437166b"/><file name="system.xml" hash="6d6b10860c55f815efe815d7ee0c2290"/></dir></dir><dir name="Customer"><dir name="Block"><dir name="Adminhtml"><dir name="System"><dir name="Config"><file name="About.php" hash="5874d9bf1ff106212a348815104c5244"/><file name="Cron.php" hash="d934d6f31ed8afd9b96fd9c7646542bc"/><dir name="Form"><dir name="Fieldset"><dir name="Attributes"><file name="Address.php" hash="3dc1e6ab5531e65d229f136b0e7cf1fe"/><file name="Customer.php" hash="655784371a5be6e32b12ad3742145d6d"/></dir><file name="Attributes.php" hash="fd77169977b903ecbd179723c9bad5dd"/></dir></dir></dir></dir><dir name="Widget"><dir name="Button"><file name="Reset.php" hash="74d38897533f7b4e67d476dd791a38ee"/><file name="Run.php" hash="e707627c781ea4323d1924fa33094320"/></dir></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="570be85ed2fbd1ae659427b55cc481d9"/></dir><dir name="Model"><dir name="Mysql4"><dir name="Queue"><file name="Collection.php" hash="79c019779d2de90cb101e63cf6f00a93"/></dir><file name="Queue.php" hash="2c862d84f2d1ac55dde6bebaacdb7d3e"/></dir><file name="Observer.php" hash="0448ffea19c272c8248006893023db55"/><file name="Queue.php" hash="4e72a63d48744be9115a27a006cfa59d"/><dir name="Resource"><dir name="Customer"><file name="Collection.php" hash="7382503a6ab735f3f4345315993a64cb"/></dir><file name="Setup.php" hash="6e988a951049e5b0e0e7ed214e84f277"/></dir><dir name="System"><dir name="Config"><dir name="Backend"><file name="Cron.php" hash="dbcd55d41447d46fded27dfa2e6febb0"/><file name="Newfield.php" hash="d9a66dbc0b932fb80c7c947c3ce29bba"/></dir></dir></dir></dir><dir name="Test"><dir name="Config"><file name="Config.php" hash="20025141111083480c8109d9619598bf"/></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="CustomerController.php" hash="fd3bf1d27f31d8d3cab6e4432f7a7fbb"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="6cc229b440b34da710887aaf96bbcf81"/><file name="config.xml" hash="5a60622386fb72e56ded3ddab0d1854d"/><file name="system.xml" hash="4ea888d7af3d269937ac8358e8c862ff"/></dir><dir name="sql"><dir name="bronto_customer_setup"><file name="mysql4-install-1.0.0.php" hash="871c225318588b2804a05751bce45e1f"/><file name="mysql4-upgrade-1.0.0-1.0.1.php" hash="145b73141d7f20ac0707c0db80c9564c"/></dir></dir></dir><dir name="Email"><dir name="Block"><dir name="Adminhtml"><dir name="System"><dir name="Config"><file name="About.php" hash="10cb51420b205c100ef46cf59edef05b"/></dir><dir name="Email"><dir name="Log"><dir name="Grid"><dir name="Renderer"><file name="Customer.php" hash="c2530287b293e05508816049586ef5c2"/><file name="Fields.php" hash="6c5d921b6c636329f035381af4c7f028"/></dir></dir><file name="Grid.php" hash="b54cada4029aa45290679e6cf69f8c47"/></dir><file name="Log.php" hash="3fa0b873d262b3d5c6161c1aef33e6ae"/><dir name="Template"><dir name="Edit"><file name="Form.php" hash="804a3fc8d0e773639f8eb2fe3df1ab1f"/></dir><file name="Edit.php" hash="bcc5b9ba9bee92a3e8f33684dd02506f"/><dir name="Grid"><dir name="Renderer"><file name="Message.php" hash="bf56f19c9f4310609fbb9a788768e222"/></dir></dir><file name="Grid.php" hash="6a253035cf2db239f93b73667e92ee63"/></dir><file name="Template.php" hash="b33503babba2480ca840569629dfbb07"/></dir></dir></dir></dir><dir name="Helper"><file name="Contact.php" hash="712033409f93712e4a22cf89252d44e4"/><file name="Data.php" hash="e582e103dfe73cb4ab9e6eb675f81309"/><file name="Field.php" hash="e4714e9cc95bdfe4da9a16feb604f44c"/><file name="Message.php" hash="f328dcee7934ddc48d6f4d40afff74cc"/></dir><dir name="Model"><dir name="Email"><file name="Message.php" hash="5d2c4b3ac3120352f8424863ad176dc6"/></dir><file name="Log.php" hash="2740d9cd5073106f58880e57e84ce8ee"/><dir name="Mysql4"><dir name="Log"><file name="Collection.php" hash="6de4819537636d3ea7816cb7c6fc250c"/></dir><file name="Log.php" hash="15ffb2c83281c77b5d427ff29abac776"/></dir><file name="Observer.php" hash="0b67950706c21220a4712bc0c279ba00"/><dir name="System"><dir name="Config"><dir name="Source"><dir name="Email"><file name="Template.php" hash="ba80e6553c61e731b85c027cd688ca8f"/></dir></dir></dir></dir><dir name="Template"><file name="Import.php" hash="b808d3e5a70dc30e09448b20dd000708"/></dir></dir><dir name="Test"><dir name="Config"><file name="Config.php" hash="8a74889c3f24c3053baefca6e7d7eddb"/></dir><dir name="Model"><dir name="Email"><file name="Message.php" hash="11a9aded1841673bdafd4675de78a19e"/></dir></dir></dir><dir name="controllers"><dir name="Adminhtml"><dir name="System"><dir name="Email"><file name="LogController.php" hash="386560ba30da12796614db1d0381bb7c"/><file name="TemplateController.php" hash="578112502761e70000ff10ca67502034"/></dir></dir></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="35a2ffa5e273f87b6d2de172cea4a219"/><file name="config.xml" hash="37e21ee9d0458bd28379446f063457a5"/><file name="system.xml" hash="2e6f8375e4794780c2f49f68536d2c6b"/></dir><dir name="sql"><dir name="bronto_email_setup"><file name="mysql4-install-1.0.0.php" hash="516265312ede986c1a35a19b9e5bbfea"/><file name="mysql4-install-1.0.2.php" hash="327ac219e947d608fbf9d3209dd03bab"/><file name="mysql4-install-1.0.5.php" hash="327ac219e947d608fbf9d3209dd03bab"/><file name="mysql4-install-1.0.8.php" hash="b572625c1380dfffe3b089275ac1dc7e"/><file name="mysql4-install-1.1.2.php" hash="bf80f7b12eccdad2e0e36a564e18530c"/><file name="mysql4-upgrade-1.0.0-1.0.2.php" hash="1f797c3f909d72219ef5d00017b10554"/><file name="mysql4-upgrade-1.0.2-1.0.5.php" hash="f2c83b65500d9df0fd10c2e6721f2bfe"/><file name="mysql4-upgrade-1.0.5-1.0.8.php" hash="cdbda7aa084e51b9b222c56e548462a6"/><file name="mysql4-upgrade-1.0.8-1.1.1.php" hash="f2c83b65500d9df0fd10c2e6721f2bfe"/><file name="mysql4-upgrade-1.1.1-1.1.2.php" hash="0538afef03b1e21d509593e2ad275c34"/></dir></dir></dir><dir name="Newsletter"><dir name="Block"><dir name="Adminhtml"><dir name="System"><dir name="Config"><file name="About.php" hash="bc44a52305e7cbe3a41c5f19e6257ede"/><file name="Cron.php" hash="f7a3a33f6ba8c7ad7cd125818f76b088"/></dir></dir><dir name="Widget"><dir name="Button"><file name="Reset.php" hash="98efb50dd447e6a60db7c25846ae0432"/><file name="Run.php" hash="49efe1ee4550454366fe5631fa2c6e88"/></dir></dir></dir><dir name="Checkout"><dir name="Onepage"><file name="Newsletter.php" hash="e0ba7884794f68fe3c299946ef8e63a4"/></dir></dir></dir><dir name="Helper"><file name="Contact.php" hash="85dffba4f8edd375e53ca59f7a4bf1a0"/><file name="Data.php" hash="62e5be8e1326862fee10774654daad15"/></dir><dir name="Model"><dir name="Mysql4"><dir name="Queue"><file name="Collection.php" hash="65965036fde6a83984239a2237232d1c"/></dir><file name="Queue.php" hash="9a890d3fe569edd426ce38afe564dc7a"/></dir><file name="Observer.php" hash="d7245de664cc1021ca981cfefb5e3def"/><file name="Queue.php" hash="89e6276cab088714b555c052172c4989"/><dir name="System"><dir name="Config"><dir name="Backend"><file name="Cron.php" hash="a270f0a31c390383cdabc0021baf3d3c"/></dir></dir></dir></dir><dir name="Test"><dir name="Config"><file name="Config.php" hash="d88d07780bb3ded63c2c35439840dad5"/></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="NewsletterController.php" hash="fb1b701c2335e82e258ed16d2a5c8975"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="253518e92554bf89fabe7b832a7a562c"/><file name="config.xml" hash="1d0adbc56975d579620dabd02394ff38"/><file name="system.xml" hash="a71a2ace3b3dbaa6d5e2c2b5a657ea48"/></dir><dir name="sql"><dir name="bronto_newsletter_setup"><file name="mysql4-install-1.0.0.php" hash="0f21d5315bbc4c27d0d38f9cf8c99bf3"/><file name="mysql4-install-1.4.0.php" hash="9bd28347f3330b857102900adf702bed"/><file name="mysql4-upgrade-1.4.0-1.4.1.php" hash="7eeba27e7b5480c8b502c3805554e2de"/><file name="mysql4-upgrade-1.4.1-1.4.2.php" hash="32f724b99d88e037ade72c8a9f1e0da7"/><file name="mysql4-upgrade-1.4.2-1.4.3.php" hash="63c728bb0cd7fa83bb5536d4500548f4"/><file name="mysql4-upgrade-1.4.3-1.4.4.php" hash="4f08a427c7706ea0988bcdcca6072218"/></dir></dir></dir><dir name="Order"><dir name="Block"><dir name="Adminhtml"><dir name="Sales"><dir name="Order"><dir name="View"><dir name="Tab"><file name="Info.php" hash="ca80d06fb86b6bf676fc21188d5f2685"/></dir></dir></dir></dir><dir name="System"><dir name="Config"><file name="About.php" hash="126e3166dace48941fccbe2bb4c80264"/><file name="Cron.php" hash="8f07a9b6bf4ead5f7909204c9bfb869d"/></dir></dir><dir name="Widget"><dir name="Button"><file name="Reset.php" hash="9bfbc1f1ffb38389a3a47ca009a24a35"/><file name="Run.php" hash="5b833a216bea22b962f633e33f6a86b8"/></dir></dir></dir><file name="Bta.php" hash="10f7f6f5e5e701dafefe8034095ae11e"/></dir><dir name="Helper"><file name="Data.php" hash="87f5a3a40ce32e8fcb2588ef7971c38d"/></dir><dir name="Model"><dir name="Mysql4"><dir name="Queue"><file name="Collection.php" hash="2d5a2cacddad69f5ef95e9ea87a3b1b5"/></dir><file name="Queue.php" hash="5ec75386fc64daefbd2478bf28581097"/></dir><file name="Observer.php" hash="791d6ff2169b9ec669c11033478f8118"/><dir name="Order"><file name="Observer.php" hash="5c889edb642d2dec09013a666a870ea5"/></dir><file name="Queue.php" hash="3a8d6d86018e694da6f9bfb6ade2f9ca"/><dir name="Quote"><file name="Observer.php" hash="d59ed7a18787b6b68b988ca383a615a3"/></dir><dir name="Resource"><dir name="Order"><file name="Collection.php" hash="115c9b1e668b6c832b158cbce3544254"/></dir><file name="Setup.php" hash="6397d195901c57062f124fde1dbfbf32"/></dir><dir name="System"><dir name="Config"><dir name="Backend"><file name="Cron.php" hash="96199a296f15518a89fde9384cf5fb0d"/></dir><dir name="Source"><file name="Description.php" hash="67364bc17dc197e4dd2a6e0382c75722"/><file name="Limit.php" hash="789f0e42eaafa65b4970ad107206102c"/></dir></dir></dir></dir><dir name="Test"><dir name="Config"><file name="Config.php" hash="ca702ba9aafc61c93e19305005e952c8"/></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="OrderController.php" hash="1571c3dab9923178465f009cc052afb7"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="0c4a0a1117117613d148157557f2abb3"/><file name="config.xml" hash="3f9b33c2e3af4625bca407f1502353b1"/><file name="system.xml" hash="131d320296a91ef24c43dcb60c01ec8e"/></dir><dir name="sql"><dir name="bronto_order_setup"><file name="mysql4-install-1.0.0.php" hash="81b57488dbc44047db4099c41fdac54e"/><file name="mysql4-upgrade-1.1.5-1.1.6.php" hash="62be13b1013b03e3f2d24c005c46a573"/></dir></dir></dir><dir name="PermissionChecker"><dir name="Block"><dir name="Adminhtml"><dir name="System"><dir name="Config"><file name="About.php" hash="5c0990417244c38485b5c9eda45fa80a"/><file name="Permissionchecker.php" hash="9cabf571a4dab49fa26d8ff1b35b0646"/></dir></dir></dir><file name="Printer.php" hash="7f9d480227c8211aa9e2db66ecd34f3f"/></dir><dir name="Helper"><file name="Data.php" hash="4fab093494eb9a793583e2294d2a2489"/></dir><dir name="Model"><dir name="Validator"><file name="Checker.php" hash="2a8259840b7f0e75b52bdcc93adb8922"/><file name="Directory.php" hash="89a0981e5ed7b70446054d9e8f31300e"/><file name="File.php" hash="539342c217889f7fd0f19f3b731bea23"/><dir name="Filter"><file name="PatternIterator.php" hash="9bdc50cda8d18e3335d8fc07fa72f733"/></dir><file name="Group.php" hash="8dc26a97c43fa2bbe58264b3117324a9"/><file name="Owner.php" hash="fc20d838f28c3406d74475fd4dbf33f0"/><file name="Printer.php" hash="e49b843f43f835d35ba838a2b8c7d00d"/><file name="ValidatorAbstract.php" hash="bccd4db6601922c5a632680c226e03c6"/><file name="ValidatorInterface.php" hash="877e881c030573fdbcd344174eceec8a"/></dir></dir><dir name="Test"><dir name="Config"><file name="Config.php" hash="672ed6161380fbf88a516377e62031be"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="058c7be44feea32fc5bc646a5632b4f3"/><file name="config.xml" hash="c4df9b0d873371a626029bd25cfe1c41"/><file name="system.xml" hash="4bb28ac8646a04f6ea857f79cd75475e"/></dir></dir><dir name="Reminder"><dir name="Block"><dir name="Adminhtml"><dir name="Promo"><file name="Notice.php" hash="d5991ebe75066fa76f23eb9464619f08"/></dir><dir name="Reminder"><dir name="Edit"><file name="Form.php" hash="779f8effae92303da303c889db9cef65"/><dir name="Tab"><file name="Bronto.php" hash="a4f19c14cddab68e1180723984f10ccb"/><file name="Conditions.php" hash="f3ad1c6438079bf43183825b52fde3f3"/><file name="Customers.php" hash="668c91478d859d2aa1eb6027d2bbef75"/><file name="General.php" hash="8c7ff650f320b57a208ecf825142e877"/></dir><file name="Tabs.php" hash="accefd148ad3cf28d36e890c138078f2"/></dir><file name="Edit.php" hash="a05e23f5249c97ac7965ecf27672d1a6"/><file name="Grid.php" hash="ebbe203d00c8e21ca591b55c48572cdb"/></dir><file name="Reminder.php" hash="82d616907ffc84eed0aa688f218ed7f1"/><dir name="System"><dir name="Config"><file name="About.php" hash="ce52e60802d1b9d251cef6a7c34564ce"/><file name="Cron.php" hash="ba8f69a491407b48ec72eb7351249c98"/></dir></dir><dir name="Widget"><dir name="Grid"><dir name="Column"><dir name="Renderer"><file name="Email.php" hash="5d9cbf69ea3bfcbc0f96d9a3dd8f613a"/><file name="Id.php" hash="e221f8f87969c1299a7daf3796dd7bbf"/></dir></dir></dir></dir></dir></dir><dir name="Helper"><file name="Contact.php" hash="a46c741761b5440eda28c9a8ac2df080"/><file name="Data.php" hash="36eff50aafd65ca66f13aa15c5e65beb"/><file name="Message.php" hash="a02936281f98cd990ecd17c32bfada46"/></dir><dir name="Model"><dir name="Condition"><file name="Abstract.php" hash="92b5e50a4e9b39dff50d83f1099db882"/><dir name="Combine"><file name="Abstract.php" hash="ea03be5f19662b5392147b64c1049e2c"/></dir></dir><dir name="Email"><file name="Message.php" hash="fe2f318ef70bd0d7be3de34b77b5ef2d"/></dir><file name="Guest.php" hash="4e220c343693ca30560294f8e4cfc9be"/><dir name="Mysql4"><dir name="Customer"><file name="Collection.php" hash="4fc63d20f3f7a92770dcaebf17bba84e"/></dir><dir name="Guest"><file name="Collection.php" hash="9002af1ece49d28124724db5dd112119"/></dir><file name="Guest.php" hash="e8b815dce460b039053ef224628ad676"/><dir name="Rule"><file name="Collection.php" hash="2969bb11fa9e83523da7b41d834381b4"/></dir><file name="Rule.php" hash="38a1ac22b504900fe3b0d11426c3f7cf"/></dir><file name="Observer.php" hash="fc4471bd9b2aaaaa8eb689b591cce43f"/><dir name="Rule"><dir name="Condition"><dir name="Cart"><file name="Amount.php" hash="8b2a76a43ebe3735556757db407e3409"/><file name="Attributes.php" hash="6bc41aca8c8a7846fae4f894306ffa45"/><file name="Combine.php" hash="add54bf57284e6c48008db605e0df3d4"/><file name="Couponcode.php" hash="f0144e4e5bbf157e2268e3765b46dd24"/><file name="Itemsquantity.php" hash="6c605a49ebe9582f5b57e24085079a6b"/><file name="Sku.php" hash="090610f405b398600e00d33325ec12c4"/><file name="Storeview.php" hash="00262bc083ef7297989056cdf768274e"/><file name="Subcombine.php" hash="b10d46333d76a881654cc6d2a67e6880"/><file name="Subselection.php" hash="8873aa2845c638d6a7658652eec40f0e"/><file name="Totalquantity.php" hash="5edc528cbd0688746a01157595720076"/><file name="Virtual.php" hash="f65e64572c526c6c50e38d1bb9d9a52f"/></dir><file name="Cart.php" hash="399ea955cdabbaf90155b6a929435a50"/><dir name="Combine"><file name="Root.php" hash="4d020e164faa06fb94c01bc2f7c110b4"/></dir><file name="Combine.php" hash="74f9ec5b8560dabad1e303af18f4cff9"/><dir name="Wishlist"><file name="Attributes.php" hash="bb8205a2b00b58f2a092887db5ef8b63"/><file name="Combine.php" hash="b17a452ea9c090bea3cd1b2529171394"/><file name="Quantity.php" hash="6d228a7fbefd393924d9301c16c8e4b2"/><file name="Sharing.php" hash="9b1d05f4062a8bcda277be627a390c1d"/><file name="Storeview.php" hash="5edfdacb3d69379a4a144df29994ae97"/><file name="Subcombine.php" hash="a063b405ed07c454b5dd0b1d71af430f"/><file name="Subselection.php" hash="4640a52371cdb38c3eee73bd8b215b48"/></dir><file name="Wishlist.php" hash="3e19189f6a045df483635abfdd723304"/></dir></dir><file name="Rule.php" hash="9182c2047b8e79d3ba58b75ef2b58efb"/><dir name="System"><dir name="Config"><dir name="Backend"><file name="Cron.php" hash="3c9c134aee05b3b32fc64a549a3e7cb3"/></dir></dir></dir></dir><dir name="Test"><dir name="Config"><file name="Config.php" hash="f6392fbcafbfc5ad04b66ae6a42bf899"/></dir><dir name="Helper"><file name="Contact.php" hash="e348af94ff0f5444e766fc17f3e6c774"/><file name="Data.php" hash="1b8a488f5aa2892bc39a2a3ad6ffd1d8"/><file name="Message.php" hash="4f4cc99f871c3da8ad0c1a35b7ec04df"/></dir><dir name="Model"><file name="Observer.php" hash="6740f1fa9261885c3ace0769c9dbff67"/><file name="Rule.php" hash="aba91c2be53965dbbd45246990c63d55"/></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="RemindersController.php" hash="f6854e9616c94294236f0aa3f8d91424"/></dir><file name="LoadController.php" hash="563a01392d2df74bd929d9d9e6de5060"/></dir><dir name="etc"><file name="adminhtml.xml" hash="772c6847e1961a7a56fdbcfbce6aaf91"/><file name="config.xml" hash="e8a1d8fa27cc5b1c3ed3e0876a85a413"/><file name="system.xml" hash="e772ad2e0cf1790c397fcb035eb5f0dd"/></dir><dir name="sql"><dir name="bronto_reminder_setup"><file name="mysql4-install-1.4.2.php" hash="1372af1369e9608159f5b59af75f367e"/><file name="mysql4-upgrade-1.4.0-1.4.2.php" hash="fefa638ca0ed7c5bc80a1b67e27c8703"/><file name="mysql4-upgrade-1.4.10-1.4.11.php" hash="130a688eb03e4f476308d0d11c32141a"/><file name="mysql4-upgrade-1.4.2-1.4.9.php" hash="4692060e7c938aea129c53619f0b3c19"/><file name="mysql4-upgrade-1.4.9-1.4.10.php" hash="9698883135211d54a3c711fead02c187"/></dir><dir name="reference"><file name="saveMatchedCustomers.sql" hash="c4f32ee8be31f7a652369c148271a6c7"/></dir></dir></dir><dir name="Roundtrip"><dir name="Block"><dir name="Adminhtml"><dir name="System"><dir name="Config"><file name="About.php" hash="6adab60e3a5a4668fdf5da8d8d33a024"/><file name="Status.php" hash="c623240112f1f15200f918394f736720"/></dir></dir><dir name="Widget"><dir name="Button"><file name="Run.php" hash="f83df57a3248439261ccf9837a5d2ff9"/></dir></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="231a77cbc7f38838454437c600189217"/></dir><dir name="Model"><dir name="Contact"><file name="Builder.php" hash="e81e78a7e07a81f5a0ec53990d629a31"/></dir><dir name="Roundtrip"><dir name="Test"><file name="Order.php" hash="04ebcb9f0010cab7952b08014010f721"/></dir></dir><file name="Roundtrip.php" hash="9325c6d924c2b9f4cda49ef0a5168d29"/></dir><dir name="Test"><dir name="Config"><file name="Config.php" hash="dbe4fb05bff7630d6130f8d458ed1f57"/></dir><dir name="Model"><dir name="Roundtrip"><file name="Contact.php" hash="787fe5d49eba3819e9af030bb80beeaa"/><dir name="Test"><file name="Order.php" hash="5bf175ebba99f97a93fb6755977dbfa0"/></dir></dir><file name="Roundtrip.php" hash="c515d5cf63bdfbdab39e3f23901b4e47"/></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="RoundtripController.php" hash="f52fcbd911f40b7637a88a96b0b40869"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="56be6bdda5b7652427bbab1e447a0d2e"/><file name="config.xml" hash="b34c9716b4c6fee7a1d8837b8debff65"/><file name="system.xml" hash="901a0736fb1109f9092fc98daa46dde7"/></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Bronto_All.xml" hash="5a9c06b6313882589765b9bcf0402bbb"/><file name="Bronto_ConflictChecker.xml" hash="1a7dc00b830ca2cc696e67d94b85be5d"/><file name="Bronto_Customer.xml" hash="a11c20f008ee2eae14baa3b549d5adee"/><file name="Bronto_Email.xml" hash="b7cdca4b15753edcefe8b9e0abb780bd"/><file name="Bronto_Newsletter.xml" hash="2115c5225e02ab5d4e56749cc5eff6ad"/><file name="Bronto_Order.xml" hash="63f1537add6088417945657bec98ffe9"/><file name="Bronto_PermissionChecker.xml" hash="55ff239c291529be2dc05799102d24a1"/><file name="Bronto_Reminder.xml" hash="08503ab78994178b822ef9b0add243f9"/><file name="Bronto_Roundtrip.xml" hash="bd2b89f3254e995904da92f025b6321c"/></dir></target><target name="magelib"><dir name="Bronto"><dir name="Api"><dir name="Account"><file name="Exception.php" hash="6048e32e08bac337f37e22918ae92e6a"/><file name="Row.php" hash="de3cb2496c217c25e850573c4d5b2dc2"/></dir><file name="Account.php" hash="30d5ef4bb101748553e239ffe2481183"/><dir name="Activity"><file name="Exception.php" hash="39ac264e8429c000372e849327372471"/><file name="Row.php" hash="b5612081f50d117a7c66f93f9b90382a"/></dir><file name="Activity.php" hash="35aaf580eb62df39b631041937c10187"/><dir name="ApiToken"><file name="Exception.php" hash="ff31b1be1c06581a115aabb7a782d9b5"/><file name="Row.php" hash="1716b6859c05b82301cf28bc7dcca4be"/></dir><file name="ApiToken.php" hash="20ecd2591d6634c42de7b05879c4bc04"/><dir name="Contact"><file name="Exception.php" hash="232fece284740b8e49a5d22ba3082b32"/><file name="Row.php" hash="a85937ee83f1a852372782a8dc1d2eab"/></dir><file name="Contact.php" hash="0413b22277d97b9d9f910281c14a6cea"/><dir name="Conversion"><file name="Exception.php" hash="edaba96e7118b8ce27220ffdabf56721"/><file name="Row.php" hash="495064d7f358f568c0c93b291a267b33"/></dir><file name="Conversion.php" hash="17d45962719271cdc834660cc3478071"/><dir name="Delivery"><file name="Exception.php" hash="c9c746a033ef90ac5e7c70e906331779"/><file name="Recipient.php" hash="9756477b2cbde59ece2b3720c02a5d75"/><file name="Row.php" hash="ca0880566674966a7aa9dee7c4c2c6eb"/></dir><file name="Delivery.php" hash="1866bf3ae809010f630deead7c76a09e"/><dir name="DeliveryGroup"><file name="Exception.php" hash="6ae170c14038a49413580a19ce7ee144"/><file name="Row.php" hash="d5046f7a5dbf39442730f45d17aeaf87"/></dir><file name="DeliveryGroup.php" hash="0e4572ad563c61dd78229af2b6d35cad"/><file name="Exception.php" hash="0df72a2002acff46885dd3978ea95678"/><dir name="Field"><file name="Exception.php" hash="3f900dcdbf5b8b321e48fa6d4a4a5ae1"/><file name="Predefined.php" hash="e876d133b211c4d66ad70ccba7bdff04"/><file name="Row.php" hash="d0c4001b14954dc45e35c8bf8e89cb65"/><file name="TypeGuesser.php" hash="d74ed1da1bd21c93ec68e753edee745f"/></dir><file name="Field.php" hash="4d42365676ef739f72ab50b09595bfa0"/><dir name="List"><file name="Exception.php" hash="ba39e47457265a2042dfaaf0b1c93d70"/><file name="Row.php" hash="bc8f0c84d486f1a41b113529e0da4cc4"/></dir><file name="List.php" hash="589a011d54b9cd6e2400f42fb0391967"/><dir name="Login"><file name="ContactInformation.php" hash="871630e7a0762cb4055183fe9b52b8ea"/><file name="Exception.php" hash="37a401b1206264c7865c62c1c62d394c"/><file name="Row.php" hash="3bfc793c2defa6f538c4b8749dbac22a"/></dir><file name="Login.php" hash="57afd59cd524e57e5a2bdb839a6207e4"/><dir name="Message"><file name="Exception.php" hash="3688ca7320fa9b0a5a3bba80ac4ed072"/><file name="Row.php" hash="ed93a1f123c65324b05e1d2c7b8b4b12"/></dir><file name="Message.php" hash="993e0bfd24d5663078735cbeae9a4b23"/><dir name="MessageRule"><file name="Exception.php" hash="500de77f33962484a640c24521f63659"/><file name="Row.php" hash="5a16b597def2515423e58ab36d17ff01"/></dir><file name="MessageRule.php" hash="bd30a4aa770714ac17b1b33da363aa60"/><file name="Object.php" hash="9681a0940cf96835f2d14b876cce0a4e"/><dir name="Order"><file name="Exception.php" hash="843fd9b527ad8be267664e59e803a2d8"/><file name="Product.php" hash="446161d2fe36cfd849f72066bda8c2ff"/><file name="Row.php" hash="470b921a06f832a0cad81c869038b26e"/></dir><file name="Order.php" hash="9a27755d756a06b82a0cc0d97c315519"/><dir name="Row"><file name="Exception.php" hash="2a48372f5f71cbaad940bc0a62327cff"/></dir><file name="Row.php" hash="459df27d460fd4c3923e860bc8a76a78"/><dir name="Rowset"><file name="Exception.php" hash="5b109a1eef32d14cbc66016fdf65ad9c"/><file name="Iterator.php" hash="0797f8c5a95d47a521ac333e853e6cd3"/></dir><file name="Rowset.php" hash="a10029ba58512887eb7aeb8e40a96a33"/><dir name="Segment"><file name="Exception.php" hash="c0fb3c3a1ed79177f5247abe40adf504"/><file name="Row.php" hash="5211fe7639821a8e413f7832d33dca3c"/></dir><file name="Segment.php" hash="67cf81752cd21a42ad7b6b2ab713c9eb"/></dir><file name="Api.php" hash="2f4d300d9921f4b46faf7d78e34466d9"/><file name="SoapClient.php" hash="f07d2c4551825a1018ddfbd997d660d8"/><dir name="Util"><file name="Colors.php" hash="9bc5a4ce486972d493c82fcb671b416c"/><file name="CountryCodes.php" hash="c666d446d3a156fb2881bf33f2acfc80"/><dir name="Retryer"><file name="FileRetryer.php" hash="6ce89108476048a6e45a7457f53272de"/><file name="RetryerException.php" hash="65ab6cc1f4e71fad55832657f700c653"/><file name="RetryerInterface.php" hash="29aab11684d6eb27439281cd9f6cee76"/></dir><file name="Uuid.php" hash="00f349c1dc57463ebf13639a6bbff6fd"/></dir></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="base"><dir name="default"><dir name="bronto"><file name="cron.css" hash="c7260d3aa14b5945ee76c72dbd914efa"/><dir name="images"><file name="bg_notifications.gif" hash="df73b8aa7e48bb56e0a644245aa3683f"/><file name="logo.jpg" hash="3c6059218195679d99dbb874bdabbd07"/><file name="message_approved.gif" hash="465a056a3ba3d94367f51c3c0b751391"/><file name="message_not_approved.gif" hash="e4f28607f075a105e53fa3113d84bd26"/></dir></dir></dir></dir></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="template"><dir name="bronto"><dir name="newsletter"><file name="js.phtml" hash="6de4664211ad1fc94b226033ef1efc8f"/></dir></dir></dir><dir name="layout"><dir name="bronto"><file name="newsletter.xml" hash="b7d4c9b1fb4fabb4255c6df64e98d332"/></dir></dir></dir></dir></dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="bronto"><dir name="common"><file name="about.phtml" hash="f115cbc70309f4e3b14d33cf29bdb274"/><file name="cron.phtml" hash="f1dbdea68c377d7057230697450e16b1"/></dir><dir name="conflictchecker"><file name="errors.phtml" hash="26c9fa4332b8518141de9dab0db0c823"/></dir><dir name="email"><dir name="template"><file name="edit.phtml" hash="35c4f68337a6be7186be1aac0fbe404e"/><file name="list.phtml" hash="cf2503d79273b5a611cde3acde2bb79d"/></dir></dir><dir name="permissionchecker"><file name="errors.phtml" hash="0306e132afed0c88058be67d37dd211c"/></dir><dir name="roundtrip"><file name="status.phtml" hash="9ce88385bb507dfeb2df9e049a5f9f9d"/></dir></dir></dir><dir name="layout"><dir name="bronto"><file name="email.xml" hash="be77c906770a0d818898a910b03cbe4f"/><file name="reminder.xml" hash="98d835f287cb3aa2ff801f0219f88ccc"/><file name="roundtrip.xml" hash="3da91d3bcb40e1805a80fb2a18ed9cee"/></dir></dir></dir></dir></dir></target><target name="magelocale"><dir name="en_US"><dir name="template"><dir name="email"><dir name="bronto"><file name="abandoned_cart.html" hash="20b0f55098c0f07bf96da3c5309d9192"/></dir></dir></dir></dir></target></contents>
|
61 |
<compatible/>
|
62 |
<dependencies><required><php><min>5.2.13</min><max>5.5.0</max></php><extension><name>soap</name><min></min><max></max></extension><extension><name>openssl</name><min></min><max></max></extension></required></dependencies>
|
63 |
</package>
|