Gateway3D_PersonaliseIt - Version 1.6.11.0

Version Notes

new version

Download this release

Release Info

Developer James Ball
Extension Gateway3D_PersonaliseIt
Version 1.6.11.0
Comparing to
See all releases


Code changes from version 1.6.9.0 to 1.6.11.0

app/code/local/Gateway3D/PersonaliseIt/Model/Cron/Abstract.php CHANGED
@@ -3,6 +3,8 @@
3
  abstract class Gateway3D_PersonaliseIt_Model_Cron_Abstract
4
  {
5
  const PRINT_JOB_ID_CUSTOM_OPTION_SKU = "printJobId";
 
 
6
  const EXTERNAL_URL_CUSTOM_OPTION_SKU = "external_url";
7
 
8
  protected static function _getOrderCollection()
@@ -24,7 +26,7 @@ abstract class Gateway3D_PersonaliseIt_Model_Cron_Abstract
24
 
25
  protected static function _getItemPrintJobId($storeId, Mage_Sales_Model_Order_Item $item)
26
  {
27
- return (int)self::_getItemCustomOption($storeId, $item, self::PRINT_JOB_ID_CUSTOM_OPTION_SKU);
28
  }
29
 
30
  protected static function _getItemExternalUrl($storeId, Mage_Sales_Model_Order_Item $item)
3
  abstract class Gateway3D_PersonaliseIt_Model_Cron_Abstract
4
  {
5
  const PRINT_JOB_ID_CUSTOM_OPTION_SKU = "printJobId";
6
+ const PRINT_JOB_REF_CUSTOM_OPTION_SKU = "printJobRef";
7
+
8
  const EXTERNAL_URL_CUSTOM_OPTION_SKU = "external_url";
9
 
10
  protected static function _getOrderCollection()
26
 
27
  protected static function _getItemPrintJobId($storeId, Mage_Sales_Model_Order_Item $item)
28
  {
29
+ return self::_getItemCustomOption($storeId, $item, self::PRINT_JOB_ID_CUSTOM_OPTION_SKU);
30
  }
31
 
32
  protected static function _getItemExternalUrl($storeId, Mage_Sales_Model_Order_Item $item)
app/code/local/Gateway3D/PersonaliseIt/Model/Cron/DelayedPrintJob.php CHANGED
@@ -98,7 +98,7 @@ class Gateway3D_PersonaliseIt_Model_Cron_DelayedPrintJob
98
  private function _pushPrintJob(Mage_Sales_Model_Order_Item $item, Mage_Catalog_Model_Product $product)
99
  {
100
  $printJob = $this->_createPrintJob($item, $product);
101
-
102
  $this->_api->create($printJob, $options = array(
103
  Gateway3D_PersonaliseIt_Service_Api_P2_PrintJob::OPTION_IMPLICIT => true
104
  ));
@@ -112,33 +112,83 @@ class Gateway3D_PersonaliseIt_Model_Cron_DelayedPrintJob
112
 
113
  $printJob->product_id = $product->personaliseit_dp_pid;
114
  $printJob->print_job_company_id = $product->personaliseit_company_ref_id;
115
- $printJob->items = array();
116
-
117
- // Create text items
118
- $options = $product->getOptions();
119
- $itemOptions = $item->getProductOptionByCode('options');
120
 
121
- foreach($options as $option)
 
 
 
 
 
 
 
 
 
 
 
122
  {
123
- $matches = array();
124
-
125
- if(preg_match('/^userText([0-9]*)$/', $option->getSku(), $matches) && count($matches) == 2)
126
- {
127
- foreach($itemOptions as $itemOption)
128
- {
129
- if($itemOption['option_id'] == $option->getId())
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
130
  {
131
- $printJob->items[] = array(
132
- 'area_id' => $matches[1],
133
-
134
- 'item_type' => 'TEXT_AREA',
135
- 'resources' => $itemOption['value']
136
- );
137
  }
138
  }
139
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
140
  }
141
-
142
- return $printJob;
143
  }
144
- }
98
  private function _pushPrintJob(Mage_Sales_Model_Order_Item $item, Mage_Catalog_Model_Product $product)
99
  {
100
  $printJob = $this->_createPrintJob($item, $product);
101
+
102
  $this->_api->create($printJob, $options = array(
103
  Gateway3D_PersonaliseIt_Service_Api_P2_PrintJob::OPTION_IMPLICIT => true
104
  ));
112
 
113
  $printJob->product_id = $product->personaliseit_dp_pid;
114
  $printJob->print_job_company_id = $product->personaliseit_company_ref_id;
 
 
 
 
 
115
 
116
+ $printJob->items = $this->_getTextItems($item, $product);
117
+
118
+ return $printJob;
119
+ }
120
+
121
+ private function _getTextItems(
122
+ Mage_Sales_Model_Order_Item $item,
123
+ Mage_Catalog_Model_Product $product)
124
+ {
125
+ $items = array();
126
+
127
+ foreach($product->getOptions() as $option)
128
  {
129
+ $_item = $this->_getTextItem($option, $item);
130
+
131
+ if($_item)
132
+ {
133
+ $items[] = array(
134
+ 'area_id' => $_item[0],
135
+ 'item_type' => 'TEXT_AREA',
136
+ 'resources' => $_item[1]
137
+ );
138
+ }
139
+ }
140
+
141
+ return $items;
142
+ }
143
+
144
+ private function _getTextItem(
145
+ Mage_Catalog_Model_Product_Option $option,
146
+ Mage_Sales_Model_Order_Item $item)
147
+ {
148
+ $itemOption = $this->_getItemOption($option, $item);
149
+
150
+ if($itemOption)
151
+ {
152
+ if($option->getType() == Mage_Catalog_Model_Product_Option::OPTION_TYPE_DROP_DOWN)
153
+ {
154
+ $sku = "";
155
+
156
+ foreach($option->getValues() as $value)
157
+ {
158
+ if($itemOption['option_id'] == $value->option_id)
159
  {
160
+ $sku = $value->sku;
 
 
 
 
 
161
  }
162
  }
163
  }
164
+ else
165
+ {
166
+ $sku = $option->getSku();
167
+ }
168
+
169
+ $matches = array();
170
+
171
+ if(preg_match('/^userText([0-9]*)$/', $sku, $matches) && count($matches) == 2)
172
+ {
173
+ return array($matches[1], $itemOption['value']);
174
+ }
175
+ }
176
+
177
+ return false;
178
+ }
179
+
180
+ private function _getItemOption(
181
+ Mage_Catalog_Model_Product_Option $option,
182
+ Mage_Sales_Model_Order_Item $item)
183
+ {
184
+ $itemOptions = $item->getProductOptionByCode('options');
185
+
186
+ foreach($itemOptions as $itemOption)
187
+ {
188
+ if($itemOption['option_id'] == $option->getId())
189
+ {
190
+ return $itemOption;
191
+ }
192
  }
 
 
193
  }
194
+ }
app/code/local/Gateway3D/PersonaliseIt/Model/Cron/Sl.php CHANGED
@@ -117,7 +117,7 @@ class Gateway3D_PersonaliseIt_Model_Cron_Sl
117
  }
