Copernica_MarketingSoftware - Version 2.0.0

Version Notes

Improvements:
- Changed the way profiles are synchronised. A unique key is generated by combining the e-mail address and storeview in order to sync to Copernica. This way it is no longer possible to have the same e-mail address multiple times in Copernica.
- Added the gender to be able to sync from Magento to Copernica.
- Performance improvement, removed unnecessary SOAP call.

IMPORTANT: In order for this version to work, a complete new synchronisation from Magento to Copernica is necessary for the full database.

Download this release

Release Info

Developer Cream
Extension Copernica_MarketingSoftware
Version 2.0.0
Comparing to
See all releases


Code changes from version 1.2.4 to 2.0.0

app/code/community/Copernica/MarketingSoftware/Helper/Api.php CHANGED
@@ -168,6 +168,7 @@ class Copernica_MarketingSoftware_Helper_Api extends Mage_Core_Helper_Abstract
168
 
169
  /**
170
  * Get the Copernica profiles from the api, which match a certain identifier
 
171
  * @param identifier
172
  */
173
  public function searchProfiles($identifier)
@@ -214,18 +215,8 @@ class Copernica_MarketingSoftware_Helper_Api extends Mage_Core_Helper_Abstract
214
  * @param String optional identifier for this update action
215
  * @return array
216
  */
217
- public function updateProfiles($data, $identifier = false)
218
  {
219
- // Do we have valid identifier
220
- if ($identifier !== false)
221
- {
222
- // search for a profile
223
- $response = $this->searchProfiles($identifier);
224
-
225
- // no match found, use the normal identifier instead
226
- if ($response->length == 0) $identifier = false;
227
- }
228
-
229
  // if we are calling this function with an incorrect profile, just
230
  // return because we will damage too much
231
  if ($data->id() == false)
@@ -246,7 +237,7 @@ class Copernica_MarketingSoftware_Helper_Api extends Mage_Core_Helper_Abstract
246
  'requirements' => array(
247
  $this->soapclient->toObject(array(
248
  'fieldname' => 'customer_id',
249
- 'value' => $identifier == false ? $data->id() : $identifier,
250
  'operator' => '='
251
  ))
252
  ),
168
 
169
  /**
170
  * Get the Copernica profiles from the api, which match a certain identifier
171
+ *
172
  * @param identifier
173
  */
174
  public function searchProfiles($identifier)
215
  * @param String optional identifier for this update action
216
  * @return array
217
  */
218
+ public function updateProfiles($data)
219
  {
 
 
 
 
 
 
 
 
 
 
220
  // if we are calling this function with an incorrect profile, just
221
  // return because we will damage too much
222
  if ($data->id() == false)
237
  'requirements' => array(
238
  $this->soapclient->toObject(array(
239
  'fieldname' => 'customer_id',
240
+ 'value' => $data->id(),
241
  'operator' => '='
242
  ))
243
  ),
app/code/community/Copernica/MarketingSoftware/Helper/Data.php CHANGED
@@ -14,6 +14,7 @@ class Copernica_MarketingSoftware_Helper_Data extends Mage_Core_Helper_Abstract
14
  public function supportedCustomerFields()
15
  {
16
  return array(
 
17
  'firstname' => 'Firstname',
18
  'middlename' => 'Middlename',
19
  'lastname' => 'Lastname',
@@ -330,4 +331,16 @@ class Copernica_MarketingSoftware_Helper_Data extends Mage_Core_Helper_Abstract
330
  }
331
  }
332
  }
 
 
 
 
 
 
 
 
 
 
 
 
333
  }
14
  public function supportedCustomerFields()
15
  {
16
  return array(
17
+ 'gender' => 'Gender',
18
  'firstname' => 'Firstname',
19
  'middlename' => 'Middlename',
20
  'lastname' => 'Lastname',
331
  }
332
  }
333
  }
334
+
335
+ /**
336
+ * Generates a unique customer ID based on the e-mail address and the storeview.
337
+ *
338
+ * @param string $email
339
+ * @param string $storeview
340
+ * @return string
341
+ */
342
+ public function generateCustomerId($email, $storeview)
343
+ {
344
+ return md5($email . $storeview);
345
+ }
346
  }
