Version Notes
Improvements:
- Added the attribute set name to sync.
- Added field validation linking fields to Copernica.
- Changed download link to Magento Connect.
- Only sync guest orders by initial sync, other orders are synced via the customer.
Download this release
Release Info
Developer | Cream |
Extension | Copernica_MarketingSoftware |
Version | 2.0.1 |
Comparing to | |
See all releases |
Code changes from version 2.0.0 to 2.0.1
- app/code/community/Copernica/MarketingSoftware/Helper/Config.php +11 -9
- app/code/community/Copernica/MarketingSoftware/Helper/Data.php +4 -2
- app/code/community/Copernica/MarketingSoftware/Model/Abstraction/Customer.php +6 -6
- app/code/community/Copernica/MarketingSoftware/Model/Abstraction/Product.php +21 -9
- app/code/community/Copernica/MarketingSoftware/Model/Abstraction/Storeview.php +9 -8
- app/code/community/Copernica/MarketingSoftware/Model/Copernica/Cartitem/Subprofile.php +2 -1
- app/code/community/Copernica/MarketingSoftware/Model/Copernica/Order/Subprofile.php +1 -2
- app/code/community/Copernica/MarketingSoftware/Model/Copernica/Orderitem/Subprofile.php +2 -2
- app/code/community/Copernica/MarketingSoftware/Model/Copernica/Profileorder.php +1 -1
- app/code/community/Copernica/MarketingSoftware/Model/Copernica/Profilequote.php +1 -1
- app/code/community/Copernica/MarketingSoftware/Model/Copernica/Profilesubscription.php +1 -1
- app/code/community/Copernica/MarketingSoftware/Model/QueueEvent/StartSync.php +8 -4
- app/code/community/Copernica/MarketingSoftware/controllers/Adminhtml/Marketingsoftware/LinkController.php +22 -10
- app/code/community/Copernica/MarketingSoftware/controllers/ProductController.php +6 -0
- app/code/community/Copernica/MarketingSoftware/etc/config.xml +1 -1
- app/design/adminhtml/default/default/template/marketingsoftware/link.phtml +22 -13
- package.xml +8 -10
app/code/community/Copernica/MarketingSoftware/Helper/Config.php
CHANGED
@@ -22,7 +22,7 @@ class Copernica_MarketingSoftware_Helper_Config extends Mage_Core_Helper_Abstrac
|
|
22 |
* @param string $name Name of the config parameter
|
23 |
* @param string $value Value that should be stored in the config
|
24 |
*/
|
25 |
-
private function _setConfig($name, $value)
|
26 |
{
|
27 |
// is this value new the same as the existing value
|
28 |
if ($value === $this->_getConfig($name)) return;
|
@@ -30,8 +30,10 @@ class Copernica_MarketingSoftware_Helper_Config extends Mage_Core_Helper_Abstrac
|
|
30 |
// Store the value in the config
|
31 |
Mage::getConfig()->saveConfig(self::CONFIG_BASE . $name, $value);
|
32 |
|
33 |
-
|
34 |
-
|
|
|
|
|
35 |
|
36 |
// some config items are not that interesting
|
37 |
if (in_array($name, array(
|
@@ -188,7 +190,7 @@ class Copernica_MarketingSoftware_Helper_Config extends Mage_Core_Helper_Abstrac
|
|
188 |
*/
|
189 |
public function setLinkedCustomerFields($value)
|
190 |
{
|
191 |
-
$this->_setConfig('linked_customer_fields', json_encode($value));
|
192 |
return $this;
|
193 |
}
|
194 |
|
@@ -232,7 +234,7 @@ class Copernica_MarketingSoftware_Helper_Config extends Mage_Core_Helper_Abstrac
|
|
232 |
*/
|
233 |
public function setLinkedCartItemFields($value)
|
234 |
{
|
235 |
-
$this->_setConfig('linked_cart_item_fields', json_encode($value));
|
236 |
return $this;
|
237 |
}
|
238 |
|
@@ -297,7 +299,7 @@ class Copernica_MarketingSoftware_Helper_Config extends Mage_Core_Helper_Abstrac
|
|
297 |
*/
|
298 |
public function setLinkedOrderFields($value)
|
299 |
{
|
300 |
-
$this->_setConfig('linked_order_fields', json_encode($value));
|
301 |
return $this;
|
302 |
}
|
303 |
|
@@ -365,7 +367,7 @@ class Copernica_MarketingSoftware_Helper_Config extends Mage_Core_Helper_Abstrac
|
|
365 |
*/
|
366 |
public function setLinkedOrderItemFields($value)
|
367 |
{
|
368 |
-
$this->_setConfig('linked_order_item_fields', json_encode($value));
|
369 |
return $this;
|
370 |
}
|
371 |
|
@@ -427,7 +429,7 @@ class Copernica_MarketingSoftware_Helper_Config extends Mage_Core_Helper_Abstrac
|
|
427 |
*/
|
428 |
public function setLinkedAddressFields($value)
|
429 |
{
|
430 |
-
$this->_setConfig('linked_address_fields', json_encode($value));
|
431 |
return $this;
|
432 |
}
|
433 |
|
@@ -534,7 +536,7 @@ class Copernica_MarketingSoftware_Helper_Config extends Mage_Core_Helper_Abstrac
|
|
534 |
*/
|
535 |
public function setLastEndTimeCronjob($value)
|
536 |
{
|
537 |
-
$this->_setConfig('cronjob_endtime', $value);
|
538 |
return $this;
|
539 |
}
|
540 |
|
22 |
* @param string $name Name of the config parameter
|
23 |
* @param string $value Value that should be stored in the config
|
24 |
*/
|
25 |
+
private function _setConfig($name, $value, $cleanCache = false)
|
26 |
{
|
27 |
// is this value new the same as the existing value
|
28 |
if ($value === $this->_getConfig($name)) return;
|
30 |
// Store the value in the config
|
31 |
Mage::getConfig()->saveConfig(self::CONFIG_BASE . $name, $value);
|
32 |
|
33 |
+
if ($cleanCache) {
|
34 |
+
// We changed something in the settings, clean the cache
|
35 |
+
Mage::getConfig()->cleanCache();
|
36 |
+
}
|
37 |
|
38 |
// some config items are not that interesting
|
39 |
if (in_array($name, array(
|
190 |
*/
|
191 |
public function setLinkedCustomerFields($value)
|
192 |
{
|
193 |
+
$this->_setConfig('linked_customer_fields', json_encode($value), true);
|
194 |
return $this;
|
195 |
}
|
196 |
|
234 |
*/
|
235 |
public function setLinkedCartItemFields($value)
|
236 |
{
|
237 |
+
$this->_setConfig('linked_cart_item_fields', json_encode($value), true);
|
238 |
return $this;
|
239 |
}
|
240 |
|
299 |
*/
|
300 |
public function setLinkedOrderFields($value)
|
301 |
{
|
302 |
+
$this->_setConfig('linked_order_fields', json_encode($value), true);
|
303 |
return $this;
|
304 |
}
|
305 |
|
367 |
*/
|
368 |
public function setLinkedOrderItemFields($value)
|
369 |
{
|
370 |
+
$this->_setConfig('linked_order_item_fields', json_encode($value), true);
|
371 |
return $this;
|
372 |
}
|
373 |
|
429 |
*/
|
430 |
public function setLinkedAddressFields($value)
|
431 |
{
|
432 |
+
$this->_setConfig('linked_address_fields', json_encode($value), true);
|
433 |
return $this;
|
434 |
}
|
435 |
|
536 |
*/
|
537 |
public function setLastEndTimeCronjob($value)
|
538 |
{
|
539 |
+
$this->_setConfig('cronjob_endtime', $value, true);
|
540 |
return $this;
|
541 |
}
|
542 |
|
app/code/community/Copernica/MarketingSoftware/Helper/Data.php
CHANGED
@@ -36,6 +36,7 @@ class Copernica_MarketingSoftware_Helper_Data extends Mage_Core_Helper_Abstract
|
|
36 |
'product_id' => 'product id',
|
37 |
'name' => 'Product name',
|
38 |
'sku' => 'SKU',
|
|
|
39 |
'weight' => 'Weight',
|
40 |
'quantity' => 'Quantity',
|
41 |
'price' => 'Price',
|
@@ -88,6 +89,7 @@ class Copernica_MarketingSoftware_Helper_Data extends Mage_Core_Helper_Abstract
|
|
88 |
'increment_id' => 'Increment id',
|
89 |
'name' => 'Product name',
|
90 |
'sku' => 'SKU',
|
|
|
91 |
'weight' => 'Weight',
|
92 |
'quantity' => 'Quantity',
|
93 |
'price' => 'Price',
|
@@ -281,7 +283,7 @@ class Copernica_MarketingSoftware_Helper_Data extends Mage_Core_Helper_Abstract
|
|
281 |
public function validatePluginBehaviour()
|
282 |
{
|
283 |
// A new version is available
|
284 |
-
if ($version = $this->checkNewVersion()) Mage::getSingleton('adminhtml/session')->addNotice("A new version ($version) of the Magento-Copernica extension is available. Click <a href='http://www.
|
285 |
|
286 |
// Perform the checks, an exception might be thrown, not that in in this way we can show only one error
|
287 |
try
|
@@ -341,6 +343,6 @@ class Copernica_MarketingSoftware_Helper_Data extends Mage_Core_Helper_Abstract
|
|
341 |
*/
|
342 |
public function generateCustomerId($email, $storeview)
|
343 |
{
|
344 |
-
return md5($email . $storeview);
|
345 |
}
|
346 |
}
|
36 |
'product_id' => 'product id',
|
37 |
'name' => 'Product name',
|
38 |
'sku' => 'SKU',
|
39 |
+
'attribute_set' => 'Attribute set',
|
40 |
'weight' => 'Weight',
|
41 |
'quantity' => 'Quantity',
|
42 |
'price' => 'Price',
|
89 |
'increment_id' => 'Increment id',
|
90 |
'name' => 'Product name',
|
91 |
'sku' => 'SKU',
|
92 |
+
'attribute_set' => 'Attribute set',
|
93 |
'weight' => 'Weight',
|
94 |
'quantity' => 'Quantity',
|
95 |
'price' => 'Price',
|
283 |
public function validatePluginBehaviour()
|
284 |
{
|
285 |
// A new version is available
|
286 |
+
if ($version = $this->checkNewVersion()) Mage::getSingleton('adminhtml/session')->addNotice("A new version ($version) of the Magento-Copernica extension is available. Click <a href='http://www.magentocommerce.com/magento-connect/copernica-marketing-software-8325.html'>here</a> to download it.");
|
287 |
|
288 |
// Perform the checks, an exception might be thrown, not that in in this way we can show only one error
|
289 |
try
|
343 |
*/
|
344 |
public function generateCustomerId($email, $storeview)
|
345 |
{
|
346 |
+
return md5(strtolower($email) . $storeview);
|
347 |
}
|
348 |
}
|
app/code/community/Copernica/MarketingSoftware/Model/Abstraction/Customer.php
CHANGED
@@ -137,14 +137,14 @@ class Copernica_MarketingSoftware_Model_Abstraction_Customer implements Serializ
|
|
137 |
if (is_object($this->original))
|
138 |
{
|
139 |
$subscriber = Mage::getModel('newsletter/subscriber');
|
140 |
-
if (
|
141 |
-
$subscriber->
|
142 |
-
|
143 |
-
|
144 |
-
return Mage::getModel('marketingsoftware/abstraction_subscription')->setOriginal($subscriber);
|
145 |
}
|
|
|
|
|
146 |
}
|
147 |
-
else return $this->subscription;
|
148 |
}
|
149 |
|
150 |
/**
|
137 |
if (is_object($this->original))
|
138 |
{
|
139 |
$subscriber = Mage::getModel('newsletter/subscriber');
|
140 |
+
if ($subscriber->loadByCustomer($this->original)->getId()) {
|
141 |
+
if ($subscriber->getStoreId() === $this->original->getStoreId()) {
|
142 |
+
return Mage::getModel('marketingsoftware/abstraction_subscription')->setOriginal($subscriber);
|
143 |
+
}
|
|
|
144 |
}
|
145 |
+
} else {
|
146 |
+
return $this->subscription;
|
147 |
}
|
|
|
148 |
}
|
149 |
|
150 |
/**
|
app/code/community/Copernica/MarketingSoftware/Model/Abstraction/Product.php
CHANGED
@@ -26,6 +26,7 @@ class Copernica_MarketingSoftware_Model_Abstraction_Product implements Serializa
|
|
26 |
private $created;
|
27 |
private $modified;
|
28 |
private $attributes;
|
|
|
29 |
|
30 |
/**
|
31 |
* Sets the original model
|
@@ -33,28 +34,24 @@ class Copernica_MarketingSoftware_Model_Abstraction_Product implements Serializa
|
|
33 |
* @return Copernica_MarketingSoftware_Model_Abstraction_Product
|
34 |
*/
|
35 |
public function setOriginal($original)
|
36 |
-
{
|
37 |
if ($original instanceof Mage_Catalog_Model_Product) {
|
38 |
//this is the original product
|
39 |
$this->original = $original;
|
40 |
|
41 |
return $this;
|
42 |
-
}
|
43 |
-
else
|
44 |
-
{
|
45 |
//the quote item or order item has a product id
|
46 |
$product = Mage::getModel('catalog/product')->load($original->getProductId());
|
47 |
-
if ($product->getId())
|
48 |
-
{
|
49 |
//the product exists
|
50 |
$this->original = $product;
|
51 |
-
}
|
52 |
-
else
|
53 |
-
{
|
54 |
// unfortunately we do not have the product any more, but we have the information
|
55 |
// so we can fill a lot of fields, so the functions still work
|
56 |
$this->id = $original->getProductId();
|
57 |
$this->sku = $original->getSKU();
|
|
|
58 |
$this->name = $original->getName();
|
59 |
$this->description = $original->getDescription();
|
60 |
$this->productUrl = '';
|
@@ -359,6 +356,19 @@ class Copernica_MarketingSoftware_Model_Abstraction_Product implements Serializa
|
|
359 |
}
|
360 |
else return $this->attributes;
|
361 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
362 |
|
363 |
/**
|
364 |
* Serialize the object
|
@@ -370,6 +380,7 @@ class Copernica_MarketingSoftware_Model_Abstraction_Product implements Serializa
|
|
370 |
return serialize(array(
|
371 |
$this->id(),
|
372 |
$this->sku(),
|
|
|
373 |
$this->name(),
|
374 |
$this->description(),
|
375 |
$this->productUrl(),
|
@@ -394,6 +405,7 @@ class Copernica_MarketingSoftware_Model_Abstraction_Product implements Serializa
|
|
394 |
list(
|
395 |
$this->id,
|
396 |
$this->sku,
|
|
|
397 |
$this->name,
|
398 |
$this->description,
|
399 |
$this->productUrl,
|
26 |
private $created;
|
27 |
private $modified;
|
28 |
private $attributes;
|
29 |
+
private $attributeSet;
|
30 |
|
31 |
/**
|
32 |
* Sets the original model
|
34 |
* @return Copernica_MarketingSoftware_Model_Abstraction_Product
|
35 |
*/
|
36 |
public function setOriginal($original)
|
37 |
+
{
|
38 |
if ($original instanceof Mage_Catalog_Model_Product) {
|
39 |
//this is the original product
|
40 |
$this->original = $original;
|
41 |
|
42 |
return $this;
|
43 |
+
} else {
|
|
|
|
|
44 |
//the quote item or order item has a product id
|
45 |
$product = Mage::getModel('catalog/product')->load($original->getProductId());
|
46 |
+
if ($product->getId()) {
|
|
|
47 |
//the product exists
|
48 |
$this->original = $product;
|
49 |
+
} else {
|
|
|
|
|
50 |
// unfortunately we do not have the product any more, but we have the information
|
51 |
// so we can fill a lot of fields, so the functions still work
|
52 |
$this->id = $original->getProductId();
|
53 |
$this->sku = $original->getSKU();
|
54 |
+
$this->attributeSet = '';
|
55 |
$this->name = $original->getName();
|
56 |
$this->description = $original->getDescription();
|
57 |
$this->productUrl = '';
|
356 |
}
|
357 |
else return $this->attributes;
|
358 |
}
|
359 |
+
|
360 |
+
public function attributeSet()
|
361 |
+
{
|
362 |
+
// Is this object still present?
|
363 |
+
if (is_object($this->original)) {
|
364 |
+
$attributeSetModel = Mage::getModel("eav/entity_attribute_set");
|
365 |
+
$attributeSetModel->load($this->original->getAttributeSetId());
|
366 |
+
|
367 |
+
return $attributeSetModel->getAttributeSetName();
|
368 |
+
} else {
|
369 |
+
return $this->attributeSet;
|
370 |
+
}
|
371 |
+
}
|
372 |
|
373 |
/**
|
374 |
* Serialize the object
|
380 |
return serialize(array(
|
381 |
$this->id(),
|
382 |
$this->sku(),
|
383 |
+
$this->attributeSet(),
|
384 |
$this->name(),
|
385 |
$this->description(),
|
386 |
$this->productUrl(),
|
405 |
list(
|
406 |
$this->id,
|
407 |
$this->sku,
|
408 |
+
$this->attributeSet,
|
409 |
$this->name,
|
410 |
$this->description,
|
411 |
$this->productUrl,
|
app/code/community/Copernica/MarketingSoftware/Model/Abstraction/Storeview.php
CHANGED
@@ -40,7 +40,7 @@ class Copernica_MarketingSoftware_Model_Abstraction_Storeview implements Seriali
|
|
40 |
public function id()
|
41 |
{
|
42 |
// Is this object still present?
|
43 |
-
if (
|
44 |
{
|
45 |
return $this->original->getId();
|
46 |
}
|
@@ -54,11 +54,12 @@ class Copernica_MarketingSoftware_Model_Abstraction_Storeview implements Seriali
|
|
54 |
public function websiteCode()
|
55 |
{
|
56 |
// Is this object still present?
|
57 |
-
if (
|
58 |
{
|
59 |
return $this->original->getWebsite()->getCode();
|
60 |
}
|
61 |
-
|
|
|
62 |
}
|
63 |
|
64 |
/**
|
@@ -68,7 +69,7 @@ class Copernica_MarketingSoftware_Model_Abstraction_Storeview implements Seriali
|
|
68 |
public function websiteLabel()
|
69 |
{
|
70 |
// Is this object still present?
|
71 |
-
if (
|
72 |
{
|
73 |
return $this->original->getWebsite()->getName();
|
74 |
}
|
@@ -82,7 +83,7 @@ class Copernica_MarketingSoftware_Model_Abstraction_Storeview implements Seriali
|
|
82 |
public function storeCode()
|
83 |
{
|
84 |
// Is this object still present?
|
85 |
-
if (
|
86 |
{
|
87 |
return $this->original->getGroup()->getId();
|
88 |
}
|
@@ -96,7 +97,7 @@ class Copernica_MarketingSoftware_Model_Abstraction_Storeview implements Seriali
|
|
96 |
public function storeLabel()
|
97 |
{
|
98 |
// Is this object still present?
|
99 |
-
if (
|
100 |
{
|
101 |
return $this->original->getGroup()->getName();
|
102 |
}
|
@@ -110,7 +111,7 @@ class Copernica_MarketingSoftware_Model_Abstraction_Storeview implements Seriali
|
|
110 |
public function viewCode()
|
111 |
{
|
112 |
// Is this object still present?
|
113 |
-
if (
|
114 |
{
|
115 |
return $this->original->getCode();
|
116 |
}
|
@@ -124,7 +125,7 @@ class Copernica_MarketingSoftware_Model_Abstraction_Storeview implements Seriali
|
|
124 |
public function viewLabel()
|
125 |
{
|
126 |
// Is this object still present?
|
127 |
-
if (
|
128 |
{
|
129 |
return $this->original->getName();
|
130 |
}
|
40 |
public function id()
|
41 |
{
|
42 |
// Is this object still present?
|
43 |
+
if ($this->original instanceof Mage_Core_Model_Store && $this->original->getWebsite() instanceof Mage_Core_Model_Website)
|
44 |
{
|
45 |
return $this->original->getId();
|
46 |
}
|
54 |
public function websiteCode()
|
55 |
{
|
56 |
// Is this object still present?
|
57 |
+
if ($this->original instanceof Mage_Core_Model_Store && $this->original->getWebsite() instanceof Mage_Core_Model_Website)
|
58 |
{
|
59 |
return $this->original->getWebsite()->getCode();
|
60 |
}
|
61 |
+
|
62 |
+
return $this->websiteCode;
|
63 |
}
|
64 |
|
65 |
/**
|
69 |
public function websiteLabel()
|
70 |
{
|
71 |
// Is this object still present?
|
72 |
+
if ($this->original instanceof Mage_Core_Model_Store && $this->original->getWebsite() instanceof Mage_Core_Model_Website)
|
73 |
{
|
74 |
return $this->original->getWebsite()->getName();
|
75 |
}
|
83 |
public function storeCode()
|
84 |
{
|
85 |
// Is this object still present?
|
86 |
+
if ($this->original instanceof Mage_Core_Model_Store && $this->original->getWebsite() instanceof Mage_Core_Model_Website)
|
87 |
{
|
88 |
return $this->original->getGroup()->getId();
|
89 |
}
|
97 |
public function storeLabel()
|
98 |
{
|
99 |
// Is this object still present?
|
100 |
+
if ($this->original instanceof Mage_Core_Model_Store && $this->original->getWebsite() instanceof Mage_Core_Model_Website)
|
101 |
{
|
102 |
return $this->original->getGroup()->getName();
|
103 |
}
|
111 |
public function viewCode()
|
112 |
{
|
113 |
// Is this object still present?
|
114 |
+
if ($this->original instanceof Mage_Core_Model_Store && $this->original->getWebsite() instanceof Mage_Core_Model_Website)
|
115 |
{
|
116 |
return $this->original->getCode();
|
117 |
}
|
125 |
public function viewLabel()
|
126 |
{
|
127 |
// Is this object still present?
|
128 |
+
if ($this->original instanceof Mage_Core_Model_Store && $this->original->getWebsite() instanceof Mage_Core_Model_Website)
|
129 |
{
|
130 |
return $this->original->getName();
|
131 |
}
|
app/code/community/Copernica/MarketingSoftware/Model/Copernica/Cartitem/Subprofile.php
CHANGED
@@ -7,7 +7,7 @@ class Copernica_MarketingSoftware_Model_Copernica_Cartitem_Subprofile extends Co
|
|
7 |
/**
|
8 |
* @var Copernica_MarketingSoftware_Model_Abstraction_Quote_Item
|
9 |
*/
|
10 |
-
|
11 |
|
12 |
/**
|
13 |
* @var string
|
@@ -93,6 +93,7 @@ class Copernica_MarketingSoftware_Model_Copernica_Cartitem_Subprofile extends Co
|
|
93 |
'status' => $this->status,
|
94 |
'name' => $product->name(),
|
95 |
'sku' => $product->sku(),
|
|
|
96 |
'weight' => $quoteItem->weight(),
|
97 |
'quantity' => $quoteItem->quantity(),
|
98 |
'timestamp' => $quoteItem->timestamp(),
|
7 |
/**
|
8 |
* @var Copernica_MarketingSoftware_Model_Abstraction_Quote_Item
|
9 |
*/
|
10 |
+
protected $quoteItem = false;
|
11 |
|
12 |
/**
|
13 |
* @var string
|
93 |
'status' => $this->status,
|
94 |
'name' => $product->name(),
|
95 |
'sku' => $product->sku(),
|
96 |
+
'attribute_set' => $product->attributeSet(),
|
97 |
'weight' => $quoteItem->weight(),
|
98 |
'quantity' => $quoteItem->quantity(),
|
99 |
'timestamp' => $quoteItem->timestamp(),
|
app/code/community/Copernica/MarketingSoftware/Model/Copernica/Order/Subprofile.php
CHANGED
@@ -7,8 +7,7 @@ class Copernica_MarketingSoftware_Model_Copernica_Order_Subprofile extends Coper
|
|
7 |
/**
|
8 |
* @var Copernica_MarketingSoftware_Model_Abstraction_Order
|
9 |
*/
|
10 |
-
|
11 |
-
|
12 |
|
13 |
/**
|
14 |
* Return the identifier for this profile
|
7 |
/**
|
8 |
* @var Copernica_MarketingSoftware_Model_Abstraction_Order
|
9 |
*/
|
10 |
+
protected $order = false;
|
|
|
11 |
|
12 |
/**
|
13 |
* Return the identifier for this profile
|
app/code/community/Copernica/MarketingSoftware/Model/Copernica/Orderitem/Subprofile.php
CHANGED
@@ -7,8 +7,7 @@ class Copernica_MarketingSoftware_Model_Copernica_Orderitem_Subprofile extends C
|
|
7 |
/**
|
8 |
* @var Copernica_MarketingSoftware_Model_Abstraction_Order_Item
|
9 |
*/
|
10 |
-
|
11 |
-
|
12 |
|
13 |
/**
|
14 |
* Return the identifier for this profile
|
@@ -77,6 +76,7 @@ class Copernica_MarketingSoftware_Model_Copernica_Orderitem_Subprofile extends C
|
|
77 |
'price' => is_object($price) ? $price->itemPrice() : null,
|
78 |
'name' => $product->name(),
|
79 |
'sku' => $product->sku(),
|
|
|
80 |
'weight' => $orderItem->weight(),
|
81 |
'quantity' => $orderItem->quantity(),
|
82 |
'timestamp' => $orderItem->timestamp(),
|
7 |
/**
|
8 |
* @var Copernica_MarketingSoftware_Model_Abstraction_Order_Item
|
9 |
*/
|
10 |
+
protected $orderItem = false;
|
|
|
11 |
|
12 |
/**
|
13 |
* Return the identifier for this profile
|
76 |
'price' => is_object($price) ? $price->itemPrice() : null,
|
77 |
'name' => $product->name(),
|
78 |
'sku' => $product->sku(),
|
79 |
+
'attribute_set' => $product->attributeSet(),
|
80 |
'weight' => $orderItem->weight(),
|
81 |
'quantity' => $orderItem->quantity(),
|
82 |
'timestamp' => $orderItem->timestamp(),
|
app/code/community/Copernica/MarketingSoftware/Model/Copernica/Profileorder.php
CHANGED
@@ -46,7 +46,7 @@ class Copernica_MarketingSoftware_Model_Copernica_ProfileOrder extends Copernica
|
|
46 |
|
47 |
// return an array with customer data
|
48 |
return array(
|
49 |
-
'customer_id' => Mage::helper('marketingsoftware')->generateCustomerId($address->email(), $this->order->storeview()),
|
50 |
'store_view' => (string)$this->order->storeview(),
|
51 |
'firstname' => is_object($name) ? $name->firstname() : null,
|
52 |
'middlename' => is_object($name) ? $name->middlename() : null,
|
46 |
|
47 |
// return an array with customer data
|
48 |
return array(
|
49 |
+
'customer_id' => Mage::helper('marketingsoftware')->generateCustomerId($address->email(), (string)$this->order->storeview()),
|
50 |
'store_view' => (string)$this->order->storeview(),
|
51 |
'firstname' => is_object($name) ? $name->firstname() : null,
|
52 |
'middlename' => is_object($name) ? $name->middlename() : null,
|
app/code/community/Copernica/MarketingSoftware/Model/Copernica/Profilequote.php
CHANGED
@@ -46,7 +46,7 @@ class Copernica_MarketingSoftware_Model_Copernica_ProfileQuote extends Copernica
|
|
46 |
|
47 |
// return an array with customer data
|
48 |
return array(
|
49 |
-
'customer_id' => Mage::helper('marketingsoftware')->generateCustomerId($address->email(), $this->quote->storeview()),
|
50 |
'store_view' => (string)$this->quote->storeview(),
|
51 |
'firstname' => is_object($name) ? $name->firstname() : null,
|
52 |
'middlename' => is_object($name) ? $name->middlename() : null,
|
46 |
|
47 |
// return an array with customer data
|
48 |
return array(
|
49 |
+
'customer_id' => Mage::helper('marketingsoftware')->generateCustomerId($address->email(), (string)$this->quote->storeview()),
|
50 |
'store_view' => (string)$this->quote->storeview(),
|
51 |
'firstname' => is_object($name) ? $name->firstname() : null,
|
52 |
'middlename' => is_object($name) ? $name->middlename() : null,
|
app/code/community/Copernica/MarketingSoftware/Model/Copernica/Profilesubscription.php
CHANGED
@@ -28,7 +28,7 @@ class Copernica_MarketingSoftware_Model_Copernica_ProfileSubscription extends Co
|
|
28 |
{
|
29 |
// return an array with customer data
|
30 |
return array(
|
31 |
-
'customer_id' => Mage::helper('marketingsoftware')->generateCustomerId($this->subscription->email(), $this->subscription->storeView()),
|
32 |
'store_view' => (string)$this->subscription->storeView(),
|
33 |
'email' => $this->subscription->email(),
|
34 |
'group' => Mage::getModel('customer/group')->load(0)->getCode(),
|
28 |
{
|
29 |
// return an array with customer data
|
30 |
return array(
|
31 |
+
'customer_id' => Mage::helper('marketingsoftware')->generateCustomerId($this->subscription->email(), (string)$this->subscription->storeView()),
|
32 |
'store_view' => (string)$this->subscription->storeView(),
|
33 |
'email' => $this->subscription->email(),
|
34 |
'group' => Mage::getModel('customer/group')->load(0)->getCode(),
|
app/code/community/Copernica/MarketingSoftware/Model/QueueEvent/StartSync.php
CHANGED
@@ -59,6 +59,8 @@ class Copernica_MarketingSoftware_Model_QueueEvent_StartSync extends Copernica_M
|
|
59 |
->getCollection()
|
60 |
->setPageSize($pageSize)
|
61 |
->addAttributeToSort('updated_at')
|
|
|
|
|
62 |
->addAttributeToFilter('updated_at', array(
|
63 |
'from' => $config->getCustomerProgressStatus()
|
64 |
));
|
@@ -130,6 +132,7 @@ class Copernica_MarketingSoftware_Model_QueueEvent_StartSync extends Copernica_M
|
|
130 |
$orders = Mage::getModel('sales/order')
|
131 |
->getCollection()
|
132 |
->addAttributeToSort('updated_at')
|
|
|
133 |
->addAttributeToFilter('updated_at', array(
|
134 |
'from' => $config->getOrderProgressStatus()
|
135 |
));
|
@@ -159,9 +162,9 @@ class Copernica_MarketingSoftware_Model_QueueEvent_StartSync extends Copernica_M
|
|
159 |
// Was this record changed or modified after the last synchronisation
|
160 |
if ($order->getCreatedAt() <= $progressDateTime &&
|
161 |
$order->getUpdatedAt() <= $progressDateTime ) continue;
|
162 |
-
|
163 |
-
//
|
164 |
-
if ($order->getCustomerId()) continue;
|
165 |
|
166 |
// wrap the object
|
167 |
$object = Mage::getModel('marketingsoftware/abstraction_order')->loadOrder($order->getEntityId());
|
@@ -211,7 +214,8 @@ class Copernica_MarketingSoftware_Model_QueueEvent_StartSync extends Copernica_M
|
|
211 |
// get the subscriptions
|
212 |
$subscriptions = Mage::getModel('newsletter/subscriber')
|
213 |
->getCollection()
|
214 |
-
->addFieldToFilter('customer_id', array(0, 'null'))
|
|
|
215 |
|
216 |
// iterate over the subscriptions
|
217 |
foreach ($subscriptions as $subscription)
|
59 |
->getCollection()
|
60 |
->setPageSize($pageSize)
|
61 |
->addAttributeToSort('updated_at')
|
62 |
+
->addAttributeToFilter('store_id', array('notnull' => true))
|
63 |
+
->addAttributeToFilter('website_id', array('notnull' => true))
|
64 |
->addAttributeToFilter('updated_at', array(
|
65 |
'from' => $config->getCustomerProgressStatus()
|
66 |
));
|
132 |
$orders = Mage::getModel('sales/order')
|
133 |
->getCollection()
|
134 |
->addAttributeToSort('updated_at')
|
135 |
+
->addAttributeToFilter('store_id', array('notnull' => true))
|
136 |
->addAttributeToFilter('updated_at', array(
|
137 |
'from' => $config->getOrderProgressStatus()
|
138 |
));
|
162 |
// Was this record changed or modified after the last synchronisation
|
163 |
if ($order->getCreatedAt() <= $progressDateTime &&
|
164 |
$order->getUpdatedAt() <= $progressDateTime ) continue;
|
165 |
+
|
166 |
+
// Only sync guest orders
|
167 |
+
if ($order->getCustomerId()) continue;
|
168 |
|
169 |
// wrap the object
|
170 |
$object = Mage::getModel('marketingsoftware/abstraction_order')->loadOrder($order->getEntityId());
|
214 |
// get the subscriptions
|
215 |
$subscriptions = Mage::getModel('newsletter/subscriber')
|
216 |
->getCollection()
|
217 |
+
->addFieldToFilter('customer_id', array(0, 'null'))
|
218 |
+
->addFieldToFilter('store_id', array('notnull' => true));
|
219 |
|
220 |
// iterate over the subscriptions
|
221 |
foreach ($subscriptions as $subscription)
|
app/code/community/Copernica/MarketingSoftware/controllers/Adminhtml/Marketingsoftware/LinkController.php
CHANGED
@@ -32,7 +32,8 @@ class Copernica_MarketingSoftware_Adminhtml_Marketingsoftware_LinkController ext
|
|
32 |
$this->getLayout()->getBlock('head')->addJs('copernica/marketingsoftware/field.js');
|
33 |
$this->getLayout()->getBlock('head')->addJs('copernica/marketingsoftware/collection.js');
|
34 |
$this->getLayout()->getBlock('head')->addJs('copernica/marketingsoftware/database.js');
|
35 |
-
|
|
|
36 |
// Render the layout
|
37 |
$this->renderLayout();
|
38 |
}
|
@@ -67,18 +68,29 @@ class Copernica_MarketingSoftware_Adminhtml_Marketingsoftware_LinkController ext
|
|
67 |
// now we need to process the request
|
68 |
switch ($data['type'])
|
69 |
{
|
70 |
-
case 'check_database':
|
|
|
|
|
71 |
case 'repair_database':
|
72 |
-
case 'create_database':
|
73 |
-
|
74 |
-
|
|
|
|
|
|
|
75 |
case 'create_collection':
|
76 |
-
case 'repair_collection':
|
77 |
-
|
78 |
-
|
|
|
|
|
|
|
79 |
case 'repair_field':
|
80 |
-
case 'create_field':
|
81 |
-
|
|
|
|
|
|
|
82 |
}
|
83 |
|
84 |
// store the result
|
32 |
$this->getLayout()->getBlock('head')->addJs('copernica/marketingsoftware/field.js');
|
33 |
$this->getLayout()->getBlock('head')->addJs('copernica/marketingsoftware/collection.js');
|
34 |
$this->getLayout()->getBlock('head')->addJs('copernica/marketingsoftware/database.js');
|
35 |
+
$this->getLayout()->getBlock('head')->addJs('varien/form.js');
|
36 |
+
|
37 |
// Render the layout
|
38 |
$this->renderLayout();
|
39 |
}
|
68 |
// now we need to process the request
|
69 |
switch ($data['type'])
|
70 |
{
|
71 |
+
case 'check_database':
|
72 |
+
$result = $api->validateDatabase($data['database']);
|
73 |
+
break;
|
74 |
case 'repair_database':
|
75 |
+
case 'create_database':
|
76 |
+
$result = $api->repairDatabase($data['database']);
|
77 |
+
break;
|
78 |
+
case 'check_collection':
|
79 |
+
$result = $api->validateCollection($data['database'], $data['collection_type'], $data['collection']);
|
80 |
+
break;
|
81 |
case 'create_collection':
|
82 |
+
case 'repair_collection':
|
83 |
+
$result = $api->repairCollection($data['database'], $data['collection_type'], $data['collection']);
|
84 |
+
break;
|
85 |
+
case 'check_field':
|
86 |
+
$result = $api->validateField($data['field_system_name'], $data['field'], $data['database'], $data['collection'] == 'database' ? false : $data['collection'], $data['collectionName']);
|
87 |
+
break;
|
88 |
case 'repair_field':
|
89 |
+
case 'create_field':
|
90 |
+
$result = $api->repairField($data['field_system_name'], $data['field'], $data['database'], $data['collection'] == 'database' ? false : $data['collection'], $data['collectionName']);
|
91 |
+
break;
|
92 |
+
default:
|
93 |
+
$result = "impossible";
|
94 |
}
|
95 |
|
96 |
// store the result
|
app/code/community/Copernica/MarketingSoftware/controllers/ProductController.php
CHANGED
@@ -91,6 +91,10 @@ class Copernica_MarketingSoftware_ProductController extends Mage_Core_Controller
|
|
91 |
}
|
92 |
elseif (!is_array($value))
|
93 |
{
|
|
|
|
|
|
|
|
|
94 |
$element->addChild($name, htmlspecialchars(html_entity_decode((string)$value)));
|
95 |
continue;
|
96 |
}
|
@@ -110,6 +114,8 @@ class Copernica_MarketingSoftware_ProductController extends Mage_Core_Controller
|
|
110 |
// special treatment for categories and empty values
|
111 |
if ($name == 'categories') $attribute = implode(' > ', $attribute);
|
112 |
elseif (trim($attribute) === '') continue;
|
|
|
|
|
113 |
|
114 |
// Add the child
|
115 |
$node->addChild($key, htmlspecialchars(html_entity_decode((string)$attribute)));
|
91 |
}
|
92 |
elseif (!is_array($value))
|
93 |
{
|
94 |
+
if ($name == 'price') {
|
95 |
+
$value = Mage::helper('core')->currency($value, true, false);
|
96 |
+
}
|
97 |
+
|
98 |
$element->addChild($name, htmlspecialchars(html_entity_decode((string)$value)));
|
99 |
continue;
|
100 |
}
|
114 |
// special treatment for categories and empty values
|
115 |
if ($name == 'categories') $attribute = implode(' > ', $attribute);
|
116 |
elseif (trim($attribute) === '') continue;
|
117 |
+
|
118 |
+
|
119 |
|
120 |
// Add the child
|
121 |
$node->addChild($key, htmlspecialchars(html_entity_decode((string)$attribute)));
|
app/code/community/Copernica/MarketingSoftware/etc/config.xml
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Copernica_MarketingSoftware>
|
5 |
-
<version>2.0.
|
6 |
</Copernica_MarketingSoftware>
|
7 |
</modules>
|
8 |
<global>
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Copernica_MarketingSoftware>
|
5 |
+
<version>2.0.1</version>
|
6 |
</Copernica_MarketingSoftware>
|
7 |
</modules>
|
8 |
<global>
|
app/design/adminhtml/default/default/template/marketingsoftware/link.phtml
CHANGED
@@ -38,7 +38,7 @@ $_config = Mage::helper('marketingsoftware/config') ?>
|
|
38 |
</tr>
|
39 |
<tr>
|
40 |
<td class="value">
|
41 |
-
<input type="text" class="input-text" value="<?php echo(htmlspecialchars($_config->getDatabaseName())); ?>" name="db_input" id="db_input"/>
|
42 |
</td>
|
43 |
<td class="value">
|
44 |
<span style="display:none;" id="db_checking">Checking database....</span>
|
@@ -102,7 +102,7 @@ $_config = Mage::helper('marketingsoftware/config') ?>
|
|
102 |
</select>
|
103 |
</td>
|
104 |
<td class="value">
|
105 |
-
<input type="text" class="input-text " value="<?php echo htmlspecialchars($copernicaField); ?>" name="<?php echo htmlspecialchars($textfield_name); ?>" id="<?php echo htmlspecialchars($textfield_name); ?>" <?php if ($copernicaField == '') echo "style='display: none;'"; ?>>
|
106 |
</td>
|
107 |
<td class="value">
|
108 |
<span style="display:none;" id="checking_<?php echo $magentoField; ?>">Checking field....</span>
|
@@ -136,7 +136,7 @@ $_config = Mage::helper('marketingsoftware/config') ?>
|
|
136 |
</tr>
|
137 |
<tr>
|
138 |
<td class="value">
|
139 |
-
<input type="text" class="input-text " title="Cart Products Collection" value="<?php echo(htmlspecialchars($_config->getCartItemsCollectionName())); ?>" name="cartproducts_input" id="cartproducts_input">
|
140 |
</td>
|
141 |
<td class="value">
|
142 |
<span style="display:none;" id="cartproducts_checking">Checking collection....</span>
|
@@ -192,7 +192,7 @@ $_config = Mage::helper('marketingsoftware/config') ?>
|
|
192 |
</select>
|
193 |
</td>
|
194 |
<td class="value">
|
195 |
-
<input type="text" class="input-text " value="<?php echo htmlspecialchars($copernicaField); ?>" name="<?php echo htmlspecialchars($textfield_name); ?>" id="<?php echo htmlspecialchars($textfield_name); ?>" <?php if ($copernicaField == '') echo "style='display: none;'"; ?>>
|
196 |
</td>
|
197 |
<td class="value">
|
198 |
<span style="display:none;" id="checking_<?php echo $magentoField; ?>">Checking field....</span>
|
@@ -226,7 +226,7 @@ $_config = Mage::helper('marketingsoftware/config') ?>
|
|
226 |
</tr>
|
227 |
<tr>
|
228 |
<td class="value">
|
229 |
-
<input type="text" class="input-text " title="Completed Orders Collection" value="<?php echo(htmlspecialchars($_config->getOrdersCollectionName())); ?>" name="orders_input" id="orders_input">
|
230 |
</td>
|
231 |
<td class="value">
|
232 |
<span style="display:none;" id="orders_checking">Checking collection....</span>
|
@@ -282,7 +282,7 @@ $_config = Mage::helper('marketingsoftware/config') ?>
|
|
282 |
</select>
|
283 |
</td>
|
284 |
<td class="value">
|
285 |
-
<input type="text" class="input-text " value="<?php echo htmlspecialchars($copernicaField); ?>" name="<?php echo htmlspecialchars($textfield_name); ?>" id="<?php echo htmlspecialchars($textfield_name); ?>" <?php if ($copernicaField == '') echo "style='display: none;'"; ?>>
|
286 |
</td>
|
287 |
<td class="value">
|
288 |
<span style="display:none;" id="checking_<?php echo $magentoField; ?>">Checking field....</span>
|
@@ -316,7 +316,7 @@ $_config = Mage::helper('marketingsoftware/config') ?>
|
|
316 |
</tr>
|
317 |
<tr>
|
318 |
<td class="value">
|
319 |
-
<input type="text" class="input-text " title="Cart Products Collection" value="<?php echo(htmlspecialchars($_config->getOrderItemsCollectionName()))?>" name="orderproducts_input" id="orderproducts_input">
|
320 |
</td>
|
321 |
<td class="value">
|
322 |
<span style="display:none;" id="orderproducts_checking">Checking collection....</span>
|
@@ -372,7 +372,7 @@ $_config = Mage::helper('marketingsoftware/config') ?>
|
|
372 |
</select>
|
373 |
</td>
|
374 |
<td class="value">
|
375 |
-
<input type="text" class="input-text " value="<?php echo htmlspecialchars($copernicaField); ?>" name="<?php echo htmlspecialchars($textfield_name); ?>" id="<?php echo htmlspecialchars($textfield_name); ?>" <?php if ($copernicaField == '') echo "style='display: none;'"; ?>>
|
376 |
</td>
|
377 |
<td class="value">
|
378 |
<span style="display:none;" id="checking_<?php echo $magentoField; ?>">Checking field....</span>
|
@@ -406,7 +406,7 @@ $_config = Mage::helper('marketingsoftware/config') ?>
|
|
406 |
</tr>
|
407 |
<tr>
|
408 |
<td class="value">
|
409 |
-
<input type="text" class="input-text " title="Completed Orders Collection" value="<?php echo(htmlspecialchars($_config->getAddressesCollectionName()))?>" name="addresses_input" id="addresses_input">
|
410 |
</td>
|
411 |
<td class="value">
|
412 |
<span style="display:none;" id="addresses_checking">Checking collection....</span>
|
@@ -463,7 +463,7 @@ $_config = Mage::helper('marketingsoftware/config') ?>
|
|
463 |
</select>
|
464 |
</td>
|
465 |
<td class="value">
|
466 |
-
<input type="text" class="input-text " value="<?php echo htmlspecialchars($copernicaField); ?>" name="<?php echo htmlspecialchars($textfield_name); ?>" id="<?php echo htmlspecialchars($textfield_name); ?>" <?php if ($copernicaField == '') echo "style='display: none;'"; ?>>
|
467 |
</td>
|
468 |
<td class="value">
|
469 |
<span style="display:none;" id="checking_<?php echo $magentoField; ?>">Checking field....</span>
|
@@ -659,8 +659,17 @@ function doAjaxCall(data, callback)
|
|
659 |
}
|
660 |
|
661 |
//<![CDATA[
|
662 |
-
var customForm = new
|
663 |
-
cpForm = new
|
664 |
-
cpProfileCollectionForm = new
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
665 |
//]]>
|
666 |
</script>
|
38 |
</tr>
|
39 |
<tr>
|
40 |
<td class="value">
|
41 |
+
<input type="text" class="input-text validate-code" value="<?php echo(htmlspecialchars($_config->getDatabaseName())); ?>" name="db_input" id="db_input"/>
|
42 |
</td>
|
43 |
<td class="value">
|
44 |
<span style="display:none;" id="db_checking">Checking database....</span>
|
102 |
</select>
|
103 |
</td>
|
104 |
<td class="value">
|
105 |
+
<input type="text" class="input-text validate-code" value="<?php echo htmlspecialchars($copernicaField); ?>" name="<?php echo htmlspecialchars($textfield_name); ?>" id="<?php echo htmlspecialchars($textfield_name); ?>" <?php if ($copernicaField == '') echo "style='display: none;'"; ?>>
|
106 |
</td>
|
107 |
<td class="value">
|
108 |
<span style="display:none;" id="checking_<?php echo $magentoField; ?>">Checking field....</span>
|
136 |
</tr>
|
137 |
<tr>
|
138 |
<td class="value">
|
139 |
+
<input type="text" class="input-text validate-code" title="Cart Products Collection" value="<?php echo(htmlspecialchars($_config->getCartItemsCollectionName())); ?>" name="cartproducts_input" id="cartproducts_input">
|
140 |
</td>
|
141 |
<td class="value">
|
142 |
<span style="display:none;" id="cartproducts_checking">Checking collection....</span>
|
192 |
</select>
|
193 |
</td>
|
194 |
<td class="value">
|
195 |
+
<input type="text" class="input-text validate-code" value="<?php echo htmlspecialchars($copernicaField); ?>" name="<?php echo htmlspecialchars($textfield_name); ?>" id="<?php echo htmlspecialchars($textfield_name); ?>" <?php if ($copernicaField == '') echo "style='display: none;'"; ?>>
|
196 |
</td>
|
197 |
<td class="value">
|
198 |
<span style="display:none;" id="checking_<?php echo $magentoField; ?>">Checking field....</span>
|
226 |
</tr>
|
227 |
<tr>
|
228 |
<td class="value">
|
229 |
+
<input type="text" class="input-text validate-code" title="Completed Orders Collection" value="<?php echo(htmlspecialchars($_config->getOrdersCollectionName())); ?>" name="orders_input" id="orders_input">
|
230 |
</td>
|
231 |
<td class="value">
|
232 |
<span style="display:none;" id="orders_checking">Checking collection....</span>
|
282 |
</select>
|
283 |
</td>
|
284 |
<td class="value">
|
285 |
+
<input type="text" class="input-text validate-code" value="<?php echo htmlspecialchars($copernicaField); ?>" name="<?php echo htmlspecialchars($textfield_name); ?>" id="<?php echo htmlspecialchars($textfield_name); ?>" <?php if ($copernicaField == '') echo "style='display: none;'"; ?>>
|
286 |
</td>
|
287 |
<td class="value">
|
288 |
<span style="display:none;" id="checking_<?php echo $magentoField; ?>">Checking field....</span>
|
316 |
</tr>
|
317 |
<tr>
|
318 |
<td class="value">
|
319 |
+
<input type="text" class="input-text validate-code" title="Cart Products Collection" value="<?php echo(htmlspecialchars($_config->getOrderItemsCollectionName()))?>" name="orderproducts_input" id="orderproducts_input">
|
320 |
</td>
|
321 |
<td class="value">
|
322 |
<span style="display:none;" id="orderproducts_checking">Checking collection....</span>
|
372 |
</select>
|
373 |
</td>
|
374 |
<td class="value">
|
375 |
+
<input type="text" class="input-text validate-code" value="<?php echo htmlspecialchars($copernicaField); ?>" name="<?php echo htmlspecialchars($textfield_name); ?>" id="<?php echo htmlspecialchars($textfield_name); ?>" <?php if ($copernicaField == '') echo "style='display: none;'"; ?>>
|
376 |
</td>
|
377 |
<td class="value">
|
378 |
<span style="display:none;" id="checking_<?php echo $magentoField; ?>">Checking field....</span>
|
406 |
</tr>
|
407 |
<tr>
|
408 |
<td class="value">
|
409 |
+
<input type="text" class="input-text validate-code" title="Completed Orders Collection" value="<?php echo(htmlspecialchars($_config->getAddressesCollectionName()))?>" name="addresses_input" id="addresses_input">
|
410 |
</td>
|
411 |
<td class="value">
|
412 |
<span style="display:none;" id="addresses_checking">Checking collection....</span>
|
463 |
</select>
|
464 |
</td>
|
465 |
<td class="value">
|
466 |
+
<input type="text" class="input-text validate-code" value="<?php echo htmlspecialchars($copernicaField); ?>" name="<?php echo htmlspecialchars($textfield_name); ?>" id="<?php echo htmlspecialchars($textfield_name); ?>" <?php if ($copernicaField == '') echo "style='display: none;'"; ?>>
|
467 |
</td>
|
468 |
<td class="value">
|
469 |
<span style="display:none;" id="checking_<?php echo $magentoField; ?>">Checking field....</span>
|
659 |
}
|
660 |
|
661 |
//<![CDATA[
|
662 |
+
var customForm = new VarienForm('cp_form', true);
|
663 |
+
cpForm = new VarienForm('cp_form', '');
|
664 |
+
cpProfileCollectionForm = new VarienForm('cp_profile_collection', '');
|
665 |
+
|
666 |
+
document.observe('dom:loaded', function() {
|
667 |
+
|
668 |
+
$$('.input-text').forEach(function(e) {
|
669 |
+
Event.observe(e, 'change', function() {
|
670 |
+
cpProfileCollectionForm.validator.validate();
|
671 |
+
});
|
672 |
+
});
|
673 |
+
});
|
674 |
//]]>
|
675 |
</script>
|
package.xml
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>Copernica_MarketingSoftware</name>
|
4 |
-
<version>2.0.
|
5 |
<stability>stable</stability>
|
6 |
<license uri="http://opensource.org/licenses/osl-3.0.php">Open Software License (OSL 3.0)</license>
|
7 |
<channel>community</channel>
|
@@ -9,16 +9,14 @@
|
|
9 |
<summary>Plugin to exchange data from Magento with Copernica Marketing Software.</summary>
|
10 |
<description>When you install the integration, all contact, order and shop cart data from Magento will be automatically synchronized and stored in Copernica. By synchronizing data between your Magento webshop and Copernica, you are able to set up targeted email campaigns. For example you can consider emailing customers with abandoned shopcarts automatically every week. Your contacts will only receive information relevant to them, which will make them come back to your shop time and again. The available integration is also compatible with the Magento Enterprise edition.</description>
|
11 |
<notes>Improvements:
|
12 |
-
-
|
13 |
-
- Added
|
14 |
-
-
|
15 |
-
|
16 |
-
IMPORTANT: In order for this version to work, a complete new synchronisation from Magento to Copernica is necessary for the full database. 
|
17 |
-
</notes>
|
18 |
<authors><author><name>Cream</name><user>creaminternet</user><email>info@cream.nl</email></author></authors>
|
19 |
-
<date>2012-
|
20 |
-
<time>
|
21 |
-
<contents><target name="magecommunity"><dir name="Copernica"><dir name="MarketingSoftware"><dir name="Block"><dir name="Adminhtml"><dir name="Marketingsoftware"><file name="Export.php" hash="a0c98a7b89f2757a7b27c599d8a2f8f8"/><file name="Link.php" hash="15e331131759fedf98c2e461ee97385f"/><file name="Settings.php" hash="f880b7232fdf18d1605885242e9632e8"/></dir></dir></dir><dir name="Helper"><file name="Api.php" hash="e69c0b82075c4204ea80a275675a4f56"/><file name="Config.php" hash="
|
22 |
<compatible/>
|
23 |
<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>
|
24 |
</package>
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>Copernica_MarketingSoftware</name>
|
4 |
+
<version>2.0.1</version>
|
5 |
<stability>stable</stability>
|
6 |
<license uri="http://opensource.org/licenses/osl-3.0.php">Open Software License (OSL 3.0)</license>
|
7 |
<channel>community</channel>
|
9 |
<summary>Plugin to exchange data from Magento with Copernica Marketing Software.</summary>
|
10 |
<description>When you install the integration, all contact, order and shop cart data from Magento will be automatically synchronized and stored in Copernica. By synchronizing data between your Magento webshop and Copernica, you are able to set up targeted email campaigns. For example you can consider emailing customers with abandoned shopcarts automatically every week. Your contacts will only receive information relevant to them, which will make them come back to your shop time and again. The available integration is also compatible with the Magento Enterprise edition.</description>
|
11 |
<notes>Improvements:
|
12 |
+
- Added the attribute set name to sync.
|
13 |
+
- Added field validation linking fields to Copernica.
|
14 |
+
- Changed download link to Magento Connect.
|
15 |
+
- Only sync guest orders by initial sync, other orders are synced via the customer. </notes>
|
|
|
|
|
16 |
<authors><author><name>Cream</name><user>creaminternet</user><email>info@cream.nl</email></author></authors>
|
17 |
+
<date>2012-09-11</date>
|
18 |
+
<time>21:56:07</time>
|
19 |
+
<contents><target name="magecommunity"><dir name="Copernica"><dir name="MarketingSoftware"><dir name="Block"><dir name="Adminhtml"><dir name="Marketingsoftware"><file name="Export.php" hash="a0c98a7b89f2757a7b27c599d8a2f8f8"/><file name="Link.php" hash="15e331131759fedf98c2e461ee97385f"/><file name="Settings.php" hash="f880b7232fdf18d1605885242e9632e8"/></dir></dir></dir><dir name="Helper"><file name="Api.php" hash="e69c0b82075c4204ea80a275675a4f56"/><file name="Config.php" hash="189b1d3b95c8ecaa01f0ce10a12c7cce"/><file name="Data.php" hash="48343bcddb1798c62533f3dd8b64d8a2"/></dir><dir name="Model"><dir name="Abstraction"><file name="Address.php" hash="75eacde3e77b6b76c85d32ba865a9192"/><file name="Attributes.php" hash="0e5699302fc6575733824acbfee0b445"/><file name="Customer.php" hash="a64f4ece16196385f1972643ba99f712"/><file name="Name.php" hash="519508275dcac2990532828bd8dbf0ee"/><dir name="Order"><dir name="Item"><file name="Options.php" hash="1c9d5d7c23a5a9f12ff3d777a01fa7d5"/></dir><file name="Item.php" hash="a119a36c52123a78f330ea532d7798d1"/></dir><file name="Order.php" hash="babfe3d247989ac179a83442b4af4100"/><file name="Price.php" hash="bf133886520769200060cf360e0941d6"/><file name="Product.php" hash="fd7601e3cec64b9b0475a875f2881239"/><dir name="Quote"><dir name="Item"><file name="Options.php" hash="7b7f3e826527fa29ceef8df0ad61c3d3"/></dir><file name="Item.php" hash="a8705d21b21229b521ecdd66f24b9570"/></dir><file name="Quote.php" hash="8e227f1bdcb0608ae5f86f0d6907a8ca"/><file name="Storeview.php" hash="b4bb284d5486ca14a877a3518dc68074"/><file name="Subscription.php" hash="f4a0bd6bb094b71d6b12b3404f22ea8f"/><file name="readme.txt" hash="d450b7fa3d88b6a5c2b5efa526d17077"/></dir><file name="AsyncPomSoapClient.php" hash="77cc23e1a61cfcc1ee36a33d6e7d6d3e"/><dir name="Copernica"><file name="Abstract.php" hash="b2d065859580ca9c55ac7e8c392db61e"/><dir name="Address"><file name="Subprofile.php" hash="b963f768c25d4790c47deb013de2c44a"/></dir><dir name="Cartitem"><file name="Subprofile.php" hash="6f3907f41c6e86158eb4495f61065f5e"/></dir><dir name="Order"><file name="Subprofile.php" hash="16b086ee846c9252fc27050684c5c336"/></dir><dir name="Orderitem"><file name="Subprofile.php" hash="88bcf93c7c0ed2e37f97a42dfe0a643e"/></dir><file name="Profile.php" hash="52f14d70ceaac0066ca35bc3791c906c"/><file name="Profilecustomer.php" hash="74d50c861f23387092c71e364653504b"/><file name="Profileorder.php" hash="64883534c013d7e9fc708e30870712df"/><file name="Profilequote.php" hash="95bbfb780af312389d0843d4623eb105"/><file name="Profilesubscription.php" hash="aecff6c7790a70dc63df54d42749eda8"/></dir><file name="Error.php" hash="0660881720c0210c65e25cb14b1011fe"/><file name="Marketingsoftware.php" hash="bd7290f645a46b98da8bf15072bffef5"/><dir name="Mysql4"><dir name="Queue"><file name="Collection.php" hash="64b29b94d61a809a14ff0036888f3596"/></dir><file name="Queue.php" hash="db3f8b50caf3697a61bc1f587259e1ef"/></dir><file name="Observer.php" hash="0dd703b10d7febc5aecce7af7bd51b6d"/><file name="PomSoapClient.php" hash="2dc657ed44acd003df8aef41986aeb88"/><file name="Queue.php" hash="5cad0c42996f2673924e33b5f047fe46"/><dir name="QueueEvent"><file name="Abstract.php" hash="897bb46d1437599b832f9d304eda6832"/><file name="CustomerAdd.php" hash="daef30d8daeb0819d605323f02cad779"/><file name="CustomerFull.php" hash="f66aaa9afa75c6658958b9ecf7b55cd7"/><file name="CustomerModify.php" hash="a9bd99258679e6ccfdc6011139e90fcc"/><file name="CustomerRemove.php" hash="a061c5646f9c776a38063325f0a39e1b"/><file name="OrderAdd.php" hash="d0b1edb9ed91def6840f29a5b2777901"/><file name="OrderModify.php" hash="a1cb1cdffbf8b8c1a5b4ddbbc5ae0a0b"/><file name="QuoteItem.php" hash="a064df99bbf8d8d3002b03335f5e844b"/><file name="QuoteItemAdd.php" hash="499c4c4d5e34d124918c12bffb72e28b"/><file name="QuoteItemModify.php" hash="f60c728a3b5d3c11451fd6332ecea912"/><file name="QuoteItemRemove.php" hash="a7e4fb9e227ddb538420d0c2b485bb36"/><file name="QuoteModify.php" hash="66bd14c78630895f14c4b48532b2d3a9"/><file name="StartSync.php" hash="b9835655e8dd783079ea21672f00091f"/><file name="SubscriptionAdd.php" hash="445455dd4fda2867b1ce9d67d7133aaa"/><file name="SubscriptionModify.php" hash="be0e469349469545ef9762b2a463a555"/><file name="SubscriptionRemove.php" hash="f3051c5f35e8a6c4bd727d895cad479f"/></dir></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Marketingsoftware"><file name="ExportController.php" hash="f22c80e7650e3a2d47f43d9ffab783e9"/><file name="LinkController.php" hash="7919feb55a96745df1b50faff83fc7d1"/><file name="SettingsController.php" hash="b62fa5f9c2d37152449530fb6a9a5988"/></dir></dir><file name="ProductController.php" hash="dff5479428f4d817c04ff12190a5878c"/><file name="UnsubscribeController.php" hash="691be73c944b1e4fb641803a4271c7a2"/></dir><dir name="etc"><file name="adminhtml.xml" hash="70433e755407e049a938075763e01e6d"/><file name="config.xml" hash="fee08503afdfe465e459219a70d93df5"/></dir><dir name="sql"><dir name="marketingsoftware_setup"><file name="mysql4-install-1.2.0.php" hash="624d62aad61c642dba4a9488a0b9508f"/><file name="mysql4-upgrade-1.1.5-1.1.6.php" hash="135144b872076048040f4bdae123a08f"/><file name="mysql4-upgrade-1.1.6-1.1.7.php" hash="e587cbbd9c0ddb77248abafef55df46e"/><file name="mysql4-upgrade-1.1.7-1.1.8.php" hash="e255e732e015f852796bde55bde07dd9"/><file name="mysql4-upgrade-1.1.8-1.2.0.php" hash="54fd03029d3a39b556d62ed95ed423f3"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Copernica_MarketingSoftware.xml" hash="04c9e69139dbff42d829bad22fa2ab85"/></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="marketingsoftware"><file name="export.phtml" hash="4a3783aac318f5683060bc9119893989"/><file name="link.phtml" hash="390b6e5a5e0b2ac35b886eaa9f4e437e"/><file name="settings.phtml" hash="7497c7d74e93797f455d5b47a846bf82"/></dir></dir></dir></dir></dir></target><target name="mageweb"><dir name="js"><dir name="copernica"><dir name="marketingsoftware"><file name="collection.js" hash="260f06a4e891df402e145bec4d15bc51"/><file name="database.js" hash="4e51925d1fedd36a203c625050fb9b07"/><file name="field.js" hash="c4f98de6a9c210c626db36730485b853"/></dir></dir></dir></target></contents>
|
20 |
<compatible/>
|
21 |
<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>
|
22 |
</package>
|