118
 
119
  //
120
- $groupedItems = $this->_createSlOrderItems($order->getStoreId(), $items);
121
 
122
  if(!count($groupedItems))
123
  {
@@ -207,12 +207,15 @@ class Gateway3D_PersonaliseIt_Model_Cron_Sl
207
  /**
208
  * Creates a collection of SL order items from their Magento order item
209
  * counterparts, grouped by company.
210
- *
 
211
  * @param Mage_Sales_Model_Order_Item[] $items
212
  * @return Gateway3D_PersonaliseIt_Model_Sl_Data_Order_Item[]
213
  */
214
- private function _createSlOrderItems($storeId, array $items)
215
  {
 
 
216
  $groupedItems = array();
217
 
218
  foreach($items as $item)
@@ -238,8 +241,15 @@ class Gateway3D_PersonaliseIt_Model_Cron_Sl
238
  if(($printJobId || $externalUrl || $sampleRef || $isPlain) && !$item->sl_order_id)
239
  {
240
  // We also need to group the item by the product's company ref ID.
241
- $guid = $product->personaliseit_company_ref_id;
242
-
 
 
 
 
 
 
 
243
  if(!isset($groupedItems[$guid]))
244
  {
245
  $groupedItems[$guid] = array();
@@ -302,7 +312,7 @@ class Gateway3D_PersonaliseIt_Model_Cron_Sl
302
  {
303
  $name = $name == 'color' ? 'colour' : $name;
304
 
305
- $_item->{$name} = $option['value'];
306
  }
307
  }
308
  }
@@ -312,7 +322,7 @@ class Gateway3D_PersonaliseIt_Model_Cron_Sl
312
 
313
  foreach($attributes as $name => $value)
314
  {
315
- $_item->{$name} = $value;
316
  }
317
 
318
  $bundleRef = self::_getItemCustomOption($storeId, $item, 'bundle_ref');
@@ -447,17 +457,29 @@ class Gateway3D_PersonaliseIt_Model_Cron_Sl
447
  $_order = new Gateway3D_PersonaliseIt_Service_Dto_Sl_Order;
448
 
449
  $_order->additional_info = php_uname('n') . " :: " . $store;
450
-
451
- $this->_setAddressFields($_order, $billingAddress, "billing_address");
452
-
453
- $_order->billing_country = trim($billingAddress->getCountry());
454
- $_order->billing_postcode = trim($billingAddress->getPostcode());
455
 
456
- $this->_setAddressFields($_order, $shippingAddress, "shipping_address");
 
 
 
 
 
 
 
 
 
457
 
458
- $_order->shipping_country = trim($shippingAddress->getCountry());
459
- $_order->shipping_country_code = $shippingAddress->getCountryModel()->getIso2Code();
460
- $_order->shipping_postcode = trim($shippingAddress->getPostcode());
 
 
 
 
461
 
462
  list($carrier, $method) = explode(' - ', $order->getShippingDescription());
463
 
@@ -469,25 +491,22 @@ class Gateway3D_PersonaliseIt_Model_Cron_Sl
469
  $_order->shipping_tax_rate = ($order->shipping_incl_tax / $order->shipping_amount) - 1;
470
 
471
  $_order->customer_email = $order->getCustomerEmail();
472
- $_order->customer_name = $shippingAddress->getName();
473
- $_order->customer_telephone = $shippingAddress->getTelephone();
474
-
475
  $_order->billing_customer_email = $order->getCustomerEmail();
476
- $_order->billing_customer_name = $billingAddress->getName();
477
- $_order->billing_customer_telephone = $billingAddress->getTelephone();
478
-
479
  $_order->external_ref = $order->getIncrementId();
480
 
481
  $order->getCreatedAtDate()->setOptions(array('format_type' => 'php'));
482
  $_order->sale_datetime = $order->getCreatedAtDate()->toString("Y-m-d H:i:s");
483
 
484
- $_order->purchase_complete = 1;
485
- $_order->payment_type = $order->getPayment()->getMethodInstance()->getTitle();
 
 
486
 
487
  $_order->company_ref_id = $companyRefId;
488
 
489
  $_order->status = Mage::getStoreConfig("general/personaliseit-sl/default_order_status");
490
- $_order->tag = Mage::getStoreConfig("general/personaliseit-sl/default_order_tag");
491
 
492
  if(!Mage::getStoreConfig("general/personaliseit-sl/enable_order_status_polling"))
493
  {
117
  }
118
 
119
  //
120
+ $groupedItems = $this->_createSlOrderItems($order, $items);
121
 
122
  if(!count($groupedItems))
123
  {
207
  /**
208
  * Creates a collection of SL order items from their Magento order item
209
  * counterparts, grouped by company.
210
+ *
211
+ * @param Mage_Sales_Model_Order $order
212
  * @param Mage_Sales_Model_Order_Item[] $items
213
  * @return Gateway3D_PersonaliseIt_Model_Sl_Data_Order_Item[]
214
  */
215
+ private function _createSlOrderItems(Mage_Sales_Model_Order $order, array $items)
216
  {
217
+ $storeId = $order->getStoreId();
218
+
219
  $groupedItems = array();
220
 
221
  foreach($items as $item)
241
  if(($printJobId || $externalUrl || $sampleRef || $isPlain) && !$item->sl_order_id)
242
  {
243
  // We also need to group the item by the product's company ref ID.
244
+ $guids = array_values(array_filter(array(
245
+ Mage::getModel('customer/customer')->load($order->getCustomerId())->override_company_ref_id,
246
+ $customer->override_company_ref_id,
247
+ Mage::getStoreConfig("general/personaliseit-sl/override_company_ref_id", $storeId),
248
+ $product->personaliseit_company_ref_id)));
249
+
250
+
251
+ $guid = $guids ? $guids[0] : '';
252
+
253
  if(!isset($groupedItems[$guid]))
254
  {
255
  $groupedItems[$guid] = array();
312
  {
313
  $name = $name == 'color' ? 'colour' : $name;
314
 
315
+ $_item->{$name} = html_entity_decode($option['value']);
316
  }
317
  }
318
  }
322
 
323
  foreach($attributes as $name => $value)
324
  {
325
+ $_item->{$name} = html_entity_decode($value);
326
  }
327
 
328
  $bundleRef = self::_getItemCustomOption($storeId, $item, 'bundle_ref');
457
  $_order = new Gateway3D_PersonaliseIt_Service_Dto_Sl_Order;
458
 
459
  $_order->additional_info = php_uname('n') . " :: " . $store;
460
+
461
+ if($billingAddress)
462
+ {
463
+ $this->_setAddressFields($_order, $billingAddress, "billing_address");
 
464
 
465
+ $_order->billing_country = trim($billingAddress->getCountry());
466
+ $_order->billing_postcode = trim($billingAddress->getPostcode());
467
+
468
+ $_order->billing_customer_name = $billingAddress->getName();
469
+ $_order->billing_customer_telephone = $billingAddress->getTelephone();
470
+ }
471
+
472
+ if($shippingAddress)
473
+ {
474
+ $this->_setAddressFields($_order, $shippingAddress, "shipping_address");
475
 
476
+ $_order->shipping_country = trim($shippingAddress->getCountry());
477
+ $_order->shipping_country_code = $shippingAddress->getCountryModel()->getIso2Code();
478
+ $_order->shipping_postcode = trim($shippingAddress->getPostcode());
479
+
480
+ $_order->customer_name = $shippingAddress->getName();
481
+ $_order->customer_telephone = $shippingAddress->getTelephone();
482
+ }
483
 
484
  list($carrier, $method) = explode(' - ', $order->getShippingDescription());
485
 
491
  $_order->shipping_tax_rate = ($order->shipping_incl_tax / $order->shipping_amount) - 1;
492
 
493
  $_order->customer_email = $order->getCustomerEmail();
 
 
 
494
  $_order->billing_customer_email = $order->getCustomerEmail();
495
+
 
 
496
  $_order->external_ref = $order->getIncrementId();
497
 
498
  $order->getCreatedAtDate()->setOptions(array('format_type' => 'php'));
499
  $_order->sale_datetime = $order->getCreatedAtDate()->toString("Y-m-d H:i:s");
500
 
501
+ $payment = $order->getPayment();
502
+
503
+ $_order->payment_trans_id = $payment->getPoNumber();
504
+ $_order->payment_type = $payment->getMethodInstance()->getTitle();
505
 
506
  $_order->company_ref_id = $companyRefId;
507
 
508
  $_order->status = Mage::getStoreConfig("general/personaliseit-sl/default_order_status");
509
+ $_order->tag = Mage::getStoreConfig("general/personaliseit-sl/default_order_tag", $order->getStoreId());
510
 
511
  if(!Mage::getStoreConfig("general/personaliseit-sl/enable_order_status_polling"))
512
  {
app/code/local/Gateway3D/PersonaliseIt/Model/ImportOptions.php CHANGED
@@ -100,12 +100,27 @@ class Gateway3D_PersonaliseIt_Model_ImportOptions
100
  ? Gateway3D_PersonaliseIt_Model_Catalog_Product_Option::OPTION_TYPE_FIELD
101
  : Gateway3D_PersonaliseIt_Model_Catalog_Product_Option::OPTION_TYPE_HIDDEN;
102
 
 
 
 
 
 
 
 
 
 
 
 
103
  $fields = array(array(
104
  'price' => @$area['price'] ?: 0.00,
105
  'price_type' => 'fixed',
106
  'sku' => "userText{$area['template_text_area_id']}",
107
- 'max_characters'=> $area['character_limit']
108
  ));
 
 
 
 
 
109
  }
110
 
111
  $this->_optionData[] = array(
100
  ? Gateway3D_PersonaliseIt_Model_Catalog_Product_Option::OPTION_TYPE_FIELD
101
  : Gateway3D_PersonaliseIt_Model_Catalog_Product_Option::OPTION_TYPE_HIDDEN;
102
 
103
+ $maxCharacters = $area['character_limit'];
104
+ $maxLines = $area['max_lines'];
105
+
106
+ if($maxLines && $maxCharacters)
107
+ {
108
+ $maxCharacters *= $maxLines;
109
+
110
+ // EOL
111
+ $maxCharacters += ($maxLines * 2);
112
+ }
113
+
114
  $fields = array(array(
115
  'price' => @$area['price'] ?: 0.00,
116
  'price_type' => 'fixed',
117
  'sku' => "userText{$area['template_text_area_id']}",
 
118
  ));
119
+
120
+ if($maxCharacters)
121
+ {
122
+ $fields[0]['max_characters'] = $maxCharacters;
123
+ }
124
  }
125
 
126
  $this->_optionData[] = array(
app/code/local/Gateway3D/PersonaliseIt/Model/Product/Callback.php CHANGED
@@ -410,9 +410,11 @@ class Gateway3D_PersonaliseIt_Model_Product_Callback
410
  private function _ensureProductHasCustomOptions(Mage_Catalog_Model_Product $product, $required = array())
411
  {
412
  $printJobIdSku = Gateway3D_PersonaliseIt_Model_Cron_Sl::PRINT_JOB_ID_CUSTOM_OPTION_SKU;
 
413
 
414
  $required = array_merge(array(
415
  $printJobIdSku,
 
416
  "thumburl"
417
  ), $required);
418
 
410
  private function _ensureProductHasCustomOptions(Mage_Catalog_Model_Product $product, $required = array())
411
  {
412
  $printJobIdSku = Gateway3D_PersonaliseIt_Model_Cron_Sl::PRINT_JOB_ID_CUSTOM_OPTION_SKU;
413
+ $printJobRefSku = Gateway3D_PersonaliseIt_Model_Cron_Sl::PRINT_JOB_REF_CUSTOM_OPTION_SKU;
414
 
415
  $required = array_merge(array(
416
  $printJobIdSku,
417
+ $printJobRefSku,
418
  "thumburl"
419
  ), $required);
420
 
app/code/local/Gateway3D/PersonaliseIt/Model/Product/Epa.php CHANGED
@@ -30,8 +30,10 @@ class Gateway3D_PersonaliseIt_Model_Product_Epa
30
  {
31
  $_associatedProduct = Mage::getModel('catalog/product');
32
  $_associatedProduct->load($associatedProduct->getId());
33
-
34
- $data['grouped'][] = $this->_getProductData($_associatedProduct);
 
 
35
 
36
  // Grouped products don't have prices so use the cheapest
37
  // associated product.
@@ -45,7 +47,7 @@ class Gateway3D_PersonaliseIt_Model_Product_Epa
45
  }
46
  }
47
  }
48
-
49
  //
50
  return $data;
51
  }
30
  {
31
  $_associatedProduct = Mage::getModel('catalog/product');
32
  $_associatedProduct->load($associatedProduct->getId());
33
+
34
+ $data['grouped'][] = $this->_getProductData($_associatedProduct) + array(
35
+ 'dynamic_pricing' => $this->_getProductDynamicPricing($_associatedProduct)
36
+ );
37
 
38
  // Grouped products don't have prices so use the cheapest
39
  // associated product.
47
  }
48
  }
49
  }
50
+
51
  //
52
  return $data;
53
  }
app/code/local/Gateway3D/PersonaliseIt/etc/config.xml CHANGED
@@ -11,7 +11,7 @@
11
  <config>
12
  <modules>
13
  <Gateway3D_PersonaliseIt>
14
- <version>1.6.9.0</version>
15
  </Gateway3D_PersonaliseIt>
16
  </modules>
17
  <global>
11
  <config>
12
  <modules>
13
  <Gateway3D_PersonaliseIt>
14
+ <version>1.6.11.0</version>
15
  </Gateway3D_PersonaliseIt>
16
  </modules>
17
  <global>
app/code/local/Gateway3D/PersonaliseIt/etc/system.xml CHANGED
@@ -37,6 +37,30 @@
37
  <show_in_website>1</show_in_website>
38
  <show_in_store>0</show_in_store>
39
  </mobile_iframe_url>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
40
  </fields>
41
  </personaliseit-product-selector>
42
 
@@ -46,7 +70,7 @@
46
  <sort_order>1</sort_order>
47
  <show_in_default>1</show_in_default>
48
  <show_in_website>1</show_in_website>
49
- <show_in_store>0</show_in_store>
50
  <fields>
51
  <api_path translate="label">
52
  <label>API Path</label>
@@ -83,6 +107,15 @@
83
  <show_in_store>0</show_in_store>
84
  <source_model>personaliseit/source_orderstatus</source_model>
85
  </default_order_status>
 
 
 
 
 
 
 
 
 
86
  <enable_order_status_polling translate="label">
87
  <label>Enable Order Status Polling (Legacy)</label>
88
  <frontend_type>select</frontend_type>
37
  <show_in_website>1</show_in_website>
38
  <show_in_store>0</show_in_store>
39
  </mobile_iframe_url>
40
+ <override_locale translate="label">
41
+ <label>Override Locale With...</label>
42
+ <frontend_type>text</frontend_type>
43
+ <sort_order>10</sort_order>
44
+ <show_in_default>1</show_in_default>
45
+ <show_in_website>1</show_in_website>
46
+ <show_in_store>1</show_in_store>
47
+ </override_locale>
48
+ <override_config translate="label">
49
+ <label>Override Config With...</label>
50
+ <frontend_type>text</frontend_type>
51
+ <sort_order>11</sort_order>
52
+ <show_in_default>1</show_in_default>
53
+ <show_in_website>1</show_in_website>
54
+ <show_in_store>1</show_in_store>
55
+ </override_config>
56
+ <override_layout translate="label">
57
+ <label>Override Layout With...</label>
58
+ <frontend_type>text</frontend_type>
59
+ <sort_order>12</sort_order>
60
+ <show_in_default>1</show_in_default>
61
+ <show_in_website>1</show_in_website>
62
+ <show_in_store>1</show_in_store>
63
+ </override_layout>
64
  </fields>
65
  </personaliseit-product-selector>
66
 
70
  <sort_order>1</sort_order>
71
  <show_in_default>1</show_in_default>
72
  <show_in_website>1</show_in_website>
73
+ <show_in_store>1</show_in_store>
74
  <fields>
75
  <api_path translate="label">
76
  <label>API Path</label>
107
  <show_in_store>0</show_in_store>
108
  <source_model>personaliseit/source_orderstatus</source_model>
109
  </default_order_status>
110
+ <override_company_ref_id translate="label">
111
+ <label>Override Company Ref ID</label>
112
+ <frontend_type>text</frontend_type>
113
+ <sort_order>41</sort_order>
114
+ <show_in_default>1</show_in_default>
115
+ <show_in_website>1</show_in_website>
116
+ <show_in_store>1</show_in_store>
117
+ <validate>validate-length maximum-length-5</validate>
118
+ </override_company_ref_id>
119
  <enable_order_status_polling translate="label">
120
  <label>Enable Order Status Polling (Legacy)</label>
121
  <frontend_type>select</frontend_type>
app/code/local/Gateway3D/PersonaliseIt/sql/personaliseit_setup/mysql4-upgrade-1.6.9.2-1.6.10.0.php ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ $installer = $this;
4
+ $installer->startSetup();
5
+
6
+ $setup = Mage::getModel('customer/entity_setup', 'core_setup');
7
+ $setup->addAttribute('customer', 'override_company_ref_id', array(
8
+ 'type' => 'varchar',
9
+ 'input' => 'text',
10
+ 'label' => 'Override Company Ref ID',
11
+ 'global' => 1,
12
+ 'visible' => 1,
13
+ 'required' => 0,
14
+ 'user_defined' => 1,
15
+ 'default' => '',
16
+ 'visible_on_front' => 0
17
+ ));
18
+
19
+ if (version_compare(Mage::getVersion(), '1.6.0', '<='))
20
+ {
21
+ $customer = Mage::getModel('customer/customer');
22
+ $attrSetId = $customer->getResource()->getEntityType()->getDefaultAttributeSetId();
23
+ $setup->addAttributeToSet('customer', $attrSetId, 'General', 'override_company_ref_id');
24
+ }
25
+
26
+ if (version_compare(Mage::getVersion(), '1.4.2', '>='))
27
+ {
28
+ Mage::getSingleton('eav/config')
29
+ ->getAttribute('customer', 'override_company_ref_id')
30
+ ->setData('used_in_forms', array('adminhtml_customer'))
31
+ ->save();
32
+ }
33
+
34
+ $installer->endSetup();
app/design/frontend/base/default/template/personaliseit/product/callback.phtml CHANGED
@@ -3,13 +3,13 @@
3
  <head>
4
  <script>
5
  setTimeout(function() {
6
- window.top.location = "<?= $this->redirect ?>";
7
  }, 250);
8
  </script>
9
 
10
  <title>Adding to Cart...</title>
11
  </head>
12
  <body>
13
- <h2 style="font-family: Arial, Helvetica, sans-serif; font-size: 1.8em; color: #888"><?= $this->message ?></h2>
14
  </body>
15
- </html>
3
  <head>
4
  <script>
5
  setTimeout(function() {
6
+ window.top.location = "<?php echo $this->redirect ?>";
7
  }, 250);
8
  </script>
9
 
10
  <title>Adding to Cart...</title>
11
  </head>
12
  <body>
13
+ <h2 style="font-family: Arial, Helvetica, sans-serif; font-size: 1.8em; color: #888"><?php echo $this->message ?></h2>
14
  </body>
15
+ </html>
app/design/frontend/base/default/template/personaliseit/product/view/media.phtml CHANGED
@@ -46,13 +46,31 @@
46
 
47
  $epa = Mage::getUrl('personaliseit/product/epa', $params);
48
  $callback = Mage::getUrl('personaliseit/product/callback', $params);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
49
 
50
  // Build URLs
51
  $urlParams = array(
52
  'a2cpost' => 1,
53
  'epa' => $epa,
54
  'ep3dUrl' => $callback,
55
- 'guid' => $product->personaliseit_company_ref_id,
56
  'meo' => $messageEventHelper->getOrigin(Mage::getBaseUrl()),
57
  'mei' => $messageEventHelper->getId()
58
  );
@@ -64,12 +82,19 @@
64
  {
65
  foreach($product->getOptions() as $o)
66
  {
67
- if($o->getSku() == 'printJobId')
 
68
  {
69
  $urlParams['pj'] = $existingOptions[$o->getId()];
70
-
71
  $cartId = $this->getRequest()->getParam('id');
72
- $urlParams['ep3dUrl'] = "{$urlParams['ep3dUrl']}update/{$cartId}";
 
 
 
 
 
 
73
  }
74
  }
75
  }
@@ -83,7 +108,7 @@
83
  'legacy' => 'easypromo3d_url',
84
  );