app/code/community/Copernica/MarketingSoftware/Model/Abstraction/Customer.php CHANGED
@@ -19,6 +19,7 @@ class Copernica_MarketingSoftware_Model_Abstraction_Customer implements Serializ
19
  private $subscription;
20
  private $group;
21
  private $addresses;
 
22
  private $storeview;
23
 
24
 
@@ -106,6 +107,26 @@ class Copernica_MarketingSoftware_Model_Abstraction_Customer implements Serializ
106
  else return $this->email;
107
  }
108
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
109
  /**
110
  * Return the subscription of the customer
111
  * @return Copernica_MarketingSoftware_Model_Abstraction_Subscription
@@ -224,6 +245,7 @@ class Copernica_MarketingSoftware_Model_Abstraction_Customer implements Serializ
224
  $this->subscription(),
225
  $this->group(),
226
  $this->addresses(),
 
227
  $this->storeview(),
228
  ));
229
  }
@@ -245,11 +267,12 @@ class Copernica_MarketingSoftware_Model_Abstraction_Customer implements Serializ
245
  $this->email,
246
  $this->subscription,
247
  $this->group,
248
- $this->addresses
 
249
  ) = $data;
250
 
251
  // do we have a storeview available?
252
- if (isset($data[6])) $this->storeview = $data[6];
253
 
254
  return $this;
255
  }
19
  private $subscription;
20
  private $group;
21
  private $addresses;
22
+ private $gender;
23
  private $storeview;
24
 
25
 
107
  else return $this->email;
108
  }
109
 
110
+ /**
111
+ * Returns the gender
112
+ * @return string
113
+ */
114
+ public function gender()
115
+ {
116
+ // Is this object still present?
117
+ if (is_object($this->original)) {
118
+ $options = $this->original->getAttribute('gender')->getSource()->getAllOptions();
119
+
120
+ foreach ($options as $option) {
121
+ if ($option['value'] == $this->original->getGender()) {
122
+ return $option['label'];
123
+ }
124
+ }
125
+ } else {
126
+ return $this->gender;
127
+ }
128
+ }
129
+
130
  /**
131
  * Return the subscription of the customer
132
  * @return Copernica_MarketingSoftware_Model_Abstraction_Subscription
245
  $this->subscription(),
246
  $this->group(),
247
  $this->addresses(),
248
+ $this->gender(),
249
  $this->storeview(),
250
  ));
251
  }
267
  $this->email,
268
  $this->subscription,
269
  $this->group,
270
+ $this->addresses,
271
+ $this->gender
272
  ) = $data;
273
 
274
  // do we have a storeview available?
275
+ if (isset($data[7])) $this->storeview = $data[7];
276
 
277
  return $this;
278
  }
app/code/community/Copernica/MarketingSoftware/Model/Copernica/Profilecustomer.php CHANGED
@@ -19,29 +19,32 @@ class Copernica_MarketingSoftware_Model_Copernica_ProfileCustomer extends Copern
19
  $this->customer = $customer;
20
  return $this;
21
  }
22
-
23
- /**
24
  * Retrieve the data for this object
25
  * @return array
26
  */
27
  protected function _data()
28
- {
29
  // Get the subscription
30
  $subscription = $this->customer->subscription();
31
-
32
  // fetch the name object
33
  $name = $this->customer->name();
34
 
 
 
35
  // return an array with customer data
36
  return array(
37
- 'customer_id' => $this->customer->id(),
38
  'store_view' => (string)$this->customer->storeview(),
39
- 'firstname' => is_object($name) ? $name->firstname() : null,
40
  'middlename' => is_object($name) ? $name->middlename() : null,
41
  'lastname' => is_object($name) ? $name->lastname() : null,
42
- 'email' => is_object($subscription) ? $subscription->email() : $this->customer->email(),
43
  'group' => $this->customer->group(),
44
  'newsletter' => is_object($subscription) ? $subscription->status() : 'unknown',
 
45
  );
46
  }
47
  }
19
  $this->customer = $customer;
20
  return $this;
21
  }
22
+
23
+ /**
24
  * Retrieve the data for this object
25
  * @return array
26
  */
