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.3 |
Comparing to | |
See all releases |
Code changes from version 2.0.2.1 to 2.0.3
- app/code/community/Bronto/Common/Block/Adminhtml/System/Config/About.php +1 -1
- app/code/community/Bronto/Common/Block/Adminhtml/System/Config/Cron.php +1 -1
- app/code/community/Bronto/Common/Helper/Data.php +52 -0
- app/code/community/Bronto/Common/Model/System/Config/Source/Field.php +24 -0
- app/code/community/Bronto/Common/etc/config.xml +1 -1
- app/code/community/Bronto/Customer/Block/Adminhtml/System/Config/Cron.php +1 -1
- app/code/community/Bronto/Customer/Block/Adminhtml/System/Config/Form/Fieldset/Attributes.php +206 -53
- app/code/community/Bronto/Customer/Block/Adminhtml/System/Config/Form/Fieldset/Attributes/Address.php +3 -0
- app/code/community/Bronto/Customer/Block/Adminhtml/System/Config/Form/Fieldset/Attributes/Customer.php +3 -0
- app/code/community/Bronto/Customer/Helper/Data.php +18 -0
- app/code/community/Bronto/Customer/Model/{Resource → Mysql4}/Setup.php +2 -2
- app/code/community/Bronto/Customer/Model/Observer.php +157 -35
- app/code/community/Bronto/Customer/Model/Resource/Customer/Collection.php +0 -100
- app/code/community/Bronto/Customer/Model/System/Config/Backend/Brontofield.php +62 -0
- app/code/community/Bronto/Customer/etc/config.xml +10 -5
- app/code/community/Bronto/Customer/etc/system.xml +20 -20
- app/code/community/Bronto/Customer/sql/bronto_customer_setup/mysql4-upgrade-1.0.0-1.0.1.php +1 -1
- app/code/community/Bronto/Customer/sql/bronto_customer_setup/mysql4-upgrade-1.0.1-1.0.2.php +1 -1
- app/code/community/Bronto/Email/Block/Adminhtml/System/Email/Template/Grid.php +3 -2
- app/code/community/Bronto/Newsletter/Block/Adminhtml/System/Config/Cron.php +11 -18
- app/code/community/Bronto/Newsletter/Block/Checkout/Onepage/Newsletter.php +52 -0
- app/code/community/Bronto/Newsletter/Helper/Contact.php +41 -69
- app/code/community/Bronto/Newsletter/Model/Mysql4/Queue/Collection.php +50 -0
- app/code/community/Bronto/Newsletter/Model/Observer.php +118 -101
- app/code/community/Bronto/Order/Block/Adminhtml/System/Config/Cron.php +1 -1
- app/code/community/Bronto/Order/Model/{Resource → Mysql4}/Setup.php +8 -10
- app/code/community/Bronto/Order/Model/Observer.php +6 -0
- app/code/community/Bronto/Order/Model/Resource/Order/Collection.php +0 -81
- app/code/community/Bronto/Order/Test/Config/Config.php +1 -2
- app/code/community/Bronto/Order/etc/config.xml +1 -5
- app/code/community/Bronto/Order/sql/bronto_order_setup/mysql4-upgrade-1.1.5-1.1.6.php +1 -1
- app/code/community/Bronto/Order/sql/bronto_order_setup/mysql4-upgrade-1.1.6-1.1.7.php +1 -1
- app/code/community/Bronto/Reminder/Block/Adminhtml/Reminder/Edit/Tab/Customers.php +2 -1
- app/code/community/Bronto/Reminder/Model/Rule.php +120 -53
- app/code/community/Bronto/Reminder/Test/Config/Config.php +1 -1
- app/code/community/Bronto/Reminder/Test/Model/Rule.php +36 -36
- app/code/community/Bronto/Reminder/etc/config.xml +1 -1
- app/design/frontend/base/default/template/bronto/newsletter/js.phtml +26 -47
- package.xml +5 -5
app/code/community/Bronto/Common/Block/Adminhtml/System/Config/About.php
CHANGED
@@ -5,7 +5,7 @@
|
|
5 |
* @copyright 2011-2013 Bronto Software, Inc.
|
6 |
* @license http://opensource.org/licenses/OSL-3.0 Open Software License v. 3.0 (OSL-3.0)
|
7 |
*
|
8 |
-
* @version 2.0.
|
9 |
*/
|
10 |
class Bronto_Common_Block_Adminhtml_System_Config_About extends Mage_Adminhtml_Block_System_Config_Form_Fieldset
|
11 |
{
|
5 |
* @copyright 2011-2013 Bronto Software, Inc.
|
6 |
* @license http://opensource.org/licenses/OSL-3.0 Open Software License v. 3.0 (OSL-3.0)
|
7 |
*
|
8 |
+
* @version 2.0.3
|
9 |
*/
|
10 |
class Bronto_Common_Block_Adminhtml_System_Config_About extends Mage_Adminhtml_Block_System_Config_Form_Fieldset
|
11 |
{
|
app/code/community/Bronto/Common/Block/Adminhtml/System/Config/Cron.php
CHANGED
@@ -113,7 +113,7 @@ class Bronto_Common_Block_Adminhtml_System_Config_Cron extends Mage_Adminhtml_Bl
|
|
113 |
$percent = 0;
|
114 |
$pending = (int) $this->getProgressBarPending();
|
115 |
$total = (int) $this->getProgressBarTotal();
|
116 |
-
|
117 |
$complete = $total - $pending;
|
118 |
if ($complete > 0) {
|
119 |
$percent = round(($complete / $total) * 100);
|
113 |
$percent = 0;
|
114 |
$pending = (int) $this->getProgressBarPending();
|
115 |
$total = (int) $this->getProgressBarTotal();
|
116 |
+
|
117 |
$complete = $total - $pending;
|
118 |
if ($complete > 0) {
|
119 |
$percent = round(($complete / $total) * 100);
|
app/code/community/Bronto/Common/Helper/Data.php
CHANGED
@@ -435,9 +435,61 @@ class Bronto_Common_Helper_Data extends Mage_Core_Helper_Abstract
|
|
435 |
return false;
|
436 |
}
|
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
|
435 |
return false;
|
436 |
}
|
437 |
}
|
438 |
+
|
439 |
+
// Apply advanced logging data to bronto_common logging
|
440 |
+
if (strtolower($this->_getModuleName()) == 'bronto_common') {
|
441 |
+
$this->_advancedLogging($level, $file);
|
442 |
+
}
|
443 |
+
|
444 |
return Mage::log($message, $level, $file, true);
|
445 |
}
|
446 |
|
447 |
+
/**
|
448 |
+
* Adds Advanced logging data to
|
449 |
+
* @param string $level
|
450 |
+
* @param string $file
|
451 |
+
* @return bool|null
|
452 |
+
*/
|
453 |
+
protected function _advancedLogging($level, $file)
|
454 |
+
{
|
455 |
+
// Log Magento version
|
456 |
+
$edition = (class_exists('Enterprise_Cms_Helper_Data')) ? 'EE' : 'CE';
|
457 |
+
$message = 'Magento ' . $edition . ' v' . Mage::getVersion() . ' - ';
|
458 |
+
|
459 |
+
// Log PHP version
|
460 |
+
if (phpversion()) {
|
461 |
+
$message .= 'PHP v' . phpversion() . ' - ';
|
462 |
+
}
|
463 |
+
|
464 |
+
if (constant('PCRE_VERSION')) {
|
465 |
+
$message .= 'PECL v' . strstr(constant('PCRE_VERSION'), ' ', true) . ' - ';
|
466 |
+
}
|
467 |
+
|
468 |
+
// append with list of custom modules
|
469 |
+
$modules = $this->_getModuleList();
|
470 |
+
$message .= 'Installed Modules: ' . $modules;
|
471 |
+
|
472 |
+
Mage::log($message, $level, $file, true);
|
473 |
+
}
|
474 |
+
|
475 |
+
/**
|
476 |
+
* Get list of active custom modules
|
477 |
+
* @return string
|
478 |
+
*/
|
479 |
+
protected function _getModuleList()
|
480 |
+
{
|
481 |
+
$moduleList = array();
|
482 |
+
$modules = Mage::getConfig()->getNode('modules')->children();
|
483 |
+
|
484 |
+
foreach ($modules as $name => $module) {
|
485 |
+
if (strpos($name, 'Mage_') === FALSE && strpos($name, 'Enterprise_') === FALSE && $module->active == 'true') {
|
486 |
+
$moduleList[] = $name . ' [v' . $module->version . ' codePool: ' . $module->codePool . ']';
|
487 |
+
}
|
488 |
+
}
|
489 |
+
|
490 |
+
return implode(', ', $moduleList);
|
491 |
+
}
|
492 |
+
|
493 |
/**
|
494 |
* Get Array of Store Ids based on current store/website/group
|
495 |
* @return boolean|array
|
app/code/community/Bronto/Common/Model/System/Config/Source/Field.php
CHANGED
@@ -47,4 +47,28 @@ class Bronto_Common_Model_System_Config_Source_Field
|
|
47 |
|
48 |
return $this->_options;
|
49 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
50 |
}
|
47 |
|
48 |
return $this->_options;
|
49 |
}
|
50 |
+
|
51 |
+
/**
|
52 |
+
* Get Field Object by ID
|
53 |
+
* @param string $id
|
54 |
+
* @return boolean|Bronto_Api_Field_Row
|
55 |
+
*/
|
56 |
+
public function getFieldObjectById($id)
|
57 |
+
{
|
58 |
+
try {
|
59 |
+
if ($api = Mage::helper('bronto_common')->getApi()) {
|
60 |
+
/* @var $fieldObject Bronto_Api_Field */
|
61 |
+
$fieldObject = $api->getFieldObject();
|
62 |
+
foreach ($fieldObject->readAll()->iterate() as $field /* @var $field Bronto_Api_Field_Row */) {
|
63 |
+
if ($field->id == $id) {
|
64 |
+
return $field;
|
65 |
+
}
|
66 |
+
}
|
67 |
+
}
|
68 |
+
} catch (Exception $e) {
|
69 |
+
Mage::helper('bronto_common')->writeError($e);
|
70 |
+
}
|
71 |
+
|
72 |
+
return false;
|
73 |
+
}
|
74 |
}
|
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.3</version>
|
6 |
</Bronto_Common>
|
7 |
</modules>
|
8 |
<global>
|
app/code/community/Bronto/Customer/Block/Adminhtml/System/Config/Cron.php
CHANGED
@@ -42,7 +42,7 @@ class Bronto_Customer_Block_Adminhtml_System_Config_Cron extends Bronto_Common_B
|
|
42 |
}
|
43 |
|
44 |
/**
|
45 |
-
* @return
|
46 |
*/
|
47 |
protected function getCustomerResourceCollection()
|
48 |
{
|
42 |
}
|
43 |
|
44 |
/**
|
45 |
+
* @return Bronto_Customer_Model_Mysql4_Queue_Collection
|
46 |
*/
|
47 |
protected function getCustomerResourceCollection()
|
48 |
{
|
app/code/community/Bronto/Customer/Block/Adminhtml/System/Config/Form/Fieldset/Attributes.php
CHANGED
@@ -6,61 +6,219 @@
|
|
6 |
* @version 1.0.0
|
7 |
*/
|
8 |
abstract class Bronto_Customer_Block_Adminhtml_System_Config_Form_Fieldset_Attributes extends Mage_Adminhtml_Block_System_Config_Form_Fieldset
|
9 |
-
{
|
10 |
protected $_ignoreAttributes = array();
|
11 |
-
protected $
|
12 |
-
protected $
|
13 |
-
protected $
|
14 |
-
protected $
|
15 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
16 |
/**
|
17 |
-
*
|
18 |
-
*
|
19 |
-
* @
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
20 |
* @return string
|
21 |
*/
|
22 |
-
protected function
|
23 |
{
|
24 |
-
|
25 |
-
$
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
32 |
}
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
$
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
$
|
46 |
-
$
|
47 |
-
|
48 |
-
$
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
56 |
}
|
|
|
57 |
}
|
58 |
-
|
59 |
-
return
|
60 |
}
|
61 |
-
|
62 |
abstract protected function _getAttributes();
|
63 |
-
|
64 |
/**
|
65 |
* @param Varien_Data_Form_Element_Fieldset $fieldset
|
66 |
* @return array<string>
|
@@ -72,18 +230,13 @@ abstract class Bronto_Customer_Block_Adminhtml_System_Config_Form_Fieldset_Attri
|
|
72 |
// Determine the *actual* name for this select box
|
73 |
preg_match('/\[(\w+)\]\[value\]/', $_element->getName(), $matches);
|
74 |
if (isset($matches[1])) {
|
75 |
-
if (stripos($_element->getName(), 'new_') === false) {
|
76 |
-
$this->_clonedSelect = $_element;
|
77 |
-
$this->_clonedSelectName = $matches[1];
|
78 |
-
} else {
|
79 |
-
$this->_clonedText = $_element;
|
80 |
-
$this->_clonedTextName = $matches[1];
|
81 |
-
}
|
82 |
-
|
83 |
// Add to list
|
84 |
$usedAttributeCodes[] = $matches[1];
|
85 |
}
|
86 |
}
|
|
|
|
|
|
|
87 |
|
88 |
return $usedAttributeCodes;
|
89 |
}
|
6 |
* @version 1.0.0
|
7 |
*/
|
8 |
abstract class Bronto_Customer_Block_Adminhtml_System_Config_Form_Fieldset_Attributes extends Mage_Adminhtml_Block_System_Config_Form_Fieldset
|
9 |
+
{
|
10 |
protected $_ignoreAttributes = array();
|
11 |
+
protected $_configPath = '';
|
12 |
+
protected $_dummyElement;
|
13 |
+
protected $_dummyNewElement;
|
14 |
+
protected $_fieldRenderer;
|
15 |
+
protected $_values;
|
16 |
+
|
17 |
+
public function render(Varien_Data_Form_Element_Abstract $element)
|
18 |
+
{
|
19 |
+
$html = $this->_getHeaderHtml($element);
|
20 |
+
|
21 |
+
// Render Existing elements
|
22 |
+
foreach ($element->getSortedElements() as $field) {
|
23 |
+
$html.= $field->toHtml();
|
24 |
+
}
|
25 |
+
|
26 |
+
// Get Array of existing fields
|
27 |
+
$skips = $this->_getUsedAttributeCodes($element);
|
28 |
+
$order = 100;
|
29 |
+
// Cycle through Attributes and skip ignored attributes
|
30 |
+
foreach ($this->_getAttributes() as $_attribute) {
|
31 |
+
$_attributeCode = $_attribute->getAttributeCode();
|
32 |
+
if (in_array($_attributeCode, $skips)) {
|
33 |
+
continue;
|
34 |
+
} else {
|
35 |
+
$order = $order+5;
|
36 |
+
$html.= $this->_getFieldHtml($element, $_attribute, $order);
|
37 |
+
}
|
38 |
+
}
|
39 |
+
|
40 |
+
$html .= $this->_getFooterHtml($element);
|
41 |
+
|
42 |
+
return $html;
|
43 |
+
}
|
44 |
+
|
45 |
/**
|
46 |
+
* this creates a dummy element so you can say if your config fields are available on default and website level -
|
47 |
+
* you can skip this and add the scope for each element in _getFieldHtml method
|
48 |
+
* @return type
|
49 |
+
*/
|
50 |
+
protected function _getDummyElement($order)
|
51 |
+
{
|
52 |
+
if (empty($this->_dummyElement)) {
|
53 |
+
$this->_dummyElement = new Varien_Object(array(
|
54 |
+
'sort_order' => $order,
|
55 |
+
'frontend_type' => 'select',
|
56 |
+
'frontend_model' => 'bronto_common/adminhtml_system_config_form_field',
|
57 |
+
'backend_model' => 'bronto_customer/system_config_backend_newfield',
|
58 |
+
'source_model' => 'bronto_common/system_config_source_field',
|
59 |
+
'show_in_default' => 1,
|
60 |
+
'show_in_website' => 1,
|
61 |
+
'show_in_store' => 0,
|
62 |
+
));
|
63 |
+
}
|
64 |
+
|
65 |
+
return $this->_dummyElement;
|
66 |
+
}
|
67 |
+
|
68 |
+
/**
|
69 |
+
* Get Dummy Element for 'Create New...' form
|
70 |
+
* @param int $order
|
71 |
+
* @return type
|
72 |
+
*/
|
73 |
+
protected function _getDummyNewElement($order)
|
74 |
+
{
|
75 |
+
if (empty($this->_dummyNewElement)) {
|
76 |
+
$this->_dummyNewElement = new Varien_Object(array(
|
77 |
+
'sort_order' => $order,
|
78 |
+
'frontend_type' => 'text',
|
79 |
+
'backend_model' => 'bronto_customer/system_config_backend_newfield',
|
80 |
+
'show_in_default' => 1,
|
81 |
+
'show_in_website' => 1,
|
82 |
+
'show_in_store' => 0,
|
83 |
+
));
|
84 |
+
}
|
85 |
+
return $this->_dummyNewElement;
|
86 |
+
}
|
87 |
+
|
88 |
+
/**
|
89 |
+
* this sets the fields renderer. If you have a custom renderer you can change this.
|
90 |
+
* @return type
|
91 |
+
*/
|
92 |
+
protected function _getFieldRenderer()
|
93 |
+
{
|
94 |
+
if (empty($this->_fieldRenderer)) {
|
95 |
+
$this->_fieldRenderer = Mage::getBlockSingleton('adminhtml/system_config_form_field');
|
96 |
+
}
|
97 |
+
return $this->_fieldRenderer;
|
98 |
+
}
|
99 |
+
|
100 |
+
/**
|
101 |
+
* this actually gets the html for a field
|
102 |
+
* @param Varien_Data_Form_Element_Abstract $fieldset
|
103 |
+
* @param Mage_Eav_Model_Entity_Attribute $attribute
|
104 |
+
* @param int $order
|
105 |
* @return string
|
106 |
*/
|
107 |
+
protected function _getFieldHtml(Varien_Data_Form_Element_Abstract $fieldset, Mage_Eav_Model_Entity_Attribute $attribute, int $order)
|
108 |
{
|
109 |
+
// Create Select Field
|
110 |
+
$e = $this->_getDummyElement($order);
|
111 |
+
$field = $this->_createField($fieldset, $e, $attribute);
|
112 |
+
|
113 |
+
// Create New Field
|
114 |
+
$en = $this->_getDummyNewElement($order+1);
|
115 |
+
$newField = $this->_createField($fieldset, $en, $attribute, 'newfield');
|
116 |
+
|
117 |
+
// Define Field Dependencies
|
118 |
+
$this->getForm()->getChild('element_dependense')
|
119 |
+
->addFieldMap($field->getHtmlId(), $field->getName())
|
120 |
+
->addFieldMap($newField->getHtmlId(), $newField->getName())
|
121 |
+
->addFieldDependence($newField->getName(), $field->getName(), '_new_');
|
122 |
+
|
123 |
+
return $field->toHtml() . $newField->toHtml();
|
124 |
+
}
|
125 |
+
|
126 |
+
/**
|
127 |
+
* Create Field and Return it
|
128 |
+
* @param Varien_Data_Form_Element_Abstract $fieldset
|
129 |
+
* @param Varien_Object $e
|
130 |
+
* @param Mage_Eav_Model_Entity_Attribute $attribute
|
131 |
+
* @param string $fieldStep
|
132 |
+
* @return Varien_Data_Form_Element_Abstract
|
133 |
+
*/
|
134 |
+
protected function _createField(
|
135 |
+
Varien_Data_Form_Element_Abstract $fieldset,
|
136 |
+
Varien_Object $e,
|
137 |
+
Mage_Eav_Model_Entity_Attribute $attribute,
|
138 |
+
$fieldStep = 'standard'
|
139 |
+
)
|
140 |
+
{
|
141 |
+
// Get Config Data
|
142 |
+
$configData = $this->getConfigData();
|
143 |
+
|
144 |
+
// Define Attribute Code
|
145 |
+
$attributeCode = $attribute->getAttributeCode();
|
146 |
+
$attributeCode = ($fieldStep == 'newfield') ? "dynamic_new_{$attributeCode}" : $attributeCode;
|
147 |
+
|
148 |
+
// Get Attribute Data and Inheritance
|
149 |
+
$path = $this->_configPath . $attributeCode;
|
150 |
+
if (isset($configData[$path])) {
|
151 |
+
$data = $configData[$path];
|
152 |
+
$inherit = false;
|
153 |
+
} else {
|
154 |
+
$data = (string)$this->getForm()->getConfigRoot()->descend($path);
|
155 |
+
$inherit = true;
|
156 |
+
}
|
157 |
+
|
158 |
+
// Get field Renderer
|
159 |
+
if ($e->frontend_model) {
|
160 |
+
$fieldRenderer = Mage::getBlockSingleton((string)$e->frontend_model);
|
161 |
+
} else {
|
162 |
+
$fieldRenderer = $this->_getFieldRenderer();
|
163 |
+
}
|
164 |
+
|
165 |
+
// Define Type, Name, and Label
|
166 |
+
$fieldType = (string)$e->frontend_type ? (string)$e->frontend_type : 'text';
|
167 |
+
$name = str_replace('_attrCode_', $attributeCode, $this->_fieldNameTemplate);
|
168 |
+
$label = ($fieldStep == 'newfield') ? "" : $attribute->getFrontendLabel();
|
169 |
+
|
170 |
+
// Pass through backend model in case it needs to modify value
|
171 |
+
if ($e->backend_model) {
|
172 |
+
$model = Mage::getModel((string)$e->backend_model);
|
173 |
+
if (!$model instanceof Mage_Core_Model_Config_Data) {
|
174 |
+
Mage::throwException('Invalid config field backend model: ' . (string)$e->backend_model);
|
175 |
}
|
176 |
+
$model->setPath($path)->setValue($data)->afterLoad();
|
177 |
+
$data = $model->getValue();
|
178 |
+
}
|
179 |
+
|
180 |
+
// Select Field for Existing attributes
|
181 |
+
$field = $fieldset->addField($attributeCode, $fieldType,
|
182 |
+
array(
|
183 |
+
'name' => $name,
|
184 |
+
'label' => $label,
|
185 |
+
'value' => ($data === 0) ? '' : $data,
|
186 |
+
'inherit' => ($fieldStep == 'newfield') ? false : $inherit,
|
187 |
+
'field_config' => $e,
|
188 |
+
'scope' => $this->getForm()->getScope(),
|
189 |
+
'scopeId' => $this->getForm()->getScopeId(),
|
190 |
+
'scope_label' => '[WEBSITE]',
|
191 |
+
'can_use_default_value' => $this->getForm()->canUseDefaultValue((int)$e->show_in_default),
|
192 |
+
'can_use_website_value' => $this->getForm()->canUseWebsiteValue((int)$e->show_in_website),
|
193 |
+
));
|
194 |
+
|
195 |
+
// Add Validation
|
196 |
+
if ($e->validate) {
|
197 |
+
$field->addClass($e->validate);
|
198 |
+
}
|
199 |
+
|
200 |
+
// Determine if value can be empty
|
201 |
+
if (isset($e->frontend_type) && 'multiselect' === (string)$e->frontend_type && isset($e->can_be_empty)) {
|
202 |
+
$field->setCanBeEmpty(true);
|
203 |
+
}
|
204 |
+
|
205 |
+
// Set Field Renderer
|
206 |
+
$field->setRenderer($fieldRenderer);
|
207 |
+
|
208 |
+
// Use Source Model to define available options
|
209 |
+
if ($e->source_model) {
|
210 |
+
$sourceModel = Mage::getSingleton((string)$e->source_model);
|
211 |
+
if ($sourceModel instanceof Varien_Object) {
|
212 |
+
$sourceModel->setPath($path);
|
213 |
}
|
214 |
+
$field->setValues($sourceModel->toOptionArray());
|
215 |
}
|
216 |
+
|
217 |
+
return $field;
|
218 |
}
|
219 |
+
|
220 |
abstract protected function _getAttributes();
|
221 |
+
|
222 |
/**
|
223 |
* @param Varien_Data_Form_Element_Fieldset $fieldset
|
224 |
* @return array<string>
|
230 |
// Determine the *actual* name for this select box
|
231 |
preg_match('/\[(\w+)\]\[value\]/', $_element->getName(), $matches);
|
232 |
if (isset($matches[1])) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
233 |
// Add to list
|
234 |
$usedAttributeCodes[] = $matches[1];
|
235 |
}
|
236 |
}
|
237 |
+
|
238 |
+
// Merge in ignored attribute codes
|
239 |
+
$usedAttributeCodes = array_merge($usedAttributeCodes, $this->_ignoreAttributes);
|
240 |
|
241 |
return $usedAttributeCodes;
|
242 |
}
|
app/code/community/Bronto/Customer/Block/Adminhtml/System/Config/Form/Fieldset/Attributes/Address.php
CHANGED
@@ -24,6 +24,9 @@ class Bronto_Customer_Block_Adminhtml_System_Config_Form_Fieldset_Attributes_Add
|
|
24 |
'suffix',
|
25 |
'vat_id',
|
26 |
);
|
|
|
|
|
|
|
27 |
|
28 |
/**
|
29 |
* @return array
|
24 |
'suffix',
|
25 |
'vat_id',
|
26 |
);
|
27 |
+
|
28 |
+
protected $_configPath = Bronto_Customer_Helper_Data::XML_PREFIX_ADDRESS_ATTR;
|
29 |
+
protected $_fieldNameTemplate = 'groups[address_attributes][fields][_attrCode_][value]';
|
30 |
|
31 |
/**
|
32 |
* @return array
|
app/code/community/Bronto/Customer/Block/Adminhtml/System/Config/Form/Fieldset/Attributes/Customer.php
CHANGED
@@ -30,6 +30,9 @@ class Bronto_Customer_Block_Adminhtml_System_Config_Form_Fieldset_Attributes_Cus
|
|
30 |
'reward_warning_notification',
|
31 |
'disable_auto_group_change',
|
32 |
);
|
|
|
|
|
|
|
33 |
|
34 |
/**
|
35 |
* @return array
|
30 |
'reward_warning_notification',
|
31 |
'disable_auto_group_change',
|
32 |
);
|
33 |
+
|
34 |
+
protected $_configPath = Bronto_Customer_Helper_Data::XML_PREFIX_CUSTOMER_ATTR;
|
35 |
+
protected $_fieldNameTemplate = 'groups[attributes][fields][_attrCode_][value]';
|
36 |
|
37 |
/**
|
38 |
* @return array
|
app/code/community/Bronto/Customer/Helper/Data.php
CHANGED
@@ -79,4 +79,22 @@ class Bronto_Customer_Helper_Data extends Bronto_Common_Helper_Data implements B
|
|
79 |
}
|
80 |
return false;
|
81 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
82 |
}
|
79 |
}
|
80 |
return false;
|
81 |
}
|
82 |
+
|
83 |
+
/**
|
84 |
+
*
|
85 |
+
* @param Bronto_Api_Field_Row $field
|
86 |
+
* @return boolean
|
87 |
+
*/
|
88 |
+
public function getFieldOptionArray(Bronto_Api_Field_Row $field)
|
89 |
+
{
|
90 |
+
$fieldObjectOptions = $field->options;
|
91 |
+
if ($fieldObjectOptions) {
|
92 |
+
$options = array();
|
93 |
+
foreach ($fieldObjectOptions as $option) {
|
94 |
+
$options[] = $option->value;
|
95 |
+
}
|
96 |
+
return $options;
|
97 |
+
}
|
98 |
+
return false;
|
99 |
+
}
|
100 |
}
|
app/code/community/Bronto/Customer/Model/{Resource → Mysql4}/Setup.php
RENAMED
@@ -3,9 +3,9 @@
|
|
3 |
/**
|
4 |
* @package Bronto\Customer
|
5 |
* @copyright 2011-2012 Bronto Software, Inc.
|
6 |
-
* @version 1.
|
7 |
*/
|
8 |
-
class
|
9 |
{
|
10 |
protected function _getAttributeColumnDefinition($code, $data)
|
11 |
{
|
3 |
/**
|
4 |
* @package Bronto\Customer
|
5 |
* @copyright 2011-2012 Bronto Software, Inc.
|
6 |
+
* @version 1.0.2
|
7 |
*/
|
8 |
+
class Bronto_Customer_Model_Mysql4_Setup extends Mage_Customer_Model_Entity_Setup
|
9 |
{
|
10 |
protected function _getAttributeColumnDefinition($code, $data)
|
11 |
{
|
app/code/community/Bronto/Customer/Model/Observer.php
CHANGED
@@ -76,43 +76,13 @@ class Bronto_Customer_Model_Observer extends Mage_Core_Model_Abstract
|
|
76 |
$brontoContact = $contactObject->createRow();
|
77 |
$brontoContact->email = $customer->getEmail();
|
78 |
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
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 |
-
if ($dob = $customer->getData($_attributeCode)) {
|
91 |
-
$attrValue = Mage::getSingleton('core/date')->date('Y-m-d', $dob);
|
92 |
-
}
|
93 |
-
break;
|
94 |
-
default:
|
95 |
-
$attrValue = $customer->getData($_attributeCode);
|
96 |
-
break;
|
97 |
-
}
|
98 |
-
|
99 |
-
if ($attrValue != '') {
|
100 |
-
$brontoContact->setField($_fieldName, $attrValue);
|
101 |
-
}
|
102 |
-
}
|
103 |
-
}
|
104 |
-
|
105 |
-
// For each Customer Address attribute
|
106 |
$primaryAddress = $customer->getPrimaryShippingAddress();
|
107 |
if (!empty($primaryAddress)) {
|
108 |
-
|
109 |
-
$_attributeCode = $attribute->getAttributeCode();
|
110 |
-
$_fieldName = Mage::helper('bronto_customer')->getAddressAttributeField($_attributeCode, $store);
|
111 |
-
|
112 |
-
if (!empty($_fieldName) && $_fieldName != '_none_') {
|
113 |
-
$brontoContact->setField($_fieldName, $primaryAddress->getData($_attributeCode));
|
114 |
-
}
|
115 |
-
}
|
116 |
}
|
117 |
|
118 |
$brontoContact->persist();
|
@@ -152,6 +122,78 @@ class Bronto_Customer_Model_Observer extends Mage_Core_Model_Abstract
|
|
152 |
}
|
153 |
|
154 |
// }}}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
155 |
// {{{ flushCustomers()
|
156 |
|
157 |
/**
|
@@ -163,6 +205,7 @@ class Bronto_Customer_Model_Observer extends Mage_Core_Model_Abstract
|
|
163 |
*/
|
164 |
public function flushCustomers($customerObject, $customerCache, $result)
|
165 |
{
|
|
|
166 |
$flushResult = $customerObject->flush();
|
167 |
|
168 |
Mage::helper('bronto_customer')->writeVerboseDebug('===== FLUSH =====', 'bronto_customer_api.log');
|
@@ -173,6 +216,15 @@ class Bronto_Customer_Model_Observer extends Mage_Core_Model_Abstract
|
|
173 |
if ($flushResultRow->hasError()) {
|
174 |
$errorCode = $flushResultRow->getErrorCode();
|
175 |
$errorMessage = $flushResultRow->getErrorMessage();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
176 |
if (isset($customerCache[$i])) {
|
177 |
// Get Customer Object
|
178 |
$customer = Mage::getModel('customer/customer')->load($customerCache[$i]['customerId']);
|
@@ -242,4 +294,74 @@ class Bronto_Customer_Model_Observer extends Mage_Core_Model_Abstract
|
|
242 |
}
|
243 |
|
244 |
// }}}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
245 |
}
|
76 |
$brontoContact = $contactObject->createRow();
|
77 |
$brontoContact->email = $customer->getEmail();
|
78 |
|
79 |
+
/* Process Customer Attributes */
|
80 |
+
$brontoContact = $this->processAttributes($brontoContact, $customer, $customerAttributes, $store, 'customer');
|
81 |
+
|
82 |
+
/* Process Address Attributes */
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
83 |
$primaryAddress = $customer->getPrimaryShippingAddress();
|
84 |
if (!empty($primaryAddress)) {
|
85 |
+
$brontoContact = $this->processAttributes($brontoContact, $primaryAddress, $addressAttributes, $store, 'address');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
86 |
}
|
87 |
|
88 |
$brontoContact->persist();
|
122 |
}
|
123 |
|
124 |
// }}}
|
125 |
+
|
126 |
+
/**
|
127 |
+
* Cycle through attributes and validate against Bronto Field type
|
128 |
+
* @param Bronto_Api_Contact_Row $brontoContact
|
129 |
+
* @param $source
|
130 |
+
* @param $attributes
|
131 |
+
* @param Mage_Core_Model_Store $store
|
132 |
+
* @param string $type 'customer' or 'address'
|
133 |
+
* @return Bronto_Api_Contact_Row
|
134 |
+
*/
|
135 |
+
public function processAttributes(Bronto_Api_Contact_Row $brontoContact, $source, $attributes, Mage_Core_Model_Store $store, $type = 'customer')
|
136 |
+
{
|
137 |
+
// For each Customer attribute
|
138 |
+
foreach ($attributes as $attribute) {
|
139 |
+
$_attributeCode = $attribute->getAttributeCode();
|
140 |
+
|
141 |
+
// Get Attribute Field
|
142 |
+
switch ($type) {
|
143 |
+
case 'address':
|
144 |
+
$_fieldName = Mage::helper('bronto_customer')->getAddressAttributeField($_attributeCode, $store);
|
145 |
+
break;
|
146 |
+
default:
|
147 |
+
$_fieldName = Mage::helper('bronto_customer')->getCustomerAttributeField($_attributeCode, $store);
|
148 |
+
break;
|
149 |
+
}
|
150 |
+
|
151 |
+
// Get Customer Attribute Value
|
152 |
+
$_attributeValue = $this->getReadableValue($attribute, $source->getData($_attributeCode));
|
153 |
+
|
154 |
+
// Skip un-mapped or empty attributes
|
155 |
+
if (empty($_fieldName) || '_none_' == $_fieldName || !$_attributeValue || '' == $_attributeValue) {
|
156 |
+
continue;
|
157 |
+
}
|
158 |
+
|
159 |
+
$brontoContact->setField($_fieldName, $_attributeValue);
|
160 |
+
}
|
161 |
+
|
162 |
+
return $brontoContact;
|
163 |
+
}
|
164 |
+
|
165 |
+
/**
|
166 |
+
* Based on attribute type, pull the value or the label
|
167 |
+
* @param type $attribute
|
168 |
+
* @param type $value
|
169 |
+
* @return type
|
170 |
+
*/
|
171 |
+
public function getReadableValue($attribute, $value)
|
172 |
+
{
|
173 |
+
$_attributeType = $attribute->getFrontendInput();
|
174 |
+
|
175 |
+
switch ($_attributeType) {
|
176 |
+
case 'select':
|
177 |
+
case 'boolean':
|
178 |
+
return strtolower(Mage::helper('bronto_customer')->getAttributeAdminLabel($attribute, $value));
|
179 |
+
break;
|
180 |
+
case 'multiselect':
|
181 |
+
$values = array();
|
182 |
+
foreach ($value as $val) {
|
183 |
+
$values[] = strtolower(Mage::helper('bronto_customer')->getAttributeAdminLabel($attribute, $val));
|
184 |
+
}
|
185 |
+
return $values;
|
186 |
+
break;
|
187 |
+
case 'date':
|
188 |
+
return Mage::getSingleton('core/date')->date('Y-m-d', $value);
|
189 |
+
break;
|
190 |
+
default:
|
191 |
+
return $value;
|
192 |
+
break;
|
193 |
+
}
|
194 |
+
}
|
195 |
+
|
196 |
+
|
197 |
// {{{ flushCustomers()
|
198 |
|
199 |
/**
|
205 |
*/
|
206 |
public function flushCustomers($customerObject, $customerCache, $result)
|
207 |
{
|
208 |
+
$fieldModel = Mage::getModel('bronto_common/system_config_source_field');
|
209 |
$flushResult = $customerObject->flush();
|
210 |
|
211 |
Mage::helper('bronto_customer')->writeVerboseDebug('===== FLUSH =====', 'bronto_customer_api.log');
|
216 |
if ($flushResultRow->hasError()) {
|
217 |
$errorCode = $flushResultRow->getErrorCode();
|
218 |
$errorMessage = $flushResultRow->getErrorMessage();
|
219 |
+
|
220 |
+
// Catch Error and Replace Field ID with Field Name
|
221 |
+
if ($errorCode === Bronto_Api_Field_Exception::INVALID_FIELD_VALUE || $errorCode === Bronto_Api_Field_Exception::DATA_TRUNCATION) {
|
222 |
+
if (preg_match("/'([^']+)'/", $errorMessage, $matches)) { // Grab field id if exists
|
223 |
+
$fieldObject = $fieldModel->getFieldObjectById($matches[1]);
|
224 |
+
$errorMessage = str_replace($matches[1], $fieldObject->name, $errorMessage);
|
225 |
+
}
|
226 |
+
}
|
227 |
+
|
228 |
if (isset($customerCache[$i])) {
|
229 |
// Get Customer Object
|
230 |
$customer = Mage::getModel('customer/customer')->load($customerCache[$i]['customerId']);
|
294 |
}
|
295 |
|
296 |
// }}}
|
297 |
+
|
298 |
+
/**
|
299 |
+
* Grab Config Data Object before save and handle the 'Create New...' value for
|
300 |
+
* fields that were generated dynamically
|
301 |
+
* @param Varien_Event_Observer $observer
|
302 |
+
* @return Varien_Event_Observer
|
303 |
+
*/
|
304 |
+
public function saveDynamicField(Varien_Event_Observer $observer)
|
305 |
+
{
|
306 |
+
if ($observer->getObject()->getSection() == 'bronto_customer') {
|
307 |
+
$observer = $this->_handleAttributes($observer);
|
308 |
+
}
|
309 |
+
|
310 |
+
return $observer;
|
311 |
+
}
|
312 |
+
|
313 |
+
/**
|
314 |
+
* Process customer and address attributes and save back to observer
|
315 |
+
* @param Varien_Event_Observer $observer
|
316 |
+
* @return Varien_Event_Observer
|
317 |
+
*/
|
318 |
+
protected function _handleAttributes(Varien_Event_Observer $observer)
|
319 |
+
{
|
320 |
+
$data = $observer->getObject()->getData();
|
321 |
+
|
322 |
+
$attrFieldsCustomer = $this->_processAttributes($data['groups']['attributes']['fields']);
|
323 |
+
$data['groups']['attributes']['fields'] = $attrFieldsCustomer;
|
324 |
+
|
325 |
+
$attrFieldsAddress = $this->_processAttributes($data['groups']['address_attributes']['fields']);
|
326 |
+
$data['groups']['address_attributes']['fields'] = $attrFieldsAddress;
|
327 |
+
|
328 |
+
$observer->getObject()->setData($data);
|
329 |
+
|
330 |
+
return $observer;
|
331 |
+
}
|
332 |
+
|
333 |
+
/**
|
334 |
+
* Capture "Create New..." attributes, create field in Bronto, and save field id
|
335 |
+
* @param array $attributesFields
|
336 |
+
* @return array
|
337 |
+
*/
|
338 |
+
protected function _processAttributes(array $attributesFields)
|
339 |
+
{
|
340 |
+
foreach ($attributesFields as $fieldId => $field) {
|
341 |
+
if (preg_match('/dynamic_new_/', $fieldId)) {
|
342 |
+
$realfield = str_replace('dynamic_new_', '', $fieldId);
|
343 |
+
$value = $field['value'];
|
344 |
+
|
345 |
+
/* @var $fieldObject Bronto_Api_Field */
|
346 |
+
$fieldObject = Mage::helper('bronto_common')->getApi()->getFieldObject();
|
347 |
+
|
348 |
+
$field = $fieldObject->createRow();
|
349 |
+
$field->name = $fieldObject->normalize($value);
|
350 |
+
$field->label = $value;
|
351 |
+
$field->type = Bronto_Api_Field::TYPE_TEXT;
|
352 |
+
|
353 |
+
try {
|
354 |
+
$field->save();
|
355 |
+
$fieldObject->addToCache($field->name, $field);
|
356 |
+
|
357 |
+
$attributesFields[$realfield] = array('value' => $field->id);
|
358 |
+
unset($attributesFields[$fieldId]);
|
359 |
+
} catch (Exception $e) {
|
360 |
+
Mage::helper('bronto_customer')->writeError("Unable to save new field: {$value}");
|
361 |
+
}
|
362 |
+
}
|
363 |
+
}
|
364 |
+
|
365 |
+
return $attributesFields;
|
366 |
+
}
|
367 |
}
|
app/code/community/Bronto/Customer/Model/Resource/Customer/Collection.php
DELETED
@@ -1,100 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/**
|
4 |
-
* @package Bronto\Customer
|
5 |
-
* @copyright 2011-2013 Bronto Software, Inc.
|
6 |
-
* @version 1.1.5
|
7 |
-
*/
|
8 |
-
class Bronto_Customer_Model_Resource_Customer_Collection
|
9 |
-
extends Mage_Customer_Model_Entity_Customer_Collection
|
10 |
-
{
|
11 |
-
/**
|
12 |
-
* @return Bronto_Customer_Model_Resource_Customer_Collection
|
13 |
-
*/
|
14 |
-
public function addBrontoImportedFilter()
|
15 |
-
{
|
16 |
-
$this->addAttributeToFilter('bronto_imported', array('notnull' => true));
|
17 |
-
return $this;
|
18 |
-
}
|
19 |
-
|
20 |
-
/**
|
21 |
-
* @return Bronto_Customer_Model_Resource_Customer_Collection
|
22 |
-
*/
|
23 |
-
public function addBrontoNotImportedFilter()
|
24 |
-
{
|
25 |
-
$this->addFieldToFilter('bronto_imported', array('null' => true));
|
26 |
-
return $this;
|
27 |
-
}
|
28 |
-
|
29 |
-
public function addBrontoMissingImportedAttribute()
|
30 |
-
{
|
31 |
-
$resource = Mage::getSingleton('core/resource');
|
32 |
-
$db = $resource->getConnection('core_read');
|
33 |
-
|
34 |
-
$attributeId = Mage::getModel('eav/config')
|
35 |
-
->getAttribute('customer', 'bronto_imported')
|
36 |
-
->getId();
|
37 |
-
|
38 |
-
$subSelect = $db->select()
|
39 |
-
->from($resource->getTableName('customer_entity_datetime'), array('entity_id'))
|
40 |
-
->where($db->quoteInto('`attribute_id` = ?', $attributeId));
|
41 |
-
$this->getSelect()
|
42 |
-
->where($db->quoteInto('`e`.`entity_id` not in ?', $subSelect));
|
43 |
-
|
44 |
-
return $this;
|
45 |
-
}
|
46 |
-
|
47 |
-
/**
|
48 |
-
* @param mixed $storeIds (null, int|string, array, array may contain null)
|
49 |
-
* @return Bronto_Customer_Model_Resource_Customer_Collection
|
50 |
-
*/
|
51 |
-
public function addStoreFilter($storeIds)
|
52 |
-
{
|
53 |
-
$nullCheck = false;
|
54 |
-
|
55 |
-
if (!is_array($storeIds)) {
|
56 |
-
$storeIds = array($storeIds);
|
57 |
-
}
|
58 |
-
|
59 |
-
$storeIds = array_unique($storeIds);
|
60 |
-
|
61 |
-
if ($index = array_search(null, $storeIds)) {
|
62 |
-
unset($storeIds[$index]);
|
63 |
-
$nullCheck = true;
|
64 |
-
}
|
65 |
-
|
66 |
-
$storeIds[0] = ($storeIds[0] == '') ? 0 : $storeIds[0];
|
67 |
-
|
68 |
-
if ($nullCheck) {
|
69 |
-
$this->getSelect()->where('store_id IN(?) OR store_id IS NULL', $storeIds);
|
70 |
-
} else {
|
71 |
-
$this->getSelect()->where('store_id IN(?)', $storeIds);
|
72 |
-
}
|
73 |
-
|
74 |
-
return $this;
|
75 |
-
}
|
76 |
-
|
77 |
-
/**
|
78 |
-
* Sort order by order created_at date
|
79 |
-
*
|
80 |
-
* @param string $dir
|
81 |
-
* @return Bronto_Customer_Model_Resource_Customer_Collection
|
82 |
-
*/
|
83 |
-
public function orderByCreatedAt($dir = self::SORT_ORDER_DESC)
|
84 |
-
{
|
85 |
-
$this->setOrder('created_at', $dir);
|
86 |
-
return $this;
|
87 |
-
}
|
88 |
-
|
89 |
-
/**
|
90 |
-
* Sort order by order updated_at date
|
91 |
-
*
|
92 |
-
* @param string $dir
|
93 |
-
* @return Bronto_Customer_Model_Resource_Customer_Collection
|
94 |
-
*/
|
95 |
-
public function orderByUpdatedAt($dir = self::SORT_ORDER_DESC)
|
96 |
-
{
|
97 |
-
$this->setOrder('updated_at', $dir);
|
98 |
-
return $this;
|
99 |
-
}
|
100 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/code/community/Bronto/Customer/Model/System/Config/Backend/Brontofield.php
ADDED
@@ -0,0 +1,62 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* @package Bronto\Customer
|
5 |
+
* @copyright 2011-2012 Bronto Software, Inc.
|
6 |
+
*/
|
7 |
+
class Bronto_Customer_Model_System_Config_Backend_Brontofield extends Mage_Core_Model_Config_Data
|
8 |
+
{
|
9 |
+
/**
|
10 |
+
* Processing object before save data
|
11 |
+
*
|
12 |
+
* @return Mage_Core_Model_Abstract
|
13 |
+
*/
|
14 |
+
protected function _beforeSave()
|
15 |
+
{
|
16 |
+
// if ($this->isValueChanged()) {
|
17 |
+
/* @var $fieldObject Bronto_Api_Field */
|
18 |
+
$fieldObject = Mage::getModel('bronto_common/system_config_source_field')->getFieldObjectById($this->getValue());
|
19 |
+
|
20 |
+
if ($fieldObject) {
|
21 |
+
if ('attributes' == $this->group_id) {
|
22 |
+
$attributes = Mage::getModel('customer/entity_attribute_collection');
|
23 |
+
} elseif ('address_attributes' == $this->group_id) {
|
24 |
+
$attributes = Mage::getModel('customer/entity_address_attribute_collection')->addVisibleFilter();
|
25 |
+
}
|
26 |
+
|
27 |
+
if ($attributes) {
|
28 |
+
foreach ($attributes as $attribute) {
|
29 |
+
if ($this->field == $attribute->attribute_code) {
|
30 |
+
if ($attribute->frontend_input != $fieldObject->type && $fieldObject->type != 'text') {
|
31 |
+
$message = "Input type doesn't match: {$this->getFieldConfig()->label} [type: {$attribute->frontend_input}] => {$fieldObject->label} [type: {$fieldObject->type}]"
|
32 |
+
. "... Please note that this could cause issues when attempting to import customers";
|
33 |
+
// Throw Warning, but allow saving
|
34 |
+
Mage::getSingleton('core/session')->addWarning(Mage::helper('adminhtml')->__($message));
|
35 |
+
// Throw Exception and prevent saving
|
36 |
+
// Mage::throwException(Mage::helper('adminhtml')->__($message));
|
37 |
+
}
|
38 |
+
}
|
39 |
+
}
|
40 |
+
}
|
41 |
+
}
|
42 |
+
// }
|
43 |
+
|
44 |
+
return parent::_beforeSave();
|
45 |
+
}
|
46 |
+
|
47 |
+
/**
|
48 |
+
* @param type $path
|
49 |
+
* @param type $value
|
50 |
+
* @return Bronto_Customer_Model_System_Config_Backend_Brontofield
|
51 |
+
*/
|
52 |
+
protected function _saveConfigData($path, $value)
|
53 |
+
{
|
54 |
+
Mage::getModel('core/config_data')
|
55 |
+
->load($path, 'path')
|
56 |
+
->setValue($value)
|
57 |
+
->setPath($path)
|
58 |
+
->save();
|
59 |
+
|
60 |
+
return $this;
|
61 |
+
}
|
62 |
+
}
|
app/code/community/Bronto/Customer/etc/config.xml
CHANGED
@@ -19,12 +19,8 @@
|
|
19 |
<models>
|
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>
|
@@ -36,7 +32,7 @@
|
|
36 |
<bronto_customer_setup>
|
37 |
<setup>
|
38 |
<module>Bronto_Customer</module>
|
39 |
-
<class>
|
40 |
</setup>
|
41 |
<connection>
|
42 |
<use>core_setup</use>
|
@@ -63,6 +59,15 @@
|
|
63 |
</bronto_customer_sales_customer_save_after>
|
64 |
</observers>
|
65 |
</customer_save_after>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
66 |
</events>
|
67 |
</global>
|
68 |
<adminhtml>
|
19 |
<models>
|
20 |
<bronto_customer>
|
21 |
<class>Bronto_Customer_Model</class>
|
|
|
22 |
<resourceModel>bronto_customer_mysql4</resourceModel>
|
23 |
</bronto_customer>
|
|
|
|
|
|
|
24 |
<bronto_customer_mysql4>
|
25 |
<class>Bronto_Customer_Model_Mysql4</class>
|
26 |
<entities>
|
32 |
<bronto_customer_setup>
|
33 |
<setup>
|
34 |
<module>Bronto_Customer</module>
|
35 |
+
<class>Bronto_Customer_Model_Mysql4_Setup</class>
|
36 |
</setup>
|
37 |
<connection>
|
38 |
<use>core_setup</use>
|
59 |
</bronto_customer_sales_customer_save_after>
|
60 |
</observers>
|
61 |
</customer_save_after>
|
62 |
+
<model_config_data_save_before>
|
63 |
+
<observers>
|
64 |
+
<bronto_customer_config_data_save_before>
|
65 |
+
<type>singleton</type>
|
66 |
+
<class>bronto_customer/observer</class>
|
67 |
+
<method>saveDynamicField</method>
|
68 |
+
</bronto_customer_config_data_save_before>
|
69 |
+
</observers>
|
70 |
+
</model_config_data_save_before>
|
71 |
</events>
|
72 |
</global>
|
73 |
<adminhtml>
|
app/code/community/Bronto/Customer/etc/system.xml
CHANGED
@@ -114,6 +114,7 @@
|
|
114 |
<label>Prefix</label>
|
115 |
<frontend_type>select</frontend_type>
|
116 |
<frontend_model>bronto_common/adminhtml_system_config_form_field</frontend_model>
|
|
|
117 |
<source_model>bronto_common/system_config_source_field</source_model>
|
118 |
<show_in_default>1</show_in_default>
|
119 |
<show_in_website>1</show_in_website>
|
@@ -127,7 +128,6 @@
|
|
127 |
<show_in_website>1</show_in_website>
|
128 |
<show_in_store>0</show_in_store>
|
129 |
<depends><prefix>_new_</prefix></depends>
|
130 |
-
<validate>validate-length minimum-length-5</validate>
|
131 |
</new_prefix>
|
132 |
<!-- firstname -->
|
133 |
<firstname>
|
@@ -135,6 +135,7 @@
|
|
135 |
<label>First Name</label>
|
136 |
<frontend_type>select</frontend_type>
|
137 |
<frontend_model>bronto_common/adminhtml_system_config_form_field</frontend_model>
|
|
|
138 |
<source_model>bronto_common/system_config_source_field</source_model>
|
139 |
<show_in_default>1</show_in_default>
|
140 |
<show_in_website>1</show_in_website>
|
@@ -148,7 +149,6 @@
|
|
148 |
<show_in_website>1</show_in_website>
|
149 |
<show_in_store>0</show_in_store>
|
150 |
<depends><firstname>_new_</firstname></depends>
|
151 |
-
<validate>validate-length minimum-length-5</validate>
|
152 |
</new_firstname>
|
153 |
<!-- middlename -->
|
154 |
<middlename>
|
@@ -156,6 +156,7 @@
|
|
156 |
<label>Middle Name/Initial</label>
|
157 |
<frontend_type>select</frontend_type>
|
158 |
<frontend_model>bronto_common/adminhtml_system_config_form_field</frontend_model>
|
|
|
159 |
<source_model>bronto_common/system_config_source_field</source_model>
|
160 |
<show_in_default>1</show_in_default>
|
161 |
<show_in_website>1</show_in_website>
|
@@ -169,7 +170,6 @@
|
|
169 |
<show_in_website>1</show_in_website>
|
170 |
<show_in_store>0</show_in_store>
|
171 |
<depends><middlename>_new_</middlename></depends>
|
172 |
-
<validate>validate-length minimum-length-5</validate>
|
173 |
</new_middlename>
|
174 |
<!-- lastname -->
|
175 |
<lastname>
|
@@ -177,6 +177,7 @@
|
|
177 |
<label>Last Name</label>
|
178 |
<frontend_type>select</frontend_type>
|
179 |
<frontend_model>bronto_common/adminhtml_system_config_form_field</frontend_model>
|
|
|
180 |
<source_model>bronto_common/system_config_source_field</source_model>
|
181 |
<show_in_default>1</show_in_default>
|
182 |
<show_in_website>1</show_in_website>
|
@@ -190,7 +191,6 @@
|
|
190 |
<show_in_website>1</show_in_website>
|
191 |
<show_in_store>0</show_in_store>
|
192 |
<depends><lastname>_new_</lastname></depends>
|
193 |
-
<validate>validate-length minimum-length-5</validate>
|
194 |
</new_lastname>
|
195 |
<!-- suffix -->
|
196 |
<suffix>
|
@@ -198,6 +198,7 @@
|
|
198 |
<label>Suffix</label>
|
199 |
<frontend_type>select</frontend_type>
|
200 |
<frontend_model>bronto_common/adminhtml_system_config_form_field</frontend_model>
|
|
|
201 |
<source_model>bronto_common/system_config_source_field</source_model>
|
202 |
<show_in_default>1</show_in_default>
|
203 |
<show_in_website>1</show_in_website>
|
@@ -211,7 +212,6 @@
|
|
211 |
<show_in_website>1</show_in_website>
|
212 |
<show_in_store>0</show_in_store>
|
213 |
<depends><suffix>_new_</suffix></depends>
|
214 |
-
<validate>validate-length minimum-length-5</validate>
|
215 |
</new_suffix>
|
216 |
<!-- gender -->
|
217 |
<gender>
|
@@ -219,6 +219,7 @@
|
|
219 |
<label>Gender</label>
|
220 |
<frontend_type>select</frontend_type>
|
221 |
<frontend_model>bronto_common/adminhtml_system_config_form_field</frontend_model>
|
|
|
222 |
<source_model>bronto_common/system_config_source_field</source_model>
|
223 |
<show_in_default>1</show_in_default>
|
224 |
<show_in_website>1</show_in_website>
|
@@ -232,7 +233,6 @@
|
|
232 |
<show_in_website>1</show_in_website>
|
233 |
<show_in_store>0</show_in_store>
|
234 |
<depends><gender>_new_</gender></depends>
|
235 |
-
<validate>validate-length minimum-length-5</validate>
|
236 |
</new_gender>
|
237 |
<!-- dob -->
|
238 |
<dob>
|
@@ -240,6 +240,7 @@
|
|
240 |
<label>Date of Birth</label>
|
241 |
<frontend_type>select</frontend_type>
|
242 |
<frontend_model>bronto_common/adminhtml_system_config_form_field</frontend_model>
|
|
|
243 |
<source_model>bronto_common/system_config_source_field</source_model>
|
244 |
<show_in_default>1</show_in_default>
|
245 |
<show_in_website>1</show_in_website>
|
@@ -253,7 +254,6 @@
|
|
253 |
<show_in_website>1</show_in_website>
|
254 |
<show_in_store>0</show_in_store>
|
255 |
<depends><dob>_new_</dob></depends>
|
256 |
-
<validate>validate-length minimum-length-5</validate>
|
257 |
</new_dob>
|
258 |
<!-- taxvat -->
|
259 |
<taxvat>
|
@@ -261,6 +261,7 @@
|
|
261 |
<label>Tax/VAT Number</label>
|
262 |
<frontend_type>select</frontend_type>
|
263 |
<frontend_model>bronto_common/adminhtml_system_config_form_field</frontend_model>
|
|
|
264 |
<source_model>bronto_common/system_config_source_field</source_model>
|
265 |
<show_in_default>1</show_in_default>
|
266 |
<show_in_website>1</show_in_website>
|
@@ -274,7 +275,6 @@
|
|
274 |
<show_in_website>1</show_in_website>
|
275 |
<show_in_store>0</show_in_store>
|
276 |
<depends><taxvat>_new_</taxvat></depends>
|
277 |
-
<validate>validate-length minimum-length-5</validate>
|
278 |
</new_taxvat>
|
279 |
<!-- website_id -->
|
280 |
<website_id>
|
@@ -282,6 +282,7 @@
|
|
282 |
<label>Website Association</label>
|
283 |
<frontend_type>select</frontend_type>
|
284 |
<frontend_model>bronto_common/adminhtml_system_config_form_field</frontend_model>
|
|
|
285 |
<source_model>bronto_common/system_config_source_field</source_model>
|
286 |
<show_in_default>1</show_in_default>
|
287 |
<show_in_website>1</show_in_website>
|
@@ -295,7 +296,6 @@
|
|
295 |
<show_in_website>1</show_in_website>
|
296 |
<show_in_store>0</show_in_store>
|
297 |
<depends><website_id>_new_</website_id></depends>
|
298 |
-
<validate>validate-length minimum-length-5</validate>
|
299 |
</new_website_id>
|
300 |
<!-- group_id -->
|
301 |
<group_id>
|
@@ -303,6 +303,7 @@
|
|
303 |
<label>Customer Group</label>
|
304 |
<frontend_type>select</frontend_type>
|
305 |
<frontend_model>bronto_common/adminhtml_system_config_form_field</frontend_model>
|
|
|
306 |
<source_model>bronto_common/system_config_source_field</source_model>
|
307 |
<show_in_default>1</show_in_default>
|
308 |
<show_in_website>1</show_in_website>
|
@@ -316,7 +317,6 @@
|
|
316 |
<show_in_website>1</show_in_website>
|
317 |
<show_in_store>0</show_in_store>
|
318 |
<depends><group_id>_new_</group_id></depends>
|
319 |
-
<validate>validate-length minimum-length-5</validate>
|
320 |
</new_group_id>
|
321 |
<!-- created_at -->
|
322 |
<created_at>
|
@@ -324,6 +324,7 @@
|
|
324 |
<label>Created At</label>
|
325 |
<frontend_type>select</frontend_type>
|
326 |
<frontend_model>bronto_common/adminhtml_system_config_form_field</frontend_model>
|
|
|
327 |
<source_model>bronto_common/system_config_source_field</source_model>
|
328 |
<show_in_default>1</show_in_default>
|
329 |
<show_in_website>1</show_in_website>
|
@@ -337,7 +338,6 @@
|
|
337 |
<show_in_website>1</show_in_website>
|
338 |
<show_in_store>0</show_in_store>
|
339 |
<depends><created_at>_new_</created_at></depends>
|
340 |
-
<validate>validate-length minimum-length-5</validate>
|
341 |
</new_created_at>
|
342 |
<!-- created_in -->
|
343 |
<created_in>
|
@@ -345,6 +345,7 @@
|
|
345 |
<label>Created From</label>
|
346 |
<frontend_type>select</frontend_type>
|
347 |
<frontend_model>bronto_common/adminhtml_system_config_form_field</frontend_model>
|
|
|
348 |
<source_model>bronto_common/system_config_source_field</source_model>
|
349 |
<show_in_default>1</show_in_default>
|
350 |
<show_in_website>1</show_in_website>
|
@@ -358,7 +359,6 @@
|
|
358 |
<show_in_website>1</show_in_website>
|
359 |
<show_in_store>0</show_in_store>
|
360 |
<depends><created_in>_new_</created_in></depends>
|
361 |
-
<validate>validate-length minimum-length-5</validate>
|
362 |
</new_created_in>
|
363 |
</fields>
|
364 |
</attributes>
|
@@ -377,6 +377,7 @@
|
|
377 |
<label>Street Address</label>
|
378 |
<frontend_type>select</frontend_type>
|
379 |
<frontend_model>bronto_common/adminhtml_system_config_form_field</frontend_model>
|
|
|
380 |
<source_model>bronto_common/system_config_source_field</source_model>
|
381 |
<show_in_default>1</show_in_default>
|
382 |
<show_in_website>1</show_in_website>
|
@@ -390,7 +391,6 @@
|
|
390 |
<show_in_website>1</show_in_website>
|
391 |
<show_in_store>0</show_in_store>
|
392 |
<depends><street>_new_</street></depends>
|
393 |
-
<validate>validate-length minimum-length-5</validate>
|
394 |
</new_street>
|
395 |
<!-- city -->
|
396 |
<city>
|
@@ -398,6 +398,7 @@
|
|
398 |
<label>City</label>
|
399 |
<frontend_type>select</frontend_type>
|
400 |
<frontend_model>bronto_common/adminhtml_system_config_form_field</frontend_model>
|
|
|
401 |
<source_model>bronto_common/system_config_source_field</source_model>
|
402 |
<show_in_default>1</show_in_default>
|
403 |
<show_in_website>1</show_in_website>
|
@@ -411,7 +412,6 @@
|
|
411 |
<show_in_website>1</show_in_website>
|
412 |
<show_in_store>0</show_in_store>
|
413 |
<depends><city>_new_</city></depends>
|
414 |
-
<validate>validate-length minimum-length-5</validate>
|
415 |
</new_city>
|
416 |
<!-- region -->
|
417 |
<region>
|
@@ -419,6 +419,7 @@
|
|
419 |
<label>State/Province</label>
|
420 |
<frontend_type>select</frontend_type>
|
421 |
<frontend_model>bronto_common/adminhtml_system_config_form_field</frontend_model>
|
|
|
422 |
<source_model>bronto_common/system_config_source_field</source_model>
|
423 |
<show_in_default>1</show_in_default>
|
424 |
<show_in_website>1</show_in_website>
|
@@ -432,7 +433,6 @@
|
|
432 |
<show_in_website>1</show_in_website>
|
433 |
<show_in_store>0</show_in_store>
|
434 |
<depends><region>_new_</region></depends>
|
435 |
-
<validate>validate-length minimum-length-5</validate>
|
436 |
</new_region>
|
437 |
<!-- postcode -->
|
438 |
<postcode>
|
@@ -440,6 +440,7 @@
|
|
440 |
<label>Zip/Postal Code</label>
|
441 |
<frontend_type>select</frontend_type>
|
442 |
<frontend_model>bronto_common/adminhtml_system_config_form_field</frontend_model>
|
|
|
443 |
<source_model>bronto_common/system_config_source_field</source_model>
|
444 |
<show_in_default>1</show_in_default>
|
445 |
<show_in_website>1</show_in_website>
|
@@ -453,7 +454,6 @@
|
|
453 |
<show_in_website>1</show_in_website>
|
454 |
<show_in_store>0</show_in_store>
|
455 |
<depends><postcode>_new_</postcode></depends>
|
456 |
-
<validate>validate-length minimum-length-5</validate>
|
457 |
</new_postcode>
|
458 |
<!-- country_id -->
|
459 |
<country_id>
|
@@ -461,6 +461,7 @@
|
|
461 |
<label>Country</label>
|
462 |
<frontend_type>select</frontend_type>
|
463 |
<frontend_model>bronto_common/adminhtml_system_config_form_field</frontend_model>
|
|
|
464 |
<source_model>bronto_common/system_config_source_field</source_model>
|
465 |
<show_in_default>1</show_in_default>
|
466 |
<show_in_website>1</show_in_website>
|
@@ -474,7 +475,6 @@
|
|
474 |
<show_in_website>1</show_in_website>
|
475 |
<show_in_store>0</show_in_store>
|
476 |
<depends><country_id>_new_</country_id></depends>
|
477 |
-
<validate>validate-length minimum-length-5</validate>
|
478 |
</new_country_id>
|
479 |
<!-- company -->
|
480 |
<company>
|
@@ -482,6 +482,7 @@
|
|
482 |
<label>Company</label>
|
483 |
<frontend_type>select</frontend_type>
|
484 |
<frontend_model>bronto_common/adminhtml_system_config_form_field</frontend_model>
|
|
|
485 |
<source_model>bronto_common/system_config_source_field</source_model>
|
486 |
<show_in_default>1</show_in_default>
|
487 |
<show_in_website>1</show_in_website>
|
@@ -495,7 +496,6 @@
|
|
495 |
<show_in_website>1</show_in_website>
|
496 |
<show_in_store>0</show_in_store>
|
497 |
<depends><company>_new_</company></depends>
|
498 |
-
<validate>validate-length minimum-length-5</validate>
|
499 |
</new_company>
|
500 |
<!-- telephone -->
|
501 |
<telephone>
|
@@ -503,6 +503,7 @@
|
|
503 |
<label>Telephone</label>
|
504 |
<frontend_type>select</frontend_type>
|
505 |
<frontend_model>bronto_common/adminhtml_system_config_form_field</frontend_model>
|
|
|
506 |
<source_model>bronto_common/system_config_source_field</source_model>
|
507 |
<show_in_default>1</show_in_default>
|
508 |
<show_in_website>1</show_in_website>
|
@@ -516,7 +517,6 @@
|
|
516 |
<show_in_website>1</show_in_website>
|
517 |
<show_in_store>0</show_in_store>
|
518 |
<depends><telephone>_new_</telephone></depends>
|
519 |
-
<validate>validate-length minimum-length-5</validate>
|
520 |
</new_telephone>
|
521 |
<!-- fax -->
|
522 |
<fax>
|
@@ -524,6 +524,7 @@
|
|
524 |
<label>Fax</label>
|
525 |
<frontend_type>select</frontend_type>
|
526 |
<frontend_model>bronto_common/adminhtml_system_config_form_field</frontend_model>
|
|
|
527 |
<source_model>bronto_common/system_config_source_field</source_model>
|
528 |
<show_in_default>1</show_in_default>
|
529 |
<show_in_website>1</show_in_website>
|
@@ -537,7 +538,6 @@
|
|
537 |
<show_in_website>1</show_in_website>
|
538 |
<show_in_store>0</show_in_store>
|
539 |
<depends><fax>_new_</fax></depends>
|
540 |
-
<validate>validate-length minimum-length-5</validate>
|
541 |
</new_fax>
|
542 |
</fields>
|
543 |
</address_attributes>
|
114 |
<label>Prefix</label>
|
115 |
<frontend_type>select</frontend_type>
|
116 |
<frontend_model>bronto_common/adminhtml_system_config_form_field</frontend_model>
|
117 |
+
<backend_model>bronto_customer/system_config_backend_brontofield</backend_model>
|
118 |
<source_model>bronto_common/system_config_source_field</source_model>
|
119 |
<show_in_default>1</show_in_default>
|
120 |
<show_in_website>1</show_in_website>
|
128 |
<show_in_website>1</show_in_website>
|
129 |
<show_in_store>0</show_in_store>
|
130 |
<depends><prefix>_new_</prefix></depends>
|
|
|
131 |
</new_prefix>
|
132 |
<!-- firstname -->
|
133 |
<firstname>
|
135 |
<label>First Name</label>
|
136 |
<frontend_type>select</frontend_type>
|
137 |
<frontend_model>bronto_common/adminhtml_system_config_form_field</frontend_model>
|
138 |
+
<backend_model>bronto_customer/system_config_backend_brontofield</backend_model>
|
139 |
<source_model>bronto_common/system_config_source_field</source_model>
|
140 |
<show_in_default>1</show_in_default>
|
141 |
<show_in_website>1</show_in_website>
|
149 |
<show_in_website>1</show_in_website>
|
150 |
<show_in_store>0</show_in_store>
|
151 |
<depends><firstname>_new_</firstname></depends>
|
|
|
152 |
</new_firstname>
|
153 |
<!-- middlename -->
|
154 |
<middlename>
|
156 |
<label>Middle Name/Initial</label>
|
157 |
<frontend_type>select</frontend_type>
|
158 |
<frontend_model>bronto_common/adminhtml_system_config_form_field</frontend_model>
|
159 |
+
<backend_model>bronto_customer/system_config_backend_brontofield</backend_model>
|
160 |
<source_model>bronto_common/system_config_source_field</source_model>
|
161 |
<show_in_default>1</show_in_default>
|
162 |
<show_in_website>1</show_in_website>
|
170 |
<show_in_website>1</show_in_website>
|
171 |
<show_in_store>0</show_in_store>
|
172 |
<depends><middlename>_new_</middlename></depends>
|
|
|
173 |
</new_middlename>
|
174 |
<!-- lastname -->
|
175 |
<lastname>
|
177 |
<label>Last Name</label>
|
178 |
<frontend_type>select</frontend_type>
|
179 |
<frontend_model>bronto_common/adminhtml_system_config_form_field</frontend_model>
|
180 |
+
<backend_model>bronto_customer/system_config_backend_brontofield</backend_model>
|
181 |
<source_model>bronto_common/system_config_source_field</source_model>
|
182 |
<show_in_default>1</show_in_default>
|
183 |
<show_in_website>1</show_in_website>
|
191 |
<show_in_website>1</show_in_website>
|
192 |
<show_in_store>0</show_in_store>
|
193 |
<depends><lastname>_new_</lastname></depends>
|
|
|
194 |
</new_lastname>
|
195 |
<!-- suffix -->
|
196 |
<suffix>
|
198 |
<label>Suffix</label>
|
199 |
<frontend_type>select</frontend_type>
|
200 |
<frontend_model>bronto_common/adminhtml_system_config_form_field</frontend_model>
|
201 |
+
<backend_model>bronto_customer/system_config_backend_brontofield</backend_model>
|
202 |
<source_model>bronto_common/system_config_source_field</source_model>
|
203 |
<show_in_default>1</show_in_default>
|
204 |
<show_in_website>1</show_in_website>
|
212 |
<show_in_website>1</show_in_website>
|
213 |
<show_in_store>0</show_in_store>
|
214 |
<depends><suffix>_new_</suffix></depends>
|
|
|
215 |
</new_suffix>
|
216 |
<!-- gender -->
|
217 |
<gender>
|
219 |
<label>Gender</label>
|
220 |
<frontend_type>select</frontend_type>
|
221 |
<frontend_model>bronto_common/adminhtml_system_config_form_field</frontend_model>
|
222 |
+
<backend_model>bronto_customer/system_config_backend_brontofield</backend_model>
|
223 |
<source_model>bronto_common/system_config_source_field</source_model>
|
224 |
<show_in_default>1</show_in_default>
|
225 |
<show_in_website>1</show_in_website>
|
233 |
<show_in_website>1</show_in_website>
|
234 |
<show_in_store>0</show_in_store>
|
235 |
<depends><gender>_new_</gender></depends>
|
|
|
236 |
</new_gender>
|
237 |
<!-- dob -->
|
238 |
<dob>
|
240 |
<label>Date of Birth</label>
|
241 |
<frontend_type>select</frontend_type>
|
242 |
<frontend_model>bronto_common/adminhtml_system_config_form_field</frontend_model>
|
243 |
+
<backend_model>bronto_customer/system_config_backend_brontofield</backend_model>
|
244 |
<source_model>bronto_common/system_config_source_field</source_model>
|
245 |
<show_in_default>1</show_in_default>
|
246 |
<show_in_website>1</show_in_website>
|
254 |
<show_in_website>1</show_in_website>
|
255 |
<show_in_store>0</show_in_store>
|
256 |
<depends><dob>_new_</dob></depends>
|
|
|
257 |
</new_dob>
|
258 |
<!-- taxvat -->
|
259 |
<taxvat>
|
261 |
<label>Tax/VAT Number</label>
|
262 |
<frontend_type>select</frontend_type>
|
263 |
<frontend_model>bronto_common/adminhtml_system_config_form_field</frontend_model>
|
264 |
+
<backend_model>bronto_customer/system_config_backend_brontofield</backend_model>
|
265 |
<source_model>bronto_common/system_config_source_field</source_model>
|
266 |
<show_in_default>1</show_in_default>
|
267 |
<show_in_website>1</show_in_website>
|
275 |
<show_in_website>1</show_in_website>
|
276 |
<show_in_store>0</show_in_store>
|
277 |
<depends><taxvat>_new_</taxvat></depends>
|
|
|
278 |
</new_taxvat>
|
279 |
<!-- website_id -->
|
280 |
<website_id>
|
282 |
<label>Website Association</label>
|
283 |
<frontend_type>select</frontend_type>
|
284 |
<frontend_model>bronto_common/adminhtml_system_config_form_field</frontend_model>
|
285 |
+
<backend_model>bronto_customer/system_config_backend_brontofield</backend_model>
|
286 |
<source_model>bronto_common/system_config_source_field</source_model>
|
287 |
<show_in_default>1</show_in_default>
|
288 |
<show_in_website>1</show_in_website>
|
296 |
<show_in_website>1</show_in_website>
|
297 |
<show_in_store>0</show_in_store>
|
298 |
<depends><website_id>_new_</website_id></depends>
|
|
|
299 |
</new_website_id>
|
300 |
<!-- group_id -->
|
301 |
<group_id>
|
303 |
<label>Customer Group</label>
|
304 |
<frontend_type>select</frontend_type>
|
305 |
<frontend_model>bronto_common/adminhtml_system_config_form_field</frontend_model>
|
306 |
+
<backend_model>bronto_customer/system_config_backend_brontofield</backend_model>
|
307 |
<source_model>bronto_common/system_config_source_field</source_model>
|
308 |
<show_in_default>1</show_in_default>
|
309 |
<show_in_website>1</show_in_website>
|
317 |
<show_in_website>1</show_in_website>
|
318 |
<show_in_store>0</show_in_store>
|
319 |
<depends><group_id>_new_</group_id></depends>
|
|
|
320 |
</new_group_id>
|
321 |
<!-- created_at -->
|
322 |
<created_at>
|
324 |
<label>Created At</label>
|
325 |
<frontend_type>select</frontend_type>
|
326 |
<frontend_model>bronto_common/adminhtml_system_config_form_field</frontend_model>
|
327 |
+
<backend_model>bronto_customer/system_config_backend_brontofield</backend_model>
|
328 |
<source_model>bronto_common/system_config_source_field</source_model>
|
329 |
<show_in_default>1</show_in_default>
|
330 |
<show_in_website>1</show_in_website>
|
338 |
<show_in_website>1</show_in_website>
|
339 |
<show_in_store>0</show_in_store>
|
340 |
<depends><created_at>_new_</created_at></depends>
|
|
|
341 |
</new_created_at>
|
342 |
<!-- created_in -->
|
343 |
<created_in>
|
345 |
<label>Created From</label>
|
346 |
<frontend_type>select</frontend_type>
|
347 |
<frontend_model>bronto_common/adminhtml_system_config_form_field</frontend_model>
|
348 |
+
<backend_model>bronto_customer/system_config_backend_brontofield</backend_model>
|
349 |
<source_model>bronto_common/system_config_source_field</source_model>
|
350 |
<show_in_default>1</show_in_default>
|
351 |
<show_in_website>1</show_in_website>
|
359 |
<show_in_website>1</show_in_website>
|
360 |
<show_in_store>0</show_in_store>
|
361 |
<depends><created_in>_new_</created_in></depends>
|
|
|
362 |
</new_created_in>
|
363 |
</fields>
|
364 |
</attributes>
|
377 |
<label>Street Address</label>
|
378 |
<frontend_type>select</frontend_type>
|
379 |
<frontend_model>bronto_common/adminhtml_system_config_form_field</frontend_model>
|
380 |
+
<backend_model>bronto_customer/system_config_backend_brontofield</backend_model>
|
381 |
<source_model>bronto_common/system_config_source_field</source_model>
|
382 |
<show_in_default>1</show_in_default>
|
383 |
<show_in_website>1</show_in_website>
|
391 |
<show_in_website>1</show_in_website>
|
392 |
<show_in_store>0</show_in_store>
|
393 |
<depends><street>_new_</street></depends>
|
|
|
394 |
</new_street>
|
395 |
<!-- city -->
|
396 |
<city>
|
398 |
<label>City</label>
|
399 |
<frontend_type>select</frontend_type>
|
400 |
<frontend_model>bronto_common/adminhtml_system_config_form_field</frontend_model>
|
401 |
+
<backend_model>bronto_customer/system_config_backend_brontofield</backend_model>
|
402 |
<source_model>bronto_common/system_config_source_field</source_model>
|
403 |
<show_in_default>1</show_in_default>
|
404 |
<show_in_website>1</show_in_website>
|
412 |
<show_in_website>1</show_in_website>
|
413 |
<show_in_store>0</show_in_store>
|
414 |
<depends><city>_new_</city></depends>
|
|
|
415 |
</new_city>
|
416 |
<!-- region -->
|
417 |
<region>
|
419 |
<label>State/Province</label>
|
420 |
<frontend_type>select</frontend_type>
|
421 |
<frontend_model>bronto_common/adminhtml_system_config_form_field</frontend_model>
|
422 |
+
<backend_model>bronto_customer/system_config_backend_brontofield</backend_model>
|
423 |
<source_model>bronto_common/system_config_source_field</source_model>
|
424 |
<show_in_default>1</show_in_default>
|
425 |
<show_in_website>1</show_in_website>
|
433 |
<show_in_website>1</show_in_website>
|
434 |
<show_in_store>0</show_in_store>
|
435 |
<depends><region>_new_</region></depends>
|
|
|
436 |
</new_region>
|
437 |
<!-- postcode -->
|
438 |
<postcode>
|
440 |
<label>Zip/Postal Code</label>
|
441 |
<frontend_type>select</frontend_type>
|
442 |
<frontend_model>bronto_common/adminhtml_system_config_form_field</frontend_model>
|
443 |
+
<backend_model>bronto_customer/system_config_backend_brontofield</backend_model>
|
444 |
<source_model>bronto_common/system_config_source_field</source_model>
|
445 |
<show_in_default>1</show_in_default>
|
446 |
<show_in_website>1</show_in_website>
|
454 |
<show_in_website>1</show_in_website>
|
455 |
<show_in_store>0</show_in_store>
|
456 |
<depends><postcode>_new_</postcode></depends>
|
|
|
457 |
</new_postcode>
|
458 |
<!-- country_id -->
|
459 |
<country_id>
|
461 |
<label>Country</label>
|
462 |
<frontend_type>select</frontend_type>
|
463 |
<frontend_model>bronto_common/adminhtml_system_config_form_field</frontend_model>
|
464 |
+
<backend_model>bronto_customer/system_config_backend_brontofield</backend_model>
|
465 |
<source_model>bronto_common/system_config_source_field</source_model>
|
466 |
<show_in_default>1</show_in_default>
|
467 |
<show_in_website>1</show_in_website>
|
475 |
<show_in_website>1</show_in_website>
|
476 |
<show_in_store>0</show_in_store>
|
477 |
<depends><country_id>_new_</country_id></depends>
|
|
|
478 |
</new_country_id>
|
479 |
<!-- company -->
|
480 |
<company>
|
482 |
<label>Company</label>
|
483 |
<frontend_type>select</frontend_type>
|
484 |
<frontend_model>bronto_common/adminhtml_system_config_form_field</frontend_model>
|
485 |
+
<backend_model>bronto_customer/system_config_backend_brontofield</backend_model>
|
486 |
<source_model>bronto_common/system_config_source_field</source_model>
|
487 |
<show_in_default>1</show_in_default>
|
488 |
<show_in_website>1</show_in_website>
|
496 |
<show_in_website>1</show_in_website>
|
497 |
<show_in_store>0</show_in_store>
|
498 |
<depends><company>_new_</company></depends>
|
|
|
499 |
</new_company>
|
500 |
<!-- telephone -->
|
501 |
<telephone>
|
503 |
<label>Telephone</label>
|
504 |
<frontend_type>select</frontend_type>
|
505 |
<frontend_model>bronto_common/adminhtml_system_config_form_field</frontend_model>
|
506 |
+
<backend_model>bronto_customer/system_config_backend_brontofield</backend_model>
|
507 |
<source_model>bronto_common/system_config_source_field</source_model>
|
508 |
<show_in_default>1</show_in_default>
|
509 |
<show_in_website>1</show_in_website>
|
517 |
<show_in_website>1</show_in_website>
|
518 |
<show_in_store>0</show_in_store>
|
519 |
<depends><telephone>_new_</telephone></depends>
|
|
|
520 |
</new_telephone>
|
521 |
<!-- fax -->
|
522 |
<fax>
|
524 |
<label>Fax</label>
|
525 |
<frontend_type>select</frontend_type>
|
526 |
<frontend_model>bronto_common/adminhtml_system_config_form_field</frontend_model>
|
527 |
+
<backend_model>bronto_customer/system_config_backend_brontofield</backend_model>
|
528 |
<source_model>bronto_common/system_config_source_field</source_model>
|
529 |
<show_in_default>1</show_in_default>
|
530 |
<show_in_website>1</show_in_website>
|
538 |
<show_in_website>1</show_in_website>
|
539 |
<show_in_store>0</show_in_store>
|
540 |
<depends><fax>_new_</fax></depends>
|
|
|
541 |
</new_fax>
|
542 |
</fields>
|
543 |
</address_attributes>
|
app/code/community/Bronto/Customer/sql/bronto_customer_setup/mysql4-upgrade-1.0.0-1.0.1.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
*/
|
5 |
|
6 |
$installer = $this;
|
7 |
-
/* @var $installer
|
8 |
|
9 |
$installer->startSetup();
|
10 |
|
4 |
*/
|
5 |
|
6 |
$installer = $this;
|
7 |
+
/* @var $installer Mage_Core_Model_Mysql4_Setup */
|
8 |
|
9 |
$installer->startSetup();
|
10 |
|
app/code/community/Bronto/Customer/sql/bronto_customer_setup/mysql4-upgrade-1.0.1-1.0.2.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
*/
|
5 |
|
6 |
$installer = $this;
|
7 |
-
/* @var $installer
|
8 |
|
9 |
$installer->startSetup();
|
10 |
|
4 |
*/
|
5 |
|
6 |
$installer = $this;
|
7 |
+
/* @var $installer Mage_Core_Model_Mysql4_Setup */
|
8 |
|
9 |
$installer->startSetup();
|
10 |
|
app/code/community/Bronto/Email/Block/Adminhtml/System/Email/Template/Grid.php
CHANGED
@@ -19,12 +19,13 @@ class Bronto_Email_Block_Adminhtml_System_Email_Template_Grid extends Mage_Admin
|
|
19 |
}
|
20 |
|
21 |
// Change how table names and SQL aliases are mapped resource
|
22 |
-
// to account for version 1.9 differences
|
23 |
$resource = Mage::getSingleton('core/resource');
|
24 |
$tableName = $resource->getTableName('core/store');
|
25 |
$mainTable = $resource->getTableName('core/email_template');
|
26 |
$version = Mage::getVersionInfo();
|
27 |
-
|
|
|
28 |
$mainTable = 'main_table';
|
29 |
}
|
30 |
$collection->getSelect()
|
19 |
}
|
20 |
|
21 |
// Change how table names and SQL aliases are mapped resource
|
22 |
+
// to account for version 1.9 and 1.10 differences
|
23 |
$resource = Mage::getSingleton('core/resource');
|
24 |
$tableName = $resource->getTableName('core/store');
|
25 |
$mainTable = $resource->getTableName('core/email_template');
|
26 |
$version = Mage::getVersionInfo();
|
27 |
+
|
28 |
+
if (1 == $version['major'] && 9 != $version['minor'] && 10 != $version['minor'] && 11 != $version['minor']) {
|
29 |
$mainTable = 'main_table';
|
30 |
}
|
31 |
$collection->getSelect()
|
app/code/community/Bronto/Newsletter/Block/Adminhtml/System/Config/Cron.php
CHANGED
@@ -8,7 +8,7 @@
|
|
8 |
class Bronto_Newsletter_Block_Adminhtml_System_Config_Cron extends Bronto_Common_Block_Adminhtml_System_Config_Cron
|
9 |
{
|
10 |
protected $_jobCode = 'bronto_newsletter_import';
|
11 |
-
protected $_hasProgressBar =
|
12 |
|
13 |
/**
|
14 |
* @return Bronto_Order_Block_Adminhtml_System_Config_Cron
|
@@ -26,8 +26,7 @@ class Bronto_Newsletter_Block_Adminhtml_System_Config_Cron extends Bronto_Common
|
|
26 |
*/
|
27 |
protected function getProgressBarTotal()
|
28 |
{
|
29 |
-
return $this->
|
30 |
-
->addStoreFilter($storeId)
|
31 |
->getSize()
|
32 |
;
|
33 |
}
|
@@ -37,30 +36,24 @@ class Bronto_Newsletter_Block_Adminhtml_System_Config_Cron extends Bronto_Common
|
|
37 |
*/
|
38 |
protected function getProgressBarPending()
|
39 |
{
|
40 |
-
return $this->
|
41 |
->addBrontoNotImportedFilter()
|
42 |
->getSize()
|
43 |
;
|
44 |
}
|
45 |
|
46 |
/**
|
47 |
-
* @return
|
48 |
*/
|
49 |
-
protected function
|
50 |
{
|
51 |
-
$collection = Mage::getModel('
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
$collection->addStoreFilter($
|
56 |
-
} else if ($websiteCode = Mage::app()->getRequest()->getParam('website')){
|
57 |
-
$website = Mage::app()->getWebsite($websiteCode);
|
58 |
-
$collection->addStoreFilter($website->getStoreids());
|
59 |
-
} else if ($groupCode = Mage::app()->getRequest()->getParam('group')){
|
60 |
-
$website = Mage::app()->getGroup($groupCode)->getWebsite();
|
61 |
-
$collection->addStoreFilter($website->getStoreids());
|
62 |
}
|
63 |
-
|
64 |
return $collection;
|
65 |
}
|
66 |
}
|
8 |
class Bronto_Newsletter_Block_Adminhtml_System_Config_Cron extends Bronto_Common_Block_Adminhtml_System_Config_Cron
|
9 |
{
|
10 |
protected $_jobCode = 'bronto_newsletter_import';
|
11 |
+
protected $_hasProgressBar = true;
|
12 |
|
13 |
/**
|
14 |
* @return Bronto_Order_Block_Adminhtml_System_Config_Cron
|
26 |
*/
|
27 |
protected function getProgressBarTotal()
|
28 |
{
|
29 |
+
return $this->getNewsletterResourceCollection()
|
|
|
30 |
->getSize()
|
31 |
;
|
32 |
}
|
36 |
*/
|
37 |
protected function getProgressBarPending()
|
38 |
{
|
39 |
+
return $this->getNewsletterResourceCollection()
|
40 |
->addBrontoNotImportedFilter()
|
41 |
->getSize()
|
42 |
;
|
43 |
}
|
44 |
|
45 |
/**
|
46 |
+
* @return Bronto_Newsletter_Model_Mysql4_Queue_Collection
|
47 |
*/
|
48 |
+
protected function getNewsletterResourceCollection()
|
49 |
{
|
50 |
+
$collection = Mage::getModel('bronto_newsletter/queue')->getCollection();
|
51 |
+
$storeIds = Mage::helper('bronto_customer')->getStoreIds();
|
52 |
+
|
53 |
+
if ($storeIds) {
|
54 |
+
$collection->addStoreFilter($storeIds);
|
|
|
|
|
|
|
|
|
|
|
|
|
55 |
}
|
56 |
+
|
57 |
return $collection;
|
58 |
}
|
59 |
}
|
app/code/community/Bronto/Newsletter/Block/Checkout/Onepage/Newsletter.php
CHANGED
@@ -46,6 +46,15 @@ class Bronto_Newsletter_Block_Checkout_Onepage_Newsletter extends Mage_Checkout_
|
|
46 |
{
|
47 |
return Mage::helper('bronto_newsletter')->isEnabledForRegisterCheckout();
|
48 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
49 |
|
50 |
/**
|
51 |
* @return bool
|
@@ -62,4 +71,47 @@ class Bronto_Newsletter_Block_Checkout_Onepage_Newsletter extends Mage_Checkout_
|
|
62 |
{
|
63 |
return Mage::helper('bronto_newsletter')->getCheckboxLabelText();
|
64 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
65 |
}
|
46 |
{
|
47 |
return Mage::helper('bronto_newsletter')->isEnabledForRegisterCheckout();
|
48 |
}
|
49 |
+
|
50 |
+
/**
|
51 |
+
* @return bool
|
52 |
+
*/
|
53 |
+
public function isEnabledForLoggedinCheckout()
|
54 |
+
{
|
55 |
+
// TODO: This can be replaced when fourth case is added
|
56 |
+
return true;
|
57 |
+
}
|
58 |
|
59 |
/**
|
60 |
* @return bool
|
71 |
{
|
72 |
return Mage::helper('bronto_newsletter')->getCheckboxLabelText();
|
73 |
}
|
74 |
+
|
75 |
+
/**
|
76 |
+
*
|
77 |
+
* @param string $method
|
78 |
+
* @return string
|
79 |
+
*/
|
80 |
+
public function getJsCheckedCode($method)
|
81 |
+
{
|
82 |
+
$js = "";
|
83 |
+
$methodName = 'isEnabledFor' . ucfirst($method) . 'Checkout';
|
84 |
+
|
85 |
+
// Default Values
|
86 |
+
$action = 'hide';
|
87 |
+
$checked = 'false';
|
88 |
+
$value = 'null';
|
89 |
+
|
90 |
+
// If function exists, use it, otherwise we hide and disable values
|
91 |
+
if (method_exists($this, $methodName)) {
|
92 |
+
if ($this->$methodName()) {
|
93 |
+
$action = 'show';
|
94 |
+
if ($this->isSubscribed() || $this->isEnabledCheckedByDefault()) {
|
95 |
+
$checked = 'true';
|
96 |
+
$value = '1';
|
97 |
+
}
|
98 |
+
}
|
99 |
+
}
|
100 |
+
|
101 |
+
// If user is subscribed and enabled if already subscribed is not allowed,
|
102 |
+
// Hide it, but set the values to true
|
103 |
+
if ($this->isSubscribed() && !$this->isEnabledIfAlreadySubscribed()) {
|
104 |
+
$action = 'hide';
|
105 |
+
$checked = 'true';
|
106 |
+
$value = '1';
|
107 |
+
}
|
108 |
+
|
109 |
+
// Create JS
|
110 |
+
$js.= "Element.{$action}('register-customer-newsletter');\r\n";
|
111 |
+
$js.= "$('billing:is_subscribed_box').checked = {$checked};\r\n";
|
112 |
+
$js.= "$('billing:is_subscribed').value = {$value};\r\n";
|
113 |
+
$js.= "$('billing:is_subscribed').value = {$value};\r\n";
|
114 |
+
|
115 |
+
return $js;
|
116 |
+
}
|
117 |
}
|
app/code/community/Bronto/Newsletter/Helper/Contact.php
CHANGED
@@ -18,61 +18,6 @@ class Bronto_Newsletter_Helper_Contact extends Bronto_Common_Helper_Contact
|
|
18 |
*/
|
19 |
const XML_PATH_LISTS = 'bronto_newsletter/contacts/lists';
|
20 |
|
21 |
-
/**
|
22 |
-
* @param string $email
|
23 |
-
* @param string $customSource
|
24 |
-
* @return Bronto_Api_Contact_Row
|
25 |
-
*/
|
26 |
-
public function getContactByEmail($email, $customSource = 'bronto_newsletter', $store = null)
|
27 |
-
{
|
28 |
-
if ($contact = parent::getContactByEmail($email, $customSource, $store)) {
|
29 |
-
if ($this->getUpdateStatus()) {
|
30 |
-
// We want to use the Newsletter status
|
31 |
-
$contact = $this->setStatusFromNewsletter($contact);
|
32 |
-
}
|
33 |
-
|
34 |
-
$contact = $this->_addContactToLists($contact, $this->getListIds($store));
|
35 |
-
}
|
36 |
-
|
37 |
-
return $contact;
|
38 |
-
}
|
39 |
-
|
40 |
-
/**
|
41 |
-
* @param Bronto_Api_Contact_Row $contact
|
42 |
-
* @param Mage_Newsletter_Model_Subscriber $subscriber
|
43 |
-
* @return Bronto_Api_Contact_Row
|
44 |
-
*/
|
45 |
-
public function setStatusFromNewsletter(Bronto_Api_Contact_Row $contact, Mage_Newsletter_Model_Subscriber $subscriber = null)
|
46 |
-
{
|
47 |
-
if (!is_object($subscriber) || !($subscriber instanceOf Mage_Newsletter_Model_Subscriber)) {
|
48 |
-
/* @var $subscriber Mage_Newsletter_Model_Subscriber */
|
49 |
-
$subscriber = Mage::getModel('newsletter/subscriber')->loadByEmail($contact->email);
|
50 |
-
}
|
51 |
-
|
52 |
-
switch ($subscriber->getStatus()) {
|
53 |
-
case Mage_Newsletter_Model_Subscriber::STATUS_SUBSCRIBED:
|
54 |
-
$contact->status = Bronto_Api_Contact::STATUS_ONBOARDING;
|
55 |
-
break;
|
56 |
-
case Mage_Newsletter_Model_Subscriber::STATUS_UNSUBSCRIBED:
|
57 |
-
$contact->status = Bronto_Api_Contact::STATUS_UNSUBSCRIBED;
|
58 |
-
break;
|
59 |
-
case Mage_Newsletter_Model_Subscriber::STATUS_NOT_ACTIVE:
|
60 |
-
default:
|
61 |
-
$contact->status = Bronto_Api_Contact::STATUS_TRANSACTIONAL;
|
62 |
-
break;
|
63 |
-
}
|
64 |
-
|
65 |
-
// Special check for old Magento versions
|
66 |
-
if (defined('Mage_Newsletter_Model_Subscriber::STATUS_UNCONFIRMED')) {
|
67 |
-
if (Mage_Newsletter_Model_Subscriber::STATUS_UNCONFIRMED == $subscriber->getStatus()) {
|
68 |
-
$contact->status = Bronto_Api_Contact::STATUS_UNCONFIRMED;
|
69 |
-
}
|
70 |
-
}
|
71 |
-
|
72 |
-
$this->writeInfo(" Setting Contact ({$contact->email}) status to: {$contact->status}");
|
73 |
-
return $contact;
|
74 |
-
}
|
75 |
-
|
76 |
/**
|
77 |
* @return bool
|
78 |
*/
|
@@ -97,24 +42,25 @@ class Bronto_Newsletter_Helper_Contact extends Bronto_Common_Helper_Contact
|
|
97 |
|
98 |
return $listIds;
|
99 |
}
|
100 |
-
|
101 |
/**
|
102 |
-
*
|
103 |
-
* @param
|
104 |
-
* @return
|
105 |
*/
|
106 |
-
|
107 |
{
|
108 |
-
if (
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
|
|
115 |
}
|
116 |
-
|
117 |
-
return
|
118 |
}
|
119 |
|
120 |
/**
|
@@ -126,4 +72,30 @@ class Bronto_Newsletter_Helper_Contact extends Bronto_Common_Helper_Contact
|
|
126 |
{
|
127 |
return 'Bronto_Newsletter';
|
128 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
129 |
}
|
18 |
*/
|
19 |
const XML_PATH_LISTS = 'bronto_newsletter/contacts/lists';
|
20 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
21 |
/**
|
22 |
* @return bool
|
23 |
*/
|
42 |
|
43 |
return $listIds;
|
44 |
}
|
45 |
+
|
46 |
/**
|
47 |
+
* Get the list object from list id
|
48 |
+
* @param int $listId
|
49 |
+
* @return boolean|Bronto_Api_List_Row
|
50 |
*/
|
51 |
+
public function getListData($listId)
|
52 |
{
|
53 |
+
if ($api = $this->getApi()) {
|
54 |
+
/* @var $listObject Bronto_Api_List */
|
55 |
+
$listObject = $api->getListObject();
|
56 |
+
foreach ($listObject->readAll()->iterate() as $list /* @var $list Bronto_Api_List_Row */) {
|
57 |
+
if ($list->id == $listId) {
|
58 |
+
return $list;
|
59 |
+
}
|
60 |
+
}
|
61 |
}
|
62 |
+
|
63 |
+
return false;
|
64 |
}
|
65 |
|
66 |
/**
|
72 |
{
|
73 |
return 'Bronto_Newsletter';
|
74 |
}
|
75 |
+
|
76 |
+
/**
|
77 |
+
* Convert Magento Newsletter Subscriber Status to Bronto API Contact Status
|
78 |
+
* @param Mage_Newsletter_Model_Subscriber $subscriber
|
79 |
+
* @return boolean
|
80 |
+
*/
|
81 |
+
public function getQueueStatus(Mage_Newsletter_Model_Subscriber $subscriber)
|
82 |
+
{
|
83 |
+
// Set correct status based on subscriber status
|
84 |
+
switch ($subscriber->getStatus()) {
|
85 |
+
case Mage_Newsletter_Model_Subscriber::STATUS_SUBSCRIBED:
|
86 |
+
$status = Bronto_Api_Contact::STATUS_ONBOARDING;
|
87 |
+
break;
|
88 |
+
|
89 |
+
case Mage_Newsletter_Model_Subscriber::STATUS_UNSUBSCRIBED:
|
90 |
+
$status = Bronto_Api_Contact::STATUS_UNSUBSCRIBED;
|
91 |
+
break;
|
92 |
+
|
93 |
+
case Mage_Newsletter_Model_Subscriber::STATUS_NOT_ACTIVE:
|
94 |
+
default:
|
95 |
+
$status = Bronto_Api_Contact::STATUS_TRANSACTIONAL;
|
96 |
+
break;
|
97 |
+
}
|
98 |
+
|
99 |
+
return $status;
|
100 |
+
}
|
101 |
}
|
app/code/community/Bronto/Newsletter/Model/Mysql4/Queue/Collection.php
CHANGED
@@ -36,4 +36,54 @@ class Bronto_Newsletter_Model_Mysql4_Queue_Collection
|
|
36 |
parent::_construct();
|
37 |
$this->_init('bronto_newsletter/queue');
|
38 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
39 |
}
|
36 |
parent::_construct();
|
37 |
$this->_init('bronto_newsletter/queue');
|
38 |
}
|
39 |
+
|
40 |
+
|
41 |
+
|
42 |
+
/**
|
43 |
+
* @return Bronto_Newsletter_Model_Mysql4_Queue_Collection
|
44 |
+
*/
|
45 |
+
public function addBrontoImportedFilter()
|
46 |
+
{
|
47 |
+
$this->addFieldToFilter('imported', array('eq' => '1'));
|
48 |
+
return $this;
|
49 |
+
}
|
50 |
+
|
51 |
+
/**
|
52 |
+
* @return Bronto_Newsletter_Model_Mysql4_Queue_Collection
|
53 |
+
*/
|
54 |
+
public function addBrontoNotImportedFilter()
|
55 |
+
{
|
56 |
+
$this->addFieldToFilter('imported', array('eq' => '0'));
|
57 |
+
return $this;
|
58 |
+
}
|
59 |
+
|
60 |
+
/**
|
61 |
+
* @param mixed $storeIds (null, int|string, array, array may contain null)
|
62 |
+
* @return Bronto_Newsletter_Model_Mysql4_Queue_Collection
|
63 |
+
*/
|
64 |
+
public function addStoreFilter($storeIds)
|
65 |
+
{
|
66 |
+
$nullCheck = false;
|
67 |
+
|
68 |
+
if (!is_array($storeIds)) {
|
69 |
+
$storeIds = array($storeIds);
|
70 |
+
}
|
71 |
+
|
72 |
+
$storeIds = array_unique($storeIds);
|
73 |
+
|
74 |
+
if ($index = array_search(null, $storeIds)) {
|
75 |
+
unset($storeIds[$index]);
|
76 |
+
$nullCheck = true;
|
77 |
+
}
|
78 |
+
|
79 |
+
$storeIds[0] = ($storeIds[0] == '') ? 0 : $storeIds[0];
|
80 |
+
|
81 |
+
if ($nullCheck) {
|
82 |
+
$this->getSelect()->where('store IN(?) OR store IS NULL', $storeIds);
|
83 |
+
} else {
|
84 |
+
$this->getSelect()->where('store IN(?)', $storeIds);
|
85 |
+
}
|
86 |
+
|
87 |
+
return $this;
|
88 |
+
}
|
89 |
}
|
app/code/community/Bronto/Newsletter/Model/Observer.php
CHANGED
@@ -10,7 +10,7 @@ class Bronto_Newsletter_Model_Observer extends Mage_Core_Model_Abstract
|
|
10 |
const NOTICE_IDENTIFER = 'bronto_newsletter';
|
11 |
const BOX_UNCHECKED = 0;
|
12 |
const BOX_CHECKED = 1;
|
13 |
-
const
|
14 |
|
15 |
/**
|
16 |
* @param Varien_Event_Observer $observer
|
@@ -27,7 +27,7 @@ class Bronto_Newsletter_Model_Observer extends Mage_Core_Model_Abstract
|
|
27 |
return;
|
28 |
}
|
29 |
}
|
30 |
-
|
31 |
/**
|
32 |
* This event fires when customer continues past the Billing Info step
|
33 |
* on the onepage checkout. We set a flag here in the session to avoid
|
@@ -40,76 +40,124 @@ class Bronto_Newsletter_Model_Observer extends Mage_Core_Model_Abstract
|
|
40 |
if (!Mage::helper('bronto_newsletter')->isEnabled()) {
|
41 |
return;
|
42 |
}
|
43 |
-
|
44 |
$params = Mage::app()->getRequest()->getParams();
|
45 |
-
|
|
|
|
|
|
|
|
|
|
|
46 |
$isSubscribed = (int) $params['billing']['is_subscribed'];
|
47 |
Mage::getSingleton('checkout/session')->setIsSubscribed($isSubscribed);
|
48 |
} else {
|
49 |
-
Mage::getSingleton('checkout/session')->setIsSubscribed(self::
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
50 |
}
|
51 |
}
|
52 |
|
53 |
/**
|
|
|
54 |
* @param Varien_Event_Observer $observer
|
|
|
55 |
*/
|
56 |
public function handleSubscriptionAtCheckout(Varien_Event_Observer $observer)
|
57 |
{
|
58 |
if (!Mage::helper('bronto_newsletter')->isEnabled()) {
|
59 |
return;
|
60 |
}
|
61 |
-
|
62 |
try {
|
63 |
// Get e-mail address we are working with
|
64 |
$email = $observer->getEvent()->getOrder()->getData('customer_email');
|
|
|
65 |
if (empty($email)) {
|
66 |
Mage::helper('bronto_newsletter')->writeError('No customer_email was provided.');
|
67 |
return false;
|
68 |
}
|
69 |
|
70 |
/* @var $subscriber Mage_Newsletter_Model_Subscriber */
|
71 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
72 |
$isSubscribed = Mage::getSingleton('checkout/session')->getIsSubscribed();
|
73 |
|
|
|
74 |
switch ($isSubscribed) {
|
|
|
|
|
|
|
|
|
|
|
|
|
75 |
case self::BOX_UNCHECKED:
|
76 |
-
// Unsubscribe the Customer
|
77 |
-
if ($subscriber
|
78 |
return $subscriber->unsubscribe();
|
79 |
-
}
|
80 |
-
// Make Custmoer Transactional
|
81 |
$this->_makeTransactional($subscriber, $email);
|
82 |
}
|
83 |
break;
|
84 |
-
case self::
|
85 |
-
//
|
86 |
-
if (!$
|
87 |
-
|
88 |
}
|
89 |
break;
|
90 |
-
|
91 |
-
//
|
92 |
-
$subscriber->setStatus(Mage_Newsletter_Model_Subscriber::STATUS_NOT_ACTIVE);
|
93 |
-
$subscriber->save();
|
94 |
break;
|
95 |
}
|
96 |
-
|
97 |
} catch (Exception $e) {
|
98 |
Mage::helper('bronto_newsletter')->writeError($e);
|
99 |
}
|
|
|
|
|
100 |
}
|
101 |
|
102 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
103 |
{
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
$contact = $contactHelper->getContactByEmail($subscriber->getSubscriberEmail(), null, Mage::app()->getStore()->getId());
|
108 |
-
} catch (Exception $e) {
|
109 |
-
Mage::helper('bronto_newsletter')->writeError($e);
|
110 |
return false;
|
111 |
}
|
112 |
|
|
|
113 |
$ownerId = Mage::getModel('customer/customer')
|
114 |
->setWebsiteId(Mage::app()->getStore()->getWebsiteId())
|
115 |
->loadByEmail($email)
|
@@ -119,6 +167,7 @@ class Bronto_Newsletter_Model_Observer extends Mage_Core_Model_Abstract
|
|
119 |
$ownerId = Mage::getSingleton('customer/session')->getId();
|
120 |
}
|
121 |
|
|
|
122 |
$subscriber->setCustomerId($ownerId);
|
123 |
$subscriber->setSubscriberEmail($email);
|
124 |
$subscriber->setStoreId(Mage::app()->getStore()->getId());
|
@@ -129,8 +178,8 @@ class Bronto_Newsletter_Model_Observer extends Mage_Core_Model_Abstract
|
|
129 |
}
|
130 |
|
131 |
$subscriber->save();
|
132 |
-
|
133 |
-
$
|
134 |
}
|
135 |
|
136 |
/**
|
@@ -143,15 +192,16 @@ class Bronto_Newsletter_Model_Observer extends Mage_Core_Model_Abstract
|
|
143 |
}
|
144 |
|
145 |
// Insert contact email into queuing table. Cron will
|
146 |
-
// then issue an update to Bronto on its next run.
|
147 |
try {
|
148 |
/* @var $subscriber Mage_Newsletter_Model_Subscriber */
|
149 |
-
if (
|
150 |
-
|
151 |
-
|
152 |
-
$this->_saveToQueue($subscriber, Mage::app()->getStore()->getId());
|
153 |
-
}
|
154 |
}
|
|
|
|
|
|
|
155 |
} catch (Exception $e) {
|
156 |
Mage::helper('bronto_newsletter')->writeError($e);
|
157 |
}
|
@@ -161,54 +211,33 @@ class Bronto_Newsletter_Model_Observer extends Mage_Core_Model_Abstract
|
|
161 |
* Add Subscriber to Bronto Newsletter Opt-in queue
|
162 |
* @param Mage_Newsletter_Model_Subscriber $subscriber
|
163 |
* @param int $storeId
|
164 |
-
* @param string $status
|
165 |
* @return void
|
166 |
*/
|
167 |
private function _saveToQueue($subscriber, $storeId)
|
168 |
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
169 |
// Get Calculated Status
|
170 |
-
$status =
|
171 |
|
172 |
/* @var $contactQueue Bronto_Newsletter_Model_Queue */
|
173 |
-
$contactQueue = Mage::getModel('bronto_newsletter/queue')
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
->
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
* Determine Status to use when sending subscriber to opt-in queue
|
186 |
-
* @param Mage_Newsletter_Model_Subscriber $subscriber
|
187 |
-
* @param int $storeId
|
188 |
-
* @return boolean
|
189 |
-
*/
|
190 |
-
private function _getQueueStatus($subscriber)
|
191 |
-
{
|
192 |
-
// Set correct status based on subscriber status
|
193 |
-
switch ($subscriber->getStatus()) {
|
194 |
-
case Mage_Newsletter_Model_Subscriber::STATUS_SUBSCRIBED:
|
195 |
-
$status = Bronto_Api_Contact::STATUS_ONBOARDING;
|
196 |
-
break;
|
197 |
-
|
198 |
-
case Mage_Newsletter_Model_Subscriber::STATUS_UNSUBSCRIBED:
|
199 |
-
$status = Bronto_Api_Contact::STATUS_UNSUBSCRIBED;
|
200 |
-
break;
|
201 |
-
|
202 |
-
case Mage_Newsletter_Model_Subscriber::STATUS_NOT_ACTIVE:
|
203 |
-
$status = Bronto_Api_Contact::STATUS_TRANSACTIONAL;
|
204 |
-
break;
|
205 |
-
|
206 |
-
default:
|
207 |
-
$status = false;
|
208 |
-
break;
|
209 |
-
}
|
210 |
-
|
211 |
-
return $status;
|
212 |
}
|
213 |
|
214 |
/**
|
@@ -239,8 +268,7 @@ class Bronto_Newsletter_Model_Observer extends Mage_Core_Model_Abstract
|
|
239 |
return false;
|
240 |
}
|
241 |
|
242 |
-
$helper
|
243 |
-
$contactHelper = Mage::helper('bronto_common/contact');
|
244 |
|
245 |
$lists = $helper->getListIds($storeId);
|
246 |
|
@@ -254,16 +282,23 @@ class Bronto_Newsletter_Model_Observer extends Mage_Core_Model_Abstract
|
|
254 |
$subscribers->getSelect()->limit($limit);
|
255 |
foreach ($subscribers as $subscriber) {
|
256 |
try {
|
257 |
-
|
|
|
258 |
|
|
|
259 |
foreach ($lists as $listId) {
|
260 |
-
$
|
|
|
|
|
|
|
|
|
|
|
261 |
$contact->addToList($listId);
|
262 |
}
|
263 |
|
264 |
if ($helper->getUpdateStatus()) {
|
265 |
$contact->status = $subscriber->getStatus();
|
266 |
-
$
|
267 |
}
|
268 |
$contact->save();
|
269 |
$subscriber->setImported(1)->save();
|
@@ -291,7 +326,7 @@ class Bronto_Newsletter_Model_Observer extends Mage_Core_Model_Abstract
|
|
291 |
'error' => 0,
|
292 |
);
|
293 |
|
294 |
-
$stores = Mage::app()->getStores();
|
295 |
foreach ($stores as $_store) {
|
296 |
$storeResult = $this->processSubscribersForStore($_store);
|
297 |
$result['total'] += $storeResult['total'];
|
@@ -306,24 +341,6 @@ class Bronto_Newsletter_Model_Observer extends Mage_Core_Model_Abstract
|
|
306 |
* @depricated
|
307 |
*/
|
308 |
static public function cronImport() {
|
309 |
-
|
310 |
-
$contactHelper = Mage::helper('bronto_newsletter/contact');
|
311 |
-
/* var $subscribers Bronto_Newsletter_Model_Mysql4_Queue_Collection */
|
312 |
-
$subscribers = Mage::getModel('bronto_newsletter/queue')
|
313 |
-
->getCollection()
|
314 |
-
->addFilter('imported', 0);
|
315 |
-
|
316 |
-
foreach($subscribers as $subscriber) {
|
317 |
-
$email = $subscriber->getSubscriberEmail();
|
318 |
-
$contact = $contactHelper->getContactByEmail($email, null, $subscriber->getStore());
|
319 |
-
$contact->status = $subscriber->getStatus();
|
320 |
-
|
321 |
-
try {
|
322 |
-
//$contactHelper->saveContact($contact);
|
323 |
-
$subscriber->setImported(1)->save();
|
324 |
-
} catch(Exception $e) {
|
325 |
-
Mage::helper('bronto_newsletter')->writeError($e);
|
326 |
-
}
|
327 |
-
}
|
328 |
}
|
329 |
}
|
10 |
const NOTICE_IDENTIFER = 'bronto_newsletter';
|
11 |
const BOX_UNCHECKED = 0;
|
12 |
const BOX_CHECKED = 1;
|
13 |
+
const BOX_NOT_CHANGED = 2;
|
14 |
|
15 |
/**
|
16 |
* @param Varien_Event_Observer $observer
|
27 |
return;
|
28 |
}
|
29 |
}
|
30 |
+
|
31 |
/**
|
32 |
* This event fires when customer continues past the Billing Info step
|
33 |
* on the onepage checkout. We set a flag here in the session to avoid
|
40 |
if (!Mage::helper('bronto_newsletter')->isEnabled()) {
|
41 |
return;
|
42 |
}
|
43 |
+
Mage::getSingleton('checkout/session')->unsIsSubscribed();
|
44 |
$params = Mage::app()->getRequest()->getParams();
|
45 |
+
|
46 |
+
if (
|
47 |
+
isset($params['billing']['is_subscribed']) &&
|
48 |
+
($params['billing']['is_subscribed'] === '1' ||
|
49 |
+
$params['billing']['is_subscribed'] === '0')
|
50 |
+
) {
|
51 |
$isSubscribed = (int) $params['billing']['is_subscribed'];
|
52 |
Mage::getSingleton('checkout/session')->setIsSubscribed($isSubscribed);
|
53 |
} else {
|
54 |
+
Mage::getSingleton('checkout/session')->setIsSubscribed(self::BOX_NOT_CHANGED);
|
55 |
+
}
|
56 |
+
|
57 |
+
return $observer;
|
58 |
+
}
|
59 |
+
|
60 |
+
/**
|
61 |
+
* Get Bronto Contact Row via Email address
|
62 |
+
* @param string $email
|
63 |
+
* @return boolean|Bronto_Api_Contact_Row
|
64 |
+
*/
|
65 |
+
protected function _getBrontoContact($email)
|
66 |
+
{
|
67 |
+
try {
|
68 |
+
/* @var $contact Bronto_Api_Contact_Row */
|
69 |
+
$contact = Mage::helper('bronto_newsletter/contact')->getContactByEmail($email, null, Mage::app()->getStore()->getId());
|
70 |
+
return $contact;
|
71 |
+
} catch (Exception $e) {
|
72 |
+
Mage::helper('bronto_newsletter')->writeError($e);
|
73 |
+
return false;
|
74 |
}
|
75 |
}
|
76 |
|
77 |
/**
|
78 |
+
* Observe checkout event and handle assigning status
|
79 |
* @param Varien_Event_Observer $observer
|
80 |
+
* @return boolean|Varien_Event_Observer
|
81 |
*/
|
82 |
public function handleSubscriptionAtCheckout(Varien_Event_Observer $observer)
|
83 |
{
|
84 |
if (!Mage::helper('bronto_newsletter')->isEnabled()) {
|
85 |
return;
|
86 |
}
|
87 |
+
|
88 |
try {
|
89 |
// Get e-mail address we are working with
|
90 |
$email = $observer->getEvent()->getOrder()->getData('customer_email');
|
91 |
+
|
92 |
if (empty($email)) {
|
93 |
Mage::helper('bronto_newsletter')->writeError('No customer_email was provided.');
|
94 |
return false;
|
95 |
}
|
96 |
|
97 |
/* @var $subscriber Mage_Newsletter_Model_Subscriber */
|
98 |
+
if (!$subscriber = Mage::getModel('newsletter/subscriber')->loadByEmail($email)) {
|
99 |
+
Mage::helper('bronto_newsletter')->writeError('Unable to create subscriber object');
|
100 |
+
return false;
|
101 |
+
}
|
102 |
+
|
103 |
+
/* @var $contact Bronto_Api_Contact_Row */
|
104 |
+
if (!$contact = $this->_getBrontoContact($email)) {
|
105 |
+
Mage::helper('bronto_newsletter')->writeError('Unable to create contact object');
|
106 |
+
return false;
|
107 |
+
}
|
108 |
+
|
109 |
+
// Get Subscription status
|
110 |
$isSubscribed = Mage::getSingleton('checkout/session')->getIsSubscribed();
|
111 |
|
112 |
+
// Determine action
|
113 |
switch ($isSubscribed) {
|
114 |
+
case self::BOX_CHECKED:
|
115 |
+
// Subscribe the Customer
|
116 |
+
if (!$subscriber->isSubscribed()) {
|
117 |
+
return $subscriber->subscribe($email);
|
118 |
+
}
|
119 |
+
break;
|
120 |
case self::BOX_UNCHECKED:
|
121 |
+
// Unsubscribe the Customer if subscribed, Make Transactional if not in bronto
|
122 |
+
if ($subscriber->isSubscribed()) {
|
123 |
return $subscriber->unsubscribe();
|
124 |
+
} elseif (!$contact->id && !$subscriber->isSubscribed()) {
|
|
|
125 |
$this->_makeTransactional($subscriber, $email);
|
126 |
}
|
127 |
break;
|
128 |
+
case self::BOX_NOT_CHANGED:
|
129 |
+
// Make Customer Transactional if not in bronto
|
130 |
+
if (!$contact->id && !$subscriber->isSubscribed()) {
|
131 |
+
$this->_makeTransactional($subscriber, $email);
|
132 |
}
|
133 |
break;
|
134 |
+
default:
|
135 |
+
// Intentionally blank
|
|
|
|
|
136 |
break;
|
137 |
}
|
|
|
138 |
} catch (Exception $e) {
|
139 |
Mage::helper('bronto_newsletter')->writeError($e);
|
140 |
}
|
141 |
+
|
142 |
+
return $observer;
|
143 |
}
|
144 |
|
145 |
+
/**
|
146 |
+
* Handle setting subscriber as transactional in bronto queue and
|
147 |
+
* removing from magento subscription
|
148 |
+
* @param Mage_Newsletter_Model_Subscriber $subscriber
|
149 |
+
* @param string $email
|
150 |
+
* @return boolean|Mage_Newsletter_Model_Subscriber
|
151 |
+
*/
|
152 |
+
private function _makeTransactional(Mage_Newsletter_Model_Subscriber $subscriber, $email)
|
153 |
{
|
154 |
+
/* @var $contact Bronto_Api_Contact_Row */
|
155 |
+
if (!$contact = $this->_getBrontoContact($email)) {
|
156 |
+
Mage::helper('bronto_newsletter')->writeError('Unable to create contact object');
|
|
|
|
|
|
|
157 |
return false;
|
158 |
}
|
159 |
|
160 |
+
// Get Customer using the email provided
|
161 |
$ownerId = Mage::getModel('customer/customer')
|
162 |
->setWebsiteId(Mage::app()->getStore()->getWebsiteId())
|
163 |
->loadByEmail($email)
|
167 |
$ownerId = Mage::getSingleton('customer/session')->getId();
|
168 |
}
|
169 |
|
170 |
+
// Set Magento Subscriber and Status
|
171 |
$subscriber->setCustomerId($ownerId);
|
172 |
$subscriber->setSubscriberEmail($email);
|
173 |
$subscriber->setStoreId(Mage::app()->getStore()->getId());
|
178 |
}
|
179 |
|
180 |
$subscriber->save();
|
181 |
+
|
182 |
+
return $subscriber;
|
183 |
}
|
184 |
|
185 |
/**
|
192 |
}
|
193 |
|
194 |
// Insert contact email into queuing table. Cron will
|
195 |
+
// then issue an update to Bronto on its next run.
|
196 |
try {
|
197 |
/* @var $subscriber Mage_Newsletter_Model_Subscriber */
|
198 |
+
if (!$subscriber = $observer->getEvent()->getSubscriber()) {
|
199 |
+
Mage::helper('bronto_newsletter')->writeError('Unable to create subscriber object');
|
200 |
+
return false;
|
|
|
|
|
201 |
}
|
202 |
+
|
203 |
+
// Send to queue
|
204 |
+
$this->_saveToQueue($subscriber, Mage::app()->getStore()->getId());
|
205 |
} catch (Exception $e) {
|
206 |
Mage::helper('bronto_newsletter')->writeError($e);
|
207 |
}
|
211 |
* Add Subscriber to Bronto Newsletter Opt-in queue
|
212 |
* @param Mage_Newsletter_Model_Subscriber $subscriber
|
213 |
* @param int $storeId
|
|
|
214 |
* @return void
|
215 |
*/
|
216 |
private function _saveToQueue($subscriber, $storeId)
|
217 |
{
|
218 |
+
// Get e-mail address we are working with
|
219 |
+
$email = $subscriber->getEmail();
|
220 |
+
if (empty($email)) {
|
221 |
+
Mage::helper('bronto_newsletter')->writeError('Subscriber does not have an email address.');
|
222 |
+
return false;
|
223 |
+
}
|
224 |
+
|
225 |
// Get Calculated Status
|
226 |
+
$status = Mage::helper('bronto_newsletter/contact')->getQueueStatus($subscriber);
|
227 |
|
228 |
/* @var $contactQueue Bronto_Newsletter_Model_Queue */
|
229 |
+
$contactQueue = Mage::getModel('bronto_newsletter/queue')
|
230 |
+
->getContactRow($subscriber->getId(), $storeId);
|
231 |
+
|
232 |
+
// If ContactQueue status doesn't match subscriber status, replace it
|
233 |
+
if ($status != $contactQueue->getStatus()) {
|
234 |
+
$contactQueue->setSubscriberEmail($subscriber->getEmail())
|
235 |
+
->setStatus($status)
|
236 |
+
->setMessagePreference('html')
|
237 |
+
->setSource('api')
|
238 |
+
->setImported(0)
|
239 |
+
->save();
|
240 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
241 |
}
|
242 |
|
243 |
/**
|
268 |
return false;
|
269 |
}
|
270 |
|
271 |
+
$helper = Mage::helper('bronto_newsletter/contact');
|
|
|
272 |
|
273 |
$lists = $helper->getListIds($storeId);
|
274 |
|
282 |
$subscribers->getSelect()->limit($limit);
|
283 |
foreach ($subscribers as $subscriber) {
|
284 |
try {
|
285 |
+
/* @var $contact Bronto_Api_Contact_Row */
|
286 |
+
$contact = $helper->getContactByEmail($subscriber->getSubscriberEmail(), null, $storeId);
|
287 |
|
288 |
+
// Get List Details
|
289 |
foreach ($lists as $listId) {
|
290 |
+
if ($list = $helper->getListData($listId)) {
|
291 |
+
$listName = $list->label;
|
292 |
+
} else {
|
293 |
+
$listName = $listId;
|
294 |
+
}
|
295 |
+
$helper->writeInfo(" Adding Contact to list: {$listName}");
|
296 |
$contact->addToList($listId);
|
297 |
}
|
298 |
|
299 |
if ($helper->getUpdateStatus()) {
|
300 |
$contact->status = $subscriber->getStatus();
|
301 |
+
$helper->writeInfo(" Setting Contact ({$contact->email}) status to: {$contact->status}");
|
302 |
}
|
303 |
$contact->save();
|
304 |
$subscriber->setImported(1)->save();
|
326 |
'error' => 0,
|
327 |
);
|
328 |
|
329 |
+
$stores = Mage::app()->getStores(true);
|
330 |
foreach ($stores as $_store) {
|
331 |
$storeResult = $this->processSubscribersForStore($_store);
|
332 |
$result['total'] += $storeResult['total'];
|
341 |
* @depricated
|
342 |
*/
|
343 |
static public function cronImport() {
|
344 |
+
return;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
345 |
}
|
346 |
}
|
app/code/community/Bronto/Order/Block/Adminhtml/System/Config/Cron.php
CHANGED
@@ -48,7 +48,7 @@ class Bronto_Order_Block_Adminhtml_System_Config_Cron extends Bronto_Common_Bloc
|
|
48 |
}
|
49 |
|
50 |
/**
|
51 |
-
* @return
|
52 |
*/
|
53 |
protected function getOrderResourceCollection()
|
54 |
{
|
48 |
}
|
49 |
|
50 |
/**
|
51 |
+
* @return Bronto_Order_Model_Mysql4_Queue_Collection
|
52 |
*/
|
53 |
protected function getOrderResourceCollection()
|
54 |
{
|
app/code/community/Bronto/Order/Model/{Resource → Mysql4}/Setup.php
RENAMED
@@ -3,19 +3,17 @@
|
|
3 |
/**
|
4 |
* @package Order
|
5 |
* @copyright 2011-2012 Bronto Software, Inc.
|
6 |
-
* @version 1.1.
|
7 |
*/
|
8 |
-
class
|
9 |
{
|
10 |
|
11 |
/**
|
12 |
-
*
|
13 |
-
*
|
14 |
-
* Long description (if any) ...
|
15 |
*
|
16 |
* @param string $code Parameter description (if any) ...
|
17 |
* @param unknown $data Parameter description (if any) ...
|
18 |
-
* @return string
|
19 |
* @access protected
|
20 |
*/
|
21 |
protected function _getAttributeColumnDefinition($code, $data)
|
@@ -35,7 +33,7 @@ class Bronto_Order_Model_Resource_Setup extends Mage_Sales_Model_Mysql4_Setup
|
|
35 |
* @param int|string $entityTypeId
|
36 |
* @param string $code
|
37 |
* @param array $attr
|
38 |
-
* @return
|
39 |
*/
|
40 |
public function removeAttribute($entityTypeId, $code)
|
41 |
{
|
@@ -45,7 +43,7 @@ class Bronto_Order_Model_Resource_Setup extends Mage_Sales_Model_Mysql4_Setup
|
|
45 |
$this->_removeFlatAttribute($this->_flatEntityTables[$entityTypeId], $code);
|
46 |
$this->_removeGridAttribute($this->_flatEntityTables[$entityTypeId], $code, $entityTypeId);
|
47 |
} else {
|
48 |
-
parent::removeAttribute($entityTypeId, $code
|
49 |
}
|
50 |
return $this;
|
51 |
}
|
@@ -57,7 +55,7 @@ class Bronto_Order_Model_Resource_Setup extends Mage_Sales_Model_Mysql4_Setup
|
|
57 |
* @param string $table
|
58 |
* @param string $attribute
|
59 |
* @param array $attr
|
60 |
-
* @return
|
61 |
*/
|
62 |
protected function _removeFlatAttribute($table, $attribute)
|
63 |
{
|
@@ -72,7 +70,7 @@ class Bronto_Order_Model_Resource_Setup extends Mage_Sales_Model_Mysql4_Setup
|
|
72 |
* @param string $attribute
|
73 |
* @param array $attr
|
74 |
* @param string $entityTypeId
|
75 |
-
* @return
|
76 |
*/
|
77 |
protected function _removeGridAttribute($table, $attribute, $entityTypeId)
|
78 |
{
|
3 |
/**
|
4 |
* @package Order
|
5 |
* @copyright 2011-2012 Bronto Software, Inc.
|
6 |
+
* @version 1.1.7
|
7 |
*/
|
8 |
+
class Bronto_Order_Model_Mysql4_Setup extends Mage_Sales_Model_Mysql4_Setup
|
9 |
{
|
10 |
|
11 |
/**
|
12 |
+
* Get column definition for attribute
|
|
|
|
|
13 |
*
|
14 |
* @param string $code Parameter description (if any) ...
|
15 |
* @param unknown $data Parameter description (if any) ...
|
16 |
+
* @return string Return description (if any) ...
|
17 |
* @access protected
|
18 |
*/
|
19 |
protected function _getAttributeColumnDefinition($code, $data)
|
33 |
* @param int|string $entityTypeId
|
34 |
* @param string $code
|
35 |
* @param array $attr
|
36 |
+
* @return Mage_Sales_Model_Mysql4_Setup
|
37 |
*/
|
38 |
public function removeAttribute($entityTypeId, $code)
|
39 |
{
|
43 |
$this->_removeFlatAttribute($this->_flatEntityTables[$entityTypeId], $code);
|
44 |
$this->_removeGridAttribute($this->_flatEntityTables[$entityTypeId], $code, $entityTypeId);
|
45 |
} else {
|
46 |
+
parent::removeAttribute($entityTypeId, $code);
|
47 |
}
|
48 |
return $this;
|
49 |
}
|
55 |
* @param string $table
|
56 |
* @param string $attribute
|
57 |
* @param array $attr
|
58 |
+
* @return Mage_Sales_Model_Mysql4_Setup
|
59 |
*/
|
60 |
protected function _removeFlatAttribute($table, $attribute)
|
61 |
{
|
70 |
* @param string $attribute
|
71 |
* @param array $attr
|
72 |
* @param string $entityTypeId
|
73 |
+
* @return Mage_Sales_Model_Mysql4_Setup
|
74 |
*/
|
75 |
protected function _removeGridAttribute($table, $attribute, $entityTypeId)
|
76 |
{
|
app/code/community/Bronto/Order/Model/Observer.php
CHANGED
@@ -37,6 +37,9 @@ class Bronto_Order_Model_Observer
|
|
37 |
$store = Mage::app()->getStore($storeId);
|
38 |
$storeId = $store->getId();
|
39 |
}
|
|
|
|
|
|
|
40 |
|
41 |
$result = array('total' => 0, 'success' => 0, 'error' => 0);
|
42 |
Mage::helper('bronto_order')->writeDebug("Starting Order Import process for store: {$store->getName()} ({$storeId})");
|
@@ -179,6 +182,9 @@ class Bronto_Order_Model_Observer
|
|
179 |
Mage::helper('bronto_order')->writeDebug(' Error: ' . $results['error']);
|
180 |
Mage::helper('bronto_order')->writeDebug(' Total: ' . $results['total']);
|
181 |
|
|
|
|
|
|
|
182 |
return $results;
|
183 |
}
|
184 |
|
37 |
$store = Mage::app()->getStore($storeId);
|
38 |
$storeId = $store->getId();
|
39 |
}
|
40 |
+
|
41 |
+
// Set the current store ID
|
42 |
+
Mage::app()->setCurrentStore($storeId);
|
43 |
|
44 |
$result = array('total' => 0, 'success' => 0, 'error' => 0);
|
45 |
Mage::helper('bronto_order')->writeDebug("Starting Order Import process for store: {$store->getName()} ({$storeId})");
|
182 |
Mage::helper('bronto_order')->writeDebug(' Error: ' . $results['error']);
|
183 |
Mage::helper('bronto_order')->writeDebug(' Total: ' . $results['total']);
|
184 |
|
185 |
+
// Set store back to admin store
|
186 |
+
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
|
187 |
+
|
188 |
return $results;
|
189 |
}
|
190 |
|
app/code/community/Bronto/Order/Model/Resource/Order/Collection.php
DELETED
@@ -1,81 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/**
|
4 |
-
* @package Order
|
5 |
-
* @copyright 2011-2012 Bronto Software, Inc.
|
6 |
-
* @version 1.1.5
|
7 |
-
*/
|
8 |
-
class Bronto_Order_Model_Resource_Order_Collection extends Mage_Sales_Model_Mysql4_Order_Collection
|
9 |
-
{
|
10 |
-
/**
|
11 |
-
* @return Bronto_Order_Model_Resource_Order_Collection
|
12 |
-
*/
|
13 |
-
public function addBrontoImportedFilter()
|
14 |
-
{
|
15 |
-
$this->addAttributeToFilter('bronto_imported', array('notnull' => true));
|
16 |
-
return $this;
|
17 |
-
}
|
18 |
-
|
19 |
-
/**
|
20 |
-
* @return Bronto_Order_Model_Resource_Order_Collection
|
21 |
-
*/
|
22 |
-
public function addBrontoNotImportedFilter()
|
23 |
-
{
|
24 |
-
$this->addAttributeToFilter('bronto_imported', array('null' => true));
|
25 |
-
return $this;
|
26 |
-
}
|
27 |
-
|
28 |
-
/**
|
29 |
-
* @param mixed $storeIds (null, int|string, array, array may contain null)
|
30 |
-
* @return Bronto_Order_Model_Resource_Order_Collection
|
31 |
-
*/
|
32 |
-
public function addStoreFilter($storeIds)
|
33 |
-
{
|
34 |
-
$nullCheck = false;
|
35 |
-
|
36 |
-
if (!is_array($storeIds)) {
|
37 |
-
$storeIds = array($storeIds);
|
38 |
-
}
|
39 |
-
|
40 |
-
$storeIds = array_unique($storeIds);
|
41 |
-
|
42 |
-
if ($index = array_search(null, $storeIds)) {
|
43 |
-
unset($storeIds[$index]);
|
44 |
-
$nullCheck = true;
|
45 |
-
}
|
46 |
-
|
47 |
-
$storeIds[0] = ($storeIds[0] == '') ? 0 : $storeIds[0];
|
48 |
-
|
49 |
-
if ($nullCheck) {
|
50 |
-
$this->getSelect()->where('store_id IN(?) OR store_id IS NULL', $storeIds);
|
51 |
-
} else {
|
52 |
-
$this->getSelect()->where('store_id IN(?)', $storeIds);
|
53 |
-
}
|
54 |
-
|
55 |
-
return $this;
|
56 |
-
}
|
57 |
-
|
58 |
-
/**
|
59 |
-
* Sort order by order created_at date
|
60 |
-
*
|
61 |
-
* @param string $dir
|
62 |
-
* @return Bronto_Order_Model_Resource_Order_Collection
|
63 |
-
*/
|
64 |
-
public function orderByCreatedAt($dir = self::SORT_ORDER_DESC)
|
65 |
-
{
|
66 |
-
$this->setOrder('created_at', $dir);
|
67 |
-
return $this;
|
68 |
-
}
|
69 |
-
|
70 |
-
/**
|
71 |
-
* Sort order by order updated_at date
|
72 |
-
*
|
73 |
-
* @param string $dir
|
74 |
-
* @return Bronto_Order_Model_Resource_Order_Collection
|
75 |
-
*/
|
76 |
-
public function orderByUpdatedAt($dir = self::SORT_ORDER_DESC)
|
77 |
-
{
|
78 |
-
$this->setOrder('updated_at', $dir);
|
79 |
-
return $this;
|
80 |
-
}
|
81 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/code/community/Bronto/Order/Test/Config/Config.php
CHANGED
@@ -22,8 +22,7 @@ class Bronto_Order_Test_Config_Config
|
|
22 |
public function resourceModelProvider()
|
23 |
{
|
24 |
return array(
|
25 |
-
array('
|
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 |
);
|
22 |
public function resourceModelProvider()
|
23 |
{
|
24 |
return array(
|
25 |
+
array('bronto_order_mysql4/setup', 'Bronto_Order_Model_Mysql4_Setup'),
|
|
|
26 |
array('bronto_order_mysql4/queue', 'Bronto_Order_Model_Mysql4_Queue'),
|
27 |
array('bronto_order_mysql4/queue_collection', 'Bronto_Order_Model_Mysql4_Queue_Collection'),
|
28 |
);
|
app/code/community/Bronto/Order/etc/config.xml
CHANGED
@@ -27,12 +27,8 @@
|
|
27 |
<models>
|
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>
|
@@ -44,7 +40,7 @@
|
|
44 |
<bronto_order_setup>
|
45 |
<setup>
|
46 |
<module>Bronto_Order</module>
|
47 |
-
<class>
|
48 |
</setup>
|
49 |
<connection>
|
50 |
<use>core_setup</use>
|
27 |
<models>
|
28 |
<bronto_order>
|
29 |
<class>Bronto_Order_Model</class>
|
|
|
30 |
<resourceModel>bronto_order_mysql4</resourceModel>
|
31 |
</bronto_order>
|
|
|
|
|
|
|
32 |
<bronto_order_mysql4>
|
33 |
<class>Bronto_Order_Model_Mysql4</class>
|
34 |
<entities>
|
40 |
<bronto_order_setup>
|
41 |
<setup>
|
42 |
<module>Bronto_Order</module>
|
43 |
+
<class>Bronto_Order_Model_Mysql4_Setup</class>
|
44 |
</setup>
|
45 |
<connection>
|
46 |
<use>core_setup</use>
|
app/code/community/Bronto/Order/sql/bronto_order_setup/mysql4-upgrade-1.1.5-1.1.6.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
*/
|
5 |
|
6 |
$installer = $this;
|
7 |
-
/* @var $installer
|
8 |
|
9 |
$installer->startSetup();
|
10 |
|
4 |
*/
|
5 |
|
6 |
$installer = $this;
|
7 |
+
/* @var $installer Mage_Core_Model_Mysql4_Setup */
|
8 |
|
9 |
$installer->startSetup();
|
10 |
|
app/code/community/Bronto/Order/sql/bronto_order_setup/mysql4-upgrade-1.1.6-1.1.7.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
*/
|
5 |
|
6 |
$installer = $this;
|
7 |
-
/* @var $installer
|
8 |
|
9 |
$installer->startSetup();
|
10 |
|
4 |
*/
|
5 |
|
6 |
$installer = $this;
|
7 |
+
/* @var $installer Mage_Core_Model_Mysql4_Setup */
|
8 |
|
9 |
$installer->startSetup();
|
10 |
|
app/code/community/Bronto/Reminder/Block/Adminhtml/Reminder/Edit/Tab/Customers.php
CHANGED
@@ -17,7 +17,8 @@ class Bronto_Reminder_Block_Adminhtml_Reminder_Edit_Tab_Customers extends Mage_A
|
|
17 |
$this->setUseAjax(true);
|
18 |
$this->setDefaultSort('entity_id');
|
19 |
$this->setDefaultDir('ASC');
|
20 |
-
|
|
|
21 |
}
|
22 |
|
23 |
/**
|
17 |
$this->setUseAjax(true);
|
18 |
$this->setDefaultSort('entity_id');
|
19 |
$this->setDefaultDir('ASC');
|
20 |
+
// Commented out because for some reason all matched are defaulting to active = 0;
|
21 |
+
//$this->setDefaultFilter(array('grid_is_active' => 1));
|
22 |
}
|
23 |
|
24 |
/**
|
app/code/community/Bronto/Reminder/Model/Rule.php
CHANGED
@@ -30,8 +30,8 @@ class Bronto_Reminder_Model_Rule extends Mage_Rule_Model_Rule
|
|
30 |
Mage_Core_Model_Abstract::_afterLoad();
|
31 |
|
32 |
$version = Mage::getVersionInfo();
|
33 |
-
if (
|
34 |
-
&& (6 >= $version['minor'] || 9 == $version['minor'] || 11 == $version['minor'])
|
35 |
) {
|
36 |
$conditionsArr = unserialize($this->getConditionsSerialized());
|
37 |
if (!empty($conditionsArr) && is_array($conditionsArr)) {
|
@@ -96,6 +96,101 @@ class Bronto_Reminder_Model_Rule extends Mage_Rule_Model_Rule
|
|
96 |
}
|
97 |
return $this->_getData('website_ids');
|
98 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
99 |
|
100 |
/**
|
101 |
* Send reminder emails
|
@@ -111,45 +206,29 @@ class Bronto_Reminder_Model_Rule extends Mage_Rule_Model_Rule
|
|
111 |
$identity = Mage::helper('bronto_reminder')->getEmailIdentity();
|
112 |
|
113 |
$this->_matchCustomers();
|
114 |
-
|
115 |
-
$recipients = $this->_getResource()->getCustomersForNotification($limit, $this->getRuleId());
|
116 |
-
$recipients = array_merge( $recipients, $this->_getGuestAbandons() );
|
117 |
-
|
118 |
if ($dontSend) {
|
119 |
return $this;
|
120 |
}
|
121 |
|
|
|
|
|
|
|
122 |
$total = 0;
|
123 |
$success = 0;
|
124 |
$error = 0;
|
125 |
foreach ($recipients as $recipient) {
|
126 |
$total++;
|
127 |
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
$error++;
|
133 |
-
continue;
|
134 |
-
}
|
135 |
-
} else {
|
136 |
-
// Guest Abandon. Create Customer on the fly
|
137 |
-
$storeId = $recipient['guest']->getStoreId();
|
138 |
-
$customer = Mage::getModel('customer/customer');
|
139 |
-
$customer
|
140 |
-
->setFirstName($recipient['guest']->getFirstName())
|
141 |
-
->setLastName($recipient['guest']->getLastName())
|
142 |
-
->setEmail($recipient['guest']->getEmailAddress())
|
143 |
-
->setStoreId($storeId)
|
144 |
-
->setId(0)
|
145 |
-
->setWebsiteId(Mage::getModel('core/store')->load($storeId)->getWebsiteId());
|
146 |
-
}
|
147 |
-
|
148 |
-
if ($customer->getStoreId()) {
|
149 |
-
$store = $customer->getStore();
|
150 |
-
} else {
|
151 |
-
$store = Mage::app()->getWebsite($customer->getWebsiteId())->getDefaultStore();
|
152 |
}
|
|
|
|
|
|
|
|
|
153 |
|
154 |
$messageData = $this->getMessageData($recipient['rule_id'], $store->getId(), $customer->getWebsiteId());
|
155 |
if (!$messageData) {
|
@@ -165,16 +244,7 @@ class Bronto_Reminder_Model_Rule extends Mage_Rule_Model_Rule
|
|
165 |
}
|
166 |
|
167 |
/* @var $quote Mage_Sales_Model_Quote */
|
168 |
-
|
169 |
-
$quote = Mage::getModel('sales/quote')
|
170 |
-
->setStoreId($store->getId())
|
171 |
-
->loadByCustomer($customer->getId());
|
172 |
-
} else {
|
173 |
-
// Load quote stored for guest
|
174 |
-
$quote = Mage::getModel('sales/quote')
|
175 |
-
->setStoreId($store->getId())
|
176 |
-
->loadByIdWithoutStore($recipient['guest']->getQuoteId());
|
177 |
-
}
|
178 |
|
179 |
$templateVars = array(
|
180 |
'store' => $store,
|
@@ -207,16 +277,11 @@ class Bronto_Reminder_Model_Rule extends Mage_Rule_Model_Rule
|
|
207 |
if ($mail->getSentSuccess()) {
|
208 |
Mage::helper('bronto_reminder')->writeDebug(' Success');
|
209 |
|
210 |
-
|
211 |
-
$
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
} else {
|
216 |
-
// Add notification log for guest abandon email
|
217 |
-
$this->_getResource()->addNotificationLog(
|
218 |
-
$recipient['rule_id'], 0, $mail->getLastDeliveryId(), $messageData['message_id']
|
219 |
-
);
|
220 |
// Update guest to reflect they have received a reminder notification
|
221 |
$recipient['guest']->setEmailSent(1)->save();
|
222 |
}
|
@@ -315,14 +380,16 @@ class Bronto_Reminder_Model_Rule extends Mage_Rule_Model_Rule
|
|
315 |
/**
|
316 |
* Returns an array containing information for sending abandoned cart notifications
|
317 |
* to guest users who abandoned the checkout process.
|
318 |
-
*
|
319 |
* @return array
|
320 |
*/
|
321 |
-
private function _getGuestAbandons()
|
322 |
{
|
323 |
$guestAbandons = Mage::getModel('bronto_reminder/guest')
|
324 |
->getCollection()
|
325 |
-
->addFieldToFilter('email_sent', array('eq' => 0))
|
|
|
|
|
326 |
$retVal = array();
|
327 |
$ruleId = null;
|
328 |
$couponId = null;
|
30 |
Mage_Core_Model_Abstract::_afterLoad();
|
31 |
|
32 |
$version = Mage::getVersionInfo();
|
33 |
+
if (1 == $version['major']
|
34 |
+
&& (6 >= $version['minor'] || 9 == $version['minor'] || 10 == $version['minor'] || 11 == $version['minor'])
|
35 |
) {
|
36 |
$conditionsArr = unserialize($this->getConditionsSerialized());
|
37 |
if (!empty($conditionsArr) && is_array($conditionsArr)) {
|
96 |
}
|
97 |
return $this->_getData('website_ids');
|
98 |
}
|
99 |
+
|
100 |
+
/**
|
101 |
+
* Get Store Object for customer
|
102 |
+
* @param Mage_Customer_Model_Customer $customer
|
103 |
+
* @return Mage_Core_Model_Store
|
104 |
+
*/
|
105 |
+
protected function _getRuleStore(Mage_Customer_Model_Customer $customer)
|
106 |
+
{
|
107 |
+
if ($customer->getStoreId()) {
|
108 |
+
$store = $customer->getStore();
|
109 |
+
} else {
|
110 |
+
$store = Mage::app()->getWebsite($customer->getWebsiteId())->getDefaultStore();
|
111 |
+
}
|
112 |
+
|
113 |
+
return $store;
|
114 |
+
}
|
115 |
+
|
116 |
+
/**
|
117 |
+
* Get array of Registered User abandons and then Guest abandons
|
118 |
+
* @param int $limit
|
119 |
+
* @return array
|
120 |
+
*/
|
121 |
+
protected function _getRecipients($limit)
|
122 |
+
{
|
123 |
+
// Pull in array of customers who abandoned their cart
|
124 |
+
$recipients = (array) $this->_getResource()->getCustomersForNotification($limit, $this->getRuleId());
|
125 |
+
|
126 |
+
// Check how many more we are allowed to pull
|
127 |
+
$remainingLimit = $limit - count($recipients);
|
128 |
+
|
129 |
+
// Pull remining available number from guest abandons
|
130 |
+
if ($remainingLimit > 0 && $remainingLimit <= $limit) {
|
131 |
+
$guestAbandons = (array) $this->_getGuestAbandons($remainingLimit);
|
132 |
+
$recipients = array_merge($recipients, $guestAbandons);
|
133 |
+
}
|
134 |
+
|
135 |
+
// Ensure we aren't pulling more than the limit
|
136 |
+
if (count($recipients) > $limit) {
|
137 |
+
$recipients = array_slice($recipients, $limit);
|
138 |
+
}
|
139 |
+
|
140 |
+
return $recipients;
|
141 |
+
}
|
142 |
+
|
143 |
+
/**
|
144 |
+
* Get customer object for recipient
|
145 |
+
* @param array $recipient
|
146 |
+
* @return boolean|Mage_Customer_Model_Customer
|
147 |
+
*/
|
148 |
+
protected function _getRecipientCustomer($recipient)
|
149 |
+
{
|
150 |
+
if($recipient['customer_id'] != 0) {
|
151 |
+
/* @var $customer Mage_Customer_Model_Customer */
|
152 |
+
$customer = Mage::getModel('customer/customer')->load($recipient['customer_id']);
|
153 |
+
} else {
|
154 |
+
// Guest Abandon. Create Customer on the fly
|
155 |
+
$storeId = $recipient['guest']->getStoreId();
|
156 |
+
$customer = Mage::getModel('customer/customer')
|
157 |
+
->setFirstName($recipient['guest']->getFirstName())
|
158 |
+
->setLastName($recipient['guest']->getLastName())
|
159 |
+
->setEmail($recipient['guest']->getEmailAddress())
|
160 |
+
->setStoreId($storeId)
|
161 |
+
->setId(0)
|
162 |
+
->setWebsiteId(Mage::getModel('core/store')->load($storeId)->getWebsiteId());
|
163 |
+
}
|
164 |
+
|
165 |
+
if (!$customer || false === $customer->getId()) {
|
166 |
+
return false;
|
167 |
+
}
|
168 |
+
|
169 |
+
return $customer;
|
170 |
+
}
|
171 |
+
|
172 |
+
/**
|
173 |
+
* Get Quote Object from customer or guest
|
174 |
+
* @param Mage_Customer_Model_Customer $customer
|
175 |
+
* @param array $recipient
|
176 |
+
* @param Mage_Core_Model_Store $store
|
177 |
+
* @return Mage_Sales_Model_Quote
|
178 |
+
*/
|
179 |
+
protected function _getRecipientQuote(Mage_Customer_Model_Customer $customer, array $recipient, Mage_Core_Model_Store $store)
|
180 |
+
{
|
181 |
+
if($customer->getId() != 0) {
|
182 |
+
$quote = Mage::getModel('sales/quote')
|
183 |
+
->setStoreId($store->getId())
|
184 |
+
->loadByCustomer($customer->getId());
|
185 |
+
} else {
|
186 |
+
// Load quote stored for guest
|
187 |
+
$quote = Mage::getModel('sales/quote')
|
188 |
+
->setStoreId($store->getId())
|
189 |
+
->loadByIdWithoutStore($recipient['guest']->getQuoteId());
|
190 |
+
}
|
191 |
+
|
192 |
+
return $quote;
|
193 |
+
}
|
194 |
|
195 |
/**
|
196 |
* Send reminder emails
|
206 |
$identity = Mage::helper('bronto_reminder')->getEmailIdentity();
|
207 |
|
208 |
$this->_matchCustomers();
|
209 |
+
|
|
|
|
|
|
|
210 |
if ($dontSend) {
|
211 |
return $this;
|
212 |
}
|
213 |
|
214 |
+
// Get Array of Recipients
|
215 |
+
$recipients = $this->_getRecipients($limit);
|
216 |
+
|
217 |
$total = 0;
|
218 |
$success = 0;
|
219 |
$error = 0;
|
220 |
foreach ($recipients as $recipient) {
|
221 |
$total++;
|
222 |
|
223 |
+
// Get Customer Object
|
224 |
+
/* @var $customer Mage_Customer_Model_Customer */
|
225 |
+
if (!$customer = $this->_getRecipientCustomer($recipient)) {
|
226 |
+
$error++;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
227 |
}
|
228 |
+
|
229 |
+
// Get Store Object
|
230 |
+
/* @var $store Mage_Core_Model_Store */
|
231 |
+
$store = $this->_getRuleStore($customer);
|
232 |
|
233 |
$messageData = $this->getMessageData($recipient['rule_id'], $store->getId(), $customer->getWebsiteId());
|
234 |
if (!$messageData) {
|
244 |
}
|
245 |
|
246 |
/* @var $quote Mage_Sales_Model_Quote */
|
247 |
+
$quote = $this->_getRecipientQuote($customer, $recipient, $store);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
248 |
|
249 |
$templateVars = array(
|
250 |
'store' => $store,
|
277 |
if ($mail->getSentSuccess()) {
|
278 |
Mage::helper('bronto_reminder')->writeDebug(' Success');
|
279 |
|
280 |
+
$this->_getResource()->addNotificationLog(
|
281 |
+
$recipient['rule_id'], $customer->getId(), $mail->getLastDeliveryId(), $messageData['message_id']
|
282 |
+
);
|
283 |
+
|
284 |
+
if($customer->getId() == 0) {
|
|
|
|
|
|
|
|
|
|
|
285 |
// Update guest to reflect they have received a reminder notification
|
286 |
$recipient['guest']->setEmailSent(1)->save();
|
287 |
}
|
380 |
/**
|
381 |
* Returns an array containing information for sending abandoned cart notifications
|
382 |
* to guest users who abandoned the checkout process.
|
383 |
+
* @param int $limit
|
384 |
* @return array
|
385 |
*/
|
386 |
+
private function _getGuestAbandons($limit)
|
387 |
{
|
388 |
$guestAbandons = Mage::getModel('bronto_reminder/guest')
|
389 |
->getCollection()
|
390 |
+
->addFieldToFilter('email_sent', array('eq' => 0))
|
391 |
+
->setPageSize($limit);
|
392 |
+
|
393 |
$retVal = array();
|
394 |
$ruleId = null;
|
395 |
$couponId = null;
|
app/code/community/Bronto/Reminder/Test/Config/Config.php
CHANGED
@@ -12,7 +12,7 @@ class Bronto_Reminder_Test_Config_Config
|
|
12 |
return array(
|
13 |
array('bronto_reminder/rule', 'Bronto_Reminder_Model_Rule'),
|
14 |
array('bronto_reminder/email_message', 'Bronto_Reminder_Model_Email_Message'),
|
15 |
-
array('bronto_reminder/
|
16 |
);
|
17 |
}
|
18 |
|
12 |
return array(
|
13 |
array('bronto_reminder/rule', 'Bronto_Reminder_Model_Rule'),
|
14 |
array('bronto_reminder/email_message', 'Bronto_Reminder_Model_Email_Message'),
|
15 |
+
array('bronto_reminder/mysql4_rule', 'Bronto_Reminder_Model_Mysql4_rule'),
|
16 |
);
|
17 |
}
|
18 |
|
app/code/community/Bronto/Reminder/Test/Model/Rule.php
CHANGED
@@ -2,46 +2,46 @@
|
|
2 |
class Bronto_Reminder_Test_Model_Rule
|
3 |
extends EcomDev_PHPUnit_Test_Case
|
4 |
{
|
5 |
-
|
6 |
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
|
21 |
-
|
22 |
-
|
23 |
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
$this->assertInternalType('array', $websiteIds);
|
34 |
-
}
|
35 |
|
36 |
-
|
37 |
-
|
38 |
-
* @group amd
|
39 |
-
* @group model
|
40 |
-
*/
|
41 |
-
public function sendReminderEmails_withDontSendReturnsObject()
|
42 |
-
{
|
43 |
-
$rule = $this->_fixture->sendReminderEmails(true);
|
44 |
|
45 |
-
|
46 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
47 |
}
|
2 |
class Bronto_Reminder_Test_Model_Rule
|
3 |
extends EcomDev_PHPUnit_Test_Case
|
4 |
{
|
5 |
+
private $_fixture;
|
6 |
|
7 |
+
public function setUp()
|
8 |
+
{
|
9 |
+
$this->_fixture = Mage::getModel('bronto_reminder/rule');
|
10 |
+
}
|
11 |
|
12 |
+
/**
|
13 |
+
* @test
|
14 |
+
* @group amd
|
15 |
+
* @group model
|
16 |
+
*/
|
17 |
+
public function getConditionsInstance_shouldReturnObject()
|
18 |
+
{
|
19 |
+
$instance = $this->_fixture->getConditionsInstance();
|
20 |
|
21 |
+
$this->assertInstanceOf('Bronto_Reminder_Model_Rule_Condition_Combine_Root', $instance);
|
22 |
+
}
|
23 |
|
24 |
+
/**
|
25 |
+
* @test
|
26 |
+
* @group amd
|
27 |
+
* @group model
|
28 |
+
*/
|
29 |
+
public function getWebsiteIds_shouldReturnArrayOfIds()
|
30 |
+
{
|
31 |
+
$websiteIds = $this->_fixture->getWebsiteIds();
|
|
|
|
|
|
|
32 |
|
33 |
+
$this->assertInternalType('array', $websiteIds);
|
34 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
35 |
|
36 |
+
/**
|
37 |
+
* @test
|
38 |
+
* @group amd
|
39 |
+
* @group model
|
40 |
+
*/
|
41 |
+
public function sendReminderEmails_withDontSendReturnsObject()
|
42 |
+
{
|
43 |
+
$rule = $this->_fixture->sendReminderEmails(true);
|
44 |
+
|
45 |
+
$this->assertInstanceOf('Bronto_Reminder_Model_Rule', $rule);
|
46 |
+
}
|
47 |
}
|
app/code/community/Bronto/Reminder/etc/config.xml
CHANGED
@@ -177,7 +177,7 @@
|
|
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>
|
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/design/frontend/base/default/template/bronto/newsletter/js.phtml
CHANGED
@@ -9,54 +9,28 @@
|
|
9 |
<script>
|
10 |
function prepareNewsletterField() {
|
11 |
Element.show('register-customer-newsletter');
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
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');
|
40 |
-
$('billing:is_subscribed_box').checked = false;
|
41 |
-
$('billing:is_subscribed').value = 0;
|
42 |
-
<?php endif ?>
|
43 |
-
} else {
|
44 |
-
Element.show('register-customer-newsletter');
|
45 |
-
<?php if ($this->isSubscribed() || $this->isEnabledCheckedByDefault()): ?>
|
46 |
-
$('billing:is_subscribed_box').checked = true;
|
47 |
-
$('billing:is_subscribed').value = 1;
|
48 |
-
<?php else: ?>
|
49 |
-
$('billing:is_subscribed_box').checked = false;
|
50 |
-
$('billing:is_subscribed').value = 0;
|
51 |
-
<?php endif ?>
|
52 |
-
}
|
53 |
}
|
54 |
|
55 |
-
|
56 |
-
Element.hide('register-customer-newsletter');
|
57 |
-
$('billing:is_subscribed_box').checked = true;
|
58 |
-
$('billing:is_subscribed').value = 1;
|
59 |
-
<?php endif; ?>
|
60 |
}
|
61 |
|
62 |
Event.observe(window, 'load', function() {
|
@@ -67,7 +41,12 @@ Event.observe(window, 'load', function() {
|
|
67 |
}
|
68 |
$$('#co-billing-form fieldset')[0].insert('<span id="register-customer-newsletter" style="display:none;"></span>')
|
69 |
$$('#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>');
|
70 |
-
$$('#co-billing-form fieldset #register-customer-newsletter')[0].insert(
|
|
|
|
|
|
|
|
|
|
|
71 |
prepareNewsletterField();
|
72 |
});
|
73 |
</script>
|
9 |
<script>
|
10 |
function prepareNewsletterField() {
|
11 |
Element.show('register-customer-newsletter');
|
12 |
+
|
13 |
+
if (checkout.method == 'register') {
|
14 |
+
<?php echo $this->getJsCheckedCode('register'); ?>
|
15 |
+
} else if (checkout.method == 'guest') {
|
16 |
+
<?php echo $this->getJsCheckedCode('guest'); ?>
|
17 |
+
} else {
|
18 |
+
<?php echo $this->getJsCheckedCode('loggedin'); ?>
|
19 |
+
}
|
20 |
+
}
|
21 |
+
|
22 |
+
function setSubscribedValue(checkbox)
|
23 |
+
{
|
24 |
+
var checked = checkbox.checked ? 1 : 0;
|
25 |
+
var original = $('billing:is_subscribed_original').value;
|
26 |
+
|
27 |
+
if (checked != original) {
|
28 |
+
$('billing:is_subscribed').value = checked;
|
29 |
+
} else {
|
30 |
+
$('billing:is_subscribed').value = original;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
31 |
}
|
32 |
|
33 |
+
return false;
|
|
|
|
|
|
|
|
|
34 |
}
|
35 |
|
36 |
Event.observe(window, 'load', function() {
|
41 |
}
|
42 |
$$('#co-billing-form fieldset')[0].insert('<span id="register-customer-newsletter" style="display:none;"></span>')
|
43 |
$$('#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>');
|
44 |
+
$$('#co-billing-form fieldset #register-customer-newsletter')[0].insert(
|
45 |
+
'<input id="billing:is_subscribed_original" type="hidden" name="billing[is_subscribed_original]" value="1" />' +
|
46 |
+
'<input id="billing:is_subscribed" type="hidden" name="billing[is_subscribed]" value="1" />' +
|
47 |
+
'<input id="billing:is_subscribed_box" class="billing_is_subscribed_box" type="checkbox" onchange="setSubscribedValue(this); return false;" checked="checked" title="<?php echo $this->__($this->getCheckboxLabelText()) ?>" style="float:left; width: auto; margin: 2px 8px 0 0;" />' +
|
48 |
+
'<label id="billing_subscribed_label" for="billing[is_subscribed]"><?php echo $this->__($this->getCheckboxLabelText()) ?></label>'
|
49 |
+
);
|
50 |
prepareNewsletterField();
|
51 |
});
|
52 |
</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>
|
@@ -54,10 +54,10 @@
|
|
54 |
<h3>About Bronto</h3>
|
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>
|
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="4010486c8274f801a4a0b99856cf534d"/><file name="Cron.php" hash="b1c18891073fa233cd5e44f16c60ec97"/><dir name="Form"><dir name="Field"><file name="Apitoken.php" hash="d8ed503f8d22d96b0ee79f18426bb8a1"/><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="6e5fc204a5b6c1d8fa40d9ec6fdabb38"/><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="18368da2a435855841c8b5e2b10637b1"/></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="da11dadcd7914d223491842e5063112c"/><file name="system.xml" hash="5952ce44c1df3b13c5cb5a709718df2c"/></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="75692260aa13ebd1b312d016f1e55ea2"/></dir><file name="Queue.php" hash="97d19f161a404e1a92e1d4f17301b162"/></dir><file name="Observer.php" hash="7f22e8752e0b5abd32714df8e982173b"/><file name="Queue.php" hash="bb54d7305845f685fc4d5bf8a0e50710"/><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="b1716afb193a6915d2c0ca6ee40ac153"/><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"/><file name="mysql4-upgrade-1.0.1-1.0.2.php" hash="e4cda1e094bbb1ebdef331d69b82cfc0"/></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="ea9e30ce8eb25b0b7e840a7933640a27"/></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="a157c0dff95dff0ab324aee4e8da7a7e"/><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="1314e4b54d7c89a75f8ca9b7d02623b8"/></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="7c6ffc1f53cdb660b97039736a53f911"/></dir><file name="Queue.php" hash="c25aee2c31258eedfd5734bf1f143979"/></dir><file name="Observer.php" hash="97ba51f6558def0b62248376cf1607b5"/><dir name="Order"><file name="Observer.php" hash="901f9caf696e02ff7f917112c44c0c91"/></dir><file name="Queue.php" hash="bc8ccad1ea2a284d23ac7a0fdc6c3f7a"/><dir name="Quote"><file name="Observer.php" hash="9dc812fa729166fe441e6ef642266cdb"/></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="c65fe3318052cdfa1862e171ef49a684"/><file name="system.xml" hash="4103906da8806c3d5bd68493ce984613"/></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"/><file name="mysql4-upgrade-1.1.6-1.1.7.php" hash="d732120d38b453f9b00bf97f5ead8c54"/></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="f95239748b5ef006a38b1255356c6c65"/></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="1505adbe63b17e79af5b965a4e85bbae"/></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="0170a7af8f6c989c7f4b19cc4dfb8748"/></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="1e07a998085bb9eb367d040c4b171220"/></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="15d8ce6375063346d47ad832c80fd499"/></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="1a851457b2a032fb6d149fe9ef111c57"/><file name="Row.php" hash="3ab1e97019ef87bcd464eeaabf652886"/></dir><file name="Account.php" hash="33b9ba8867fe69135391c26f98b5852a"/><dir name="Activity"><file name="Exception.php" hash="3ac1f2caea6465931cbf927f1033ec06"/><file name="Row.php" hash="de166130c57670bf486a783a4501e2d4"/></dir><file name="Activity.php" hash="f5f48488e40507bc108b35c599e4e5a2"/><dir name="ApiToken"><file name="Exception.php" hash="e06d0a4c9469da7333e6a596e9c37c5d"/><file name="Row.php" hash="f3742811cec1cbf0be583296b617dfbd"/></dir><file name="ApiToken.php" hash="65bbd18974bbbf620dc2df23bdeb4469"/><dir name="Contact"><file name="Exception.php" hash="809bdce6db3bb9c72a3173bb08c1b19e"/><file name="Row.php" hash="2e360d131c2abe19e154b5f3795a58f0"/></dir><file name="Contact.php" hash="55bab8398154e96db6b0ca3ed88718e0"/><dir name="Conversion"><file name="Exception.php" hash="73dd991a663b99050428f54fc13fb433"/><file name="Row.php" hash="115d01ea0e0e6ade42fcab76dff71c35"/></dir><file name="Conversion.php" hash="60ec52dcfeda92294d1ab10bb29a486a"/><dir name="Delivery"><file name="Exception.php" hash="003dbb49ea3be65fe35dfa9b7ec743c5"/><file name="Recipient.php" hash="562bdc8d86b92ec293a338fdd7bf928a"/><file name="Row.php" hash="9c6149e74a305f62b9806df5a20e6a00"/></dir><file name="Delivery.php" hash="668dc6493cefe960c7dc8fe1fe87bf08"/><dir name="DeliveryGroup"><file name="Exception.php" hash="9291b2adb576a6781a0d624cc3288453"/><file name="Row.php" hash="29adb1f866cf1d24ef0abac19f95fbd0"/></dir><file name="DeliveryGroup.php" hash="7dd295b65f22e65dff3bf45c4336e985"/><file name="Exception.php" hash="bacb7c782ef7f612edaf3d39c20118ef"/><dir name="Field"><file name="Exception.php" hash="db651b9fa4b5161e3a32af49cc12cc64"/><file name="Predefined.php" hash="15fadb32175098d9ded60550d1748a4a"/><file name="Row.php" hash="6871d05f399a8a9dfa0742952eaa6481"/><file name="TypeGuesser.php" hash="1027ea97675a16cc964aa0d8ba63e642"/></dir><file name="Field.php" hash="32d5876335ec815acb50d3b4e7bf3ccd"/><dir name="List"><file name="Exception.php" hash="0f964fac998c89a0d4d515979bd81b98"/><file name="Row.php" hash="6516df43a1a94beee7b57fae71c27134"/></dir><file name="List.php" hash="ef240fe5e1422479a83291ad30b468ac"/><dir name="Login"><file name="ContactInformation.php" hash="bc1ce7f57c67fa21cd0881d0384a1cac"/><file name="Exception.php" hash="fff7546235b416b7008a9e4bd646fc19"/><file name="Row.php" hash="578553fcbf1941d0eb5890614c57ae91"/></dir><file name="Login.php" hash="a663864b51795799ff1a61528f380c80"/><dir name="Message"><file name="Exception.php" hash="755f7f14cdb234931708968ac0bad4a4"/><file name="Row.php" hash="5732b5550c8c6444790f2f20e626ff08"/></dir><file name="Message.php" hash="cc3c9939757371ad7fd2d297df394621"/><dir name="MessageRule"><file name="Exception.php" hash="b0398ee96ed70c483f38b50f305e82a8"/><file name="Row.php" hash="8e7532184ee265a927a195ac36e5a518"/></dir><file name="MessageRule.php" hash="ae1b3f16683656066a83bcf9f2863710"/><file name="Object.php" hash="19e3a4bcfd9031fa2c576f9c7f2cd27e"/><dir name="Order"><file name="Exception.php" hash="8312e1a1ab46bcf88b72983bb11a6493"/><file name="Product.php" hash="3785f2f460fec6c18c6164176de52449"/><file name="Row.php" hash="1400de022188806bb94e98544c054ef6"/></dir><file name="Order.php" hash="ad690b37bc577879020d10e5ac70ef3d"/><dir name="Row"><file name="Exception.php" hash="4c1a45512e0912644f94a88d4298d3a9"/></dir><file name="Row.php" hash="259418b11987939378747a9c46fae1ae"/><dir name="Rowset"><file name="Exception.php" hash="b5202ed6f61bfe06b90f73c03ca28ffa"/><file name="Iterator.php" hash="9ea7a244b83e7b9318bfe8ed371a149f"/></dir><file name="Rowset.php" hash="3f40382933e2f392b6320fd79db720cd"/><dir name="Segment"><file name="Exception.php" hash="bd5c2302ef222ff55981cc38477a9310"/><file name="Row.php" hash="b840493b8b2c3cb6686de0e5bedfa2ba"/></dir><file name="Segment.php" hash="0cf99babff6169afa427f302c76023dd"/></dir><file name="Api.php" hash="afcccdc4a3f3b594e985c93afe924df8"/><file name="SoapClient.php" hash="c9e56dc7f88d71cfbb98b3476bad5ead"/><dir name="Util"><file name="Colors.php" hash="14313213b3a70c79a56c574523b9b90b"/><file name="CountryCodes.php" hash="4efb9c354d29a901368c46aab40f79d4"/><dir name="Retryer"><file name="FileRetryer.php" hash="bdc72ace54ace32081115442d28cb972"/><file name="RetryerException.php" hash="54b70d7abbc32b55649a193e8e70dcb5"/><file name="RetryerInterface.php" hash="cc57d5a02a55811a13a31ed9beff126f"/></dir><file name="Uuid.php" hash="ba62bdec6488ccb621e0bfd726c6107a"/></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="ajax-loader-tr.gif" hash="1ae32bc8232ff2527c627e5b38eb319a"/><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="0cce5efcc4164c4e3ed33dff71800dc7"/></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="8dcb1b72071c00888c8f6ad7b6d18d9b"/></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.3</version>
|
5 |
<stability>stable</stability>
|
6 |
<license uri="http://opensource.org/licenses/osl-3.0.php">OSL</license>
|
7 |
<channel>community</channel>
|
54 |
<h3>About Bronto</h3>
|
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>Chris Geiss</name><user>BrontoSoftware</user><email>chris.geiss@bronto.com</email></author></authors>
|
58 |
+
<date>2013-05-08</date>
|
59 |
+
<time>18:45:47</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="587a6b5a525a0d695ca1d1c31ca44fb1"/><file name="Cron.php" hash="1a718ab7d39492ff064618f7507d35ef"/><dir name="Form"><dir name="Field"><file name="Apitoken.php" hash="d8ed503f8d22d96b0ee79f18426bb8a1"/><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="d71b8a47d17b6096613b9c004eb76bd9"/><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="18368da2a435855841c8b5e2b10637b1"/></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="d8a4089180cac8527bb98d831629d25c"/><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="41263dadbca9b015cab770431c65b114"/><file name="system.xml" hash="5952ce44c1df3b13c5cb5a709718df2c"/></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="77979625bb4656aae7ed808ae9d19c51"/><dir name="Form"><dir name="Fieldset"><dir name="Attributes"><file name="Address.php" hash="d9b871fc6c94bf3cf78966dd00d36b64"/><file name="Customer.php" hash="ad245540adbc149c27d7f19eab62ab03"/></dir><file name="Attributes.php" hash="b5f1b004acd6a691213c82c59d7f65fb"/></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="176b96d3a5a85c4625b9350014fece2f"/></dir><dir name="Model"><dir name="Mysql4"><dir name="Queue"><file name="Collection.php" hash="75692260aa13ebd1b312d016f1e55ea2"/></dir><file name="Queue.php" hash="97d19f161a404e1a92e1d4f17301b162"/><file name="Setup.php" hash="615e25c2d8493dcd4301650421c87f08"/></dir><file name="Observer.php" hash="3fe3886635517a7e4b08c317e4c5d57a"/><file name="Queue.php" hash="bb54d7305845f685fc4d5bf8a0e50710"/><dir name="System"><dir name="Config"><dir name="Backend"><file name="Brontofield.php" hash="dacabd748e68b2d830c30a839ce79e1f"/><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="a7ece4830e5766062bba51b58944afe0"/><file name="system.xml" hash="0e13fc7e0917b98b5d28aa658cd53027"/></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="e7986d0b22a92f5df7a3480f80d7b937"/><file name="mysql4-upgrade-1.0.1-1.0.2.php" hash="b95305221a61733ff7617ce9307101c2"/></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="05f9642857698519f1b21a3c687abc8a"/></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="ea9e30ce8eb25b0b7e840a7933640a27"/></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="2253dab9a7475df825d4bcb7849cc3e9"/></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="ed221e46e61f3312a038c022dacf5fd7"/></dir></dir></dir><dir name="Helper"><file name="Contact.php" hash="4c1dcd95ea237397ac2ee82090ce32e4"/><file name="Data.php" hash="62e5be8e1326862fee10774654daad15"/></dir><dir name="Model"><dir name="Mysql4"><dir name="Queue"><file name="Collection.php" hash="41a203d85e16a660bf20bec8ecf157fd"/></dir><file name="Queue.php" hash="9a890d3fe569edd426ce38afe564dc7a"/></dir><file name="Observer.php" hash="3688d8bfe594cf668dc255eea019ce45"/><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="1314e4b54d7c89a75f8ca9b7d02623b8"/></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="8af3e2efe08150906d837ca2c991aff8"/></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="7c6ffc1f53cdb660b97039736a53f911"/></dir><file name="Queue.php" hash="c25aee2c31258eedfd5734bf1f143979"/><file name="Setup.php" hash="b3ccddc52af0695c48cff499ed112901"/></dir><file name="Observer.php" hash="f06d0b34e5dc4d47bc173076403c85bd"/><dir name="Order"><file name="Observer.php" hash="901f9caf696e02ff7f917112c44c0c91"/></dir><file name="Queue.php" hash="bc8ccad1ea2a284d23ac7a0fdc6c3f7a"/><dir name="Quote"><file name="Observer.php" hash="9dc812fa729166fe441e6ef642266cdb"/></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="29ce141400ea98642a0c200a721810a8"/></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="a872f39d7af8becb0b47dbae560db5cf"/><file name="system.xml" hash="4103906da8806c3d5bd68493ce984613"/></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="de0e97123c3183c6363c33b1344b76dd"/><file name="mysql4-upgrade-1.1.6-1.1.7.php" hash="fe4f45d4fe4e8d90267d9bb6a6b13b03"/></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="f95239748b5ef006a38b1255356c6c65"/></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="edbda94b225a5f81e5a1a2ee72ab7e53"/><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="2c3a858e05353c216b292451d68d9b85"/><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="9610717f006248a90f113c699df523a6"/></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="eb0d4025dda8b95e65fbd79df7e3d8da"/></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="89f3b5a4225db5b6296938d56ed000ff"/><file name="system.xml" hash="1505adbe63b17e79af5b965a4e85bbae"/></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="0170a7af8f6c989c7f4b19cc4dfb8748"/></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="1e07a998085bb9eb367d040c4b171220"/></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="15d8ce6375063346d47ad832c80fd499"/></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="1a851457b2a032fb6d149fe9ef111c57"/><file name="Row.php" hash="3ab1e97019ef87bcd464eeaabf652886"/></dir><file name="Account.php" hash="33b9ba8867fe69135391c26f98b5852a"/><dir name="Activity"><file name="Exception.php" hash="3ac1f2caea6465931cbf927f1033ec06"/><file name="Row.php" hash="de166130c57670bf486a783a4501e2d4"/></dir><file name="Activity.php" hash="f5f48488e40507bc108b35c599e4e5a2"/><dir name="ApiToken"><file name="Exception.php" hash="e06d0a4c9469da7333e6a596e9c37c5d"/><file name="Row.php" hash="f3742811cec1cbf0be583296b617dfbd"/></dir><file name="ApiToken.php" hash="65bbd18974bbbf620dc2df23bdeb4469"/><dir name="Contact"><file name="Exception.php" hash="809bdce6db3bb9c72a3173bb08c1b19e"/><file name="Row.php" hash="2e360d131c2abe19e154b5f3795a58f0"/></dir><file name="Contact.php" hash="55bab8398154e96db6b0ca3ed88718e0"/><dir name="Conversion"><file name="Exception.php" hash="73dd991a663b99050428f54fc13fb433"/><file name="Row.php" hash="115d01ea0e0e6ade42fcab76dff71c35"/></dir><file name="Conversion.php" hash="60ec52dcfeda92294d1ab10bb29a486a"/><dir name="Delivery"><file name="Exception.php" hash="003dbb49ea3be65fe35dfa9b7ec743c5"/><file name="Recipient.php" hash="562bdc8d86b92ec293a338fdd7bf928a"/><file name="Row.php" hash="9c6149e74a305f62b9806df5a20e6a00"/></dir><file name="Delivery.php" hash="668dc6493cefe960c7dc8fe1fe87bf08"/><dir name="DeliveryGroup"><file name="Exception.php" hash="9291b2adb576a6781a0d624cc3288453"/><file name="Row.php" hash="29adb1f866cf1d24ef0abac19f95fbd0"/></dir><file name="DeliveryGroup.php" hash="7dd295b65f22e65dff3bf45c4336e985"/><file name="Exception.php" hash="bacb7c782ef7f612edaf3d39c20118ef"/><dir name="Field"><file name="Exception.php" hash="db651b9fa4b5161e3a32af49cc12cc64"/><file name="Predefined.php" hash="15fadb32175098d9ded60550d1748a4a"/><file name="Row.php" hash="6871d05f399a8a9dfa0742952eaa6481"/><file name="TypeGuesser.php" hash="1027ea97675a16cc964aa0d8ba63e642"/></dir><file name="Field.php" hash="32d5876335ec815acb50d3b4e7bf3ccd"/><dir name="List"><file name="Exception.php" hash="0f964fac998c89a0d4d515979bd81b98"/><file name="Row.php" hash="6516df43a1a94beee7b57fae71c27134"/></dir><file name="List.php" hash="ef240fe5e1422479a83291ad30b468ac"/><dir name="Login"><file name="ContactInformation.php" hash="bc1ce7f57c67fa21cd0881d0384a1cac"/><file name="Exception.php" hash="fff7546235b416b7008a9e4bd646fc19"/><file name="Row.php" hash="578553fcbf1941d0eb5890614c57ae91"/></dir><file name="Login.php" hash="a663864b51795799ff1a61528f380c80"/><dir name="Message"><file name="Exception.php" hash="755f7f14cdb234931708968ac0bad4a4"/><file name="Row.php" hash="5732b5550c8c6444790f2f20e626ff08"/></dir><file name="Message.php" hash="cc3c9939757371ad7fd2d297df394621"/><dir name="MessageRule"><file name="Exception.php" hash="b0398ee96ed70c483f38b50f305e82a8"/><file name="Row.php" hash="8e7532184ee265a927a195ac36e5a518"/></dir><file name="MessageRule.php" hash="ae1b3f16683656066a83bcf9f2863710"/><file name="Object.php" hash="19e3a4bcfd9031fa2c576f9c7f2cd27e"/><dir name="Order"><file name="Exception.php" hash="8312e1a1ab46bcf88b72983bb11a6493"/><file name="Product.php" hash="3785f2f460fec6c18c6164176de52449"/><file name="Row.php" hash="1400de022188806bb94e98544c054ef6"/></dir><file name="Order.php" hash="ad690b37bc577879020d10e5ac70ef3d"/><dir name="Row"><file name="Exception.php" hash="4c1a45512e0912644f94a88d4298d3a9"/></dir><file name="Row.php" hash="259418b11987939378747a9c46fae1ae"/><dir name="Rowset"><file name="Exception.php" hash="b5202ed6f61bfe06b90f73c03ca28ffa"/><file name="Iterator.php" hash="9ea7a244b83e7b9318bfe8ed371a149f"/></dir><file name="Rowset.php" hash="3f40382933e2f392b6320fd79db720cd"/><dir name="Segment"><file name="Exception.php" hash="bd5c2302ef222ff55981cc38477a9310"/><file name="Row.php" hash="b840493b8b2c3cb6686de0e5bedfa2ba"/></dir><file name="Segment.php" hash="0cf99babff6169afa427f302c76023dd"/></dir><file name="Api.php" hash="afcccdc4a3f3b594e985c93afe924df8"/><file name="SoapClient.php" hash="c9e56dc7f88d71cfbb98b3476bad5ead"/><dir name="Util"><file name="Colors.php" hash="14313213b3a70c79a56c574523b9b90b"/><file name="CountryCodes.php" hash="4efb9c354d29a901368c46aab40f79d4"/><dir name="Retryer"><file name="FileRetryer.php" hash="bdc72ace54ace32081115442d28cb972"/><file name="RetryerException.php" hash="54b70d7abbc32b55649a193e8e70dcb5"/><file name="RetryerInterface.php" hash="cc57d5a02a55811a13a31ed9beff126f"/></dir><file name="Uuid.php" hash="ba62bdec6488ccb621e0bfd726c6107a"/></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="ajax-loader-tr.gif" hash="1ae32bc8232ff2527c627e5b38eb319a"/><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="a01ed75d8aff216f753ac2b13b51a404"/></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="8dcb1b72071c00888c8f6ad7b6d18d9b"/></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>
|