85
 
86
- $urls = array_map(function($u) use ($product, $messageEventHelper, $urlParams)
87
  {
88
  $present = !!$product->{$u};
89
 
@@ -97,6 +122,18 @@
97
  }
98
  }
99
 
 
 
 
 
 
 
 
 
 
 
 
 
100
  $query = http_build_query($_urlParams);
101
  $url = "{$product->$u}&{$query}";
102
 
@@ -203,9 +240,23 @@
203
  }
204
 
205
  <?php if(!$product->personaliseit_dp_enabled): ?>
206
- document.getElementById('personalise-it-iframe').src = url;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
207
  <?php else: ?>
208
- var delayedPreview = new PersonaliseIt.DelayedPreview(url, '<?= $messageEventHelper->getId() ?>', origin);
209
  <?php
210
  foreach($product->getOptions() as $o)
211
  {
@@ -229,7 +280,7 @@
229
  {
230
  ?>
231
 
232
- delayedPreview.addTextField('<?= $selector ?>', <?= $matches[1] ?>);
233
 
234
  <?php
235
  }
46
 
47
  $epa = Mage::getUrl('personaliseit/product/epa', $params);
48
  $callback = Mage::getUrl('personaliseit/product/callback', $params);
49
+ $customer = Mage::getSingleton('customer/session')->getCustomer();
50
+
51
+ $guids = array_values(array_filter(array(
52
+ $customer->override_company_ref_id,
53
+ Mage::getStoreConfig("general/personaliseit-sl/override_company_ref_id", Mage::app()->getStore()),
54
+ $product->personaliseit_company_ref_id
55
+ )));
56
+
57
+ $overrideVals = array(
58
+ 'lo' => Mage::getStoreConfig('general/personaliseit-product-selector/override_locale', Mage::app()->getStore()),
59
+ 'l' => Mage::getStoreConfig('general/personaliseit-product-selector/override_layout', Mage::app()->getStore()),
60
+ 'c' => Mage::getStoreConfig('general/personaliseit-product-selector/override_config', Mage::app()->getStore()),
61
+ );
62
+ $overrideMatch = array(
63
+ 'lo' => array('/(lo=)[^&]*/', '|(g3d-app.com/s/app/[^/]*/)[^/]*(/.*)|'),
64
+ 'l' => array('/(l=)[^&]*/', '|(g3d-app.com/s/app/)[^/]*(/.*)|'),
65
+ 'c' => array('/(c=)[^&]*/', '|(g3d-app.com/s/app/[^/]*/[^/]*/)[^/.]*(.*)|'),
66
+ );
67
 
68
  // Build URLs
69
  $urlParams = array(
70
  'a2cpost' => 1,
71
  'epa' => $epa,
72
  'ep3dUrl' => $callback,
73
+ 'guid' => $guids ? $guids[0] : '',
74
  'meo' => $messageEventHelper->getOrigin(Mage::getBaseUrl()),
75
  'mei' => $messageEventHelper->getId()
76
  );
82
  {
83
  foreach($product->getOptions() as $o)
84
  {
85
+ // Only check printJobId for backwards compat with nopreview app
86
+ if(in_array($o->getSku(), array('printJobRef', 'printJobId')) && isset($existingOptions[$o->getId()]))
87
  {
88
  $urlParams['pj'] = $existingOptions[$o->getId()];
89
+
90
  $cartId = $this->getRequest()->getParam('id');
91
+ $urlParams['ep3dUrl'] = "{$urlParams['ep3dUrl']}update/{$cartId}/";
92
+ }
93
+
94
+ // printJobRef gets precendence
95
+ if($o->getSku() == 'printJobRef')
96
+ {
97
+ break;
98
  }
99
  }
100
  }
108
  'legacy' => 'easypromo3d_url',
109
  );