27
  protected function _data()
28
+ {
29
  // Get the subscription
30
  $subscription = $this->customer->subscription();
31
+
32
  // fetch the name object
33
  $name = $this->customer->name();
34
 
35
+ $email = is_object($subscription) ? $subscription->email() : $this->customer->email();
36
+
37
  // return an array with customer data
38
  return array(
39
+ 'customer_id' => Mage::helper('marketingsoftware')->generateCustomerId($email, (string)$this->customer->storeview()),
40
  'store_view' => (string)$this->customer->storeview(),
41
+ 'firstname' => is_object($name) ? $name->firstname() : null,
42
  'middlename' => is_object($name) ? $name->middlename() : null,
43
  'lastname' => is_object($name) ? $name->lastname() : null,
44
+ 'email' => $email,
45
  'group' => $this->customer->group(),
46
  'newsletter' => is_object($subscription) ? $subscription->status() : 'unknown',
47
+ 'gender' => $this->customer->gender() ? $this->customer->gender() : 'unknown'
48
  );
49
  }
50
  }
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' => "guest_".$this->order->quoteId(),
50
  'store_view' => (string)$this->order->storeview(),
51
  'firstname' => is_object($name) ? $name->firstname() : null,
52
  'middlename' => is_object($name) ? $name->middlename() : null,
@@ -54,6 +54,7 @@ class Copernica_MarketingSoftware_Model_Copernica_ProfileOrder extends Copernica
54
  'email' => $address->email(),
55
  'group' => Mage::getModel('customer/group')->load(0)->getCode(),
56
  'newsletter' => is_object($subscription) ? $subscription->status() : 'unknown',
 
57
  );
58
  }
59
  }
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,
54
  'email' => $address->email(),
55
  'group' => Mage::getModel('customer/group')->load(0)->getCode(),
56
  'newsletter' => is_object($subscription) ? $subscription->status() : 'unknown',
57
+ 'gender' => 'unknown'
58
  );
59
  }
60
  }
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' => "guest_".$this->quote->id(),
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(), $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' => "subcr_".$this->subscription->id(),
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(), $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/CustomerAdd.php CHANGED
@@ -17,21 +17,9 @@ class Copernica_MarketingSoftware_Model_QueueEvent_CustomerAdd extends Copernica
17
  $customerData = Mage::getModel('marketingsoftware/copernica_profilecustomer')
18
  ->setCustomer($customer = $this->getObject())
19
  ->setDirection('copernica');
20
-
21
- // this customer might be based upon a guest order
22
- $orders = $customer->orders();
23
- $identifier = false;
24
-
25
- // Is there exactely one order?
26
- if (count($orders) == 1)
27
- {
28
- // Get that order and get its quote id
29
- $order = $orders[0];
30
- $identifier = 'guest_'.$order->quoteId();
31
- }
32
 
33
  // Update the profiles given the customer
34
- $api->updateProfiles($customerData, $identifier);
35
 
36
  // this customer is processed
37
  return true;
17
  $customerData = Mage::getModel('marketingsoftware/copernica_profilecustomer')
18
  ->setCustomer($customer = $this->getObject())
19
  ->setDirection('copernica');
 
 
 
 
 
 
 
 
 
 
 
 
20
 
21
  // Update the profiles given the customer
22
+ $api->updateProfiles($customerData);
23
 
24
  // this customer is processed
25
  return true;
app/code/community/Copernica/MarketingSoftware/Model/QueueEvent/StartSync.php CHANGED
@@ -135,11 +135,11 @@ class Copernica_MarketingSoftware_Model_QueueEvent_StartSync extends Copernica_M
135
  ));
136
 
137
  // The add field to search filter is not supported in Magento 1.4
138
- if (is_callable(array($orders, 'addFieldToSearchFilter')))
139
- {
140
- $orders->addFieldToSearchFilter('customer_id', 0)
141
- ->addFieldToSearchFilter('customer_id', array('null' => 1));
142
- }
143
 
144
  // Set the page size
145
  $orders->setPageSize($pageSize);
135
  ));
136
 
137
  // The add field to search filter is not supported in Magento 1.4
