Version Notes
1.1.0
- Username/password check when changing API URL
- Increased the page refresh time in Cron job page
- Newsletter signup checkbox should not be checked by default if the use has already opted-out
1.0.4
- List opt-out support extended
1.0.3
- Stability fixes
- Verbose error handling
- List Sync fixes
1.0.2
- Dropdown values synced properly
- Boolean Yes/No synced
- Data consistency
- UI tweaks
- Admin routing updated
1.0.1
- Magento Connect compliance
Download this release
Release Info
Developer | Stewart Waller |
Extension | Pure360 |
Version | 1.1.0 |
Comparing to | |
See all releases |
Code changes from version 1.0.3 to 1.1.0
- app/code/community/Pure360/Cart/etc/config.xml +1 -1
- app/code/community/Pure360/Cart/sql/pure360_cart_setup/{mysql4-install-1.0.3.php → mysql4-install-1.0.4.php} +0 -0
- app/code/community/Pure360/Common/etc/config.xml +1 -1
- app/code/community/Pure360/Cron/etc/config.xml +1 -1
- app/code/community/Pure360/Cron/sql/pure360_cron_setup/{mysql4-install-1.0.3.php → mysql4-install-1.0.4.php} +0 -0
- app/code/community/Pure360/Email/Model/Email/Message.php +24 -2
- app/code/community/Pure360/Email/etc/config.xml +1 -1
- app/code/community/Pure360/Email/sql/pure360_email_setup/{mysql4-install-1.0.3.php → mysql4-install-1.0.4.php} +0 -0
- app/code/community/Pure360/List/Helper/Data.php +23 -0
- app/code/community/Pure360/List/Job/Sync.php +185 -3
- app/code/community/Pure360/List/Model/Customer.php +5 -15
- app/code/community/Pure360/List/Model/Optout.php +17 -0
- app/code/community/Pure360/List/Model/Resource/Optout.php +28 -0
- app/code/community/Pure360/List/Model/Resource/Optout/Collection.php +56 -0
- app/code/community/Pure360/List/Model/Subscriber.php +55 -0
- app/code/community/Pure360/List/etc/config.xml +9 -1
- app/code/community/Pure360/List/sql/pure360_list_setup/{mysql4-install-1.0.3.php → mysql4-install-1.0.4.php} +22 -0
- app/code/community/Pure360/List/sql/pure360_list_setup/mysql4-upgrade-1.0.3-1.0.4.php +30 -0
- app/code/community/Pure360/Newsletter/Block/Checkout/Onepage/Newsletter.php +13 -3
- app/code/community/Pure360/Newsletter/Helper/Api.php +38 -28
- app/code/community/Pure360/Newsletter/Model/Subscriber.php +48 -52
- app/code/community/Pure360/Newsletter/etc/config.xml +3 -3
- app/code/community/Pure360/Newsletter/sql/pure360_newsletter_setup/{mysql4-install-1.0.3.php → mysql4-install-1.0.4.php} +0 -0
- app/design/adminhtml/default/default/layout/pure360_cart.xml +8 -8
- app/design/adminhtml/default/default/layout/pure360_common.xml +8 -8
- app/design/adminhtml/default/default/layout/pure360_cron.xml +7 -7
- app/design/adminhtml/default/default/layout/pure360_email.xml +7 -7
- app/design/adminhtml/default/default/layout/pure360_list.xml +14 -14
- app/design/adminhtml/default/default/layout/pure360_newsletter.xml +7 -7
- app/design/adminhtml/default/default/template/pure360/common/about.phtml +8 -8
- app/design/adminhtml/default/default/template/pure360/common/disabled.phtml +10 -10
- app/design/adminhtml/default/default/template/pure360/common/error.phtml +10 -10
- app/design/adminhtml/default/default/template/pure360/common/jsinit.phtml +16 -16
- app/design/adminhtml/default/default/template/pure360/email/transactional.phtml +69 -69
- app/design/frontend/base/default/layout/pure360/cart.xml +10 -10
- app/design/frontend/base/default/layout/pure360/newsletter.xml +11 -11
- app/design/frontend/base/default/template/pure360/cart/email/order/items.phtml +85 -85
- app/design/frontend/base/default/template/pure360/cart/email/order/items/order/default.phtml +111 -111
- app/etc/modules/Pure360_Cart.xml +11 -11
- app/locale/en_US/template/email/pure360/abandoned_cart.html +37 -37
- app/locale/en_US/template/email/pure360/abandoned_cart_guest.html +37 -37
- js/mage/adminhtml/pure360/common.js +5 -1
- js/mage/adminhtml/pure360/cron.js +1 -1
- package.xml +13 -5
app/code/community/Pure360/Cart/etc/config.xml
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Pure360_Cart>
|
5 |
-
<version>1.0
|
6 |
</Pure360_Cart>
|
7 |
</modules>
|
8 |
<global>
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Pure360_Cart>
|
5 |
+
<version>1.1.0</version>
|
6 |
</Pure360_Cart>
|
7 |
</modules>
|
8 |
<global>
|
app/code/community/Pure360/Cart/sql/pure360_cart_setup/{mysql4-install-1.0.3.php → mysql4-install-1.0.4.php}
RENAMED
File without changes
|
app/code/community/Pure360/Common/etc/config.xml
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Pure360_Common>
|
5 |
-
<version>1.0
|
6 |
</Pure360_Common>
|
7 |
</modules>
|
8 |
<global>
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Pure360_Common>
|
5 |
+
<version>1.1.0</version>
|
6 |
</Pure360_Common>
|
7 |
</modules>
|
8 |
<global>
|
app/code/community/Pure360/Cron/etc/config.xml
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Pure360_Cron>
|
5 |
-
<version>1.0
|
6 |
</Pure360_Cron>
|
7 |
</modules>
|
8 |
<global>
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Pure360_Cron>
|
5 |
+
<version>1.1.0</version>
|
6 |
</Pure360_Cron>
|
7 |
</modules>
|
8 |
<global>
|
app/code/community/Pure360/Cron/sql/pure360_cron_setup/{mysql4-install-1.0.3.php → mysql4-install-1.0.4.php}
RENAMED
File without changes
|
app/code/community/Pure360/Email/Model/Email/Message.php
CHANGED
@@ -135,7 +135,28 @@ class Pure360_Email_Model_Email_Message extends Mage_Core_Model_Email_Template
|
|
135 |
|
136 |
$this->setUseAbsoluteLinks(true);
|
137 |
$text = $this->getProcessedTemplate($variables, true);
|
138 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
139 |
try
|
140 |
{
|
141 |
// Create API Client for current context
|
@@ -146,10 +167,11 @@ class Pure360_Email_Model_Email_Message extends Mage_Core_Model_Email_Template
|
|
146 |
$client = Mage::helper('pure360_common/api')->getClient($url, $username, $password);
|
147 |
|
148 |
// Send using Pure360 One2One
|
|
|
149 |
$messageSubject = $this->getProcessedTemplateSubject($variables);
|
150 |
$messageName = $templateId;
|
151 |
$messageBodyHtml = $this->isPlain() ? null : $text;
|
152 |
-
$messageBodyPlain = $this->isPlain() ? $text :
|
153 |
$toAddress = $variables['email'];
|
154 |
$fromAddress = $this->getSenderEmail();
|
155 |
$fromDesc = $this->getSenderName();
|
135 |
|
136 |
$this->setUseAbsoluteLinks(true);
|
137 |
$text = $this->getProcessedTemplate($variables, true);
|
138 |
+
$plainText = $text;
|
139 |
+
|
140 |
+
if(!$this->isPlain())
|
141 |
+
{
|
142 |
+
|
143 |
+
$searchPatterns = array(
|
144 |
+
'/<style.*>.*<\/style>/Usi',
|
145 |
+
'/<p.*>/Ui',
|
146 |
+
'/<\/p>/i',
|
147 |
+
'/<br.*\/?>/i',
|
148 |
+
'/<[^>]+>/Usi',
|
149 |
+
);
|
150 |
+
$replaceValues = array(
|
151 |
+
'',
|
152 |
+
"\r\n\r\n",
|
153 |
+
"\r\n",
|
154 |
+
"\r\n",
|
155 |
+
'',
|
156 |
+
);
|
157 |
+
$plainText = preg_replace($searchPatterns, $replaceValues, $plainText);
|
158 |
+
}
|
159 |
+
|
160 |
try
|
161 |
{
|
162 |
// Create API Client for current context
|
167 |
$client = Mage::helper('pure360_common/api')->getClient($url, $username, $password);
|
168 |
|
169 |
// Send using Pure360 One2One
|
170 |
+
// Todo: allow modification of the plain text message. Currently, only stripping the tags out of the HTML message.
|
171 |
$messageSubject = $this->getProcessedTemplateSubject($variables);
|
172 |
$messageName = $templateId;
|
173 |
$messageBodyHtml = $this->isPlain() ? null : $text;
|
174 |
+
$messageBodyPlain = $this->isPlain() ? $text : $plainText;
|
175 |
$toAddress = $variables['email'];
|
176 |
$fromAddress = $this->getSenderEmail();
|
177 |
$fromDesc = $this->getSenderName();
|
app/code/community/Pure360/Email/etc/config.xml
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Pure360_Email>
|
5 |
-
<version>1.0
|
6 |
</Pure360_Email>
|
7 |
</modules>
|
8 |
<global>
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Pure360_Email>
|
5 |
+
<version>1.1.0</version>
|
6 |
</Pure360_Email>
|
7 |
</modules>
|
8 |
<global>
|
app/code/community/Pure360/Email/sql/pure360_email_setup/{mysql4-install-1.0.3.php → mysql4-install-1.0.4.php}
RENAMED
File without changes
|
app/code/community/Pure360/List/Helper/Data.php
CHANGED
@@ -406,6 +406,29 @@ class Pure360_List_Helper_Data extends Pure360_Common_Helper_Data
|
|
406 |
return $list;
|
407 |
}
|
408 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
409 |
public function toDate($value)
|
410 |
{
|
411 |
$date = date_create($value);
|
406 |
return $list;
|
407 |
}
|
408 |
|
409 |
+
/**
|
410 |
+
* Add email address to optout list
|
411 |
+
* @param string $email
|
412 |
+
* @param integer $storeId
|
413 |
+
*/
|
414 |
+
public function listOptout($email, $storeId)
|
415 |
+
{
|
416 |
+
Mage::helper('pure360_list')->writeDebug(__METHOD__ . ' - start');
|
417 |
+
|
418 |
+
$list = $this->getListForStore($storeId);
|
419 |
+
|
420 |
+
/* @var $job Pure360_List_Model_Optout */
|
421 |
+
$optout = Mage::getModel('pure360_list/optout');
|
422 |
+
$optout->setData('scope', $list->getScope());
|
423 |
+
$optout->setData('scope_id', $list->getScopeId());
|
424 |
+
$optout->setData('email', $email);
|
425 |
+
$optout->setCreatedAt(time());
|
426 |
+
$optout->setUpdatedAt(time());
|
427 |
+
$optout->save();
|
428 |
+
|
429 |
+
Mage::helper('pure360_list')->writeDebug(__METHOD__ . ' - end');
|
430 |
+
}
|
431 |
+
|
432 |
public function toDate($value)
|
433 |
{
|
434 |
$date = date_create($value);
|
app/code/community/Pure360/List/Job/Sync.php
CHANGED
@@ -58,6 +58,7 @@ class Pure360_List_Job_Sync extends Pure360_Cron_Job_Abstract
|
|
58 |
|
59 |
// Set status to syncing
|
60 |
$list->rows = 0;
|
|
|
61 |
$list->setListStatus(Pure360_List_Model_List::LIST_STATUS_SYNCING);
|
62 |
$list->save();
|
63 |
|
@@ -67,6 +68,9 @@ class Pure360_List_Job_Sync extends Pure360_Cron_Job_Abstract
|
|
67 |
// Export all Subscribers next
|
68 |
$this->exportSubscriberList($list);
|
69 |
|
|
|
|
|
|
|
70 |
// Sync List
|
71 |
if($list->rows > 0)
|
72 |
{
|
@@ -80,11 +84,17 @@ class Pure360_List_Job_Sync extends Pure360_Cron_Job_Abstract
|
|
80 |
$list->save();
|
81 |
}
|
82 |
|
|
|
|
|
|
|
|
|
|
|
|
|
83 |
// Finally perform a logout
|
84 |
$this->client->logout();
|
85 |
|
86 |
// Update message with rows uploaded
|
87 |
-
$this->_data->setData('message', $list->rows . ' rows
|
88 |
|
89 |
// Save list data
|
90 |
$this->_data->save();
|
@@ -588,6 +598,108 @@ class Pure360_List_Job_Sync extends Pure360_Cron_Job_Abstract
|
|
588 |
return $dataToSend;
|
589 |
}
|
590 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
591 |
private function uploadList(&$list)
|
592 |
{
|
593 |
Mage::helper('pure360_list')->writeDebug(__METHOD__ . ' - start');
|
@@ -645,12 +757,38 @@ class Pure360_List_Job_Sync extends Pure360_Cron_Job_Abstract
|
|
645 |
|
646 |
$count = 0;
|
647 |
|
648 |
-
// Mark customers as synced
|
649 |
foreach($files as $filename)
|
650 |
{
|
651 |
$dataArray = Mage::helper('pure360_common/file')->readCsv($filename);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
652 |
|
653 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
654 |
{
|
655 |
$emails = array();
|
656 |
|
@@ -680,6 +818,7 @@ class Pure360_List_Job_Sync extends Pure360_Cron_Job_Abstract
|
|
680 |
$stmt->execute();
|
681 |
}
|
682 |
}
|
|
|
683 |
} else
|
684 |
{
|
685 |
$ids = array();
|
@@ -730,6 +869,49 @@ class Pure360_List_Job_Sync extends Pure360_Cron_Job_Abstract
|
|
730 |
return;
|
731 |
}
|
732 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
733 |
private function cleanup($list)
|
734 |
{
|
735 |
Mage::helper('pure360_list')->writeDebug(__METHOD__ . ' - start');
|
58 |
|
59 |
// Set status to syncing
|
60 |
$list->rows = 0;
|
61 |
+
$list->optout_rows = 0;
|
62 |
$list->setListStatus(Pure360_List_Model_List::LIST_STATUS_SYNCING);
|
63 |
$list->save();
|
64 |
|
68 |
// Export all Subscribers next
|
69 |
$this->exportSubscriberList($list);
|
70 |
|
71 |
+
// Finally all Optouts
|
72 |
+
$this->exportOptoutList($list);
|
73 |
+
|
74 |
// Sync List
|
75 |
if($list->rows > 0)
|
76 |
{
|
84 |
$list->save();
|
85 |
}
|
86 |
|
87 |
+
// Upload Optouts
|
88 |
+
if($list->optout_rows > 0)
|
89 |
+
{
|
90 |
+
$this->uploadOptouts($list);
|
91 |
+
}
|
92 |
+
|
93 |
// Finally perform a logout
|
94 |
$this->client->logout();
|
95 |
|
96 |
// Update message with rows uploaded
|
97 |
+
$this->_data->setData('message', $list->rows . ' rows processed, ' . $list->optout_rows . ' rows opted out ');
|
98 |
|
99 |
// Save list data
|
100 |
$this->_data->save();
|
598 |
return $dataToSend;
|
599 |
}
|
600 |
|
601 |
+
private function exportOptoutList(&$list)
|
602 |
+
{
|
603 |
+
Mage::helper('pure360_list')->writeDebug(__METHOD__ . ' - start');
|
604 |
+
|
605 |
+
$resource = Mage::getSingleton('core/resource');
|
606 |
+
|
607 |
+
// Get handle for write
|
608 |
+
$write = $resource->getConnection('core_write');
|
609 |
+
|
610 |
+
// Clean invalid optouts
|
611 |
+
$optoutTable = $resource->getTableName('pure360_optout');
|
612 |
+
$subscriberTable = $resource->getTableName('newsletter_subscriber');
|
613 |
+
|
614 |
+
$stmt = $write->prepare("DELETE e FROM $optoutTable AS e " .
|
615 |
+
" LEFT JOIN $subscriberTable AS s ON (s.subscriber_email = e.email) " .
|
616 |
+
" WHERE s.subscriber_status = :status AND e.scope = :scope AND e.scope_id = :scopeId ");
|
617 |
+
|
618 |
+
$status = Mage_Newsletter_Model_Subscriber::STATUS_SUBSCRIBED;
|
619 |
+
|
620 |
+
$stmt->bindParam(":status", $status, PDO::PARAM_INT);
|
621 |
+
$stmt->bindParam(":scope", $list->getScope(), PDO::PARAM_STR);
|
622 |
+
$stmt->bindParam(":scopeId", $list->getScopeId(), PDO::PARAM_INT);
|
623 |
+
|
624 |
+
$stmt->execute();
|
625 |
+
|
626 |
+
// Export optout list
|
627 |
+
$fileSlug = $list->fileSlug . '__OPTOUT__';
|
628 |
+
|
629 |
+
$file_ext = '.csv';
|
630 |
+
$batchNum = 1;
|
631 |
+
$batchSize = self::CHUNK_SIZE;
|
632 |
+
$firstEmail = null;
|
633 |
+
|
634 |
+
do
|
635 |
+
{
|
636 |
+
$time_start = microtime(true);
|
637 |
+
$currentBatch = $this->getOptoutBatch($list, $batchSize, $batchNum);
|
638 |
+
$condition = count($currentBatch);
|
639 |
+
$filePath = Mage::helper('pure360_common/file')->getFilePath($fileSlug . $batchNum . $file_ext);
|
640 |
+
|
641 |
+
$firstRow = reset($currentBatch);
|
642 |
+
|
643 |
+
if(empty($firstRow) || $firstEmail == $firstRow)
|
644 |
+
{
|
645 |
+
break;
|
646 |
+
} else
|
647 |
+
{
|
648 |
+
$firstEmail = $firstRow;
|
649 |
+
}
|
650 |
+
|
651 |
+
foreach($currentBatch as $email)
|
652 |
+
{
|
653 |
+
if($list->optout_rows < $this->max_sync_size)
|
654 |
+
{
|
655 |
+
Mage::helper('pure360_common/file')->outputCSV($filePath, array($email));
|
656 |
+
$list->optout_rows++;
|
657 |
+
} else
|
658 |
+
{
|
659 |
+
break;
|
660 |
+
}
|
661 |
+
}
|
662 |
+
|
663 |
+
$time_end = microtime(true);
|
664 |
+
$time_in_seconds = $time_end - $time_start;
|
665 |
+
|
666 |
+
Mage::helper('pure360_list')->writeDebug('Exported Optout Batch ' . $batchNum . ' in ' . $time_in_seconds . ' seconds - (' . memory_get_usage() . ') to ' . $filePath);
|
667 |
+
|
668 |
+
$batchNum++;
|
669 |
+
|
670 |
+
unset($currentBatch);
|
671 |
+
} while($condition == $batchSize && $list->optout_rows <= $this->max_sync_size);
|
672 |
+
|
673 |
+
Mage::helper('pure360_list')->writeDebug(__METHOD__ . ' - end');
|
674 |
+
}
|
675 |
+
|
676 |
+
private function getOptoutBatch($list, $batchSize = 0, $batchNum = 1)
|
677 |
+
{
|
678 |
+
Mage::helper('pure360_list')->writeDebug(__METHOD__ . ' - start');
|
679 |
+
|
680 |
+
$emails = array();
|
681 |
+
|
682 |
+
// Configure Collection
|
683 |
+
$collection = Mage::getModel('pure360_list/optout')->getCollection()
|
684 |
+
->distinct(true)
|
685 |
+
->addScopeFilter($list->getScope(), $list->getScopeId());
|
686 |
+
|
687 |
+
// Add paging for batch operation
|
688 |
+
$collection->setCurPage($batchNum)->setPageSize($batchSize);
|
689 |
+
|
690 |
+
// Get email for each item in collection
|
691 |
+
foreach($collection as $row)
|
692 |
+
{
|
693 |
+
$emails[] = $row->getEmail();
|
694 |
+
}
|
695 |
+
|
696 |
+
unset($collection);
|
697 |
+
|
698 |
+
Mage::helper('pure360_list')->writeDebug(__METHOD__ . ' - end');
|
699 |
+
|
700 |
+
return $emails;
|
701 |
+
}
|
702 |
+
|
703 |
private function uploadList(&$list)
|
704 |
{
|
705 |
Mage::helper('pure360_list')->writeDebug(__METHOD__ . ' - start');
|
757 |
|
758 |
$count = 0;
|
759 |
|
|
|
760 |
foreach($files as $filename)
|
761 |
{
|
762 |
$dataArray = Mage::helper('pure360_common/file')->readCsv($filename);
|
763 |
+
|
764 |
+
// Remove optouts
|
765 |
+
if(strstr($filename, 'OPTOUT'))
|
766 |
+
{
|
767 |
+
$emails = array();
|
768 |
+
|
769 |
+
foreach($dataArray as $dataRow)
|
770 |
+
{
|
771 |
+
// Email should always be the only column for optout
|
772 |
+
$emails[] = $dataRow[0];
|
773 |
+
}
|
774 |
|
775 |
+
// Update Sync Statuses.
|
776 |
+
$optoutTable = $resource->getTableName('pure360_optout');
|
777 |
+
$stmt = $write->prepare("DELETE FROM $optoutTable WHERE `email` = :email AND `scope` = :scope AND `scope_id` = :scopeId ");
|
778 |
+
$email = null;
|
779 |
+
$stmt->bindParam(":email", $email, PDO::PARAM_STR);
|
780 |
+
$stmt->bindParam(":scope", $list->getScope(), PDO::PARAM_STR);
|
781 |
+
$stmt->bindParam(":scopeId", $list->getScopeId(), PDO::PARAM_INT);
|
782 |
+
|
783 |
+
foreach($emails as $email)
|
784 |
+
{
|
785 |
+
if(!empty($email))
|
786 |
+
{
|
787 |
+
$stmt->execute();
|
788 |
+
}
|
789 |
+
}
|
790 |
+
// Mark subscribers as synced
|
791 |
+
} else if(strstr($filename, 'subscribe'))
|
792 |
{
|
793 |
$emails = array();
|
794 |
|
818 |
$stmt->execute();
|
819 |
}
|
820 |
}
|
821 |
+
// Mark customers as synced
|
822 |
} else
|
823 |
{
|
824 |
$ids = array();
|
869 |
return;
|
870 |
}
|
871 |
|
872 |
+
private function uploadOptouts(&$list)
|
873 |
+
{
|
874 |
+
Mage::helper('pure360_list')->writeDebug(__METHOD__ . ' - start');
|
875 |
+
|
876 |
+
// Get list properties
|
877 |
+
$listName = '__OPTOUT__';
|
878 |
+
$listFields = array('email');
|
879 |
+
$files = Mage::helper('pure360_common/file')->getFilenamesForSlug($list->fileSlug . '__OPTOUT__');
|
880 |
+
|
881 |
+
/* @var $api Pure360_List_Helper_Api */
|
882 |
+
$api = Mage::helper('pure360_list/api');
|
883 |
+
|
884 |
+
// Setup file transfer
|
885 |
+
$context = $this->client->getContext();
|
886 |
+
$fileCategory = "PAINT";
|
887 |
+
$fileName = $context['beanId'] . '__OPTOUT__';
|
888 |
+
$count = count($files);
|
889 |
+
$page = 1;
|
890 |
+
|
891 |
+
// Create file
|
892 |
+
$api->createFile($this->client, $fileCategory, $fileName, $count, "Y");
|
893 |
+
|
894 |
+
// Upload chunks
|
895 |
+
foreach($files as $filename)
|
896 |
+
{
|
897 |
+
$chunkData = Mage::helper('pure360_common/file')->readFile($filename, true);
|
898 |
+
$api->uploadFileChunk($this->client, $fileCategory, $fileName, $page, $chunkData, "base64");
|
899 |
+
$page++;
|
900 |
+
}
|
901 |
+
|
902 |
+
reset($files);
|
903 |
+
|
904 |
+
// Create/Append list
|
905 |
+
$api->createAppendReplaceList($this->client, $listName, $listFields);
|
906 |
+
|
907 |
+
// Load file data onto list
|
908 |
+
$api->loadFileData($this->client, $fileCategory, $fileName, $listName);
|
909 |
+
|
910 |
+
Mage::helper('pure360_list')->writeDebug(__METHOD__ . ' - end');
|
911 |
+
|
912 |
+
return;
|
913 |
+
}
|
914 |
+
|
915 |
private function cleanup($list)
|
916 |
{
|
917 |
Mage::helper('pure360_list')->writeDebug(__METHOD__ . ' - start');
|
app/code/community/Pure360/List/Model/Customer.php
CHANGED
@@ -13,24 +13,14 @@ class Pure360_List_Model_Customer extends Mage_Customer_Model_Customer
|
|
13 |
*/
|
14 |
protected function _beforeSave()
|
15 |
{
|
16 |
-
parent::_beforeSave()
|
17 |
-
|
18 |
-
if (Mage::helper('pure360_list')->isEnabledForStore($this->getStoreId()))
|
19 |
{
|
20 |
-
$this->
|
|
|
|
|
|
|
21 |
}
|
22 |
-
|
23 |
return $this;
|
24 |
}
|
25 |
-
|
26 |
-
/**
|
27 |
-
* Processing object after delete data
|
28 |
-
*
|
29 |
-
* @return Pure360_List_Model_Customer
|
30 |
-
*/
|
31 |
-
protected function _afterDelete()
|
32 |
-
{
|
33 |
-
parent::_afterDelete();
|
34 |
-
}
|
35 |
}
|
36 |
|
13 |
*/
|
14 |
protected function _beforeSave()
|
15 |
{
|
16 |
+
if(parent::_beforeSave())
|
|
|
|
|
17 |
{
|
18 |
+
if (Mage::helper('pure360_list')->isEnabledForStore($this->getStoreId()))
|
19 |
+
{
|
20 |
+
$this->setPure360SyncStatus(0);
|
21 |
+
}
|
22 |
}
|
|
|
23 |
return $this;
|
24 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
25 |
}
|
26 |
|
app/code/community/Pure360/List/Model/Optout.php
ADDED
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* @package Pure360\List
|
5 |
+
* @copyright 2013 Pure360.com
|
6 |
+
*/
|
7 |
+
class Pure360_List_Model_Optout extends Mage_Core_Model_Abstract
|
8 |
+
{
|
9 |
+
|
10 |
+
public function _construct()
|
11 |
+
{
|
12 |
+
parent::_construct();
|
13 |
+
|
14 |
+
$this->_init('pure360_list/optout');
|
15 |
+
}
|
16 |
+
|
17 |
+
}
|
app/code/community/Pure360/List/Model/Resource/Optout.php
ADDED
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* @package Pure360\List
|
5 |
+
* @copyright 2013 Pure360.com
|
6 |
+
*/
|
7 |
+
class Pure360_List_Model_Resource_Optout extends Mage_Core_Model_Mysql4_Abstract
|
8 |
+
{
|
9 |
+
|
10 |
+
/**
|
11 |
+
* Primary key auto increment flag
|
12 |
+
*
|
13 |
+
* @var bool
|
14 |
+
*/
|
15 |
+
protected $_isPkAutoIncrement = false;
|
16 |
+
|
17 |
+
/**
|
18 |
+
* Initialize Model
|
19 |
+
*
|
20 |
+
* @return void
|
21 |
+
* @access public
|
22 |
+
*/
|
23 |
+
public function _construct()
|
24 |
+
{
|
25 |
+
$this->_init('pure360_list/optout', 'optout_id');
|
26 |
+
}
|
27 |
+
|
28 |
+
}
|
app/code/community/Pure360/List/Model/Resource/Optout/Collection.php
ADDED
@@ -0,0 +1,56 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* @package Pure360\List
|
5 |
+
* @copyright 2013 Pure360.com
|
6 |
+
*/
|
7 |
+
class Pure360_List_Model_Resource_Optout_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract
|
8 |
+
{
|
9 |
+
const MAX_COLLECTION_SIZE = 5;
|
10 |
+
|
11 |
+
/**
|
12 |
+
* Initialize Model
|
13 |
+
*
|
14 |
+
* @return void
|
15 |
+
* @access public
|
16 |
+
*/
|
17 |
+
public function _construct()
|
18 |
+
{
|
19 |
+
parent::_construct();
|
20 |
+
$this->_init('pure360_list/optout');
|
21 |
+
}
|
22 |
+
|
23 |
+
/**
|
24 |
+
* @param string $scope
|
25 |
+
* @param integer $scopeIds
|
26 |
+
*/
|
27 |
+
public function addScopeFilter($scope, $scopeId)
|
28 |
+
{
|
29 |
+
$this->getSelect()->where('scope = ?', $scope);
|
30 |
+
$this->getSelect()->where('scope_id = ?', $scopeId);
|
31 |
+
return $this;
|
32 |
+
}
|
33 |
+
|
34 |
+
/**
|
35 |
+
* Sort order by order created_at date
|
36 |
+
*
|
37 |
+
* @param string $dir
|
38 |
+
*/
|
39 |
+
public function orderByCreatedAt($dir = self::SORT_ORDER_DESC)
|
40 |
+
{
|
41 |
+
$this->setOrder('created_at', $dir);
|
42 |
+
return $this;
|
43 |
+
}
|
44 |
+
|
45 |
+
/**
|
46 |
+
* Sort order by order updated_at date
|
47 |
+
*
|
48 |
+
* @param string $dir
|
49 |
+
*/
|
50 |
+
public function orderByUpdatedAt($dir = self::SORT_ORDER_DESC)
|
51 |
+
{
|
52 |
+
$this->setOrder('updated_at', $dir);
|
53 |
+
return $this;
|
54 |
+
}
|
55 |
+
|
56 |
+
}
|
app/code/community/Pure360/List/Model/Subscriber.php
ADDED
@@ -0,0 +1,55 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* @package Pure360\List
|
5 |
+
* @copyright 2013 Pure360.com
|
6 |
+
*/
|
7 |
+
class Pure360_List_Model_Subscriber extends Mage_Newsletter_Model_Subscriber
|
8 |
+
{
|
9 |
+
|
10 |
+
/**
|
11 |
+
* Processing object before save data
|
12 |
+
*
|
13 |
+
* @return Pure360_Newsletter_Model_Subscriber
|
14 |
+
*/
|
15 |
+
protected function _beforeSave()
|
16 |
+
{
|
17 |
+
if(parent::_beforeSave())
|
18 |
+
{
|
19 |
+
if(Mage::helper('pure360_list')->isEnabledForStore($this->getStoreId()))
|
20 |
+
{
|
21 |
+
$this->setPure360SyncStatus(0);
|
22 |
+
|
23 |
+
// Trigger Pure360 sync status for customer too
|
24 |
+
if($this->getCustomerId() > 0)
|
25 |
+
{
|
26 |
+
$customer = Mage::getModel('customer/customer')->load($this->getCustomerId());
|
27 |
+
|
28 |
+
if($customer->getId())
|
29 |
+
{
|
30 |
+
$customer->save();
|
31 |
+
}
|
32 |
+
}
|
33 |
+
}
|
34 |
+
}
|
35 |
+
return $this;
|
36 |
+
}
|
37 |
+
|
38 |
+
/**
|
39 |
+
* Processing object after delete data
|
40 |
+
*
|
41 |
+
* @return Pure360_Newsletter_Model_Subscriber
|
42 |
+
*/
|
43 |
+
protected function _afterDelete()
|
44 |
+
{
|
45 |
+
if(parent::_afterDelete())
|
46 |
+
{
|
47 |
+
if(Mage::helper('pure360_list')->isEnabledForStore($this->getStoreId()))
|
48 |
+
{
|
49 |
+
// Add to optout list to make sure
|
50 |
+
Mage::helper('pure360_list')->listOptout($this->getSubscriberEmail(), $this->getStoreId());
|
51 |
+
}
|
52 |
+
}
|
53 |
+
return $this;
|
54 |
+
}
|
55 |
+
}
|
app/code/community/Pure360/List/etc/config.xml
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Pure360_List>
|
5 |
-
<version>1.0
|
6 |
</Pure360_List>
|
7 |
</modules>
|
8 |
<global>
|
@@ -27,6 +27,9 @@
|
|
27 |
<list>
|
28 |
<table>pure360_list</table>
|
29 |
</list>
|
|
|
|
|
|
|
30 |
<field>
|
31 |
<table>pure360_list_field</table>
|
32 |
</field>
|
@@ -43,6 +46,11 @@
|
|
43 |
<customer>Pure360_List_Model_Customer</customer>
|
44 |
</rewrite>
|
45 |
</customer>
|
|
|
|
|
|
|
|
|
|
|
46 |
</models>
|
47 |
<resources>
|
48 |
<pure360_list_setup>
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Pure360_List>
|
5 |
+
<version>1.1.0</version>
|
6 |
</Pure360_List>
|
7 |
</modules>
|
8 |
<global>
|
27 |
<list>
|
28 |
<table>pure360_list</table>
|
29 |
</list>
|
30 |
+
<optout>
|
31 |
+
<table>pure360_optout</table>
|
32 |
+
</optout>
|
33 |
<field>
|
34 |
<table>pure360_list_field</table>
|
35 |
</field>
|
46 |
<customer>Pure360_List_Model_Customer</customer>
|
47 |
</rewrite>
|
48 |
</customer>
|
49 |
+
<subscriber>
|
50 |
+
<rewrite>
|
51 |
+
<customer>Pure360_List_Model_Subscriber</customer>
|
52 |
+
</rewrite>
|
53 |
+
</subscriber>
|
54 |
</models>
|
55 |
<resources>
|
56 |
<pure360_list_setup>
|
app/code/community/Pure360/List/sql/pure360_list_setup/{mysql4-install-1.0.3.php → mysql4-install-1.0.4.php}
RENAMED
@@ -5,6 +5,28 @@ $installer = $this;
|
|
5 |
|
6 |
$installer->startSetup();
|
7 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8 |
try
|
9 |
{
|
10 |
// Create New Table
|
5 |
|
6 |
$installer->startSetup();
|
7 |
|
8 |
+
try
|
9 |
+
{
|
10 |
+
// Create New Table
|
11 |
+
$installer->run("
|
12 |
+
CREATE TABLE IF NOT EXISTS `{$this->getTable('pure360_optout')}` (
|
13 |
+
`optout_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Optout Id',
|
14 |
+
`scope` varchar(10) DEFAULT 'default' COMMENT 'Scope',
|
15 |
+
`scope_id` smallint(5) unsigned NOT NULL COMMENT 'Scope Id',
|
16 |
+
`email` varchar(100) COMMENT 'Subscriber email',
|
17 |
+
`created_at` timestamp NULL DEFAULT NULL COMMENT 'Created At',
|
18 |
+
`updated_at` timestamp NULL DEFAULT NULL COMMENT 'Updated At',
|
19 |
+
PRIMARY KEY (`optout_id`),
|
20 |
+
KEY `IDX_PURE360_OPTOUT_SCOPE_ID` (`scope_id`),
|
21 |
+
KEY `IDX_PURE360_OPTOUT_CREATED_AT` (`created_at`),
|
22 |
+
KEY `IDX_PURE360_OPTOUT_UPDATED_AT` (`updated_at`)
|
23 |
+
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Pure360 Optout';
|
24 |
+
");
|
25 |
+
} catch(Exception $e)
|
26 |
+
{
|
27 |
+
// throw new RuntimeException('Failed Creating and Populating Table: ' . $e->getMessage());
|
28 |
+
}
|
29 |
+
|
30 |
try
|
31 |
{
|
32 |
// Create New Table
|
app/code/community/Pure360/List/sql/pure360_list_setup/mysql4-upgrade-1.0.3-1.0.4.php
ADDED
@@ -0,0 +1,30 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
$installer = $this;
|
4 |
+
/* @var $installer Mage_Sales_Model_Mysql4_Setup */
|
5 |
+
|
6 |
+
$installer->startSetup();
|
7 |
+
|
8 |
+
try
|
9 |
+
{
|
10 |
+
// Create New Table
|
11 |
+
$installer->run("
|
12 |
+
CREATE TABLE IF NOT EXISTS `{$this->getTable('pure360_optout')}` (
|
13 |
+
`optout_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Optout Id',
|
14 |
+
`scope` varchar(10) DEFAULT 'default' COMMENT 'Scope',
|
15 |
+
`scope_id` smallint(5) unsigned NOT NULL COMMENT 'Scope Id',
|
16 |
+
`email` varchar(100) COMMENT 'Subscriber email',
|
17 |
+
`created_at` timestamp NULL DEFAULT NULL COMMENT 'Created At',
|
18 |
+
`updated_at` timestamp NULL DEFAULT NULL COMMENT 'Updated At',
|
19 |
+
PRIMARY KEY (`optout_id`),
|
20 |
+
KEY `IDX_PURE360_OPTOUT_SCOPE_ID` (`scope_id`),
|
21 |
+
KEY `IDX_PURE360_OPTOUT_CREATED_AT` (`created_at`),
|
22 |
+
KEY `IDX_PURE360_OPTOUT_UPDATED_AT` (`updated_at`)
|
23 |
+
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Pure360 Optout';
|
24 |
+
");
|
25 |
+
} catch(Exception $e)
|
26 |
+
{
|
27 |
+
// throw new RuntimeException('Failed Creating and Populating Table: ' . $e->getMessage());
|
28 |
+
}
|
29 |
+
|
30 |
+
$installer->endSetup();
|
app/code/community/Pure360/Newsletter/Block/Checkout/Onepage/Newsletter.php
CHANGED
@@ -91,10 +91,20 @@ class Pure360_Newsletter_Block_Checkout_Onepage_Newsletter extends Mage_Checkout
|
|
91 |
if($this->$methodName())
|
92 |
{
|
93 |
$action = 'show';
|
94 |
-
if($
|
95 |
{
|
96 |
-
$
|
97 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
98 |
}
|
99 |
}
|
100 |
}
|
91 |
if($this->$methodName())
|
92 |
{
|
93 |
$action = 'show';
|
94 |
+
if(strtolower($method) == 'customer')
|
95 |
{
|
96 |
+
if($this->isSubscribed())
|
97 |
+
{
|
98 |
+
$checked = 'true';
|
99 |
+
$value = '1';
|
100 |
+
}
|
101 |
+
} else
|
102 |
+
{
|
103 |
+
if($this->isSubscribed() || $this->isEnabledCheckedByDefault())
|
104 |
+
{
|
105 |
+
$checked = 'true';
|
106 |
+
$value = '1';
|
107 |
+
}
|
108 |
}
|
109 |
}
|
110 |
}
|
app/code/community/Pure360/Newsletter/Helper/Api.php
CHANGED
@@ -79,7 +79,7 @@ class Pure360_Newsletter_Helper_Api extends Pure360_Common_Helper_Api
|
|
79 |
* @param Mage_Customer_Model_Customer $customer
|
80 |
* @return type
|
81 |
*/
|
82 |
-
public function listSubscribeCustomer($client, $customer, $date)
|
83 |
{
|
84 |
Mage::helper('pure360_newsletter')->writeDebug(__METHOD__ . ' - start');
|
85 |
|
@@ -116,50 +116,60 @@ class Pure360_Newsletter_Helper_Api extends Pure360_Common_Helper_Api
|
|
116 |
$postFields .= '&website=' . urlencode(Mage::app()->getWebsite($websiteId)->getName());
|
117 |
$postFields .= '&store=' . urlencode($store->getName());
|
118 |
|
119 |
-
|
120 |
-
|
121 |
|
122 |
-
$salesData = empty($salesFields) ? array() : Mage::helper('pure360_list')->getSalesData($customer, $salesFields);
|
123 |
|
124 |
-
|
125 |
-
Mage::helper('
|
126 |
-
Mage::helper('pure360_list')->getCustomerGroupData($customer)));
|
127 |
|
128 |
-
|
129 |
-
Mage::helper('pure360_common')->arrayToCsv(
|
130 |
-
Mage::helper('pure360_list')->getCustomerSegmentData($customer)));
|
131 |
|
132 |
-
|
|
|
|
|
133 |
|
134 |
-
|
135 |
-
|
|
|
136 |
|
137 |
-
|
138 |
-
|
139 |
-
|
|
|
140 |
|
141 |
-
|
142 |
{
|
143 |
-
$val =
|
144 |
-
|
|
|
145 |
{
|
146 |
-
|
|
|
147 |
{
|
148 |
-
|
149 |
-
|
|
|
|
|
|
|
150 |
}
|
151 |
}
|
|
|
|
|
152 |
}
|
153 |
|
154 |
-
$
|
155 |
-
|
|
|
|
|
156 |
|
157 |
-
|
|
|
|
|
158 |
{
|
159 |
-
$postFields .= '&
|
160 |
}
|
161 |
-
|
162 |
-
$postFields .= '&signup_date=' . urlencode(Mage::helper('pure360_list')->toDate($date));
|
163 |
$postFields .= '&email=' . urlencode($customer->getEmail());
|
164 |
|
165 |
// Do post
|
79 |
* @param Mage_Customer_Model_Customer $customer
|
80 |
* @return type
|
81 |
*/
|
82 |
+
public function listSubscribeCustomer($client, $customer, $date, $subscribe = true)
|
83 |
{
|
84 |
Mage::helper('pure360_newsletter')->writeDebug(__METHOD__ . ' - start');
|
85 |
|
116 |
$postFields .= '&website=' . urlencode(Mage::app()->getWebsite($websiteId)->getName());
|
117 |
$postFields .= '&store=' . urlencode($store->getName());
|
118 |
|
119 |
+
if($subscribe)
|
120 |
+
{
|
121 |
|
|
|
122 |
|
123 |
+
// Process Customer
|
124 |
+
$salesFields = Mage::helper('pure360_list')->getSalesFields($list);
|
|
|
125 |
|
126 |
+
$salesData = empty($salesFields) ? array() : Mage::helper('pure360_list')->getSalesData($customer, $salesFields);
|
|
|
|
|
127 |
|
128 |
+
$groupData = array('customer_group' =>
|
129 |
+
Mage::helper('pure360_common')->arrayToCsv(
|
130 |
+
Mage::helper('pure360_list')->getCustomerGroupData($customer)));
|
131 |
|
132 |
+
$segmentData = array('customer_segments' =>
|
133 |
+
Mage::helper('pure360_common')->arrayToCsv(
|
134 |
+
Mage::helper('pure360_list')->getCustomerSegmentData($customer)));
|
135 |
|
136 |
+
$customerData = array_merge($customer->toArray(), $salesData, $groupData, $segmentData);
|
137 |
+
|
138 |
+
// Get date key lookup:
|
139 |
+
$dateKeyLookup = Mage::helper('pure360_list')->getDateKeyLookup();
|
140 |
|
141 |
+
foreach(Mage::helper('pure360_list')->getListKeys($list) as $key)
|
142 |
{
|
143 |
+
$val = '';
|
144 |
+
|
145 |
+
if(isset($customerData[$key]))
|
146 |
{
|
147 |
+
$val = $customerData[$key];
|
148 |
+
if(!empty($val))
|
149 |
{
|
150 |
+
if(in_array($key, $dateKeyLookup))
|
151 |
+
{
|
152 |
+
// Format to pure360 list date
|
153 |
+
$val = Mage::helper('pure360_list')->toDate($val);
|
154 |
+
}
|
155 |
}
|
156 |
}
|
157 |
+
|
158 |
+
$postFields .= '&' . $key . '=' . $val;
|
159 |
}
|
160 |
|
161 |
+
if($list->getDoubleOptinEnabled() != 'y')
|
162 |
+
{
|
163 |
+
$postFields .= '&doubleOptin=false';
|
164 |
+
}
|
165 |
|
166 |
+
$postFields .= '&signup_date=' . urlencode(Mage::helper('pure360_list')->toDate($date));
|
167 |
+
|
168 |
+
} else
|
169 |
{
|
170 |
+
$postFields .= '&mode=OPTOUT';
|
171 |
}
|
172 |
+
|
|
|
173 |
$postFields .= '&email=' . urlencode($customer->getEmail());
|
174 |
|
175 |
// Do post
|
app/code/community/Pure360/Newsletter/Model/Subscriber.php
CHANGED
@@ -6,6 +6,7 @@
|
|
6 |
*/
|
7 |
class Pure360_Newsletter_Model_Subscriber extends Mage_Newsletter_Model_Subscriber
|
8 |
{
|
|
|
9 |
/**
|
10 |
* Override default subscribe action.
|
11 |
*/
|
@@ -18,7 +19,7 @@ class Pure360_Newsletter_Model_Subscriber extends Mage_Newsletter_Model_Subscrib
|
|
18 |
if($this->getIsStatusChanged() && $this->getStatus() == self::STATUS_SUBSCRIBED)
|
19 |
{
|
20 |
$this->tagSubscription();
|
21 |
-
|
22 |
if(Mage::app()->getWebsite()->getCode() !== 'admin')
|
23 |
{
|
24 |
if($callback)
|
@@ -42,20 +43,44 @@ class Pure360_Newsletter_Model_Subscriber extends Mage_Newsletter_Model_Subscrib
|
|
42 |
{
|
43 |
if(Mage::helper('pure360_newsletter')->isEnabledForStore($customer->getStoreId()))
|
44 |
{
|
45 |
-
if($this->getIsStatusChanged()
|
46 |
{
|
47 |
-
$this->
|
48 |
-
|
49 |
-
|
50 |
-
{
|
51 |
-
if($callback)
|
52 |
{
|
53 |
-
$
|
54 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
55 |
}
|
56 |
}
|
57 |
-
|
58 |
-
$customer->save();
|
59 |
}
|
60 |
}
|
61 |
}
|
@@ -70,13 +95,13 @@ class Pure360_Newsletter_Model_Subscriber extends Mage_Newsletter_Model_Subscrib
|
|
70 |
if(parent::unsubscribe())
|
71 |
{
|
72 |
$storeId = $this->getStoreId();
|
73 |
-
|
74 |
if($this->getCustomerId())
|
75 |
{
|
76 |
$customer = Mage::getModel('customer/customer')->load($this->getCustomerId());
|
77 |
-
$storeId = $customer->getStoreId();
|
78 |
}
|
79 |
-
|
80 |
if(Mage::helper('pure360_newsletter')->isEnabledForStore($storeId))
|
81 |
{
|
82 |
if($this->getStatus() == self::STATUS_UNSUBSCRIBED)
|
@@ -89,6 +114,9 @@ class Pure360_Newsletter_Model_Subscriber extends Mage_Newsletter_Model_Subscrib
|
|
89 |
Mage::helper('pure360_newsletter/api')->listSubscribe($client, $this, false);
|
90 |
}
|
91 |
}
|
|
|
|
|
|
|
92 |
}
|
93 |
}
|
94 |
}
|
@@ -107,6 +135,8 @@ class Pure360_Newsletter_Model_Subscriber extends Mage_Newsletter_Model_Subscrib
|
|
107 |
/**
|
108 |
* Suppress default confirmation success email function if Pure360
|
109 |
* module is active.
|
|
|
|
|
110 |
*/
|
111 |
public function sendConfirmationSuccessEmail()
|
112 |
{
|
@@ -123,52 +153,18 @@ class Pure360_Newsletter_Model_Subscriber extends Mage_Newsletter_Model_Subscrib
|
|
123 |
/**
|
124 |
* Suppress default unsubscribe confirmation email function if Pure360
|
125 |
* module is active.
|
|
|
|
|
126 |
*/
|
127 |
public function sendUnsubscriptionEmail()
|
128 |
{
|
129 |
if(Mage::helper('pure360_newsletter')->isEnabledForStore($this->getStoreId()))
|
130 |
{
|
131 |
return $this;
|
|
|
132 |
} else
|
133 |
{
|
134 |
return parent::sendUnsubscriptionEmail();
|
135 |
}
|
136 |
}
|
137 |
-
|
138 |
-
/**
|
139 |
-
* Processing object before save data
|
140 |
-
*
|
141 |
-
*/
|
142 |
-
protected function _beforeSave()
|
143 |
-
{
|
144 |
-
parent::_beforeSave();
|
145 |
-
|
146 |
-
if(Mage::helper('pure360_newsletter')->isEnabledForStore($this->getStoreId()))
|
147 |
-
{
|
148 |
-
$this->setPure360SyncStatus(0);
|
149 |
-
|
150 |
-
// Trigger Pure360 sync status for customer too
|
151 |
-
if($this->getCustomerId() > 0)
|
152 |
-
{
|
153 |
-
$customer = Mage::getModel('customer/customer')->load($this->getCustomerId());
|
154 |
-
if($customer->getId())
|
155 |
-
{
|
156 |
-
$customer->save();
|
157 |
-
}
|
158 |
-
}
|
159 |
-
}
|
160 |
-
|
161 |
-
return $this;
|
162 |
-
}
|
163 |
-
|
164 |
-
/**
|
165 |
-
* Processing object after delete data
|
166 |
-
*
|
167 |
-
* @return Pure360_Newsletter_Model_Subscriber
|
168 |
-
*/
|
169 |
-
protected function _afterDelete()
|
170 |
-
{
|
171 |
-
parent::_afterDelete();
|
172 |
-
}
|
173 |
-
|
174 |
-
}
|
6 |
*/
|
7 |
class Pure360_Newsletter_Model_Subscriber extends Mage_Newsletter_Model_Subscriber
|
8 |
{
|
9 |
+
|
10 |
/**
|
11 |
* Override default subscribe action.
|
12 |
*/
|
19 |
if($this->getIsStatusChanged() && $this->getStatus() == self::STATUS_SUBSCRIBED)
|
20 |
{
|
21 |
$this->tagSubscription();
|
22 |
+
|
23 |
if(Mage::app()->getWebsite()->getCode() !== 'admin')
|
24 |
{
|
25 |
if($callback)
|
43 |
{
|
44 |
if(Mage::helper('pure360_newsletter')->isEnabledForStore($customer->getStoreId()))
|
45 |
{
|
46 |
+
if($this->getIsStatusChanged())
|
47 |
{
|
48 |
+
switch($this->getStatus())
|
49 |
+
{
|
50 |
+
case self::STATUS_SUBSCRIBED:
|
|
|
|
|
51 |
{
|
52 |
+
$this->tagSubscription();
|
53 |
+
|
54 |
+
if(Mage::app()->getWebsite()->getCode() !== 'admin')
|
55 |
+
{
|
56 |
+
if($callback)
|
57 |
+
{
|
58 |
+
$client = Mage::helper('pure360_common/api')->getClientForWebsite();
|
59 |
+
Mage::helper('pure360_newsletter/api')->listSubscribeCustomer($client, $customer, $this->getSubscriptionDate(), true);
|
60 |
+
}
|
61 |
+
}
|
62 |
+
|
63 |
+
$customer->save();
|
64 |
+
break;
|
65 |
+
}
|
66 |
+
case self::STATUS_UNSUBSCRIBED:
|
67 |
+
{
|
68 |
+
if(Mage::app()->getWebsite()->getCode() !== 'admin')
|
69 |
+
{
|
70 |
+
if($callback)
|
71 |
+
{
|
72 |
+
$client = Mage::helper('pure360_common/api')->getClientForWebsite();
|
73 |
+
Mage::helper('pure360_newsletter/api')->listSubscribeCustomer($client, $customer, $this->getSubscriptionDate(), false);
|
74 |
+
}
|
75 |
+
}
|
76 |
+
|
77 |
+
// Add to optout list to make sure
|
78 |
+
Mage::helper('pure360_list')->listOptout($this->getSubscriberEmail(), $customer->getStoreId());
|
79 |
+
|
80 |
+
$customer->save();
|
81 |
+
break;
|
82 |
}
|
83 |
}
|
|
|
|
|
84 |
}
|
85 |
}
|
86 |
}
|
95 |
if(parent::unsubscribe())
|
96 |
{
|
97 |
$storeId = $this->getStoreId();
|
98 |
+
|
99 |
if($this->getCustomerId())
|
100 |
{
|
101 |
$customer = Mage::getModel('customer/customer')->load($this->getCustomerId());
|
102 |
+
$storeId = $customer->getStoreId();
|
103 |
}
|
104 |
+
|
105 |
if(Mage::helper('pure360_newsletter')->isEnabledForStore($storeId))
|
106 |
{
|
107 |
if($this->getStatus() == self::STATUS_UNSUBSCRIBED)
|
114 |
Mage::helper('pure360_newsletter/api')->listSubscribe($client, $this, false);
|
115 |
}
|
116 |
}
|
117 |
+
|
118 |
+
// Add to optout list to make sure
|
119 |
+
Mage::helper('pure360_list')->listOptout($this->getSubscriberEmail(), $storeId);
|
120 |
}
|
121 |
}
|
122 |
}
|
135 |
/**
|
136 |
* Suppress default confirmation success email function if Pure360
|
137 |
* module is active.
|
138 |
+
*
|
139 |
+
* @return Pure360_Newsletter_Model_Subscriber
|
140 |
*/
|
141 |
public function sendConfirmationSuccessEmail()
|
142 |
{
|
153 |
/**
|
154 |
* Suppress default unsubscribe confirmation email function if Pure360
|
155 |
* module is active.
|
156 |
+
*
|
157 |
+
* @return Pure360_Newsletter_Model_Subscriber
|
158 |
*/
|
159 |
public function sendUnsubscriptionEmail()
|
160 |
{
|
161 |
if(Mage::helper('pure360_newsletter')->isEnabledForStore($this->getStoreId()))
|
162 |
{
|
163 |
return $this;
|
164 |
+
|
165 |
} else
|
166 |
{
|
167 |
return parent::sendUnsubscriptionEmail();
|
168 |
}
|
169 |
}
|
170 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/code/community/Pure360/Newsletter/etc/config.xml
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Pure360_Newsletter>
|
5 |
-
<version>1.0
|
6 |
</Pure360_Newsletter>
|
7 |
</modules>
|
8 |
<global>
|
@@ -92,7 +92,7 @@
|
|
92 |
<children>
|
93 |
<config>
|
94 |
<children>
|
95 |
-
<pure360_newsletter module="
|
96 |
<title>Pure360 Newsletter Options Section</title>
|
97 |
</pure360_newsletter>
|
98 |
</children>
|
@@ -139,4 +139,4 @@
|
|
139 |
</modules>
|
140 |
</suite>
|
141 |
</phpunit>
|
142 |
-
</config>
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Pure360_Newsletter>
|
5 |
+
<version>1.1.0</version>
|
6 |
</Pure360_Newsletter>
|
7 |
</modules>
|
8 |
<global>
|
92 |
<children>
|
93 |
<config>
|
94 |
<children>
|
95 |
+
<pure360_newsletter module="pure360_newsletter">
|
96 |
<title>Pure360 Newsletter Options Section</title>
|
97 |
</pure360_newsletter>
|
98 |
</children>
|
139 |
</modules>
|
140 |
</suite>
|
141 |
</phpunit>
|
142 |
+
</config>
|
app/code/community/Pure360/Newsletter/sql/pure360_newsletter_setup/{mysql4-install-1.0.3.php → mysql4-install-1.0.4.php}
RENAMED
File without changes
|
app/design/adminhtml/default/default/layout/pure360_cart.xml
CHANGED
@@ -1,8 +1,8 @@
|
|
1 |
-
<?xml version="1.0"?>
|
2 |
-
<layout>
|
3 |
-
<adminhtml_system_config_edit>
|
4 |
-
<reference name="content">
|
5 |
-
<block type="pure360_cart/jsinit" name="pure360_cart_jsinit" template="pure360/cart/jsinit.phtml"></block>
|
6 |
-
</reference>
|
7 |
-
</adminhtml_system_config_edit>
|
8 |
-
</layout>
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<layout>
|
3 |
+
<adminhtml_system_config_edit>
|
4 |
+
<reference name="content">
|
5 |
+
<block type="pure360_cart/jsinit" name="pure360_cart_jsinit" template="pure360/cart/jsinit.phtml"></block>
|
6 |
+
</reference>
|
7 |
+
</adminhtml_system_config_edit>
|
8 |
+
</layout>
|
app/design/adminhtml/default/default/layout/pure360_common.xml
CHANGED
@@ -1,8 +1,8 @@
|
|
1 |
-
<?xml version="1.0"?>
|
2 |
-
<layout>
|
3 |
-
<adminhtml_system_config_edit>
|
4 |
-
<reference name="content">
|
5 |
-
<block type="pure360_common/jsinit" name="pure360_common_jsinit" template="pure360/common/jsinit.phtml"></block>
|
6 |
-
</reference>
|
7 |
-
</adminhtml_system_config_edit>
|
8 |
-
</layout>
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<layout>
|
3 |
+
<adminhtml_system_config_edit>
|
4 |
+
<reference name="content">
|
5 |
+
<block type="pure360_common/jsinit" name="pure360_common_jsinit" template="pure360/common/jsinit.phtml"></block>
|
6 |
+
</reference>
|
7 |
+
</adminhtml_system_config_edit>
|
8 |
+
</layout>
|
app/design/adminhtml/default/default/layout/pure360_cron.xml
CHANGED
@@ -1,8 +1,8 @@
|
|
1 |
-
<?xml version="1.0"?>
|
2 |
-
<layout>
|
3 |
-
<adminhtml_system_config_edit>
|
4 |
-
<reference name="content">
|
5 |
-
<block type="pure360_cron/jsinit" name="pure360_cron_jsinit" template="pure360/cron/jsinit.phtml"></block>
|
6 |
-
</reference>
|
7 |
-
</adminhtml_system_config_edit>
|
8 |
</layout>
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<layout>
|
3 |
+
<adminhtml_system_config_edit>
|
4 |
+
<reference name="content">
|
5 |
+
<block type="pure360_cron/jsinit" name="pure360_cron_jsinit" template="pure360/cron/jsinit.phtml"></block>
|
6 |
+
</reference>
|
7 |
+
</adminhtml_system_config_edit>
|
8 |
</layout>
|
app/design/adminhtml/default/default/layout/pure360_email.xml
CHANGED
@@ -1,8 +1,8 @@
|
|
1 |
-
<?xml version="1.0"?>
|
2 |
-
<layout>
|
3 |
-
<adminhtml_system_config_edit>
|
4 |
-
<reference name="content">
|
5 |
-
<block type="pure360_email/jsinit" name="pure360_email_jsinit" template="pure360/email/jsinit.phtml"></block>
|
6 |
-
</reference>
|
7 |
-
</adminhtml_system_config_edit>
|
8 |
</layout>
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<layout>
|
3 |
+
<adminhtml_system_config_edit>
|
4 |
+
<reference name="content">
|
5 |
+
<block type="pure360_email/jsinit" name="pure360_email_jsinit" template="pure360/email/jsinit.phtml"></block>
|
6 |
+
</reference>
|
7 |
+
</adminhtml_system_config_edit>
|
8 |
</layout>
|
app/design/adminhtml/default/default/layout/pure360_list.xml
CHANGED
@@ -1,15 +1,15 @@
|
|
1 |
-
<?xml version="1.0"?>
|
2 |
-
<layout>
|
3 |
-
<adminhtml_system_config_edit>
|
4 |
-
<reference name="content">
|
5 |
-
<block type="pure360_list/jsinit" name="pure360_list_jsinit" template="pure360/list/jsinit.phtml"></block>
|
6 |
-
</reference>
|
7 |
-
</adminhtml_system_config_edit>
|
8 |
-
|
9 |
-
<pure360_list>
|
10 |
-
<reference name="content">
|
11 |
-
<block type="pure360_list/adminhtml_system_config_list" name="pure360_list" template="pure360/list/list.phtml"></block>
|
12 |
-
</reference>
|
13 |
-
</pure360_list>
|
14 |
-
|
15 |
</layout>
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<layout>
|
3 |
+
<adminhtml_system_config_edit>
|
4 |
+
<reference name="content">
|
5 |
+
<block type="pure360_list/jsinit" name="pure360_list_jsinit" template="pure360/list/jsinit.phtml"></block>
|
6 |
+
</reference>
|
7 |
+
</adminhtml_system_config_edit>
|
8 |
+
|
9 |
+
<pure360_list>
|
10 |
+
<reference name="content">
|
11 |
+
<block type="pure360_list/adminhtml_system_config_list" name="pure360_list" template="pure360/list/list.phtml"></block>
|
12 |
+
</reference>
|
13 |
+
</pure360_list>
|
14 |
+
|
15 |
</layout>
|
app/design/adminhtml/default/default/layout/pure360_newsletter.xml
CHANGED
@@ -1,8 +1,8 @@
|
|
1 |
-
<?xml version="1.0"?>
|
2 |
-
<layout>
|
3 |
-
<adminhtml_system_config_edit>
|
4 |
-
<reference name="content">
|
5 |
-
<block type="pure360_newsletter/jsinit" name="pure360_newsletter_jsinit" template="pure360/newsletter/jsinit.phtml"></block>
|
6 |
-
</reference>
|
7 |
-
</adminhtml_system_config_edit>
|
8 |
</layout>
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<layout>
|
3 |
+
<adminhtml_system_config_edit>
|
4 |
+
<reference name="content">
|
5 |
+
<block type="pure360_newsletter/jsinit" name="pure360_newsletter_jsinit" template="pure360/newsletter/jsinit.phtml"></block>
|
6 |
+
</reference>
|
7 |
+
</adminhtml_system_config_edit>
|
8 |
</layout>
|
app/design/adminhtml/default/default/template/pure360/common/about.phtml
CHANGED
@@ -1,9 +1,9 @@
|
|
1 |
-
<?php /* var $this Pure360_Common_Block_Adminhtml_System_Config_About */ ?>
|
2 |
-
|
3 |
-
<div style="background-color: #f4f9f5; border: 1px solid #D6D6D6; margin-bottom: 10px; padding: 10px 5px 15px 30px; color: #000">
|
4 |
-
<p style="float: right; font-family: monospace; font-size: 9px; color: gray">v<?php echo $this->helper('pure360_common')->getModuleVersion(); ?></p>
|
5 |
-
<a href="http://www.pure360.com" target="_blank"><img src="<?php echo $this->getSkinUrl('images/pure360/pure_logo.png'); ?>" alt="Pure360" style="float: left; margin-right: 20px;"/></a>
|
6 |
-
<strong>Improving your email marketing & SMS results together</strong><br/>
|
7 |
-
Call Pure360 on 08082 562353<br/>
|
8 |
-
<a href="http://www.pure360.com">http://www.pure360.com</a><br/>
|
9 |
</div>
|
1 |
+
<?php /* var $this Pure360_Common_Block_Adminhtml_System_Config_About */ ?>
|
2 |
+
|
3 |
+
<div style="background-color: #f4f9f5; border: 1px solid #D6D6D6; margin-bottom: 10px; padding: 10px 5px 15px 30px; color: #000">
|
4 |
+
<p style="float: right; font-family: monospace; font-size: 9px; color: gray">v<?php echo $this->helper('pure360_common')->getModuleVersion(); ?></p>
|
5 |
+
<a href="http://www.pure360.com" target="_blank"><img src="<?php echo $this->getSkinUrl('images/pure360/pure_logo.png'); ?>" alt="Pure360" style="float: left; margin-right: 20px;"/></a>
|
6 |
+
<strong>Improving your email marketing & SMS results together</strong><br/>
|
7 |
+
Call Pure360 on 08082 562353<br/>
|
8 |
+
<a href="http://www.pure360.com">http://www.pure360.com</a><br/>
|
9 |
</div>
|
app/design/adminhtml/default/default/template/pure360/common/disabled.phtml
CHANGED
@@ -1,10 +1,10 @@
|
|
1 |
-
<?php include 'about.phtml'; ?>
|
2 |
-
<div id="messages">
|
3 |
-
<ul class="messages">
|
4 |
-
<li class="error-msg">
|
5 |
-
<ul>
|
6 |
-
<li><span>This module is currently disabled at this scope. Please try a different configuration scope or check the API Configuration has been set correctly.</span></li>
|
7 |
-
</ul>
|
8 |
-
</li>
|
9 |
-
</ul>
|
10 |
-
</div>
|
1 |
+
<?php include 'about.phtml'; ?>
|
2 |
+
<div id="messages">
|
3 |
+
<ul class="messages">
|
4 |
+
<li class="error-msg">
|
5 |
+
<ul>
|
6 |
+
<li><span>This module is currently disabled at this scope. Please try a different configuration scope or check the API Configuration has been set correctly.</span></li>
|
7 |
+
</ul>
|
8 |
+
</li>
|
9 |
+
</ul>
|
10 |
+
</div>
|
app/design/adminhtml/default/default/template/pure360/common/error.phtml
CHANGED
@@ -1,10 +1,10 @@
|
|
1 |
-
|
2 |
-
<div id="messages">
|
3 |
-
<ul class="messages">
|
4 |
-
<li class="error-msg">
|
5 |
-
<ul>
|
6 |
-
<li><span>An error occurred: <?php echo $this->error->getMessage();?></span></li>
|
7 |
-
</ul>
|
8 |
-
</li>
|
9 |
-
</ul>
|
10 |
-
</div>
|
1 |
+
|
2 |
+
<div id="messages">
|
3 |
+
<ul class="messages">
|
4 |
+
<li class="error-msg">
|
5 |
+
<ul>
|
6 |
+
<li><span>An error occurred: <?php echo $this->error->getMessage();?></span></li>
|
7 |
+
</ul>
|
8 |
+
</li>
|
9 |
+
</ul>
|
10 |
+
</div>
|
app/design/adminhtml/default/default/template/pure360/common/jsinit.phtml
CHANGED
@@ -1,16 +1,16 @@
|
|
1 |
-
<?php
|
2 |
-
$scope = Mage::helper('pure360_common')->getScope();
|
3 |
-
$scopeId = Mage::helper('pure360_common')->getScopeId();
|
4 |
-
?>
|
5 |
-
<script type="text/javascript">
|
6 |
-
|
7 |
-
//<![CDATA[
|
8 |
-
function initPure360()
|
9 |
-
{
|
10 |
-
pure360 = new Pure360(
|
11 |
-
'<?php echo $scope; ?>',
|
12 |
-
'<?php echo $this->getUrl('pure360_common/ajax/validate'); ?>');
|
13 |
-
}
|
14 |
-
//]]>
|
15 |
-
</script>
|
16 |
-
|
1 |
+
<?php
|
2 |
+
$scope = Mage::helper('pure360_common')->getScope();
|
3 |
+
$scopeId = Mage::helper('pure360_common')->getScopeId();
|
4 |
+
?>
|
5 |
+
<script type="text/javascript">
|
6 |
+
|
7 |
+
//<![CDATA[
|
8 |
+
function initPure360()
|
9 |
+
{
|
10 |
+
pure360 = new Pure360(
|
11 |
+
'<?php echo $scope; ?>',
|
12 |
+
'<?php echo $this->getUrl('pure360_common/ajax/validate'); ?>');
|
13 |
+
}
|
14 |
+
//]]>
|
15 |
+
</script>
|
16 |
+
|
app/design/adminhtml/default/default/template/pure360/email/transactional.phtml
CHANGED
@@ -1,70 +1,70 @@
|
|
1 |
-
<?php if ($this->transactionalProfileEnabled) : ?>
|
2 |
-
|
3 |
-
<?php
|
4 |
-
$transactionals = $this->getTransactionals();
|
5 |
-
|
6 |
-
if($transactionals && false) : ?>
|
7 |
-
|
8 |
-
<div id="pure360_email_transactional_container">
|
9 |
-
<div id="pure360_email_transactional_options" class="entry-edit">
|
10 |
-
<div class="entry-edit-head">
|
11 |
-
<h4 class="icon-head head-edit-form fieldset-legend"><?php echo Mage::helper('pure360_email')->__('Transactional Email Mapping') ?></h4>
|
12 |
-
</div>
|
13 |
-
<fieldset name="pure360_email_transactional">
|
14 |
-
<legend><?php echo Mage::helper('pure360_email')->__('Transactional Email Mapping') ?></legend>
|
15 |
-
<table id="mapping_table" class="form-list" cellspacing="0">
|
16 |
-
<colgroup class="label"></colgroup>
|
17 |
-
<colgroup class="value"></colgroup>
|
18 |
-
<colgroup class="scope-label"></colgroup>
|
19 |
-
<colgroup class=""></colgroup>
|
20 |
-
<tbody>
|
21 |
-
|
22 |
-
<?php if (!$transactionals->getSize()) : ?>
|
23 |
-
|
24 |
-
<tr class="addMappingRow">
|
25 |
-
<td class="label"><label></label></td>
|
26 |
-
<td class="value">
|
27 |
-
<select name="pure360_email_template_ids[]" class="select">
|
28 |
-
<?php echo $this->getTemplates(); ?>
|
29 |
-
</select>
|
30 |
-
</td>
|
31 |
-
<td class="value">
|
32 |
-
<select name="pure360_email_message_ids[]" class="select">
|
33 |
-
<?php echo $this->getMessages(); ?>
|
34 |
-
</select>
|
35 |
-
</td>
|
36 |
-
</tr>
|
37 |
-
|
38 |
-
<?php else : ?>
|
39 |
-
|
40 |
-
<?php foreach ($transactionals as $transactional) : ?>
|
41 |
-
|
42 |
-
<tr class="addMappingRow">
|
43 |
-
<td class="label"><label></label></td>
|
44 |
-
<td class="value">
|
45 |
-
<select name="pure360_email_template_ids[]" class="select">
|
46 |
-
<?php echo $this->getTemplates($transactional->getTemplateId()); ?>
|
47 |
-
</select>
|
48 |
-
</td>
|
49 |
-
<td class="value">
|
50 |
-
<select name="pure360_email_message_ids[]" class="select">
|
51 |
-
<?php echo $this->getMessages($transactional->getMessageId()); ?>
|
52 |
-
</select>
|
53 |
-
</td>
|
54 |
-
</tr>
|
55 |
-
|
56 |
-
<?php endforeach; ?>
|
57 |
-
|
58 |
-
<?php endif; ?>
|
59 |
-
|
60 |
-
<tr class="addButtonRow">
|
61 |
-
<td colspan="3"><button onclick="pure360Email.addMapping()" class="scalable save right" style="margin: 10px; margin-right: 25px;" type="button" >Add new</button></td>
|
62 |
-
</tr>
|
63 |
-
</tbody>
|
64 |
-
</table>
|
65 |
-
</fieldset>
|
66 |
-
</div>
|
67 |
-
</div>
|
68 |
-
<?php endif; ?>
|
69 |
-
|
70 |
<?php endif; ?>
|
1 |
+
<?php if ($this->transactionalProfileEnabled) : ?>
|
2 |
+
|
3 |
+
<?php
|
4 |
+
$transactionals = $this->getTransactionals();
|
5 |
+
|
6 |
+
if($transactionals && false) : ?>
|
7 |
+
|
8 |
+
<div id="pure360_email_transactional_container">
|
9 |
+
<div id="pure360_email_transactional_options" class="entry-edit">
|
10 |
+
<div class="entry-edit-head">
|
11 |
+
<h4 class="icon-head head-edit-form fieldset-legend"><?php echo Mage::helper('pure360_email')->__('Transactional Email Mapping') ?></h4>
|
12 |
+
</div>
|
13 |
+
<fieldset name="pure360_email_transactional">
|
14 |
+
<legend><?php echo Mage::helper('pure360_email')->__('Transactional Email Mapping') ?></legend>
|
15 |
+
<table id="mapping_table" class="form-list" cellspacing="0">
|
16 |
+
<colgroup class="label"></colgroup>
|
17 |
+
<colgroup class="value"></colgroup>
|
18 |
+
<colgroup class="scope-label"></colgroup>
|
19 |
+
<colgroup class=""></colgroup>
|
20 |
+
<tbody>
|
21 |
+
|
22 |
+
<?php if (!$transactionals->getSize()) : ?>
|
23 |
+
|
24 |
+
<tr class="addMappingRow">
|
25 |
+
<td class="label"><label></label></td>
|
26 |
+
<td class="value">
|
27 |
+
<select name="pure360_email_template_ids[]" class="select">
|
28 |
+
<?php echo $this->getTemplates(); ?>
|
29 |
+
</select>
|
30 |
+
</td>
|
31 |
+
<td class="value">
|
32 |
+
<select name="pure360_email_message_ids[]" class="select">
|
33 |
+
<?php echo $this->getMessages(); ?>
|
34 |
+
</select>
|
35 |
+
</td>
|
36 |
+
</tr>
|
37 |
+
|
38 |
+
<?php else : ?>
|
39 |
+
|
40 |
+
<?php foreach ($transactionals as $transactional) : ?>
|
41 |
+
|
42 |
+
<tr class="addMappingRow">
|
43 |
+
<td class="label"><label></label></td>
|
44 |
+
<td class="value">
|
45 |
+
<select name="pure360_email_template_ids[]" class="select">
|
46 |
+
<?php echo $this->getTemplates($transactional->getTemplateId()); ?>
|
47 |
+
</select>
|
48 |
+
</td>
|
49 |
+
<td class="value">
|
50 |
+
<select name="pure360_email_message_ids[]" class="select">
|
51 |
+
<?php echo $this->getMessages($transactional->getMessageId()); ?>
|
52 |
+
</select>
|
53 |
+
</td>
|
54 |
+
</tr>
|
55 |
+
|
56 |
+
<?php endforeach; ?>
|
57 |
+
|
58 |
+
<?php endif; ?>
|
59 |
+
|
60 |
+
<tr class="addButtonRow">
|
61 |
+
<td colspan="3"><button onclick="pure360Email.addMapping()" class="scalable save right" style="margin: 10px; margin-right: 25px;" type="button" >Add new</button></td>
|
62 |
+
</tr>
|
63 |
+
</tbody>
|
64 |
+
</table>
|
65 |
+
</fieldset>
|
66 |
+
</div>
|
67 |
+
</div>
|
68 |
+
<?php endif; ?>
|
69 |
+
|
70 |
<?php endif; ?>
|
app/design/frontend/base/default/layout/pure360/cart.xml
CHANGED
@@ -1,10 +1,10 @@
|
|
1 |
-
<?xml version="1.0"?>
|
2 |
-
<layout>
|
3 |
-
<pure360_cart_email_order_items>
|
4 |
-
<block type="pure360_cart/email_order_items" name="items" template="pure360/cart/email/order/items.phtml">
|
5 |
-
<action method="addItemRender"><type>default</type><block>pure360_cart/email_order_items_order_default</block><template>pure360/cart/email/order/items/order/default.phtml</template></action>
|
6 |
-
<action method="addItemRender"><type>grouped</type><block>pure360_cart/email_order_items_order_grouped</block><template>pure360/cart/email/order/items/order/default.phtml</template></action>
|
7 |
-
</block>
|
8 |
-
<block type="core/text_list" name="additional.product.info" />
|
9 |
-
</pure360_cart_email_order_items>
|
10 |
-
</layout>
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<layout>
|
3 |
+
<pure360_cart_email_order_items>
|
4 |
+
<block type="pure360_cart/email_order_items" name="items" template="pure360/cart/email/order/items.phtml">
|
5 |
+
<action method="addItemRender"><type>default</type><block>pure360_cart/email_order_items_order_default</block><template>pure360/cart/email/order/items/order/default.phtml</template></action>
|
6 |
+
<action method="addItemRender"><type>grouped</type><block>pure360_cart/email_order_items_order_grouped</block><template>pure360/cart/email/order/items/order/default.phtml</template></action>
|
7 |
+
</block>
|
8 |
+
<block type="core/text_list" name="additional.product.info" />
|
9 |
+
</pure360_cart_email_order_items>
|
10 |
+
</layout>
|
app/design/frontend/base/default/layout/pure360/newsletter.xml
CHANGED
@@ -1,12 +1,12 @@
|
|
1 |
-
<?xml version="1.0"?>
|
2 |
-
<layout>
|
3 |
-
<checkout_onepage_index>
|
4 |
-
<reference name="content">
|
5 |
-
<block type="pure360_newsletter/checkout_onepage_newsletter" name="checkout.onepage.billing.newsletter.js" after="-">
|
6 |
-
<action method="setTemplate" >
|
7 |
-
<template>pure360/newsletter/jsinit.phtml</template>
|
8 |
-
</action>
|
9 |
-
</block>
|
10 |
-
</reference>
|
11 |
-
</checkout_onepage_index>
|
12 |
</layout>
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<layout>
|
3 |
+
<checkout_onepage_index>
|
4 |
+
<reference name="content">
|
5 |
+
<block type="pure360_newsletter/checkout_onepage_newsletter" name="checkout.onepage.billing.newsletter.js" after="-">
|
6 |
+
<action method="setTemplate" >
|
7 |
+
<template>pure360/newsletter/jsinit.phtml</template>
|
8 |
+
</action>
|
9 |
+
</block>
|
10 |
+
</reference>
|
11 |
+
</checkout_onepage_index>
|
12 |
</layout>
|
app/design/frontend/base/default/template/pure360/cart/email/order/items.phtml
CHANGED
@@ -1,86 +1,86 @@
|
|
1 |
-
<?php $_quote = $this->getQuote() ?>
|
2 |
-
<table cellspacing="0" cellpadding="0" border="0" width="650" style="border:1px solid #EAEAEA;">
|
3 |
-
<thead>
|
4 |
-
<tr>
|
5 |
-
<th align="left" bgcolor="#EAEAEA" style="font-size:13px; padding:3px 9px"><?php echo $this->__('Item') ?></th>
|
6 |
-
<th align="left" bgcolor="#EAEAEA" style="font-size:13px; padding:3px 9px"><?php echo $this->__('Sku') ?></th>
|
7 |
-
<th align="center" bgcolor="#EAEAEA" style="font-size:13px; padding:3px 9px"><?php echo $this->__('Qty') ?></th>
|
8 |
-
<th align="right" bgcolor="#EAEAEA" style="font-size:13px; padding:3px 9px"><?php echo $this->__('Subtotal') ?></th>
|
9 |
-
</tr>
|
10 |
-
</thead>
|
11 |
-
<?php if(is_object($_quote)) : ?>
|
12 |
-
<?php $i = 0;
|
13 |
-
foreach($_quote->getAllItems() as $_item): ?>
|
14 |
-
<?php if($_item->getParentItemId()) continue;
|
15 |
-
else $i++; ?>
|
16 |
-
<?php
|
17 |
-
if($_item->getProductType() == 'configurable' || $_item->getProductType() == 'bundle') :
|
18 |
-
$finalResult = array();
|
19 |
-
$result = array();
|
20 |
-
$options = $_item->getProduct()->getTypeInstance(true)->getOrderOptions($_item->getProduct());
|
21 |
-
// Check for options
|
22 |
-
if($options)
|
23 |
-
{
|
24 |
-
if(isset($options['options']))
|
25 |
-
{
|
26 |
-
$result = array_merge($result, $options['options']);
|
27 |
-
}
|
28 |
-
if(isset($options['additional_options']))
|
29 |
-
{
|
30 |
-
$result = array_merge($result, $options['additional_options']);
|
31 |
-
}
|
32 |
-
if(!empty($options['attributes_info']))
|
33 |
-
{
|
34 |
-
$result = array_merge($options['attributes_info'], $result);
|
35 |
-
}
|
36 |
-
if(isset($options['bundle_options']))
|
37 |
-
{
|
38 |
-
|
39 |
-
|
40 |
-
$bundled_product = new Mage_Catalog_Model_Product();
|
41 |
-
$bundled_product->load($_item->getProduct()->getId());
|
42 |
-
$selectionCollection = $bundled_product->getTypeInstance(true)->getSelectionsCollection(
|
43 |
-
$bundled_product->getTypeInstance(true)->getOptionsIds($bundled_product), $bundled_product
|
44 |
-
);
|
45 |
-
|
46 |
-
$bundled_items = array();
|
47 |
-
$label = '';
|
48 |
-
$qty = '';
|
49 |
-
foreach($selectionCollection as $option)
|
50 |
-
{
|
51 |
-
foreach($options['bundle_options'] as $bundle)
|
52 |
-
{
|
53 |
-
if($bundle['value'][0]['title'] == $option->getName())
|
54 |
-
{
|
55 |
-
$label = $bundle['label'];
|
56 |
-
$qty = $bundle['value'][0]['qty'];
|
57 |
-
$aux_options[] = array('label' => $label, 'value' => $qty . ' x ' . $option->getName() . ' ' . Mage::helper('checkout')->formatPrice($option->getPrice()), 'sku' => $option->getSku());
|
58 |
-
}
|
59 |
-
}
|
60 |
-
}
|
61 |
-
|
62 |
-
$result = array_merge($result, $aux_options);
|
63 |
-
}
|
64 |
-
}
|
65 |
-
$options = array_merge($finalResult, $result);
|
66 |
-
endif;
|
67 |
-
?>
|
68 |
-
<tbody<?php echo $i % 2 ? ' bgcolor="#F6F6F6"' : '' ?>>
|
69 |
-
<tr>
|
70 |
-
<?php echo '<td valign="top" align="left" style="padding:3px 9px">' . $_item['name'] . '</td>'; ?>
|
71 |
-
<?php echo '<td valign="top" align="left" style="padding:3px 9px">' . $_item['sku'] . '</td>'; ?>
|
72 |
-
<?php echo '<td valign="top" align="center" style="padding:3px 9px">' . $_item['qty'] . '</td>'; ?>
|
73 |
-
<?php echo '<td valign="top" align="right" style="padding:3px 9px">' . $this->getTax($_item) . '</td>'; ?>
|
74 |
-
<?php if(isset($options) && is_array($options)) : foreach($options as $option) : echo '<tr><td valign="top" align="left" style="padding:3px 9px" colspan="4"><strong><em>' . $option['label'] . '</em></strong></td></tr>' . '<tr><td valign="top" align="left" style="padding:3px 19px">' . $option['value'] . '</td>';
|
75 |
-
if(isset($option['sku'])) : echo '<td style="padding:3px 9px">' . $option['sku'] . '</td><td></td><td></td>';
|
76 |
-
else: echo '<td></td><td></td><td></td>';
|
77 |
-
endif;
|
78 |
-
endforeach;
|
79 |
-
$options = null;
|
80 |
-
endif;
|
81 |
-
'</tr>' ?>
|
82 |
-
</tr>
|
83 |
-
</tbody>
|
84 |
-
<?php endforeach; ?>
|
85 |
-
<?php endif; ?>
|
86 |
</table>
|
1 |
+
<?php $_quote = $this->getQuote() ?>
|
2 |
+
<table cellspacing="0" cellpadding="0" border="0" width="650" style="border:1px solid #EAEAEA;">
|
3 |
+
<thead>
|
4 |
+
<tr>
|
5 |
+
<th align="left" bgcolor="#EAEAEA" style="font-size:13px; padding:3px 9px"><?php echo $this->__('Item') ?></th>
|
6 |
+
<th align="left" bgcolor="#EAEAEA" style="font-size:13px; padding:3px 9px"><?php echo $this->__('Sku') ?></th>
|
7 |
+
<th align="center" bgcolor="#EAEAEA" style="font-size:13px; padding:3px 9px"><?php echo $this->__('Qty') ?></th>
|
8 |
+
<th align="right" bgcolor="#EAEAEA" style="font-size:13px; padding:3px 9px"><?php echo $this->__('Subtotal') ?></th>
|
9 |
+
</tr>
|
10 |
+
</thead>
|
11 |
+
<?php if(is_object($_quote)) : ?>
|
12 |
+
<?php $i = 0;
|
13 |
+
foreach($_quote->getAllItems() as $_item): ?>
|
14 |
+
<?php if($_item->getParentItemId()) continue;
|
15 |
+
else $i++; ?>
|
16 |
+
<?php
|
17 |
+
if($_item->getProductType() == 'configurable' || $_item->getProductType() == 'bundle') :
|
18 |
+
$finalResult = array();
|
19 |
+
$result = array();
|
20 |
+
$options = $_item->getProduct()->getTypeInstance(true)->getOrderOptions($_item->getProduct());
|
21 |
+
// Check for options
|
22 |
+
if($options)
|
23 |
+
{
|
24 |
+
if(isset($options['options']))
|
25 |
+
{
|
26 |
+
$result = array_merge($result, $options['options']);
|
27 |
+
}
|
28 |
+
if(isset($options['additional_options']))
|
29 |
+
{
|
30 |
+
$result = array_merge($result, $options['additional_options']);
|
31 |
+
}
|
32 |
+
if(!empty($options['attributes_info']))
|
33 |
+
{
|
34 |
+
$result = array_merge($options['attributes_info'], $result);
|
35 |
+
}
|
36 |
+
if(isset($options['bundle_options']))
|
37 |
+
{
|
38 |
+
|
39 |
+
|
40 |
+
$bundled_product = new Mage_Catalog_Model_Product();
|
41 |
+
$bundled_product->load($_item->getProduct()->getId());
|
42 |
+
$selectionCollection = $bundled_product->getTypeInstance(true)->getSelectionsCollection(
|
43 |
+
$bundled_product->getTypeInstance(true)->getOptionsIds($bundled_product), $bundled_product
|
44 |
+
);
|
45 |
+
|
46 |
+
$bundled_items = array();
|
47 |
+
$label = '';
|
48 |
+
$qty = '';
|
49 |
+
foreach($selectionCollection as $option)
|
50 |
+
{
|
51 |
+
foreach($options['bundle_options'] as $bundle)
|
52 |
+
{
|
53 |
+
if($bundle['value'][0]['title'] == $option->getName())
|
54 |
+
{
|
55 |
+
$label = $bundle['label'];
|
56 |
+
$qty = $bundle['value'][0]['qty'];
|
57 |
+
$aux_options[] = array('label' => $label, 'value' => $qty . ' x ' . $option->getName() . ' ' . Mage::helper('checkout')->formatPrice($option->getPrice()), 'sku' => $option->getSku());
|
58 |
+
}
|
59 |
+
}
|
60 |
+
}
|
61 |
+
|
62 |
+
$result = array_merge($result, $aux_options);
|
63 |
+
}
|
64 |
+
}
|
65 |
+
$options = array_merge($finalResult, $result);
|
66 |
+
endif;
|
67 |
+
?>
|
68 |
+
<tbody<?php echo $i % 2 ? ' bgcolor="#F6F6F6"' : '' ?>>
|
69 |
+
<tr>
|
70 |
+
<?php echo '<td valign="top" align="left" style="padding:3px 9px">' . $_item['name'] . '</td>'; ?>
|
71 |
+
<?php echo '<td valign="top" align="left" style="padding:3px 9px">' . $_item['sku'] . '</td>'; ?>
|
72 |
+
<?php echo '<td valign="top" align="center" style="padding:3px 9px">' . $_item['qty'] . '</td>'; ?>
|
73 |
+
<?php echo '<td valign="top" align="right" style="padding:3px 9px">' . $this->getTax($_item) . '</td>'; ?>
|
74 |
+
<?php if(isset($options) && is_array($options)) : foreach($options as $option) : echo '<tr><td valign="top" align="left" style="padding:3px 9px" colspan="4"><strong><em>' . $option['label'] . '</em></strong></td></tr>' . '<tr><td valign="top" align="left" style="padding:3px 19px">' . $option['value'] . '</td>';
|
75 |
+
if(isset($option['sku'])) : echo '<td style="padding:3px 9px">' . $option['sku'] . '</td><td></td><td></td>';
|
76 |
+
else: echo '<td></td><td></td><td></td>';
|
77 |
+
endif;
|
78 |
+
endforeach;
|
79 |
+
$options = null;
|
80 |
+
endif;
|
81 |
+
'</tr>' ?>
|
82 |
+
</tr>
|
83 |
+
</tbody>
|
84 |
+
<?php endforeach; ?>
|
85 |
+
<?php endif; ?>
|
86 |
</table>
|
app/design/frontend/base/default/template/pure360/cart/email/order/items/order/default.phtml
CHANGED
@@ -1,111 +1,111 @@
|
|
1 |
-
<?php $_item = $this->getItem() ?>
|
2 |
-
<?php $_quote = $this->getItem()->getQuote() ?>
|
3 |
-
<tr>
|
4 |
-
<td align="left" valign="top" style="font-size:11px; padding:3px 9px; border-bottom:1px dotted #CCCCCC;">
|
5 |
-
<strong style="font-size:11px;"><?php echo $this->htmlEscape($_item->getName()) ?></strong>
|
6 |
-
<?php if($this->getItemOptions()): ?>
|
7 |
-
<dl style="margin:0; padding:0;">
|
8 |
-
<?php foreach($this->getItemOptions() as $option): ?>
|
9 |
-
<dt><strong><em><?php echo $option['label'] ?></em></strong></dt>
|
10 |
-
<dd style="margin:0; padding:0 0 0 9px;">
|
11 |
-
<?php echo nl2br($this->escapeHtml($option['value'])) ?>
|
12 |
-
</dd>
|
13 |
-
<?php endforeach; ?>
|
14 |
-
</dl>
|
15 |
-
<?php endif; ?>
|
16 |
-
<?php $addInfoBlock = $this->getProductAdditionalInformationBlock(); ?>
|
17 |
-
<?php if($addInfoBlock) : ?>
|
18 |
-
<?php echo $addInfoBlock->setItem($_item)->toHtml(); ?>
|
19 |
-
<?php endif; ?>
|
20 |
-
<?php echo $this->escapeHtml($_item->getDescription()) ?>
|
21 |
-
</td>
|
22 |
-
<td align="left" valign="top" style="font-size:11px; padding:3px 9px; border-bottom:1px dotted #CCCCCC;"><?php echo $this->htmlEscape($this->getSku($_item)) ?></td>
|
23 |
-
<td align="center" valign="top" style="font-size:11px; padding:3px 9px; border-bottom:1px dotted #CCCCCC;"><?php echo $_item->getQtyOrdered() * 1 ?></td>
|
24 |
-
<td align="right" valign="top" style="font-size:11px; padding:3px 9px; border-bottom:1px dotted #CCCCCC;">
|
25 |
-
<?php if($this->helper('tax')->displaySalesPriceExclTax($_quote->getStoreId()) || $this->helper('tax')->displaySalesBothPrices($_quote->getStore())): ?>
|
26 |
-
<?php if($this->helper('tax')->displaySalesBothPrices($_quote->getStoreId())): ?>
|
27 |
-
<span class="label"><?php echo Mage::helper('tax')->__('Excl. Tax'); ?>:</span>
|
28 |
-
<?php endif; ?>
|
29 |
-
<?php if(Mage::helper('weee')->typeOfDisplay($_item, array(0, 1, 4), 'email', $_quote->getStore())): ?>
|
30 |
-
<?php echo Mage::app()->getLocale()->currency($_quote->getQuoteCurrencyCode())->toCurrency($_item->getRowTotal() + $_item->getWeeeTaxAppliedRowAmount() + $_item->getWeeeTaxRowDisposition()); ?>
|
31 |
-
<?php //echo $_quote->formatPrice($_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition()); ?>
|
32 |
-
<?php else: ?>
|
33 |
-
<?php echo Mage::app()->getLocale()->currency($_quote->getQuoteCurrencyCode())->toCurrency($_item->getRowTotal()) ?>
|
34 |
-
<?php endif; ?>
|
35 |
-
|
36 |
-
|
37 |
-
<?php if(Mage::helper('weee')->getApplied($_item)): ?>
|
38 |
-
<br />
|
39 |
-
<?php if(Mage::helper('weee')->typeOfDisplay($_item, 1, 'email', $_quote->getStore())): ?>
|
40 |
-
<small>
|
41 |
-
<?php foreach(Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
42 |
-
<span class="nobr"><?php echo $tax['title']; ?>: <?php echo Mage::app()->getLocale()->currency($_quote->getQuoteCurrencyCode())->toCurrency($tax['row_amount'], true, true); ?></span><br />
|
43 |
-
<?php endforeach; ?>
|
44 |
-
</small>
|
45 |
-
<?php elseif(Mage::helper('weee')->typeOfDisplay($_item, 2, 'email', $_quote->getStoreId())): ?>
|
46 |
-
<?php foreach(Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
47 |
-
<span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo Mage::app()->getLocale()->currency($_quote->getQuoteCurrencyCode())->toCurrency($tax['row_amount_incl_tax'], true, true); ?></small></span><br />
|
48 |
-
<?php endforeach; ?>
|
49 |
-
<?php elseif(Mage::helper('weee')->typeOfDisplay($_item, 4, 'email', $_quote->getStoreId())): ?>
|
50 |
-
<small>
|
51 |
-
<?php foreach(Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
52 |
-
<span class="nobr"><?php echo $tax['title']; ?>: <?php echo Mage::app()->getLocale()->currency($_quote->getQuoteCurrencyCode())->toCurrency($tax['row_amount_incl_tax'], true, true); ?></span><br />
|
53 |
-
<?php endforeach; ?>
|
54 |
-
</small>
|
55 |
-
<?php endif; ?>
|
56 |
-
|
57 |
-
<?php if(Mage::helper('weee')->typeOfDisplay($_item, 2, 'email', $_quote->getStore())): ?>
|
58 |
-
<br />
|
59 |
-
<span class="nobr"><?php echo Mage::helper('weee')->__('Total'); ?>:<br /> <?php echo Mage::app()->getLocale()->currency($_quote->getQuoteCurrencyCode())->toCurrency($_item->getCalculationPrice() + $_item->getWeeeTaxAppliedRowAmount() + $_item->getWeeeTaxRowDisposition()); ?></span>
|
60 |
-
<?php endif; ?>
|
61 |
-
<?php endif; ?>
|
62 |
-
<?php endif; ?>
|
63 |
-
|
64 |
-
|
65 |
-
<?php if($this->helper('tax')->displaySalesPriceInclTax($_quote->getStoreId()) || $this->helper('tax')->displaySalesBothPrices($_quote->getStoreId())): ?>
|
66 |
-
<?php if($this->helper('tax')->displaySalesBothPrices($_quote->getStoreId())): ?>
|
67 |
-
<br /><span class="label"><?php echo Mage::helper('tax')->__('Incl. Tax'); ?>:</span>
|
68 |
-
<?php endif; ?>
|
69 |
-
<?php $_incl = $this->helper('checkout')->getSubtotalInclTax($_item); ?>
|
70 |
-
<?php if(Mage::helper('weee')->typeOfDisplay($_item, array(0, 1, 4), 'email', $_quote->getStoreId())): ?>
|
71 |
-
<?php echo Mage::app()->getLocale()->currency($_quote->getQuoteCurrencyCode())->toCurrency($_incl + $_item->getWeeeTaxAppliedRowAmount()); ?>
|
72 |
-
<?php else: ?>
|
73 |
-
<?php echo Mage::app()->getLocale()->currency($_quote->getQuoteCurrencyCode())->toCurrency($_incl - $_item->getWeeeTaxRowDisposition()) ?>
|
74 |
-
<?php endif; ?>
|
75 |
-
<?php if(Mage::helper('weee')->getApplied($_item)): ?>
|
76 |
-
<br />
|
77 |
-
<?php if(Mage::helper('weee')->typeOfDisplay($_item, 1, 'email', $_quote->getStore())): ?>
|
78 |
-
<small>
|
79 |
-
<?php foreach(Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
80 |
-
<span class="nobr"><?php echo $tax['title']; ?>: <?php echo Mage::app()->getLocale()->currency($_quote->getQuoteCurrencyCode())->toCurrency($tax['row_amount'], true, true); ?></span><br />
|
81 |
-
<?php endforeach; ?>
|
82 |
-
</small>
|
83 |
-
<?php elseif(Mage::helper('weee')->typeOfDisplay($_item, 2, 'email', $_quote->getStoreId())): ?>
|
84 |
-
<?php foreach(Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
85 |
-
<span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo Mage::app()->getLocale()->currency($_quote->getQuoteCurrencyCode())->toCurrency($tax['row_amount_incl_tax'], true, true); ?></small></span><br />
|
86 |
-
<?php endforeach; ?>
|
87 |
-
<?php elseif(Mage::helper('weee')->typeOfDisplay($_item, 4, 'email', $_quote->getStoreId())): ?>
|
88 |
-
<small>
|
89 |
-
<?php foreach(Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
90 |
-
<span class="nobr"><?php echo $tax['title']; ?>: <?php echo Mage::app()->getLocale()->currency($_quote->getQuoteCurrencyCode())->toCurrency($tax['row_amount_incl_tax'], true, true); ?></span><br />
|
91 |
-
<?php endforeach; ?>
|
92 |
-
</small>
|
93 |
-
<?php endif; ?>
|
94 |
-
|
95 |
-
<?php if(Mage::helper('weee')->typeOfDisplay($_item, 2, 'email', $_quote->getStoreId())): ?>
|
96 |
-
<span class="nobr"><?php echo Mage::helper('weee')->__('Total incl. tax'); ?>:<br /> <?php echo Mage::app()->getLocale()->currency($_quote->getQuoteCurrencyCode())->toCurrency($_incl + $_item->getWeeeTaxAppliedRowAmount()); ?></span>
|
97 |
-
<?php endif; ?>
|
98 |
-
<?php endif; ?>
|
99 |
-
<?php endif; ?>
|
100 |
-
</td>
|
101 |
-
</tr>
|
102 |
-
<?php if($_item->getGiftMessageId() && $_giftMessage = $this->helper('giftmessage/message')->getGiftMessage($_item->getGiftMessageId())): ?>
|
103 |
-
<tr>
|
104 |
-
<td colspan="4" style=" border-bottom:2px solid #CCCCCC; padding:3px 9px;">
|
105 |
-
<strong style="color:#444444; font-size:11px;"><?php echo $this->__('Gift Message') ?></strong>
|
106 |
-
<?php echo $this->__('From:'); ?> <?php echo $this->htmlEscape($_giftMessage->getSender()) ?><br />
|
107 |
-
<?php echo $this->__('To:'); ?> <?php echo $this->htmlEscape($_giftMessage->getRecipient()) ?><br />
|
108 |
-
<strong><?php echo $this->__('Message:'); ?></strong><br /><?php echo $this->htmlEscape($_giftMessage->getMessage()) ?>
|
109 |
-
</td>
|
110 |
-
</tr>
|
111 |
-
<?php endif; ?>
|
1 |
+
<?php $_item = $this->getItem() ?>
|
2 |
+
<?php $_quote = $this->getItem()->getQuote() ?>
|
3 |
+
<tr>
|
4 |
+
<td align="left" valign="top" style="font-size:11px; padding:3px 9px; border-bottom:1px dotted #CCCCCC;">
|
5 |
+
<strong style="font-size:11px;"><?php echo $this->htmlEscape($_item->getName()) ?></strong>
|
6 |
+
<?php if($this->getItemOptions()): ?>
|
7 |
+
<dl style="margin:0; padding:0;">
|
8 |
+
<?php foreach($this->getItemOptions() as $option): ?>
|
9 |
+
<dt><strong><em><?php echo $option['label'] ?></em></strong></dt>
|
10 |
+
<dd style="margin:0; padding:0 0 0 9px;">
|
11 |
+
<?php echo nl2br($this->escapeHtml($option['value'])) ?>
|
12 |
+
</dd>
|
13 |
+
<?php endforeach; ?>
|
14 |
+
</dl>
|
15 |
+
<?php endif; ?>
|
16 |
+
<?php $addInfoBlock = $this->getProductAdditionalInformationBlock(); ?>
|
17 |
+
<?php if($addInfoBlock) : ?>
|
18 |
+
<?php echo $addInfoBlock->setItem($_item)->toHtml(); ?>
|
19 |
+
<?php endif; ?>
|
20 |
+
<?php echo $this->escapeHtml($_item->getDescription()) ?>
|
21 |
+
</td>
|
22 |
+
<td align="left" valign="top" style="font-size:11px; padding:3px 9px; border-bottom:1px dotted #CCCCCC;"><?php echo $this->htmlEscape($this->getSku($_item)) ?></td>
|
23 |
+
<td align="center" valign="top" style="font-size:11px; padding:3px 9px; border-bottom:1px dotted #CCCCCC;"><?php echo $_item->getQtyOrdered() * 1 ?></td>
|
24 |
+
<td align="right" valign="top" style="font-size:11px; padding:3px 9px; border-bottom:1px dotted #CCCCCC;">
|
25 |
+
<?php if($this->helper('tax')->displaySalesPriceExclTax($_quote->getStoreId()) || $this->helper('tax')->displaySalesBothPrices($_quote->getStore())): ?>
|
26 |
+
<?php if($this->helper('tax')->displaySalesBothPrices($_quote->getStoreId())): ?>
|
27 |
+
<span class="label"><?php echo Mage::helper('tax')->__('Excl. Tax'); ?>:</span>
|
28 |
+
<?php endif; ?>
|
29 |
+
<?php if(Mage::helper('weee')->typeOfDisplay($_item, array(0, 1, 4), 'email', $_quote->getStore())): ?>
|
30 |
+
<?php echo Mage::app()->getLocale()->currency($_quote->getQuoteCurrencyCode())->toCurrency($_item->getRowTotal() + $_item->getWeeeTaxAppliedRowAmount() + $_item->getWeeeTaxRowDisposition()); ?>
|
31 |
+
<?php //echo $_quote->formatPrice($_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition()); ?>
|
32 |
+
<?php else: ?>
|
33 |
+
<?php echo Mage::app()->getLocale()->currency($_quote->getQuoteCurrencyCode())->toCurrency($_item->getRowTotal()) ?>
|
34 |
+
<?php endif; ?>
|
35 |
+
|
36 |
+
|
37 |
+
<?php if(Mage::helper('weee')->getApplied($_item)): ?>
|
38 |
+
<br />
|
39 |
+
<?php if(Mage::helper('weee')->typeOfDisplay($_item, 1, 'email', $_quote->getStore())): ?>
|
40 |
+
<small>
|
41 |
+
<?php foreach(Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
42 |
+
<span class="nobr"><?php echo $tax['title']; ?>: <?php echo Mage::app()->getLocale()->currency($_quote->getQuoteCurrencyCode())->toCurrency($tax['row_amount'], true, true); ?></span><br />
|
43 |
+
<?php endforeach; ?>
|
44 |
+
</small>
|
45 |
+
<?php elseif(Mage::helper('weee')->typeOfDisplay($_item, 2, 'email', $_quote->getStoreId())): ?>
|
46 |
+
<?php foreach(Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
47 |
+
<span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo Mage::app()->getLocale()->currency($_quote->getQuoteCurrencyCode())->toCurrency($tax['row_amount_incl_tax'], true, true); ?></small></span><br />
|
48 |
+
<?php endforeach; ?>
|
49 |
+
<?php elseif(Mage::helper('weee')->typeOfDisplay($_item, 4, 'email', $_quote->getStoreId())): ?>
|
50 |
+
<small>
|
51 |
+
<?php foreach(Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
52 |
+
<span class="nobr"><?php echo $tax['title']; ?>: <?php echo Mage::app()->getLocale()->currency($_quote->getQuoteCurrencyCode())->toCurrency($tax['row_amount_incl_tax'], true, true); ?></span><br />
|
53 |
+
<?php endforeach; ?>
|
54 |
+
</small>
|
55 |
+
<?php endif; ?>
|
56 |
+
|
57 |
+
<?php if(Mage::helper('weee')->typeOfDisplay($_item, 2, 'email', $_quote->getStore())): ?>
|
58 |
+
<br />
|
59 |
+
<span class="nobr"><?php echo Mage::helper('weee')->__('Total'); ?>:<br /> <?php echo Mage::app()->getLocale()->currency($_quote->getQuoteCurrencyCode())->toCurrency($_item->getCalculationPrice() + $_item->getWeeeTaxAppliedRowAmount() + $_item->getWeeeTaxRowDisposition()); ?></span>
|
60 |
+
<?php endif; ?>
|
61 |
+
<?php endif; ?>
|
62 |
+
<?php endif; ?>
|
63 |
+
|
64 |
+
|
65 |
+
<?php if($this->helper('tax')->displaySalesPriceInclTax($_quote->getStoreId()) || $this->helper('tax')->displaySalesBothPrices($_quote->getStoreId())): ?>
|
66 |
+
<?php if($this->helper('tax')->displaySalesBothPrices($_quote->getStoreId())): ?>
|
67 |
+
<br /><span class="label"><?php echo Mage::helper('tax')->__('Incl. Tax'); ?>:</span>
|
68 |
+
<?php endif; ?>
|
69 |
+
<?php $_incl = $this->helper('checkout')->getSubtotalInclTax($_item); ?>
|
70 |
+
<?php if(Mage::helper('weee')->typeOfDisplay($_item, array(0, 1, 4), 'email', $_quote->getStoreId())): ?>
|
71 |
+
<?php echo Mage::app()->getLocale()->currency($_quote->getQuoteCurrencyCode())->toCurrency($_incl + $_item->getWeeeTaxAppliedRowAmount()); ?>
|
72 |
+
<?php else: ?>
|
73 |
+
<?php echo Mage::app()->getLocale()->currency($_quote->getQuoteCurrencyCode())->toCurrency($_incl - $_item->getWeeeTaxRowDisposition()) ?>
|
74 |
+
<?php endif; ?>
|
75 |
+
<?php if(Mage::helper('weee')->getApplied($_item)): ?>
|
76 |
+
<br />
|
77 |
+
<?php if(Mage::helper('weee')->typeOfDisplay($_item, 1, 'email', $_quote->getStore())): ?>
|
78 |
+
<small>
|
79 |
+
<?php foreach(Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
80 |
+
<span class="nobr"><?php echo $tax['title']; ?>: <?php echo Mage::app()->getLocale()->currency($_quote->getQuoteCurrencyCode())->toCurrency($tax['row_amount'], true, true); ?></span><br />
|
81 |
+
<?php endforeach; ?>
|
82 |
+
</small>
|
83 |
+
<?php elseif(Mage::helper('weee')->typeOfDisplay($_item, 2, 'email', $_quote->getStoreId())): ?>
|
84 |
+
<?php foreach(Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
85 |
+
<span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo Mage::app()->getLocale()->currency($_quote->getQuoteCurrencyCode())->toCurrency($tax['row_amount_incl_tax'], true, true); ?></small></span><br />
|
86 |
+
<?php endforeach; ?>
|
87 |
+
<?php elseif(Mage::helper('weee')->typeOfDisplay($_item, 4, 'email', $_quote->getStoreId())): ?>
|
88 |
+
<small>
|
89 |
+
<?php foreach(Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
90 |
+
<span class="nobr"><?php echo $tax['title']; ?>: <?php echo Mage::app()->getLocale()->currency($_quote->getQuoteCurrencyCode())->toCurrency($tax['row_amount_incl_tax'], true, true); ?></span><br />
|
91 |
+
<?php endforeach; ?>
|
92 |
+
</small>
|
93 |
+
<?php endif; ?>
|
94 |
+
|
95 |
+
<?php if(Mage::helper('weee')->typeOfDisplay($_item, 2, 'email', $_quote->getStoreId())): ?>
|
96 |
+
<span class="nobr"><?php echo Mage::helper('weee')->__('Total incl. tax'); ?>:<br /> <?php echo Mage::app()->getLocale()->currency($_quote->getQuoteCurrencyCode())->toCurrency($_incl + $_item->getWeeeTaxAppliedRowAmount()); ?></span>
|
97 |
+
<?php endif; ?>
|
98 |
+
<?php endif; ?>
|
99 |
+
<?php endif; ?>
|
100 |
+
</td>
|
101 |
+
</tr>
|
102 |
+
<?php if($_item->getGiftMessageId() && $_giftMessage = $this->helper('giftmessage/message')->getGiftMessage($_item->getGiftMessageId())): ?>
|
103 |
+
<tr>
|
104 |
+
<td colspan="4" style=" border-bottom:2px solid #CCCCCC; padding:3px 9px;">
|
105 |
+
<strong style="color:#444444; font-size:11px;"><?php echo $this->__('Gift Message') ?></strong>
|
106 |
+
<?php echo $this->__('From:'); ?> <?php echo $this->htmlEscape($_giftMessage->getSender()) ?><br />
|
107 |
+
<?php echo $this->__('To:'); ?> <?php echo $this->htmlEscape($_giftMessage->getRecipient()) ?><br />
|
108 |
+
<strong><?php echo $this->__('Message:'); ?></strong><br /><?php echo $this->htmlEscape($_giftMessage->getMessage()) ?>
|
109 |
+
</td>
|
110 |
+
</tr>
|
111 |
+
<?php endif; ?>
|
app/etc/modules/Pure360_Cart.xml
CHANGED
@@ -1,12 +1,12 @@
|
|
1 |
-
<?xml version="1.0"?>
|
2 |
-
<config>
|
3 |
-
<modules>
|
4 |
-
<Pure360_Cart>
|
5 |
-
<active>true</active>
|
6 |
-
<codePool>community</codePool>
|
7 |
-
<depends>
|
8 |
-
<Pure360_Common/>
|
9 |
-
</depends>
|
10 |
-
</Pure360_Cart>
|
11 |
-
</modules>
|
12 |
</config>
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<config>
|
3 |
+
<modules>
|
4 |
+
<Pure360_Cart>
|
5 |
+
<active>true</active>
|
6 |
+
<codePool>community</codePool>
|
7 |
+
<depends>
|
8 |
+
<Pure360_Common/>
|
9 |
+
</depends>
|
10 |
+
</Pure360_Cart>
|
11 |
+
</modules>
|
12 |
</config>
|
app/locale/en_US/template/email/pure360/abandoned_cart.html
CHANGED
@@ -1,38 +1,38 @@
|
|
1 |
-
<!--@subject {{var store.getFrontendName()}}: Cart Reminder @-->
|
2 |
-
<!--@styles
|
3 |
-
body,td { color:#2f2f2f; font:11px/1.35em Verdana, Arial, Helvetica, sans-serif; }
|
4 |
-
@-->
|
5 |
-
<body style="background:#F6F6F6; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; margin:0; padding:0;">
|
6 |
-
<div style="background:#F6F6F6; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; margin:0; padding:0;">
|
7 |
-
<table cellspacing="0" cellpadding="0" border="0" width="100%">
|
8 |
-
<tr>
|
9 |
-
<td align="center" valign="top" style="padding:20px 0 20px 0">
|
10 |
-
<table bgcolor="#FFFFFF" cellspacing="0" cellpadding="10" border="0" width="650" style="border:1px solid #E0E0E0;">
|
11 |
-
<tr>
|
12 |
-
<td valign="top"><a href="{{store url=""}}"><img src="{{var logo_url}}" alt="{{var logo_alt}}" style="margin-bottom:10px;" border="0"/></a></td>
|
13 |
-
</tr>
|
14 |
-
<tr>
|
15 |
-
<td valign="top">
|
16 |
-
<h1 style="font-size:22px; font-weight:normal; line-height:22px; margin:0 0 11px 0;">Hello, {{htmlescape var=$quote.getCustomerName()}}</h1>
|
17 |
-
<p style="font-size:12px; line-height:16px; margin:0;">
|
18 |
-
You have an abandoned cart at {{var store.getFrontendName()}}.
|
19 |
-
You can check the status of your cart by <a href="{{store url="customer/account/"}}" style="color:#1E7EC8;">logging into your account</a>.
|
20 |
-
</p>
|
21 |
-
<p style="font-size:12px; line-height:16px; margin:0;">If you have any questions about your cart please contact us at <a href="mailto:{{config path='trans_email/ident_support/email'}}" style="color:#1E7EC8;">{{config path='trans_email/ident_support/email'}}</a> or call us at <span class="nobr">{{config path='general/store_information/phone'}}</span> Monday - Friday, 8am - 5pm PST.</p>
|
22 |
-
</tr>
|
23 |
-
<tr>
|
24 |
-
<td>
|
25 |
-
{{block type='pure360_cart/email_order_items' area='frontend' template='pure360/cart/email/order/items.phtml' quote=$quote}}
|
26 |
-
</td>
|
27 |
-
</tr>
|
28 |
-
<tr>
|
29 |
-
<td bgcolor="#EAEAEA" align="center" style="background:#EAEAEA; text-align:center;">
|
30 |
-
<p style="font-size:12px; margin:0;">Thank you, <strong>{{var store.getFrontendName()}}</strong></p>
|
31 |
-
</td>
|
32 |
-
</tr>
|
33 |
-
</table>
|
34 |
-
</td>
|
35 |
-
</tr>
|
36 |
-
</table>
|
37 |
-
</div>
|
38 |
</body>
|
1 |
+
<!--@subject {{var store.getFrontendName()}}: Cart Reminder @-->
|
2 |
+
<!--@styles
|
3 |
+
body,td { color:#2f2f2f; font:11px/1.35em Verdana, Arial, Helvetica, sans-serif; }
|
4 |
+
@-->
|
5 |
+
<body style="background:#F6F6F6; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; margin:0; padding:0;">
|
6 |
+
<div style="background:#F6F6F6; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; margin:0; padding:0;">
|
7 |
+
<table cellspacing="0" cellpadding="0" border="0" width="100%">
|
8 |
+
<tr>
|
9 |
+
<td align="center" valign="top" style="padding:20px 0 20px 0">
|
10 |
+
<table bgcolor="#FFFFFF" cellspacing="0" cellpadding="10" border="0" width="650" style="border:1px solid #E0E0E0;">
|
11 |
+
<tr>
|
12 |
+
<td valign="top"><a href="{{store url=""}}"><img src="{{var logo_url}}" alt="{{var logo_alt}}" style="margin-bottom:10px;" border="0"/></a></td>
|
13 |
+
</tr>
|
14 |
+
<tr>
|
15 |
+
<td valign="top">
|
16 |
+
<h1 style="font-size:22px; font-weight:normal; line-height:22px; margin:0 0 11px 0;">Hello, {{htmlescape var=$quote.getCustomerName()}}</h1>
|
17 |
+
<p style="font-size:12px; line-height:16px; margin:0;">
|
18 |
+
You have an abandoned cart at {{var store.getFrontendName()}}.
|
19 |
+
You can check the status of your cart by <a href="{{store url="customer/account/"}}" style="color:#1E7EC8;">logging into your account</a>.
|
20 |
+
</p>
|
21 |
+
<p style="font-size:12px; line-height:16px; margin:0;">If you have any questions about your cart please contact us at <a href="mailto:{{config path='trans_email/ident_support/email'}}" style="color:#1E7EC8;">{{config path='trans_email/ident_support/email'}}</a> or call us at <span class="nobr">{{config path='general/store_information/phone'}}</span> Monday - Friday, 8am - 5pm PST.</p>
|
22 |
+
</tr>
|
23 |
+
<tr>
|
24 |
+
<td>
|
25 |
+
{{block type='pure360_cart/email_order_items' area='frontend' template='pure360/cart/email/order/items.phtml' quote=$quote}}
|
26 |
+
</td>
|
27 |
+
</tr>
|
28 |
+
<tr>
|
29 |
+
<td bgcolor="#EAEAEA" align="center" style="background:#EAEAEA; text-align:center;">
|
30 |
+
<p style="font-size:12px; margin:0;">Thank you, <strong>{{var store.getFrontendName()}}</strong></p>
|
31 |
+
</td>
|
32 |
+
</tr>
|
33 |
+
</table>
|
34 |
+
</td>
|
35 |
+
</tr>
|
36 |
+
</table>
|
37 |
+
</div>
|
38 |
</body>
|
app/locale/en_US/template/email/pure360/abandoned_cart_guest.html
CHANGED
@@ -1,38 +1,38 @@
|
|
1 |
-
<!--@subject {{var store.getFrontendName()}}: Cart Reminder @-->
|
2 |
-
<!--@styles
|
3 |
-
body,td { color:#2f2f2f; font:11px/1.35em Verdana, Arial, Helvetica, sans-serif; }
|
4 |
-
@-->
|
5 |
-
<body style="background:#F6F6F6; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; margin:0; padding:0;">
|
6 |
-
<div style="background:#F6F6F6; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; margin:0; padding:0;">
|
7 |
-
<table cellspacing="0" cellpadding="0" border="0" width="100%">
|
8 |
-
<tr>
|
9 |
-
<td align="center" valign="top" style="padding:20px 0 20px 0">
|
10 |
-
<table bgcolor="#FFFFFF" cellspacing="0" cellpadding="10" border="0" width="650" style="border:1px solid #E0E0E0;">
|
11 |
-
<tr>
|
12 |
-
<td valign="top"><a href="{{store url=""}}"><img src="{{var logo_url}}" alt="{{var logo_alt}}" style="margin-bottom:10px;" border="0"/></a></td>
|
13 |
-
</tr>
|
14 |
-
<tr>
|
15 |
-
<td valign="top">
|
16 |
-
<h1 style="font-size:22px; font-weight:normal; line-height:22px; margin:0 0 11px 0;"">Hello, {{htmlescape var=$quote.getCustomerName()}}</h1>
|
17 |
-
<p style="font-size:12px; line-height:16px; margin:0;">
|
18 |
-
You have an abandoned cart at {{var store.getFrontendName()}}.
|
19 |
-
You can check the status of your cart by <a href="{{store url="customer/account/"}}" style="color:#1E7EC8;">logging into your account</a>.
|
20 |
-
</p>
|
21 |
-
<p style="font-size:12px; line-height:16px; margin:0;">If you have any questions about your cart please contact us at <a href="mailto:{{config path='trans_email/ident_support/email'}}" style="color:#1E7EC8;">{{config path='trans_email/ident_support/email'}}</a> or call us at <span class="nobr">{{config path='general/store_information/phone'}}</span> Monday - Friday, 8am - 5pm PST.</p>
|
22 |
-
</tr>
|
23 |
-
<tr>
|
24 |
-
<td>
|
25 |
-
{{block type='pure360_cart/email_order_items' area='frontend' template='pure360/cart/email/order/items.phtml' quote=$quote}}
|
26 |
-
</td>
|
27 |
-
</tr>
|
28 |
-
<tr>
|
29 |
-
<td bgcolor="#EAEAEA" align="center" style="background:#EAEAEA; text-align:center;">
|
30 |
-
<p style="font-size:12px; margin:0;">Thank you, <strong>{{var store.getFrontendName()}}</strong></p>
|
31 |
-
</td>
|
32 |
-
</tr>
|
33 |
-
</table>
|
34 |
-
</td>
|
35 |
-
</tr>
|
36 |
-
</table>
|
37 |
-
</div>
|
38 |
</body>
|
1 |
+
<!--@subject {{var store.getFrontendName()}}: Cart Reminder @-->
|
2 |
+
<!--@styles
|
3 |
+
body,td { color:#2f2f2f; font:11px/1.35em Verdana, Arial, Helvetica, sans-serif; }
|
4 |
+
@-->
|
5 |
+
<body style="background:#F6F6F6; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; margin:0; padding:0;">
|
6 |
+
<div style="background:#F6F6F6; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; margin:0; padding:0;">
|
7 |
+
<table cellspacing="0" cellpadding="0" border="0" width="100%">
|
8 |
+
<tr>
|
9 |
+
<td align="center" valign="top" style="padding:20px 0 20px 0">
|
10 |
+
<table bgcolor="#FFFFFF" cellspacing="0" cellpadding="10" border="0" width="650" style="border:1px solid #E0E0E0;">
|
11 |
+
<tr>
|
12 |
+
<td valign="top"><a href="{{store url=""}}"><img src="{{var logo_url}}" alt="{{var logo_alt}}" style="margin-bottom:10px;" border="0"/></a></td>
|
13 |
+
</tr>
|
14 |
+
<tr>
|
15 |
+
<td valign="top">
|
16 |
+
<h1 style="font-size:22px; font-weight:normal; line-height:22px; margin:0 0 11px 0;"">Hello, {{htmlescape var=$quote.getCustomerName()}}</h1>
|
17 |
+
<p style="font-size:12px; line-height:16px; margin:0;">
|
18 |
+
You have an abandoned cart at {{var store.getFrontendName()}}.
|
19 |
+
You can check the status of your cart by <a href="{{store url="customer/account/"}}" style="color:#1E7EC8;">logging into your account</a>.
|
20 |
+
</p>
|
21 |
+
<p style="font-size:12px; line-height:16px; margin:0;">If you have any questions about your cart please contact us at <a href="mailto:{{config path='trans_email/ident_support/email'}}" style="color:#1E7EC8;">{{config path='trans_email/ident_support/email'}}</a> or call us at <span class="nobr">{{config path='general/store_information/phone'}}</span> Monday - Friday, 8am - 5pm PST.</p>
|
22 |
+
</tr>
|
23 |
+
<tr>
|
24 |
+
<td>
|
25 |
+
{{block type='pure360_cart/email_order_items' area='frontend' template='pure360/cart/email/order/items.phtml' quote=$quote}}
|
26 |
+
</td>
|
27 |
+
</tr>
|
28 |
+
<tr>
|
29 |
+
<td bgcolor="#EAEAEA" align="center" style="background:#EAEAEA; text-align:center;">
|
30 |
+
<p style="font-size:12px; margin:0;">Thank you, <strong>{{var store.getFrontendName()}}</strong></p>
|
31 |
+
</td>
|
32 |
+
</tr>
|
33 |
+
</table>
|
34 |
+
</td>
|
35 |
+
</tr>
|
36 |
+
</table>
|
37 |
+
</div>
|
38 |
</body>
|
js/mage/adminhtml/pure360/common.js
CHANGED
@@ -57,7 +57,11 @@ Pure360.prototype =
|
|
57 |
this.password_marketing.onchange = function(e) { return self.checkValidated('marketing'); };
|
58 |
this.username_transactional.onchange = function(e) { return self.checkValidated('transactional'); };
|
59 |
this.password_transactional.onchange = function(e) { return self.checkValidated('transactional'); };
|
60 |
-
|
|
|
|
|
|
|
|
|
61 |
|
62 |
this.checkEnabled();
|
63 |
this.checkValidated('marketing');
|
57 |
this.password_marketing.onchange = function(e) { return self.checkValidated('marketing'); };
|
58 |
this.username_transactional.onchange = function(e) { return self.checkValidated('transactional'); };
|
59 |
this.password_transactional.onchange = function(e) { return self.checkValidated('transactional'); };
|
60 |
+
this.url.onchange = function(e) {
|
61 |
+
var marketing = self.checkValidated('marketing');
|
62 |
+
var transactional = self.checkValidated('transactional')
|
63 |
+
return true;
|
64 |
+
};
|
65 |
|
66 |
this.checkEnabled();
|
67 |
this.checkValidated('marketing');
|
js/mage/adminhtml/pure360/cron.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
Event.observe(window, 'load', function() {
|
2 |
initPure360Cron();
|
3 |
-
setTimeout('window.location.reload();',
|
4 |
});
|
5 |
|
6 |
Pure360Cron = Class.create();
|
1 |
Event.observe(window, 'load', function() {
|
2 |
initPure360Cron();
|
3 |
+
setTimeout('window.location.reload();', 30000);
|
4 |
});
|
5 |
|
6 |
Pure360Cron = Class.create();
|
package.xml
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>Pure360</name>
|
4 |
-
<version>1.0
|
5 |
<stability>stable</stability>
|
6 |
<license uri="http://opensource.org/licenses/osl-3.0.php">Open Software License</license>
|
7 |
<channel>community</channel>
|
@@ -68,7 +68,15 @@
|
|
68 |
<h3>Pricing</h3>
|
69 |

|
70 |
<p>To see Pure360 pricing <a title="Sign up here" href="http://www.pure360.com/take-a-trial-software-august">sign up here</a> and a member of the team will be in touch to discuss your requirements and build a package that suits your individual needs.</p></description>
|
71 |
-
<notes>1.0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
72 |
- Stability fixes
|
73 |
- Verbose error handling
|
74 |
- List Sync fixes
|
@@ -83,9 +91,9 @@
|
|
83 |
1.0.1
|
84 |
- Magento Connect compliance</notes>
|
85 |
<authors><author><name>Stewart Waller</name><user>stewart_pure360</user><email>stewart.waller@pure360.com</email></author></authors>
|
86 |
-
<date>
|
87 |
-
<time>
|
88 |
-
<contents><target name="magecommunity"><dir name="Pure360"><dir name="Cart"><dir name="Block"><dir name="Adminhtml"><dir name="System"><dir name="Config"><file name="About.php" hash="b2a89a4eb5a0cc07a4ddb9851b5d8490"/></dir></dir></dir><dir name="Email"><dir name="Order"><file name="Items.php" hash="45b9becd073ab968872f142243d52d63"/></dir></dir><file name="Jsinit.php" hash="9ba1a3c3b20736d2b2376046da2b3fcf"/></dir><dir name="Helper"><file name="Data.php" hash="bc15d6ba50c4e6f0242eb07532b13c99"/></dir><dir name="Job"><file name="Trigger.php" hash="192fc12b542e97665d21e6d88d6713fb"/></dir><dir name="Model"><dir name="System"><dir name="Config"><dir name="Backend"><file name="Enable.php" hash="742234ea19b737b33de9af1aea4dcf6e"/></dir><dir name="Source"><file name="Delay.php" hash="386d7aa81411c136516e8c4cc3f13ad3"/><dir name="Email"><file name="Template.php" hash="9f2fab6d42a1da181f272d70c5236172"/><file name="TemplateGuest.php" hash="682117c74cecda7395941cb5fcbdc729"/></dir><file name="Type.php" hash="a4a09a9fcaf0f970e823479bb784e92c"/></dir></dir></dir></dir><dir name="controllers"><file name="AjaxController.php" hash="82a5cba1c9069306bbd9886fd9ad1bf9"/></dir><dir name="etc"><file name="config.xml" hash="b5c8028f6206958185d1aae23ad51aa7"/><file name="system.xml" hash="02bfe0ba69816df211fb6851067414dc"/></dir><dir name="sql"><dir name="pure360_cart_setup"><file name="mysql4-install-1.0.3.php" hash="49960b758d00481bad2d3baa2daba9cd"/></dir></dir></dir><dir name="Common"><dir name="Block"><dir name="Adminhtml"><dir name="System"><dir name="Config"><file name="About.php" hash="29091a400a1ce9c9207d732de03ce7bd"/><file name="Disabled.php" hash="9970f5fc1b0b34000b8219f2519eccaa"/><dir name="Form"><dir name="Field"><file name="Hidden.php" hash="95ed0e83cd87c03de709789eb21ab1b2"/></dir><file name="Field.php" hash="34766e8795a023cdf19c2fc0bb0c976f"/><file name="Fieldset.php" hash="0605c96e429b6d1c5ae6081b6a1bf76e"/></dir><file name="Form.php" hash="d8c5c4aa3d8132c7318311981cd1fdee"/><file name="Hidden.php" hash="b4b32095413ebdd63f4de1194e20ea0e"/><file name="Modules.php" hash="3deb577d540a7537d91059a8393d759d"/><file name="Tabs.php" hash="de833cdcb3b278923e53ee85d685820f"/><dir name="Validate"><file name="Marketing.php" hash="86513e7b18dc53ab3f6a17ae1c2ffb07"/><file name="Transactional.php" hash="578130a5e13e24848eea90dede3d8ab5"/></dir></dir></dir></dir><file name="Jsinit.php" hash="47c0e55bbe05d6adc07840090034eca7"/></dir><dir name="Helper"><file name="Ajax.php" hash="57787267c712dd712f74fc54e6f2765f"/><file name="Api.php" hash="16862411672bafb439a5b81ddca0c49f"/><file name="Data.php" hash="37fba89884930b660c000910b73ff159"/><file name="File.php" hash="9ce95f89acca0eddc0745e21dccdb165"/></dir><dir name="Interface"><file name="Job.php" hash="59c3fcfe0e35f2a7867a3bd8e5f51d61"/></dir><dir name="Model"><file name="Observer.php" hash="045ba8d185a9646cc2bfb0adfe96e6ef"/><dir name="System"><dir name="Config"><dir name="Backend"><file name="Enable.php" hash="9445b26df9a78548fd0c22be126acc7c"/></dir><dir name="Source"><dir name="Cron"><file name="Days.php" hash="0174fb71a0cd1979b4b1a74b4d5dfe6e"/><file name="Frequency.php" hash="0c0afecf1341100e4ba90e180df6facf"/><file name="Minutes.php" hash="b7a8eef1155ca8cddadc79d643ac56bc"/></dir><file name="Field.php" hash="da1801ccb45426ce8e960a4d40952303"/><file name="Global.php" hash="412071d06a25bf92962d2c2be1eb411a"/><file name="Message.php" hash="aa72d6227f29795dadf9c45405cafffd"/></dir></dir></dir></dir><dir name="controllers"><file name="AjaxController.php" hash="6e267f11b1d7df2ef27a721ae4c10887"/><file name="JobController.php" hash="99b6026a540c4f02c8c827e66a85d48b"/><file name="Pure360Controller.php" hash="07599b0ad90725bda1201b8bd291e0d5"/></dir><dir name="etc"><file name="config.xml" hash="5a823ae0f0a54b72a0bc66ff42ee4f2f"/><file name="system.xml" hash="9b467fbbc758e3933e1343f8a0f63715"/></dir></dir><dir name="Cron"><dir name="Block"><dir name="Adminhtml"><dir name="System"><dir name="Config"><file name="About.php" hash="4c08269367666f8aa9ea9028f1afc0b7"/></dir><dir name="Cron"><dir name="Manager"><dir name="Grid"><dir name="Renderer"><file name="Actions.php" hash="c0ee554f426a5147b486384c52f8eae3"/><file name="Crontab.php" hash="b28f87aeb8259bd17583b2a86fa16e19"/><file name="Force.php" hash="69f68ee9b7e7deccf161991aff2013fe"/><file name="Pause.php" hash="780dd8620f8c0c0a7094c558d6c1b0fc"/></dir></dir><file name="Grid.php" hash="a654543f57a356152eb7119cf971f4a9"/><dir name="Logs"><dir name="Renderer"><file name="Bytes.php" hash="a252cdb9290293c58962b19ec376d11f"/><file name="Clean.php" hash="448c3aae8e6fef07e676a53ac1225e11"/><file name="Download.php" hash="1046ed159db6e270d78823af78e4dec0"/><file name="Tail.php" hash="57ad12798b10af495e3e3d34e84ecb36"/></dir></dir><file name="Logs.php" hash="bbad87b3c1ff4165179ffa799554f568"/></dir><file name="Manager.php" hash="407928e5052d387a45f02b5c8e70810b"/></dir></dir></dir><file name="Jsinit.php" hash="28d2d2074598dd783db41884fc624f88"/></dir><dir name="Helper"><file name="Data.php" hash="fa6c7e721a561c014382692aa2a49eab"/></dir><dir name="Job"><file name="Abstract.php" hash="f59fb9712d9001f3406d10c202a45223"/><file name="Interface.php" hash="306c4c9de6dc281ce2d50012759da82c"/></dir><dir name="Model"><file name="Job.php" hash="2876e7fcff63de170d0b34d2aef92254"/><file name="Observer.php" hash="788e7fbcca63ac8aea5ed254097886aa"/><dir name="Resource"><dir name="Job"><file name="Collection.php" hash="a42b6c45b4786f35d2d808bd3e0860da"/></dir><file name="Job.php" hash="ca3d4f31293d6419fb4b84a10dec4464"/></dir></dir><dir name="controllers"><file name="AjaxController.php" hash="01b2c823877a8e7838c8e1cd5f3f568b"/></dir><dir name="etc"><file name="config.xml" hash="c0c5acfc3cc1281a7b13e5adfc72fb9a"/><file name="system.xml" hash="d398d5ef4758562b8e8c7007b2470b7b"/></dir><dir name="sql"><dir name="pure360_cron_setup"><file name="mysql4-install-1.0.3.php" hash="6819eab799199893f65c05a53451e3a0"/></dir></dir></dir><dir name="Email"><dir name="Block"><dir name="Adminhtml"><dir name="System"><dir name="Config"><file name="About.php" hash="c03154f20bdfbe72631bc09fbd3f86da"/><file name="Transactional.php" hash="37476f57155a4d28a9a16d75f1c2269c"/></dir></dir></dir><file name="Jsinit.php" hash="463a0092939237b6de4c4e9b47e897d8"/></dir><dir name="Helper"><file name="Api.php" hash="ddeb4f28ee7f82530b96055c4b5ccaa8"/><file name="Data.php" hash="ca33046f86cd97daff222e2386879ee8"/></dir><dir name="Model"><dir name="Email"><file name="Message.php" hash="2cae4bee4aaff2c4850d93bbf762ce04"/></dir><file name="Messages.php" hash="56eeb27a00e794774759d4631df0df0d"/><dir name="Resource"><dir name="Transactional"><file name="Collection.php" hash="92714dd16f619e43ae8695bf6b9a5d59"/></dir><file name="Transactional.php" hash="c2c02bf63ab5c7314eca1f94f4f953bc"/></dir><dir name="System"><dir name="Config"><dir name="Source"><dir name="Email"><file name="Template.php" hash="6e04d1a0f99becc198a940ef1c8ebf57"/></dir></dir></dir></dir><file name="Transactional.php" hash="f71a307d7dc6bb652a1267921b78a7e6"/></dir><dir name="controllers"><file name="AjaxController.php" hash="1d81c0ad2620918a07266c40d772b8e0"/></dir><dir name="etc"><file name="config.xml" hash="4904ebdf589129aea56246b135209969"/><file name="system.xml" hash="b1ed057cfe7d27ecfb86fdf5a3f02e27"/></dir><dir name="sql"><dir name="pure360_email_setup"><file name="mysql4-install-1.0.3.php" hash="bb37fdf2a7c8907b13e003eb56f13542"/></dir></dir></dir><dir name="List"><dir name="Block"><dir name="Adminhtml"><dir name="System"><dir name="Config"><file name="About.php" hash="f66afdcd44d13a9a4dbd92fc3d77114a"/><file name="Form.php" hash="9b8b1a093cc9c455fb108a6f9d3960c0"/><file name="List.php" hash="9ee4a1c9e91b63402060f85726296f16"/></dir></dir></dir><file name="Jsinit.php" hash="78daf97d49034d34c36007322408c9a8"/></dir><dir name="Helper"><file name="Api.php" hash="c6fad3966387a14f3b2cc6b6939f1c82"/><file name="Data.php" hash="5d6e01975c1a5ba84c44477591ffd977"/></dir><dir name="Job"><file name="Sync.php" hash="b671f48cab85ada5995ce968634485de"/></dir><dir name="Model"><file name="Address.php" hash="844441bf49a1f1ac492939449c33f28c"/><file name="Customer.php" hash="e0e3418881877b5b17579bec7978728f"/><file name="Data.php" hash="1e70c242bcfd71a92832cc300d8697fc"/><file name="Groups.php" hash="05f58791bbd56a161b8dc614831197ca"/><file name="List.php" hash="9125566c34a2500734e1c2583371aec3"/><file name="Observer.php" hash="ca2ea4a8ca36f7203c1a9ea30c70aa08"/><dir name="Resource"><dir name="List"><file name="Collection.php" hash="503fae2e6c778646ba730eaf98a67ae5"/></dir><file name="List.php" hash="5b443a43c67230dca205cf44e568b613"/></dir><file name="Sales.php" hash="9910099ba6f492c414e951a49e5960c1"/><file name="Segments.php" hash="6bf9009dc93f71224d29644c333c1a61"/></dir><dir name="controllers"><file name="AjaxController.php" hash="20084d7deabcb5ba6c37b53da0d8524e"/></dir><dir name="etc"><file name="config.xml" hash="1f93fc1a02a22b34599e16c31defdac5"/><file name="system.xml" hash="33bc7c064f682b6009e650213ee49854"/></dir><dir name="sql"><dir name="pure360_list_setup"><file name="mysql4-install-1.0.3.php" hash="72a6608eeeee4bdbc3f0a12eaea9cc83"/></dir></dir></dir><dir name="Newsletter"><dir name="Block"><dir name="Adminhtml"><dir name="System"><dir name="Config"><file name="About.php" hash="dbc0efc7099f1ac9af12d02fc87f559c"/></dir></dir></dir><dir name="Checkout"><dir name="Onepage"><file name="Newsletter.php" hash="c65136e4076cbb4c686b465c5d04fcc2"/></dir></dir><file name="Jsinit.php" hash="3cdd4b0da1539ac253e440997bb56308"/></dir><dir name="Helper"><file name="Api.php" hash="b31a077fab97c6d0a7a99c2a1d5db05a"/><file name="Data.php" hash="c2c63a8c9546183b6cb5048e6d7ddf7b"/></dir><dir name="Model"><file name="Observer.php" hash="0320f4334ef874f2c112e5d595760ec1"/><file name="Subscriber.php" hash="412d9a51803047fd337672712d0e44a9"/></dir><dir name="controllers"><file name="IndexController.php" hash="da4dfea12608bf7ef6e177b9a0be47ba"/></dir><dir name="etc"><file name="config.xml" hash="0bd108b66276ff1111144f5965a9ada9"/><file name="system.xml" hash="35d9f9afe40ee6ea617906a3a830252f"/></dir><dir name="sql"><dir name="pure360_newsletter_setup"><file name="mysql4-install-1.0.3.php" hash="8487bc8b8483b9a941f9895e25280455"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="pure360_cart.xml" hash="bb41c36682cf8829553a12881db5b2ea"/><file name="pure360_common.xml" hash="27f8fe83bb013ef6e4c3111e855aed67"/><file name="pure360_cron.xml" hash="fb35138a5514721477356dac81ac3fc1"/><file name="pure360_email.xml" hash="05ebc3cd33d33d492cae9196dfc1b65b"/><file name="pure360_list.xml" hash="4f3346bce27d07ebf2c78b888453d33f"/><file name="pure360_newsletter.xml" hash="d7ba5b55c3a3d473e96d8a7fab313584"/></dir><dir name="template"><dir name="pure360"><dir name="cart"><file name="jsinit.phtml" hash="2bca290370210037cb71c62e15b0d9cc"/></dir><dir name="common"><file name="about.phtml" hash="643d4e13c093fd954e928ada274772de"/><file name="config.phtml" hash="d41d8cd98f00b204e9800998ecf8427e"/><file name="disabled.phtml" hash="69dee703408ead95dd5c913ad2bfca9d"/><file name="error.phtml" hash="0f4f65766466a459cd57743bcbcd4085"/><file name="hidden.phtml" hash="bd8768ad057df0a9dda8e50a0507b3ed"/><file name="jsinit.phtml" hash="f30da6ab4caf72ee8f135c450a504801"/><file name="modules.phtml" hash="2dcf7bab0da85eb4533d07f8479c4c38"/></dir><dir name="cron"><file name="jsinit.phtml" hash="697388afb41375e3dfe9f7c4fff25712"/><file name="manager.phtml" hash="a413d279ec78fce33ffe2c7196fd2acb"/></dir><dir name="email"><file name="jsinit.phtml" hash="91b9745ad690249ea58b5f80c7487a1f"/><file name="transactional.phtml" hash="7f201cf65dd510fb067a173edbb0a14c"/></dir><file name="hint.phtml" hash="6e50c5cce42b12e8481e5211e8cf0f35"/><dir name="list"><file name="jsinit.phtml" hash="2a66b7d233cdf95c751e102974504ca0"/><file name="list.phtml" hash="f310c3197118223821176f4f791eeed4"/></dir><dir name="newsletter"><file name="jsinit.phtml" hash="e57d9c2279ff4440df096e79643f9bca"/></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><dir name="pure360"><file name="cart.xml" hash="31aa1884491949f7965aa0b8c514fc7c"/><file name="newsletter.xml" hash="790ced3bb4a2a83267b548fb0e0544e8"/></dir></dir><dir name="template"><dir name="pure360"><dir name="cart"><dir name="email"><dir name="order"><dir name="items"><dir name="order"><file name="default.phtml" hash="de146a4a2796d166c1337e8734ae02cd"/></dir></dir><file name="items.phtml" hash="086c832780aab518bb04cb3a8157e5ba"/></dir></dir></dir><dir name="newsletter"><file name="jsinit.phtml" hash="e99f59688cef74ad2aa3f57751c25a9f"/></dir></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Pure360_Cart.xml" hash="4bf660dc41ebb88fd04421b5edcb93f5"/><file name="Pure360_Common.xml" hash="21ce1650dac593cf9d1293167592ce9d"/><file name="Pure360_Cron.xml" hash="3fac7040468efecd5ae487b3e0509737"/><file name="Pure360_Email.xml" hash="e58b87357af6ed25523afd5983a63297"/><file name="Pure360_List.xml" hash="277e4aea059838480e1af90a3b2d0a7a"/><file name="Pure360_Newsletter.xml" hash="500c3d494e2c3edc7b0a0bdb0a429126"/></dir></target><target name="magelocale"><dir name="en_US"><dir name="template"><dir name="email"><dir name="pure360"><file name="abandoned_cart.html" hash="5aef51ca2baff2a5afc489c12daabd51"/><file name="abandoned_cart_guest.html" hash="f65bbcd0ea761b0e80ac7c0082fc9456"/></dir></dir></dir></dir></target><target name="mage"><dir name="js"><dir name="mage"><dir name="adminhtml"><dir name="pure360"><file name="cart.js" hash="ee5b1110af04c4d24f0ed5f1668cf4d5"/><file name="common.js" hash="342feffc1c2665c3e23b490fd37974b6"/><file name="cron.js" hash="b0ba0b28d2a4595bb3f87c6b04d004c4"/><file name="email.js" hash="3c9259fe31d2ade24aacc622b0790ea2"/><file name="list.js" hash="443b0acec1d1a3016f3b606e92a435d5"/><file name="newsletter.js" hash="15d462e8eaab011460431cc10a75bdb2"/></dir></dir></dir></dir></target><target name="magelib"><dir name="Pure360"><file name="Client.php" hash="2daae4bee1c878da1c4a316ed9d0b8c7"/><file name="Entity.php" hash="ba76dccb0a80ce11a110d3e1c5e108a1"/><dir name="Exception"><file name="SecurityException.php" hash="1e30dd834995651eb8ab0ff19c022713"/><file name="SystemException.php" hash="dbb715d39318c4a63db0d05eaeb85eab"/><file name="ValidationException.php" hash="69540e782165d00400c1ae460aa755ed"/></dir><dir name="Package"><dir name="Account"><file name="Identity.php" hash="56a192c63b4b82f95a03bf01dfb0e320"/><file name="Login.php" hash="b5cf3c5a7f02c34a7714492cb088b12d"/><file name="Pool.php" hash="6ca9929fae710c8d3b6baff9bb9ebd56"/></dir><file name="Account.php" hash="549fc8c168e102b5d622192e7161314f"/><dir name="Campaign"><file name="Automation.php" hash="7ef9a900dd1e48b5bc131aa3c801c4bb"/><file name="AutomationByDate.php" hash="0042f336568ce900d74e8e19e9d70a9b"/><file name="AutomationBySignup.php" hash="23e9d9e19a02c602ab67a2e706e64184"/><file name="ContentItem.php" hash="797bfd1d0fee23e2d8a00a7118934fc9"/><file name="Delivery.php" hash="a38c9f831977dc635140af291f529bbb"/><file name="DynamicRegion.php" hash="f81afeb8f67d3b5d6adb279126325321"/><file name="Email.php" hash="ae09ee6eb161c2032a68af8486227a8f"/><file name="Filter.php" hash="16cbfe1f34080bf88326315cde2c7fae"/><file name="GroupDelivery.php" hash="e470a337c36cd6c6e6c2126c2d8a6b05"/><file name="MarketingList.php" hash="62a2cb099555c922abc8971fb904af84"/><file name="Message.php" hash="115a7a8d5d313cc1fc91c404af4e277f"/><file name="One2One.php" hash="b3f229593bc9e78f717807967923e181"/><file name="Person.php" hash="465cc7928b872f1a1f9c71099e70e640"/><file name="Sms.php" hash="c525a6fb395d67651e91c1fe6481777b"/></dir><file name="Campaign.php" hash="bfab52155c32995acd3b7e376b683001"/><dir name="Context"><file name="Context.php" hash="2fe3109a45d6459f4cf441b3aa1ed7a3"/><file name="Preference.php" hash="8a390e782e04ad0decc26f72cc7f362c"/></dir><file name="Context.php" hash="7032b8dd4c00fded3f49511b174ebeba"/><dir name="Data"><file name="Meta.php" hash="a0489bfbbd52443eeb3f019f36840846"/><file name="Scheduler.php" hash="a37efb3c2d5497bc37393a8fa4879b57"/></dir><file name="Data.php" hash="77c4d9c47b4a2cd161a506d74024e639"/><dir name="Other"><file name="EventNotification.php" hash="c880abfad0408709e7c801f74c0c1882"/><file name="File.php" hash="71f3239c95c09f03a954d47ebdd20233"/></dir><file name="Other.php" hash="bea8844bf4037303bcf7bd064e18ae3f"/></dir><file name="Package.php" hash="2b1d5236b81621130c7522ddc105bd90"/><file name="Session.php" hash="340e63e5c25296bbe9baf8426dba1726"/></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="pure360"><file name="pure360.css" hash="ea0485422716685e1753945731b3391e"/></dir><dir name="images"><dir name="pure360"><file name="pure_logo.png" hash="e03329ae9efacfeb292f079992a18a41"/><file name="switch.png" hash="dc4dd15ad074ab584444bda7660afe7a"/></dir></dir></dir></dir></dir></target></contents>
|
89 |
<compatible/>
|
90 |
<dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php><extension><name>soap</name><min></min><max></max></extension></required></dependencies>
|
91 |
</package>
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>Pure360</name>
|
4 |
+
<version>1.1.0</version>
|
5 |
<stability>stable</stability>
|
6 |
<license uri="http://opensource.org/licenses/osl-3.0.php">Open Software License</license>
|
7 |
<channel>community</channel>
|
68 |
<h3>Pricing</h3>
|
69 |

|
70 |
<p>To see Pure360 pricing <a title="Sign up here" href="http://www.pure360.com/take-a-trial-software-august">sign up here</a> and a member of the team will be in touch to discuss your requirements and build a package that suits your individual needs.</p></description>
|
71 |
+
<notes>1.1.0
|
72 |
+
- Username/password check when changing API URL
|
73 |
+
- Increased the page refresh time in Cron job page
|
74 |
+
- Newsletter signup checkbox should not be checked by default if the use has already opted-out
|
75 |
+

|
76 |
+
1.0.4
|
77 |
+
- List opt-out support extended
|
78 |
+

|
79 |
+
1.0.3
|
80 |
- Stability fixes
|
81 |
- Verbose error handling
|
82 |
- List Sync fixes
|
91 |
1.0.1
|
92 |
- Magento Connect compliance</notes>
|
93 |
<authors><author><name>Stewart Waller</name><user>stewart_pure360</user><email>stewart.waller@pure360.com</email></author></authors>
|
94 |
+
<date>2014-01-13</date>
|
95 |
+
<time>15:54:43</time>
|
96 |
+
<contents><target name="magecommunity"><dir name="Pure360"><dir name="Cart"><dir name="Block"><dir name="Adminhtml"><dir name="System"><dir name="Config"><file name="About.php" hash="b2a89a4eb5a0cc07a4ddb9851b5d8490"/></dir></dir></dir><dir name="Email"><dir name="Order"><file name="Items.php" hash="45b9becd073ab968872f142243d52d63"/></dir></dir><file name="Jsinit.php" hash="9ba1a3c3b20736d2b2376046da2b3fcf"/></dir><dir name="Helper"><file name="Data.php" hash="bc15d6ba50c4e6f0242eb07532b13c99"/></dir><dir name="Job"><file name="Trigger.php" hash="192fc12b542e97665d21e6d88d6713fb"/></dir><dir name="Model"><dir name="System"><dir name="Config"><dir name="Backend"><file name="Enable.php" hash="742234ea19b737b33de9af1aea4dcf6e"/></dir><dir name="Source"><file name="Delay.php" hash="386d7aa81411c136516e8c4cc3f13ad3"/><dir name="Email"><file name="Template.php" hash="9f2fab6d42a1da181f272d70c5236172"/><file name="TemplateGuest.php" hash="682117c74cecda7395941cb5fcbdc729"/></dir><file name="Type.php" hash="a4a09a9fcaf0f970e823479bb784e92c"/></dir></dir></dir></dir><dir name="controllers"><file name="AjaxController.php" hash="82a5cba1c9069306bbd9886fd9ad1bf9"/></dir><dir name="etc"><file name="config.xml" hash="8f525751b0d5cd3da90c657ecc21e96f"/><file name="system.xml" hash="02bfe0ba69816df211fb6851067414dc"/></dir><dir name="sql"><dir name="pure360_cart_setup"><file name="mysql4-install-1.0.4.php" hash="49960b758d00481bad2d3baa2daba9cd"/></dir></dir></dir><dir name="Common"><dir name="Block"><dir name="Adminhtml"><dir name="System"><dir name="Config"><file name="About.php" hash="29091a400a1ce9c9207d732de03ce7bd"/><file name="Disabled.php" hash="9970f5fc1b0b34000b8219f2519eccaa"/><dir name="Form"><dir name="Field"><file name="Hidden.php" hash="95ed0e83cd87c03de709789eb21ab1b2"/></dir><file name="Field.php" hash="34766e8795a023cdf19c2fc0bb0c976f"/><file name="Fieldset.php" hash="0605c96e429b6d1c5ae6081b6a1bf76e"/></dir><file name="Form.php" hash="d8c5c4aa3d8132c7318311981cd1fdee"/><file name="Hidden.php" hash="b4b32095413ebdd63f4de1194e20ea0e"/><file name="Modules.php" hash="3deb577d540a7537d91059a8393d759d"/><file name="Tabs.php" hash="de833cdcb3b278923e53ee85d685820f"/><dir name="Validate"><file name="Marketing.php" hash="86513e7b18dc53ab3f6a17ae1c2ffb07"/><file name="Transactional.php" hash="578130a5e13e24848eea90dede3d8ab5"/></dir></dir></dir></dir><file name="Jsinit.php" hash="47c0e55bbe05d6adc07840090034eca7"/></dir><dir name="Helper"><file name="Ajax.php" hash="57787267c712dd712f74fc54e6f2765f"/><file name="Api.php" hash="16862411672bafb439a5b81ddca0c49f"/><file name="Data.php" hash="37fba89884930b660c000910b73ff159"/><file name="File.php" hash="9ce95f89acca0eddc0745e21dccdb165"/></dir><dir name="Interface"><file name="Job.php" hash="59c3fcfe0e35f2a7867a3bd8e5f51d61"/></dir><dir name="Model"><file name="Observer.php" hash="045ba8d185a9646cc2bfb0adfe96e6ef"/><dir name="System"><dir name="Config"><dir name="Backend"><file name="Enable.php" hash="9445b26df9a78548fd0c22be126acc7c"/></dir><dir name="Source"><dir name="Cron"><file name="Days.php" hash="0174fb71a0cd1979b4b1a74b4d5dfe6e"/><file name="Frequency.php" hash="0c0afecf1341100e4ba90e180df6facf"/><file name="Minutes.php" hash="b7a8eef1155ca8cddadc79d643ac56bc"/></dir><file name="Field.php" hash="da1801ccb45426ce8e960a4d40952303"/><file name="Global.php" hash="412071d06a25bf92962d2c2be1eb411a"/><file name="Message.php" hash="aa72d6227f29795dadf9c45405cafffd"/></dir></dir></dir></dir><dir name="controllers"><file name="AjaxController.php" hash="6e267f11b1d7df2ef27a721ae4c10887"/><file name="JobController.php" hash="99b6026a540c4f02c8c827e66a85d48b"/><file name="Pure360Controller.php" hash="07599b0ad90725bda1201b8bd291e0d5"/></dir><dir name="etc"><file name="config.xml" hash="f97e02bce4460111bcbc1031499067bc"/><file name="system.xml" hash="9b467fbbc758e3933e1343f8a0f63715"/></dir></dir><dir name="Cron"><dir name="Block"><dir name="Adminhtml"><dir name="System"><dir name="Config"><file name="About.php" hash="4c08269367666f8aa9ea9028f1afc0b7"/></dir><dir name="Cron"><dir name="Manager"><dir name="Grid"><dir name="Renderer"><file name="Actions.php" hash="c0ee554f426a5147b486384c52f8eae3"/><file name="Crontab.php" hash="b28f87aeb8259bd17583b2a86fa16e19"/><file name="Force.php" hash="69f68ee9b7e7deccf161991aff2013fe"/><file name="Pause.php" hash="780dd8620f8c0c0a7094c558d6c1b0fc"/></dir></dir><file name="Grid.php" hash="a654543f57a356152eb7119cf971f4a9"/><dir name="Logs"><dir name="Renderer"><file name="Bytes.php" hash="a252cdb9290293c58962b19ec376d11f"/><file name="Clean.php" hash="448c3aae8e6fef07e676a53ac1225e11"/><file name="Download.php" hash="1046ed159db6e270d78823af78e4dec0"/><file name="Tail.php" hash="57ad12798b10af495e3e3d34e84ecb36"/></dir></dir><file name="Logs.php" hash="bbad87b3c1ff4165179ffa799554f568"/></dir><file name="Manager.php" hash="407928e5052d387a45f02b5c8e70810b"/></dir></dir></dir><file name="Jsinit.php" hash="28d2d2074598dd783db41884fc624f88"/></dir><dir name="Helper"><file name="Data.php" hash="fa6c7e721a561c014382692aa2a49eab"/></dir><dir name="Job"><file name="Abstract.php" hash="f59fb9712d9001f3406d10c202a45223"/><file name="Interface.php" hash="306c4c9de6dc281ce2d50012759da82c"/></dir><dir name="Model"><file name="Job.php" hash="2876e7fcff63de170d0b34d2aef92254"/><file name="Observer.php" hash="788e7fbcca63ac8aea5ed254097886aa"/><dir name="Resource"><dir name="Job"><file name="Collection.php" hash="a42b6c45b4786f35d2d808bd3e0860da"/></dir><file name="Job.php" hash="ca3d4f31293d6419fb4b84a10dec4464"/></dir></dir><dir name="controllers"><file name="AjaxController.php" hash="01b2c823877a8e7838c8e1cd5f3f568b"/></dir><dir name="etc"><file name="config.xml" hash="be953021badb7b25913bb91bdf2641d2"/><file name="system.xml" hash="d398d5ef4758562b8e8c7007b2470b7b"/></dir><dir name="sql"><dir name="pure360_cron_setup"><file name="mysql4-install-1.0.4.php" hash="6819eab799199893f65c05a53451e3a0"/></dir></dir></dir><dir name="Email"><dir name="Block"><dir name="Adminhtml"><dir name="System"><dir name="Config"><file name="About.php" hash="c03154f20bdfbe72631bc09fbd3f86da"/><file name="Transactional.php" hash="37476f57155a4d28a9a16d75f1c2269c"/></dir></dir></dir><file name="Jsinit.php" hash="463a0092939237b6de4c4e9b47e897d8"/></dir><dir name="Helper"><file name="Api.php" hash="ddeb4f28ee7f82530b96055c4b5ccaa8"/><file name="Data.php" hash="ca33046f86cd97daff222e2386879ee8"/></dir><dir name="Model"><dir name="Email"><file name="Message.php" hash="b944f24c52dd5ae00dea03254bdc6950"/></dir><file name="Messages.php" hash="56eeb27a00e794774759d4631df0df0d"/><dir name="Resource"><dir name="Transactional"><file name="Collection.php" hash="92714dd16f619e43ae8695bf6b9a5d59"/></dir><file name="Transactional.php" hash="c2c02bf63ab5c7314eca1f94f4f953bc"/></dir><dir name="System"><dir name="Config"><dir name="Source"><dir name="Email"><file name="Template.php" hash="6e04d1a0f99becc198a940ef1c8ebf57"/></dir></dir></dir></dir><file name="Transactional.php" hash="f71a307d7dc6bb652a1267921b78a7e6"/></dir><dir name="controllers"><file name="AjaxController.php" hash="1d81c0ad2620918a07266c40d772b8e0"/></dir><dir name="etc"><file name="config.xml" hash="9d1ea455697f0336d482403522287226"/><file name="system.xml" hash="b1ed057cfe7d27ecfb86fdf5a3f02e27"/></dir><dir name="sql"><dir name="pure360_email_setup"><file name="mysql4-install-1.0.4.php" hash="bb37fdf2a7c8907b13e003eb56f13542"/></dir></dir></dir><dir name="List"><dir name="Block"><dir name="Adminhtml"><dir name="System"><dir name="Config"><file name="About.php" hash="f66afdcd44d13a9a4dbd92fc3d77114a"/><file name="Form.php" hash="9b8b1a093cc9c455fb108a6f9d3960c0"/><file name="List.php" hash="9ee4a1c9e91b63402060f85726296f16"/></dir></dir></dir><file name="Jsinit.php" hash="78daf97d49034d34c36007322408c9a8"/></dir><dir name="Helper"><file name="Api.php" hash="c6fad3966387a14f3b2cc6b6939f1c82"/><file name="Data.php" hash="2bf3dd35442b2dc6191cb765512e28f7"/></dir><dir name="Job"><file name="Sync.php" hash="8ff914e80fab100d456a4a6113e3845b"/></dir><dir name="Model"><file name="Address.php" hash="844441bf49a1f1ac492939449c33f28c"/><file name="Customer.php" hash="69e24f841868d937b403c5a95b2b70ae"/><file name="Data.php" hash="1e70c242bcfd71a92832cc300d8697fc"/><file name="Groups.php" hash="05f58791bbd56a161b8dc614831197ca"/><file name="List.php" hash="9125566c34a2500734e1c2583371aec3"/><file name="Observer.php" hash="ca2ea4a8ca36f7203c1a9ea30c70aa08"/><file name="Optout.php" hash="8ef1933d96623fd1e74038be26b37034"/><dir name="Resource"><dir name="List"><file name="Collection.php" hash="503fae2e6c778646ba730eaf98a67ae5"/></dir><file name="List.php" hash="5b443a43c67230dca205cf44e568b613"/><dir name="Optout"><file name="Collection.php" hash="51f4304dcdbd28e90e98d0f3c165c3b6"/></dir><file name="Optout.php" hash="7c59ba27cdb4a565ce08a92ef43ec89d"/></dir><file name="Sales.php" hash="9910099ba6f492c414e951a49e5960c1"/><file name="Segments.php" hash="6bf9009dc93f71224d29644c333c1a61"/><file name="Subscriber.php" hash="f5ba2429a89167639bad5ca63e971012"/></dir><dir name="controllers"><file name="AjaxController.php" hash="20084d7deabcb5ba6c37b53da0d8524e"/></dir><dir name="etc"><file name="config.xml" hash="0293b16a1273a4914fb45a324a8c0772"/><file name="system.xml" hash="33bc7c064f682b6009e650213ee49854"/></dir><dir name="sql"><dir name="pure360_list_setup"><file name="mysql4-install-1.0.4.php" hash="f9babd3b5b9b11100638e688a7c59379"/><file name="mysql4-upgrade-1.0.3-1.0.4.php" hash="bd6d2cd02673217a8c5846e789c9467d"/></dir></dir></dir><dir name="Newsletter"><dir name="Block"><dir name="Adminhtml"><dir name="System"><dir name="Config"><file name="About.php" hash="dbc0efc7099f1ac9af12d02fc87f559c"/></dir></dir></dir><dir name="Checkout"><dir name="Onepage"><file name="Newsletter.php" hash="7f58aea512497487aeaec8b8e23f4107"/></dir></dir><file name="Jsinit.php" hash="3cdd4b0da1539ac253e440997bb56308"/></dir><dir name="Helper"><file name="Api.php" hash="6f81466a8218cf7deee7eab53f14a7a9"/><file name="Data.php" hash="c2c63a8c9546183b6cb5048e6d7ddf7b"/></dir><dir name="Model"><file name="Observer.php" hash="0320f4334ef874f2c112e5d595760ec1"/><file name="Subscriber.php" hash="a35b3346fb4d0e6c12856e0e04451074"/></dir><dir name="controllers"><file name="IndexController.php" hash="da4dfea12608bf7ef6e177b9a0be47ba"/></dir><dir name="etc"><file name="config.xml" hash="765839d30ddac8d55556807736241888"/><file name="system.xml" hash="35d9f9afe40ee6ea617906a3a830252f"/></dir><dir name="sql"><dir name="pure360_newsletter_setup"><file name="mysql4-install-1.0.4.php" hash="8487bc8b8483b9a941f9895e25280455"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="pure360_cart.xml" hash="273917f43f2d5b661005cfe09ef19981"/><file name="pure360_common.xml" hash="936bcb981defde27e7ec4fb0d9d64333"/><file name="pure360_cron.xml" hash="f3a1e028121e2abcca8c48aa588c61aa"/><file name="pure360_email.xml" hash="3d455306546061dd3845dc66647a6c67"/><file name="pure360_list.xml" hash="16622be692caa1bdb4ea95f864faca74"/><file name="pure360_newsletter.xml" hash="2cbc34cdb97a0f0e87df04d72c4cee02"/></dir><dir name="template"><dir name="pure360"><dir name="cart"><file name="jsinit.phtml" hash="2bca290370210037cb71c62e15b0d9cc"/></dir><dir name="common"><file name="about.phtml" hash="c532330d3f02612b6bc04b5b918f3c46"/><file name="config.phtml" hash="d41d8cd98f00b204e9800998ecf8427e"/><file name="disabled.phtml" hash="3fe3a819a246c58ee95404ce7428285e"/><file name="error.phtml" hash="891d140f2a5616f2929b307edf39c18b"/><file name="hidden.phtml" hash="bd8768ad057df0a9dda8e50a0507b3ed"/><file name="jsinit.phtml" hash="fe043d6f61686949e2098108686ecad4"/><file name="modules.phtml" hash="2dcf7bab0da85eb4533d07f8479c4c38"/></dir><dir name="cron"><file name="jsinit.phtml" hash="697388afb41375e3dfe9f7c4fff25712"/><file name="manager.phtml" hash="a413d279ec78fce33ffe2c7196fd2acb"/></dir><dir name="email"><file name="jsinit.phtml" hash="91b9745ad690249ea58b5f80c7487a1f"/><file name="transactional.phtml" hash="2002641f30185ea1d63f2c492478ff95"/></dir><file name="hint.phtml" hash="6e50c5cce42b12e8481e5211e8cf0f35"/><dir name="list"><file name="jsinit.phtml" hash="2a66b7d233cdf95c751e102974504ca0"/><file name="list.phtml" hash="f310c3197118223821176f4f791eeed4"/></dir><dir name="newsletter"><file name="jsinit.phtml" hash="e57d9c2279ff4440df096e79643f9bca"/></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><dir name="pure360"><file name="cart.xml" hash="ae1b704553530b74108d9759f575376b"/><file name="newsletter.xml" hash="678ce91ac72cce3f541daae259a4ef32"/></dir></dir><dir name="template"><dir name="pure360"><dir name="cart"><dir name="email"><dir name="order"><dir name="items"><dir name="order"><file name="default.phtml" hash="307ede936c9f667a7fbd64115942a721"/></dir></dir><file name="items.phtml" hash="0e349df6e260ca4d4be1092e58c7be24"/></dir></dir></dir><dir name="newsletter"><file name="jsinit.phtml" hash="e99f59688cef74ad2aa3f57751c25a9f"/></dir></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Pure360_Cart.xml" hash="29d028bc4960d42dd9ae5471c9bbf904"/><file name="Pure360_Common.xml" hash="21ce1650dac593cf9d1293167592ce9d"/><file name="Pure360_Cron.xml" hash="3fac7040468efecd5ae487b3e0509737"/><file name="Pure360_Email.xml" hash="e58b87357af6ed25523afd5983a63297"/><file name="Pure360_List.xml" hash="277e4aea059838480e1af90a3b2d0a7a"/><file name="Pure360_Newsletter.xml" hash="500c3d494e2c3edc7b0a0bdb0a429126"/></dir></target><target name="magelocale"><dir name="en_US"><dir name="template"><dir name="email"><dir name="pure360"><file name="abandoned_cart.html" hash="e2b9facb56c028a2e19a69f5420052ff"/><file name="abandoned_cart_guest.html" hash="00cbc838e6f4e44fc87c51d98cedd2a2"/></dir></dir></dir></dir></target><target name="mage"><dir name="js"><dir name="mage"><dir name="adminhtml"><dir name="pure360"><file name="cart.js" hash="ee5b1110af04c4d24f0ed5f1668cf4d5"/><file name="common.js" hash="2ffa56e258da7022973ec1568d00785c"/><file name="cron.js" hash="29b6311859e63be290a9ececc3dbc547"/><file name="email.js" hash="3c9259fe31d2ade24aacc622b0790ea2"/><file name="list.js" hash="443b0acec1d1a3016f3b606e92a435d5"/><file name="newsletter.js" hash="15d462e8eaab011460431cc10a75bdb2"/></dir></dir></dir></dir></target><target name="magelib"><dir name="Pure360"><file name="Client.php" hash="2daae4bee1c878da1c4a316ed9d0b8c7"/><file name="Entity.php" hash="ba76dccb0a80ce11a110d3e1c5e108a1"/><dir name="Exception"><file name="SecurityException.php" hash="1e30dd834995651eb8ab0ff19c022713"/><file name="SystemException.php" hash="dbb715d39318c4a63db0d05eaeb85eab"/><file name="ValidationException.php" hash="69540e782165d00400c1ae460aa755ed"/></dir><dir name="Package"><dir name="Account"><file name="Identity.php" hash="56a192c63b4b82f95a03bf01dfb0e320"/><file name="Login.php" hash="b5cf3c5a7f02c34a7714492cb088b12d"/><file name="Pool.php" hash="6ca9929fae710c8d3b6baff9bb9ebd56"/></dir><file name="Account.php" hash="549fc8c168e102b5d622192e7161314f"/><dir name="Campaign"><file name="Automation.php" hash="7ef9a900dd1e48b5bc131aa3c801c4bb"/><file name="AutomationByDate.php" hash="0042f336568ce900d74e8e19e9d70a9b"/><file name="AutomationBySignup.php" hash="23e9d9e19a02c602ab67a2e706e64184"/><file name="ContentItem.php" hash="797bfd1d0fee23e2d8a00a7118934fc9"/><file name="Delivery.php" hash="a38c9f831977dc635140af291f529bbb"/><file name="DynamicRegion.php" hash="f81afeb8f67d3b5d6adb279126325321"/><file name="Email.php" hash="ae09ee6eb161c2032a68af8486227a8f"/><file name="Filter.php" hash="16cbfe1f34080bf88326315cde2c7fae"/><file name="GroupDelivery.php" hash="e470a337c36cd6c6e6c2126c2d8a6b05"/><file name="MarketingList.php" hash="62a2cb099555c922abc8971fb904af84"/><file name="Message.php" hash="115a7a8d5d313cc1fc91c404af4e277f"/><file name="One2One.php" hash="b3f229593bc9e78f717807967923e181"/><file name="Person.php" hash="465cc7928b872f1a1f9c71099e70e640"/><file name="Sms.php" hash="c525a6fb395d67651e91c1fe6481777b"/></dir><file name="Campaign.php" hash="bfab52155c32995acd3b7e376b683001"/><dir name="Context"><file name="Context.php" hash="2fe3109a45d6459f4cf441b3aa1ed7a3"/><file name="Preference.php" hash="8a390e782e04ad0decc26f72cc7f362c"/></dir><file name="Context.php" hash="7032b8dd4c00fded3f49511b174ebeba"/><dir name="Data"><file name="Meta.php" hash="a0489bfbbd52443eeb3f019f36840846"/><file name="Scheduler.php" hash="a37efb3c2d5497bc37393a8fa4879b57"/></dir><file name="Data.php" hash="77c4d9c47b4a2cd161a506d74024e639"/><dir name="Other"><file name="EventNotification.php" hash="c880abfad0408709e7c801f74c0c1882"/><file name="File.php" hash="71f3239c95c09f03a954d47ebdd20233"/></dir><file name="Other.php" hash="bea8844bf4037303bcf7bd064e18ae3f"/></dir><file name="Package.php" hash="2b1d5236b81621130c7522ddc105bd90"/><file name="Session.php" hash="340e63e5c25296bbe9baf8426dba1726"/></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="pure360"><file name="pure360.css" hash="ea0485422716685e1753945731b3391e"/></dir><dir name="images"><dir name="pure360"><file name="pure_logo.png" hash="e03329ae9efacfeb292f079992a18a41"/><file name="switch.png" hash="dc4dd15ad074ab584444bda7660afe7a"/></dir></dir></dir></dir></dir></target></contents>
|
97 |
<compatible/>
|
98 |
<dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php><extension><name>soap</name><min></min><max></max></extension></required></dependencies>
|
99 |
</package>
|