110
 
111
+ $urls = array_map(function($u) use ($product, $messageEventHelper, $urlParams, $overrideVals, $overrideMatch)
112
  {
113
  $present = !!$product->{$u};
114
 
122
  }
123
  }
124
 
125
+ foreach($overrideVals as $key => $value)
126
+ {
127
+ if(trim($value) === '')
128
+ {
129
+ continue;
130
+ }
131
+ foreach($overrideMatch[$key] as $regex)
132
+ {
133
+ $product->{$u} = preg_replace($regex, '$1' . $value . '$2', $product->{$u});
134
+ }
135
+ }
136
+
137
  $query = http_build_query($_urlParams);
138
  $url = "{$product->$u}&{$query}";
139
 
240
  }
241
 
242
  <?php if(!$product->personaliseit_dp_enabled): ?>
243
+ var iframe = document.getElementById('personalise-it-iframe');
244
+ iframe.src = url;
245
+
246
+ window.addEventListener("message", function(e) {
247
+ if(e.origin == origin && e.data.id == '<?php echo $messageEventHelper->getId() ?>') {
248
+ var name = e.data.name;
249
+ var body = e.data.body;
250
+
251
+ switch(name) {
252
+ case 'IFRAME_RESIZE':
253
+ iframe.style.height = body.height + "px";
254
+ break;
255
+ }
256
+ }
257
+ });
258
  <?php else: ?>