138
+ //if (is_callable(array($orders, 'addFieldToSearchFilter')))
139
+ //{
140
+ // $orders->addFieldToSearchFilter('customer_id', 0)
141
+ // ->addFieldToSearchFilter('customer_id', array('null' => 1));
142
+ //}
143
 
144
  // Set the page size
145
  $orders->setPageSize($pageSize);
app/code/community/Copernica/MarketingSoftware/Model/QueueEvent/SubscriptionModify.php CHANGED
@@ -42,7 +42,7 @@ class Copernica_MarketingSoftware_Model_QueueEvent_SubscriptionModify extends Co
42
  $customerData->setDirection('copernica');
43
 
44
  // Update the profiles given the customer
45
- $api->updateProfiles($customerData, $identifier);
46
 
47
  // this might result in two profiles with the same customer_id
48
  $profiles = $api->searchProfiles($customerData->id());
@@ -50,12 +50,6 @@ class Copernica_MarketingSoftware_Model_QueueEvent_SubscriptionModify extends Co
50
  // we received an invalid response
51
  if (!is_object($profiles)) return false;
52
 
53
- // We have only one profile everything is fine
54
- if ($profiles->length == 1) return true;
55
-
56
- // Merge the profiles
57
- $api->mergeProfiles($profiles->items);
58
-
59
  // this subscription is processed
60
  return true;
61
  }
42
  $customerData->setDirection('copernica');
43
 
44
  // Update the profiles given the customer
45
+ $api->updateProfiles($customerData);
46
 
47
  // this might result in two profiles with the same customer_id
48
  $profiles = $api->searchProfiles($customerData->id());
50
  // we received an invalid response
51
  if (!is_object($profiles)) return false;
52
 
 
 
 
 
 
 
53
  // this subscription is processed
54
  return true;
55
  }
app/code/community/Copernica/MarketingSoftware/etc/config.xml CHANGED
@@ -2,7 +2,7 @@
2
  <config>
3
  <modules>
4
  <Copernica_MarketingSoftware>
5
- <version>1.2.4</version>
6
  </Copernica_MarketingSoftware>
7
  </modules>
8
  <global>
2
  <config>
3
  <modules>
4
  <Copernica_MarketingSoftware>
5
+ <version>2.0.0</version>
6
  </Copernica_MarketingSoftware>
7
  </modules>
8
  <global>
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Copernica_MarketingSoftware</name>
4
- <version>1.2.4</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,15 +9,16 @@
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:&#xD;
12
- - Deleted an unnecessary SOAP call. &#xD;
 
 
13
  &#xD;
14
- Bugs:&#xD;
15
- &#xD;
16
- - Fixed, when deleting a customer from the backoffice an error occured. </notes>
17
  <authors><author><name>Cream</name><user>creaminternet</user><email>info@cream.nl</email></author></authors>
18
- <date>2012-01-20</date>
19
- <time>10:17:35</time>
20
- <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="cc01df8fbbfd92564163222dec03de95"/><file name="Config.php" hash="331efdf28b14cce05165e2fcac34cf31"/><file name="Data.php" hash="b88354a7e08d1ca7a39f2a59ee25787d"/></dir><dir name="Model"><dir name="Abstraction"><file name="Address.php" hash="75eacde3e77b6b76c85d32ba865a9192"/><file name="Attributes.php" hash="0e5699302fc6575733824acbfee0b445"/><file name="Customer.php" hash="4777627f10de4efa84040988230933fb"/><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="461ed687dd25af1b67c358294ad73358"/><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="5ae134522abe867554cda35d8acf7457"/><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="5bbb3bee33d774b11ad0f8d794330eec"/></dir><dir name="Order"><file name="Subprofile.php" hash="dc90bdf195538b67276961194ecc6da5"/></dir><dir name="Orderitem"><file name="Subprofile.php" hash="7dc3904bb45c3b0d33e714b7ee101338"/></dir><file name="Profile.php" hash="52f14d70ceaac0066ca35bc3791c906c"/><file name="Profilecustomer.php" hash="5a3e2df1d370c12eccac229941d0f099"/><file name="Profileorder.php" hash="1c2e0c9c844ff2a60c0736f7c8af2442"/><file name="Profilequote.php" hash="0e885b4508698d2bf9835c89b9ce52b9"/><file name="Profilesubscription.php" hash="1f24673069daba911f83b62d9eb34c99"/></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="f2093ea8abc444f7c329ae2884a6cd27"/><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="a687e69cc9470122611029ccce66b6d8"/><file name="SubscriptionAdd.php" hash="445455dd4fda2867b1ce9d67d7133aaa"/><file name="SubscriptionModify.php" hash="bf59206f322c76cf766b1f33409b946e"/><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="686554d1960024bb01c2db027ea62b9b"/><file name="SettingsController.php" hash="b62fa5f9c2d37152449530fb6a9a5988"/></dir></dir><file name="ProductController.php" hash="02bcb287f671266a131ddc57c5171754"/><file name="UnsubscribeController.php" hash="691be73c944b1e4fb641803a4271c7a2"/></dir><dir name="etc"><file name="adminhtml.xml" hash="70433e755407e049a938075763e01e6d"/><file name="config.xml" hash="fc9f9fe969e8d887fe2d3f4b83913f8b"/></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="a0906a990d5a50fde0f523ef99a39f3f"/><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>
21
  <compatible/>