259
+ var delayedPreview = new PersonaliseIt.DelayedPreview(url, '<?php echo $messageEventHelper->getId() ?>', origin);
260
  <?php
261
  foreach($product->getOptions() as $o)
262
  {
280
  {
281
  ?>
282
 
283
+ delayedPreview.addTextField('<?php echo $selector ?>', <?php echo $matches[1] ?>);
284
 
285
  <?php
286
  }
js/personalise-it/delayed-preview.js CHANGED
@@ -30,24 +30,28 @@ PersonaliseIt.DelayedPreview = (function() {
30
  for(var optionId in this.textFields) {
31
  var element = $$('#' + optionId)[0];
32
 
33
- var text = element.options && element.selectedIndex
34
- ? element.options[element.selectedIndex].text
35
- : element.value;
36
-
37
- iframeWindow.postMessage({
38
- id: this.id,
39
- name: 'SET_TEXT_AREA_TEXT',
40
 
41
- body: {
42
- areaId: this.textFields[optionId],
43
- text: text
44
- }
45
- }, this.origin);
 
 
 
 
 
46
  }
47
  };
48
 
49
  DelayedPreview.prototype.preview = function() {
50
  this.busyCount = 0;
 
 
51
 
52
  var popup = new Window({
53
  id:'preview',
@@ -68,16 +72,20 @@ PersonaliseIt.DelayedPreview = (function() {
68
  duration: 0.4
69
  },
70
 
71
- onload: (function() {
72
  var window = $$('#preview_content')[0].contentWindow;
73
-
74
- var int = setInterval((function() {
75
- if(this.busyCount === 0) {
76
- clearInterval(int);
 
 
 
77
 
78
- this.update(window);
79
- }
80
- }).bind(this), 100);
 
81
  }).bind(this),
82
 
83
  destroyOnClose: true
30
  for(var optionId in this.textFields) {
31
  var element = $$('#' + optionId)[0];
32
 
33
+ if(element) {
34
+ var text = element.options && element.selectedIndex
35
+ ? element.options[element.selectedIndex].text
36
+ : element.value;
 
 
 
37
 
38
+ iframeWindow.postMessage({
39
+ id: this.id,
40
+ name: 'SET_TEXT_AREA_TEXT',
41
+
42
+ body: {
43
+ areaId: this.textFields[optionId],
44
+ text: text
45
+ }
46
+ }, this.origin);
47
+ }
48
  }
49
  };
50
 
51
  DelayedPreview.prototype.preview = function() {
52
  this.busyCount = 0;
53
+
54
+ var int = 0;
55
 
56
  var popup = new Window({
57
  id:'preview',
72
  duration: 0.4
73
  },
74
 
75
+ onload: (function(a,b) {
76
  var window = $$('#preview_content')[0].contentWindow;
77
+
78
+ if(int) {
79
+ clearInterval(int);
80
+ } else {
81
+ int = setInterval((function() {
82
+ if(this.busyCount === 0) {
83
+ clearInterval(int);
84
 
85
+ this.update(window);
86
+ }
87
+ }).bind(this), 100);
88
+ }
89
  }).bind(this),
90
 
91
  destroyOnClose: true
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Gateway3D_PersonaliseIt</name>
4
- <version>1.6.9.0</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/GPL-3.0">GNU General Public License (GPL)</license>
7
  <channel>community</channel>
@@ -16,11 +16,11 @@ Enables you to add to a single product or install a product selector&#xD;
16
  Integrates with Magento to get latest prices for single and grouped products&#xD;
17
  Enables easy import of personalised products data from the Gateway3D ACP&#xD;
18
  </description>
19
- <notes>general updates</notes>
20
  <authors><author><name>James Ball</name><user>gateway3d</user><email>andrew@gateway3d.com</email></author></authors>
21
- <date>2015-12-03</date>
22
- <time>15:06:21</time>
23
- <contents><target name="magelocal"><dir name="Gateway3D"><dir name="PersonaliseIt"><dir name="Block"><dir name="Adminhtml"><dir name="Catalog"><dir name="Product"><dir name="Edit"><dir name="Tab"><dir name="Options"><file name="Option.php" hash="de7ec2e5d3726236fc1be2d32e7449c9"/></dir><file name="Options.php" hash="8f30014e12e91e0953f88ba7db8ca0f1"/></dir></dir></dir></dir></dir><dir name="Product"><dir name="View"><file name="Options.php" hash="e4c65343b18699801cac12926b899a8a"/></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="6fa3c5a7ddaee7f85574913ca3f5c453"/><file name="MessageEvent.php" hash="68b3bbd29ef744cc003e19983f8aa9ff"/><file name="ProductCustomOptions.php" hash="c0c814759d98f7d2d2c76e5c69138688"/></dir><dir name="Model"><dir name="Catalog"><dir name="Product"><dir name="Option"><dir name="Type"><file name="Hidden.php" hash="24e4219bcef522d5541c80e76d81d417"/></dir></dir><file name="Option.php" hash="6e5d86d3461efe2ec628167452810540"/></dir></dir><dir name="Cron"><file name="Abstract.php" hash="23ff66caca4b72339b440974189b9ff8"/><file name="DelayedPrintJob.php" hash="dc9ad2fb74dd140eb8059e27967142d0"/><file name="Sl.php" hash="eeb0a156c3848907b4ed232989d06b96"/></dir><file name="ImportOptions.php" hash="8af798d813b22302eaaf495be9e4f172"/><dir name="Product"><file name="Abstract.php" hash="42d7cc2abc7ac71ff4f3c273e0d2eab2"/><file name="Callback.php" hash="48a9a2eeee9b28fab80258456e4bfda3"/><file name="Epa.php" hash="bfa7ba8bd72e99a1d98bd40f23dcd316"/><file name="Rating.php" hash="ef560672e4ebabf7ee48400fd844e2c6"/></dir><dir name="Resource"><dir name="Eav"><dir name="Mysql4"><file name="Setup.php" hash="1cc4352f5731c8791909e91e37c16dbe"/></dir></dir></dir><dir name="Source"><file name="Orderstatus.php" hash="cab06992d625e25c03230c2d83e5181b"/></dir><dir name="Status"><file name="Callback.php" hash="3a570645736683a389ad64e20862b3d0"/></dir></dir><dir name="controllers"><file name="CppController.php" hash="8c67cacf5709a556e491dbfebe966032"/><file name="ProductController.php" hash="df5d67f396621d9f78225744f0f6aff4"/><file name="ProductsController.php" hash="ecc1571d47195ed50425cff021cdb763"/><file name="StatusController.php" hash="b5ac639a2c016ba6069444539b0f192c"/></dir><dir name="etc"><file name="config.xml" hash="b088e1b5ff31a8e8dd12c679e172df23"/><file name="system.xml" hash="b52cb07f78433f223cc01924ea5ce2ad"/></dir><dir name="sql"><dir name="personaliseit_setup"><file name="mysql4-install-1.0.0.php" hash="1fce9f7b040554ef5a94548d1a475fa4"/><file name="mysql4-upgrade-1.0.0-1.1.0.php" hash="4a595f9829b6860bc95b53bdc9502ff9"/><file name="mysql4-upgrade-1.1.1-1.1.2.php" hash="6191fd474af43bc3eb2ddbd8d77502d9"/><file name="mysql4-upgrade-1.1.7.1-1.2.0.0.php" hash="4f1bde8b6caecd92eac47fbbff54670b"/><file name="mysql4-upgrade-1.2.0.3-1.3.0.0.php" hash="c1ad1ae7db03f5d1558e6bbe5c63cdce"/><file name="mysql4-upgrade-1.3.5.4-1.3.6.0.php" hash="e4bfb0b95cfcae3142eee04fe1b5c7c8"/><file name="mysql4-upgrade-1.3.6.0-1.4.0.0.php" hash="35ef54c4aa462e673cad55c8b1f66657"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="personaliseit"><dir name="catalog"><dir name="product"><dir name="edit"><file name="options.phtml" hash="8778b1db29eeaea9ac0f48c23bea908c"/></dir></dir></dir><file name="item_column_renderer_name.phtml" hash="22f10bce29cdc670790c31b23df39c85"/><file name="option.phtml" hash="dc54dc21176e7b36175f58956162340e"/></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="personaliseit.xml" hash="7c81f0d446b9d42ef6f3f15ebe810c24"/></dir><dir name="template"><dir name="personaliseit"><dir name="cart"><dir name="item"><file name="default.phtml" hash="3473fca9da1e0c7a1b6be2a4582b07db"/></dir></dir><dir name="product"><file name="callback.phtml" hash="8a5fa1a137a7cc867d738f238cbf5f09"/><dir name="view"><file name="addtocart.phtml" hash="31b3cb1ce58bf5683ac42aad40c7a53c"/><file name="media.phtml" hash="6e608632b2dbf491e5b87a0f3594384e"/></dir></dir><dir name="products"><file name="index.phtml" hash="a579b987c9af70705730a5cb8d961a08"/></dir></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Gateway3D_PersonaliseIt.xml" hash="16c34b7b2a594b1cec6dee88ff1528ea"/></dir></target><target name="mageweb"><dir name="js"><dir name="personalise-it"><file name="delayed-preview.js" hash="b6f2b21374b0763351bd7552ae537f75"/></dir></dir></target><target name="magelib"><dir name="Gateway3D"><dir name="PersonaliseIt"><dir name="Service"><dir name="Api"><file name="Abstract.php" hash="0a04cec6523526979e199ab85de241d2"/><dir name="P1"><file name="Product.php" hash="2af118282a6259397da3b674eed96978"/><file name="Sample.php" hash="26939ac32c06825bcbba37a445219b4a"/></dir><dir name="P2"><file name="PrintJob.php" hash="bc0f3e564a608893d599ef364c4095b8"/></dir><dir name="Sl"><file name="Order.php" hash="efb4e24a9dac06385cb89559b0779eef"/></dir></dir><dir name="Dto"><file name="Abstract.php" hash="5eb3756ee49227e089b92db44d5bdc04"/><file name="Interface.php" hash="1023c3de30572c812bc1d4e1027184d3"/><dir name="P1"><file name="Product.php" hash="7c3f1f9afa6be2d207195323ebe9ac78"/><file name="Sample.php" hash="cd6583fee38465fe0063cb5479c7cdb4"/></dir><dir name="P2"><file name="PrintJob.php" hash="d4fc0358846d23ecdd2647a55dcaafe9"/></dir><dir name="Sl"><dir name="Order"><file name="Item.php" hash="08e26b54602bb477e1cd70d3c642f8be"/></dir><file name="Order.php" hash="929bcee73f1b95b3827394452ef2fb29"/></dir></dir></dir></dir></dir></target></contents>
24
  <compatible/>
25
  <dependencies><required><php><min>4.4.0</min><max>6.0.0</max></php></required></dependencies>
26
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Gateway3D_PersonaliseIt</name>
4
+ <version>1.6.11.0</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/GPL-3.0">GNU General Public License (GPL)</license>
7
  <channel>community</channel>
16
  Integrates with Magento to get latest prices for single and grouped products&#xD;
17
  Enables easy import of personalised products data from the Gateway3D ACP&#xD;
18
  </description>
19
+ <notes>new version</notes>
20
  <authors><author><name>James Ball</name><user>gateway3d</user><email>andrew@gateway3d.com</email></author></authors>
21
+ <date>2016-04-29</date>
22
+ <time>12:38:40</time>
23
+ <contents><target name="magelocal"><dir name="Gateway3D"><dir name="PersonaliseIt"><dir name="Block"><dir name="Adminhtml"><dir name="Catalog"><dir name="Product"><dir name="Edit"><dir name="Tab"><dir name="Options"><file name="Option.php" hash="de7ec2e5d3726236fc1be2d32e7449c9"/></dir><file name="Options.php" hash="8f30014e12e91e0953f88ba7db8ca0f1"/></dir></dir></dir></dir></dir><dir name="Product"><dir name="View"><file name="Options.php" hash="e4c65343b18699801cac12926b899a8a"/></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="6fa3c5a7ddaee7f85574913ca3f5c453"/><file name="MessageEvent.php" hash="68b3bbd29ef744cc003e19983f8aa9ff"/><file name="ProductCustomOptions.php" hash="c0c814759d98f7d2d2c76e5c69138688"/></dir><dir name="Model"><dir name="Catalog"><dir name="Product"><dir name="Option"><dir name="Type"><file name="Hidden.php" hash="24e4219bcef522d5541c80e76d81d417"/></dir></dir><file name="Option.php" hash="6e5d86d3461efe2ec628167452810540"/></dir></dir><dir name="Cron"><file name="Abstract.php" hash="d6faef7d49d7add2b6d99736a713929d"/><file name="DelayedPrintJob.php" hash="f660609373be4eb3c241bf37ae2a12b0"/><file name="Sl.php" hash="ea22b3ca50524d452e7be788fa376588"/></dir><file name="ImportOptions.php" hash="9797ac568f772d64bc362b36dbb86a39"/><dir name="Product"><file name="Abstract.php" hash="42d7cc2abc7ac71ff4f3c273e0d2eab2"/><file name="Callback.php" hash="597660d1246b6130d841cb9d07d7cb15"/><file name="Epa.php" hash="3bb86143f2ec22752518b9298cc09710"/><file name="Rating.php" hash="ef560672e4ebabf7ee48400fd844e2c6"/></dir><dir name="Resource"><dir name="Eav"><dir name="Mysql4"><file name="Setup.php" hash="1cc4352f5731c8791909e91e37c16dbe"/></dir></dir></dir><dir name="Source"><file name="Orderstatus.php" hash="cab06992d625e25c03230c2d83e5181b"/></dir><dir name="Status"><file name="Callback.php" hash="3a570645736683a389ad64e20862b3d0"/></dir></dir><dir name="controllers"><file name="CppController.php" hash="8c67cacf5709a556e491dbfebe966032"/><file name="ProductController.php" hash="df5d67f396621d9f78225744f0f6aff4"/><file name="ProductsController.php" hash="ecc1571d47195ed50425cff021cdb763"/><file name="StatusController.php" hash="b5ac639a2c016ba6069444539b0f192c"/></dir><dir name="etc"><file name="config.xml" hash="804879633727507e2c2a08a27c4e6b5f"/><file name="system.xml" hash="fc046ac5905ba89613304b55000ec89a"/></dir><dir name="sql"><dir name="personaliseit_setup"><file name="mysql4-install-1.0.0.php" hash="1fce9f7b040554ef5a94548d1a475fa4"/><file name="mysql4-upgrade-1.0.0-1.1.0.php" hash="4a595f9829b6860bc95b53bdc9502ff9"/><file name="mysql4-upgrade-1.1.1-1.1.2.php" hash="6191fd474af43bc3eb2ddbd8d77502d9"/><file name="mysql4-upgrade-1.1.7.1-1.2.0.0.php" hash="4f1bde8b6caecd92eac47fbbff54670b"/><file name="mysql4-upgrade-1.2.0.3-1.3.0.0.php" hash="c1ad1ae7db03f5d1558e6bbe5c63cdce"/><file name="mysql4-upgrade-1.3.5.4-1.3.6.0.php" hash="e4bfb0b95cfcae3142eee04fe1b5c7c8"/><file name="mysql4-upgrade-1.3.6.0-1.4.0.0.php" hash="35ef54c4aa462e673cad55c8b1f66657"/><file name="mysql4-upgrade-1.6.9.2-1.6.10.0.php" hash="fd8b389ac0a44bdb8676ab770bbc2819"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="personaliseit"><dir name="catalog"><dir name="product"><dir name="edit"><file name="options.phtml" hash="8778b1db29eeaea9ac0f48c23bea908c"/></dir></dir></dir><file name="item_column_renderer_name.phtml" hash="22f10bce29cdc670790c31b23df39c85"/><file name="option.phtml" hash="dc54dc21176e7b36175f58956162340e"/></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="personaliseit.xml" hash="7c81f0d446b9d42ef6f3f15ebe810c24"/></dir><dir name="template"><dir name="personaliseit"><dir name="cart"><dir name="item"><file name="default.phtml" hash="3473fca9da1e0c7a1b6be2a4582b07db"/></dir></dir><dir name="product"><file name="callback.phtml" hash="39534c47ae3482b0e32e3c7d427987cf"/><dir name="view"><file name="addtocart.phtml" hash="31b3cb1ce58bf5683ac42aad40c7a53c"/><file name="media.phtml" hash="01e59ceca46a2c8b67746eab72b5457c"/></dir></dir><dir name="products"><file name="index.phtml" hash="a579b987c9af70705730a5cb8d961a08"/></dir></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Gateway3D_PersonaliseIt.xml" hash="16c34b7b2a594b1cec6dee88ff1528ea"/></dir></target><target name="mageweb"><dir name="js"><dir name="personalise-it"><file name="delayed-preview.js" hash="6d4101a4c2e27d2990ff6771bc7ebe8b"/></dir></dir></target><target name="magelib"><dir name="Gateway3D"><dir name="PersonaliseIt"><dir name="Service"><dir name="Api"><file name="Abstract.php" hash="0a04cec6523526979e199ab85de241d2"/><dir name="P1"><file name="Product.php" hash="2af118282a6259397da3b674eed96978"/><file name="Sample.php" hash="26939ac32c06825bcbba37a445219b4a"/></dir><dir name="P2"><file name="PrintJob.php" hash="bc0f3e564a608893d599ef364c4095b8"/></dir><dir name="Sl"><file name="Order.php" hash="efb4e24a9dac06385cb89559b0779eef"/></dir></dir><dir name="Dto"><file name="Abstract.php" hash="5eb3756ee49227e089b92db44d5bdc04"/><file name="Interface.php" hash="1023c3de30572c812bc1d4e1027184d3"/><dir name="P1"><file name="Product.php" hash="7c3f1f9afa6be2d207195323ebe9ac78"/><file name="Sample.php" hash="cd6583fee38465fe0063cb5479c7cdb4"/></dir><dir name="P2"><file name="PrintJob.php" hash="d4fc0358846d23ecdd2647a55dcaafe9"/></dir><dir name="Sl"><dir name="Order"><file name="Item.php" hash="08e26b54602bb477e1cd70d3c642f8be"/></dir><file name="Order.php" hash="929bcee73f1b95b3827394452ef2fb29"/></dir></dir></dir></dir></dir></target></contents>
24
  <compatible/>
25
  <dependencies><required><php><min>4.4.0</min><max>6.0.0</max></php></required></dependencies>
26
  </package>