22
  <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>
23
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Copernica_MarketingSoftware</name>
4
+ <version>2.0.0</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:&#xD;
12
+ - Changed the way profiles are synchronised. A unique key is generated by combining the e-mail address and storeview in order to sync to Copernica. This way it is no longer possible to have the same e-mail address multiple times in Copernica.&#xD;
13
+ - Added the gender to be able to sync from Magento to Copernica.&#xD;
14
+ - Performance improvement, removed unnecessary SOAP call.&#xD;
15
  &#xD;
16
+ IMPORTANT: In order for this version to work, a complete new synchronisation from Magento to Copernica is necessary for the full database. &#xD;
17
+ </notes>
 
18
  <authors><author><name>Cream</name><user>creaminternet</user><email>info@cream.nl</email></author></authors>
19
+ <date>2012-04-19</date>
20
+ <time>08:22:30</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="331efdf28b14cce05165e2fcac34cf31"/><file name="Data.php" hash="8e2d12fa6154cce91fb91fafe0fab24d"/></dir><dir name="Model"><dir name="Abstraction"><file name="Address.php" hash="75eacde3e77b6b76c85d32ba865a9192"/><file name="Attributes.php" hash="0e5699302fc6575733824acbfee0b445"/><file name="Customer.php" hash="2d70ad79018adcf75ecfefc652a4ccbe"/><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="461ed687dd25af1b67c358294ad73358"/><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="5ae134522abe867554cda35d8acf7457"/><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="5bbb3bee33d774b11ad0f8d794330eec"/></dir><dir name="Order"><file name="Subprofile.php" hash="dc90bdf195538b67276961194ecc6da5"/></dir><dir name="Orderitem"><file name="Subprofile.php" hash="7dc3904bb45c3b0d33e714b7ee101338"/></dir><file name="Profile.php" hash="52f14d70ceaac0066ca35bc3791c906c"/><file name="Profilecustomer.php" hash="74d50c861f23387092c71e364653504b"/><file name="Profileorder.php" hash="9bd86b9ddf197f0fb6082247cc7aa87f"/><file name="Profilequote.php" hash="289f23abfa2233be6ebc7f07b7f85f02"/><file name="Profilesubscription.php" hash="beea58e993a764f1399863b178c4ecd6"/></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="d6a06c8a74a8e810bc3fc9640657912e"/><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="686554d1960024bb01c2db027ea62b9b"/><file name="SettingsController.php" hash="b62fa5f9c2d37152449530fb6a9a5988"/></dir></dir><file name="ProductController.php" hash="02bcb287f671266a131ddc57c5171754"/><file name="UnsubscribeController.php" hash="691be73c944b1e4fb641803a4271c7a2"/></dir><dir name="etc"><file name="adminhtml.xml" hash="70433e755407e049a938075763e01e6d"/><file name="config.xml" hash="cb01f13bbe096b8b1ce8292110322642"/></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="a0906a990d5a50fde0f523ef99a39f3f"/><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>
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>