tig_postnl - Version 1.2.2

Version Notes

==== v1.2.2 ====
==== New features ====
- Added the option to send a copy of the track & trace email to a specified email address.

==== Improvements ====
- Performance of the entire extension has been improved. The extension will now attempt to cache several configuration values.
- Label printing will now always follow the 'label size' configuration setting.

==== Bug fixes ====
- Fixed several small html errors in the track & trace email template.
- Fixed an SQL error that could occur when filtering the 'store' column in the order and shipment grids.

==== v1.2.1 ====
==== Release highlights ====
- The extension now fully supports Magento 1.9 and 1.14!

==== Minor improvements ====
- Added additional checks to prevent errors when Magento's layout has been altered or PostNL's layout has not been uploaded properly.
- Added additional compatibility enhancements for MultiSafePay and other PSP extensions.
- Improved several minor texts and translations.

==== Bug fixes ====
- Fixed an issue that prevented MijnPakket login data from being cached.
- Fixed an issue where using PostNL-only features on non-PostNL shipments would cause an error.
- Fixed an issue where PostNL's feed messages would be loaded in the wrong order.
- Fixed an issue where several notifications would be added to Magento when installing an unsupported version of Magento with the PostNL extension.
- Fixed an issue with EPS comb-labels. EPS combi-labels were rotated by 90 degrees, causing overlapping issues with other labels being printed.

==== v1.2.0 =====
==== New features ====
- Added delivery options to the checkout flow. Customers can now choose where, when and how they want their order shipped when choosing their preferred shipping method.
- Added support for evening delivery, early pickup locations and parcel dispenser locations.
- Added Dutch postcode validation support.
- Added the option to create a parcelware export csv file directly from the Magento backend.
- Added a MijnPakket login feature. Customers who have a MijnPakket account can use this feature to automatically fill in their preferred billing and shipping address.

==== Minor improvements ====
- Refactored the label printing functionality. Shipping labels will now be opened in a separate window from where they may be printed or downloaded.
- Added the option to select where on an A4 page the shipping labels will start printing. This allows you to re-use partially used sticker-sheets.
- Added many new customization options for the shipment grid in the Magento backend.
- Added the ability to view and edit a chosen post office delivery address from the Magento backend.
- Added the option to only show the PostNL Checkout feature to customers who have a MijnPakket account.
- Refactored many sections of the source code to improve readability and extensibility.
- Moved several configuration settings.
- Merged the 'test/live mode' settings of PostNl Checkout and Label Printing & Confirming functionality. There is now a single option to set the entire extension to test or live mode.
- Added the option to upload separate csv files for the PostNL shipping method in 'table rate' configuration.

==== Bug fixes ====
- Fixed an issue where it was not possible to choose to only manually send track & trace information.
- Fixed several typos and translation errors.

==== v1.1.5 =====

==== Bug fixes ====
- Fixed a problem with account validation only using test mode account credentials
- Made a minor security improvement to the notification system.
- Fixed an issue where shipments could not be confirmed if the shipping address did not have an email address.
- Fixed an issue where PostNl Checkout would incorrectly identify a product as being out of stock.
- Fixed an issue where for some shops PostNl Checkout would not function due to incorrect usage of https in an http environment.

==== v1.1.4 =====

==== New features ====
- Added a default test account to the extension. New installation will automatically have a PostNL test account pre-configured.
- Added the option to undo a confirmation as long as the shipment has not been received by PostNL.
- Added the option to delete shipping labels. This allows you to correct an address after a shipping label has been printed. Before this change if you noticed an error in the address after you had already printed a shipping label, you had to place en entire new order to correct it. Now you can simply delete the shipping label, edit the address and print a new shipping label with the new address.

==== Minor change ====
- The validate settings button in the extension’s configuration page now also validates settings while the extension is set to test mode.
- Removed the 'EU Pack Standard (Belgium only, no signature)' product option. If you use this option, please contact the Total Internet Group servicedesk.
- The extension's test mode is now available by default. In earlier versions you had to allow test mode through a setting under advanced options.
- When a confirmation expires, the barcode's track & trace link will now also be removed.
- Improved various texts and translations.

==== Bug fixes ====
- Solved an issue where certain configurations of the PostNL shipping method would only appear if the Magento tablerates shipping method was also active.
- Solved an issue where filtering the order and shipment grids in the Magento backend on certain columns would cause an error.
- Solved an issue where the shipment status cron would stop as soon as it encountered an error, rather than continue processing the remaining shipments.
- Solved an issue where you could not confirm a shipment without a barcode due to process locking when developer mode is active.
- Solved issue in Safari where labels would be printed as .pdf.html, rather than just .pdf files.

==== v1.1.3 ====

- FIxed an issue with the extension's activation procedure.

==== v1.1.2 ====

- Updated manual.

==== v1.1.1 ====

- Fixed issue where filtering the first column of the shipment grid could cause errors.
- Removed PHP extension dependencies from the PostNL extension packages. Magento connect would sometimes falsely report a PHP extension as missing preventing the PostNL extension from being installed.

==== v1.1.0 ====

- First public release.

==== v1.0.8 ====

- Improved compatibility with Magento 1.6 and 1.11.

==== v1.0.7 ====

- Improved configuration fields.
- Improved translations.

==== v1.0.6 ====

- Improved shipment grid interface. It shoulod now be more clear which shipments have been confirmed and when they should be handed over to PostNL.
- Improved PostNL Checkout payment method handling. The Checkout summary page should now remember your chosen bank when you attempt to pay using iDEAL. 100% support for all payment methods is not guaranteed.

==== v1.0.5 ====

- Several bug fixes.
- Improved configuration interface.

==== v1.0.4 ====

- Several minor bug fixes.
- Improved Dutch translations.
- Added additional information to several fields in system/config.

==== v1.0.3 ====

- Several bug fixes. Including an issue preventing the extension from functioning properly with the compiler active.
- Several improvements to the Dutch translations.
- Improved the extension's system > config interface
- Added the Klarna payment method to PostNL Checkout

==== v1.0.2 ====

- A large number of bug fixes and general improvements
- Improved error handling. Almost all errors will now automatically provide you with a link where you can find more information and a possible solution.

==== v1.0.1 ====

- Added a filter to the possible product options you may select, based on the selected orders when mass-creating shipments from the order grid.
- Improved several translations.
- Fixed several minor bugs.

==== v1.0.0 ====

This is the initial beta release of the extension. If you have any questions, please contact the Total Internet Group Servicedesk

Download this release

Release Info

Developer TIG
Extension tig_postnl
Version 1.2.2
Comparing to
See all releases


Code changes from version 1.2.1 to 1.2.2

Files changed (50) hide show
  1. app/code/community/TIG/PostNL/Block/Adminhtml/System/Config/Form/Field/ConfigCheck.php +16 -34
  2. app/code/community/TIG/PostNL/Block/Checkout/Cart/CheckoutLink.php +3 -3
  3. app/code/community/TIG/PostNL/Block/DeliveryOptions/Checkout/DeliveryOptions.php +14 -18
  4. app/code/community/TIG/PostNL/Block/DeliveryOptions/Template.php +1 -1
  5. app/code/community/TIG/PostNL/Block/DeliveryOptions/Theme.php +1 -1
  6. app/code/community/TIG/PostNL/Helper/AddressValidation.php +2 -2
  7. app/code/community/TIG/PostNL/Helper/Carrier.php +1 -1
  8. app/code/community/TIG/PostNL/Helper/Checkout.php +67 -55
  9. app/code/community/TIG/PostNL/Helper/Cif.php +5 -0
  10. app/code/community/TIG/PostNL/Helper/Data.php +335 -105
  11. app/code/community/TIG/PostNL/Helper/DeliveryOptions.php +192 -80
  12. app/code/community/TIG/PostNL/Helper/Mijnpakket.php +11 -0
  13. app/code/community/TIG/PostNL/Model/AddressValidation/Observer/AddressBook.php +7 -7
  14. app/code/community/TIG/PostNL/Model/AddressValidation/Observer/OneStepCheckout.php +7 -7
  15. app/code/community/TIG/PostNL/Model/AddressValidation/Observer/Onepage.php +14 -14
  16. app/code/community/TIG/PostNL/Model/AddressValidation/System/Config/Backend/ValidateAccount.php +1 -1
  17. app/code/community/TIG/PostNL/Model/Adminhtml/Observer/OrderGrid.php +30 -22
  18. app/code/community/TIG/PostNL/Model/Adminhtml/Observer/ShipmentGrid.php +10 -11
  19. app/code/community/TIG/PostNL/Model/Adminhtml/Observer/ShipmentView.php +9 -9
  20. app/code/community/TIG/PostNL/Model/Checkout/Cif.php +2 -2
  21. app/code/community/TIG/PostNL/Model/Checkout/Service.php +2 -2
  22. app/code/community/TIG/PostNL/Model/Core/Cache.php +301 -0
  23. app/code/community/TIG/PostNL/Model/Core/Cif.php +1 -1
  24. app/code/community/TIG/PostNL/Model/Core/Label.php +7 -17
  25. app/code/community/TIG/PostNL/Model/Core/Observer/Barcode.php +2 -2
  26. app/code/community/TIG/PostNL/Model/Core/Observer/Cache.php +48 -0
  27. app/code/community/TIG/PostNL/Model/Core/Observer/Cron.php +4 -4
  28. app/code/community/TIG/PostNL/Model/Core/Shipment.php +56 -45
  29. app/code/community/TIG/PostNL/Model/Core/System/Config/Source/StreetField.php +11 -2
  30. app/code/community/TIG/PostNL/Model/DeliveryOptions/Observer/ShippingMethodAvailable.php +1 -1
  31. app/code/community/TIG/PostNL/Model/DeliveryOptions/Observer/UpdatePostnlOrder.php +3 -3
  32. app/code/community/TIG/PostNL/Model/ExtensionControl/Observer/Cron.php +1 -1
  33. app/code/community/TIG/PostNL/Model/ExtensionControl/Webservices.php +4 -4
  34. app/code/community/TIG/PostNL/Model/Mijnpakket/Observer/Onepage.php +16 -4
  35. app/code/community/TIG/PostNL/Model/Parcelware/Export.php +3 -3
  36. app/code/community/TIG/PostNL/Model/Resource/Setup.php +2 -2
  37. app/code/community/TIG/PostNL/controllers/Adminhtml/ConfigController.php +6 -5
  38. app/code/community/TIG/PostNL/controllers/CheckoutController.php +1 -1
  39. app/code/community/TIG/PostNL/controllers/DeliveryOptionsController.php +5 -1
  40. app/code/community/TIG/PostNL/etc/config.xml +54 -14
  41. app/code/community/TIG/PostNL/etc/system.xml +36 -2
  42. app/design/adminhtml/default/default/template/TIG/PostNL/system/config/form/field/config_check.phtml +18 -21
  43. app/design/adminhtml/default/default/template/TIG/PostNL/system/config/form/field/support_tab.phtml +1 -1
  44. app/design/frontend/base/default/template/TIG/PostNL/delivery_options/onepage/available.phtml +5 -1
  45. app/design/frontend/base/default/template/TIG/PostNL/delivery_options/onestepcheckout/available.phtml +10 -6
  46. app/locale/en_US/TIG_PostNL.csv +17 -10
  47. app/locale/en_US/template/email/TIG/PostNL/track_and_trace.html +4 -4
  48. app/locale/nl_NL/TIG_PostNL.csv +9 -3
  49. app/locale/nl_NL/template/email/TIG/PostNL/track_and_trace.html +5 -5
  50. package.xml +17 -5
app/code/community/TIG/PostNL/Block/Adminhtml/System/Config/Form/Field/ConfigCheck.php CHANGED
@@ -48,20 +48,20 @@ class TIG_PostNL_Block_Adminhtml_System_Config_Form_Field_ConfigCheck
48
  protected $_eventPrefix = 'postnl_adminhtml_system_config_form_field_configcheck';
49
 
50
  /**
51
- * XML paths to use GlobalPack/Checkout settings
52
  */
53
  const XML_PATH_USE_GLOBALPACK = 'postnl/cif/use_globalpack';
54
  const XML_PATH_USE_CHECKOUT = 'postnl/cif/use_checkout';
55
 
56
  /**
57
- * Template file used by this element
58
  *
59
  * @var string
60
  */
61
  protected $_template = 'TIG/PostNL/system/config/form/field/config_check.phtml';
62
 
63
  /**
64
- * Get the postnl helper
65
  *
66
  * @return TIG_PostNL_Helper_Data
67
  */
@@ -78,7 +78,7 @@ class TIG_PostNL_Block_Adminhtml_System_Config_Form_Field_ConfigCheck
78
  }
79
 
80
  /**
81
- * Check if live mode is enabled
82
  *
83
  * @return boolean
84
  */
@@ -86,26 +86,11 @@ class TIG_PostNL_Block_Adminhtml_System_Config_Form_Field_ConfigCheck
86
  {
87
  $helper = $this->getPostnlHelper();
88
 
89
- return $helper->isEnabled(false, false, false);
90
- }
91
-
92
- /**
93
- * gets config errors from the registry
94
- *
95
- * @return array|null
96
- */
97
- public function getLiveConfigErrors()
98
- {
99
- $configErrors = Mage::registry('postnl_is_configured_errors');
100
- if (is_null($configErrors)) {
101
- $configErrors = Mage::registry('postnl_enabled_errors');
102
- }
103
-
104
- return $configErrors;
105
  }
106
 
107
  /**
108
- * Check if test mode is enabled
109
  *
110
  * @return boolean
111
  */
@@ -113,19 +98,19 @@ class TIG_PostNL_Block_Adminhtml_System_Config_Form_Field_ConfigCheck
113
  {
114
  $helper = $this->getPostnlHelper();
115
 
116
- return $helper->isEnabled(false, false, true);
117
  }
118
 
119
  /**
120
- * gets config errors from the registry
121
  *
122
  * @return array|null
123
  */
124
- public function getTestConfigErrors()
125
  {
126
- $configErrors = Mage::registry('postnl_is_configured_test_errors');
127
  if (is_null($configErrors)) {
128
- $configErrors = Mage::registry('postnl_enabled_test_errors');
129
  }
130
 
131
  return $configErrors;
@@ -149,7 +134,7 @@ class TIG_PostNL_Block_Adminhtml_System_Config_Form_Field_ConfigCheck
149
  *
150
  * @return boolean
151
  */
152
- public function isGlobalEnabled()
153
  {
154
  $globalEnabled = Mage::getStoreConfigFlag(self::XML_PATH_USE_GLOBALPACK, Mage_Core_Model_App::ADMIN_STORE_ID);
155
  if (!$globalEnabled) {
@@ -158,7 +143,7 @@ class TIG_PostNL_Block_Adminhtml_System_Config_Form_Field_ConfigCheck
158
 
159
  $helper = $this->getPostnlHelper();
160
 
161
- return $helper->isEnabled(false, true, $this->isTestModeActive());
162
  }
163
 
164
  /**
@@ -168,10 +153,7 @@ class TIG_PostNL_Block_Adminhtml_System_Config_Form_Field_ConfigCheck
168
  */
169
  public function getGlobalConfigErrors()
170
  {
171
- $configErrors = Mage::registry('postnl_is_configured_global_errors');
172
- if (is_null($configErrors)) {
173
- $configErrors = Mage::registry('postnl_enabled_global_errors');
174
- }
175
 
176
  return $configErrors;
177
  }
@@ -199,9 +181,9 @@ class TIG_PostNL_Block_Adminhtml_System_Config_Form_Field_ConfigCheck
199
  */
200
  public function getCheckoutConfigErrors()
201
  {
202
- $configErrors = Mage::registry('postnl_is_configured_checkout_errors');
203
  if (is_null($configErrors)) {
204
- $configErrors = Mage::registry('postnl_enabled_checkout_errors');
205
  }
206
 
207
  return $configErrors;
48
  protected $_eventPrefix = 'postnl_adminhtml_system_config_form_field_configcheck';
49
 
50
  /**
51
+ * XML paths to use GlobalPack/Checkout settings.
52
  */
53
  const XML_PATH_USE_GLOBALPACK = 'postnl/cif/use_globalpack';
54
  const XML_PATH_USE_CHECKOUT = 'postnl/cif/use_checkout';
55
 
56
  /**
57
+ * Template file used by this element.
58
  *
59
  * @var string
60
  */
61
  protected $_template = 'TIG/PostNL/system/config/form/field/config_check.phtml';
62
 
63
  /**
64
+ * Get the postnl helper.
65
  *
66
  * @return TIG_PostNL_Helper_Data
67
  */
78
  }
79
 
80
  /**
81
+ * Check if live mode is enabled.
82
  *
83
  * @return boolean
84
  */
86
  {
87
  $helper = $this->getPostnlHelper();
88
 
89
+ return $helper->isEnabled(false, false, true);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
90
  }
91
 
92
  /**
93
+ * Check if test mode is enabled.
94
  *
95
  * @return boolean
96
  */
98
  {
99
  $helper = $this->getPostnlHelper();
100
 
101
+ return $helper->isEnabled(false, true, true);
102
  }
103
 
104
  /**
105
+ * Gets config errors from the registry.
106
  *
107
  * @return array|null
108
  */
109
+ public function getConfigErrors()
110
  {
111
+ $configErrors = Mage::registry('postnl_core_is_configured_errors');
112
  if (is_null($configErrors)) {
113
+ $configErrors = Mage::registry('postnl_core_is_enabled_errors');
114
  }
115
 
116
  return $configErrors;
134
  *
135
  * @return boolean
136
  */
137
+ public function isGlobalConfigured()
138
  {
139
  $globalEnabled = Mage::getStoreConfigFlag(self::XML_PATH_USE_GLOBALPACK, Mage_Core_Model_App::ADMIN_STORE_ID);
140
  if (!$globalEnabled) {
143
 
144
  $helper = $this->getPostnlHelper();
145
 
146
+ return $helper->isGlobalConfigured(false, true);
147
  }
148
 
149
  /**
153
  */
154
  public function getGlobalConfigErrors()
155
  {
156
+ $configErrors = Mage::registry('postnl_core_is_global_configured_errors');
 
 
 
157
 
158
  return $configErrors;
159
  }
181
  */
182
  public function getCheckoutConfigErrors()
183
  {
184
+ $configErrors = Mage::registry('postnl_checkout_is_configured_errors');
185
  if (is_null($configErrors)) {
186
+ $configErrors = Mage::registry('postnl_checkout_is_enabled_errors');
187
  }
188
 
189
  return $configErrors;
app/code/community/TIG/PostNL/Block/Checkout/Cart/CheckoutLink.php CHANGED
@@ -130,9 +130,9 @@ class TIG_PostNL_Block_Checkout_Cart_CheckoutLink extends TIG_PostNL_Block_Core_
130
  * If Checkout is not available, log the reason why for debugging purposes
131
  */
132
  if (!$canUseCheckout && Mage::registry('postnl_checkout_logged') === null) {
133
- $configErrors = Mage::registry('postnl_is_configured_checkout_errors');
134
  if (is_null($configErrors)) {
135
- $configErrors = Mage::registry('postnl_enabled_checkout_errors');
136
  }
137
 
138
  if (is_null($configErrors)) {
@@ -226,7 +226,7 @@ class TIG_PostNL_Block_Checkout_Cart_CheckoutLink extends TIG_PostNL_Block_Core_
226
  /**
227
  * If Checkout is not available, log the reason why for debugging purposes
228
  */
229
- $configErrors = Mage::registry('postnl_enabled_checkout_errors');
230
 
231
  if (is_null($configErrors)) {
232
  return '';
130
  * If Checkout is not available, log the reason why for debugging purposes
131
  */
132
  if (!$canUseCheckout && Mage::registry('postnl_checkout_logged') === null) {
133
+ $configErrors = Mage::registry('postnl_checkout_is_configured_errors');
134
  if (is_null($configErrors)) {
135
+ $configErrors = Mage::registry('postnl_checkout_is_enabled_errors');
136
  }
137
 
138
  if (is_null($configErrors)) {
226
  /**
227
  * If Checkout is not available, log the reason why for debugging purposes
228
  */
229
+ $configErrors = Mage::registry('postnl_checkout_is_enabled_errors');
230
 
231
  if (is_null($configErrors)) {
232
  return '';
app/code/community/TIG/PostNL/Block/DeliveryOptions/Checkout/DeliveryOptions.php CHANGED
@@ -397,9 +397,7 @@ class TIG_PostNL_Block_DeliveryOptions_Checkout_DeliveryOptions extends TIG_Post
397
  */
398
  public function canUsePakjeGemak()
399
  {
400
- $storeId = Mage::app()->getStore()->getId();
401
-
402
- $canUsePakjeGemak = Mage::helper('postnl/deliveryOptions')->canUsePakjeGemak($storeId);
403
  return $canUsePakjeGemak;
404
  }
405
 
@@ -410,9 +408,7 @@ class TIG_PostNL_Block_DeliveryOptions_Checkout_DeliveryOptions extends TIG_Post
410
  */
411
  public function canUsePakjeGemakExpress()
412
  {
413
- $storeId = Mage::app()->getStore()->getId();
414
-
415
- $canUsePakjeGemakExpress = Mage::helper('postnl/deliveryOptions')->canUsePakjeGemakExpress($storeId);
416
  return $canUsePakjeGemakExpress;
417
  }
418
 
@@ -423,9 +419,7 @@ class TIG_PostNL_Block_DeliveryOptions_Checkout_DeliveryOptions extends TIG_Post
423
  */
424
  public function canUsePakketAutomaat()
425
  {
426
- $storeId = Mage::app()->getStore()->getId();
427
-
428
- $canUsePakketAutomaat = Mage::helper('postnl/deliveryOptions')->canUsePakketAutomaat($storeId);
429
  return $canUsePakketAutomaat;
430
  }
431
 
@@ -436,10 +430,8 @@ class TIG_PostNL_Block_DeliveryOptions_Checkout_DeliveryOptions extends TIG_Post
436
  */
437
  public function canUseTimeframes()
438
  {
439
- $storeId = Mage::app()->getStore()->getId();
440
-
441
- $canUsePakketAutomaat = Mage::helper('postnl/deliveryOptions')->canUseTimeframes($storeId);
442
- return $canUsePakketAutomaat;
443
  }
444
 
445
  /**
@@ -449,10 +441,8 @@ class TIG_PostNL_Block_DeliveryOptions_Checkout_DeliveryOptions extends TIG_Post
449
  */
450
  public function canUseEveningTimeframes()
451
  {
452
- $storeId = Mage::app()->getStore()->getId();
453
-
454
- $canUsePakketAutomaat = Mage::helper('postnl/deliveryOptions')->canUseEveningTimeframes($storeId);
455
- return $canUsePakketAutomaat;
456
  }
457
 
458
  /**
@@ -523,7 +513,13 @@ class TIG_PostNL_Block_DeliveryOptions_Checkout_DeliveryOptions extends TIG_Post
523
  public function canUseDeliveryOptions()
524
  {
525
  $helper = Mage::helper('postnl/deliveryOptions');
526
- return $helper->canUseDeliveryOptions($this->getQuote());
 
 
 
 
 
 
527
  }
528
 
529
  /**
397
  */
398
  public function canUsePakjeGemak()
399
  {
400
+ $canUsePakjeGemak = Mage::helper('postnl/deliveryOptions')->canUsePakjeGemak();
 
 
401
  return $canUsePakjeGemak;
402
  }
403
 
408
  */
409
  public function canUsePakjeGemakExpress()
410
  {
411
+ $canUsePakjeGemakExpress = Mage::helper('postnl/deliveryOptions')->canUsePakjeGemakExpress();
 
 
412
  return $canUsePakjeGemakExpress;
413
  }
414
 
419
  */
420
  public function canUsePakketAutomaat()
421
  {
422
+ $canUsePakketAutomaat = Mage::helper('postnl/deliveryOptions')->canUsePakketAutomaat();
 
 
423
  return $canUsePakketAutomaat;
424
  }
425
 
430
  */
431
  public function canUseTimeframes()
432
  {
433
+ $canUseTimeframes = Mage::helper('postnl/deliveryOptions')->canUseTimeframes();
434
+ return $canUseTimeframes;
 
 
435
  }
436
 
437
  /**
441
  */
442
  public function canUseEveningTimeframes()
443
  {
444
+ $canUseEveningTimeframes = Mage::helper('postnl/deliveryOptions')->canUseEveningTimeframes();
445
+ return $canUseEveningTimeframes;
 
 
446
  }
447
 
448
  /**
513
  public function canUseDeliveryOptions()
514
  {
515
  $helper = Mage::helper('postnl/deliveryOptions');
516
+
517
+ $quote = $this->getQuote();
518
+ if ($helper->canUseDeliveryOptions($quote) && $helper->canUseDeliveryOptionsForCountry($quote)) {
519
+ return true;
520
+ }
521
+
522
+ return false;
523
  }
524
 
525
  /**
app/code/community/TIG/PostNL/Block/DeliveryOptions/Template.php CHANGED
@@ -101,7 +101,7 @@ abstract class TIG_PostNL_Block_DeliveryOptions_Template extends TIG_PostNL_Bloc
101
  $quote = Mage::getSingleton('checkout/session')->getQuote();
102
 
103
  $helper = Mage::helper('postnl/deliveryOptions');
104
- $canUseDeliveryOptions = $helper->canUseDeliveryOptions($quote, false);
105
 
106
  $this->_canUseDeliveryOptions = $canUseDeliveryOptions;
107
  return $canUseDeliveryOptions;
101
  $quote = Mage::getSingleton('checkout/session')->getQuote();
102
 
103
  $helper = Mage::helper('postnl/deliveryOptions');
104
+ $canUseDeliveryOptions = $helper->canUseDeliveryOptions($quote);
105
 
106
  $this->_canUseDeliveryOptions = $canUseDeliveryOptions;
107
  return $canUseDeliveryOptions;
app/code/community/TIG/PostNL/Block/DeliveryOptions/Theme.php CHANGED
@@ -107,7 +107,7 @@ class TIG_PostNL_Block_DeliveryOptions_Theme extends TIG_PostNL_Block_DeliveryOp
107
 
108
  $helper = Mage::helper('postnl/deliveryOptions');
109
 
110
- if (!$helper->canUseDeliveryOptions($quote, false)) {
111
  return '';
112
  }
113
 
107
 
108
  $helper = Mage::helper('postnl/deliveryOptions');
109
 
110
+ if (!$helper->canUseDeliveryOptions($quote)) {
111
  return '';
112
  }
113
 
app/code/community/TIG/PostNL/Helper/AddressValidation.php CHANGED
@@ -53,7 +53,7 @@ class TIG_PostNL_Helper_AddressValidation extends TIG_PostNL_Helper_Data
53
  const XML_PATH_HOUSENUMBER_EXTENSION_FIELD = 'postnl/cif_address/housenr_extension_field';
54
 
55
  /**
56
- * XML paths to flags that dtermine which environment allows the postcode check functionality
57
  */
58
  const XML_PATH_POSTCODE_CHECK_IN_CHECKOUT = 'postnl/cif_address/postcode_check_in_checkout';
59
  const XML_PATH_POSTCODE_CHECK_IN_ADDRESSBOOK = 'postnl/cif_address/postcode_check_in_addressbook';
@@ -296,7 +296,7 @@ class TIG_PostNL_Helper_AddressValidation extends TIG_PostNL_Helper_Data
296
  $storeId = Mage::app()->getStore()->getId();
297
  }
298
 
299
- $isPostnlEnabled = $this->isEnabled($storeId, false);
300
  if (!$isPostnlEnabled) {
301
  return false;
302
  }
53
  const XML_PATH_HOUSENUMBER_EXTENSION_FIELD = 'postnl/cif_address/housenr_extension_field';
54
 
55
  /**
56
+ * XML paths to flags that determine which environment allows the postcode check functionality
57
  */
58
  const XML_PATH_POSTCODE_CHECK_IN_CHECKOUT = 'postnl/cif_address/postcode_check_in_checkout';
59
  const XML_PATH_POSTCODE_CHECK_IN_ADDRESSBOOK = 'postnl/cif_address/postcode_check_in_addressbook';
296
  $storeId = Mage::app()->getStore()->getId();
297
  }
298
 
299
+ $isPostnlEnabled = $this->isEnabled($storeId);
300
  if (!$isPostnlEnabled) {
301
  return false;
302
  }
app/code/community/TIG/PostNL/Helper/Carrier.php CHANGED
@@ -163,7 +163,7 @@ class TIG_PostNL_Helper_Carrier extends TIG_PostNL_Helper_Data
163
  }
164
 
165
  /**
166
- * Get the diutch track & trace URL for dutch shipments or for the admin
167
  */
168
  if ($forceNl
169
  || (!empty($countryCode)
163
  }
164
 
165
  /**
166
+ * Get the dutch track & trace URL for dutch shipments or for the admin
167
  */
168
  if ($forceNl
169
  || (!empty($countryCode)
app/code/community/TIG/PostNL/Helper/Checkout.php CHANGED
@@ -98,7 +98,7 @@ class TIG_PostNL_Helper_Checkout extends TIG_PostNL_Helper_Data
98
  );
99
 
100
  /**
101
- * Array containing conversions between PostNL CHeckout payment option fields and those used by Magento payment
102
  * methods. This array should be extended as time goes on in order to support as many payment methods as possible.
103
  *
104
  * @var array
@@ -224,7 +224,7 @@ class TIG_PostNL_Helper_Checkout extends TIG_PostNL_Helper_Data
224
  'message' => $this->__('The quote is virtual.'),
225
  )
226
  );
227
- Mage::register('postnl_enabled_checkout_errors', $errors);
228
  Mage::register('can_use_postnl_checkout', false);
229
  return false;
230
  }
@@ -239,7 +239,7 @@ class TIG_PostNL_Helper_Checkout extends TIG_PostNL_Helper_Data
239
  'message' => $this->__("The quote's grand total is below the minimum amount required."),
240
  )
241
  );
242
- Mage::register('postnl_enabled_checkout_errors', $errors);
243
  Mage::register('can_use_postnl_checkout', false);
244
  return false;
245
  }
@@ -256,7 +256,7 @@ class TIG_PostNL_Helper_Checkout extends TIG_PostNL_Helper_Data
256
  ),
257
  )
258
  );
259
- Mage::register('postnl_enabled_checkout_errors', $errors);
260
  Mage::register('can_use_postnl_checkout', false);
261
  return false;
262
  }
@@ -278,7 +278,7 @@ class TIG_PostNL_Helper_Checkout extends TIG_PostNL_Helper_Data
278
  ),
279
  )
280
  );
281
- Mage::register('postnl_enabled_checkout_errors', $errors);
282
  Mage::register('can_use_postnl_checkout', false);
283
  return false;
284
  }
@@ -297,7 +297,7 @@ class TIG_PostNL_Helper_Checkout extends TIG_PostNL_Helper_Data
297
  'message' => $this->__('One or more items in the cart are out of stock.'),
298
  )
299
  );
300
- Mage::register('postnl_enabled_checkout_errors', $errors);
301
  Mage::register('can_use_postnl_checkout', false);
302
  return false;
303
  }
@@ -312,8 +312,7 @@ class TIG_PostNL_Helper_Checkout extends TIG_PostNL_Helper_Data
312
  $result = $cif->ping();
313
  } catch (Exception $e) {
314
  $this->logException($e);
315
- Mage::register('can_use_postnl_checkout', false);
316
- return false;
317
  }
318
 
319
  if ($result !== 'OK') {
@@ -400,10 +399,6 @@ class TIG_PostNL_Helper_Checkout extends TIG_PostNL_Helper_Data
400
  $storeId = Mage::app()->getStore()->getId();
401
  }
402
 
403
- if (!parent::isActive()) {
404
- return false;
405
- }
406
-
407
  $isActive = Mage::getStoreConfigFlag(self::XML_PATH_CHECKOUT_ACTIVE, $storeId);
408
  return $isActive;
409
  }
@@ -416,12 +411,38 @@ class TIG_PostNL_Helper_Checkout extends TIG_PostNL_Helper_Data
416
  * @return boolean
417
  */
418
  public function isCheckoutEnabled($storeId = null)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
419
  {
420
  if (is_null($storeId)) {
421
  $storeId = Mage::app()->getStore()->getId();
422
  }
423
 
424
- $isPostnlEnabled = $this->isEnabled($storeId, false, $this->isTestMode());
425
  if ($isPostnlEnabled === false) {
426
  $errors = array(
427
  array(
@@ -429,7 +450,7 @@ class TIG_PostNL_Helper_Checkout extends TIG_PostNL_Helper_Data
429
  'message' => $this->__('You have not yet enabled the PostNL extension.'),
430
  )
431
  );
432
- Mage::register('postnl_enabled_checkout_errors', $errors);
433
  return false;
434
  }
435
 
@@ -441,7 +462,7 @@ class TIG_PostNL_Helper_Checkout extends TIG_PostNL_Helper_Data
441
  'message' => $this->__('You have not yet enabled PostNL Checkout.'),
442
  )
443
  );
444
- Mage::register('postnl_enabled_checkout_errors', $errors);
445
  return false;
446
  }
447
 
@@ -462,58 +483,47 @@ class TIG_PostNL_Helper_Checkout extends TIG_PostNL_Helper_Data
462
  */
463
  public function isCheckoutConfigured($storeId = null)
464
  {
465
- if (is_null($storeId)) {
466
- $storeId = Mage::app()->getStore()->getId();
 
 
467
  }
468
 
469
- $errors = array();
470
 
471
- /**
472
- * Get the system > config fields for this section.
473
- *
474
- * @var Varien_Simplexml_Element $section
475
- */
476
- $configFields = Mage::getSingleton('adminhtml/config');
477
- $sections = $configFields->getSections('postnl');
478
- $section = $sections->postnl;
 
 
 
 
 
 
 
 
 
 
 
 
479
 
480
  /**
481
  * First check if all required configuration settings are entered
482
  */
483
  $requiredFields = $this->getCheckoutRequiredFields();
484
- foreach ($requiredFields as $requiredField) {
485
- $value = Mage::getStoreConfig($requiredField, $storeId);
486
 
487
- if ($value !== null && $value !== '') {
488
- continue;
489
- }
490
-
491
- $fieldParts = explode('/', $requiredField);
492
- $field = $fieldParts[2];
493
- $group = $fieldParts[1];
494
-
495
- /**
496
- * @var Varien_Simplexml_Element $sectionGroup
497
- */
498
- $sectionGroup = $section->groups->$group;
499
-
500
- $label = (string) $sectionGroup->fields->$field->label;
501
- $groupLabel = (string) $sectionGroup->label;
502
- $groupName = $sectionGroup->getName();
503
-
504
- $errors[] = array(
505
- 'code' => 'POSTNL-0034',
506
- 'message' => $this->__('%s > %s is required.', $this->__($groupLabel), $this->__($label)),
507
- );
508
-
509
- $this->saveConfigState(array('postnl_' . $groupName => 1));
510
- }
511
 
512
  /**
513
  * If any errors were detected, add them to the registry and return false
514
  */
515
  if (!empty($errors)) {
516
- Mage::register('postnl_is_configured_checkout_errors', $errors);
517
  return false;
518
  }
519
 
@@ -540,10 +550,12 @@ class TIG_PostNL_Helper_Checkout extends TIG_PostNL_Helper_Data
540
  )
541
  );
542
 
543
- $this->saveConfigState(array('postnl_checkout_payment_methods' => 1));
 
 
544
 
545
  Mage::register(
546
- 'postnl_is_configured_checkout_errors',
547
  $errors
548
  );
549
  return false;
98
  );
99
 
100
  /**
101
+ * Array containing conversions between PostNL Checkout payment option fields and those used by Magento payment
102
  * methods. This array should be extended as time goes on in order to support as many payment methods as possible.
103
  *
104
  * @var array
224
  'message' => $this->__('The quote is virtual.'),
225
  )
226
  );
227
+ Mage::register('postnl_checkout_is_enabled_errors', $errors);
228
  Mage::register('can_use_postnl_checkout', false);
229
  return false;
230
  }
239
  'message' => $this->__("The quote's grand total is below the minimum amount required."),
240
  )
241
  );
242
+ Mage::register('postnl_checkout_is_enabled_errors', $errors);
243
  Mage::register('can_use_postnl_checkout', false);
244
  return false;
245
  }
256
  ),
257
  )
258
  );
259
+ Mage::register('postnl_checkout_is_enabled_errors', $errors);
260
  Mage::register('can_use_postnl_checkout', false);
261
  return false;
262
  }
278
  ),
279
  )
280
  );
281
+ Mage::register('postnl_checkout_is_enabled_errors', $errors);
282
  Mage::register('can_use_postnl_checkout', false);
283
  return false;
284
  }
297
  'message' => $this->__('One or more items in the cart are out of stock.'),
298
  )
299
  );
300
+ Mage::register('postnl_checkout_is_enabled_errors', $errors);
301
  Mage::register('can_use_postnl_checkout', false);
302
  return false;
303
  }
312
  $result = $cif->ping();
313
  } catch (Exception $e) {
314
  $this->logException($e);
315
+ $result = false;
 
316
  }
317
 
318
  if ($result !== 'OK') {
399
  $storeId = Mage::app()->getStore()->getId();
400
  }
401
 
 
 
 
 
402
  $isActive = Mage::getStoreConfigFlag(self::XML_PATH_CHECKOUT_ACTIVE, $storeId);
403
  return $isActive;
404
  }
411
  * @return boolean
412
  */
413
  public function isCheckoutEnabled($storeId = null)
414
+ {
415
+ $cache = $this->getCache();
416
+
417
+ if ($cache && $cache->hasPostnlCheckoutIsEnabled()) {
418
+ return $cache->getPostnlCheckoutIsEnabled();
419
+ }
420
+
421
+ $isEnabled = $this->_isCheckoutEnabled($storeId);
422
+
423
+ if ($cache) {
424
+ $cache->setPostnlCheckoutIsEnabled($isEnabled)
425
+ ->saveCache();
426
+ }
427
+
428
+ return $isEnabled;
429
+ }
430
+
431
+ /**
432
+ * Checks if PostNl Checkout is enabled by running various checks including a check to see if the required
433
+ * configuration fields are filled.
434
+ *
435
+ * @param int|null $storeId
436
+ *
437
+ * @return bool
438
+ */
439
+ protected function _isCheckoutEnabled($storeId)
440
  {
441
  if (is_null($storeId)) {
442
  $storeId = Mage::app()->getStore()->getId();
443
  }
444
 
445
+ $isPostnlEnabled = $this->isEnabled($storeId);
446
  if ($isPostnlEnabled === false) {
447
  $errors = array(
448
  array(
450
  'message' => $this->__('You have not yet enabled the PostNL extension.'),
451
  )
452
  );
453
+ Mage::register('postnl_checkout_is_enabled_errors', $errors);
454
  return false;
455
  }
456
 
462
  'message' => $this->__('You have not yet enabled PostNL Checkout.'),
463
  )
464
  );
465
+ Mage::register('postnl_checkout_is_enabled_errors', $errors);
466
  return false;
467
  }
468
 
483
  */
484
  public function isCheckoutConfigured($storeId = null)
485
  {
486
+ $cache = $this->getCache();
487
+
488
+ if ($cache && $cache->hasPostnlCheckoutIsConfigured()) {
489
+ return $cache->getPostnlCheckoutIsConfigured();
490
  }
491
 
492
+ $isConfigured = $this->_isCheckoutConfigured($storeId);
493
 
494
+ if ($cache) {
495
+ $cache->setPostnlCheckoutIsConfigured($isConfigured)
496
+ ->saveCache();
497
+ }
498
+
499
+ return $isConfigured;
500
+ }
501
+
502
+ /**
503
+ * Checks if all required fields are configured. If not, returns an array of errors.
504
+ *
505
+ * @param int $storeId
506
+ *
507
+ * @return array
508
+ */
509
+ protected function _isCheckoutConfigured($storeId)
510
+ {
511
+ if (is_null($storeId)) {
512
+ $storeId = Mage::app()->getStore()->getId();
513
+ }
514
 
515
  /**
516
  * First check if all required configuration settings are entered
517
  */
518
  $requiredFields = $this->getCheckoutRequiredFields();
 
 
519
 
520
+ $errors = $this->_getFieldsConfiguredErrors($requiredFields, $storeId);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
521
 
522
  /**
523
  * If any errors were detected, add them to the registry and return false
524
  */
525
  if (!empty($errors)) {
526
+ Mage::register('postnl_checkout_is_configured_errors', $errors);
527
  return false;
528
  }
529
 
550
  )
551
  );
552
 
553
+ if ($this->isAdmin()) {
554
+ $this->saveConfigState(array('postnl_checkout_payment_methods' => 1));
555
+ }
556
 
557
  Mage::register(
558
+ 'postnl_checkout_is_configured_errors',
559
  $errors
560
  );
561
  return false;
app/code/community/TIG/PostNL/Helper/Cif.php CHANGED
@@ -200,6 +200,11 @@ class TIG_PostNL_Helper_Cif extends TIG_PostNL_Helper_Data
200
  '4944' => '4952',
201
  );
202
 
 
 
 
 
 
203
  /**
204
  * Get an array of EU countries
205
  *
200
  '4944' => '4952',
201
  );
202
 
203
+ /**
204
+ * @var null|array
205
+ */
206
+ protected $_supportedProductOptions = null;
207
+
208
  /**
209
  * Get an array of EU countries
210
  *
app/code/community/TIG/PostNL/Helper/Data.php CHANGED
@@ -64,7 +64,7 @@ class TIG_PostNL_Helper_Data extends Mage_Core_Helper_Abstract
64
  const XML_PATH_EXTENSION_ACTIVE = 'postnl/general/active';
65
 
66
  /**
67
- * XML path to postnl carier active/inactive setting.
68
  */
69
  const XML_PATH_CARRIER_ACTIVE = 'carriers/postnl/active';
70
 
@@ -155,6 +155,11 @@ class TIG_PostNL_Helper_Data extends Mage_Core_Helper_Abstract
155
  'postnl/cif_globalpack_settings/description_attribute',
156
  );
157
 
 
 
 
 
 
158
  /**
159
  * Get required fields array.
160
  *
@@ -195,6 +200,36 @@ class TIG_PostNL_Helper_Data extends Mage_Core_Helper_Abstract
195
  return $this->_globalShipmentRequiredFields;
196
  }
197
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
198
  /**
199
  * Get debug mode config setting.
200
  *
@@ -271,6 +306,12 @@ class TIG_PostNL_Helper_Data extends Mage_Core_Helper_Abstract
271
  */
272
  public function canUseStandard($storeId = false)
273
  {
 
 
 
 
 
 
274
  if ($storeId === false) {
275
  $storeId = Mage::app()->getStore()->getId();
276
  }
@@ -278,9 +319,19 @@ class TIG_PostNL_Helper_Data extends Mage_Core_Helper_Abstract
278
  $standardProductOptions = Mage::getModel('postnl_core/system_config_source_standardProductOptions')
279
  ->getAvailableOptions($storeId);
280
  if (empty($standardProductOptions)) {
 
 
 
 
 
281
  return false;
282
  }
283
 
 
 
 
 
 
284
  return true;
285
  }
286
 
@@ -293,6 +344,12 @@ class TIG_PostNL_Helper_Data extends Mage_Core_Helper_Abstract
293
  */
294
  public function canUsePakjeGemak($storeId = false)
295
  {
 
 
 
 
 
 
296
  if ($storeId === false) {
297
  $storeId = Mage::app()->getStore()->getId();
298
  }
@@ -301,9 +358,18 @@ class TIG_PostNL_Helper_Data extends Mage_Core_Helper_Abstract
301
  ->getAvailableOptions($storeId);
302
 
303
  if (empty($pakjeGemakProductoptions)) {
 
 
 
 
 
304
  return false;
305
  }
306
 
 
 
 
 
307
  return true;
308
  }
309
 
@@ -316,6 +382,12 @@ class TIG_PostNL_Helper_Data extends Mage_Core_Helper_Abstract
316
  */
317
  public function canUseEps($storeId = false)
318
  {
 
 
 
 
 
 
319
  if ($storeId === false) {
320
  $storeId = Mage::app()->getStore()->getId();
321
  }
@@ -324,9 +396,17 @@ class TIG_PostNL_Helper_Data extends Mage_Core_Helper_Abstract
324
  ->getAvailableOptions($storeId);
325
 
326
  if (empty($euProductOptions)) {
 
 
 
 
327
  return false;
328
  }
329
 
 
 
 
 
330
  return true;
331
  }
332
 
@@ -339,11 +419,21 @@ class TIG_PostNL_Helper_Data extends Mage_Core_Helper_Abstract
339
  */
340
  public function canUseGlobalPack($storeId = false)
341
  {
 
 
 
 
 
 
342
  if ($storeId === false) {
343
  $storeId = Mage::app()->getStore()->getId();
344
  }
345
 
346
  if (!$this->isGlobalAllowed()) {
 
 
 
 
347
  return false;
348
  }
349
 
@@ -351,9 +441,17 @@ class TIG_PostNL_Helper_Data extends Mage_Core_Helper_Abstract
351
  ->getAvailableOptions($storeId);
352
 
353
  if (empty($globalProductOptions)) {
 
 
 
 
354
  return false;
355
  }
356
 
 
 
 
 
357
  return true;
358
  }
359
 
@@ -366,12 +464,23 @@ class TIG_PostNL_Helper_Data extends Mage_Core_Helper_Abstract
366
  */
367
  public function canUseEpsBEOnlyOption($storeId = false)
368
  {
 
 
 
 
 
 
369
  if ($storeId === false) {
370
  $storeId = Mage::app()->getStore()->getId();
371
  }
372
 
373
  $epsBeOnlyOptionAllowed = Mage::getStoreConfigFlag(self::XPATH_ALLOW_EPS_BE_ONLY_OPTION, $storeId);
374
 
 
 
 
 
 
375
  return $epsBeOnlyOptionAllowed;
376
  }
377
 
@@ -551,58 +660,70 @@ class TIG_PostNL_Helper_Data extends Mage_Core_Helper_Abstract
551
  * Alias for isEnabled()
552
  *
553
  * @param int|boolean $storeId
554
- * @param boolean $checkGlobal
555
  * @param null|boolean $forceTestMode
556
  *
557
  * @return boolean
558
  *
559
  * @see TIG_PostNL_Helper_Data::isEnabled()
560
  */
561
- public function isActive($storeId = false, $checkGlobal = false, $forceTestMode = null)
562
  {
563
- return $this->isEnabled($storeId, $checkGlobal, $forceTestMode);
564
  }
565
 
566
  /**
567
  * Determines if the extension is active
568
  *
569
- * @param int | bool $storeId
570
- * @param boolean $checkGlobal
571
  * @param null|boolean $forceTestMode
 
572
  *
573
  * @return boolean
574
  */
575
- public function isEnabled($storeId = false, $checkGlobal = false, $forceTestMode = null)
576
  {
577
- if ($forceTestMode === null) {
578
- $testMode = $this->isTestMode();
579
  } else {
580
- $testMode = $forceTestMode;
581
  }
582
 
583
- $registryKey = 'postnl_enabled';
584
- if ($checkGlobal) {
585
- $registryKey .= '_global';
586
- }
587
- if ($testMode) {
588
- $registryKey .= '_test';
589
  }
590
 
591
- if (Mage::registry($registryKey) !== null) {
592
- return Mage::registry($registryKey);
 
 
 
593
  }
594
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
595
  if ($storeId === false) {
596
  $storeId = Mage_Core_Model_App::ADMIN_STORE_ID;
597
  }
598
 
 
 
599
  /**
600
  * Check if the module has been enabled
601
  */
602
  $enabled = Mage::getStoreConfigFlag(self::XML_PATH_EXTENSION_ACTIVE, $storeId);
603
  if ($enabled === false) {
604
- Mage::register($registryKey, false);
605
-
606
  $errors = array(
607
  array(
608
  'code' => 'POSTNL-0030',
@@ -610,25 +731,23 @@ class TIG_PostNL_Helper_Data extends Mage_Core_Helper_Abstract
610
  )
611
  );
612
 
613
- Mage::register($registryKey . '_errors', $errors);
614
  return false;
615
  }
616
 
617
  /**
618
  * Make sure that the required PHP extensions are loaded.
619
  */
620
- $phpExtensionsLoaded = $this->areRequiredPHPExtensionsLoaded($registryKey);
621
  if ($phpExtensionsLoaded === false) {
622
- Mage::register($registryKey, false);
623
  return false;
624
  }
625
 
626
  /**
627
  * Check if the module's required configuration options have been filled
628
  */
629
- $isConfigured = $this->isConfigured($storeId, $checkGlobal, $forceTestMode);
630
  if ($isConfigured === false) {
631
- Mage::register($registryKey, false);
632
  return false;
633
  }
634
 
@@ -637,26 +756,31 @@ class TIG_PostNL_Helper_Data extends Mage_Core_Helper_Abstract
637
  */
638
  $postnlShippingMethodEnabled = Mage::getStoreConfigFlag(self::XML_PATH_CARRIER_ACTIVE, $storeId);
639
  if ($postnlShippingMethodEnabled === false) {
640
- Mage::register($registryKey, false);
641
-
642
- $shippingMethodSectionurl = Mage::helper("adminhtml")->getUrl(
643
- 'adminhtml/system_config/edit',
644
- array(
645
- '_secure' => true,
646
- 'section' => 'carriers',
647
- )
648
- );
649
 
650
- $errorMessage = $this->__(
651
- 'The PostNL shipping method has not been enabled. You can enable the PostNL shipping method under '
652
  . '%sSystem > Config > Shipping Methods%s.',
653
- '<a href="'
654
  . $shippingMethodSectionurl
655
  . '" target="_blank" title="'
656
  . $this->__('Shipping Methods')
657
  . '">',
658
- '</a>'
659
- );
 
 
 
 
 
 
660
 
661
  $errors = array(
662
  array(
@@ -664,7 +788,8 @@ class TIG_PostNL_Helper_Data extends Mage_Core_Helper_Abstract
664
  'message' => $errorMessage,
665
  )
666
  );
667
- Mage::register($registryKey . '_errors', $errors);
 
668
  return false;
669
  }
670
 
@@ -673,30 +798,26 @@ class TIG_PostNL_Helper_Data extends Mage_Core_Helper_Abstract
673
  */
674
  $baseCurrencyCode = Mage::getModel('core/store')->load($storeId)->getBaseCurrencyCode();
675
  if ($baseCurrencyCode != 'EUR') {
676
- Mage::register($registryKey, false);
677
-
678
  $errors = array(
679
  array(
680
  'code' => 'POSTNL-0032',
681
  'message' => $this->__("The shop's base currency code must be set to EUR for PostNL to function."),
682
  )
683
  );
684
- Mage::register($registryKey . '_errors', $errors);
 
685
  return false;
686
  }
687
 
688
- Mage::register($registryKey, true);
689
  return true;
690
  }
691
 
692
  /**
693
  * Check if the required SOAP, OpenSSL and MCrypt PHP extensions are loaded.
694
  *
695
- * @param string $registryKey
696
- *
697
  * @return bool
698
  */
699
- public function areRequiredPHPExtensionsLoaded($registryKey)
700
  {
701
  $errors = array();
702
  if (!extension_loaded('soap')) {
@@ -730,11 +851,10 @@ class TIG_PostNL_Helper_Data extends Mage_Core_Helper_Abstract
730
  }
731
 
732
  /**
733
- * Register any errors that may have ocurred and return false.
734
  */
735
  if (!empty($errors)) {
736
- Mage::register($registryKey . '_errors', $errors);
737
-
738
  return false;
739
  }
740
 
@@ -742,37 +862,57 @@ class TIG_PostNL_Helper_Data extends Mage_Core_Helper_Abstract
742
  }
743
 
744
  /**
745
- * Check if the modules has been confgured.
746
- * The required fields will only be checked to see if they're not empty. The values entered will not be validated
747
  *
748
- * @param int | boolean $storeId
749
- * @param boolean $checkGlobal
750
  * @param null|boolean $forceTestMode
 
751
  *
752
  * @return boolean
753
  */
754
- public function isConfigured($storeId = false, $checkGlobal = false, $forceTestMode = null)
755
  {
756
- if ($forceTestMode === null) {
757
- $testMode = $this->isTestMode();
758
  } else {
759
- $testMode = $forceTestMode;
760
  }
761
 
762
- $registryKey = 'postnl_is_configured';
763
- if ($checkGlobal) {
764
- $registryKey .= '_global';
765
  }
766
- if ($testMode) {
767
- $registryKey .= '_test';
 
 
 
 
768
  }
769
 
770
- if (Mage::registry($registryKey) !== null) {
771
- return Mage::registry($registryKey);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
772
  }
773
 
774
  $errors = array();
775
 
 
 
776
  /**
777
  * Check if the module has been activated
778
  */
@@ -803,23 +943,95 @@ class TIG_PostNL_Helper_Data extends Mage_Core_Helper_Abstract
803
  }
804
  $requiredFields = array_merge($modeFields, $baseFields);
805
 
 
 
 
 
806
  /**
807
- * If this check pertains to a global shipment, get the global shipments required fields as well
808
  */
809
- if ($checkGlobal !== false) {
810
- $globalFields = $this->getGlobalShipmentsRequiredFields();
811
- $requiredFields = array_merge($requiredFields, $globalFields);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
812
  }
813
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
814
  /**
815
- * Check if each required field is filled. If not add the field's label to an array of missing fields so we can
816
- * later inform the merchant which fields exactly are missing.
817
- *
818
- * @var Varien_Simplexml_Element $section
819
  */
820
- $configFields = Mage::getSingleton('adminhtml/config');
821
- $sections = $configFields->getSections('postnl');
822
- $section = $sections->postnl;
 
 
 
 
 
 
 
 
 
823
  foreach ($requiredFields as $requiredField) {
824
  $value = Mage::getStoreConfig($requiredField, $storeId);
825
 
@@ -827,38 +1039,37 @@ class TIG_PostNL_Helper_Data extends Mage_Core_Helper_Abstract
827
  continue;
828
  }
829
 
830
- $fieldParts = explode('/', $requiredField);
831
- $field = $fieldParts[2];
832
- $group = $fieldParts[1];
 
833
 
834
- /**
835
- * @var Varien_Simplexml_Element $sectionGroup
836
- */
837
- $sectionGroup = $section->groups->$group;
838
 
839
- $label = (string) $sectionGroup->fields->$field->label;
840
- $groupLabel = (string) $sectionGroup->label;
841
- $groupName = $sectionGroup->getName();
842
 
843
- $errors[] = array(
844
- 'code' => 'POSTNL-0034',
845
- 'message' => $this->__('%s > %s is required.', $this->__($groupLabel), $this->__($label)),
846
- );
847
-
848
- $this->saveConfigState(array('postnl_' . $groupName => 1));
849
- }
850
 
851
- /**
852
- * If any errors were detected, add them to the registry and return false
853
- */
854
- if (!empty($errors)) {
855
- Mage::register($registryKey, false);
856
- Mage::register($registryKey . '_errors', $errors);
857
- return false;
 
 
858
  }
859
 
860
- Mage::register($registryKey, true);
861
- return true;
862
  }
863
 
864
  /**
@@ -983,7 +1194,7 @@ class TIG_PostNL_Helper_Data extends Mage_Core_Helper_Abstract
983
  }
984
 
985
  /**
986
- * Logs a cron debug messageto a seperate file in order to differentiate it from other debug messages
987
  *
988
  * @param string $message
989
  * @param int $level
@@ -1101,7 +1312,26 @@ class TIG_PostNL_Helper_Data extends Mage_Core_Helper_Abstract
1101
  }
1102
 
1103
  /**
1104
- * Creates a seperate dir to log PostNL log files. Does nothing if the dir already exists
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1105
  *
1106
  * @return TIG_PostNL_Exception
1107
  */
@@ -1242,7 +1472,7 @@ class TIG_PostNL_Helper_Data extends Mage_Core_Helper_Abstract
1242
  }
1243
 
1244
  /**
1245
- * If the session could not be loaded or is not of the corect type, throw an exception
1246
  */
1247
  if (!$session
1248
  || !is_object($session)
64
  const XML_PATH_EXTENSION_ACTIVE = 'postnl/general/active';
65
 
66
  /**
67
+ * XML path to postnl carrier active/inactive setting.
68
  */
69
  const XML_PATH_CARRIER_ACTIVE = 'carriers/postnl/active';
70
 
155
  'postnl/cif_globalpack_settings/description_attribute',
156
  );
157
 
158
+ /**
159
+ * @var null|TIG_PostNL_Model_Core_Cache
160
+ */
161
+ protected $_cache = null;
162
+
163
  /**
164
  * Get required fields array.
165
  *
200
  return $this->_globalShipmentRequiredFields;
201
  }
202
 
203
+ /**
204
+ * @param null|TIG_PostNL_Model_Core_Cache $cache
205
+ *
206
+ * @return TIG_PostNL_Helper_Data
207
+ */
208
+ public function setCache($cache)
209
+ {
210
+ $this->_cache = $cache;
211
+
212
+ return $this;
213
+ }
214
+
215
+ /**
216
+ * @return null|TIG_PostNL_Model_Core_Cache
217
+ */
218
+ public function getCache()
219
+ {
220
+ if ($this->_cache !== null) {
221
+ return $this->_cache;
222
+ }
223
+
224
+ $cache = Mage::getSingleton('postnl_core/cache');
225
+ if (!$cache->canUseCache()) {
226
+ $cache = false;
227
+ }
228
+
229
+ $this->setCache($cache);
230
+ return $cache;
231
+ }
232
+
233
  /**
234
  * Get debug mode config setting.
235
  *
306
  */
307
  public function canUseStandard($storeId = false)
308
  {
309
+ $cache = $this->getCache();
310
+
311
+ if ($cache && $cache->hasPostnlCoreCanUseStandard()) {
312
+ return $cache->getPostnlCoreCanUseStandard();
313
+ }
314
+
315
  if ($storeId === false) {
316
  $storeId = Mage::app()->getStore()->getId();
317
  }
319
  $standardProductOptions = Mage::getModel('postnl_core/system_config_source_standardProductOptions')
320
  ->getAvailableOptions($storeId);
321
  if (empty($standardProductOptions)) {
322
+ if ($cache) {
323
+ $cache->setPostnlCoreCanUseStandard(false)
324
+ ->saveCache();
325
+ }
326
+
327
  return false;
328
  }
329
 
330
+ if ($cache) {
331
+ $cache->setPostnlCoreCanUseStandard(true)
332
+ ->saveCache();
333
+ }
334
+
335
  return true;
336
  }
337
 
344
  */
345
  public function canUsePakjeGemak($storeId = false)
346
  {
347
+ $cache = $this->getCache();
348
+
349
+ if ($cache && $cache->hasPostnlCoreCanUsePakjeGemak()) {
350
+ return $cache->getPostnlCoreCanUsePakjeGemak();
351
+ }
352
+
353
  if ($storeId === false) {
354
  $storeId = Mage::app()->getStore()->getId();
355
  }
358
  ->getAvailableOptions($storeId);
359
 
360
  if (empty($pakjeGemakProductoptions)) {
361
+ if ($cache) {
362
+ $cache->setPostnlCoreCanUsePakjeGemak(false)
363
+ ->saveCache();
364
+ }
365
+
366
  return false;
367
  }
368
 
369
+ if ($cache) {
370
+ $cache->setPostnlCoreCanUsePakjeGemak(true)
371
+ ->saveCache();
372
+ }
373
  return true;
374
  }
375
 
382
  */
383
  public function canUseEps($storeId = false)
384
  {
385
+ $cache = $this->getCache();
386
+
387
+ if ($cache && $cache->hasPostnlCoreCanUseEps()) {
388
+ return $cache->getPostnlCoreCanUseEps();
389
+ }
390
+
391
  if ($storeId === false) {
392
  $storeId = Mage::app()->getStore()->getId();
393
  }
396
  ->getAvailableOptions($storeId);
397
 
398
  if (empty($euProductOptions)) {
399
+ if ($cache) {
400
+ $cache->setPostnlCoreCanUseEps(false)
401
+ ->saveCache();
402
+ }
403
  return false;
404
  }
405
 
406
+ if ($cache) {
407
+ $cache->setPostnlCoreCanUseEps(true)
408
+ ->saveCache();
409
+ }
410
  return true;
411
  }
412
 
419
  */
420
  public function canUseGlobalPack($storeId = false)
421
  {
422
+ $cache = $this->getCache();
423
+
424
+ if ($cache && $cache->hasPostnlCoreCanUseGlobalPack()) {
425
+ return $cache->getPostnlCoreCanUseGlobalPack();
426
+ }
427
+
428
  if ($storeId === false) {
429
  $storeId = Mage::app()->getStore()->getId();
430
  }
431
 
432
  if (!$this->isGlobalAllowed()) {
433
+ if ($cache) {
434
+ $cache->setPostnlCoreCanUseGlobalPack(false)
435
+ ->saveCache();
436
+ }
437
  return false;
438
  }
439
 
441
  ->getAvailableOptions($storeId);
442
 
443
  if (empty($globalProductOptions)) {
444
+ if ($cache) {
445
+ $cache->setPostnlCoreCanUseGlobalPack(false)
446
+ ->saveCache();
447
+ }
448
  return false;
449
  }
450
 
451
+ if ($cache) {
452
+ $cache->setPostnlCoreCanUseGlobalPack(true)
453
+ ->saveCache();
454
+ }
455
  return true;
456
  }
457
 
464
  */
465
  public function canUseEpsBEOnlyOption($storeId = false)
466
  {
467
+ $cache = $this->getCache();
468
+
469
+ if ($cache && $cache->hasPostnlCoreCanUseEpsBeOnlyOption()) {
470
+ return $cache->getPostnlCoreCanUseEpsBeOnlyOption();
471
+ }
472
+
473
  if ($storeId === false) {
474
  $storeId = Mage::app()->getStore()->getId();
475
  }
476
 
477
  $epsBeOnlyOptionAllowed = Mage::getStoreConfigFlag(self::XPATH_ALLOW_EPS_BE_ONLY_OPTION, $storeId);
478
 
479
+ if ($cache) {
480
+ $cache->setPostnlCoreCanUseEpsBeOnlyOption($epsBeOnlyOptionAllowed)
481
+ ->saveCache();
482
+ }
483
+
484
  return $epsBeOnlyOptionAllowed;
485
  }
486
 
660
  * Alias for isEnabled()
661
  *
662
  * @param int|boolean $storeId
 
663
  * @param null|boolean $forceTestMode
664
  *
665
  * @return boolean
666
  *
667
  * @see TIG_PostNL_Helper_Data::isEnabled()
668
  */
669
+ public function isActive($storeId = false, $forceTestMode = null)
670
  {
671
+ return $this->isEnabled($storeId, $forceTestMode);
672
  }
673
 
674
  /**
675
  * Determines if the extension is active
676
  *
677
+ * @param int|boolean $storeId
 
678
  * @param null|boolean $forceTestMode
679
+ * @param boolean $ignoreCache
680
  *
681
  * @return boolean
682
  */
683
+ public function isEnabled($storeId = false, $forceTestMode = null, $ignoreCache = false)
684
  {
685
+ if ($ignoreCache) {
686
+ $cache = false;
687
  } else {
688
+ $cache = $this->getCache();
689
  }
690
 
691
+ if ($cache && $cache->hasPostnlCoreIsEnabled()) {
692
+ return $cache->getPostnlCoreIsEnabled();
 
 
 
 
693
  }
694
 
695
+ $isEnabled = $this->_isEnabled($storeId, $forceTestMode, $ignoreCache);
696
+
697
+ if ($cache) {
698
+ $cache->setPostnlCoreIsEnabled($isEnabled)
699
+ ->saveCache();
700
  }
701
 
702
+ return $isEnabled;
703
+ }
704
+
705
+ /**
706
+ * Run various checks to make sure the PostNL extension is enabled and fully configured.
707
+ *
708
+ * @param int|boolean $storeId
709
+ * @param null|boolean $forceTestMode
710
+ * @param boolean $ignoreCache
711
+ *
712
+ * @return bool
713
+ */
714
+ protected function _isEnabled($storeId, $forceTestMode, $ignoreCache)
715
+ {
716
  if ($storeId === false) {
717
  $storeId = Mage_Core_Model_App::ADMIN_STORE_ID;
718
  }
719
 
720
+ Mage::unregister('postnl_core_is_enabled_errors');
721
+
722
  /**
723
  * Check if the module has been enabled
724
  */
725
  $enabled = Mage::getStoreConfigFlag(self::XML_PATH_EXTENSION_ACTIVE, $storeId);
726
  if ($enabled === false) {
 
 
727
  $errors = array(
728
  array(
729
  'code' => 'POSTNL-0030',
731
  )
732
  );
733
 
734
+ Mage::register('postnl_core_is_enabled_errors', $errors);
735
  return false;
736
  }
737
 
738
  /**
739
  * Make sure that the required PHP extensions are loaded.
740
  */
741
+ $phpExtensionsLoaded = $this->areRequiredPHPExtensionsLoaded();
742
  if ($phpExtensionsLoaded === false) {
 
743
  return false;
744
  }
745
 
746
  /**
747
  * Check if the module's required configuration options have been filled
748
  */
749
+ $isConfigured = $this->isConfigured($storeId, $forceTestMode, $ignoreCache);
750
  if ($isConfigured === false) {
 
751
  return false;
752
  }
753
 
756
  */
757
  $postnlShippingMethodEnabled = Mage::getStoreConfigFlag(self::XML_PATH_CARRIER_ACTIVE, $storeId);
758
  if ($postnlShippingMethodEnabled === false) {
759
+ if ($this->isSystemConfig() || $this->isLoggingEnabled()) {
760
+ $shippingMethodSectionurl = Mage::helper("adminhtml")->getUrl(
761
+ 'adminhtml/system_config/edit',
762
+ array(
763
+ '_secure' => true,
764
+ 'section' => 'carriers',
765
+ )
766
+ );
 
767
 
768
+ $errorMessage = $this->__(
769
+ 'The PostNL shipping method has not been enabled. You can enable the PostNL shipping method under '
770
  . '%sSystem > Config > Shipping Methods%s.',
771
+ '<a href="'
772
  . $shippingMethodSectionurl
773
  . '" target="_blank" title="'
774
  . $this->__('Shipping Methods')
775
  . '">',
776
+ '</a>'
777
+ );
778
+ } else {
779
+ $errorMessage = $this->__(
780
+ 'The PostNL shipping method has not been enabled. You can enable the PostNL shipping method under '
781
+ . 'System > Config > Shipping Methods.'
782
+ );
783
+ }
784
 
785
  $errors = array(
786
  array(
788
  'message' => $errorMessage,
789
  )
790
  );
791
+
792
+ Mage::register('postnl_core_is_enabled_errors', $errors);
793
  return false;
794
  }
795
 
798
  */
799
  $baseCurrencyCode = Mage::getModel('core/store')->load($storeId)->getBaseCurrencyCode();
800
  if ($baseCurrencyCode != 'EUR') {
 
 
801
  $errors = array(
802
  array(
803
  'code' => 'POSTNL-0032',
804
  'message' => $this->__("The shop's base currency code must be set to EUR for PostNL to function."),
805
  )
806
  );
807
+
808
+ Mage::register('postnl_core_is_enabled_errors', $errors);
809
  return false;
810
  }
811
 
 
812
  return true;
813
  }
814
 
815
  /**
816
  * Check if the required SOAP, OpenSSL and MCrypt PHP extensions are loaded.
817
  *
 
 
818
  * @return bool
819
  */
820
+ public function areRequiredPHPExtensionsLoaded()
821
  {
822
  $errors = array();
823
  if (!extension_loaded('soap')) {
851
  }
852
 
853
  /**
854
+ * Register any errors that may have occurred and return false.
855
  */
856
  if (!empty($errors)) {
857
+ Mage::register('postnl_core_is_enabled_errors', $errors);
 
858
  return false;
859
  }
860
 
862
  }
863
 
864
  /**
865
+ * Check if the modules has been configured.
866
+ * The required fields will only be checked to see if they're not empty. The values entered will not be validated.
867
  *
868
+ * @param int|boolean $storeId
 
869
  * @param null|boolean $forceTestMode
870
+ * @param boolean $ignoreCache
871
  *
872
  * @return boolean
873
  */
874
+ public function isConfigured($storeId = false, $forceTestMode = null, $ignoreCache = false)
875
  {
876
+ if ($ignoreCache) {
877
+ $cache = false;
878
  } else {
879
+ $cache = $this->getCache();
880
  }
881
 
882
+ if ($cache && $cache->hasPostnlCoreIsConfigured()) {
883
+ return $cache->getPostnlCoreIsConfigured();
 
884
  }
885
+
886
+ $isConfigured = $this->_isConfigured($storeId, $forceTestMode);
887
+
888
+ if ($cache) {
889
+ $cache->setPostnlCoreIsConfigured($isConfigured)
890
+ ->saveCache();
891
  }
892
 
893
+ return $isConfigured;
894
+ }
895
+
896
+ /**
897
+ * Checks if the PostNL extension is fully configured.
898
+ *
899
+ * @param int|boolean $storeId
900
+ * @param null|boolean $forceTestMode
901
+ *
902
+ * @return bool
903
+ */
904
+ protected function _isConfigured($storeId, $forceTestMode)
905
+ {
906
+ if ($forceTestMode === null) {
907
+ $testMode = $this->isTestMode();
908
+ } else {
909
+ $testMode = $forceTestMode;
910
  }
911
 
912
  $errors = array();
913
 
914
+ Mage::unregister('postnl_core_is_configured_errors');
915
+
916
  /**
917
  * Check if the module has been activated
918
  */
943
  }
944
  $requiredFields = array_merge($modeFields, $baseFields);
945
 
946
+ $fieldErrors = $this->_getFieldsConfiguredErrors($requiredFields, $storeId);
947
+
948
+ $errors = array_merge($errors, $fieldErrors);
949
+
950
  /**
951
+ * If any errors were detected, add them to the registry and return false
952
  */
953
+ if (!empty($errors)) {
954
+ Mage::register('postnl_core_is_configured_errors', $errors);
955
+ return false;
956
+ }
957
+
958
+ return true;
959
+ }
960
+
961
+ /**
962
+ * Checks if configuration fields that are required for GlobalPack shipments are configured.
963
+ *
964
+ * @param boolean $storeId
965
+ * @param boolean $ignoreCache
966
+ *
967
+ * @return boolean
968
+ */
969
+ public function isGlobalConfigured($storeId = false, $ignoreCache = false)
970
+ {
971
+ if ($ignoreCache) {
972
+ $cache = false;
973
+ } else {
974
+ $cache = $this->getCache();
975
+ }
976
+
977
+ if ($cache && $cache->hasPostnlCoreIsGlobalConfigured()) {
978
+ return $cache->getPostnlCoreIsGlobalConfigured();
979
+ }
980
+
981
+ Mage::unregister('postnl_core_is_global_configured_errors');
982
+
983
+ if ($storeId === false) {
984
+ $storeId = Mage::app()->getStore()->getId();
985
+ }
986
+
987
+ $fields = $this->getGlobalShipmentsRequiredFields();
988
+
989
+ $errors = $this->_getFieldsConfiguredErrors($fields, $storeId);
990
+
991
+ if (!empty($errors)) {
992
+ Mage::register('postnl_core_is_global_configured_errors', $errors);
993
+
994
+ if ($cache) {
995
+ $cache->setPostnlCoreIsConfigured(false)
996
+ ->saveCache();
997
+ }
998
+ return false;
999
  }
1000
 
1001
+ if ($cache) {
1002
+ $cache->setPostnlCoreIsGlobalConfigured(true)
1003
+ ->saveCache();
1004
+ }
1005
+ return true;
1006
+ }
1007
+
1008
+ /**
1009
+ * Checks if a specified array of fields are configured. If not, returns an array of errors.
1010
+ *
1011
+ * @param array $requiredFields
1012
+ * @param int $storeId
1013
+ *
1014
+ * @return array
1015
+ */
1016
+ protected function _getFieldsConfiguredErrors($requiredFields, $storeId)
1017
+ {
1018
+ $errors = array();
1019
+
1020
  /**
1021
+ * Check if each required field is filled.
 
 
 
1022
  */
1023
+ if ($this->isSystemConfig() || $this->isLoggingEnabled()) {
1024
+ /**
1025
+ * If not, add the field's label to an array of missing fields so we can later inform the merchant which
1026
+ * fields exactly are missing.
1027
+ *
1028
+ * @var Varien_Simplexml_Element $section
1029
+ */
1030
+ $configFields = Mage::getSingleton('adminhtml/config');
1031
+ $sections = $configFields->getSections('postnl');
1032
+ $section = $sections->postnl;
1033
+ }
1034
+
1035
  foreach ($requiredFields as $requiredField) {
1036
  $value = Mage::getStoreConfig($requiredField, $storeId);
1037
 
1039
  continue;
1040
  }
1041
 
1042
+ if (isset($section)) {
1043
+ $fieldParts = explode('/', $requiredField);
1044
+ $field = $fieldParts[2];
1045
+ $group = $fieldParts[1];
1046
 
1047
+ /**
1048
+ * @var Varien_Simplexml_Element $sectionGroup
1049
+ */
1050
+ $sectionGroup = $section->groups->$group;
1051
 
1052
+ $label = (string) $sectionGroup->fields->$field->label;
1053
+ $groupLabel = (string) $sectionGroup->label;
1054
+ $groupName = $sectionGroup->getName();
1055
 
1056
+ $errors[] = array(
1057
+ 'code' => 'POSTNL-0034',
1058
+ 'message' => $this->__('%s > %s is required.', $this->__($groupLabel), $this->__($label)),
1059
+ );
 
 
 
1060
 
1061
+ if ($this->isSystemConfig()) {
1062
+ $this->saveConfigState(array('postnl_' . $groupName => 1));
1063
+ }
1064
+ } else {
1065
+ $errors[] = array(
1066
+ 'code' => 'POSTNL-0160',
1067
+ 'message' => $this->__('A required configuration value is missing: %s', $requiredField),
1068
+ );
1069
+ }
1070
  }
1071
 
1072
+ return $errors;
 
1073
  }
1074
 
1075
  /**
1194
  }
1195
 
1196
  /**
1197
+ * Logs a cron debug message to a separate file in order to differentiate it from other debug messages
1198
  *
1199
  * @param string $message
1200
  * @param int $level
1312
  }
1313
 
1314
  /**
1315
+ * Checks if the current page is the system/config page in the backend.
1316
+ *
1317
+ * @return bool
1318
+ */
1319
+ public function isSystemConfig()
1320
+ {
1321
+ if (!$this->isAdmin()) {
1322
+ return false;
1323
+ }
1324
+
1325
+ $request = Mage::app()->getRequest();
1326
+ if ($request->getControllerName() == 'system_config' && $request->getActionName() == 'edit') {
1327
+ return true;
1328
+ }
1329
+
1330
+ return false;
1331
+ }
1332
+
1333
+ /**
1334
+ * Creates a separate dir to log PostNL log files. Does nothing if the dir already exists.
1335
  *
1336
  * @return TIG_PostNL_Exception
1337
  */
1472
  }
1473
 
1474
  /**
1475
+ * If the session could not be loaded or is not of the correct type, throw an exception
1476
  */
1477
  if (!$session
1478
  || !is_object($session)
app/code/community/TIG/PostNL/Helper/DeliveryOptions.php CHANGED
@@ -70,7 +70,7 @@ class TIG_PostNL_Helper_DeliveryOptions extends TIG_PostNL_Helper_Checkout
70
  const XPATH_SHIPPING_DURATION = 'postnl/delivery_options/shipping_duration';
71
 
72
  /**
73
- * The time (as H * 100 + i) we consider to be the start of the evening.
74
  */
75
  const EVENING_TIME = 1900;
76
 
@@ -307,7 +307,7 @@ class TIG_PostNL_Helper_DeliveryOptions extends TIG_PostNL_Helper_Checkout
307
  }
308
 
309
  /**
310
- * Check if an array of business hours contains a timespan that is condiered to be in the evening.
311
  *
312
  * @param array $businessHours
313
  *
@@ -353,39 +353,77 @@ class TIG_PostNL_Helper_DeliveryOptions extends TIG_PostNL_Helper_Checkout
353
  /**
354
  * Checks if PakjeGemak is available.
355
  *
356
- * @param int|boolean $storeId
357
  *
358
  * @return boolean
359
  */
360
  public function canUsePakjeGemak($storeId = false)
361
  {
362
- if ($storeId === false) {
363
- $storeId = Mage::app()->getStore()->getId();
 
 
364
  }
365
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
366
  $enabled = Mage::getStoreConfigFlag(self::XPATH_ENABLE_PAKJEGEMAK, $storeId);
367
  if (!$enabled) {
368
  return false;
369
  }
370
 
371
- $canUsePakjeGemak = parent::canUsePakjeGemak($storeId);
372
 
373
- return $canUsePakjeGemak;
374
  }
375
 
376
  /**
377
  * Checks if PakjeGemak Express is available.
378
  *
379
- * @param int|boolean $storeId
380
- *
381
  * @return boolean
382
  */
383
- public function canUsePakjeGemakExpress($storeId = false)
384
  {
385
- if ($storeId === false) {
386
- $storeId = Mage::app()->getStore()->getId();
 
 
387
  }
388
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
389
  if (!$this->canUsePakjeGemak($storeId)) {
390
  return false;
391
  }
@@ -398,25 +436,44 @@ class TIG_PostNL_Helper_DeliveryOptions extends TIG_PostNL_Helper_Checkout
398
  $pgeOptions = Mage::getModel('postnl_core/system_config_source_pakjeGemakProductOptions')
399
  ->getAvailablePgeOptions($storeId);
400
 
401
- if (empty($pgeOptions)) {
402
- return false;
 
403
  }
404
 
405
- return true;
406
  }
407
 
408
  /**
409
  * Checks if 'pakket automaat' is available.
410
  *
411
- * @param int|boolean $storeId
412
- *
413
  * @return boolean
414
  */
415
- public function canUsePakketAutomaat($storeId = false)
416
  {
417
- if ($storeId === false) {
418
- $storeId = Mage::app()->getStore()->getId();
 
 
 
 
 
 
 
 
 
419
  }
 
 
 
 
 
 
 
 
 
 
 
420
 
421
  $enabled = Mage::getStoreConfigFlag(self::XPATH_ENABLE_PAKKETAUTOMAAT_LOCATIONS, $storeId);
422
  if (!$enabled) {
@@ -426,45 +483,70 @@ class TIG_PostNL_Helper_DeliveryOptions extends TIG_PostNL_Helper_Checkout
426
  $pakketautomaatOptions = Mage::getModel('postnl_core/system_config_source_pakketautomaatProductOptions')
427
  ->getAvailableOptions($storeId);
428
 
429
- if (empty($pakketautomaatOptions)) {
430
- return false;
 
431
  }
432
 
433
- return true;
434
  }
435
 
436
  /**
437
  * Checks if timeframes are available.
438
  *
439
- * @param int|boolean $storeId
440
- *
441
  * @return boolean
442
  */
443
- public function canUseTimeframes($storeId = false)
444
  {
445
- if ($storeId === false) {
446
- $storeId = Mage::app()->getStore()->getId();
 
 
447
  }
448
 
449
- $enabled = Mage::getStoreConfigFlag(self::XPATH_ENABLE_TIMEFRAMES, $storeId);
450
 
451
- return $enabled;
 
 
 
 
 
 
452
  }
453
 
454
  /**
455
  * Checks if evening timeframes are available.
456
  *
457
- * @param int|boolean $storeId
458
- *
459
  * @return boolean
460
  */
461
- public function canUseEveningTimeframes($storeId = false)
462
  {
463
- if ($storeId === false) {
464
- $storeId = Mage::app()->getStore()->getId();
 
 
 
 
 
 
 
 
 
465
  }
 
 
 
 
 
 
 
 
 
 
 
466
 
467
- if (!$this->canUseTimeframes($storeId)) {
468
  return false;
469
  }
470
 
@@ -476,28 +558,36 @@ class TIG_PostNL_Helper_DeliveryOptions extends TIG_PostNL_Helper_Checkout
476
  $eveningOptions = Mage::getModel('postnl_core/system_config_source_standardProductOptions')
477
  ->getAvailableAvondOptions($storeId);
478
 
479
- if (empty($eveningOptions)) {
480
- return false;
 
481
  }
482
 
483
- return true;
484
  }
485
 
486
  /**
487
  * Checks if sunday sorting is allowed.
488
  *
489
- * @param bool $storeId
490
- *
491
  * @return bool
492
  */
493
- public function canUseSundaySorting($storeId = false)
494
  {
495
- if ($storeId === false) {
496
- $storeId = Mage::app()->getStore()->getId();
 
 
497
  }
498
 
 
 
499
  $allowed = Mage::getStoreConfigFlag(self::XPATH_ALLOW_SUNDAY_SORTING, $storeId);
500
 
 
 
 
 
 
501
  return $allowed;
502
  }
503
 
@@ -505,26 +595,21 @@ class TIG_PostNL_Helper_DeliveryOptions extends TIG_PostNL_Helper_Checkout
505
  * Check if PostNL delivery options may be used based on a quote.
506
  *
507
  * @param Mage_Sales_Model_Quote|boolean $quote
508
- * @param boolean $checkCountry
509
  *
510
  * @return boolean
511
  */
512
- public function canUseDeliveryOptions($quote = false, $checkCountry = true)
513
  {
514
  $registryKey = 'can_use_delivery_options';
515
- if ($quote) {
516
  $registryKey .= '_quote_id_' . $quote->getId();
517
  }
518
 
519
- if ($checkCountry) {
520
- $registryKey .= '_check_country';
521
- }
522
-
523
  if (Mage::registry($registryKey) !== null) {
524
  return Mage::registry($registryKey);
525
  }
526
 
527
- Mage::unregister('postnl_enabled_delivery_options_errors');
528
 
529
  $deliveryOptionsEnabled = $this->isDeliveryOptionsEnabled();
530
  if (!$deliveryOptionsEnabled) {
@@ -542,7 +627,7 @@ class TIG_PostNL_Helper_DeliveryOptions extends TIG_PostNL_Helper_Checkout
542
  'message' => $this->__('The quote is virtual.'),
543
  )
544
  );
545
- Mage::register('postnl_enabled_delivery_options_errors', $errors);
546
  Mage::register($registryKey, false);
547
  return false;
548
  }
@@ -557,7 +642,7 @@ class TIG_PostNL_Helper_DeliveryOptions extends TIG_PostNL_Helper_Checkout
557
  'message' => $this->__("The quote's grand total is below the minimum amount required."),
558
  )
559
  );
560
- Mage::register('postnl_enabled_delivery_options_errors', $errors);
561
  Mage::register($registryKey, false);
562
  return false;
563
  }
@@ -574,28 +659,11 @@ class TIG_PostNL_Helper_DeliveryOptions extends TIG_PostNL_Helper_Checkout
574
  ),
575
  )
576
  );
577
- Mage::register('postnl_enabled_delivery_options_errors', $errors);
578
  Mage::register($registryKey, false);
579
  return false;
580
  }
581
 
582
- if ($quote && $checkCountry) {
583
- $shippingAddress = $quote->getShippingAddress();
584
- if ($shippingAddress->getCountry() != 'NL') {
585
- $errors = array(
586
- array(
587
- 'code' => 'POSTNL-0132',
588
- 'message' => $this->__(
589
- 'PostNL delivery options are only available for Dutch shipping addresses.'
590
- ),
591
- )
592
- );
593
- Mage::register('postnl_enabled_delivery_options_errors', $errors);
594
- Mage::register($registryKey, false);
595
- return false;
596
- }
597
- }
598
-
599
  /**
600
  * If we have no quote, we have no further checks to perform.
601
  */
@@ -622,7 +690,7 @@ class TIG_PostNL_Helper_DeliveryOptions extends TIG_PostNL_Helper_Checkout
622
  ),
623
  )
624
  );
625
- Mage::register('postnl_enabled_delivery_options_errors', $errors);
626
  Mage::register($registryKey, false);
627
  return false;
628
  }
@@ -642,7 +710,7 @@ class TIG_PostNL_Helper_DeliveryOptions extends TIG_PostNL_Helper_Checkout
642
  'message' => $this->__('One or more items in the cart are out of stock.'),
643
  )
644
  );
645
- Mage::register('postnl_enabled_delivery_options_errors', $errors);
646
  Mage::register($registryKey, false);
647
  return false;
648
  }
@@ -652,6 +720,27 @@ class TIG_PostNL_Helper_DeliveryOptions extends TIG_PostNL_Helper_Checkout
652
  return true;
653
  }
654
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
655
  /**
656
  * Check if the module is set to test mode
657
  *
@@ -683,16 +772,39 @@ class TIG_PostNL_Helper_DeliveryOptions extends TIG_PostNL_Helper_Checkout
683
  * @return boolean
684
  */
685
  public function isDeliveryOptionsEnabled($storeId = null)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
686
  {
687
  if (is_null($storeId)) {
688
  $storeId = Mage::app()->getStore()->getId();
689
  }
690
 
691
- if (Mage::registry('postnl_enabled_delivery_options_errors')) {
692
- Mage::unregister('postnl_enabled_delivery_options_errors');
693
- }
694
 
695
- $isPostnlEnabled = $this->isEnabled($storeId, false, $this->isTestMode());
696
  if ($isPostnlEnabled === false) {
697
  $errors = array(
698
  array(
@@ -700,7 +812,7 @@ class TIG_PostNL_Helper_DeliveryOptions extends TIG_PostNL_Helper_Checkout
700
  'message' => $this->__('You have not yet enabled the PostNL extension.'),
701
  )
702
  );
703
- Mage::register('postnl_enabled_delivery_options_errors', $errors);
704
  return false;
705
  }
706
 
@@ -712,7 +824,7 @@ class TIG_PostNL_Helper_DeliveryOptions extends TIG_PostNL_Helper_Checkout
712
  'message' => $this->__('You have not yet enabled PostNL delivery options.'),
713
  )
714
  );
715
- Mage::register('postnl_enabled_delivery_options_errors', $errors);
716
  return false;
717
  }
718
 
70
  const XPATH_SHIPPING_DURATION = 'postnl/delivery_options/shipping_duration';
71
 
72
  /**
73
+ * The time we consider to be the start of the evening.
74
  */
75
  const EVENING_TIME = 1900;
76
 
307
  }
308
 
309
  /**
310
+ * Check if an array of business hours contains a timespan that is considered to be in the evening.
311
  *
312
  * @param array $businessHours
313
  *
353
  /**
354
  * Checks if PakjeGemak is available.
355
  *
356
+ * @param boolean $storeId
357
  *
358
  * @return boolean
359
  */
360
  public function canUsePakjeGemak($storeId = false)
361
  {
362
+ $cache = $this->getCache();
363
+
364
+ if ($cache && $cache->hasPostnlDeliveryOptionsCanUsePakjeGemak()) {
365
+ return $cache->getPostnlDeliveryOptionsCanUsePakjeGemak();
366
  }
367
 
368
+ $allowed = $this->_canUsePakjeGemak();
369
+
370
+ if ($cache) {
371
+ $cache->setPostnlDeliveryOptionsCanUsePakjeGemak($allowed)
372
+ ->saveCache();
373
+ }
374
+ return $allowed;
375
+ }
376
+
377
+ /**
378
+ * Checks if PakjeGemak is available.
379
+ *
380
+ * @return boolean
381
+ */
382
+ protected function _canUsePakjeGemak()
383
+ {
384
+ $storeId = Mage::app()->getStore()->getId();
385
+
386
  $enabled = Mage::getStoreConfigFlag(self::XPATH_ENABLE_PAKJEGEMAK, $storeId);
387
  if (!$enabled) {
388
  return false;
389
  }
390
 
391
+ $allowed = parent::canUsePakjeGemak($storeId);
392
 
393
+ return $allowed;
394
  }
395
 
396
  /**
397
  * Checks if PakjeGemak Express is available.
398
  *
 
 
399
  * @return boolean
400
  */
401
+ public function canUsePakjeGemakExpress()
402
  {
403
+ $cache = $this->getCache();
404
+
405
+ if ($cache && $cache->hasPostnlDeliveryOptionsCanUsePakjeGemakExpress()) {
406
+ return $cache->getPostnlDeliveryOptionsCanUsePakjeGemakExpress();
407
  }
408
 
409
+ $allowed = $this->_canUsePakjeGemakExpress();
410
+
411
+ if ($cache) {
412
+ $cache->setPostnlDeliveryOptionsCanUsePakjeGemakExpress($allowed)
413
+ ->saveCache();
414
+ }
415
+ return $allowed;
416
+ }
417
+
418
+ /**
419
+ * Checks if PakjeGemak Express is available.
420
+ *
421
+ * @return boolean
422
+ */
423
+ protected function _canUsePakjeGemakExpress()
424
+ {
425
+ $storeId = Mage::app()->getStore()->getId();
426
+
427
  if (!$this->canUsePakjeGemak($storeId)) {
428
  return false;
429
  }
436
  $pgeOptions = Mage::getModel('postnl_core/system_config_source_pakjeGemakProductOptions')
437
  ->getAvailablePgeOptions($storeId);
438
 
439
+ $allowed = false;
440
+ if (!empty($pgeOptions)) {
441
+ $allowed = true;
442
  }
443
 
444
+ return $allowed;
445
  }
446
 
447
  /**
448
  * Checks if 'pakket automaat' is available.
449
  *
 
 
450
  * @return boolean
451
  */
452
+ public function canUsePakketAutomaat()
453
  {
454
+ $cache = $this->getCache();
455
+
456
+ if ($cache && $cache->hasPostnlDeliveryOptionsCanUsePakketAutomaat()) {
457
+ return $cache->getPostnlDeliveryOptionsCanUsePakketAutomaat();
458
+ }
459
+
460
+ $allowed = $this->_canUsePakketAutomaat();
461
+
462
+ if ($cache) {
463
+ $cache->setPostnlDeliveryOptionsCanUsePakketAutomaat($allowed)
464
+ ->saveCache();
465
  }
466
+ return $allowed;
467
+ }
468
+
469
+ /**
470
+ * Checks if 'pakket automaat' is available.
471
+ *
472
+ * @return boolean
473
+ */
474
+ protected function _canUsePakketAutomaat()
475
+ {
476
+ $storeId = Mage::app()->getStore()->getId();
477
 
478
  $enabled = Mage::getStoreConfigFlag(self::XPATH_ENABLE_PAKKETAUTOMAAT_LOCATIONS, $storeId);
479
  if (!$enabled) {
483
  $pakketautomaatOptions = Mage::getModel('postnl_core/system_config_source_pakketautomaatProductOptions')
484
  ->getAvailableOptions($storeId);
485
 
486
+ $allowed = false;
487
+ if (!empty($pakketautomaatOptions)) {
488
+ $allowed = true;
489
  }
490
 
491
+ return $allowed;
492
  }
493
 
494
  /**
495
  * Checks if timeframes are available.
496
  *
 
 
497
  * @return boolean
498
  */
499
+ public function canUseTimeframes()
500
  {
501
+ $cache = $this->getCache();
502
+
503
+ if ($cache && $cache->hasPostnlDeliveryOptionsCanUseTimeframes()) {
504
+ return $cache->getPostnlDeliveryOptionsCanUseTimeframes();
505
  }
506
 
507
+ $storeId = Mage::app()->getStore()->getId();
508
 
509
+ $allowed = Mage::getStoreConfigFlag(self::XPATH_ENABLE_TIMEFRAMES, $storeId);
510
+
511
+ if ($cache) {
512
+ $cache->setPostnlDeliveryOptionsCanUseTimeframes($allowed)
513
+ ->saveCache();
514
+ }
515
+ return $allowed;
516
  }
517
 
518
  /**
519
  * Checks if evening timeframes are available.
520
  *
 
 
521
  * @return boolean
522
  */
523
+ public function canUseEveningTimeframes()
524
  {
525
+ $cache = $this->getCache();
526
+
527
+ if ($cache && $cache->hasPostnlDeliveryOptionsCanUseEveningTimeframes()) {
528
+ return $cache->getPostnlDeliveryOptionsCanUseEveningTimeframes();
529
+ }
530
+
531
+ $allowed = $this->_canUseEveningTimeframes();
532
+
533
+ if ($cache) {
534
+ $cache->setPostnlDeliveryOptionsCanUseEveningTimeframes($allowed)
535
+ ->saveCache();
536
  }
537
+ return $allowed;
538
+ }
539
+
540
+ /**
541
+ * Checks if evening timeframes are available.
542
+ *
543
+ * @return boolean
544
+ */
545
+ protected function _canUseEveningTimeframes()
546
+ {
547
+ $storeId = Mage::app()->getStore()->getId();
548
 
549
+ if (!$this->canUseTimeframes()) {
550
  return false;
551
  }
552
 
558
  $eveningOptions = Mage::getModel('postnl_core/system_config_source_standardProductOptions')
559
  ->getAvailableAvondOptions($storeId);
560
 
561
+ $allowed = false;
562
+ if (!empty($eveningOptions)) {
563
+ $allowed = true;
564
  }
565
 
566
+ return $allowed;
567
  }
568
 
569
  /**
570
  * Checks if sunday sorting is allowed.
571
  *
 
 
572
  * @return bool
573
  */
574
+ public function canUseSundaySorting()
575
  {
576
+ $cache = $this->getCache();
577
+
578
+ if ($cache && $cache->hasPostnlDeliveryOptionsCanUseSundaySorting()) {
579
+ return $cache->getPostnlDeliveryOptionsCanUseSundaySorting();
580
  }
581
 
582
+ $storeId = Mage::app()->getStore()->getId();
583
+
584
  $allowed = Mage::getStoreConfigFlag(self::XPATH_ALLOW_SUNDAY_SORTING, $storeId);
585
 
586
+ if ($cache) {
587
+ $cache->setPostnlDeliveryOptionsCanUseSundaySorting($allowed)
588
+ ->saveCache();
589
+ }
590
+
591
  return $allowed;
592
  }
593
 
595
  * Check if PostNL delivery options may be used based on a quote.
596
  *
597
  * @param Mage_Sales_Model_Quote|boolean $quote
 
598
  *
599
  * @return boolean
600
  */
601
+ public function canUseDeliveryOptions($quote = false)
602
  {
603
  $registryKey = 'can_use_delivery_options';
604
+ if ($quote && $quote->getId()) {
605
  $registryKey .= '_quote_id_' . $quote->getId();
606
  }
607
 
 
 
 
 
608
  if (Mage::registry($registryKey) !== null) {
609
  return Mage::registry($registryKey);
610
  }
611
 
612
+ Mage::unregister('postnl_delivery_options_can_use_delivery_options_errors');
613
 
614
  $deliveryOptionsEnabled = $this->isDeliveryOptionsEnabled();
615
  if (!$deliveryOptionsEnabled) {
627
  'message' => $this->__('The quote is virtual.'),
628
  )
629
  );
630
+ Mage::register('postnl_delivery_options_can_use_delivery_options_errors', $errors);
631
  Mage::register($registryKey, false);
632
  return false;
633
  }
642
  'message' => $this->__("The quote's grand total is below the minimum amount required."),
643
  )
644
  );
645
+ Mage::register('postnl_delivery_options_can_use_delivery_options_errors', $errors);
646
  Mage::register($registryKey, false);
647
  return false;
648
  }
659
  ),
660
  )
661
  );
662
+ Mage::register('postnl_delivery_options_can_use_delivery_options_errors', $errors);
663
  Mage::register($registryKey, false);
664
  return false;
665
  }
666
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
667
  /**
668
  * If we have no quote, we have no further checks to perform.
669
  */
690
  ),
691
  )
692
  );
693
+ Mage::register('postnl_delivery_options_can_use_delivery_options_errors', $errors);
694
  Mage::register($registryKey, false);
695
  return false;
696
  }
710
  'message' => $this->__('One or more items in the cart are out of stock.'),
711
  )
712
  );
713
+ Mage::register('postnl_delivery_options_can_use_delivery_options_errors', $errors);
714
  Mage::register($registryKey, false);
715
  return false;
716
  }
720
  return true;
721
  }
722
 
723
+ /**
724
+ * Checks if the delivery options may be used for the currently chosen shipping destination.
725
+ *
726
+ * @param Mage_Sales_Model_Quote $quote
727
+ *
728
+ * @return boolean
729
+ */
730
+ public function canUseDeliveryOptionsForCountry(Mage_Sales_Model_Quote $quote)
731
+ {
732
+ $shippingAddress = $quote->getShippingAddress();
733
+ if (!$shippingAddress) {
734
+ return false;
735
+ }
736
+
737
+ if ($shippingAddress->getCountry() != 'NL') {
738
+ return false;
739
+ }
740
+
741
+ return true;
742
+ }
743
+
744
  /**
745
  * Check if the module is set to test mode
746
  *
772
  * @return boolean
773
  */
774
  public function isDeliveryOptionsEnabled($storeId = null)
775
+ {
776
+ $cache = $this->getCache();
777
+
778
+ if ($cache && $cache->hasPostnlDeliveryOptionsIsEnabled()) {
779
+ return $cache->getPostnlDeliveryOptionsIsEnabled();
780
+ }
781
+
782
+ $isEnabled = $this->_isDeliveryOptionsEnabled($storeId);
783
+
784
+ if ($cache) {
785
+ $cache->setPostnlDeliveryOptionsIsEnabled($isEnabled)
786
+ ->saveCache();
787
+ }
788
+
789
+ return $isEnabled;
790
+ }
791
+
792
+ /**
793
+ * Checks if PostNL delivery options are enabled.
794
+ *
795
+ * @param null|int $storeId
796
+ *
797
+ * @return bool
798
+ */
799
+ protected function _isDeliveryOptionsEnabled($storeId = null)
800
  {
801
  if (is_null($storeId)) {
802
  $storeId = Mage::app()->getStore()->getId();
803
  }
804
 
805
+ Mage::unregister('postnl_delivery_options_is_enabled_errors');
 
 
806
 
807
+ $isPostnlEnabled = $this->isEnabled($storeId);
808
  if ($isPostnlEnabled === false) {
809
  $errors = array(
810
  array(
812
  'message' => $this->__('You have not yet enabled the PostNL extension.'),
813
  )
814
  );
815
+ Mage::register('postnl_delivery_options_is_enabled_errors', $errors);
816
  return false;
817
  }
818
 
824
  'message' => $this->__('You have not yet enabled PostNL delivery options.'),
825
  )
826
  );
827
+ Mage::register('postnl_delivery_options_is_enabled_errors', $errors);
828
  return false;
829
  }
830
 
app/code/community/TIG/PostNL/Helper/Mijnpakket.php CHANGED
@@ -55,10 +55,21 @@ class TIG_PostNL_Helper_Mijnpakket extends TIG_PostNL_Helper_Data
55
  */
56
  public function isMijnpakketLoginActive()
57
  {
 
 
 
 
 
 
58
  $storeId = Mage::app()->getStore()->getId();
59
 
60
  $isActive = Mage::getStoreConfigFlag(self::XPATH_MIJNPAKKET_LOGIN_ACTIVE, $storeId);
61
 
 
 
 
 
 
62
  return $isActive;
63
  }
64
 
55
  */
56
  public function isMijnpakketLoginActive()
57
  {
58
+ $cache = $this->getCache();
59
+
60
+ if ($cache && $cache->hasPostnlMijnpakketIsActive()) {
61
+ return $cache->getPostnlMijnpakketIsActive();
62
+ }
63
+
64
  $storeId = Mage::app()->getStore()->getId();
65
 
66
  $isActive = Mage::getStoreConfigFlag(self::XPATH_MIJNPAKKET_LOGIN_ACTIVE, $storeId);
67
 
68
+ if ($cache) {
69
+ $cache->setPostnlMijnpakketIsActive($isActive)
70
+ ->saveCache();
71
+ }
72
+
73
  return $isActive;
74
  }
75
 
app/code/community/TIG/PostNL/Model/AddressValidation/Observer/AddressBook.php CHANGED
@@ -82,13 +82,6 @@ class TIG_PostNL_Model_AddressValidation_Observer_AddressBook extends Varien_Obj
82
  */
83
  public function addressBookPostcodeCheck(Varien_Event_Observer $observer)
84
  {
85
- /**
86
- * Check if the extension is active
87
- */
88
- if (!Mage::helper('postnl/addressValidation')->isPostcodeCheckEnabled(null, self::POSTCODECHECK_ENV)) {
89
- return $this;
90
- }
91
-
92
  /**
93
  * Checks if the current block is the one we want to edit.
94
  *
@@ -103,6 +96,13 @@ class TIG_PostNL_Model_AddressValidation_Observer_AddressBook extends Varien_Obj
103
  return $this;
104
  }
105
 
 
 
 
 
 
 
 
106
  $block->setTemplate('TIG/PostNL/address_validation/customer/address/edit.phtml');
107
 
108
  return $this;
82
  */
83
  public function addressBookPostcodeCheck(Varien_Event_Observer $observer)
84
  {
 
 
 
 
 
 
 
85
  /**
86
  * Checks if the current block is the one we want to edit.
87
  *
96
  return $this;
97
  }
98
 
99
+ /**
100
+ * Check if the extension is active
101
+ */
102
+ if (!Mage::helper('postnl/addressValidation')->isPostcodeCheckEnabled(null, self::POSTCODECHECK_ENV)) {
103
+ return $this;
104
+ }
105
+
106
  $block->setTemplate('TIG/PostNL/address_validation/customer/address/edit.phtml');
107
 
108
  return $this;
app/code/community/TIG/PostNL/Model/AddressValidation/Observer/OneStepCheckout.php CHANGED
@@ -89,13 +89,6 @@ class TIG_PostNL_Model_AddressValidation_Observer_OneStepCheckout extends Varien
89
  */
90
  public function addressPostcodeCheck(Varien_Event_Observer $observer)
91
  {
92
- /**
93
- * Check if the extension is active
94
- */
95
- if (!Mage::helper('postnl/addressValidation')->isPostcodeCheckEnabled(null, self::POSTCODECHECK_ENV)) {
96
- return $this;
97
- }
98
-
99
  /**
100
  * Checks if the current block is the one we want to edit.
101
  *
@@ -114,6 +107,13 @@ class TIG_PostNL_Model_AddressValidation_Observer_OneStepCheckout extends Varien
114
  return $this;
115
  }
116
 
 
 
 
 
 
 
 
117
  /**
118
  * Get the blocks alias and alter it's template based on this
119
  */
89
  */
90
  public function addressPostcodeCheck(Varien_Event_Observer $observer)
91
  {
 
 
 
 
 
 
 
92
  /**
93
  * Checks if the current block is the one we want to edit.
94
  *
107
  return $this;
108
  }
109
 
110
+ /**
111
+ * Check if the extension is active
112
+ */
113
+ if (!Mage::helper('postnl/addressValidation')->isPostcodeCheckEnabled(null, self::POSTCODECHECK_ENV)) {
114
+ return $this;
115
+ }
116
+
117
  /**
118
  * Get the blocks alias and alter it's template based on this
119
  */
app/code/community/TIG/PostNL/Model/AddressValidation/Observer/Onepage.php CHANGED
@@ -102,13 +102,6 @@ class TIG_PostNL_Model_AddressValidation_Observer_Onepage extends Varien_Object
102
  */
103
  public function billingAddressPostcodeCheck(Varien_Event_Observer $observer)
104
  {
105
- /**
106
- * Check if the extension is active
107
- */
108
- if (!Mage::helper('postnl/addressValidation')->isPostcodeCheckEnabled(null, self::POSTCODECHECK_ENV)) {
109
- return $this;
110
- }
111
-
112
  /**
113
  * Checks if the current block is the one we want to edit.
114
  *
@@ -127,6 +120,13 @@ class TIG_PostNL_Model_AddressValidation_Observer_Onepage extends Varien_Object
127
  return $this;
128
  }
129
 
 
 
 
 
 
 
 
130
  $block->setTemplate('TIG/PostNL/address_validation/checkout/onepage/billing.phtml');
131
 
132
  return $this;
@@ -146,13 +146,6 @@ class TIG_PostNL_Model_AddressValidation_Observer_Onepage extends Varien_Object
146
  */
147
  public function shippingAddressPostcodeCheck(Varien_Event_Observer $observer)
148
  {
149
- /**
150
- * Check if the extension is active
151
- */
152
- if (!Mage::helper('postnl/addressValidation')->isPostcodeCheckEnabled(null, self::POSTCODECHECK_ENV)) {
153
- return $this;
154
- }
155
-
156
  /**
157
  * Checks if the current block is the one we want to edit.
158
  *
@@ -171,6 +164,13 @@ class TIG_PostNL_Model_AddressValidation_Observer_Onepage extends Varien_Object
171
  return $this;
172
  }
173
 
 
 
 
 
 
 
 
174
  $block->setTemplate('TIG/PostNL/address_validation/checkout/onepage/shipping.phtml');
175
 
176
  return $this;
102
  */
103
  public function billingAddressPostcodeCheck(Varien_Event_Observer $observer)
104
  {
 
 
 
 
 
 
 
105
  /**
106
  * Checks if the current block is the one we want to edit.
107
  *
120
  return $this;
121
  }
122
 
123
+ /**
124
+ * Check if the extension is active
125
+ */
126
+ if (!Mage::helper('postnl/addressValidation')->isPostcodeCheckEnabled(null, self::POSTCODECHECK_ENV)) {
127
+ return $this;
128
+ }
129
+
130
  $block->setTemplate('TIG/PostNL/address_validation/checkout/onepage/billing.phtml');
131
 
132
  return $this;
146
  */
147
  public function shippingAddressPostcodeCheck(Varien_Event_Observer $observer)
148
  {
 
 
 
 
 
 
 
149
  /**
150
  * Checks if the current block is the one we want to edit.
151
  *
164
  return $this;
165
  }
166
 
167
+ /**
168
+ * Check if the extension is active
169
+ */
170
+ if (!Mage::helper('postnl/addressValidation')->isPostcodeCheckEnabled(null, self::POSTCODECHECK_ENV)) {
171
+ return $this;
172
+ }
173
+
174
  $block->setTemplate('TIG/PostNL/address_validation/checkout/onepage/shipping.phtml');
175
 
176
  return $this;
app/code/community/TIG/PostNL/Model/AddressValidation/System/Config/Backend/ValidateAccount.php CHANGED
@@ -193,7 +193,7 @@ class TIG_PostNL_Model_AddressValidation_System_Config_Backend_ValidateAccount e
193
  * Gets a config value. First we try to get the value from the fields we are currently trying to save. if the path
194
  * is not among the fields we're saving, get it from the database for the current scope.
195
  *
196
- * @param string $path An xpath to the setting we're trying to retreive
197
  *
198
  * @return string|null
199
  *
193
  * Gets a config value. First we try to get the value from the fields we are currently trying to save. if the path
194
  * is not among the fields we're saving, get it from the database for the current scope.
195
  *
196
+ * @param string $path An xpath to the setting we're trying to retrieve
197
  *
198
  * @return string|null
199
  *
app/code/community/TIG/PostNL/Model/Adminhtml/Observer/OrderGrid.php CHANGED
@@ -46,37 +46,37 @@
46
  class TIG_PostNL_Model_Adminhtml_Observer_OrderGrid extends Varien_Object
47
  {
48
  /**
49
- * The block we want to edit
50
  */
51
  const ORDER_GRID_BLOCK_NAME = 'adminhtml/sales_order_grid';
52
 
53
  /**
54
- * variable name for order grid filter
55
  */
56
  const ORDER_GRID_FILTER_VAR_NAME = 'sales_order_gridfilter';
57
 
58
  /**
59
- * variable name for order grid sorting
60
  */
61
  const ORDER_GRID_SORT_VAR_NAME = 'sales_order_gridsort';
62
 
63
  /**
64
- * variable name for order grid sorting direction
65
  */
66
  const ORDER_GRID_DIR_VAR_NAME = 'sales_order_griddir';
67
 
68
  /**
69
- * XML path to show_grid_options setting
70
  */
71
  const XML_PATH_SHOW_OPTIONS = 'postnl/cif_labels_and_confirming/show_grid_options';
72
 
73
  /**
74
- * XML path to show shipment type column setting
75
  */
76
  const XML_PATH_SHOW_SHIPMENT_TYPE_COLUMN = 'postnl/cif_labels_and_confirming/show_shipment_type_column';
77
 
78
  /**
79
- * Edits the sales order grid by adding a mass action to create shipments for selected orders
80
  *
81
  * @param Varien_Event_Observer $observer
82
  *
@@ -88,13 +88,6 @@ class TIG_PostNL_Model_Adminhtml_Observer_OrderGrid extends Varien_Object
88
  */
89
  public function modifyGrid(Varien_Event_Observer $observer)
90
  {
91
- /**
92
- * check if the extension is active
93
- */
94
- if (!Mage::helper('postnl')->isEnabled()) {
95
- return $this;
96
- }
97
-
98
  /**
99
  * Checks if the current block is the one we want to edit.
100
  *
@@ -107,6 +100,13 @@ class TIG_PostNL_Model_Adminhtml_Observer_OrderGrid extends Varien_Object
107
  return $this;
108
  }
109
 
 
 
 
 
 
 
 
110
  /**
111
  * @var Mage_Adminhtml_Block_Sales_Order_Grid $block
112
  * @var Mage_Sales_Model_Resource_Order_Collection $currentCollection
@@ -134,7 +134,7 @@ class TIG_PostNL_Model_Adminhtml_Observer_OrderGrid extends Varien_Object
134
  $this->_applySortAndFilter($collection);
135
  $this->_addMassaction($block);
136
 
137
- $block->setCollection($this->getCollection());
138
  return $this;
139
  }
140
 
@@ -210,7 +210,7 @@ class TIG_PostNL_Model_Adminhtml_Observer_OrderGrid extends Varien_Object
210
  * @var Mage_Adminhtml_Block_Widget_Grid_Column $massactionColumn
211
  */
212
  $massactionColumn = $block->getColumn('massaction');
213
- if ($incrementIdColumn) {
214
  $massactionColumn->setFilterIndex('main_table.entity_id');
215
  }
216
 
@@ -218,7 +218,7 @@ class TIG_PostNL_Model_Adminhtml_Observer_OrderGrid extends Varien_Object
218
  * @var Mage_Adminhtml_Block_Widget_Grid_Column $statusColumn
219
  */
220
  $statusColumn = $block->getColumn('status');
221
- if ($incrementIdColumn) {
222
  $statusColumn->setFilterIndex('main_table.status');
223
  }
224
 
@@ -226,7 +226,7 @@ class TIG_PostNL_Model_Adminhtml_Observer_OrderGrid extends Varien_Object
226
  * @var Mage_Adminhtml_Block_Widget_Grid_Column $createdAtColumn
227
  */
228
  $createdAtColumn = $block->getColumn('created_at');
229
- if ($incrementIdColumn) {
230
  $createdAtColumn->setFilterIndex('main_table.created_at');
231
  }
232
 
@@ -234,7 +234,7 @@ class TIG_PostNL_Model_Adminhtml_Observer_OrderGrid extends Varien_Object
234
  * @var Mage_Adminhtml_Block_Widget_Grid_Column $baseGrandTotalColumn
235
  */
236
  $baseGrandTotalColumn = $block->getColumn('base_grand_total');
237
- if ($incrementIdColumn) {
238
  $baseGrandTotalColumn->setFilterIndex('main_table.base_grand_total');
239
  }
240
 
@@ -242,10 +242,18 @@ class TIG_PostNL_Model_Adminhtml_Observer_OrderGrid extends Varien_Object
242
  * @var Mage_Adminhtml_Block_Widget_Grid_Column $grandTotalColumn
243
  */
244
  $grandTotalColumn = $block->getColumn('grand_total');
245
- if ($incrementIdColumn) {
246
  $grandTotalColumn->setFilterIndex('main_table.grand_total');
247
  }
248
 
 
 
 
 
 
 
 
 
249
  return $this;
250
  }
251
 
@@ -477,8 +485,8 @@ class TIG_PostNL_Model_Adminhtml_Observer_OrderGrid extends Varien_Object
477
 
478
  /**
479
  * If the filter condition is NL, filter out all orders not being shipped to the Netherlands. PakjeGemak,
480
- * PakjeGmak Express, evening delivery and pakketautomaat shipments are also shipped to the Netherlands so we
481
- * need to explicitely filter those as well.
482
  */
483
  if ($filterCond == 'nl') {
484
  $collection->addFieldToFilter('country_id', $cond);
46
  class TIG_PostNL_Model_Adminhtml_Observer_OrderGrid extends Varien_Object
47
  {
48
  /**
49
+ * The block we want to edit.
50
  */
51
  const ORDER_GRID_BLOCK_NAME = 'adminhtml/sales_order_grid';
52
 
53
  /**
54
+ * variable name for order grid filter.
55
  */
56
  const ORDER_GRID_FILTER_VAR_NAME = 'sales_order_gridfilter';
57
 
58
  /**
59
+ * variable name for order grid sorting.
60
  */
61
  const ORDER_GRID_SORT_VAR_NAME = 'sales_order_gridsort';
62
 
63
  /**
64
+ * variable name for order grid sorting direction.
65
  */
66
  const ORDER_GRID_DIR_VAR_NAME = 'sales_order_griddir';
67
 
68
  /**
69
+ * XML path to show_grid_options setting.
70
  */
71
  const XML_PATH_SHOW_OPTIONS = 'postnl/cif_labels_and_confirming/show_grid_options';
72
 
73
  /**
74
+ * XML path to show shipment type column setting.
75
  */
76
  const XML_PATH_SHOW_SHIPMENT_TYPE_COLUMN = 'postnl/cif_labels_and_confirming/show_shipment_type_column';
77
 
78
  /**
79
+ * Edits the sales order grid by adding a mass action to create shipments for selected orders.
80
  *
81
  * @param Varien_Event_Observer $observer
82
  *
88
  */
89
  public function modifyGrid(Varien_Event_Observer $observer)
90
  {
 
 
 
 
 
 
 
91
  /**
92
  * Checks if the current block is the one we want to edit.
93
  *
100
  return $this;
101
  }
102
 
103
+ /**
104
+ * check if the extension is active
105
+ */
106
+ if (!Mage::helper('postnl')->isEnabled()) {
107
+ return $this;
108
+ }
109
+
110
  /**
111
  * @var Mage_Adminhtml_Block_Sales_Order_Grid $block
112
  * @var Mage_Sales_Model_Resource_Order_Collection $currentCollection
134
  $this->_applySortAndFilter($collection);
135
  $this->_addMassaction($block);
136
 
137
+ $block->setCollection($collection);
138
  return $this;
139
  }
140
 
210
  * @var Mage_Adminhtml_Block_Widget_Grid_Column $massactionColumn
211
  */
212
  $massactionColumn = $block->getColumn('massaction');
213
+ if ($massactionColumn) {
214
  $massactionColumn->setFilterIndex('main_table.entity_id');
215
  }
216
 
218
  * @var Mage_Adminhtml_Block_Widget_Grid_Column $statusColumn
219
  */
220
  $statusColumn = $block->getColumn('status');
221
+ if ($statusColumn) {
222
  $statusColumn->setFilterIndex('main_table.status');
223
  }
224
 
226
  * @var Mage_Adminhtml_Block_Widget_Grid_Column $createdAtColumn
227
  */
228
  $createdAtColumn = $block->getColumn('created_at');
229
+ if ($createdAtColumn) {
230
  $createdAtColumn->setFilterIndex('main_table.created_at');
231
  }
232
 
234
  * @var Mage_Adminhtml_Block_Widget_Grid_Column $baseGrandTotalColumn
235
  */
236
  $baseGrandTotalColumn = $block->getColumn('base_grand_total');
237
+ if ($baseGrandTotalColumn) {
238
  $baseGrandTotalColumn->setFilterIndex('main_table.base_grand_total');
239
  }
240
 
242
  * @var Mage_Adminhtml_Block_Widget_Grid_Column $grandTotalColumn
243
  */
244
  $grandTotalColumn = $block->getColumn('grand_total');
245
+ if ($grandTotalColumn) {
246
  $grandTotalColumn->setFilterIndex('main_table.grand_total');
247
  }
248
 
249
+ /**
250
+ * @var Mage_Adminhtml_Block_Widget_Grid_Column $storeIdColumn
251
+ */
252
+ $storeIdColumn = $block->getColumn('store_id');
253
+ if ($storeIdColumn) {
254
+ $storeIdColumn->setFilterIndex('main_table.store_id');
255
+ }
256
+
257
  return $this;
258
  }
259
 
485
 
486
  /**
487
  * If the filter condition is NL, filter out all orders not being shipped to the Netherlands. PakjeGemak,
488
+ * PakjeeGmak Express, evening delivery and pakketautomaat shipments are also shipped to the Netherlands so we
489
+ * need to explicitly filter those as well.
490
  */
491
  if ($filterCond == 'nl') {
492
  $collection->addFieldToFilter('country_id', $cond);
app/code/community/TIG/PostNL/Model/Adminhtml/Observer/ShipmentGrid.php CHANGED
@@ -129,13 +129,6 @@ class TIG_PostNL_Model_Adminhtml_Observer_ShipmentGrid extends Varien_Object
129
  */
130
  public function modifyGrid(Varien_Event_Observer $observer)
131
  {
132
- /**
133
- * check if the extension is active
134
- */
135
- if (!Mage::helper('postnl')->isEnabled()) {
136
- return $this;
137
- }
138
-
139
  /**
140
  * Checks if the current block is the one we want to edit.
141
  *
@@ -148,6 +141,13 @@ class TIG_PostNL_Model_Adminhtml_Observer_ShipmentGrid extends Varien_Object
148
  return $this;
149
  }
150
 
 
 
 
 
 
 
 
151
  /**
152
  * @var Mage_Adminhtml_Block_Sales_Shipment_Grid $block
153
  * @var Mage_Sales_Model_Resource_Order_Shipment_Collection $currentCollection
@@ -363,6 +363,7 @@ class TIG_PostNL_Model_Adminhtml_Observer_ShipmentGrid extends Varien_Object
363
  'align' => 'left',
364
  'index' => 'product_code',
365
  'type' => 'options',
 
366
  'column_css_class' => 'nobr',
367
  'options' => Mage::getModel('postnl_core/system_config_source_allProductOptions')
368
  ->getAvailableOptions(false, true, false, false, true, false),
@@ -521,8 +522,6 @@ class TIG_PostNL_Model_Adminhtml_Observer_ShipmentGrid extends Varien_Object
521
  ),
522
  $after
523
  );
524
-
525
- $after = 'shipping_phase';
526
  }
527
 
528
  $actionColumn = $block->getColumn('action');
@@ -982,8 +981,8 @@ class TIG_PostNL_Model_Adminhtml_Observer_ShipmentGrid extends Varien_Object
982
 
983
  /**
984
  * If the filter condition is NL, filter out all orders not being shipped to the Netherlands. PakjeGemak,
985
- * PakjeGmak Express, evening delivery and pakketautomaat shipments are also shipped to the Netherlands so we
986
- * need to explicitely filter those as well.
987
  */
988
  if ($filterCond == 'nl') {
989
  $collection->addFieldToFilter('country_id', $cond);
129
  */
130
  public function modifyGrid(Varien_Event_Observer $observer)
131
  {
 
 
 
 
 
 
 
132
  /**
133
  * Checks if the current block is the one we want to edit.
134
  *
141
  return $this;
142
  }
143
 
144
+ /**
145
+ * check if the extension is active
146
+ */
147
+ if (!Mage::helper('postnl')->isEnabled()) {
148
+ return $this;
149
+ }
150
+
151
  /**
152
  * @var Mage_Adminhtml_Block_Sales_Shipment_Grid $block
153
  * @var Mage_Sales_Model_Resource_Order_Shipment_Collection $currentCollection
363
  'align' => 'left',
364
  'index' => 'product_code',
365
  'type' => 'options',
366
+ 'filter_index' => 'postnl_shipment.product_code',
367
  'column_css_class' => 'nobr',
368
  'options' => Mage::getModel('postnl_core/system_config_source_allProductOptions')
369
  ->getAvailableOptions(false, true, false, false, true, false),
522
  ),
523
  $after
524
  );
 
 
525
  }
526
 
527
  $actionColumn = $block->getColumn('action');
981
 
982
  /**
983
  * If the filter condition is NL, filter out all orders not being shipped to the Netherlands. PakjeGemak,
984
+ * PakjeGemak Express, evening delivery and pakketautomaat shipments are also shipped to the Netherlands so we
985
+ * need to explicitly filter those as well.
986
  */
987
  if ($filterCond == 'nl') {
988
  $collection->addFieldToFilter('country_id', $cond);
app/code/community/TIG/PostNL/Model/Adminhtml/Observer/ShipmentView.php CHANGED
@@ -58,15 +58,6 @@ class TIG_PostNL_Model_Adminhtml_Observer_ShipmentView
58
  */
59
  public function addPrintLabelButton(Varien_Event_Observer $observer)
60
  {
61
- $helper = Mage::helper('postnl');
62
-
63
- /**
64
- * check if the extension is active
65
- */
66
- if (!$helper->isEnabled()) {
67
- return $this;
68
- }
69
-
70
  /**
71
  * Checks if the current block is the one we want to edit.
72
  *
@@ -82,6 +73,15 @@ class TIG_PostNL_Model_Adminhtml_Observer_ShipmentView
82
  return $this;
83
  }
84
 
 
 
 
 
 
 
 
 
 
85
  /**
86
  * Check if the current shipment was placed with PostNL
87
  */
58
  */
59
  public function addPrintLabelButton(Varien_Event_Observer $observer)
60
  {
 
 
 
 
 
 
 
 
 
61
  /**
62
  * Checks if the current block is the one we want to edit.
63
  *
73
  return $this;
74
  }
75
 
76
+ $helper = Mage::helper('postnl');
77
+
78
+ /**
79
+ * check if the extension is active
80
+ */
81
+ if (!$helper->isEnabled()) {
82
+ return $this;
83
+ }
84
+
85
  /**
86
  * Check if the current shipment was placed with PostNL
87
  */
app/code/community/TIG/PostNL/Model/Checkout/Cif.php CHANGED
@@ -319,7 +319,7 @@ class TIG_PostNL_Model_Checkout_Cif extends TIG_PostNL_Model_Core_Cif_Abstract
319
  }
320
 
321
  /**
322
- * Updates an order with CIF once a shipment has been confirmed in order to link the shipment to the PostNL CHeckout order
323
  *
324
  * @param TIG_PostNL_Model_Core_Order $postnlOrder
325
  * @param boolean $cancel
@@ -692,7 +692,7 @@ class TIG_PostNL_Model_Checkout_Cif extends TIG_PostNL_Model_Core_Cif_Abstract
692
  }
693
 
694
  /**
695
- * Builds the Restrictions soap object based on cofig settings
696
  *
697
  * @return array
698
  */
319
  }
320
 
321
  /**
322
+ * Updates an order with CIF once a shipment has been confirmed in order to link the shipment to the PostNL Checkout order
323
  *
324
  * @param TIG_PostNL_Model_Core_Order $postnlOrder
325
  * @param boolean $cancel
692
  }
693
 
694
  /**
695
+ * Builds the Restrictions soap object based on config settings
696
  *
697
  * @return array
698
  */
app/code/community/TIG/PostNL/Model/Checkout/Service.php CHANGED
@@ -355,7 +355,7 @@ class TIG_PostNL_Model_Checkout_Service extends Varien_Object
355
  Mage::register('postnl_payment_data', array('method' => $methodCode));
356
 
357
  /**
358
- * Remove any current payment associtaed with the quote and get a new one
359
  */
360
  $payment = $quote->removePayment()
361
  ->getPayment();
@@ -813,7 +813,7 @@ class TIG_PostNL_Model_Checkout_Service extends Varien_Object
813
  }
814
 
815
  /**
816
- * Add optional service location data to the shipping address. This ovverrides the previously set address data.
817
  * nto a varien object that can be used by Magento
818
  *
819
  * @param Mage_Sales_Model_Quote_Address $address
355
  Mage::register('postnl_payment_data', array('method' => $methodCode));
356
 
357
  /**
358
+ * Remove any current payment associated with the quote and get a new one
359
  */
360
  $payment = $quote->removePayment()
361
  ->getPayment();
813
  }
814
 
815
  /**
816
+ * Add optional service location data to the shipping address. This overrides the previously set address data.
817
  * nto a varien object that can be used by Magento
818
  *
819
  * @param Mage_Sales_Model_Quote_Address $address
app/code/community/TIG/PostNL/Model/Core/Cache.php ADDED
@@ -0,0 +1,301 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * ___________ __ __
4
+ * \__ ___/____ _/ |_ _____ | |
5
+ * | | / _ \\ __\\__ \ | |
6
+ * | | | |_| || | / __ \_| |__
7
+ * |____| \____/ |__| (____ /|____/
8
+ * \/
9
+ * ___ __ __
10
+ * | | ____ _/ |_ ____ _______ ____ ____ _/ |_
11
+ * | | / \\ __\_/ __ \\_ __ \ / \ _/ __ \\ __\
12
+ * | || | \| | \ ___/ | | \/| | \\ ___/ | |
13
+ * |___||___| /|__| \_____>|__| |___| / \_____>|__|
14
+ * \/ \/
15
+ * ________
16
+ * / _____/_______ ____ __ __ ______
17
+ * / \ ___\_ __ \ / _ \ | | \\____ \
18
+ * \ \_\ \| | \/| |_| || | /| |_| |
19
+ * \______ /|__| \____/ |____/ | __/
20
+ * \/ |__|
21
+ *
22
+ * NOTICE OF LICENSE
23
+ *
24
+ * This source file is subject to the Creative Commons License.
25
+ * It is available through the world-wide-web at this URL:
26
+ * http://creativecommons.org/licenses/by-nc-nd/3.0/nl/deed.en_US
27
+ * If you are unable to obtain it through the world-wide-web, please send an email
28
+ * to servicedesk@totalinternetgroup.nl so we can send you a copy immediately.
29
+ *
30
+ * DISCLAIMER
31
+ *
32
+ * Do not edit or add to this file if you wish to upgrade this module to newer
33
+ * versions in the future. If you wish to customize this module for your
34
+ * needs please contact servicedesk@totalinternetgroup.nl for more information.
35
+ *
36
+ * @copyright Copyright (c) 2013 Total Internet Group B.V. (http://www.totalinternetgroup.nl)
37
+ * @license http://creativecommons.org/licenses/by-nc-nd/3.0/nl/deed.en_US
38
+ *
39
+ * @method boolean hasPostnlCoreIsEnabled()
40
+ * @method boolean hasPostnlCoreIsConfigured()
41
+ * @method boolean hasPostnlCoreIsGlobalConfigured()
42
+ * @method boolean hasPostnlCoreCanUseStandard()
43
+ * @method boolean hasPostnlCoreCanUsePakjeGemak()
44
+ * @method boolean hasPostnlCoreCanUseEps()
45
+ * @method boolean hasPostnlCoreCanUseGlobalPack()
46
+ * @method boolean hasPostnlCoreCanUseEpsBeOnlyOption()
47
+ * @method boolean hasPostnlCheckoutIsEnabled()
48
+ * @method boolean hasPostnlCheckoutIsConfigured()
49
+ * @method boolean hasPostnlDeliveryOptionsIsEnabled()
50
+ * @method boolean hasPostnlDeliveryOptionsCanUsePakjeGemak()
51
+ * @method boolean hasPostnlDeliveryOptionsCanUsePakjeGemakExpress()
52
+ * @method boolean hasPostnlDeliveryOptionsCanUsePakketAutomaat()
53
+ * @method boolean hasPostnlDeliveryOptionsCanUseTimeframes()
54
+ * @method boolean hasPostnlDeliveryOptionsCanUseEveningTimeframes()
55
+ * @method boolean hasPostnlDeliveryOptionsCanUseSundaySorting()
56
+ * @method boolean hasPostnlMijnpakketIsActive()
57
+ *
58
+ * @method boolean getPostnlCoreIsEnabled()
59
+ * @method boolean getPostnlCoreIsConfigured()
60
+ * @method boolean getPostnlCoreIsGlobalConfigured()
61
+ * @method boolean getPostnlCoreCanUseStandard()
62
+ * @method boolean getPostnlCoreCanUsePakjeGemak()
63
+ * @method boolean getPostnlCoreCanUseEps()
64
+ * @method boolean getPostnlCoreCanUseGlobalPack()
65
+ * @method boolean getPostnlCoreCanUseEpsBeOnlyOption()
66
+ * @method boolean getPostnlCheckoutIsEnabled()
67
+ * @method boolean getPostnlCheckoutIsConfigured()
68
+ * @method boolean getPostnlDeliveryOptionsIsEnabled()
69
+ * @method boolean getPostnlDeliveryOptionsCanUsePakjeGemak()
70
+ * @method boolean getPostnlDeliveryOptionsCanUsePakjeGemakExpress()
71
+ * @method boolean getPostnlDeliveryOptionsCanUsePakketAutomaat()
72
+ * @method boolean getPostnlDeliveryOptionsCanUseTimeframes()
73
+ * @method boolean getPostnlDeliveryOptionsCanUseEveningTimeframes()
74
+ * @method boolean getPostnlDeliveryOptionsCanUseSundaySorting()
75
+ * @method boolean getPostnlMijnpakketIsActive()
76
+ *
77
+ * @method TIG_PostNL_Model_Core_Cache setPostnlCoreIsEnabled(boolean $value)
78
+ * @method TIG_PostNL_Model_Core_Cache setPostnlCoreIsConfigured(boolean $value)
79
+ * @method TIG_PostNL_Model_Core_Cache setPostnlCoreIsGlobalConfigured(boolean $value)
80
+ * @method TIG_PostNL_Model_Core_Cache setPostnlCoreCanUseStandard(boolean $value)
81
+ * @method TIG_PostNL_Model_Core_Cache setPostnlCoreCanUsePakjeGemak(boolean $value)
82
+ * @method TIG_PostNL_Model_Core_Cache setPostnlCoreCanUseEps(boolean $value)
83
+ * @method TIG_PostNL_Model_Core_Cache setPostnlCoreCanUseGlobalPack(boolean $value)
84
+ * @method TIG_PostNL_Model_Core_Cache setPostnlCoreCanUseEpsBeOnlyOption(boolean $value)
85
+ * @method TIG_PostNL_Model_Core_Cache setPostnlCheckoutIsEnabled(boolean $value)
86
+ * @method TIG_PostNL_Model_Core_Cache setPostnlCheckoutIsConfigured(boolean $value)
87
+ * @method TIG_PostNL_Model_Core_Cache setPostnlDeliveryOptionsIsEnabled(boolean $value)
88
+ * @method TIG_PostNL_Model_Core_Cache setPostnlDeliveryOptionsCanUsePakjeGemak(boolean $value)
89
+ * @method TIG_PostNL_Model_Core_Cache setPostnlDeliveryOptionsCanUsePakjeGemakExpress(boolean $value)
90
+ * @method TIG_PostNL_Model_Core_Cache setPostnlDeliveryOptionsCanUsePakketAutomaat(boolean $value)
91
+ * @method TIG_PostNL_Model_Core_Cache setPostnlDeliveryOptionsCanUseTimeframes(boolean $value)
92
+ * @method TIG_PostNL_Model_Core_Cache setPostnlDeliveryOptionsCanUseEveningTimeframes(boolean $value)
93
+ * @method TIG_PostNL_Model_Core_Cache setPostnlDeliveryOptionsCanUseSundaySorting(boolean $value)
94
+ * @method TIG_PostNL_Model_Core_Cache setPostnlMijnpakketIsActive(boolean $value)
95
+ */
96
+ class TIG_PostNL_Model_Core_Cache extends Varien_Object
97
+ {
98
+ /**
99
+ * PostNL cache tag.
100
+ */
101
+ const CACHE_TAG = 'postnl_config';
102
+
103
+ /**
104
+ * PostNl cache ID.
105
+ *
106
+ * @var null|string
107
+ */
108
+ protected $_cacheId = null;
109
+
110
+ /**
111
+ * Flag whether or not the cache may be used.
112
+ *
113
+ * @var null|boolean
114
+ */
115
+ protected $_canUseCache = null;
116
+
117
+ /**
118
+ * @param string $cacheId
119
+ *
120
+ * @return $this
121
+ */
122
+ public function setCacheId($cacheId)
123
+ {
124
+ $this->_cacheId = $cacheId;
125
+
126
+ return $this;
127
+ }
128
+
129
+ /**
130
+ * @return null|string
131
+ */
132
+ public function getCacheId()
133
+ {
134
+ return $this->_cacheId;
135
+ }
136
+
137
+ /**
138
+ * @return boolean
139
+ */
140
+ public function hasCacheId()
141
+ {
142
+ if ($this->_cacheId === null) {
143
+ return false;
144
+ }
145
+
146
+ return true;
147
+ }
148
+
149
+ /**
150
+ * @param bool|null $canUseCache
151
+ *
152
+ * @return $this
153
+ */
154
+ public function setCanUseCache($canUseCache)
155
+ {
156
+ $this->_canUseCache = $canUseCache;
157
+
158
+ return $this;
159
+ }
160
+
161
+ /**
162
+ * @return bool|null
163
+ */
164
+ public function getCanUseCache()
165
+ {
166
+ return $this->_canUseCache;
167
+ }
168
+
169
+ /**
170
+ * @return boolean
171
+ */
172
+ public function hasCanUseCache()
173
+ {
174
+ if ($this->_canUseCache === null) {
175
+ return false;
176
+ }
177
+
178
+ return true;
179
+ }
180
+
181
+ /**
182
+ * Constructor method. Initializes the cache if the cache has not yet been loaded.
183
+ *
184
+ * @return $this
185
+ */
186
+ protected function _construct()
187
+ {
188
+ if (!$this->hasData()) {
189
+ $this->init();
190
+ }
191
+
192
+ return $this;
193
+ }
194
+
195
+ /**
196
+ * Initialize the cache.
197
+ *
198
+ * @return $this
199
+ */
200
+ public function init()
201
+ {
202
+ if ($this->canUseCache()) {
203
+ $data = $this->loadCache();
204
+ $this->setData($data);
205
+ }
206
+
207
+ return $this;
208
+ }
209
+
210
+ /**
211
+ * Loading data cache.
212
+ *
213
+ * @return array|false
214
+ */
215
+ public function loadCache()
216
+ {
217
+ if (!$this->canUseCache()) {
218
+ return array();
219
+ }
220
+
221
+ $data = Mage::app()->loadCache($this->_getCacheId());
222
+ $data = unserialize($data);
223
+
224
+ return $data;
225
+ }
226
+
227
+ /**
228
+ * Save cache data.
229
+ *
230
+ * @return $this
231
+ */
232
+ public function saveCache()
233
+ {
234
+ if (!$this->canUseCache()) {
235
+ return $this;
236
+ }
237
+
238
+ Mage::app()->saveCache(serialize($this->getData()), $this->_getCacheId(), array(self::CACHE_TAG), null);
239
+ return $this;
240
+ }
241
+
242
+ /**
243
+ * Check if the cache may be used.
244
+ *
245
+ * @return bool
246
+ */
247
+ public function canUseCache()
248
+ {
249
+ if ($this->hasCanUseCache()) {
250
+ return $this->getCanUseCache();
251
+ }
252
+
253
+ $canUseCache = Mage::app()->useCache('postnl_config');
254
+
255
+ $this->setCanUseCache($canUseCache);
256
+ return $canUseCache;
257
+ }
258
+
259
+ /**
260
+ * Alias for cleanCache().
261
+ *
262
+ * @return $this
263
+ */
264
+ public function clean()
265
+ {
266
+ return $this->cleanCache();
267
+ }
268
+
269
+ /**
270
+ * Cleans this cache.
271
+ *
272
+ * @return $this
273
+ */
274
+ public function cleanCache()
275
+ {
276
+ if ($this->canUseCache()) {
277
+ Mage::app()->cleanCache(self::CACHE_TAG);
278
+
279
+ $this->unsetData();
280
+ }
281
+
282
+ return $this;
283
+ }
284
+
285
+ /**
286
+ * Get the current cache id.
287
+ *
288
+ * @return string
289
+ */
290
+ protected function _getCacheId()
291
+ {
292
+ if ($this->hasCacheId()) {
293
+ return $this->getCacheId();
294
+ }
295
+
296
+ $cacheId = 'postnl_' . Mage::app()->getStore()->getId();
297
+
298
+ $this->setCacheId($cacheId);
299
+ return $cacheId;
300
+ }
301
+ }
app/code/community/TIG/PostNL/Model/Core/Cif.php CHANGED
@@ -38,7 +38,7 @@
38
  *
39
  * Class containing all default methods used for CIF communication by this extension.
40
  *
41
- * If you wish to add new methods you can etxend this class or create a new class that extends
42
  * TIG_PostNL_Model_Core_Cif_Abstract.
43
  *
44
  * @method TIG_PostNL_Model_Core_Cif setStoreId(int $value)
38
  *
39
  * Class containing all default methods used for CIF communication by this extension.
40
  *
41
+ * If you wish to add new methods you can extend this class or create a new class that extends
42
  * TIG_PostNL_Model_Core_Cif_Abstract.
43
  *
44
  * @method TIG_PostNL_Model_Core_Cif setStoreId(int $value)
app/code/community/TIG/PostNL/Model/Core/Label.php CHANGED
@@ -234,23 +234,13 @@ class TIG_PostNL_Model_Core_Label extends Varien_Object
234
  $pdf->SetAuthor('PostNL');
235
  $pdf->SetCreator('PostNL');
236
 
237
- if (is_array($labels) && count($labels) > 1) {
238
- /**
239
- * Create a pdf containing multiple labels
240
- */
241
- $pdf = $this->_createMultiLabelPdf($pdf, $labels);
242
- } else {
243
- /**
244
- * Create a pdf containing a single label
245
- * If $labels is an array, get the current element. There should be only 1.
246
- */
247
- if (is_array($labels)) {
248
- $labels = current($labels);
249
- }
250
-
251
- $this->setLabelSize('A6'); //single Dutch labels always use A6
252
- $pdf = $this->_addPdfTemplate($pdf, $labels);
253
  }
 
 
 
 
254
 
255
  /**
256
  * Destroy the temporary labels as they are no longer needed
@@ -308,7 +298,7 @@ class TIG_PostNL_Model_Core_Label extends Varien_Object
308
  }
309
 
310
  /**
311
- * Adds a lebl to the pdf by storing it in a temporary pdf file and then adding it to the master pdf object
312
  *
313
  * @param TIG_PostNL_Fpdi $pdf
314
  * @param TIG_PostNL_Model_Core_Shipment_Label $label
234
  $pdf->SetAuthor('PostNL');
235
  $pdf->SetCreator('PostNL');
236
 
237
+ if (!is_array($labels)) {
238
+ $labels = array($labels);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
239
  }
240
+ /**
241
+ * Create a pdf containing multiple labels
242
+ */
243
+ $pdf = $this->_createMultiLabelPdf($pdf, $labels);
244
 
245
  /**
246
  * Destroy the temporary labels as they are no longer needed
298
  }
299
 
300
  /**
301
+ * Adds a label to the pdf by storing it in a temporary pdf file and then adding it to the master pdf object
302
  *
303
  * @param TIG_PostNL_Fpdi $pdf
304
  * @param TIG_PostNL_Model_Core_Shipment_Label $label
app/code/community/TIG/PostNL/Model/Core/Observer/Barcode.php CHANGED
@@ -121,9 +121,9 @@ class TIG_PostNL_Model_Core_Observer_Barcode
121
  $postnlShipment->save();
122
 
123
  /**
124
- * Barcode generation needs to be tried seperately. This functionality may throw a valid exception
125
  * in which case it needs to be tried again later without preventing the shipment from being
126
- * created. This may happen when CIF is overburdoned.
127
  */
128
  try {
129
  $postnlShipment->saveAdditionalShippingOptions()
121
  $postnlShipment->save();
122
 
123
  /**
124
+ * Barcode generation needs to be tried separately. This functionality may throw a valid exception
125
  * in which case it needs to be tried again later without preventing the shipment from being
126
+ * created. This may happen when CIF is overburdened.
127
  */
128
  try {
129
  $postnlShipment->saveAdditionalShippingOptions()
app/code/community/TIG/PostNL/Model/Core/Observer/Cache.php ADDED
@@ -0,0 +1,48 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * ___________ __ __
4
+ * \__ ___/____ _/ |_ _____ | |
5
+ * | | / _ \\ __\\__ \ | |
6
+ * | | | |_| || | / __ \_| |__
7
+ * |____| \____/ |__| (____ /|____/
8
+ * \/
9
+ * ___ __ __
10
+ * | | ____ _/ |_ ____ _______ ____ ____ _/ |_
11
+ * | | / \\ __\_/ __ \\_ __ \ / \ _/ __ \\ __\
12
+ * | || | \| | \ ___/ | | \/| | \\ ___/ | |
13
+ * |___||___| /|__| \_____>|__| |___| / \_____>|__|
14
+ * \/ \/
15
+ * ________
16
+ * / _____/_______ ____ __ __ ______
17
+ * / \ ___\_ __ \ / _ \ | | \\____ \
18
+ * \ \_\ \| | \/| |_| || | /| |_| |
19
+ * \______ /|__| \____/ |____/ | __/
20
+ * \/ |__|
21
+ *
22
+ * NOTICE OF LICENSE
23
+ *
24
+ * This source file is subject to the Creative Commons License.
25
+ * It is available through the world-wide-web at this URL:
26
+ * http://creativecommons.org/licenses/by-nc-nd/3.0/nl/deed.en_US
27
+ * If you are unable to obtain it through the world-wide-web, please send an email
28
+ * to servicedesk@totalinternetgroup.nl so we can send you a copy immediately.
29
+ *
30
+ * DISCLAIMER
31
+ *
32
+ * Do not edit or add to this file if you wish to upgrade this module to newer
33
+ * versions in the future. If you wish to customize this module for your
34
+ * needs please contact servicedesk@totalinternetgroup.nl for more information.
35
+ *
36
+ * @copyright Copyright (c) 2014 Total Internet Group B.V. (http://www.totalinternetgroup.nl)
37
+ * @license http://creativecommons.org/licenses/by-nc-nd/3.0/nl/deed.en_US
38
+ */
39
+ class TIG_PostNL_Model_Core_Observer_Cache
40
+ {
41
+ public function cleanCache()
42
+ {
43
+ $cache = Mage::getSingleton('postnl_core/cache');
44
+ $cache->cleanCache();
45
+
46
+ return $this;
47
+ }
48
+ }
app/code/community/TIG/PostNL/Model/Core/Observer/Cron.php CHANGED
@@ -59,8 +59,8 @@ class TIG_PostNL_Model_Core_Observer_Cron
59
  * By default the PostNL module creates temporary label files in order to merge them into
60
  * a single shipping label. These files are then destroyed. However, sometimes these files
61
  * may survive the script if the script has encountered an error. This method will make
62
- * sure these files will not survive indefinitiely, which may lead to the file system
63
- * being overburdoned or the server running out of harddrive space.
64
  *
65
  * @return TIG_PostNL_Model_Core_Observer_Cron
66
  *
@@ -100,7 +100,7 @@ class TIG_PostNL_Model_Core_Observer_Cron
100
  }
101
 
102
  /**
103
- * Get the temporary label filename constant. This is used to construct the fgilename together with
104
  * an md5 hash of the content and a timestamp.
105
  *
106
  * @var $labelModel TIG_PostNL_Model_Core_Label
@@ -402,7 +402,7 @@ class TIG_PostNL_Model_Core_Observer_Cron
402
  }
403
 
404
  /**
405
- * Parses an TIG_PostNL_Model_Core_Cif_Exception exception in order to process cpecific error codes
406
  *
407
  * @param TIG_PostNL_Model_Core_Cif_Exception $e
408
  * @param TIG_PostNL_Model_Core_Shipment $postnlShipment
59
  * By default the PostNL module creates temporary label files in order to merge them into
60
  * a single shipping label. These files are then destroyed. However, sometimes these files
61
  * may survive the script if the script has encountered an error. This method will make
62
+ * sure these files will not survive indefinitely, which may lead to the file system
63
+ * being overburdened or the server running out of harddrive space.
64
  *
65
  * @return TIG_PostNL_Model_Core_Observer_Cron
66
  *
100
  }
101
 
102
  /**
103
+ * Get the temporary label filename constant. This is used to construct the filename together with
104
  * an md5 hash of the content and a timestamp.
105
  *
106
  * @var $labelModel TIG_PostNL_Model_Core_Label
402
  }
403
 
404
  /**
405
+ * Parses an TIG_PostNL_Model_Core_Cif_Exception exception in order to process specific error codes
406
  *
407
  * @param TIG_PostNL_Model_Core_Cif_Exception $e
408
  * @param TIG_PostNL_Model_Core_Shipment $postnlShipment
app/code/community/TIG/PostNL/Model/Core/Shipment.php CHANGED
@@ -179,9 +179,12 @@ class TIG_PostNL_Model_Core_Shipment extends Mage_Core_Model_Abstract
179
  const XPATH_SEND_TRACK_AND_TRACE_EMAIL = 'postnl/cif_labels_and_confirming/send_track_and_trace_email';
180
 
181
  /**
182
- * Xpath to track and trace email template setting.
183
  */
184
  const XPATH_TRACK_AND_TRACE_EMAIL_TEMPLATE = 'postnl/cif_labels_and_confirming/track_and_trace_email_template';
 
 
 
185
 
186
  /**
187
  * Xpath to maximum allowed parcel count settings.
@@ -615,7 +618,7 @@ class TIG_PostNL_Model_Core_Shipment extends Mage_Core_Model_Abstract
615
  }
616
 
617
  /**
618
- * Gets the shipment's shipment type for intrnational shipments. If no shipment type is defined, use the default
619
  * value. This in turn defaults to 'Commercial Goods' if none is specified.
620
  *
621
  * @return string|null
@@ -1465,7 +1468,7 @@ class TIG_PostNL_Model_Core_Shipment extends Mage_Core_Model_Abstract
1465
  /**
1466
  * Checks if the current shipment is eligible for a shipping status update.
1467
  * Unconfirmed shipments, shipments whose labels are not yet printed or shipments that are already delivered are
1468
- * inelligible.
1469
  *
1470
  * @return boolean
1471
  */
@@ -1887,7 +1890,7 @@ class TIG_PostNL_Model_Core_Shipment extends Mage_Core_Model_Abstract
1887
  }
1888
 
1889
  /**
1890
- * onfirm each parcel in the shipment seperately
1891
  */
1892
  for ($i = 0; $i < $parcelCount; $i++) {
1893
  $this->_confirm($i);
@@ -1947,7 +1950,7 @@ class TIG_PostNL_Model_Core_Shipment extends Mage_Core_Model_Abstract
1947
 
1948
  /**
1949
  * If the ConfirmingResponseShipment is an array, it may indicate multiple shipments were confirmed. We need to
1950
- * check the first shipment's barcode to see if it matches the main bartcode.
1951
  */
1952
  if (is_array($responseShipment)) {
1953
  $mainResponseShipment = reset($responseShipment);
@@ -2243,29 +2246,14 @@ class TIG_PostNL_Model_Core_Shipment extends Mage_Core_Model_Abstract
2243
 
2244
  $template = Mage::getStoreConfig(self::XPATH_TRACK_AND_TRACE_EMAIL_TEMPLATE, $storeId);
2245
 
2246
- /**
2247
- * @var Mage_Core_Model_Email_Template $mailTemplate
2248
- */
2249
- $mailTemplate = Mage::getModel('core/email_template');
2250
-
2251
- $shippingAddress = $this->getShippingAddress();
2252
- $recipient = array(
2253
- 'email' => $this->getShipment()->getOrder()->getCustomerEmail(),
2254
- 'name' => $shippingAddress->getName(),
2255
- );
2256
-
2257
- $mailTemplate->setDesignConfig(
2258
- array(
2259
- 'area' => 'frontend',
2260
- 'store' => $storeId
2261
- )
2262
- );
2263
 
2264
  /**
2265
  * @var Mage_Sales_Model_Order $order
2266
  */
2267
- $shipment = $this->getShipment();
2268
- $order = $shipment->getOrder();
 
 
2269
  /** @noinspection PhpUndefinedMethodInspection */
2270
  $templateVariables = array(
2271
  'postnlshipment' => $this,
@@ -2277,22 +2265,43 @@ class TIG_PostNL_Model_Core_Shipment extends Mage_Core_Model_Abstract
2277
  'quote' => $order->getQuote(),
2278
  );
2279
 
2280
- /**
2281
- * @var $orderModel Mage_Sales_Model_Order
2282
- */
2283
- /** @noinspection PhpParamsInspection */
2284
- $orderModel = Mage::getConfig()->getModelClassName('sales/order');
2285
- $success = $mailTemplate->sendTransactional(
2286
- $template,
2287
- Mage::getStoreConfig($orderModel::XML_PATH_EMAIL_IDENTITY, $storeId),
2288
- $recipient['email'],
2289
- $recipient['name'],
2290
- $templateVariables
2291
- );
 
 
 
2292
 
2293
- if ($success === false) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2294
  throw new TIG_PostNL_Exception(
2295
- Mage::helper('postnl')->__(
2296
  'Unable to send track and trace email for shipment #',
2297
  $this->getShipmentId()
2298
  ),
@@ -2303,9 +2312,11 @@ class TIG_PostNL_Model_Core_Shipment extends Mage_Core_Model_Abstract
2303
  /**
2304
  * Set the 'email sent' flag to true for this shipment.
2305
  */
2306
- $this->getShipment()
2307
- ->setEmailSent(true)
2308
- ->save();
 
 
2309
 
2310
  return $this;
2311
  }
@@ -2516,7 +2527,7 @@ class TIG_PostNL_Model_Core_Shipment extends Mage_Core_Model_Abstract
2516
  ksort($sortedHistory);
2517
 
2518
  /**
2519
- * Return only the values (the statusses) of the array
2520
  */
2521
  return array_values($sortedHistory);
2522
  }
@@ -2737,7 +2748,7 @@ class TIG_PostNL_Model_Core_Shipment extends Mage_Core_Model_Abstract
2737
  }
2738
 
2739
  if ($deleteTracks) {
2740
- $this->deleteShipmentTracks() //delete ale addociated tracks
2741
  ->setTrackAndTraceEmailSent(false); //make sure that a new T&T e-mail is sent
2742
  }
2743
 
@@ -2745,7 +2756,7 @@ class TIG_PostNL_Model_Core_Shipment extends Mage_Core_Model_Abstract
2745
  }
2746
 
2747
  /**
2748
- * Delete alle tracks for this shipment.
2749
  *
2750
  * @return $this
2751
  */
@@ -2858,7 +2869,7 @@ class TIG_PostNL_Model_Core_Shipment extends Mage_Core_Model_Abstract
2858
  }
2859
 
2860
  /**
2861
- * Set confrirmed at.
2862
  */
2863
  if ($this->getConfirmedStatus() == self::CONFIRM_STATUS_CONFIRMED
2864
  && $this->getConfirmedAt() === null
179
  const XPATH_SEND_TRACK_AND_TRACE_EMAIL = 'postnl/cif_labels_and_confirming/send_track_and_trace_email';
180
 
181
  /**
182
+ * Xpath to track and trace email settings.
183
  */
184
  const XPATH_TRACK_AND_TRACE_EMAIL_TEMPLATE = 'postnl/cif_labels_and_confirming/track_and_trace_email_template';
185
+ const XPATH_EMAIL_COPY = 'postnl/cif_labels_and_confirming/send_copy';
186
+ const XPATH_EMAIL_COPY_TO = 'postnl/cif_labels_and_confirming/copy_to';
187
+ const XPATH_EMAIL_COPY_METHOD = 'postnl/cif_labels_and_confirming/copy_method';
188
 
189
  /**
190
  * Xpath to maximum allowed parcel count settings.
618
  }
619
 
620
  /**
621
+ * Gets the shipment's shipment type for international shipments. If no shipment type is defined, use the default
622
  * value. This in turn defaults to 'Commercial Goods' if none is specified.
623
  *
624
  * @return string|null
1468
  /**
1469
  * Checks if the current shipment is eligible for a shipping status update.
1470
  * Unconfirmed shipments, shipments whose labels are not yet printed or shipments that are already delivered are
1471
+ * ineligible.
1472
  *
1473
  * @return boolean
1474
  */
1890
  }
1891
 
1892
  /**
1893
+ * Confirm each parcel in the shipment separately
1894
  */
1895
  for ($i = 0; $i < $parcelCount; $i++) {
1896
  $this->_confirm($i);
1950
 
1951
  /**
1952
  * If the ConfirmingResponseShipment is an array, it may indicate multiple shipments were confirmed. We need to
1953
+ * check the first shipment's barcode to see if it matches the main barcode.
1954
  */
1955
  if (is_array($responseShipment)) {
1956
  $mainResponseShipment = reset($responseShipment);
2246
 
2247
  $template = Mage::getStoreConfig(self::XPATH_TRACK_AND_TRACE_EMAIL_TEMPLATE, $storeId);
2248
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2249
 
2250
  /**
2251
  * @var Mage_Sales_Model_Order $order
2252
  */
2253
+ $shippingAddress = $this->getShippingAddress();
2254
+ $shipment = $this->getShipment();
2255
+ $order = $shipment->getOrder();
2256
+
2257
  /** @noinspection PhpUndefinedMethodInspection */
2258
  $templateVariables = array(
2259
  'postnlshipment' => $this,
2265
  'quote' => $order->getQuote(),
2266
  );
2267
 
2268
+ // Get the destination email addresses to send copies to
2269
+ $copy = Mage::getStoreConfigFlag(self::XPATH_EMAIL_COPY, $storeId);
2270
+ $copyTo = explode(',', Mage::getStoreConfig(self::XPATH_EMAIL_COPY_TO, $storeId));
2271
+ $copyMethod = Mage::getStoreConfig(self::XPATH_EMAIL_COPY_METHOD, $storeId);
2272
+
2273
+ try {
2274
+ $mailer = Mage::getModel('core/email_template_mailer');
2275
+ $emailInfo = Mage::getModel('core/email_info');
2276
+ $emailInfo->addTo($this->getShipment()->getOrder()->getCustomerEmail(), $shippingAddress->getName());
2277
+
2278
+ if ($copy && !empty($copyTo) && $copyMethod == 'bcc') {
2279
+ foreach ($copyTo as $email) {
2280
+ $emailInfo->addBcc($email);
2281
+ }
2282
+ }
2283
 
2284
+ $mailer->addEmailInfo($emailInfo);
2285
+
2286
+ if ($copy && !empty($copyTo) && $copyMethod == 'copy') {
2287
+ foreach ($copyTo as $email) {
2288
+ $emailInfo = Mage::getModel('core/email_info');
2289
+ $emailInfo->addTo($email);
2290
+ $mailer->addEmailInfo($emailInfo);
2291
+ }
2292
+ }
2293
+
2294
+ // Set all required params and send emails.
2295
+ $mailer->setSender(Mage::getStoreConfig($order::XML_PATH_EMAIL_IDENTITY, $storeId));
2296
+ $mailer->setStoreId($storeId);
2297
+ $mailer->setTemplateId($template);
2298
+ $mailer->setTemplateParams($templateVariables);
2299
+ $mailer->send();
2300
+ } catch (Exception $e) {
2301
+ $helper = Mage::helper('postnl');
2302
+ $helper->logException($e);
2303
  throw new TIG_PostNL_Exception(
2304
+ $helper->__(
2305
  'Unable to send track and trace email for shipment #',
2306
  $this->getShipmentId()
2307
  ),
2312
  /**
2313
  * Set the 'email sent' flag to true for this shipment.
2314
  */
2315
+ if (!$this->getShipment()->getEmailSent()) {
2316
+ $this->getShipment()
2317
+ ->setEmailSent(true)
2318
+ ->save();
2319
+ }
2320
 
2321
  return $this;
2322
  }
2527
  ksort($sortedHistory);
2528
 
2529
  /**
2530
+ * Return only the values (the statuses) of the array
2531
  */
2532
  return array_values($sortedHistory);
2533
  }
2748
  }
2749
 
2750
  if ($deleteTracks) {
2751
+ $this->deleteShipmentTracks() //delete ale associated tracks
2752
  ->setTrackAndTraceEmailSent(false); //make sure that a new T&T e-mail is sent
2753
  }
2754
 
2756
  }
2757
 
2758
  /**
2759
+ * Delete all tracks for this shipment.
2760
  *
2761
  * @return $this
2762
  */
2869
  }
2870
 
2871
  /**
2872
+ * Set confirmed at.
2873
  */
2874
  if ($this->getConfirmedStatus() == self::CONFIRM_STATUS_CONFIRMED
2875
  && $this->getConfirmedAt() === null
app/code/community/TIG/PostNL/Model/Core/System/Config/Source/StreetField.php CHANGED
@@ -36,7 +36,6 @@
36
  * @copyright Copyright (c) 2013 Total Internet Group B.V. (http://www.totalinternetgroup.nl)
37
  * @license http://creativecommons.org/licenses/by-nc-nd/3.0/nl/deed.en_US
38
  */
39
-
40
  class TIG_PostNL_Model_Core_System_Config_Source_StreetField
41
  {
42
  /**
@@ -92,7 +91,17 @@ class TIG_PostNL_Model_Core_System_Config_Source_StreetField
92
  $website = Mage::getModel('core/website')->load($request->getParam('website'), 'code');
93
  $lineCount = $website->getConfig(self::XML_PATH_COMMUNITY_STREET_LINES, $website->getId());
94
  } else {
95
- $lineCount = Mage::getStoreConfig(self::XML_PATH_COMMUNITY_STREET_LINES, Mage_Core_Model_App::ADMIN_STORE_ID);
 
 
 
 
 
 
 
 
 
 
96
  }
97
 
98
  /**
36
  * @copyright Copyright (c) 2013 Total Internet Group B.V. (http://www.totalinternetgroup.nl)
37
  * @license http://creativecommons.org/licenses/by-nc-nd/3.0/nl/deed.en_US
38
  */
 
39
  class TIG_PostNL_Model_Core_System_Config_Source_StreetField
40
  {
41
  /**
91
  $website = Mage::getModel('core/website')->load($request->getParam('website'), 'code');
92
  $lineCount = $website->getConfig(self::XML_PATH_COMMUNITY_STREET_LINES, $website->getId());
93
  } else {
94
+ $lineCount = Mage::getStoreConfig(
95
+ self::XML_PATH_COMMUNITY_STREET_LINES,
96
+ Mage_Core_Model_App::ADMIN_STORE_ID
97
+ );
98
+ }
99
+
100
+ /**
101
+ * It's possible to leave the streetfield empty in community. In that case, the default value of 2 will be used.
102
+ */
103
+ if (!$lineCount) {
104
+ $lineCount = 2;
105
  }
106
 
107
  /**
app/code/community/TIG/PostNL/Model/DeliveryOptions/Observer/ShippingMethodAvailable.php CHANGED
@@ -69,7 +69,7 @@ class TIG_PostNL_Model_DeliveryOptions_Observer_ShippingMethodAvailable extends
69
  * Check if delivery options are available for the current quote.
70
  */
71
  $quote = Mage::getSingleton('checkout/session')->getQuote();
72
- $canUseDeliveryOptions = Mage::helper('postnl/deliveryOptions')->canUseDeliveryOptions($quote, false);
73
 
74
  $this->setCanUseDeliveryOptions($canUseDeliveryOptions);
75
  return $this->_canUseDeliveryOptions;
69
  * Check if delivery options are available for the current quote.
70
  */
71
  $quote = Mage::getSingleton('checkout/session')->getQuote();
72
+ $canUseDeliveryOptions = Mage::helper('postnl/deliveryOptions')->canUseDeliveryOptions($quote);
73
 
74
  $this->setCanUseDeliveryOptions($canUseDeliveryOptions);
75
  return $this->_canUseDeliveryOptions;
app/code/community/TIG/PostNL/Model/DeliveryOptions/Observer/UpdatePostnlOrder.php CHANGED
@@ -105,6 +105,8 @@ class TIG_PostNL_Model_DeliveryOptions_Observer_UpdatePostnlOrder
105
  }
106
 
107
  /**
 
 
108
  * @param Mage_Sales_Model_Order $order
109
  *
110
  * @return $this
@@ -146,9 +148,7 @@ class TIG_PostNL_Model_DeliveryOptions_Observer_UpdatePostnlOrder
146
  ->save();
147
 
148
  /**
149
- * This is required for some PSP extensions which will not save the PakjeGemak address otherwise. We are still
150
- * investigating why exactly this is required. The entire address collection is supposed to be saved when the
151
- * order is saved...
152
  *
153
  * @since v1.2.1
154
  */
105
  }
106
 
107
  /**
108
+ * If a PakjeGemak address was added to the quote, this method will copy it to the order.
109
+ *
110
  * @param Mage_Sales_Model_Order $order
111
  *
112
  * @return $this
148
  ->save();
149
 
150
  /**
151
+ * This is required for some PSP extensions which will not save the PakjeGemak address otherwise.
 
 
152
  *
153
  * @since v1.2.1
154
  */
app/code/community/TIG/PostNL/Model/ExtensionControl/Observer/Cron.php CHANGED
@@ -118,7 +118,7 @@ class TIG_PostNL_Model_ExtensionControl_Observer_Cron
118
  */
119
  if ($feedXml && $feedXml->channel && $feedXml->channel->item) {
120
  $items = (array) $feedXml->channel;
121
- $items = array_reverse($items['item']);
122
 
123
  foreach ($items as $item) {
124
  $severity = (int) $item->severity;
118
  */
119
  if ($feedXml && $feedXml->channel && $feedXml->channel->item) {
120
  $items = (array) $feedXml->channel;
121
+ $items = array_reverse((array) $items['item']);
122
 
123
  foreach ($items as $item) {
124
  $severity = (int) $item->severity;
app/code/community/TIG/PostNL/Model/ExtensionControl/Webservices.php CHANGED
@@ -219,7 +219,7 @@ class TIG_PostNL_Model_ExtensionControl_Webservices extends TIG_PostNL_Model_Ext
219
  $result = $this->call('updateStatistic', $soapParams);
220
 
221
  /**
222
- * Check if the request was succesfull
223
  */
224
  if (!is_array($result)
225
  || !isset($result['status'])
@@ -232,7 +232,7 @@ class TIG_PostNL_Model_ExtensionControl_Webservices extends TIG_PostNL_Model_Ext
232
  }
233
 
234
  /**
235
- * If a succesfull update has taken place we can confirm that the extension has been activated
236
  */
237
  $isActivated = Mage::getStoreConfig(self::XML_PATH_IS_ACTIVATED, Mage_Core_Model_App::ADMIN_STORE_ID);
238
  if (!$isActivated || $isActivated == '1') {
@@ -243,7 +243,7 @@ class TIG_PostNL_Model_ExtensionControl_Webservices extends TIG_PostNL_Model_Ext
243
  }
244
 
245
  /**
246
- * Gets information about the Magento vrsion and edition as well as the version of the currently installed PostNL extension.
247
  *
248
  * @return array
249
  */
@@ -329,7 +329,7 @@ class TIG_PostNL_Model_ExtensionControl_Webservices extends TIG_PostNL_Model_Ext
329
  }
330
 
331
  /**
332
- * Get thje hostname of the admin area to use in the module activation procedure or the hostname of a specified website to
333
  * use with the updateStatistics method
334
  *
335
  * @param Mage_Core_Model_Website $website
219
  $result = $this->call('updateStatistic', $soapParams);
220
 
221
  /**
222
+ * Check if the request was successful
223
  */
224
  if (!is_array($result)
225
  || !isset($result['status'])
232
  }
233
 
234
  /**
235
+ * If a successful update has taken place we can confirm that the extension has been activated
236
  */
237
  $isActivated = Mage::getStoreConfig(self::XML_PATH_IS_ACTIVATED, Mage_Core_Model_App::ADMIN_STORE_ID);
238
  if (!$isActivated || $isActivated == '1') {
243
  }
244
 
245
  /**
246
+ * Gets information about the Magento version and edition as well as the version of the currently installed PostNL extension.
247
  *
248
  * @return array
249
  */
329
  }
330
 
331
  /**
332
+ * Get the hostname of the admin area to use in the module activation procedure or the hostname of a specified website to
333
  * use with the updateStatistics method
334
  *
335
  * @param Mage_Core_Model_Website $website
app/code/community/TIG/PostNL/Model/Mijnpakket/Observer/Onepage.php CHANGED
@@ -48,6 +48,11 @@ class TIG_PostNL_Model_Mijnpakket_Observer_Onepage extends Varien_Object
48
  */
49
  const SUCCESS_BLOCK_NAME = 'checkout/onepage_success';
50
 
 
 
 
 
 
51
  /**
52
  * The new template.
53
  */
@@ -83,10 +88,6 @@ class TIG_PostNL_Model_Mijnpakket_Observer_Onepage extends Varien_Object
83
  */
84
  public function addAccountNotification(Varien_Event_Observer $observer)
85
  {
86
- if (!Mage::helper('postnl/deliveryOptions')->canUseDeliveryOptions()) {
87
- return $this;
88
- }
89
-
90
  /**
91
  * Checks if the current block is the one we want to edit.
92
  *
@@ -101,6 +102,17 @@ class TIG_PostNL_Model_Mijnpakket_Observer_Onepage extends Varien_Object
101
  return $this;
102
  }
103
 
 
 
 
 
 
 
 
 
 
 
 
104
  /**
105
  * @var Mage_Checkout_Block_Onepage_Success $block
106
  */
48
  */
49
  const SUCCESS_BLOCK_NAME = 'checkout/onepage_success';
50
 
51
+ /**
52
+ * Xpath to the MijnPakket notification setting.
53
+ */
54
+ const XPATH_MIJNPAKKET_NOTIFICATION = 'postnl/delivery_options/mijnpakket_notification';
55
+
56
  /**
57
  * The new template.
58
  */
88
  */
89
  public function addAccountNotification(Varien_Event_Observer $observer)
90
  {
 
 
 
 
91
  /**
92
  * Checks if the current block is the one we want to edit.
93
  *
102
  return $this;
103
  }
104
 
105
+ if (!Mage::helper('postnl/deliveryOptions')->canUseDeliveryOptions()) {
106
+ return $this;
107
+ }
108
+
109
+ $storeId = Mage::app()->getStore()->getId();
110
+ $canShowNotification = Mage::getStoreConfigFlag(self::XPATH_MIJNPAKKET_NOTIFICATION, $storeId);
111
+
112
+ if (!$canShowNotification) {
113
+ return $this;
114
+ }
115
+
116
  /**
117
  * @var Mage_Checkout_Block_Onepage_Success $block
118
  */
app/code/community/TIG/PostNL/Model/Parcelware/Export.php CHANGED
@@ -65,7 +65,7 @@ class TIG_PostNL_Model_Parcelware_Export extends TIG_PostNL_Model_Core_Cif
65
  }
66
 
67
  /**
68
- * Prepare a transaction save object. We're going to edit all the postbl shipments that we're going to export,
69
  * however we want all of them to be saved at the same time AFTER the export has been generated.
70
  */
71
  $transactionSave = Mage::getModel('core/resource_transaction');
@@ -205,8 +205,8 @@ class TIG_PostNL_Model_Parcelware_Export extends TIG_PostNL_Model_Core_Cif
205
  $transactionSave->addObject($postnlShipment);
206
 
207
  /**
208
- * If this is a multi-colli shipment we need to treat each parcel as a seperate shipment and therefore, as a
209
- * seperate row in the csv export file.
210
  */
211
  $parcelCount = $postnlShipment->getParcelCount();
212
  if ($parcelCount > 1) {
65
  }
66
 
67
  /**
68
+ * Prepare a transaction save object. We're going to edit all the postnl shipments that we're going to export,
69
  * however we want all of them to be saved at the same time AFTER the export has been generated.
70
  */
71
  $transactionSave = Mage::getModel('core/resource_transaction');
205
  $transactionSave->addObject($postnlShipment);
206
 
207
  /**
208
+ * If this is a multi-colli shipment we need to treat each parcel as a separate shipment and therefore, as a
209
+ * separate row in the csv export file.
210
  */
211
  $parcelCount = $postnlShipment->getParcelCount();
212
  if ($parcelCount > 1) {
app/code/community/TIG/PostNL/Model/Resource/Setup.php CHANGED
@@ -73,7 +73,7 @@ class TIG_PostNL_Model_Resource_Setup extends Mage_Eav_Model_Entity_Setup
73
  const XPATH_SUPPORTED_PRODUCT_OPTIONS = 'postnl/cif_product_options/supported_product_options';
74
 
75
  /**
76
- * callAfterApplyAllUpdates flag. Causes applyAFterUpdates() to be called.
77
  *
78
  * @var boolean
79
  */
@@ -389,7 +389,7 @@ class TIG_PostNL_Model_Resource_Setup extends Mage_Eav_Model_Entity_Setup
389
  }
390
 
391
  /**
392
- * Makes sure the PostNL support tab is expanded the first time an adin visits the PostNL system/config/edit page.
393
  *
394
  * @return $this
395
  */
73
  const XPATH_SUPPORTED_PRODUCT_OPTIONS = 'postnl/cif_product_options/supported_product_options';
74
 
75
  /**
76
+ * callAfterApplyAllUpdates flag. Causes applyAfterUpdates() to be called.
77
  *
78
  * @var boolean
79
  */
389
  }
390
 
391
  /**
392
+ * Makes sure the PostNL support tab is expanded the first time an admin visits the PostNL system/config/edit page.
393
  *
394
  * @return $this
395
  */
app/code/community/TIG/PostNL/controllers/Adminhtml/ConfigController.php CHANGED
@@ -90,13 +90,13 @@ class TIG_PostNL_Adminhtml_ConfigController extends Mage_Adminhtml_Controller_Ac
90
  }
91
 
92
  /**
93
- * Attempt to generate a barcode to test the account settings. This will result in an exception if the settings are
94
- * invalid.
95
  */
96
  try {
97
  /**
98
- * If the password field has not been edited since the last time it was saved, it will contain 6 asteriscs for security
99
- * reasons. In that case, we need to read and decrypt the password from the database.
100
  */
101
  if ($data['password'] == '******') {
102
  $data['password'] = $this->_getPassword(false);
@@ -142,7 +142,8 @@ class TIG_PostNL_Adminhtml_ConfigController extends Mage_Adminhtml_Controller_Ac
142
  }
143
 
144
  /**
145
- * Checks each field to see if it has used the 'use default checkbox'. If so, get the default value from the database.
 
146
  *
147
  * @param array $data
148
  *
90
  }
91
 
92
  /**
93
+ * Attempt to generate a barcode to test the account settings. This will result in an exception if the settings
94
+ * are invalid.
95
  */
96
  try {
97
  /**
98
+ * If the password field has not been edited since the last time it was saved, it will contain 6 asterisks
99
+ * for security reasons. In that case, we need to read and decrypt the password from the database.
100
  */
101
  if ($data['password'] == '******') {
102
  $data['password'] = $this->_getPassword(false);
142
  }
143
 
144
  /**
145
+ * Checks each field to see if it has used the 'use default checkbox'. If so, get the default value from the
146
+ * database.
147
  *
148
  * @param array $data
149
  *
app/code/community/TIG/PostNL/controllers/CheckoutController.php CHANGED
@@ -536,7 +536,7 @@ class TIG_PostNL_CheckoutController extends Mage_Core_Controller_Front_Action
536
  }
537
 
538
  /**
539
- * If the customer has checked the subscrive to newsletter checkbox, subscribe him to the newsletter
540
  */
541
  if ($code == 'NEWS') {
542
  $customerEmail = $order->getCustomerEmail();
536
  }
537
 
538
  /**
539
+ * If the customer has checked the subscribe to newsletter checkbox, subscribe him to the newsletter
540
  */
541
  if ($code == 'NEWS') {
542
  $customerEmail = $order->getCustomerEmail();
app/code/community/TIG/PostNL/controllers/DeliveryOptionsController.php CHANGED
@@ -557,7 +557,11 @@ class TIG_PostNL_DeliveryOptionsController extends Mage_Core_Controller_Front_Ac
557
  $helper = Mage::helper('postnl/deliveryOptions');
558
 
559
  $quote = Mage::getSingleton('checkout/session')->getQuote();
560
- $canUseDeliveryOptions = $helper->canUseDeliveryOptions($quote);
 
 
 
 
561
 
562
  $this->setCanUseDeliveryOptions($canUseDeliveryOptions);
563
  return $canUseDeliveryOptions;
557
  $helper = Mage::helper('postnl/deliveryOptions');
558
 
559
  $quote = Mage::getSingleton('checkout/session')->getQuote();
560
+
561
+ $canUseDeliveryOptions = false;
562
+ if ($helper->canUseDeliveryOptions($quote) && $helper->canUseDeliveryOptionsForCountry($quote)) {
563
+ $canUseDeliveryOptions = true;
564
+ }
565
 
566
  $this->setCanUseDeliveryOptions($canUseDeliveryOptions);
567
  return $canUseDeliveryOptions;
app/code/community/TIG/PostNL/etc/config.xml CHANGED
@@ -41,7 +41,7 @@
41
  <config>
42
  <modules>
43
  <TIG_PostNL>
44
- <version>1.2.1</version>
45
  </TIG_PostNL>
46
  </modules>
47
 
@@ -204,6 +204,15 @@
204
  </postnl_cif_labels_and_confirming_track_and_trace_email_template>
205
  </email>
206
  </template>
 
 
 
 
 
 
 
 
 
207
  </global>
208
 
209
  <admin>
@@ -266,11 +275,32 @@
266
  <observers>
267
  <!-- Admin logging -->
268
  <postnl_enterprise_logging>
 
269
  <class>postnl/admin_logging_observer</class>
270
  <method>controllerPostdispatch</method>
271
  </postnl_enterprise_logging>
272
  </observers>
273
  </controller_action_postdispatch_postnl>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
274
  </events>
275
  <layout>
276
  <updates>
@@ -501,7 +531,10 @@
501
  <shipping_grid_massaction_default>postnl_print_labels_and_confirm</shipping_grid_massaction_default> <!-- 'Print labels and confirm shipment' massaction -->
502
  <send_track_and_trace_email>1</send_track_and_trace_email> <!-- automatically send a track & trace email to the customer -->
503
  <track_and_trace_email_template>postnl_cif_labels_and_confirming_track_and_trace_email_template</track_and_trace_email_template> <!-- Default template from locale -->
504
- </cif_labels_and_confirming>
 
 
 
505
  <parcelware_export>
506
  <active>0</active> <!-- Inactive -->
507
  <auto_confirm>0</auto_confirm> <!-- Do not auto confirm -->
@@ -614,36 +647,38 @@
614
  <use_dob>0</use_dob> <!-- Do not use the date of birth field -->
615
  <allow_retail_location>1</allow_retail_location> <!-- Customers may have their goods delivered at a retail location -->
616
  <allow_foreign_address>1</allow_foreign_address> <!-- Customers may have their goods shipped to a foreign address -->
617
- <allow_price_overview>1</allow_price_overview> <!-- Customer's will see a price overview -->
618
  <agree_conditions>1</agree_conditions> <!-- Customers must first agree to the webshop's terms and conditions -->
619
  <contact_url/>
620
  <service_url/>
621
  </checkout>
622
  <checkout_payment_methods>
623
- <ideal/>
624
  <ideal_method/>
625
  <ideal_option_field/>
626
- <creditcard/>
627
  <creditcard_method/>
628
  <creditcard_option_field/>
629
- <checkpay/>
630
  <checkpay_method/>
631
- <paypal/>
632
  <paypal_method/>
633
- <directdebit/>
634
  <directdebit_method/>
635
- <acceptgiro/>
636
  <acceptgiro_method/>
637
- <vooraf_betalen/>
638
  <vooraf_betalen_method/>
639
- <termijnen/>
640
  <termijnen_method/>
641
- <giftcard/>
642
  <giftcard_method/>
643
- <rabobank_internetkassa/>
644
  <rabobank_internetkassa_method/>
645
- <afterpay/>
646
  <afterpay_method/>
 
 
647
  </checkout_payment_methods>
648
  <advanced>
649
  <debug_mode>1</debug_mode> <!-- Exception logging only -->
@@ -1514,6 +1549,11 @@
1514
  <url>http://kb.totalinternetgroup.nl/topic/57789373</url>
1515
  <type>warning</type>
1516
  </POSTNL-0159>
 
 
 
 
 
1517
 
1518
  <!-- These error codes are generated by CIF, not by this extension -->
1519
  <LIRS_0>
41
  <config>
42
  <modules>
43
  <TIG_PostNL>
44
+ <version>1.2.2</version>
45
  </TIG_PostNL>
46
  </modules>
47
 
204
  </postnl_cif_labels_and_confirming_track_and_trace_email_template>
205
  </email>
206
  </template>
207
+ <cache>
208
+ <types>
209
+ <postnl_config translate="label,description" module="postnl">
210
+ <label>PostNL</label>
211
+ <description>PostNL configuration.</description>
212
+ <tags>POSTNL_CONFIG</tags>
213
+ </postnl_config>
214
+ </types>
215
+ </cache>
216
  </global>
217
 
218
  <admin>
275
  <observers>
276
  <!-- Admin logging -->
277
  <postnl_enterprise_logging>
278
+ <type>model</type>
279
  <class>postnl/admin_logging_observer</class>
280
  <method>controllerPostdispatch</method>
281
  </postnl_enterprise_logging>
282
  </observers>
283
  </controller_action_postdispatch_postnl>
284
+ <admin_system_config_changed_section_postnl>
285
+ <observers>
286
+ <!-- Clean PostNL config cache -->
287
+ <postnl_clean_cache>
288
+ <type>model</type>
289
+ <class>postnl_core/observer_cache</class>
290
+ <method>cleanCache</method>
291
+ </postnl_clean_cache>
292
+ </observers>
293
+ </admin_system_config_changed_section_postnl>
294
+ <admin_system_config_changed_section_carrier>
295
+ <observers>
296
+ <!-- Clean PostNL config cache -->
297
+ <postnl_clean_cache>
298
+ <type>model</type>
299
+ <class>postnl_core/observer_cache</class>
300
+ <method>cleanCache</method>
301
+ </postnl_clean_cache>
302
+ </observers>
303
+ </admin_system_config_changed_section_carrier>
304
  </events>
305
  <layout>
306
  <updates>
531
  <shipping_grid_massaction_default>postnl_print_labels_and_confirm</shipping_grid_massaction_default> <!-- 'Print labels and confirm shipment' massaction -->
532
  <send_track_and_trace_email>1</send_track_and_trace_email> <!-- automatically send a track & trace email to the customer -->
533
  <track_and_trace_email_template>postnl_cif_labels_and_confirming_track_and_trace_email_template</track_and_trace_email_template> <!-- Default template from locale -->
534
+ <send_copy>0</send_copy> <!-- Do not send a copy of the track & trace email -->
535
+ <copy_to/>
536
+ <copy_method>bcc</copy_method> <!-- Use the bcc method for sending the track & trace email copy -->
537
+ </cif_labels_and_confirming>
538
  <parcelware_export>
539
  <active>0</active> <!-- Inactive -->
540
  <auto_confirm>0</auto_confirm> <!-- Do not auto confirm -->
647
  <use_dob>0</use_dob> <!-- Do not use the date of birth field -->
648
  <allow_retail_location>1</allow_retail_location> <!-- Customers may have their goods delivered at a retail location -->
649
  <allow_foreign_address>1</allow_foreign_address> <!-- Customers may have their goods shipped to a foreign address -->
650
+ <allow_price_overview>1</allow_price_overview> <!-- Customers will see a price overview -->
651
  <agree_conditions>1</agree_conditions> <!-- Customers must first agree to the webshop's terms and conditions -->
652
  <contact_url/>
653
  <service_url/>
654
  </checkout>
655
  <checkout_payment_methods>
656
+ <ideal>0</ideal> <!-- Do not use iDEAL -->
657
  <ideal_method/>
658
  <ideal_option_field/>
659
+ <creditcard>0</creditcard> <!-- Do not use creditcard -->
660
  <creditcard_method/>
661
  <creditcard_option_field/>
662
+ <checkpay>0</checkpay> <!-- Do not use Checkpay -->
663
  <checkpay_method/>
664
+ <paypal>0</paypal> <!-- Do not use PayPal -->
665
  <paypal_method/>
666
+ <directdebit>0</directdebit> <!-- Do not use directdebit -->
667
  <directdebit_method/>
668
+ <acceptgiro>0</acceptgiro> <!-- Do not use acceptgiro -->
669
  <acceptgiro_method/>
670
+ <vooraf_betalen>0</vooraf_betalen> <!-- Do not use vooraf betalen -->
671
  <vooraf_betalen_method/>
672
+ <termijnen>0</termijnen> <!-- Do not use termijnen -->
673
  <termijnen_method/>
674
+ <giftcard>0</giftcard> <!-- Do not use giftcards -->
675
  <giftcard_method/>
676
+ <rabobank_internetkassa>0</rabobank_internetkassa> <!-- Do not use Rabobank Internetkassa -->
677
  <rabobank_internetkassa_method/>
678
+ <afterpay>0</afterpay> <!-- Do not use AfterPay -->
679
  <afterpay_method/>
680
+ <klarna>0</klarna> <!-- Do not use Klarna -->
681
+ <klarna_method/>
682
  </checkout_payment_methods>
683
  <advanced>
684
  <debug_mode>1</debug_mode> <!-- Exception logging only -->
1549
  <url>http://kb.totalinternetgroup.nl/topic/57789373</url>
1550
  <type>warning</type>
1551
  </POSTNL-0159>
1552
+ <POSTNL-0160>
1553
+ <message>A required configuration value is missing: %s.</message>
1554
+ <url/>
1555
+ <type>error</type>
1556
+ </POSTNL-0160>
1557
 
1558
  <!-- These error codes are generated by CIF, not by this extension -->
1559
  <LIRS_0>
app/code/community/TIG/PostNL/etc/system.xml CHANGED
@@ -582,7 +582,7 @@
582
  <fields>
583
  <label_size translate="label comment" module="postnl">
584
  <label>Label size</label>
585
- <comment>This setting only applies to multiple Dutch and EPS labels. GlobalPack labels are always printed as A4. Single Dutch or EPS labels are always printed in A6.</comment>
586
  <frontend_type>select</frontend_type>
587
  <source_model>postnl_core/system_config_source_labelSize</source_model>
588
  <sort_order>10</sort_order>
@@ -622,7 +622,6 @@
622
  <show_in_default>1</show_in_default>
623
  <show_in_website>1</show_in_website>
624
  <show_in_store>1</show_in_store>
625
- <validate>validate-select</validate>
626
  </shipment_reference_type>
627
  <custom_shipment_reference translate="label comment tooltip" module="postnl">
628
  <label>Custom reference value</label>
@@ -726,6 +725,41 @@
726
  <show_in_store>1</show_in_store>
727
  <validate>validate-select</validate>
728
  </track_and_trace_email_template>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
729
  </fields>
730
  </cif_labels_and_confirming>
731
  <parcelware_export translate="label comment" module="postnl">
582
  <fields>
583
  <label_size translate="label comment" module="postnl">
584
  <label>Label size</label>
585
+ <comment>This setting only applies to multiple Dutch and EPS labels. GlobalPack labels are always printed as A4.</comment>
586
  <frontend_type>select</frontend_type>
587
  <source_model>postnl_core/system_config_source_labelSize</source_model>
588
  <sort_order>10</sort_order>
622
  <show_in_default>1</show_in_default>
623
  <show_in_website>1</show_in_website>
624
  <show_in_store>1</show_in_store>
 
625
  </shipment_reference_type>
626
  <custom_shipment_reference translate="label comment tooltip" module="postnl">
627
  <label>Custom reference value</label>
725
  <show_in_store>1</show_in_store>
726
  <validate>validate-select</validate>
727
  </track_and_trace_email_template>
728
+ <send_copy translate="label comment" module="postnl">
729
+ <label>Send a copy of the track &amp; trace email</label>
730
+ <comment>If enabled, you may enter seperate email addresses to which the track &amp; trace email will be sent in addition to the customer.</comment>
731
+ <frontend_type>select</frontend_type>
732
+ <source_model>postnl/system_config_source_yesno</source_model>
733
+ <sort_order>150</sort_order>
734
+ <show_in_default>1</show_in_default>
735
+ <show_in_website>1</show_in_website>
736
+ <show_in_store>1</show_in_store>
737
+ <validate>validate-select</validate>
738
+ </send_copy>
739
+ <copy_to translate="label comment" module="postnl">
740
+ <label>Send track &amp; trace email copy to</label>
741
+ <comment>You can enter multiple email addresses seperated by commas.</comment>
742
+ <frontend_type>text</frontend_type>
743
+ <sort_order>160</sort_order>
744
+ <show_in_default>1</show_in_default>
745
+ <show_in_website>1</show_in_website>
746
+ <show_in_store>1</show_in_store>
747
+ <depends>
748
+ <send_copy>1</send_copy>
749
+ </depends>
750
+ </copy_to>
751
+ <copy_method translate="label" module="postnl">
752
+ <label>Track &amp; trace email copy method</label>
753
+ <frontend_type>select</frontend_type>
754
+ <source_model>adminhtml/system_config_source_email_method</source_model>
755
+ <sort_order>170</sort_order>
756
+ <show_in_default>1</show_in_default>
757
+ <show_in_website>1</show_in_website>
758
+ <show_in_store>1</show_in_store>
759
+ <depends>
760
+ <send_copy>1</send_copy>
761
+ </depends>
762
+ </copy_method>
763
  </fields>
764
  </cif_labels_and_confirming>
765
  <parcelware_export translate="label comment" module="postnl">
app/design/adminhtml/default/default/template/TIG/PostNL/system/config/form/field/config_check.phtml CHANGED
@@ -39,26 +39,15 @@
39
  * @var TIG_PostNL_Block_Adminhtml_System_Config_Form_Field_ConfigCheck $this
40
  */
41
  ?>
42
- <?php $_liveEnabled = $this->isLiveEnabled(); ?>
43
- <?php $_testEnabled = $this->isTestEnabled(); ?>
44
- <?php $_isTestMode = $this->isTestModeActive(); ?>
45
- <?php $_globalEnabled = $this->isGlobalEnabled(); ?>
46
- <?php $_checkoutEnabled = $this->isCheckoutEnabled(); ?>
47
- <?php $_helper = Mage::helper('postnl'); ?>
48
 
49
- <?php if ($_testEnabled && $_isTestMode): ?>
50
- <div class="module-message warning">
51
- <h4>[POSTNL-0098] <?php echo $this->__('The PostNL Extension is currently configured in test mode.')?> <a href="<?php echo $_helper->getErrorUrl('POSTNL-0098'); ?>" target="blank"><?php echo $this->__('Click here for more information from the TiG knowledgebase.') ?></a></h4>
52
- <p><?php echo $this->__('You may test the extension, however you cannot send any shipments in this mode. Any shipments that you confirm or whose labels you print while in this mode will be registered as test shipments and may not be physically shipped. If you attempt to do so, you may incur fines from PostNL. To use the extension in live mode you first need to enter your PostNL account credentials and set the extension to live mode. You can then send shipments using the PostNL extension.'); ?></p>
53
- <p><?php echo $this->__("You can enter your live username and password in the 'Account Settings' tab. Don't forget to also update your customer number, customer code and BLS (location) code. You can then set the extension to live mode."); ?></p>
54
- </div>
55
- <?php endif; ?>
56
-
57
- <?php if ((!$_liveEnabled && !$_isTestMode) || (!$_testEnabled && $_isTestMode)): ?>
58
- <?php $_errorArray = $this->getLiveConfigErrors(); ?>
59
- <?php if ($_isTestMode): ?>
60
- <?php $_errorArray = $this->getTestConfigErrors(); ?>
61
- <?php endif; ?>
62
  <div class="module-message error">
63
  <h4>[POSTNL-0002] <?php echo $this->__('You have not yet fully configured the extension. You must complete this process before you can use it.')?> <a href="<?php echo $_helper->getErrorUrl('POSTNL-0002'); ?>" target="blank"><?php echo $this->__('Click here for more information from the TiG knowledgebase.') ?></a></h4>
64
  <?php if ($_errorArray): ?>
@@ -79,7 +68,7 @@
79
  </div>
80
  <?php endif; ?>
81
 
82
- <?php if (!$_globalEnabled && (($_liveEnabled && !$_isTestMode) || ($_testEnabled && $_isTestMode))): ?>
83
  <?php $_globalConfigErrors = $this->getGlobalConfigErrors(); ?>
84
  <div class="module-message warning">
85
  <h4>[POSTNL-0003] <?php echo $this->__('You have not yet configured the extension to use GlobalPack shipments. Please complete this process if you wish to ship parcels to outside the EU.')?> <a href="<?php echo $_helper->getErrorUrl('POSTNL-0003'); ?>" target="blank"><?php echo $this->__('Click here for more information from the TiG knowledgebase.') ?></a></h4>
@@ -101,7 +90,7 @@
101
  </div>
102
  <?php endif; ?>
103
 
104
- <?php if (!$_checkoutEnabled && (($_liveEnabled && !$_isTestMode) || ($_testEnabled && $_isTestMode))): ?>
105
  <?php $_checkoutConfigErrors = $this->getCheckoutConfigErrors(); ?>
106
  <div class="module-message warning">
107
  <h4>[POSTNL-0004] <?php echo $this->__('You have not yet configured PostNL Checkout. Please complete this process if you wish to use PostNL Checkout.')?> <a href="<?php echo $_helper->getErrorUrl('POSTNL-0004'); ?>" target="blank"><?php echo $this->__('Click here for more information from the TiG knowledgebase.') ?></a></h4>
@@ -122,3 +111,11 @@
122
  <?php endif; ?>
123
  </div>
124
  <?php endif; ?>
 
 
 
 
 
 
 
 
39
  * @var TIG_PostNL_Block_Adminhtml_System_Config_Form_Field_ConfigCheck $this
40
  */
41
  ?>
42
+ <?php $_enabled = true; ?>
43
+ <?php $_isTestMode = $this->isTestModeActive(); ?>
44
+ <?php $_globalConfigured = $this->isGlobalConfigured(); ?>
45
+ <?php $_checkoutEnabled = $this->isCheckoutEnabled(); ?>
46
+ <?php $_helper = Mage::helper('postnl'); ?>
 
47
 
48
+ <?php if ((!$_isTestMode && !$this->isLiveEnabled()) || ($_isTestMode && !$this->isTestEnabled())): ?>
49
+ <?php $_enabled = false; ?>
50
+ <?php $_errorArray = $this->getConfigErrors(); ?>
 
 
 
 
 
 
 
 
 
 
51
  <div class="module-message error">
52
  <h4>[POSTNL-0002] <?php echo $this->__('You have not yet fully configured the extension. You must complete this process before you can use it.')?> <a href="<?php echo $_helper->getErrorUrl('POSTNL-0002'); ?>" target="blank"><?php echo $this->__('Click here for more information from the TiG knowledgebase.') ?></a></h4>
53
  <?php if ($_errorArray): ?>
68
  </div>
69
  <?php endif; ?>
70
 
71
+ <?php if (!$_globalConfigured && $_enabled): ?>
72
  <?php $_globalConfigErrors = $this->getGlobalConfigErrors(); ?>
73
  <div class="module-message warning">
74
  <h4>[POSTNL-0003] <?php echo $this->__('You have not yet configured the extension to use GlobalPack shipments. Please complete this process if you wish to ship parcels to outside the EU.')?> <a href="<?php echo $_helper->getErrorUrl('POSTNL-0003'); ?>" target="blank"><?php echo $this->__('Click here for more information from the TiG knowledgebase.') ?></a></h4>
90
  </div>
91
  <?php endif; ?>
92
 
93
+ <?php if (!$_checkoutEnabled && $_enabled): ?>
94
  <?php $_checkoutConfigErrors = $this->getCheckoutConfigErrors(); ?>
95
  <div class="module-message warning">
96
  <h4>[POSTNL-0004] <?php echo $this->__('You have not yet configured PostNL Checkout. Please complete this process if you wish to use PostNL Checkout.')?> <a href="<?php echo $_helper->getErrorUrl('POSTNL-0004'); ?>" target="blank"><?php echo $this->__('Click here for more information from the TiG knowledgebase.') ?></a></h4>
111
  <?php endif; ?>
112
  </div>
113
  <?php endif; ?>
114
+
115
+ <?php if ($_enabled && $_isTestMode): ?>
116
+ <div class="module-message warning">
117
+ <h4>[POSTNL-0098] <?php echo $this->__('The PostNL Extension is currently configured in test mode.')?> <a href="<?php echo $_helper->getErrorUrl('POSTNL-0098'); ?>" target="blank"><?php echo $this->__('Click here for more information from the TiG knowledgebase.') ?></a></h4>
118
+ <p><?php echo $this->__('You may test the extension, however you cannot send any shipments in this mode. Any shipments that you confirm or whose labels you print while in this mode will be registered as test shipments and may not be physically shipped. If you attempt to do so, you may incur fines from PostNL. To use the extension in live mode you first need to enter your PostNL account credentials and set the extension to live mode. You can then send shipments using the PostNL extension.'); ?></p>
119
+ <p><?php echo $this->__("You can enter your live username and password in the 'Account Settings' tab. Don't forget to also update your customer number, customer code and BLS (location) code. You can then set the extension to live mode."); ?></p>
120
+ </div>
121
+ <?php endif; ?>
app/design/adminhtml/default/default/template/TIG/PostNL/system/config/form/field/support_tab.phtml CHANGED
@@ -55,7 +55,7 @@
55
  <div class="text-box">
56
  <h4><?php echo $_helper->__('Before you proceed to use this extension it is very important that you have properly configured certain elements of your Magento webshop.'); ?></h4>
57
  <ul class="postnl-config-warning">
58
- <li><?php echo $_helper->__("You should make sure that each product you intend to ship using PostNL has a correct value for it's weight attribute. You can select a unit of measurement for this attribute in the 'Confirming & Label Settings' tab below. If you do not do this, PostNL may charge you extra when a parcel turns out to weigh significantly more than expected or they may even refuse your shipment."); ?></li>
59
  <li><?php echo $_helper->__("Make sure the PostNL shipping method is configured under system > config > shipping methods > PostNL. Only shipments made using this shipping method will be able to use PostNL's services. You may choose to charge either a flat rate or a table rate-based shipping fee. In the case of the latter, the table rates you have added under the Table Rate shipping method will be used. More info on how to setup the Table Rate shipping method can be found <a href='%s' target='_blank'>here</a>.", 'http://www.magentocommerce.com/knowledge-base/entry/how-do-i-set-up-table-rate-shipping'); ?></li>
60
  <li><?php echo $_helper->__("You should properly configure your checkout process. PostNL needs to be able to retrieve a properly formatted address from the checkout process in order to guarantee the order is delivered at the correct address. In order to do so, you need to enable the appropriate number of street lines in your checkout flow and make sure these have correct labels and validation settings. More info on how to do this, can be found <a href='%s' target='_blank'>here</a>.", 'http://kb.totalinternetgroup.nl/topic/31080848'); ?></li>
61
  </ul>
55
  <div class="text-box">
56
  <h4><?php echo $_helper->__('Before you proceed to use this extension it is very important that you have properly configured certain elements of your Magento webshop.'); ?></h4>
57
  <ul class="postnl-config-warning">
58
+ <li><?php echo $_helper->__("You should make sure that each product you intend to ship using PostNL has a maximum size of 175 x 78 x 58 cm and weighs less than 30 kg. The shipment will only be invoiced after the weigh-in at the PostNL sorting centre. If you wish to ship an order that weighs over 30 kg, you will have to split it into separate parcels that each weigh less than 30 kg. To do this you may create multiple shipments for a single order or you may use the extension's multi-colli functionality."); ?></li>
59
  <li><?php echo $_helper->__("Make sure the PostNL shipping method is configured under system > config > shipping methods > PostNL. Only shipments made using this shipping method will be able to use PostNL's services. You may choose to charge either a flat rate or a table rate-based shipping fee. In the case of the latter, the table rates you have added under the Table Rate shipping method will be used. More info on how to setup the Table Rate shipping method can be found <a href='%s' target='_blank'>here</a>.", 'http://www.magentocommerce.com/knowledge-base/entry/how-do-i-set-up-table-rate-shipping'); ?></li>
60
  <li><?php echo $_helper->__("You should properly configure your checkout process. PostNL needs to be able to retrieve a properly formatted address from the checkout process in order to guarantee the order is delivered at the correct address. In order to do so, you need to enable the appropriate number of street lines in your checkout flow and make sure these have correct labels and validation settings. More info on how to do this, can be found <a href='%s' target='_blank'>here</a>.", 'http://kb.totalinternetgroup.nl/topic/31080848'); ?></li>
61
  </ul>
app/design/frontend/base/default/template/TIG/PostNL/delivery_options/onepage/available.phtml CHANGED
@@ -91,7 +91,11 @@
91
  <?php endif ?>
92
 
93
  <?php $_postnlShippingMethods = Mage::helper('postnl/carrier')->getPostnlShippingMethods(); ?>
94
- <?php if (Mage::helper('postnl/deliveryOptions')->canUseDeliveryOptions($this->getQuote())
 
 
 
 
95
  && in_array($_rate->getCode(), $_postnlShippingMethods)
96
  && $this->getChild('postnl.delivery.options')
97
  ): ?>
91
  <?php endif ?>
92
 
93
  <?php $_postnlShippingMethods = Mage::helper('postnl/carrier')->getPostnlShippingMethods(); ?>
94
+ <?php $_canUseDeliveryOptions = false; ?>
95
+ <?php if (Mage::helper('postnl/deliveryOptions')->canUseDeliveryOptions($this->getQuote()) && Mage::helper('postnl/deliveryOptions')->canUseDeliveryOptionsForCountry($this->getQuote())): ?>
96
+ <?php $_canUseDeliveryOptions = true; ?>
97
+ <?php endif; ?>
98
+ <?php if ($_canUseDeliveryOptions
99
  && in_array($_rate->getCode(), $_postnlShippingMethods)
100
  && $this->getChild('postnl.delivery.options')
101
  ): ?>
app/design/frontend/base/default/template/TIG/PostNL/delivery_options/onestepcheckout/available.phtml CHANGED
@@ -48,15 +48,21 @@
48
  <?php if (!($_shippingRateGroups = $this->getShippingRates())): ?>
49
  <strong><?php echo $this->__('Sorry, no quotes are available for this order at this time.') ?></strong>
50
  <?php else: ?>
 
 
 
 
 
 
 
51
  <?php if (count($_shippingRateGroups)=='1' && Mage::getStoreConfig('onestepcheckout/general/hide_shipping_method')):?>
52
  <dl class="shipment-methods" style="display: none">
 
53
  <?php foreach ($_shippingRateGroups as $code => $_rates): ?>
54
  <dd><?php echo $this->getCarrierName($code) ?></dd>
55
  <?php foreach ($_rates as $_rate): ?>
56
-
57
  <?php $_isPostnl = false; ?>
58
- <?php $_postnlShippingMethods = Mage::helper('postnl/carrier')->getPostnlShippingMethods(); ?>
59
- <?php if (Mage::helper('postnl/deliveryOptions')->canUseDeliveryOptions($this->getQuote())
60
  && in_array($_rate->getCode(), $_postnlShippingMethods)): ?>
61
  <?php $_isPostnl = true; ?>
62
  <?php endif; ?>
@@ -95,10 +101,8 @@
95
  <?php foreach ($_shippingRateGroups as $code => $_rates): ?>
96
  <dd><?php echo $this->getCarrierName($code) ?></dd>
97
  <?php foreach ($_rates as $_rate): ?>
98
-
99
  <?php $_isPostnl = false; ?>
100
- <?php $_postnlShippingMethods = Mage::helper('postnl/carrier')->getPostnlShippingMethods(); ?>
101
- <?php if (Mage::helper('postnl/deliveryOptions')->canUseDeliveryOptions($this->getQuote())
102
  && in_array($_rate->getCode(), $_postnlShippingMethods)): ?>
103
  <?php $_isPostnl = true; ?>
104
  <?php endif; ?>
48
  <?php if (!($_shippingRateGroups = $this->getShippingRates())): ?>
49
  <strong><?php echo $this->__('Sorry, no quotes are available for this order at this time.') ?></strong>
50
  <?php else: ?>
51
+ <?php $_canUseDeliveryOptions = false; ?>
52
+ <?php $_postnlShippingMethods = Mage::helper('postnl/carrier')->getPostnlShippingMethods(); ?>
53
+
54
+ <?php if (Mage::helper('postnl/deliveryOptions')->canUseDeliveryOptions($this->getQuote())
55
+ && Mage::helper('postnl/deliveryOptions')->canUseDeliveryOptionsForCountry($this->getQuote())): ?>
56
+ <?php $_canUseDeliveryOptions = true; ?>
57
+ <?php endif; ?>
58
  <?php if (count($_shippingRateGroups)=='1' && Mage::getStoreConfig('onestepcheckout/general/hide_shipping_method')):?>
59
  <dl class="shipment-methods" style="display: none">
60
+
61
  <?php foreach ($_shippingRateGroups as $code => $_rates): ?>
62
  <dd><?php echo $this->getCarrierName($code) ?></dd>
63
  <?php foreach ($_rates as $_rate): ?>
 
64
  <?php $_isPostnl = false; ?>
65
+ <?php if ($_canUseDeliveryOptions
 
66
  && in_array($_rate->getCode(), $_postnlShippingMethods)): ?>
67
  <?php $_isPostnl = true; ?>
68
  <?php endif; ?>
101
  <?php foreach ($_shippingRateGroups as $code => $_rates): ?>
102
  <dd><?php echo $this->getCarrierName($code) ?></dd>
103
  <?php foreach ($_rates as $_rate): ?>
 
104
  <?php $_isPostnl = false; ?>
105
+ <?php if ($_canUseDeliveryOptions
 
106
  && in_array($_rate->getCode(), $_postnlShippingMethods)): ?>
107
  <?php $_isPostnl = true; ?>
108
  <?php endif; ?>
app/locale/en_US/TIG_PostNL.csv CHANGED
@@ -46,7 +46,7 @@ TIG_PostNL::Contact Email,Contact Email
46
  TIG_PostNL::Confirming & Label Printing Settings,Confirming & Label Printing Settings
47
  TIG_PostNL::Mode,Mode
48
  TIG_PostNL::Label size,Label size
49
- TIG_PostNL::This setting only applies to multiple Dutch and EPS labels. GlobalPack labels are always printed as A4. Single Dutch or EPS labels are always printed in A6.,This setting only applies to multiple Dutch and EPS labels. GlobalPack labels are always printed as A4. Single Dutch or EPS labels are always printed in A6.
50
  TIG_PostNL::Maximum weight per parcel,Maximum weight per parcel
51
  "TIG_PostNL::Determine the maximum weight of each parcel. If a shipment's total weight exceeds this, the shipment will be spread out over multiple parcels.","Determine the maximum weight of each parcel. If a shipment's total weight exceeds this, the shipment will be spread out over multiple parcels."
52
  TIG_PostNL::Weight unit,Weight unit
@@ -197,11 +197,11 @@ TIG_PostNL::If a confirmed shipment has not been shipped after this amount of da
197
  TIG_PostNL::Send extension usage statistics to PostNL,Send extension usage statistics to PostNL
198
  TIG_PostNL::PostNL may periodically send important updates regarding new versions of the PostNL extension or important security updates in the same manner as Magento. Disable this setting to no longer ecieve these notifications.,PostNL may periodically send important updates regarding new versions of the PostNL extension or important security updates in the same manner as Magento. Disable this setting to no longer ecieve these notifications.
199
  TIG_PostNL::The following fields determine the CIF version used by each service. Tampering with these settings may result in unexpected behaviour or it may disable the extension altogether.,The following fields determine the CIF version used by each service. Tampering with these settings may result in unexpected behaviour or it may disable the extension altogether.
200
- TIG_PostNL::ShippingStatus Webservice version,ShippingStatus Webservice version
201
- TIG_PostNL::Confirming Webservice version,Confirming Webservice version
202
- TIG_PostNL::Labelling Webservice version,Labelling Webservice version
203
- TIG_PostNL::Barcode Webservice version,Barcode Webservice version
204
- TIG_PostNL::Checkout Webservice version,Checkout Webservice version
205
  TIG_PostNL::PostNL Track & Trace Email,PostNL Track & Trace Email
206
  TIG_PostNL::Unable to set Payment Method.,Unable to set Payment Method.
207
  "TIG_PostNL::An error occurred while processing your order. Please try again. if this problem persists, please contact the webshop owner.","An error occurred while processing your order. Please try again. if this problem persists, please contact the webshop owner."
@@ -341,7 +341,8 @@ TIG_PostNL::Test,Test
341
  TIG_PostNL::Live,Live
342
  TIG_PostNL::Your shipment has been shipped on %s. Click %s to track your shipment.,Your shipment has been shipped on %s. Click %s to track your shipment.
343
  TIG_PostNL::Quick reference guide,Quick reference guide
344
- "TIG_PostNL::You currently do not use split street lines. Not using split street lines may cause errors in shipment processing as PostNL cannot support every possible address syntax. We strongly recommend using split street lines to avoid problems when using PostNL shipping. For more information, please contact PostNL support.","You currently do not use split street lines. Not using split street lines may cause errors in shipment processing as PostNL cannot support every possible address syntax. We strongly recommend using split street lines to avoid problems when using PostNL shipping. For more information, please contact PostNL support."
 
345
  TIG_PostNL::You have configured the extension for test mode only. You still must enter a live username and password before you may use the extension for real shipments.,You have configured the extension for test mode only. You still must enter a live username and password before you may use the extension for real shipments.
346
  TIG_PostNL::You have not yet fully configured the extension. You must complete this process before you can use it.,You have not yet fully configured the extension. You must complete this process before you can use it.
347
  TIG_PostNL::You have not yet configured the extension to use GlobalPack shipments. Please complete this process if you wish to ship parcels to outside the EU.,You have not yet configured the extension to use GlobalPack shipments. Please complete this process if you wish to ship parcels to outside the EU.
@@ -456,7 +457,7 @@ TIG_PostNL::Time,Time
456
  TIG_PostNL::Date,Date
457
  "TIG_PostNL::We highly reccommend you place several 'test' shipments, before you use the extension for real orders and real shipments.","We highly reccommend you place several 'test' shipments, before you use the extension for real orders and real shipments."
458
  TIG_PostNL::Before you proceed to use this extension it is very important that you have properly configured certain elements of your Magento webshop.,Before you proceed to use this extension it is very important that you have properly configured certain elements of your Magento webshop.
459
- "TIG_PostNL::You should make sure that each product you intend to ship using PostNL has a correct value for it's weight attribute. You can select a unit of measurement for this attribute in the 'Confirming & Label Settings' tab below. If you do not do this, PostNL may charge you extra when a parcel turns out to weigh significantly more than expected or they may even refuse your shipment.","You should make sure that each product you intend to ship using PostNL has a correct value for it's weight attribute. You can select a unit of measurement for this attribute in the 'Confirming & Label Settings' tab below. If you do not do this, PostNL may charge you extra when a parcel turns out to weigh significantly more than expected or they may even refuse your shipment."
460
  "TIG_PostNL::Make sure the PostNL shipping method is configured under system > config > shipping methods > PostNL. Only shipments made using this shipping method will be able to use PostNL's services. You may choose to charge either a flat rate or a table rate-based shipping fee. In the case of the latter, the table rates you have added under the Table Rate shipping method will be used. More info on how to setup the Table Rate shipping method can be found <a href='%s' target='_blank'>here</a>.","Make sure the PostNL shipping method is configured under system > config > shipping methods > PostNL. Only shipments made using this shipping method will be able to use PostNL's services. You may choose to charge either a flat rate or a table rate-based shipping fee. In the case of the latter, the table rates you have added under the Table Rate shipping method will be used. More info on how to setup the Table Rate shipping method can be found <a href='%s' target='_blank'>here</a>."
461
  "TIG_PostNL::You should properly configure your checkout process. PostNL needs to be able to retrieve a properly formatted address from the checkout process in order to guarantee the order is delivered at the correct address. In order to do so, you need to enable the appropriate number of street lines in your checkout flow and make sure these have correct labels and validation settings. More info on how to do this, can be found <a href='%s' target='_blank'>here</a>.","You should properly configure your checkout process. PostNL needs to be able to retrieve a properly formatted address from the checkout process in order to guarantee the order is delivered at the correct address. In order to do so, you need to enable the appropriate number of street lines in your checkout flow and make sure these have correct labels and validation settings. More info on how to do this, can be found <a href='%s' target='_blank'>here</a>."
462
  TIG_PostNL::Register the extension for use,Register the extension for use
@@ -821,7 +822,7 @@ TIG_PostNL::This may take a minute. The page will refresh once this is done.,Thi
821
  TIG_PostNL::View the user manual.,View the user manual.
822
  TIG_PostNL::User manual,User manual
823
  TIG_PostNL::Delivery options theme,Delivery options theme
824
- "TIG_PostNL::You can view an example of the different themes <a href=""http://servicedesk.totalinternetgroup.nl"" target=""_blank"" title=""PostNL delivery option themes"">here</a>.","You can view an example of the different themes <a href=""http://servicedesk.totalinternetgroup.nl"" target=""_blank"" title=""PostNL delivery option themes"">here</a>."
825
  TIG_PostNL::Default PostNL theme,Default PostNL theme
826
  TIG_PostNL::Neutral theme,Neutral theme
827
  "TIG_PostNL::You may choose to show a message to customers after they place their order about MijnPakket. This message will inform customers about the advantages of MijnPakket. Customers who have a MijnPakket account can use this to quickly log in to your webshop, thus reducing the amount of time it takes to complete an order.","You may choose to show a message to customers after they place their order about MijnPakket. This message will inform customers about the advantages of MijnPakket. Customers who have a MijnPakket account can use this to quickly log in to your webshop, thus reducing the amount of time it takes to complete an order."
@@ -866,4 +867,10 @@ TIG_PostNL::The customer was redirected to the cart because the quote had the fo
866
  TIG_PostNL::The customer was redirected to the cart because the quote is multishipping.,The customer was redirected to the cart because the quote is multishipping.
867
  TIG_PostNL::more delivery times and pick-up locations,more delivery times and pick-up locations
868
  TIG_PostNL::Select this checkbox to only show post office locations that are open as early as 8:30 A.M.,Select this checkbox to only show post office locations that are open as early as 8:30 A.M.
869
- TIG_PostNL::Select this checkbox to only show post office locations that are open after 7:00 P.M. on the next possible delivery date.,Select this checkbox to only show post office locations that are open after 7:00 P.M. on the next possible delivery date.
 
 
 
 
 
 
46
  TIG_PostNL::Confirming & Label Printing Settings,Confirming & Label Printing Settings
47
  TIG_PostNL::Mode,Mode
48
  TIG_PostNL::Label size,Label size
49
+ TIG_PostNL::This setting only applies to multiple Dutch and EPS labels. GlobalPack labels are always printed as A4.,This setting only applies to multiple Dutch and EPS labels. GlobalPack labels are always printed as A4.
50
  TIG_PostNL::Maximum weight per parcel,Maximum weight per parcel
51
  "TIG_PostNL::Determine the maximum weight of each parcel. If a shipment's total weight exceeds this, the shipment will be spread out over multiple parcels.","Determine the maximum weight of each parcel. If a shipment's total weight exceeds this, the shipment will be spread out over multiple parcels."
52
  TIG_PostNL::Weight unit,Weight unit
197
  TIG_PostNL::Send extension usage statistics to PostNL,Send extension usage statistics to PostNL
198
  TIG_PostNL::PostNL may periodically send important updates regarding new versions of the PostNL extension or important security updates in the same manner as Magento. Disable this setting to no longer ecieve these notifications.,PostNL may periodically send important updates regarding new versions of the PostNL extension or important security updates in the same manner as Magento. Disable this setting to no longer ecieve these notifications.
199
  TIG_PostNL::The following fields determine the CIF version used by each service. Tampering with these settings may result in unexpected behaviour or it may disable the extension altogether.,The following fields determine the CIF version used by each service. Tampering with these settings may result in unexpected behaviour or it may disable the extension altogether.
200
+ TIG_PostNL::ShippingStatus webservice version,ShippingStatus webservice version
201
+ TIG_PostNL::Confirming webservice version,Confirming webservice version
202
+ TIG_PostNL::Labelling webservice version,Labelling webservice version
203
+ TIG_PostNL::Barcode webservice version,Barcode webservice version
204
+ TIG_PostNL::Checkout webservice version,Checkout webservice version
205
  TIG_PostNL::PostNL Track & Trace Email,PostNL Track & Trace Email
206
  TIG_PostNL::Unable to set Payment Method.,Unable to set Payment Method.
207
  "TIG_PostNL::An error occurred while processing your order. Please try again. if this problem persists, please contact the webshop owner.","An error occurred while processing your order. Please try again. if this problem persists, please contact the webshop owner."
341
  TIG_PostNL::Live,Live
342
  TIG_PostNL::Your shipment has been shipped on %s. Click %s to track your shipment.,Your shipment has been shipped on %s. Click %s to track your shipment.
343
  TIG_PostNL::Quick reference guide,Quick reference guide
344
+ TIG_PostNL::You currently do not use split street lines.,You currently do not use split street lines.
345
+ "TIG_PostNL::Not using split street lines may cause errors in shipment processing as PostNL cannot support every possible address syntax. We strongly recommend using split street lines to avoid problems when using PostNL shipping. For more information, please contact PostNL support.","Not using split street lines may cause errors in shipment processing as PostNL cannot support every possible address syntax. We strongly recommend using split street lines to avoid problems when using PostNL shipping. For more information, please contact PostNL support."
346
  TIG_PostNL::You have configured the extension for test mode only. You still must enter a live username and password before you may use the extension for real shipments.,You have configured the extension for test mode only. You still must enter a live username and password before you may use the extension for real shipments.
347
  TIG_PostNL::You have not yet fully configured the extension. You must complete this process before you can use it.,You have not yet fully configured the extension. You must complete this process before you can use it.
348
  TIG_PostNL::You have not yet configured the extension to use GlobalPack shipments. Please complete this process if you wish to ship parcels to outside the EU.,You have not yet configured the extension to use GlobalPack shipments. Please complete this process if you wish to ship parcels to outside the EU.
457
  TIG_PostNL::Date,Date
458
  "TIG_PostNL::We highly reccommend you place several 'test' shipments, before you use the extension for real orders and real shipments.","We highly reccommend you place several 'test' shipments, before you use the extension for real orders and real shipments."
459
  TIG_PostNL::Before you proceed to use this extension it is very important that you have properly configured certain elements of your Magento webshop.,Before you proceed to use this extension it is very important that you have properly configured certain elements of your Magento webshop.
460
+ "TIG_PostNL::You should make sure that each product you intend to ship using PostNL has a maximum size of 175 x 78 x 58 cm and weighs less than 30 kg. The shipment will only be invoiced after the weigh-in at the PostNL sorting centre. If you wish to ship an order that weighs over 30 kg, you will have to split it into separate parcels that each weigh less than 30 kg. To do this you may create multiple shipments for a single order or you may use the extension's multi-colli functionality.","You should make sure that each product you intend to ship using PostNL has a maximum size of 175 x 78 x 58 cm and weighs less than 30 kg. The shipment will only be invoiced after the weigh-in at the PostNL sorting centre. If you wish to ship an order that weighs over 30 kg, you will have to split it into separate parcels that each weigh less than 30 kg. To do this you may create multiple shipments for a single order or you may use the extension's multi-colli functionality."
461
  "TIG_PostNL::Make sure the PostNL shipping method is configured under system > config > shipping methods > PostNL. Only shipments made using this shipping method will be able to use PostNL's services. You may choose to charge either a flat rate or a table rate-based shipping fee. In the case of the latter, the table rates you have added under the Table Rate shipping method will be used. More info on how to setup the Table Rate shipping method can be found <a href='%s' target='_blank'>here</a>.","Make sure the PostNL shipping method is configured under system > config > shipping methods > PostNL. Only shipments made using this shipping method will be able to use PostNL's services. You may choose to charge either a flat rate or a table rate-based shipping fee. In the case of the latter, the table rates you have added under the Table Rate shipping method will be used. More info on how to setup the Table Rate shipping method can be found <a href='%s' target='_blank'>here</a>."
462
  "TIG_PostNL::You should properly configure your checkout process. PostNL needs to be able to retrieve a properly formatted address from the checkout process in order to guarantee the order is delivered at the correct address. In order to do so, you need to enable the appropriate number of street lines in your checkout flow and make sure these have correct labels and validation settings. More info on how to do this, can be found <a href='%s' target='_blank'>here</a>.","You should properly configure your checkout process. PostNL needs to be able to retrieve a properly formatted address from the checkout process in order to guarantee the order is delivered at the correct address. In order to do so, you need to enable the appropriate number of street lines in your checkout flow and make sure these have correct labels and validation settings. More info on how to do this, can be found <a href='%s' target='_blank'>here</a>."
463
  TIG_PostNL::Register the extension for use,Register the extension for use
822
  TIG_PostNL::View the user manual.,View the user manual.
823
  TIG_PostNL::User manual,User manual
824
  TIG_PostNL::Delivery options theme,Delivery options theme
825
+ "TIG_PostNL::You can view an example of the different themes <a href=""http://kb.totalinternetgroup.nl/topic/58787233"" target=""_blank"" title=""PostNL delivery option themes"">here</a>.","You can view an example of the different themes <a href=""http://kb.totalinternetgroup.nl/topic/58787233"" target=""_blank"" title=""PostNL delivery option themes"">here</a>."
826
  TIG_PostNL::Default PostNL theme,Default PostNL theme
827
  TIG_PostNL::Neutral theme,Neutral theme
828
  "TIG_PostNL::You may choose to show a message to customers after they place their order about MijnPakket. This message will inform customers about the advantages of MijnPakket. Customers who have a MijnPakket account can use this to quickly log in to your webshop, thus reducing the amount of time it takes to complete an order.","You may choose to show a message to customers after they place their order about MijnPakket. This message will inform customers about the advantages of MijnPakket. Customers who have a MijnPakket account can use this to quickly log in to your webshop, thus reducing the amount of time it takes to complete an order."
867
  TIG_PostNL::The customer was redirected to the cart because the quote is multishipping.,The customer was redirected to the cart because the quote is multishipping.
868
  TIG_PostNL::more delivery times and pick-up locations,more delivery times and pick-up locations
869
  TIG_PostNL::Select this checkbox to only show post office locations that are open as early as 8:30 A.M.,Select this checkbox to only show post office locations that are open as early as 8:30 A.M.
870
+ TIG_PostNL::Select this checkbox to only show post office locations that are open after 7:00 P.M. on the next possible delivery date.,Select this checkbox to only show post office locations that are open after 7:00 P.M. on the next possible delivery date.
871
+ TIG_PostNL::Send a copy of the track & trace email,Send a copy of the track & trace email
872
+ "TIG_PostNL::If enabled, you may enter seperate email addresses to which the track & trace email will be sent in addition to the customer.","If enabled, you may enter seperate email addresses to which the track & trace email will be sent in addition to the customer."
873
+ TIG_PostNL::Send track & trace email copy to,Send track & trace email copy to
874
+ TIG_PostNL::You can enter multiple email addresses seperated by commas.,You can enter multiple email addresses seperated by commas.
875
+ TIG_PostNL::Track & trace email copy method,Track & trace email copy method
876
+ PostNL configuration.,PostNL configuration.
app/locale/en_US/template/email/TIG/PostNL/track_and_trace.html CHANGED
@@ -15,17 +15,17 @@
15
  <tr>
16
  <td align="center" valign="top" style="padding:20px 0 20px 0">
17
  <!-- [ header starts here] -->
18
- <table bgcolor="FFFFFF" cellspacing="0" cellpadding="10" border="0" width="470">
19
  <tr>
20
  <td valign="top">
21
- <a href="{{store url=""}}" style="color:#1E7EC8;"><img src="{{var logo_url}}" alt="{{var logo_alt}}" border="0"/></a>
22
- <img src="{{var logo_url}}" alt="{{var logo_alt}}" border="0" style="float:right"/>
23
  </td>
24
  </tr>
25
  <!-- [ middle starts here] -->
26
  <tr>
27
  <td valign="top">
28
- <p style="font-size:11px; font-weight:normal; line-height:1.5em; margin:0 0 11px 0;">Dear Sir, Madam {{htmlescape var=$customer.name}},</h1>
29
  <p style="font-size:11px; line-height:1.5em; margin:0 0 8px 0;">Your order at {{var store.getFrontendName()}}, with barcode {{var barcode}} will be delivered by PostNL.</p>
30
  <p style="font-size:11px; line-height:1.5em; margin:0;">To track the progress of your shipment click <a href="{{var barcode_url}}" target="_blank">here</a>.<p>
31
  <p style="font-size:11px; line-height:1.5em; margin:0;">Kind Regards,</p>
15
  <tr>
16
  <td align="center" valign="top" style="padding:20px 0 20px 0">
17
  <!-- [ header starts here] -->
18
+ <table bgcolor="#FFFFFF" cellspacing="0" cellpadding="10" border="0" width="470">
19
  <tr>
20
  <td valign="top">
21
+ <a href='{{store url=""}}' style="color:#1E7EC8;"><img src="{{var logo_url}}" alt="{{var logo_alt}}" border="0"/></a>
22
+ <img src='{{skin url="images/TIG/PostNL/postnl_email_logo.png" _area="frontend"}}' alt="PostNL" border="0" style="float:right"/>
23
  </td>
24
  </tr>
25
  <!-- [ middle starts here] -->
26
  <tr>
27
  <td valign="top">
28
+ <p style="font-size:11px; font-weight:normal; line-height:1.5em; margin:0 0 11px 0;">Dear Sir, Madam {{htmlescape var=$customer.name}},</p>
29
  <p style="font-size:11px; line-height:1.5em; margin:0 0 8px 0;">Your order at {{var store.getFrontendName()}}, with barcode {{var barcode}} will be delivered by PostNL.</p>
30
  <p style="font-size:11px; line-height:1.5em; margin:0;">To track the progress of your shipment click <a href="{{var barcode_url}}" target="_blank">here</a>.<p>
31
  <p style="font-size:11px; line-height:1.5em; margin:0;">Kind Regards,</p>
app/locale/nl_NL/TIG_PostNL.csv CHANGED
@@ -46,7 +46,7 @@ TIG_PostNL::Contact Email,Contact e-mailadres
46
  TIG_PostNL::Confirming & Label Printing Settings,Voormelden & Label printen Instellingen
47
  TIG_PostNL::Mode,Modus
48
  TIG_PostNL::Label size,Label formaat
49
- TIG_PostNL::This setting only applies to multiple Dutch and EPS labels. GlobalPack labels are always printed as A4. Single Dutch or EPS labels are always printed in A6.,Deze instelling geldt alleen voor meerdere Nederlandse en EPS labels. GlobalPack labels wordt altijd in A4 geprint. Enkele Nederlandse of EPS labels worden altijd in A6 geprint.
50
  TIG_PostNL::Maximum weight per parcel,Maximum gewicht per pakje
51
  "TIG_PostNL::Determine the maximum weight of each parcel. If a shipment's total weight exceeds this, the shipment will be spread out over multiple parcels.","Bepaal het maximale gewicht per pakje. Als het totaalgewicht teveel is, wordt de zending gesplitst in meerdere pakketjes."
52
  TIG_PostNL::Weight unit,Gewichtseenheid
@@ -457,7 +457,7 @@ TIG_PostNL::Time,Tijd
457
  TIG_PostNL::Date,Datum
458
  "TIG_PostNL::We highly reccommend you place several 'test' shipments, before you use the extension for real orders and real shipments.",Wij raden ten sterkste aan om enkele 'test' zendingen aan te maken voordat u de extensie voor echte bestellingen en zendingen gebruikt.
459
  TIG_PostNL::Before you proceed to use this extension it is very important that you have properly configured certain elements of your Magento webshop.,"Voordat u de extensie in gebruik neemt, is het belangrijk dat u enkele onderdelen van uw webshop correct ingesteld heeft."
460
- "TIG_PostNL::You should make sure that each product you intend to ship using PostNL has a correct value for it's weight attribute. You can select a unit of measurement for this attribute in the 'Confirming & Label Settings' tab below. If you do not do this, PostNL may charge you extra when a parcel turns out to weigh significantly more than expected or they may even refuse your shipment.","U moet er zeker van zijn dat elk product dat u wilt versturen met PostNL een correcte waarde heeft in het 'gewicht' attribuut. De eenheid waarin u dit gewicht heeft ingevuld, kunt u instellen in het 'Voormelden en Labels Printen Settings' tabje hieronder. Indien u dit niet correct instelt, loopt u het risico dat PostNL extra kosten in rekening brengt of de zending weigert wanneer blijkt dat het opgegeven gewicht van een zending significant ver afwijkt van wat de webshop heeft opgegeven bij het voormelden."
461
  "TIG_PostNL::Make sure the PostNL shipping method is configured under system > config > shipping methods > PostNL. Only shipments made using this shipping method will be able to use PostNL's services. You may choose to charge either a flat rate or a table rate-based shipping fee. In the case of the latter, the table rates you have added under the Table Rate shipping method will be used. More info on how to setup the Table Rate shipping method can be found <a href='%s' target='_blank'>here</a>.","Wees er zeker van dat de PostNL verzendmethode correct geconfigureerd is in systeem > configuratie > verzendmethodes > PostNL. Enkel bestellingen die met deze verzendmethode geplaatst zijn, kunnen verwerkt worden door de extensie. U kunt kiezen om een plat tarief of een tabel tarief in rekening brengen voor het gebruik van PostNL. Indien u kiest voor tabel tarieven, dan kunt u deze instellen bij de 'Tabel Tarieven' verzendmethode. De PostNL verzendmethode zal deze tarieven overnemen. Voor meer informatie over hoe u de tabel tarieven kunt instellen, kunt u <a href='%s' target='_blank'>hier</a> kijken."
462
  "TIG_PostNL::You should properly configure your checkout process. PostNL needs to be able to retrieve a properly formatted address from the checkout process in order to guarantee the order is delivered at the correct address. In order to do so, you need to enable the appropriate number of street lines in your checkout flow and make sure these have correct labels and validation settings. More info on how to do this, can be found <a href='%s' target='_blank'>here</a>.",U moet uw afrekenproces goed inrichten. PostNL moet uit het afrekenproces een correct opgemaakt adres kunnen lezen om er zeker van te zijn dat de zending ook echt naar het gekozen adres verstuurd wordt. Om hier zeker van te zijn moet u het juiste aantal straat regels aanzetten en deze voorzien van duidelijke labels en validatie. U kunt <a href='%s' target='_blank'>hier</a> meer lezen over hoe u dit juist kunt configureren.
463
  TIG_PostNL::Register the extension for use,Registreer de extensie voor gebruik
@@ -872,4 +872,10 @@ TIG_PostNL::The customer was redirected to the cart because the quote had the fo
872
  TIG_PostNL::The customer was redirected to the cart because the quote is multishipping.,"De klant is doorgestuurd naar de winkelwagen, omdat de quote voor multishipping bestemd is."
873
  TIG_PostNL::more delivery times and pick-up locations,meer bezorgtijden en ophaalpunten
874
  TIG_PostNL::Select this checkbox to only show post office locations that are open as early as 8:30 A.M.,Activeer deze filter om enkel de ophaalpunten te tonen die extra vroeg ophalen (vanaf 8.30 uur) bieden.
875
- TIG_PostNL::Select this checkbox to only show post office locations that are open after 7:00 P.M. on the next possible delivery date.,Activeer deze filter om enkel postkantoor locaties te tonen die 's avonds na 19:00 uur geopend zijn op de eerstvolgende bezorgdag.
 
 
 
 
 
 
46
  TIG_PostNL::Confirming & Label Printing Settings,Voormelden & Label printen Instellingen
47
  TIG_PostNL::Mode,Modus
48
  TIG_PostNL::Label size,Label formaat
49
+ TIG_PostNL::This setting only applies to multiple Dutch and EPS labels. GlobalPack labels are always printed as A4.,Deze instelling geldt alleen voor meerdere Nederlandse en EPS labels. GlobalPack labels wordt altijd in A4 geprint.
50
  TIG_PostNL::Maximum weight per parcel,Maximum gewicht per pakje
51
  "TIG_PostNL::Determine the maximum weight of each parcel. If a shipment's total weight exceeds this, the shipment will be spread out over multiple parcels.","Bepaal het maximale gewicht per pakje. Als het totaalgewicht teveel is, wordt de zending gesplitst in meerdere pakketjes."
52
  TIG_PostNL::Weight unit,Gewichtseenheid
457
  TIG_PostNL::Date,Datum
458
  "TIG_PostNL::We highly reccommend you place several 'test' shipments, before you use the extension for real orders and real shipments.",Wij raden ten sterkste aan om enkele 'test' zendingen aan te maken voordat u de extensie voor echte bestellingen en zendingen gebruikt.
459
  TIG_PostNL::Before you proceed to use this extension it is very important that you have properly configured certain elements of your Magento webshop.,"Voordat u de extensie in gebruik neemt, is het belangrijk dat u enkele onderdelen van uw webshop correct ingesteld heeft."
460
+ "TIG_PostNL::You should make sure that each product you intend to ship using PostNL has a maximum size of 175 x 78 x 58 cm and weighs less than 30 kg. The shipment will only be invoiced after the weigh-in at the PostNL sorting centre. If you wish to ship an order that weighs over 30 kg, you will have to split it into separate parcels that each weigh less than 30 kg. To do this you may create multiple shipments for a single order or you may use the extension's multi-colli functionality.",U moet er zeker van zijn dat elk product dat u wilt versturen met PostNL binnen de maximale afmetingen (175 x 78 x 58 cm) en gewicht (30 kg) valt . De zending wordt pas afgerekend na het wegen in het sorteerproces. Indien u een bestelling wilt versturen die meer weegt dan 30 kg zult u deze moeten opdelen in verschillende pakketten die ieder minder dan 30 kg wegen. U kunt hiervoor meerdere zendingen aanmaken voor één bestelling of u kunt gebruik maken van de multi-colli functionaliteit van de extensie.
461
  "TIG_PostNL::Make sure the PostNL shipping method is configured under system > config > shipping methods > PostNL. Only shipments made using this shipping method will be able to use PostNL's services. You may choose to charge either a flat rate or a table rate-based shipping fee. In the case of the latter, the table rates you have added under the Table Rate shipping method will be used. More info on how to setup the Table Rate shipping method can be found <a href='%s' target='_blank'>here</a>.","Wees er zeker van dat de PostNL verzendmethode correct geconfigureerd is in systeem > configuratie > verzendmethodes > PostNL. Enkel bestellingen die met deze verzendmethode geplaatst zijn, kunnen verwerkt worden door de extensie. U kunt kiezen om een plat tarief of een tabel tarief in rekening brengen voor het gebruik van PostNL. Indien u kiest voor tabel tarieven, dan kunt u deze instellen bij de 'Tabel Tarieven' verzendmethode. De PostNL verzendmethode zal deze tarieven overnemen. Voor meer informatie over hoe u de tabel tarieven kunt instellen, kunt u <a href='%s' target='_blank'>hier</a> kijken."
462
  "TIG_PostNL::You should properly configure your checkout process. PostNL needs to be able to retrieve a properly formatted address from the checkout process in order to guarantee the order is delivered at the correct address. In order to do so, you need to enable the appropriate number of street lines in your checkout flow and make sure these have correct labels and validation settings. More info on how to do this, can be found <a href='%s' target='_blank'>here</a>.",U moet uw afrekenproces goed inrichten. PostNL moet uit het afrekenproces een correct opgemaakt adres kunnen lezen om er zeker van te zijn dat de zending ook echt naar het gekozen adres verstuurd wordt. Om hier zeker van te zijn moet u het juiste aantal straat regels aanzetten en deze voorzien van duidelijke labels en validatie. U kunt <a href='%s' target='_blank'>hier</a> meer lezen over hoe u dit juist kunt configureren.
463
  TIG_PostNL::Register the extension for use,Registreer de extensie voor gebruik
872
  TIG_PostNL::The customer was redirected to the cart because the quote is multishipping.,"De klant is doorgestuurd naar de winkelwagen, omdat de quote voor multishipping bestemd is."
873
  TIG_PostNL::more delivery times and pick-up locations,meer bezorgtijden en ophaalpunten
874
  TIG_PostNL::Select this checkbox to only show post office locations that are open as early as 8:30 A.M.,Activeer deze filter om enkel de ophaalpunten te tonen die extra vroeg ophalen (vanaf 8.30 uur) bieden.
875
+ TIG_PostNL::Select this checkbox to only show post office locations that are open after 7:00 P.M. on the next possible delivery date.,Activeer deze filter om enkel postkantoor locaties te tonen die 's avonds na 19:00 uur geopend zijn op de eerstvolgende bezorgdag.
876
+ TIG_PostNL::Send a copy of the track & trace email,Verstuur een kopie van de track & trace e-mail
877
+ "TIG_PostNL::If enabled, you may enter seperate email addresses to which the track & trace email will be sent in addition to the customer.","Indien u deze optie aan zet, zal er een kopie van de track & trace e-mail worden verstuurd naar de opgegeven e-mail adressen."
878
+ TIG_PostNL::Send track & trace email copy to,Verstuur track & trace e-mail kopie naar
879
+ TIG_PostNL::You can enter multiple email addresses seperated by commas.,U kunt meerdere e-mailaddressen invullen gescheiden door komma's
880
+ TIG_PostNL::Track & trace email copy method,Track & trace e-mail kopie methode
881
+ PostNL configuration.,PostNL configuratie.
app/locale/nl_NL/template/email/TIG/PostNL/track_and_trace.html CHANGED
@@ -1,4 +1,4 @@
1
- <!--@subject PostNL - Track & trace information for your shipment {{var shipment.increment_id}} @-->
2
  <!--@vars
3
  {"store url=\"\"":"Store Url",
4
  "var logo_url":"Email Logo Image Url",
@@ -15,17 +15,17 @@
15
  <tr>
16
  <td align="center" valign="top" style="padding:20px 0 20px 0">
17
  <!-- [ header starts here] -->
18
- <table bgcolor="FFFFFF" cellspacing="0" cellpadding="10" border="0" width="470">
19
  <tr>
20
  <td valign="top">
21
- <a href="{{store url=""}}" style="color:#1E7EC8;"><img src="{{var logo_url}}" alt="{{var logo_alt}}" border="0"/></a>
22
- <img src="{{var logo_url}}" alt="{{var logo_alt}}" border="0" style="float:right"/>
23
  </td>
24
  </tr>
25
  <!-- [ middle starts here] -->
26
  <tr>
27
  <td valign="top">
28
- <p style="font-size:11px; font-weight:normal; line-height:1.5em; margin:0 0 11px 0;">Beste heer/mevrouw {{htmlescape var=$order.getCustomerName()}},</h1>
29
  <p style="font-size:11px; line-height:1.5em; margin:0 0 8px 0;">Uw bestelling van {{var store.getFrontendName()}}, met barcode {{var barcode}} wordt vandaag verzonden.</p>
30
  <p style="font-size:11px; line-height:1.5em; margin:0;">Volg uw pakket op <a href="{{var barcode_url}}" target="_blank">mijnpakket</a> om te zien wanneer PostNL het pakket bij u bezorgt. <p>
31
  <p style="font-size:11px; line-height:1.5em; margin:0;">Met vriendelijke groet,</p>
1
+ <!--@subject PostNL - Track & trace informatie voor uw zending {{var shipment.increment_id}} @-->
2
  <!--@vars
3
  {"store url=\"\"":"Store Url",
4
  "var logo_url":"Email Logo Image Url",
15
  <tr>
16
  <td align="center" valign="top" style="padding:20px 0 20px 0">
17
  <!-- [ header starts here] -->
18
+ <table bgcolor="#FFFFFF" cellspacing="0" cellpadding="10" border="0" width="470">
19
  <tr>
20
  <td valign="top">
21
+ <a href='{{store url=""}}' style="color:#1E7EC8;"><img src="{{var logo_url}}" alt="{{var logo_alt}}" border="0"/></a>
22
+ <img src='{{skin url="images/TIG/PostNL/postnl_email_logo.png" _area="frontend"}}' alt="PostNL" border="0" style="float:right"/>
23
  </td>
24
  </tr>
25
  <!-- [ middle starts here] -->
26
  <tr>
27
  <td valign="top">
28
+ <p style="font-size:11px; font-weight:normal; line-height:1.5em; margin:0 0 11px 0;">Beste heer/mevrouw {{htmlescape var=$order.getCustomerName()}},</p>
29
  <p style="font-size:11px; line-height:1.5em; margin:0 0 8px 0;">Uw bestelling van {{var store.getFrontendName()}}, met barcode {{var barcode}} wordt vandaag verzonden.</p>
30
  <p style="font-size:11px; line-height:1.5em; margin:0;">Volg uw pakket op <a href="{{var barcode_url}}" target="_blank">mijnpakket</a> om te zien wanneer PostNL het pakket bij u bezorgt. <p>
31
  <p style="font-size:11px; line-height:1.5em; margin:0;">Met vriendelijke groet,</p>
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>tig_postnl</name>
4
- <version>1.2.1</version>
5
  <stability>stable</stability>
6
  <license uri="http://creativecommons.org/licenses/by-nc-nd/3.0/nl/deed.en_US">Creative Commons License</license>
7
  <channel>community</channel>
@@ -20,7 +20,19 @@ Services included:&#xD;
20
  - Viewing detailed shipping status information&#xD;
21
  - PostNL Checkout&#xD;
22
  - Emailing customers track &amp; trace information, allowing them to track their shipment from the moment you confirm it to the moment it arrives at their doorstep</description>
23
- <notes>==== v1.2.1 ====&#xD;
 
 
 
 
 
 
 
 
 
 
 
 
24
  ==== Release highlights ====&#xD;
25
  - The extension now fully supports Magento 1.9 and 1.14!&#xD;
26
  &#xD;
@@ -154,9 +166,9 @@ Services included:&#xD;
154
  &#xD;
155
  This is the initial beta release of the extension. If you have any questions, please contact the Total Internet Group Servicedesk</notes>
156
  <authors><author><name>TiG</name><user>supporttotal</user><email>servicedesk@totalinternetgroup.nl</email></author></authors>
157
- <date>2014-05-27</date>
158
- <time>12:03:02</time>
159
- <contents><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><dir name="TIG"><file name="postnl.xml" hash="8c5f5eac0d32c28b65303c04e426dfeb"/></dir></dir><dir name="template"><dir name="TIG"><dir name="PostNL"><dir name="address_validation"><dir name="checkout"><dir name="onepage"><file name="billing.phtml" hash="bb511e4228d959889a6774c366e85e72"/><file name="postcode_check.phtml" hash="60608e1f754e77885ac1859efa04384c"/><file name="shipping.phtml" hash="f26938cc35b4f8b1488c12e493d0a7ce"/></dir></dir><dir name="customer"><dir name="address"><file name="edit.phtml" hash="2be3b3803992b7a256f7056d726beed9"/><file name="postcode_check.phtml" hash="dd4e9acab6c3ec9570fcc1f660386ff0"/></dir></dir><dir name="onestepcheckout"><file name="billing_fields.phtml" hash="8fa6cbc45e29d2f80e656f7241ac9ad7"/><file name="postcode_check.phtml" hash="d0368f25972d28a53a9c3da107b78e0c"/><file name="shipping_fields.phtml" hash="90ceed1c7dfb5a0989495d87646789f0"/></dir><file name="validate.phtml" hash="9c271b0e8460cda7b7775b20b0cd3f2a"/></dir><dir name="checkout"><dir name="cart"><file name="js.phtml" hash="08535a3839367758d5073e39b532aff1"/><file name="link.phtml" hash="110d66c2163d7ee92808410ab3925911"/><file name="spinner.phtml" hash="d05caa24c65ff055c175888d8e9dda49"/></dir><file name="summary.phtml" hash="97309da324f281253f23bce82eee99f7"/></dir><dir name="core"><dir name="page"><dir name="html"><file name="js_translate.phtml" hash="a62be2c385e01f0ea7e3bb9a2b0ae916"/></dir></dir><dir name="sales"><dir name="order"><file name="pakje_gemak_address.phtml" hash="f15a6b100cabfe6b0856e4f67545d79f"/><dir name="shipment"><file name="shipping_status.phtml" hash="58039a33091f0216ee8460cd07225c70"/></dir></dir></dir></dir><dir name="delivery_options"><file name="addlocation.phtml" hash="764c1a556eaaa87909e7331f708baeb6"/><file name="addphonenumber.phtml" hash="4c255e24edac3fea851d9d46a3c27ef3"/><file name="js.phtml" hash="677583a3185921c818234cdfbc1228c1"/><dir name="onepage"><file name="available.phtml" hash="a507553fb3029956ae3b7f64d30885c6"/><file name="deliveryoptions.phtml" hash="e2266b3fe82881ca6bc965bb5a53685d"/></dir><dir name="onestepcheckout"><file name="available.phtml" hash="a46179d1ed1e93f4d320a928ffa353e5"/><file name="deliveryoptions.phtml" hash="a36f357a1b3bb067f5799da4ad640fa3"/></dir><file name="theme.phtml" hash="393c0a9b2393c478158227ab2f1f508f"/></dir><dir name="mijnpakket"><file name="account_notification.phtml" hash="9de7c32a2e78f20f27ef9831a9ce9bc0"/><file name="js.phtml" hash="ce250ae2ca07e6d2a974b22fa7c10855"/><dir name="onepage"><file name="login_button.phtml" hash="9684044d42db1112bbd4077b0b50e842"/><file name="success.phtml" hash="6bd7afa18343ab35607a776ca0373353"/></dir><dir name="onestepcheckout"><file name="login_button.phtml" hash="a4882c245afc210fa48ab08dad3fd03f"/></dir><file name="order_success_js.phtml" hash="00c7819c76fb366f3e807fcf28699db4"/></dir></dir></dir></dir></dir></dir><dir name="enterprise"><dir name="default"><dir name="template"><dir name="TIG"><dir name="PostNL"><dir name="address_validation"><dir name="checkout"><dir name="onepage"><file name="billing.phtml" hash="87248238ad21ff7f21e7bcc6efbb4ec5"/><file name="postcode_check.phtml" hash="82bb1a31e2f0d6b47a5cabefc0aa673a"/><file name="shipping.phtml" hash="b7b899ab8b1e1b27eecadfc88a3ea779"/></dir></dir><dir name="customer"><dir name="address"><file name="edit.phtml" hash="cac5a3f4e32d1c1351d2656027ee1907"/><file name="postcode_check.phtml" hash="ce0677837fe9e39705f5b4abe8b39a10"/></dir></dir></dir><dir name="core"><dir name="sales"><dir name="order"><file name="pakje_gemak_address.phtml" hash="45a35f20d511defaeb66b39ea7b1b196"/></dir></dir></dir><dir name="mijnpakket"><dir name="onepage"><file name="login_button.phtml" hash="76d4bb422fd6451e21ec0006067b713b"/></dir></dir></dir></dir></dir></dir></dir><dir name="rwd"><dir name="default"><dir name="layout"><dir name="TIG"><file name="postnl.xml" hash="ceb57a22919b4c643eb9a843d17b41b1"/></dir></dir><dir name="template"><dir name="TIG"><dir name="PostNL"><dir><dir name="address_validation"><dir name="checkout"><dir name="onepage"><file name="postcode_check.phtml" hash="e1cf2f32369cc1e2725fa052440c7215"/></dir></dir><dir name="customer"><dir name="address"><file name="postcode_check.phtml" hash="37abeb9e6958e9afa446510d0b5edc24"/></dir></dir></dir><dir name="checkout"><dir name="cart"><file name="link.phtml" hash="bfed4675e73a099ed20d9309c9a85943"/></dir></dir><dir name="mijnpakket"><dir name="onepage"><file name="login_button.phtml" hash="3d17a0395759b11c040753ff003568f9"/></dir></dir></dir></dir></dir></dir></dir></dir></dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><dir name="TIG"><file name="postnl.xml" hash="3fba1357eafad55d5de82fb3419a3547"/></dir></dir><dir name="template"><dir name="TIG"><dir name="PostNL"><file name="cron_notification.phtml" hash="bbaa9cf5123e86734c577a45bbcbe0e1"/><dir name="sales"><dir name="order"><dir name="address"><dir name="form"><file name="container.phtml" hash="475c12e39b9b210cce383b52ccbe5825"/></dir></dir><file name="filter_massaction.phtml" hash="afacb1baee71b94459d8af12c9e50537"/><file name="product_options.phtml" hash="aa38f973051fdc34bda7f4b81c978a32"/><dir name="shipment"><dir name="create"><file name="shipment_options.phtml" hash="dc6c03c5ed5ab44e747f990b77fe070f"/></dir><dir name="view"><file name="pakje_gemak_address.phtml" hash="b6840800e9991602487df1cd4a178601"/><file name="shipping_status.phtml" hash="1114fd97d21dfd7e06134d957a131e48"/><dir name="tab"><file name="status_history.phtml" hash="6dec858a231b58112635604645bb9d5c"/></dir></dir><file name="view.phtml" hash="63e0e761bc89aa13bf991e9bfc7d3ded"/></dir><dir name="view"><file name="pakje_gemak_address.phtml" hash="721d92cf511a7f9550125038c8a0554c"/></dir><file name="windows_theme.phtml" hash="194308e4e909917cb47045df1a96dafc"/></dir><dir name="shipment"><file name="customize_link.phtml" hash="f605b823ff988c0a04b0d4ff40d420d1"/><file name="js.phtml" hash="7eee92bb01e2b954c00e5ccecae99840"/><file name="testmode_warning.phtml" hash="e18c725ce2794108baf6fa2b3ec54623"/></dir></dir><dir name="system"><dir name="config"><dir name="form"><dir name="field"><file name="config_check.phtml" hash="747c24bf5874bb53aaec3a3fa9f18698"/><file name="field_header.phtml" hash="442c3eacf6253b01496545ab31d8a748"/><file name="info_box.phtml" hash="d7c491709084af011cef3c14e25c1333"/><file name="js.phtml" hash="4acd2f0874add9f5941c3e069b056dbd"/><file name="split_address_check.phtml" hash="2f0abbfcadeadeea69d7c154f5536e39"/><file name="support_tab.phtml" hash="c314737e57fedb27ae9d75beaed86b51"/><file name="warning_box.phtml" hash="bf0aa8db276b61186fb6d7a1533344ba"/></dir></dir></dir></dir><dir name="widget"><dir name="grid"><dir name="massaction"><file name="label_start_pos.phtml" hash="8947d61e8c032ba2948d1b45a5a84cdc"/></dir></dir></dir></dir></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="TIG_PostNL.xml" hash="4c10ab75f19631cdcac4b8d4b5bd97cd"/></dir></target><target name="mageskin"><dir name="frontend"><dir name="base"><dir name="default"><dir name="css"><dir name="TIG"><dir name="PostNL"><file name="cart.css" hash="d51ab6c200da5c54eb8e672c9325dbf5"/><file name="default.css" hash="7f05bf3ebd09bc4cf13d2582afe04980"/><dir name="deliveryoptions"><file name="default.css" hash="981c67d03fe1419ba3931524248d73da"/><file name="ie8.css" hash="1f0e04ca6c7be6572defb3adadafd28a"/><file name="neutral.css" hash="fa30b69a934fa5a04005dcdbca5038c5"/><file name="onestepcheckout.css" hash="fd7d786cc66c34b81555111e34c062eb"/><file name="onestepcheckout_neutral.css" hash="889d6581fe4ac733625b9878237928b3"/></dir><file name="messages.css" hash="19d03101c862b45535bc08344c12716a"/><file name="mijnpakket.css" hash="c0b66ee013c1a154bf6d6a2ad0d45c82"/><file name="postcodecheck.css" hash="84a497060c26440c6e387d2f7a26e0fd"/><file name="shipping_status.css" hash="fcb3fe311d50ee93176dc29ef2d5a0b9"/></dir></dir></dir><dir name="images"><dir name="TIG"><dir name="PostNL"><file name="bkg_progress_small.png" hash="fc6c9f28b6a6aae6f0096d504c0952df"/><file name="bkg_tooltip.png" hash="56cfed3ed8a65b19f8de88946d1a0a01"/><dir name="deliveryoptions"><file name="bkg_add-location.png" hash="a30d4aea73b094df5f434f9856dc626b"/><file name="bkg_add-phonenumber_input.gif" hash="25fa933b55e69a552f7d1cf704a8d6f9"/><file name="bkg_btn-close.png" hash="5438c768cd63b2476cf14418acb28709"/><file name="bkg_button.png" hash="a1bf9f994f90033e143b7e2023c0e4fb"/><file name="bkg_checkbox.png" hash="71628b28d876482b600755e577132fee"/><file name="bkg_location-search_input.gif" hash="fcee91af0d97e50fcf698eb7485327a8"/><file name="bkg_location-selected.png" hash="efe72719a889f94f4aa24e6f6d6db8df"/><file name="bkg_location.gif" hash="937e1a367cafdcc0d4f62afb572879a1"/><file name="bkg_more-info.png" hash="3681dc9b54011dae7c81d6c4b2e74a2b"/><file name="bkg_option.gif" hash="a3b9a292d28540147bfb034060731cb3"/><file name="bkg_phonenumber_failed.png" hash="8d1a0503bfe7cdfc2e35365bba2a8f7d"/><file name="bkg_phonenumber_verify.png" hash="28f90e0364778463144004ff289d70a7"/><file name="bkg_postnl-logo.png" hash="a34b5d938234a7360e5566df9fb4273f"/><file name="bkg_postnl.png" hash="46c5f6c65f66da09b39496c7cef94e89"/><file name="bkg_radio.png" hash="3cc3ecb77e5ce62511385d59e037b398"/><file name="bkg_tooltip.png" hash="cbd753cc9cb873468d1bba07e70f0d2f"/><file name="ie8_bkg_transparent-white.png" hash="a603671f51cb11ed9370bcd3181741c7"/><file name="loader_default.gif" hash="9fec99d885ad6bc45aee40d1c171ca4b"/><file name="loader_mini.gif" hash="f244ab6581d4329e3dbb7e289d47dfb2"/><dir name="locations"><file name="crc_albertheijn.png" hash="57af250f9d59b9074132446e0109ee93"/><file name="crc_automaat.png" hash="e9e94287380f27f6752d89f995b1b7f4"/><file name="crc_bruna.png" hash="326912294c49e8c896a34a28a7c03127"/><file name="crc_c1000.png" hash="8628f2e6328805a84e8eac28511b6857"/><file name="crc_coop.png" hash="0250717148ab776d156371a3e0912b9e"/><file name="crc_default.png" hash="777edf1aa124f6cb13258bb510db809b"/><file name="crc_emte.png" hash="ba7841f22a08d379f1ddabbe708ffa41"/><file name="crc_gamma.png" hash="6dc0ff8b36892af40ce80a36355d311a"/><file name="crc_jumbo.png" hash="061ae156e55e3aee6130cd1beb8d1b9a"/><file name="crc_karwei.png" hash="a7b8ee695b996cb757fd5c1a98e888e4"/><file name="crc_plus.png" hash="e67e871870c87723d835db23af18d4e9"/><file name="crc_primera.png" hash="e367c1e5b3fb4e25303aff57dc1a1259"/><file name="crc_readshop.png" hash="eeef9a98c0cd68f4351154d174bfdda9"/><file name="crc_spar.png" hash="4939d469045e6c7d7e65f172d97e30b1"/><file name="crc_staples.png" hash="94136b2a8d00dfdadcad6c7088920409"/><file name="drp_albertheijn.png" hash="944b90f36d5f225fcc74d360d368e628"/><file name="drp_automaat.png" hash="ce0bd13abc5e6c647c2ac8bc0fb5c150"/><file name="drp_bruna.png" hash="feb3ea92e3d32e98edf04aa22604afe6"/><file name="drp_c1000.png" hash="9e89a865b72d182135226fc72a98e03a"/><file name="drp_coop.png" hash="ddd34926b0a306cb0b28f385a78bd972"/><file name="drp_default.png" hash="d97f2e415e54b5d9fa19893210cedbc0"/><file name="drp_emte.png" hash="34e526c095a080cf92ccf15318a56ba3"/><file name="drp_gamma.png" hash="56da28b8c2e0ad6087eb0c4408f9904c"/><file name="drp_jumbo.png" hash="f191ec9c01b807d32811d9a4f0c3ad19"/><file name="drp_karwei.png" hash="d3da2d8b7f65ddecdf13091094a8fbea"/><file name="drp_plus.png" hash="9bf96ded99d0e47b34256cdc78310754"/><file name="drp_primera.png" hash="095b1ced03087b390b96ee3d525dce7e"/><file name="drp_readshop.png" hash="d2884c0bdd81103e9319469727bc9855"/><file name="drp_spar.png" hash="9ff6bb1fc489ba714d3249c35fb01c77"/><file name="drp_staples.png" hash="2196de7813fa6db34f8b0abb1aedecd5"/><file name="tmb_albertheijn.png" hash="58ae464ff7bb420f075e53cd35d9852f"/><file name="tmb_bruna.png" hash="ff523c258b47be502b335a7e8cc5032c"/><file name="tmb_c1000.png" hash="f96136426d2a2af40ef7b76953ec58b5"/><file name="tmb_coop.png" hash="b1e41c613b1876c787e9d4d5b30ba1a5"/><file name="tmb_default.png" hash="ed65f2da1032b355422db7c86a126668"/><file name="tmb_emte.png" hash="d0e9dc8f785b8db0da8bd233a0d09a11"/><file name="tmb_gamma.png" hash="55ef36ad8aa803469e28f368b7eac536"/><file name="tmb_jumbo.png" hash="3bae16290854122b2b3439de2402c5a1"/><file name="tmb_karwei.png" hash="84e1aaceb9c0ff3864b2b7aead52e033"/><file name="tmb_plus.png" hash="fd3bf32ffb591f79935bb906249ca59e"/><file name="tmb_primera.png" hash="fb32942772b4ca57a45ee0e08406c3bc"/><file name="tmb_readshop.png" hash="6a6826139698fa20e0fd4210d17b50e2"/><file name="tmb_spar.png" hash="89694e10f073619fd944d8c2c7b9e357"/><file name="tmb_staples.png" hash="115af373105f6494c74186657ddca6a6"/></dir><file name="osc_bkg_postnl-logo.png" hash="c23e987598dcd439e54f9d48e9e4777a"/><dir name="unbranded"><file name="bkg_checkbox.png" hash="232ad0ec83b32af770481bb1cdd1520e"/><file name="bkg_more-info.png" hash="96a0b80b2907a28489d8d87f845d8a5f"/><file name="bkg_radio.png" hash="430bea179fc0e6570c1cca905b46454e"/><file name="button_action.png" hash="c297cbc6aa5c44272308b660038b363f"/><file name="button_next.png" hash="768365d31d95bb5c8b1ccebb62920a95"/><file name="loader_default.gif" hash="1645395ddefeab89f51f59b2dbcbd7c0"/><file name="loader_mini.gif" hash="2fd11016727f350b98af17fc76b3a0d3"/></dir></dir><file name="icon-tooltip.png" hash="5767601cd66b23d0b6fe8defc10dd48d"/><dir name="mijnpakket"><file name="app_buttons.png" hash="74f3a4d80dafe1a0979ce7ad0bd70824"/><file name="app_logo.png" hash="e5426bac3d0b4e28ef1f3628503c2365"/><file name="logo.png" hash="6fa95b3a5e83b6887848b5feb7369bf1"/><file name="logo_small.png" hash="c23e987598dcd439e54f9d48e9e4777a"/></dir><file name="opc-ajax-loader.gif" hash="e805ea7eca1f34c75ba0f93780d32d38"/><file name="overlay.png" hash="f08feb852288bea420ba3af68ae34a1f"/><file name="postnl_email_logo.png" hash="8bd358b514e04e7ceca03efb38f8fded"/><file name="postnl_spinner.gif" hash="cef321b68ab934932ee317986823db67"/></dir></dir></dir><dir name="js"><dir name="TIG"><dir name="PostNL"><file name="ajax.js" hash="213bbdf02400a673da0e6a3d18187b36"/><file name="checkout.js" hash="08f57b0b12b7b0c3cbdc2a5ebfeb9b7a"/><file name="deliveryOptions.js" hash="0fb80030154c4ff6358d1e3b2e736784"/><dir name="deliveryoptions"><file name="cufon-fonts.js" hash="7605bb17619f1a55e3521a700dfe7b1a"/><file name="cufon-settings.js" hash="9bb0303049c178db309438c26f7def2c"/><file name="cufon-yui.js" hash="7e47005ed153f788718c10e97da829b3"/></dir><file name="livepipe.js" hash="b9f5e38a94ce3f4f6f6ebcabca23d8c3"/><file name="mijnpakketLogin.js" hash="d73fe0cdd7a7a6b2e1afabc37d802561"/><file name="placeholder.min.js" hash="c2824272a822d3fb8429a239e7d20c24"/><file name="postcodecheck.js" hash="b474df7b1d8c01ede6deb876f7885a26"/><file name="scrollbar.js" hash="b6780bb325e0ac78bc37e7b9d1bac863"/><file name="slider.js" hash="1679e9ff9a8d3784387040fc7cef9203"/></dir></dir></dir></dir></dir><dir name="enterprise"><dir name="default"><dir name="images"><dir name="TIG"><dir name="PostNL"><dir name="deliveryoptions"><dir name="locations"><file name="crc_albertheijn.png" hash="57af250f9d59b9074132446e0109ee93"/><file name="crc_automaat.png" hash="e9e94287380f27f6752d89f995b1b7f4"/><file name="crc_bruna.png" hash="326912294c49e8c896a34a28a7c03127"/><file name="crc_c1000.png" hash="8628f2e6328805a84e8eac28511b6857"/><file name="crc_coop.png" hash="0250717148ab776d156371a3e0912b9e"/><file name="crc_default.png" hash="777edf1aa124f6cb13258bb510db809b"/><file name="crc_emte.png" hash="ba7841f22a08d379f1ddabbe708ffa41"/><file name="crc_gamma.png" hash="6dc0ff8b36892af40ce80a36355d311a"/><file name="crc_jumbo.png" hash="061ae156e55e3aee6130cd1beb8d1b9a"/><file name="crc_karwei.png" hash="a7b8ee695b996cb757fd5c1a98e888e4"/><file name="crc_plus.png" hash="e67e871870c87723d835db23af18d4e9"/><file name="crc_primera.png" hash="e367c1e5b3fb4e25303aff57dc1a1259"/><file name="crc_readshop.png" hash="eeef9a98c0cd68f4351154d174bfdda9"/><file name="crc_spar.png" hash="4939d469045e6c7d7e65f172d97e30b1"/><file name="crc_staples.png" hash="94136b2a8d00dfdadcad6c7088920409"/><file name="drp_albertheijn.png" hash="944b90f36d5f225fcc74d360d368e628"/><file name="drp_automaat.png" hash="ce0bd13abc5e6c647c2ac8bc0fb5c150"/><file name="drp_bruna.png" hash="feb3ea92e3d32e98edf04aa22604afe6"/><file name="drp_c1000.png" hash="9e89a865b72d182135226fc72a98e03a"/><file name="drp_coop.png" hash="ddd34926b0a306cb0b28f385a78bd972"/><file name="drp_default.png" hash="d97f2e415e54b5d9fa19893210cedbc0"/><file name="drp_emte.png" hash="34e526c095a080cf92ccf15318a56ba3"/><file name="drp_gamma.png" hash="56da28b8c2e0ad6087eb0c4408f9904c"/><file name="drp_jumbo.png" hash="f191ec9c01b807d32811d9a4f0c3ad19"/><file name="drp_karwei.png" hash="d3da2d8b7f65ddecdf13091094a8fbea"/><file name="drp_plus.png" hash="9bf96ded99d0e47b34256cdc78310754"/><file name="drp_primera.png" hash="095b1ced03087b390b96ee3d525dce7e"/><file name="drp_readshop.png" hash="d2884c0bdd81103e9319469727bc9855"/><file name="drp_spar.png" hash="9ff6bb1fc489ba714d3249c35fb01c77"/><file name="drp_staples.png" hash="2196de7813fa6db34f8b0abb1aedecd5"/><file name="tmb_albertheijn.png" hash="58ae464ff7bb420f075e53cd35d9852f"/><file name="tmb_bruna.png" hash="ff523c258b47be502b335a7e8cc5032c"/><file name="tmb_c1000.png" hash="f96136426d2a2af40ef7b76953ec58b5"/><file name="tmb_coop.png" hash="b1e41c613b1876c787e9d4d5b30ba1a5"/><file name="tmb_default.png" hash="ed65f2da1032b355422db7c86a126668"/><file name="tmb_emte.png" hash="d0e9dc8f785b8db0da8bd233a0d09a11"/><file name="tmb_gamma.png" hash="55ef36ad8aa803469e28f368b7eac536"/><file name="tmb_jumbo.png" hash="3bae16290854122b2b3439de2402c5a1"/><file name="tmb_karwei.png" hash="84e1aaceb9c0ff3864b2b7aead52e033"/><file name="tmb_plus.png" hash="fd3bf32ffb591f79935bb906249ca59e"/><file name="tmb_primera.png" hash="fb32942772b4ca57a45ee0e08406c3bc"/><file name="tmb_readshop.png" hash="6a6826139698fa20e0fd4210d17b50e2"/><file name="tmb_spar.png" hash="89694e10f073619fd944d8c2c7b9e357"/><file name="tmb_staples.png" hash="115af373105f6494c74186657ddca6a6"/><file name="tmp_maps.jpg" hash="c8d8e93fe427b236489b2904e276e124"/></dir></dir><file name="opc-ajax-loader.gif" hash="e805ea7eca1f34c75ba0f93780d32d38"/><file name="overlay.png" hash="f08feb852288bea420ba3af68ae34a1f"/><file name="postnl_spinner.gif" hash="c97d0bd9ccc8fa0b460c07caeb63c293"/></dir></dir></dir><dir name="css"><dir name="TIG"><dir name="PostNL"><file name="cart.css" hash="4f8b417defed03e6ae8c4ec292b2e2c3"/><file name="postcodecheck.css" hash="dcc017ca8f6b882c8dd8127ab5eea42a"/></dir></dir></dir></dir></dir><dir name="rwd"><dir name="default"><dir name="css"><dir name="TIG"><dir name="PostNL"><file name="rwd.css" hash="4d14fe3ff05c4bf41a5161b113b15767"/><file name="rwd_osc.css" hash="d3b7cc449980f3dba097db6127a45f0c"/></dir></dir></dir></dir></dir></dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="css"><dir name="TIG"><dir name="PostNL"><file name="shipping_status.css" hash="1029efbae8aa4935692733b1e28b1a61"/><file name="styles.css" hash="b93c2770a5269f8335bf21bd0d5b80d0"/><file name="system_config_edit.css" hash="103eaeae2d9e2a4a43b48a83ea7f2dad"/><file name="system_config_edit_postnl.css" hash="9c7a8812d336a042b2e303e071838e7d"/><file name="system_config_edit_postnl_magento16.css" hash="f9a8479639e2fe8d0da9cf602b1607c3"/></dir></dir></dir><dir name="images"><dir name="TIG"><dir name="PostNL"><file name="bkg_progress_grey.png" hash="8d4d5144292b98a23475367ede717b17"/><file name="bkg_progress_grey_begin.png" hash="6815c9264e78f8f9d2805c595f8800c4"/><file name="bkg_progress_grey_end.png" hash="dae90fdb38adf65e6ccc209b6a80372c"/><file name="bkg_progress_grey_seperator.png" hash="10178e12fd14fb783b4ae0fbd55a4a81"/><file name="bkg_progress_orange.png" hash="8a59f76e36ee0492f5341b8e5e7ee79b"/><file name="bkg_progress_orange_begin.png" hash="ecc84d5252e397f4a783ee7e0c426d63"/><file name="bkg_progress_orange_end.png" hash="d0a81dfea1a3eddc699482a62af01fc9"/><file name="bkg_progress_orange_grey_seperator.png" hash="ab558953ec4c40ef44653ab481084345"/><file name="bkg_progress_orange_seperator.png" hash="a774eb89763d95f2e60d03f8702fba86"/><file name="bkg_progress_sprite.png" hash="3230379a4544f85062a6ba91fa8083e2"/><file name="bkg_tooltip.png" hash="56cfed3ed8a65b19f8de88946d1a0a01"/><file name="btn_download_icon.png" hash="142d5ebbe43ad09dde97cd32e1ef4303"/><file name="glyph_error.gif" hash="a138b803d772f552aa2e49e1c506edbd"/><file name="glyph_info.gif" hash="40f72d28be63ecf2b6ef44c7ea730104"/><file name="glyph_manual.png" hash="771db63b6ffc9de1c06da564796adc6e"/><file name="glyph_pdf.png" hash="a5ea929f4014a88d7320d0293913ace3"/><file name="glyph_success.gif" hash="465a056a3ba3d94367f51c3c0b751391"/><file name="glyph_warning.gif" hash="fa817cb6d49efb9855942ef2b739fc6c"/><file name="icon-tooltip.png" hash="5767601cd66b23d0b6fe8defc10dd48d"/><file name="legend.gif" hash="d8fb0642901868d489d31b426f3e3406"/><file name="logo_postnl.png" hash="10b9ae4ad2c5365312c257dcdac1fc64"/><file name="tig_logo_medium.gif" hash="3e1071908cfdb7b472438482c3331ac7"/></dir></dir></dir><dir name="js"><dir name="TIG"><dir name="PostNL"><file name="shipment_options.js" hash="c687c46d027410abaf9c8642aca9e692"/><file name="validate.js" hash="729162d483749fd229c7f0f30b2e2df2"/></dir></dir></dir></dir></dir></dir></target><target name="magelib"><dir name="TIG"><dir name="PostNL"><dir name="Fpdf"><dir name="font"><file name="courier.php" hash="ca6fb483549604fb4a675f9e28a73b02"/><file name="courierb.php" hash="a58d7dadf3cf564ca5d5138cea76a3a9"/><file name="courierbi.php" hash="c0e416771dc56cb2397390978d112dc2"/><file name="courieri.php" hash="419961dbeeb20f08da780dccb427dec8"/><file name="helvetica.php" hash="fc53162b924ddd522bd6cfe86fab48f4"/><file name="helveticab.php" hash="4e9ffda682a131fef2e04ccd94aa342d"/><file name="helveticabi.php" hash="6db8943bd91bf13514b82872cf160d45"/><file name="helveticai.php" hash="13b795df0c33eb93c48621792f2ea12d"/><file name="symbol.php" hash="fbd9250c21af99f6398d6f817511f91f"/><file name="times.php" hash="82bc100f1f3bd8b2d9b7fb5ee8f44b3a"/><file name="timesb.php" hash="3a241a1658bf9ea2062e63f464166c31"/><file name="timesbi.php" hash="bfdd0235a71793becefff778c2b16243"/><file name="timesi.php" hash="17fd69f176915a2113fe28057b43a75e"/><file name="zapfdingbats.php" hash="2848ab2daf3128f310b5cf713ca4acee"/></dir><file name="fpdf.css" hash="84befac49464a9aac54aa511bc1fd754"/><file name="fpdf.php" hash="4ebda2283504bfd34b85753433d7e098"/><file name="helvetica.php" hash="fc53162b924ddd522bd6cfe86fab48f4"/><file name="license.txt" hash="fb784726cfe3615da38bc23a3cac445b"/></dir><file name="Fpdf.php" hash="0e5a4fdbc7f347dad7b4ae99ff17b912"/><dir name="Fpdi"><dir name="filters"><file name="FilterASCII85.php" hash="c6b756ac5874cc6f6f986349b605af64"/><file name="FilterASCII85_FPDI.php" hash="1240e0c64602864401f886546e09fe7b"/><file name="FilterLZW.php" hash="fcba53a4dd3a1f78e62c7aeac726c7b5"/><file name="FilterLZW_FPDI.php" hash="b11c50e66e20744ad20f176cae4af284"/></dir><file name="fpdf_tpl.php" hash="3966b13c398c94509e2fb6199593b104"/><file name="fpdi.php" hash="abb524d17a2cbdd3c3b7e89184aad443"/><file name="fpdi2tcpdf_bridge.php" hash="bcc317cbcfdd3faeae4a1eb480bded0f"/><file name="fpdi_pdf_parser.php" hash="d7a3bf0153ae9ad57976afb0be5d195d"/><file name="pdf_context.php" hash="0b69a25dbb830f3b68c054c2e43b876e"/><file name="pdf_parser.php" hash="5ff22a8c1ce5b1eee82c8017311a797e"/></dir><file name="Fpdi.php" hash="d27598dec3f07fdde32bec338c52d02d"/></dir></dir></target><target name="magelocale"><dir name="en_US"><dir name="template"><dir name="email"><dir name="TIG"><dir name="PostNL"><file name="track_and_trace.html" hash="7ace8a754b0ea35775e0a3b66ad96b19"/></dir></dir></dir></dir><file name="TIG_PostNL.csv" hash="e408a8f933af48354a2c1682092095e3"/></dir><dir name="nl_NL"><dir name="template"><dir name="email"><dir name="TIG"><dir name="PostNL"><file name="track_and_trace.html" hash="122c60807ec59834e3445fe40540e8c9"/></dir></dir></dir></dir><file name="TIG_PostNL.csv" hash="c026c3086c166be8b15cb1fbfc963e11"/></dir></target><target name="magecommunity"><dir name="TIG"><dir name="PostNL"><dir name="Block"><dir name="Adminhtml"><dir name="Carrier"><dir name="Postnl"><dir name="Tablerate"><file name="Grid.php" hash="aa302aea9bc76602f45e72a8ade41ec5"/></dir></dir></dir><file name="CronNotification.php" hash="0f8b504847b88e478ee08adf57257a66"/><dir name="Sales"><dir name="Order"><file name="ProductOptions.php" hash="a235042c35f019752b6d8dbdbbc57013"/><dir name="Shipment"><dir name="Create"><file name="ShipmentOptions.php" hash="061feb03b18b3bb32e4835fa05e5f2dd"/></dir><dir name="View"><file name="ShippingStatus.php" hash="15704bc8db147b32aed11065183edd18"/><dir name="Tab"><file name="StatusHistory.php" hash="bfb6ea404d194fe446bd5d1826f5fc6b"/></dir><file name="Tabs.php" hash="01ef76859c87c14211200c59d1e6d409"/></dir></dir></dir></dir><dir name="System"><dir name="Config"><dir name="Form"><dir name="Field"><file name="ActivateButton.php" hash="0c917932a1aaa04b528c266eae71ea85"/><file name="ActivatedFieldHeader.php" hash="67d061d6c247f7b989d1cfa754c53759"/><file name="Anchor.php" hash="6236df7dc27e69cd7e4863ef413468db"/><file name="ConfigCheck.php" hash="94c1567cfcca6d80c0f9bb0a66b76142"/><file name="InfoBox.php" hash="0502cb1c0805a9d98a477d52e59398cb"/><file name="Obscure.php" hash="7ced9d02c60457852d2902a2ea222dce"/><file name="SplitAddressCheck.php" hash="4a66dcc0d99b43d87ab216351fca344f"/><file name="SupportTab.php" hash="b173ba05d17563ca1fb09c2e0493996f"/><file name="TablerateExport.php" hash="50fa585f4cd129ca7ef59082a44eacbb"/><file name="TablerateImport.php" hash="d26ef348eb945a2e69978188cff2dff7"/><dir name="TextBox"><file name="Abstract.php" hash="2f1c9d769c0cc318235d3e321eef5df0"/></dir><file name="ValidateButton.php" hash="bfcffe6dfe6bb1e359664062174b8256"/><file name="WarningBox.php" hash="d23564b4901f69fca1c953e0eff951b8"/></dir><file name="Fieldset.php" hash="4e327094531164605c0b2e7fc6510174"/></dir><file name="Form.php" hash="708d84e59d2dd330abec771e6607a6cf"/></dir></dir><file name="Template.php" hash="2492df687e1fabdda5e4903d75f2911b"/><dir name="Widget"><dir name="Grid"><dir name="Column"><dir name="Renderer"><file name="Action.php" hash="aca0f33b5bb73ef17c1761b8d4ecf195"/><file name="Barcode.php" hash="24077b5d3bffeef9aa5fd9c7f4281bfe"/><file name="ConfirmDate.php" hash="1b8100c4a250b723a329d5254c8aad3b"/><file name="ConfirmStatus.php" hash="c0f3bd0d0fb0b494f698cb551ddfd8d0"/><file name="DeliveryDate.php" hash="dc68ecdd1d1f8bfbc0489d127432a6fa"/><file name="ShipmentType.php" hash="b54ae88b6ee180f98b77bf06be29bc88"/><file name="ShippingDescription.php" hash="e6b5352d3e320009f29dd5271a97b140"/><file name="ShippingPhase.php" hash="ba5ee2c51e6e2de33ce88f28e85b5aa1"/><file name="Time.php" hash="4648128f6be38c8629fafa37597c3a39"/><file name="Translate.php" hash="c2e066017440d867da11670c8da13d87"/><file name="YesNo.php" hash="c51fa59453919883600d964f0066e81a"/></dir></dir><dir name="Massaction"><file name="LabelStartPos.php" hash="0ca1bc4408caff48829eb70bcce68811"/></dir></dir></dir><file name="WindowsTheme.php" hash="1ac9db4c976771dc0a1296fb387b893e"/></dir><dir name="Checkout"><dir name="Cart"><file name="CheckoutLink.php" hash="a4125b6bf54c0987e036d8f3b1bcb2c7"/><file name="Js.php" hash="eeaaf69d2916894997d5ec35e054e9d4"/></dir><file name="Summary.php" hash="3b7cbd390f008c2f3b97e5f9311d10bc"/></dir><dir name="Core"><file name="JsTranslate.php" hash="66414fb23ae152cb7b747043022c8fe1"/><file name="ShippingStatus.php" hash="c66e5420e5bdb41c93c2373c91b48bed"/><file name="Template.php" hash="faa99444b94f1efcd156c39d9a379995"/></dir><dir name="DeliveryOptions"><dir name="Checkout"><file name="AddPhoneNumber.php" hash="4eae253028e430069fc65061350f52ae"/><file name="DeliveryOptions.php" hash="cca7be3d338bd28ccc1ec49af8847fa8"/></dir><file name="Js.php" hash="ce130d81fdffdda87bc5944cb3f23aff"/><file name="Template.php" hash="7afdff3a1c55e1a60001efb98b2bd0c5"/><file name="Theme.php" hash="6a0bf4f2a06262a9bc4ff5a4c8998536"/></dir><dir name="Mijnpakket"><file name="AccountNotification.php" hash="16fcf7d677bfd3ef918020ece5c64ae5"/><file name="Js.php" hash="ea9f820eb7e5c0853ab42cadeca69f7d"/><file name="LoginButton.php" hash="ffe12ce79a022c1d0d06f6c5f4612655"/><file name="OrderSuccessJs.php" hash="073ff7b3ada9349f304576d70410ad82"/></dir></dir><dir name="controllers"><file name="AddressValidationController.php" hash="0293f108951d0400d8c5947a658a69ec"/><dir name="Adminhtml"><file name="ConfigController.php" hash="67b60ba2d2a2d6a71e439fad3a1b3aa8"/><file name="ExtensionControlController.php" hash="bab1e5c6c66ae50e019b249cd2d63422"/><file name="ShipmentController.php" hash="68492f1a41a63b69ec8b5132f1e25fb1"/></dir><file name="CheckoutController.php" hash="a8cce86a46c1622e88a5816f115ab2b3"/><file name="DeliveryOptionsController.php" hash="433339dea07a94c4a108e8610704350d"/><file name="MijnpakketController.php" hash="7a5d6dd183a886d666cef6d4a46a5813"/></dir><dir name="data"><dir name="postnl_setup"><file name="data-install-1.0.0.php" hash="504f5756f1a20605207f856254d63769"/><file name="data-install-1.0.3.php" hash="c23b33f2a569b6787508cc2ab33cdd06"/><file name="data-install-1.1.4.php" hash="f01176a445496a73dbd16c617f753c77"/><file name="data-upgrade-1.1.5-1.2.0.php" hash="8c74b498b3e2453cff6c9159e2d94aef"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="bacaa938f4198ca1eaa36fcbc9b4562d"/><file name="config.xml" hash="9d7e48458c990c8d8142cd609f3db9dc"/><file name="jstranslator.xml" hash="4699b9221eccd7d2ef4029b425e2feb6"/><file name="logging.xml" hash="194ac835f2278225d0b5158f5270300c"/><file name="system.xml" hash="de2be8d3f00755c712398941a633b18f"/></dir><dir name="Helper"><file name="AddressValidation.php" hash="61352d3aaf25f10913a1489c92e1f677"/><file name="Carrier.php" hash="1c7308bf75b47f8ead509289ce768d11"/><file name="Checkout.php" hash="1be12d9cc3f689c46102bde0fb3fe623"/><file name="Cif.php" hash="3ae5466d92173c4ded8dd2322e4b4a9c"/><file name="Data.php" hash="9aa2082452810c8c950cbf70b8d6ada9"/><file name="DeliveryOptions.php" hash="8c846f69fe90ac8ea6ee116714e7a27e"/><file name="Mijnpakket.php" hash="4ffac99f1a5dc0c0b5ff5e7e5f7606ca"/><file name="Parcelware.php" hash="11daeab4d2e139f34405be6e2a8d07c7"/><file name="Webservices.php" hash="b076e3447b278bec187fc38eb91fef45"/></dir><dir name="Model"><dir name="AddressValidation"><dir name="Cendris"><file name="Abstract.php" hash="7d7a8de89b7638ab1c950f0af6d49c58"/></dir><file name="Cendris.php" hash="a1b4a21960e83fea41dc5851c9b5569f"/><dir name="Observer"><file name="AddressBook.php" hash="b31262f3944b3be02a6a3e1cad703e60"/><file name="OneStepCheckout.php" hash="e23bbfce01effb77e5a91a84f3cbc3cb"/><file name="Onepage.php" hash="04c018a9b5a7b5fc4b6efc4e07689b6e"/></dir><dir name="System"><dir name="Config"><dir name="Backend"><file name="ValidateAccount.php" hash="24d691301ec601c7cbd3bf9ebdff3584"/></dir></dir></dir></dir><dir name="Admin"><dir name="Logging"><dir name="Handler"><file name="Postnl.php" hash="735c12f36c8ebfafe96c83209ba104ba"/></dir><file name="Observer.php" hash="0ce0d1e6075ef0cd8305896221f257a2"/></dir></dir><dir name="Adminhtml"><dir name="Observer"><file name="OrderGrid.php" hash="1dbc6d58619859a8b017aec1953a672b"/><file name="ShipmentGrid.php" hash="d6019e67dedad08cd0a47403980cf9b3"/><file name="ShipmentView.php" hash="9484ffbe9d5081e7e4727d973a942771"/></dir><dir name="System"><dir name="Config"><dir name="Source"><file name="ShipmentGridColumns.php" hash="2ce48a86b495787305db4c813000b555"/><file name="ShipmentGridMassaction.php" hash="d834c9dc17b510c8518a21bf7f9438a0"/></dir></dir></dir></dir><dir name="Carrier"><file name="Postnl.php" hash="5ad246e51e59c611db67bcfdec088864"/><dir name="Resource"><dir name="Tablerate"><file name="Collection.php" hash="f0111f3b173df320683600db25b11b60"/></dir><file name="Tablerate.php" hash="fc40cfb1c68721a36fd926e8c62cd60e"/></dir><dir name="System"><dir name="Config"><dir name="Backend"><file name="Tablerate.php" hash="830a661bfb1bdd6b5db8be09fb053878"/></dir><dir name="Source"><file name="RateType.php" hash="c09e75ad7125e72ebc4f147098ad7413"/><file name="TablerateSource.php" hash="e5d98240bfd812897d16118b19108e37"/></dir></dir></dir><file name="Tablerate.php" hash="e340131fca10f58b533c95caa84c7799"/></dir><dir name="Checkout"><file name="Cif.php" hash="930a781c1a264ee79faaf054d6b4feba"/><dir name="Observer"><file name="Order.php" hash="a7c0625ebbe03c21eaf57c2068236d47"/><file name="Shipment.php" hash="f133e0ea13b2e99fbf9ce1071fdcb8d6"/></dir><file name="Order.php" hash="3c8b43ceb738076d0d5faa82bff89069"/><file name="Service.php" hash="858a9d73073736c321319dff93643fce"/><dir name="System"><dir name="Config"><dir name="Source"><file name="ActivePaymentMethods.php" hash="b0650e9abd74eda19432c31926b67a2a"/><file name="CmsPage.php" hash="b6f529c0fa637805c0ec96234be879f2"/></dir></dir></dir></dir><dir name="Core"><dir name="Cif"><file name="Abstract.php" hash="67236a66772f92781515ca044f145d0d"/><file name="Exception.php" hash="25e3525fdbdf54b6215029773051c6f5"/></dir><file name="Cif.php" hash="636d0b4e479102bf588dee0429ef14c7"/><file name="Label.php" hash="0bdb05884917592438fcb59f66bc16b2"/><dir name="Observer"><file name="Barcode.php" hash="f1fca6764e0070139ff54e27cff0c595"/><file name="Cron.php" hash="fc685a4a1c538e6d65d80761891860cc"/><file name="SaveShipment.php" hash="e25dc37fcea0c0d5b9514b5f2f06142c"/></dir><file name="Order.php" hash="1a0e654d248afcdbfbe1ef2efee37880"/><dir name="Resource"><dir name="Order"><file name="Collection.php" hash="3c3d48c749ec6eaf6d6bfee14ebe3666"/></dir><file name="Order.php" hash="3d376c7a4a2f57a7cb7164dc184d5a2b"/><dir name="Shipment"><dir name="Barcode"><file name="Collection.php" hash="e62f736e637a975d9aa3279bb473dbb3"/></dir><file name="Barcode.php" hash="d316c2311619120e18da81cfbb267de1"/><file name="Collection.php" hash="d7d6859fd8a9033fc80da9129e3369fb"/><dir name="Label"><file name="Collection.php" hash="c619b7973240f3dde9af89b698de0c10"/></dir><file name="Label.php" hash="77b896129b48470271afc1e2752d8a1b"/><dir name="Status"><dir name="History"><file name="Collection.php" hash="648d33efa3f995ce1cfc267d5f513016"/></dir><file name="History.php" hash="0efb04af2aab1b7dd6aa9f33611e6234"/></dir></dir><file name="Shipment.php" hash="866602c0ada7ef58ecae2c5a1efdc6f7"/></dir><dir name="Shipment"><file name="Barcode.php" hash="708e9f8d4a91e0ff396075bce067a0cc"/><file name="Label.php" hash="e0a237436046dcdbb838c2ff8f0288d0"/><file name="Process.php" hash="ac1123043b313c27e10d10b8d3ed87ca"/><dir name="Status"><file name="History.php" hash="70c2b2315fa5c975f45b3d1c81b51f94"/></dir></dir><file name="Shipment.php" hash="be00784c27d5f02832828a5b1bb48e75"/><dir name="System"><dir name="Config"><dir name="Backend"><file name="ValidateDefaultOption.php" hash="2c52e555ea892ca43d2f5ee9798bc0a3"/></dir><dir name="Source"><file name="AllProductOptions.php" hash="344e49b194c6a90f720eb3442464676e"/><file name="Attributes.php" hash="67f171bb027e241497976a64348f74c0"/><file name="DebugMode.php" hash="0b4d6096610b9c4a9071ab58ce89f076"/><file name="Direction.php" hash="9a9008ce2a364e327e61e0cea143cb1a"/><file name="EuProductOptions.php" hash="cfbeef4970aa495e7d8be334820ec603"/><file name="GlobalProductOptions.php" hash="4cdca1ff193b8b7d7469958b42d3ac5b"/><file name="GlobalpackShipmentType.php" hash="b7bbd9b0aea155cdd3de2c7e0f4b8bc1"/><file name="LabelSize.php" hash="c614fd4a36afd500fff902bc1beeb046"/><file name="PakjeGemakProductOptions.php" hash="d161492158638ed6b5c94201b2de5b36"/><file name="PakketautomaatProductOptions.php" hash="1c96a549339a096d6f8ed7e5e7de116f"/><file name="ReferenceType.php" hash="b9032cb7c23b4c2bb5da1e94994df72e"/><file name="StandardProductOptions.php" hash="d1b7f5a9964bdb6a945ab5aeadfaf6f4"/><file name="StreetField.php" hash="5c245dc48ff4cf5870d1434a9f9e4570"/><file name="StreetFieldWithDefault.php" hash="70c4945b2fde8d95a666960dd78cde66"/><file name="WeightUnit.php" hash="b4a9cf9b4dae4d68844be4ac53e1d3c1"/></dir></dir></dir></dir><dir name="DeliveryOptions"><file name="Cif.php" hash="9bb160b031e8d2354843305a7ec09a2d"/><dir name="Observer"><file name="ShippingMethodAvailable.php" hash="6c086478a72fd6047110bc275a7d62a7"/><file name="UpdatePostnlOrder.php" hash="4ae225ba126e754180cd75a03235d306"/></dir><dir name="Product"><dir name="Attribute"><dir name="Source"><file name="ShippingDuration.php" hash="7286b27d72e7fe7eb5fcc87a1850dca7"/></dir></dir></dir><file name="Service.php" hash="a16bce323ee6960d4c7b9130cbe35fea"/><dir name="System"><dir name="Config"><dir name="Backend"><file name="ValidateFee.php" hash="fe87712c1fbf092ab005eb4536ff1089"/></dir><dir name="Source"><file name="CutOffTime.php" hash="66212d723d0eb53578bd8365b62f2d10"/><file name="DeliveryDaysNumber.php" hash="a523c1ac414a47927539f1ec207e361b"/><file name="ShippingDuration.php" hash="4796436e2bf2183f428b3917f711694d"/><file name="Themes.php" hash="6c22d0819c83f23047d98af493efa7f8"/></dir></dir></dir></dir><dir name="ExtensionControl"><file name="Feed.php" hash="77b8b53ba79ddb3a98c844b9009aedc5"/><dir name="Observer"><file name="Cron.php" hash="a50cf97d1ad14f5e6ae0550191fdf404"/></dir><dir name="Webservices"><file name="Abstract.php" hash="db543e642ab624240d965b93eb17b186"/></dir><file name="Webservices.php" hash="d89cd63fa79d0023dcc5da253e3e441a"/></dir><file name="Inbox.php" hash="5bb3b3a79f40bb3a1a1b6f8fd409143a"/><dir name="Mijnpakket"><file name="Cif.php" hash="d83f6daa823d18b3757e52b611112534"/><dir name="Observer"><file name="Onepage.php" hash="8395fc32c85db18203b392fa7c14c9f7"/></dir><file name="Service.php" hash="51b66934eeb8ec7aaaa8a92090e67453"/></dir><dir name="Parcelware"><file name="Export.php" hash="305a477bf59ca5367b511d23d3e7380f"/></dir><dir name="Resource"><dir name="Db"><dir name="Collection"><file name="Postnl.php" hash="aa6987a3c7f11a61c0ae806f3246e220"/></dir></dir><dir name="Order"><dir name="Grid"><file name="Collection.php" hash="c83b50400fa0a720c188986fff514998"/></dir><dir name="Shipment"><dir name="Grid"><file name="Collection.php" hash="147419ce83b50760bd7f9f6bad5e5257"/></dir></dir></dir><file name="Setup.php" hash="2dee640f23fc8e6cd1c4812303347675"/></dir><dir name="System"><dir name="Config"><dir name="Source"><file name="Testlive.php" hash="8d46ec0f6de0630ee10f682929de8127"/><file name="Yesno.php" hash="375b1847d684271a360b3382022afd52"/></dir></dir></dir></dir><dir name="sql"><dir name="postnl_setup"><file name="install-1.0.0.php" hash="df347ac048cb1afa14dfe9301535d4b7"/><file name="upgrade-1.1.5-1.2.0.php" hash="e89bbd2c46bad85b169c2ab7890ce067"/></dir></dir><file name="Exception.php" hash="4d7275f3c8929b9d48c73049bef3f05c"/></dir></dir></target></contents>
160
  <compatible/>
161
  <dependencies><required><php><min>5.3.0</min><max>6.0.0</max></php></required></dependencies>
162
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>tig_postnl</name>
4
+ <version>1.2.2</version>
5
  <stability>stable</stability>
6
  <license uri="http://creativecommons.org/licenses/by-nc-nd/3.0/nl/deed.en_US">Creative Commons License</license>
7
  <channel>community</channel>
20
  - Viewing detailed shipping status information&#xD;
21
  - PostNL Checkout&#xD;
22
  - Emailing customers track &amp; trace information, allowing them to track their shipment from the moment you confirm it to the moment it arrives at their doorstep</description>
23
+ <notes>==== v1.2.2 ====&#xD;
24
+ ==== New features ====&#xD;
25
+ - Added the option to send a copy of the track &amp; trace email to a specified email address.&#xD;
26
+ &#xD;
27
+ ==== Improvements ====&#xD;
28
+ - Performance of the entire extension has been improved. The extension will now attempt to cache several configuration values.&#xD;
29
+ - Label printing will now always follow the 'label size' configuration setting.&#xD;
30
+ &#xD;
31
+ ==== Bug fixes ====&#xD;
32
+ - Fixed several small html errors in the track &amp; trace email template.&#xD;
33
+ - Fixed an SQL error that could occur when filtering the 'store' column in the order and shipment grids.&#xD;
34
+ &#xD;
35
+ ==== v1.2.1 ====&#xD;
36
  ==== Release highlights ====&#xD;
37
  - The extension now fully supports Magento 1.9 and 1.14!&#xD;
38
  &#xD;
166
  &#xD;
167
  This is the initial beta release of the extension. If you have any questions, please contact the Total Internet Group Servicedesk</notes>
168
  <authors><author><name>TiG</name><user>supporttotal</user><email>servicedesk@totalinternetgroup.nl</email></author></authors>
169
+ <date>2014-06-10</date>
170
+ <time>13:03:44</time>
171
+ <contents><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><dir name="TIG"><file name="postnl.xml" hash="8c5f5eac0d32c28b65303c04e426dfeb"/></dir></dir><dir name="template"><dir name="TIG"><dir name="PostNL"><dir name="address_validation"><dir name="checkout"><dir name="onepage"><file name="billing.phtml" hash="bb511e4228d959889a6774c366e85e72"/><file name="postcode_check.phtml" hash="60608e1f754e77885ac1859efa04384c"/><file name="shipping.phtml" hash="f26938cc35b4f8b1488c12e493d0a7ce"/></dir></dir><dir name="customer"><dir name="address"><file name="edit.phtml" hash="2be3b3803992b7a256f7056d726beed9"/><file name="postcode_check.phtml" hash="dd4e9acab6c3ec9570fcc1f660386ff0"/></dir></dir><dir name="onestepcheckout"><file name="billing_fields.phtml" hash="8fa6cbc45e29d2f80e656f7241ac9ad7"/><file name="postcode_check.phtml" hash="d0368f25972d28a53a9c3da107b78e0c"/><file name="shipping_fields.phtml" hash="90ceed1c7dfb5a0989495d87646789f0"/></dir><file name="validate.phtml" hash="9c271b0e8460cda7b7775b20b0cd3f2a"/></dir><dir name="checkout"><dir name="cart"><file name="js.phtml" hash="08535a3839367758d5073e39b532aff1"/><file name="link.phtml" hash="110d66c2163d7ee92808410ab3925911"/><file name="spinner.phtml" hash="d05caa24c65ff055c175888d8e9dda49"/></dir><file name="summary.phtml" hash="97309da324f281253f23bce82eee99f7"/></dir><dir name="core"><dir name="page"><dir name="html"><file name="js_translate.phtml" hash="a62be2c385e01f0ea7e3bb9a2b0ae916"/></dir></dir><dir name="sales"><dir name="order"><file name="pakje_gemak_address.phtml" hash="f15a6b100cabfe6b0856e4f67545d79f"/><dir name="shipment"><file name="shipping_status.phtml" hash="58039a33091f0216ee8460cd07225c70"/></dir></dir></dir></dir><dir name="delivery_options"><file name="addlocation.phtml" hash="764c1a556eaaa87909e7331f708baeb6"/><file name="addphonenumber.phtml" hash="4c255e24edac3fea851d9d46a3c27ef3"/><file name="js.phtml" hash="677583a3185921c818234cdfbc1228c1"/><dir name="onepage"><file name="available.phtml" hash="1279c60fa88280cdbb987d5391aacd39"/><file name="deliveryoptions.phtml" hash="e2266b3fe82881ca6bc965bb5a53685d"/></dir><dir name="onestepcheckout"><file name="available.phtml" hash="514b824b9df41672966b15d7f4fc4feb"/><file name="deliveryoptions.phtml" hash="a36f357a1b3bb067f5799da4ad640fa3"/></dir><file name="theme.phtml" hash="393c0a9b2393c478158227ab2f1f508f"/></dir><dir name="mijnpakket"><file name="account_notification.phtml" hash="9de7c32a2e78f20f27ef9831a9ce9bc0"/><file name="js.phtml" hash="ce250ae2ca07e6d2a974b22fa7c10855"/><dir name="onepage"><file name="login_button.phtml" hash="9684044d42db1112bbd4077b0b50e842"/><file name="success.phtml" hash="6bd7afa18343ab35607a776ca0373353"/></dir><dir name="onestepcheckout"><file name="login_button.phtml" hash="a4882c245afc210fa48ab08dad3fd03f"/></dir><file name="order_success_js.phtml" hash="00c7819c76fb366f3e807fcf28699db4"/></dir></dir></dir></dir></dir></dir><dir name="enterprise"><dir name="default"><dir name="template"><dir name="TIG"><dir name="PostNL"><dir name="address_validation"><dir name="checkout"><dir name="onepage"><file name="billing.phtml" hash="87248238ad21ff7f21e7bcc6efbb4ec5"/><file name="postcode_check.phtml" hash="82bb1a31e2f0d6b47a5cabefc0aa673a"/><file name="shipping.phtml" hash="b7b899ab8b1e1b27eecadfc88a3ea779"/></dir></dir><dir name="customer"><dir name="address"><file name="edit.phtml" hash="cac5a3f4e32d1c1351d2656027ee1907"/><file name="postcode_check.phtml" hash="ce0677837fe9e39705f5b4abe8b39a10"/></dir></dir></dir><dir name="core"><dir name="sales"><dir name="order"><file name="pakje_gemak_address.phtml" hash="45a35f20d511defaeb66b39ea7b1b196"/></dir></dir></dir><dir name="mijnpakket"><dir name="onepage"><file name="login_button.phtml" hash="76d4bb422fd6451e21ec0006067b713b"/></dir></dir></dir></dir></dir></dir></dir><dir name="rwd"><dir name="default"><dir name="layout"><dir name="TIG"><file name="postnl.xml" hash="ceb57a22919b4c643eb9a843d17b41b1"/></dir></dir><dir name="template"><dir name="TIG"><dir name="PostNL"><dir><dir name="address_validation"><dir name="checkout"><dir name="onepage"><file name="postcode_check.phtml" hash="e1cf2f32369cc1e2725fa052440c7215"/></dir></dir><dir name="customer"><dir name="address"><file name="postcode_check.phtml" hash="37abeb9e6958e9afa446510d0b5edc24"/></dir></dir></dir><dir name="checkout"><dir name="cart"><file name="link.phtml" hash="bfed4675e73a099ed20d9309c9a85943"/></dir></dir><dir name="mijnpakket"><dir name="onepage"><file name="login_button.phtml" hash="3d17a0395759b11c040753ff003568f9"/></dir></dir></dir></dir></dir></dir></dir></dir></dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><dir name="TIG"><file name="postnl.xml" hash="3fba1357eafad55d5de82fb3419a3547"/></dir></dir><dir name="template"><dir name="TIG"><dir name="PostNL"><file name="cron_notification.phtml" hash="bbaa9cf5123e86734c577a45bbcbe0e1"/><dir name="sales"><dir name="order"><dir name="address"><dir name="form"><file name="container.phtml" hash="475c12e39b9b210cce383b52ccbe5825"/></dir></dir><file name="filter_massaction.phtml" hash="afacb1baee71b94459d8af12c9e50537"/><file name="product_options.phtml" hash="aa38f973051fdc34bda7f4b81c978a32"/><dir name="shipment"><dir name="create"><file name="shipment_options.phtml" hash="dc6c03c5ed5ab44e747f990b77fe070f"/></dir><dir name="view"><file name="pakje_gemak_address.phtml" hash="b6840800e9991602487df1cd4a178601"/><file name="shipping_status.phtml" hash="1114fd97d21dfd7e06134d957a131e48"/><dir name="tab"><file name="status_history.phtml" hash="6dec858a231b58112635604645bb9d5c"/></dir></dir><file name="view.phtml" hash="63e0e761bc89aa13bf991e9bfc7d3ded"/></dir><dir name="view"><file name="pakje_gemak_address.phtml" hash="721d92cf511a7f9550125038c8a0554c"/></dir><file name="windows_theme.phtml" hash="194308e4e909917cb47045df1a96dafc"/></dir><dir name="shipment"><file name="customize_link.phtml" hash="f605b823ff988c0a04b0d4ff40d420d1"/><file name="js.phtml" hash="7eee92bb01e2b954c00e5ccecae99840"/><file name="testmode_warning.phtml" hash="e18c725ce2794108baf6fa2b3ec54623"/></dir></dir><dir name="system"><dir name="config"><dir name="form"><dir name="field"><file name="config_check.phtml" hash="209650ccda51b89573a20d1c0a1f3f61"/><file name="field_header.phtml" hash="442c3eacf6253b01496545ab31d8a748"/><file name="info_box.phtml" hash="d7c491709084af011cef3c14e25c1333"/><file name="js.phtml" hash="4acd2f0874add9f5941c3e069b056dbd"/><file name="split_address_check.phtml" hash="2f0abbfcadeadeea69d7c154f5536e39"/><file name="support_tab.phtml" hash="d77d70987ab794c40841879a55ea4f0d"/><file name="warning_box.phtml" hash="bf0aa8db276b61186fb6d7a1533344ba"/></dir></dir></dir></dir><dir name="widget"><dir name="grid"><dir name="massaction"><file name="label_start_pos.phtml" hash="8947d61e8c032ba2948d1b45a5a84cdc"/></dir></dir></dir></dir></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="TIG_PostNL.xml" hash="4c10ab75f19631cdcac4b8d4b5bd97cd"/></dir></target><target name="mageskin"><dir name="frontend"><dir name="base"><dir name="default"><dir name="css"><dir name="TIG"><dir name="PostNL"><file name="cart.css" hash="d51ab6c200da5c54eb8e672c9325dbf5"/><file name="default.css" hash="7f05bf3ebd09bc4cf13d2582afe04980"/><dir name="deliveryoptions"><file name="default.css" hash="981c67d03fe1419ba3931524248d73da"/><file name="ie8.css" hash="1f0e04ca6c7be6572defb3adadafd28a"/><file name="neutral.css" hash="fa30b69a934fa5a04005dcdbca5038c5"/><file name="onestepcheckout.css" hash="fd7d786cc66c34b81555111e34c062eb"/><file name="onestepcheckout_neutral.css" hash="889d6581fe4ac733625b9878237928b3"/></dir><file name="messages.css" hash="19d03101c862b45535bc08344c12716a"/><file name="mijnpakket.css" hash="c0b66ee013c1a154bf6d6a2ad0d45c82"/><file name="postcodecheck.css" hash="84a497060c26440c6e387d2f7a26e0fd"/><file name="shipping_status.css" hash="fcb3fe311d50ee93176dc29ef2d5a0b9"/></dir></dir></dir><dir name="images"><dir name="TIG"><dir name="PostNL"><file name="bkg_progress_small.png" hash="fc6c9f28b6a6aae6f0096d504c0952df"/><file name="bkg_tooltip.png" hash="56cfed3ed8a65b19f8de88946d1a0a01"/><dir name="deliveryoptions"><file name="bkg_add-location.png" hash="a30d4aea73b094df5f434f9856dc626b"/><file name="bkg_add-phonenumber_input.gif" hash="25fa933b55e69a552f7d1cf704a8d6f9"/><file name="bkg_btn-close.png" hash="5438c768cd63b2476cf14418acb28709"/><file name="bkg_button.png" hash="a1bf9f994f90033e143b7e2023c0e4fb"/><file name="bkg_checkbox.png" hash="71628b28d876482b600755e577132fee"/><file name="bkg_location-search_input.gif" hash="fcee91af0d97e50fcf698eb7485327a8"/><file name="bkg_location-selected.png" hash="efe72719a889f94f4aa24e6f6d6db8df"/><file name="bkg_location.gif" hash="937e1a367cafdcc0d4f62afb572879a1"/><file name="bkg_more-info.png" hash="3681dc9b54011dae7c81d6c4b2e74a2b"/><file name="bkg_option.gif" hash="a3b9a292d28540147bfb034060731cb3"/><file name="bkg_phonenumber_failed.png" hash="8d1a0503bfe7cdfc2e35365bba2a8f7d"/><file name="bkg_phonenumber_verify.png" hash="28f90e0364778463144004ff289d70a7"/><file name="bkg_postnl-logo.png" hash="a34b5d938234a7360e5566df9fb4273f"/><file name="bkg_postnl.png" hash="46c5f6c65f66da09b39496c7cef94e89"/><file name="bkg_radio.png" hash="3cc3ecb77e5ce62511385d59e037b398"/><file name="bkg_tooltip.png" hash="cbd753cc9cb873468d1bba07e70f0d2f"/><file name="ie8_bkg_transparent-white.png" hash="a603671f51cb11ed9370bcd3181741c7"/><file name="loader_default.gif" hash="9fec99d885ad6bc45aee40d1c171ca4b"/><file name="loader_mini.gif" hash="f244ab6581d4329e3dbb7e289d47dfb2"/><dir name="locations"><file name="crc_albertheijn.png" hash="57af250f9d59b9074132446e0109ee93"/><file name="crc_automaat.png" hash="e9e94287380f27f6752d89f995b1b7f4"/><file name="crc_bruna.png" hash="326912294c49e8c896a34a28a7c03127"/><file name="crc_c1000.png" hash="8628f2e6328805a84e8eac28511b6857"/><file name="crc_coop.png" hash="0250717148ab776d156371a3e0912b9e"/><file name="crc_default.png" hash="777edf1aa124f6cb13258bb510db809b"/><file name="crc_emte.png" hash="ba7841f22a08d379f1ddabbe708ffa41"/><file name="crc_gamma.png" hash="6dc0ff8b36892af40ce80a36355d311a"/><file name="crc_jumbo.png" hash="061ae156e55e3aee6130cd1beb8d1b9a"/><file name="crc_karwei.png" hash="a7b8ee695b996cb757fd5c1a98e888e4"/><file name="crc_plus.png" hash="e67e871870c87723d835db23af18d4e9"/><file name="crc_primera.png" hash="e367c1e5b3fb4e25303aff57dc1a1259"/><file name="crc_readshop.png" hash="eeef9a98c0cd68f4351154d174bfdda9"/><file name="crc_spar.png" hash="4939d469045e6c7d7e65f172d97e30b1"/><file name="crc_staples.png" hash="94136b2a8d00dfdadcad6c7088920409"/><file name="drp_albertheijn.png" hash="944b90f36d5f225fcc74d360d368e628"/><file name="drp_automaat.png" hash="ce0bd13abc5e6c647c2ac8bc0fb5c150"/><file name="drp_bruna.png" hash="feb3ea92e3d32e98edf04aa22604afe6"/><file name="drp_c1000.png" hash="9e89a865b72d182135226fc72a98e03a"/><file name="drp_coop.png" hash="ddd34926b0a306cb0b28f385a78bd972"/><file name="drp_default.png" hash="d97f2e415e54b5d9fa19893210cedbc0"/><file name="drp_emte.png" hash="34e526c095a080cf92ccf15318a56ba3"/><file name="drp_gamma.png" hash="56da28b8c2e0ad6087eb0c4408f9904c"/><file name="drp_jumbo.png" hash="f191ec9c01b807d32811d9a4f0c3ad19"/><file name="drp_karwei.png" hash="d3da2d8b7f65ddecdf13091094a8fbea"/><file name="drp_plus.png" hash="9bf96ded99d0e47b34256cdc78310754"/><file name="drp_primera.png" hash="095b1ced03087b390b96ee3d525dce7e"/><file name="drp_readshop.png" hash="d2884c0bdd81103e9319469727bc9855"/><file name="drp_spar.png" hash="9ff6bb1fc489ba714d3249c35fb01c77"/><file name="drp_staples.png" hash="2196de7813fa6db34f8b0abb1aedecd5"/><file name="tmb_albertheijn.png" hash="58ae464ff7bb420f075e53cd35d9852f"/><file name="tmb_bruna.png" hash="ff523c258b47be502b335a7e8cc5032c"/><file name="tmb_c1000.png" hash="f96136426d2a2af40ef7b76953ec58b5"/><file name="tmb_coop.png" hash="b1e41c613b1876c787e9d4d5b30ba1a5"/><file name="tmb_default.png" hash="ed65f2da1032b355422db7c86a126668"/><file name="tmb_emte.png" hash="d0e9dc8f785b8db0da8bd233a0d09a11"/><file name="tmb_gamma.png" hash="55ef36ad8aa803469e28f368b7eac536"/><file name="tmb_jumbo.png" hash="3bae16290854122b2b3439de2402c5a1"/><file name="tmb_karwei.png" hash="84e1aaceb9c0ff3864b2b7aead52e033"/><file name="tmb_plus.png" hash="fd3bf32ffb591f79935bb906249ca59e"/><file name="tmb_primera.png" hash="fb32942772b4ca57a45ee0e08406c3bc"/><file name="tmb_readshop.png" hash="6a6826139698fa20e0fd4210d17b50e2"/><file name="tmb_spar.png" hash="89694e10f073619fd944d8c2c7b9e357"/><file name="tmb_staples.png" hash="115af373105f6494c74186657ddca6a6"/></dir><file name="osc_bkg_postnl-logo.png" hash="c23e987598dcd439e54f9d48e9e4777a"/><dir name="unbranded"><file name="bkg_checkbox.png" hash="232ad0ec83b32af770481bb1cdd1520e"/><file name="bkg_more-info.png" hash="96a0b80b2907a28489d8d87f845d8a5f"/><file name="bkg_radio.png" hash="430bea179fc0e6570c1cca905b46454e"/><file name="button_action.png" hash="c297cbc6aa5c44272308b660038b363f"/><file name="button_next.png" hash="768365d31d95bb5c8b1ccebb62920a95"/><file name="loader_default.gif" hash="1645395ddefeab89f51f59b2dbcbd7c0"/><file name="loader_mini.gif" hash="2fd11016727f350b98af17fc76b3a0d3"/></dir></dir><file name="icon-tooltip.png" hash="5767601cd66b23d0b6fe8defc10dd48d"/><dir name="mijnpakket"><file name="app_buttons.png" hash="74f3a4d80dafe1a0979ce7ad0bd70824"/><file name="app_logo.png" hash="e5426bac3d0b4e28ef1f3628503c2365"/><file name="logo.png" hash="6fa95b3a5e83b6887848b5feb7369bf1"/><file name="logo_small.png" hash="c23e987598dcd439e54f9d48e9e4777a"/></dir><file name="opc-ajax-loader.gif" hash="e805ea7eca1f34c75ba0f93780d32d38"/><file name="overlay.png" hash="f08feb852288bea420ba3af68ae34a1f"/><file name="postnl_email_logo.png" hash="8bd358b514e04e7ceca03efb38f8fded"/><file name="postnl_spinner.gif" hash="cef321b68ab934932ee317986823db67"/></dir></dir></dir><dir name="js"><dir name="TIG"><dir name="PostNL"><file name="ajax.js" hash="213bbdf02400a673da0e6a3d18187b36"/><file name="checkout.js" hash="08f57b0b12b7b0c3cbdc2a5ebfeb9b7a"/><file name="deliveryOptions.js" hash="0fb80030154c4ff6358d1e3b2e736784"/><dir name="deliveryoptions"><file name="cufon-fonts.js" hash="7605bb17619f1a55e3521a700dfe7b1a"/><file name="cufon-settings.js" hash="9bb0303049c178db309438c26f7def2c"/><file name="cufon-yui.js" hash="7e47005ed153f788718c10e97da829b3"/></dir><file name="livepipe.js" hash="b9f5e38a94ce3f4f6f6ebcabca23d8c3"/><file name="mijnpakketLogin.js" hash="d73fe0cdd7a7a6b2e1afabc37d802561"/><file name="placeholder.min.js" hash="c2824272a822d3fb8429a239e7d20c24"/><file name="postcodecheck.js" hash="b474df7b1d8c01ede6deb876f7885a26"/><file name="scrollbar.js" hash="b6780bb325e0ac78bc37e7b9d1bac863"/><file name="slider.js" hash="1679e9ff9a8d3784387040fc7cef9203"/></dir></dir></dir></dir></dir><dir name="enterprise"><dir name="default"><dir name="images"><dir name="TIG"><dir name="PostNL"><dir name="deliveryoptions"><dir name="locations"><file name="crc_albertheijn.png" hash="57af250f9d59b9074132446e0109ee93"/><file name="crc_automaat.png" hash="e9e94287380f27f6752d89f995b1b7f4"/><file name="crc_bruna.png" hash="326912294c49e8c896a34a28a7c03127"/><file name="crc_c1000.png" hash="8628f2e6328805a84e8eac28511b6857"/><file name="crc_coop.png" hash="0250717148ab776d156371a3e0912b9e"/><file name="crc_default.png" hash="777edf1aa124f6cb13258bb510db809b"/><file name="crc_emte.png" hash="ba7841f22a08d379f1ddabbe708ffa41"/><file name="crc_gamma.png" hash="6dc0ff8b36892af40ce80a36355d311a"/><file name="crc_jumbo.png" hash="061ae156e55e3aee6130cd1beb8d1b9a"/><file name="crc_karwei.png" hash="a7b8ee695b996cb757fd5c1a98e888e4"/><file name="crc_plus.png" hash="e67e871870c87723d835db23af18d4e9"/><file name="crc_primera.png" hash="e367c1e5b3fb4e25303aff57dc1a1259"/><file name="crc_readshop.png" hash="eeef9a98c0cd68f4351154d174bfdda9"/><file name="crc_spar.png" hash="4939d469045e6c7d7e65f172d97e30b1"/><file name="crc_staples.png" hash="94136b2a8d00dfdadcad6c7088920409"/><file name="drp_albertheijn.png" hash="944b90f36d5f225fcc74d360d368e628"/><file name="drp_automaat.png" hash="ce0bd13abc5e6c647c2ac8bc0fb5c150"/><file name="drp_bruna.png" hash="feb3ea92e3d32e98edf04aa22604afe6"/><file name="drp_c1000.png" hash="9e89a865b72d182135226fc72a98e03a"/><file name="drp_coop.png" hash="ddd34926b0a306cb0b28f385a78bd972"/><file name="drp_default.png" hash="d97f2e415e54b5d9fa19893210cedbc0"/><file name="drp_emte.png" hash="34e526c095a080cf92ccf15318a56ba3"/><file name="drp_gamma.png" hash="56da28b8c2e0ad6087eb0c4408f9904c"/><file name="drp_jumbo.png" hash="f191ec9c01b807d32811d9a4f0c3ad19"/><file name="drp_karwei.png" hash="d3da2d8b7f65ddecdf13091094a8fbea"/><file name="drp_plus.png" hash="9bf96ded99d0e47b34256cdc78310754"/><file name="drp_primera.png" hash="095b1ced03087b390b96ee3d525dce7e"/><file name="drp_readshop.png" hash="d2884c0bdd81103e9319469727bc9855"/><file name="drp_spar.png" hash="9ff6bb1fc489ba714d3249c35fb01c77"/><file name="drp_staples.png" hash="2196de7813fa6db34f8b0abb1aedecd5"/><file name="tmb_albertheijn.png" hash="58ae464ff7bb420f075e53cd35d9852f"/><file name="tmb_bruna.png" hash="ff523c258b47be502b335a7e8cc5032c"/><file name="tmb_c1000.png" hash="f96136426d2a2af40ef7b76953ec58b5"/><file name="tmb_coop.png" hash="b1e41c613b1876c787e9d4d5b30ba1a5"/><file name="tmb_default.png" hash="ed65f2da1032b355422db7c86a126668"/><file name="tmb_emte.png" hash="d0e9dc8f785b8db0da8bd233a0d09a11"/><file name="tmb_gamma.png" hash="55ef36ad8aa803469e28f368b7eac536"/><file name="tmb_jumbo.png" hash="3bae16290854122b2b3439de2402c5a1"/><file name="tmb_karwei.png" hash="84e1aaceb9c0ff3864b2b7aead52e033"/><file name="tmb_plus.png" hash="fd3bf32ffb591f79935bb906249ca59e"/><file name="tmb_primera.png" hash="fb32942772b4ca57a45ee0e08406c3bc"/><file name="tmb_readshop.png" hash="6a6826139698fa20e0fd4210d17b50e2"/><file name="tmb_spar.png" hash="89694e10f073619fd944d8c2c7b9e357"/><file name="tmb_staples.png" hash="115af373105f6494c74186657ddca6a6"/><file name="tmp_maps.jpg" hash="c8d8e93fe427b236489b2904e276e124"/></dir></dir><file name="opc-ajax-loader.gif" hash="e805ea7eca1f34c75ba0f93780d32d38"/><file name="overlay.png" hash="f08feb852288bea420ba3af68ae34a1f"/><file name="postnl_spinner.gif" hash="c97d0bd9ccc8fa0b460c07caeb63c293"/></dir></dir></dir><dir name="css"><dir name="TIG"><dir name="PostNL"><file name="cart.css" hash="4f8b417defed03e6ae8c4ec292b2e2c3"/><file name="postcodecheck.css" hash="dcc017ca8f6b882c8dd8127ab5eea42a"/></dir></dir></dir></dir></dir><dir name="rwd"><dir name="default"><dir name="css"><dir name="TIG"><dir name="PostNL"><file name="rwd.css" hash="4d14fe3ff05c4bf41a5161b113b15767"/><file name="rwd_osc.css" hash="d3b7cc449980f3dba097db6127a45f0c"/></dir></dir></dir></dir></dir></dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="css"><dir name="TIG"><dir name="PostNL"><file name="shipping_status.css" hash="1029efbae8aa4935692733b1e28b1a61"/><file name="styles.css" hash="b93c2770a5269f8335bf21bd0d5b80d0"/><file name="system_config_edit.css" hash="103eaeae2d9e2a4a43b48a83ea7f2dad"/><file name="system_config_edit_postnl.css" hash="9c7a8812d336a042b2e303e071838e7d"/><file name="system_config_edit_postnl_magento16.css" hash="f9a8479639e2fe8d0da9cf602b1607c3"/></dir></dir></dir><dir name="images"><dir name="TIG"><dir name="PostNL"><file name="bkg_progress_grey.png" hash="8d4d5144292b98a23475367ede717b17"/><file name="bkg_progress_grey_begin.png" hash="6815c9264e78f8f9d2805c595f8800c4"/><file name="bkg_progress_grey_end.png" hash="dae90fdb38adf65e6ccc209b6a80372c"/><file name="bkg_progress_grey_seperator.png" hash="10178e12fd14fb783b4ae0fbd55a4a81"/><file name="bkg_progress_orange.png" hash="8a59f76e36ee0492f5341b8e5e7ee79b"/><file name="bkg_progress_orange_begin.png" hash="ecc84d5252e397f4a783ee7e0c426d63"/><file name="bkg_progress_orange_end.png" hash="d0a81dfea1a3eddc699482a62af01fc9"/><file name="bkg_progress_orange_grey_seperator.png" hash="ab558953ec4c40ef44653ab481084345"/><file name="bkg_progress_orange_seperator.png" hash="a774eb89763d95f2e60d03f8702fba86"/><file name="bkg_progress_sprite.png" hash="3230379a4544f85062a6ba91fa8083e2"/><file name="bkg_tooltip.png" hash="56cfed3ed8a65b19f8de88946d1a0a01"/><file name="btn_download_icon.png" hash="142d5ebbe43ad09dde97cd32e1ef4303"/><file name="glyph_error.gif" hash="a138b803d772f552aa2e49e1c506edbd"/><file name="glyph_info.gif" hash="40f72d28be63ecf2b6ef44c7ea730104"/><file name="glyph_manual.png" hash="771db63b6ffc9de1c06da564796adc6e"/><file name="glyph_pdf.png" hash="a5ea929f4014a88d7320d0293913ace3"/><file name="glyph_success.gif" hash="465a056a3ba3d94367f51c3c0b751391"/><file name="glyph_warning.gif" hash="fa817cb6d49efb9855942ef2b739fc6c"/><file name="icon-tooltip.png" hash="5767601cd66b23d0b6fe8defc10dd48d"/><file name="legend.gif" hash="d8fb0642901868d489d31b426f3e3406"/><file name="logo_postnl.png" hash="10b9ae4ad2c5365312c257dcdac1fc64"/><file name="tig_logo_medium.gif" hash="3e1071908cfdb7b472438482c3331ac7"/></dir></dir></dir><dir name="js"><dir name="TIG"><dir name="PostNL"><file name="shipment_options.js" hash="c687c46d027410abaf9c8642aca9e692"/><file name="validate.js" hash="729162d483749fd229c7f0f30b2e2df2"/></dir></dir></dir></dir></dir></dir></target><target name="magelib"><dir name="TIG"><dir name="PostNL"><dir name="Fpdf"><dir name="font"><file name="courier.php" hash="ca6fb483549604fb4a675f9e28a73b02"/><file name="courierb.php" hash="a58d7dadf3cf564ca5d5138cea76a3a9"/><file name="courierbi.php" hash="c0e416771dc56cb2397390978d112dc2"/><file name="courieri.php" hash="419961dbeeb20f08da780dccb427dec8"/><file name="helvetica.php" hash="fc53162b924ddd522bd6cfe86fab48f4"/><file name="helveticab.php" hash="4e9ffda682a131fef2e04ccd94aa342d"/><file name="helveticabi.php" hash="6db8943bd91bf13514b82872cf160d45"/><file name="helveticai.php" hash="13b795df0c33eb93c48621792f2ea12d"/><file name="symbol.php" hash="fbd9250c21af99f6398d6f817511f91f"/><file name="times.php" hash="82bc100f1f3bd8b2d9b7fb5ee8f44b3a"/><file name="timesb.php" hash="3a241a1658bf9ea2062e63f464166c31"/><file name="timesbi.php" hash="bfdd0235a71793becefff778c2b16243"/><file name="timesi.php" hash="17fd69f176915a2113fe28057b43a75e"/><file name="zapfdingbats.php" hash="2848ab2daf3128f310b5cf713ca4acee"/></dir><file name="fpdf.css" hash="84befac49464a9aac54aa511bc1fd754"/><file name="fpdf.php" hash="4ebda2283504bfd34b85753433d7e098"/><file name="helvetica.php" hash="fc53162b924ddd522bd6cfe86fab48f4"/><file name="license.txt" hash="fb784726cfe3615da38bc23a3cac445b"/></dir><file name="Fpdf.php" hash="0e5a4fdbc7f347dad7b4ae99ff17b912"/><dir name="Fpdi"><dir name="filters"><file name="FilterASCII85.php" hash="c6b756ac5874cc6f6f986349b605af64"/><file name="FilterASCII85_FPDI.php" hash="1240e0c64602864401f886546e09fe7b"/><file name="FilterLZW.php" hash="fcba53a4dd3a1f78e62c7aeac726c7b5"/><file name="FilterLZW_FPDI.php" hash="b11c50e66e20744ad20f176cae4af284"/></dir><file name="fpdf_tpl.php" hash="3966b13c398c94509e2fb6199593b104"/><file name="fpdi.php" hash="abb524d17a2cbdd3c3b7e89184aad443"/><file name="fpdi2tcpdf_bridge.php" hash="bcc317cbcfdd3faeae4a1eb480bded0f"/><file name="fpdi_pdf_parser.php" hash="d7a3bf0153ae9ad57976afb0be5d195d"/><file name="pdf_context.php" hash="0b69a25dbb830f3b68c054c2e43b876e"/><file name="pdf_parser.php" hash="5ff22a8c1ce5b1eee82c8017311a797e"/></dir><file name="Fpdi.php" hash="d27598dec3f07fdde32bec338c52d02d"/></dir></dir></target><target name="magelocale"><dir name="en_US"><dir name="template"><dir name="email"><dir name="TIG"><dir name="PostNL"><file name="track_and_trace.html" hash="b77871334fc82d5811954024b3f8058d"/></dir></dir></dir></dir><file name="TIG_PostNL.csv" hash="0c1bc5f5035c7b188ce5c8749a69a55e"/></dir><dir name="nl_NL"><dir name="template"><dir name="email"><dir name="TIG"><dir name="PostNL"><file name="track_and_trace.html" hash="cd179f991f38cd735c834abdaa40e1a8"/></dir></dir></dir></dir><file name="TIG_PostNL.csv" hash="5661598f3367237a1478c6666842f7f1"/></dir></target><target name="magecommunity"><dir name="TIG"><dir name="PostNL"><dir name="Block"><dir name="Adminhtml"><dir name="Carrier"><dir name="Postnl"><dir name="Tablerate"><file name="Grid.php" hash="aa302aea9bc76602f45e72a8ade41ec5"/></dir></dir></dir><file name="CronNotification.php" hash="0f8b504847b88e478ee08adf57257a66"/><dir name="Sales"><dir name="Order"><file name="ProductOptions.php" hash="a235042c35f019752b6d8dbdbbc57013"/><dir name="Shipment"><dir name="Create"><file name="ShipmentOptions.php" hash="061feb03b18b3bb32e4835fa05e5f2dd"/></dir><dir name="View"><file name="ShippingStatus.php" hash="15704bc8db147b32aed11065183edd18"/><dir name="Tab"><file name="StatusHistory.php" hash="bfb6ea404d194fe446bd5d1826f5fc6b"/></dir><file name="Tabs.php" hash="01ef76859c87c14211200c59d1e6d409"/></dir></dir></dir></dir><dir name="System"><dir name="Config"><dir name="Form"><dir name="Field"><file name="ActivateButton.php" hash="0c917932a1aaa04b528c266eae71ea85"/><file name="ActivatedFieldHeader.php" hash="67d061d6c247f7b989d1cfa754c53759"/><file name="Anchor.php" hash="6236df7dc27e69cd7e4863ef413468db"/><file name="ConfigCheck.php" hash="d3491f51dfc9d2afe1e7e9da2b538fbd"/><file name="InfoBox.php" hash="0502cb1c0805a9d98a477d52e59398cb"/><file name="Obscure.php" hash="7ced9d02c60457852d2902a2ea222dce"/><file name="SplitAddressCheck.php" hash="4a66dcc0d99b43d87ab216351fca344f"/><file name="SupportTab.php" hash="b173ba05d17563ca1fb09c2e0493996f"/><file name="TablerateExport.php" hash="50fa585f4cd129ca7ef59082a44eacbb"/><file name="TablerateImport.php" hash="d26ef348eb945a2e69978188cff2dff7"/><dir name="TextBox"><file name="Abstract.php" hash="2f1c9d769c0cc318235d3e321eef5df0"/></dir><file name="ValidateButton.php" hash="bfcffe6dfe6bb1e359664062174b8256"/><file name="WarningBox.php" hash="d23564b4901f69fca1c953e0eff951b8"/></dir><file name="Fieldset.php" hash="4e327094531164605c0b2e7fc6510174"/></dir><file name="Form.php" hash="708d84e59d2dd330abec771e6607a6cf"/></dir></dir><file name="Template.php" hash="2492df687e1fabdda5e4903d75f2911b"/><dir name="Widget"><dir name="Grid"><dir name="Column"><dir name="Renderer"><file name="Action.php" hash="aca0f33b5bb73ef17c1761b8d4ecf195"/><file name="Barcode.php" hash="24077b5d3bffeef9aa5fd9c7f4281bfe"/><file name="ConfirmDate.php" hash="1b8100c4a250b723a329d5254c8aad3b"/><file name="ConfirmStatus.php" hash="c0f3bd0d0fb0b494f698cb551ddfd8d0"/><file name="DeliveryDate.php" hash="dc68ecdd1d1f8bfbc0489d127432a6fa"/><file name="ShipmentType.php" hash="b54ae88b6ee180f98b77bf06be29bc88"/><file name="ShippingDescription.php" hash="e6b5352d3e320009f29dd5271a97b140"/><file name="ShippingPhase.php" hash="ba5ee2c51e6e2de33ce88f28e85b5aa1"/><file name="Time.php" hash="4648128f6be38c8629fafa37597c3a39"/><file name="Translate.php" hash="c2e066017440d867da11670c8da13d87"/><file name="YesNo.php" hash="c51fa59453919883600d964f0066e81a"/></dir></dir><dir name="Massaction"><file name="LabelStartPos.php" hash="0ca1bc4408caff48829eb70bcce68811"/></dir></dir></dir><file name="WindowsTheme.php" hash="1ac9db4c976771dc0a1296fb387b893e"/></dir><dir name="Checkout"><dir name="Cart"><file name="CheckoutLink.php" hash="487ecd397dbbe23aa66448e81ee9e474"/><file name="Js.php" hash="eeaaf69d2916894997d5ec35e054e9d4"/></dir><file name="Summary.php" hash="3b7cbd390f008c2f3b97e5f9311d10bc"/></dir><dir name="Core"><file name="JsTranslate.php" hash="66414fb23ae152cb7b747043022c8fe1"/><file name="ShippingStatus.php" hash="c66e5420e5bdb41c93c2373c91b48bed"/><file name="Template.php" hash="faa99444b94f1efcd156c39d9a379995"/></dir><dir name="DeliveryOptions"><dir name="Checkout"><file name="AddPhoneNumber.php" hash="4eae253028e430069fc65061350f52ae"/><file name="DeliveryOptions.php" hash="2d7fbb80e4deab16d91cc438c947145c"/></dir><file name="Js.php" hash="ce130d81fdffdda87bc5944cb3f23aff"/><file name="Template.php" hash="dc7265c6474e746a71f70b1da2c48d25"/><file name="Theme.php" hash="0705144789644f35d7ab7b0ee239a82b"/></dir><dir name="Mijnpakket"><file name="AccountNotification.php" hash="16fcf7d677bfd3ef918020ece5c64ae5"/><file name="Js.php" hash="ea9f820eb7e5c0853ab42cadeca69f7d"/><file name="LoginButton.php" hash="ffe12ce79a022c1d0d06f6c5f4612655"/><file name="OrderSuccessJs.php" hash="073ff7b3ada9349f304576d70410ad82"/></dir></dir><dir name="controllers"><file name="AddressValidationController.php" hash="0293f108951d0400d8c5947a658a69ec"/><dir name="Adminhtml"><file name="ConfigController.php" hash="51464e06c8ba5a7e80c47e2796e8a344"/><file name="ExtensionControlController.php" hash="bab1e5c6c66ae50e019b249cd2d63422"/><file name="ShipmentController.php" hash="68492f1a41a63b69ec8b5132f1e25fb1"/></dir><file name="CheckoutController.php" hash="9c9d9bcc298db4097465107159b917b7"/><file name="DeliveryOptionsController.php" hash="03fec9b5f3d45fbd5393b7963917c51f"/><file name="MijnpakketController.php" hash="7a5d6dd183a886d666cef6d4a46a5813"/></dir><dir name="data"><dir name="postnl_setup"><file name="data-install-1.0.0.php" hash="504f5756f1a20605207f856254d63769"/><file name="data-install-1.0.3.php" hash="c23b33f2a569b6787508cc2ab33cdd06"/><file name="data-install-1.1.4.php" hash="f01176a445496a73dbd16c617f753c77"/><file name="data-upgrade-1.1.5-1.2.0.php" hash="8c74b498b3e2453cff6c9159e2d94aef"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="bacaa938f4198ca1eaa36fcbc9b4562d"/><file name="config.xml" hash="222fe2c2ad15e1e97dcc920e334358d8"/><file name="jstranslator.xml" hash="4699b9221eccd7d2ef4029b425e2feb6"/><file name="logging.xml" hash="194ac835f2278225d0b5158f5270300c"/><file name="system.xml" hash="e505e9b6dbfbc56c96b7bf0dc10bd6a4"/></dir><dir name="Helper"><file name="AddressValidation.php" hash="49f580799f8b1bcff30282358fbf9239"/><file name="Carrier.php" hash="e3cc99a9797e750f046686c2847071e9"/><file name="Checkout.php" hash="d611b0aff88b3920ff585d0af0d2cc27"/><file name="Cif.php" hash="ef1492f00f2dc65eddc567fbd7c3b711"/><file name="Data.php" hash="f8349b8332b83a16d6e49ade4a701a65"/><file name="DeliveryOptions.php" hash="ea0e1b2e85a66bdf7b933dab87cc958f"/><file name="Mijnpakket.php" hash="0062136e2196cd1128be1d36711f5dad"/><file name="Parcelware.php" hash="11daeab4d2e139f34405be6e2a8d07c7"/><file name="Webservices.php" hash="b076e3447b278bec187fc38eb91fef45"/></dir><dir name="Model"><dir name="AddressValidation"><dir name="Cendris"><file name="Abstract.php" hash="7d7a8de89b7638ab1c950f0af6d49c58"/></dir><file name="Cendris.php" hash="a1b4a21960e83fea41dc5851c9b5569f"/><dir name="Observer"><file name="AddressBook.php" hash="9b341b639f602b52a7340e83e7074ef7"/><file name="OneStepCheckout.php" hash="edcbaeff4a6f4ab7a2fd11801106c91e"/><file name="Onepage.php" hash="ff855b94da5f9334c7607591414d46fd"/></dir><dir name="System"><dir name="Config"><dir name="Backend"><file name="ValidateAccount.php" hash="1c179e1ca03b5ec43b3b99ddf4afa985"/></dir></dir></dir></dir><dir name="Admin"><dir name="Logging"><dir name="Handler"><file name="Postnl.php" hash="735c12f36c8ebfafe96c83209ba104ba"/></dir><file name="Observer.php" hash="0ce0d1e6075ef0cd8305896221f257a2"/></dir></dir><dir name="Adminhtml"><dir name="Observer"><file name="OrderGrid.php" hash="4c5fd173e69e0d5706d6c118ab22ac1d"/><file name="ShipmentGrid.php" hash="cf9a75011d5b6bbf02b58b748e3d2918"/><file name="ShipmentView.php" hash="04c19158eb7ff4de08f1eed98d197864"/></dir><dir name="System"><dir name="Config"><dir name="Source"><file name="ShipmentGridColumns.php" hash="2ce48a86b495787305db4c813000b555"/><file name="ShipmentGridMassaction.php" hash="d834c9dc17b510c8518a21bf7f9438a0"/></dir></dir></dir></dir><dir name="Carrier"><file name="Postnl.php" hash="5ad246e51e59c611db67bcfdec088864"/><dir name="Resource"><dir name="Tablerate"><file name="Collection.php" hash="f0111f3b173df320683600db25b11b60"/></dir><file name="Tablerate.php" hash="fc40cfb1c68721a36fd926e8c62cd60e"/></dir><dir name="System"><dir name="Config"><dir name="Backend"><file name="Tablerate.php" hash="830a661bfb1bdd6b5db8be09fb053878"/></dir><dir name="Source"><file name="RateType.php" hash="c09e75ad7125e72ebc4f147098ad7413"/><file name="TablerateSource.php" hash="e5d98240bfd812897d16118b19108e37"/></dir></dir></dir><file name="Tablerate.php" hash="e340131fca10f58b533c95caa84c7799"/></dir><dir name="Checkout"><file name="Cif.php" hash="8cb665fe6cf561506ea6ca9926b16d86"/><dir name="Observer"><file name="Order.php" hash="a7c0625ebbe03c21eaf57c2068236d47"/><file name="Shipment.php" hash="f133e0ea13b2e99fbf9ce1071fdcb8d6"/></dir><file name="Order.php" hash="3c8b43ceb738076d0d5faa82bff89069"/><file name="Service.php" hash="f060890e24e73dbae8213738b3f394ec"/><dir name="System"><dir name="Config"><dir name="Source"><file name="ActivePaymentMethods.php" hash="b0650e9abd74eda19432c31926b67a2a"/><file name="CmsPage.php" hash="b6f529c0fa637805c0ec96234be879f2"/></dir></dir></dir></dir><dir name="Core"><file name="Cache.php" hash="03d9accff06abb3ed1434c814c39ddbc"/><dir name="Cif"><file name="Abstract.php" hash="67236a66772f92781515ca044f145d0d"/><file name="Exception.php" hash="25e3525fdbdf54b6215029773051c6f5"/></dir><file name="Cif.php" hash="8f0caca87f21bb3f9663103ca4af8940"/><file name="Label.php" hash="fcfd3dbcddf21429a5411225a3f23c6d"/><dir name="Observer"><file name="Barcode.php" hash="4451fa9e0e9edf7902d1154017aaad63"/><file name="Cache.php" hash="d5f128cc9d0069ee433652b19a2c1acd"/><file name="Cron.php" hash="39082629d9b8138bbac8a2a86f0cd261"/><file name="SaveShipment.php" hash="e25dc37fcea0c0d5b9514b5f2f06142c"/></dir><file name="Order.php" hash="1a0e654d248afcdbfbe1ef2efee37880"/><dir name="Resource"><dir name="Order"><file name="Collection.php" hash="3c3d48c749ec6eaf6d6bfee14ebe3666"/></dir><file name="Order.php" hash="3d376c7a4a2f57a7cb7164dc184d5a2b"/><dir name="Shipment"><dir name="Barcode"><file name="Collection.php" hash="e62f736e637a975d9aa3279bb473dbb3"/></dir><file name="Barcode.php" hash="d316c2311619120e18da81cfbb267de1"/><file name="Collection.php" hash="d7d6859fd8a9033fc80da9129e3369fb"/><dir name="Label"><file name="Collection.php" hash="c619b7973240f3dde9af89b698de0c10"/></dir><file name="Label.php" hash="77b896129b48470271afc1e2752d8a1b"/><dir name="Status"><dir name="History"><file name="Collection.php" hash="648d33efa3f995ce1cfc267d5f513016"/></dir><file name="History.php" hash="0efb04af2aab1b7dd6aa9f33611e6234"/></dir></dir><file name="Shipment.php" hash="866602c0ada7ef58ecae2c5a1efdc6f7"/></dir><dir name="Shipment"><file name="Barcode.php" hash="708e9f8d4a91e0ff396075bce067a0cc"/><file name="Label.php" hash="e0a237436046dcdbb838c2ff8f0288d0"/><file name="Process.php" hash="ac1123043b313c27e10d10b8d3ed87ca"/><dir name="Status"><file name="History.php" hash="70c2b2315fa5c975f45b3d1c81b51f94"/></dir></dir><file name="Shipment.php" hash="a33aa3ac37a50e5205c02d5962a3ef54"/><dir name="System"><dir name="Config"><dir name="Backend"><file name="ValidateDefaultOption.php" hash="2c52e555ea892ca43d2f5ee9798bc0a3"/></dir><dir name="Source"><file name="AllProductOptions.php" hash="344e49b194c6a90f720eb3442464676e"/><file name="Attributes.php" hash="67f171bb027e241497976a64348f74c0"/><file name="DebugMode.php" hash="0b4d6096610b9c4a9071ab58ce89f076"/><file name="Direction.php" hash="9a9008ce2a364e327e61e0cea143cb1a"/><file name="EuProductOptions.php" hash="cfbeef4970aa495e7d8be334820ec603"/><file name="GlobalProductOptions.php" hash="4cdca1ff193b8b7d7469958b42d3ac5b"/><file name="GlobalpackShipmentType.php" hash="b7bbd9b0aea155cdd3de2c7e0f4b8bc1"/><file name="LabelSize.php" hash="c614fd4a36afd500fff902bc1beeb046"/><file name="PakjeGemakProductOptions.php" hash="d161492158638ed6b5c94201b2de5b36"/><file name="PakketautomaatProductOptions.php" hash="1c96a549339a096d6f8ed7e5e7de116f"/><file name="ReferenceType.php" hash="b9032cb7c23b4c2bb5da1e94994df72e"/><file name="StandardProductOptions.php" hash="d1b7f5a9964bdb6a945ab5aeadfaf6f4"/><file name="StreetField.php" hash="aa0d31ce882a2c58744a05ee6f40ca30"/><file name="StreetFieldWithDefault.php" hash="70c4945b2fde8d95a666960dd78cde66"/><file name="WeightUnit.php" hash="b4a9cf9b4dae4d68844be4ac53e1d3c1"/></dir></dir></dir></dir><dir name="DeliveryOptions"><file name="Cif.php" hash="9bb160b031e8d2354843305a7ec09a2d"/><dir name="Observer"><file name="ShippingMethodAvailable.php" hash="3bdd68d852c5f7a37516e3133d257e2e"/><file name="UpdatePostnlOrder.php" hash="ad4fe5cea92d0fb070246177b31d2f08"/></dir><dir name="Product"><dir name="Attribute"><dir name="Source"><file name="ShippingDuration.php" hash="7286b27d72e7fe7eb5fcc87a1850dca7"/></dir></dir></dir><file name="Service.php" hash="a16bce323ee6960d4c7b9130cbe35fea"/><dir name="System"><dir name="Config"><dir name="Backend"><file name="ValidateFee.php" hash="fe87712c1fbf092ab005eb4536ff1089"/></dir><dir name="Source"><file name="CutOffTime.php" hash="66212d723d0eb53578bd8365b62f2d10"/><file name="DeliveryDaysNumber.php" hash="a523c1ac414a47927539f1ec207e361b"/><file name="ShippingDuration.php" hash="4796436e2bf2183f428b3917f711694d"/><file name="Themes.php" hash="6c22d0819c83f23047d98af493efa7f8"/></dir></dir></dir></dir><dir name="ExtensionControl"><file name="Feed.php" hash="77b8b53ba79ddb3a98c844b9009aedc5"/><dir name="Observer"><file name="Cron.php" hash="d46a3e6a2b534049a31cac240f7a3344"/></dir><dir name="Webservices"><file name="Abstract.php" hash="db543e642ab624240d965b93eb17b186"/></dir><file name="Webservices.php" hash="da923d7d5fff5fdb01531680b23e87f6"/></dir><file name="Inbox.php" hash="5bb3b3a79f40bb3a1a1b6f8fd409143a"/><dir name="Mijnpakket"><file name="Cif.php" hash="d83f6daa823d18b3757e52b611112534"/><dir name="Observer"><file name="Onepage.php" hash="2017317d3dc8d3e929ba065cfb623991"/></dir><file name="Service.php" hash="51b66934eeb8ec7aaaa8a92090e67453"/></dir><dir name="Parcelware"><file name="Export.php" hash="5140bd34e1d4036220c811f130044ffb"/></dir><dir name="Resource"><dir name="Db"><dir name="Collection"><file name="Postnl.php" hash="aa6987a3c7f11a61c0ae806f3246e220"/></dir></dir><dir name="Order"><dir name="Grid"><file name="Collection.php" hash="c83b50400fa0a720c188986fff514998"/></dir><dir name="Shipment"><dir name="Grid"><file name="Collection.php" hash="147419ce83b50760bd7f9f6bad5e5257"/></dir></dir></dir><file name="Setup.php" hash="6af5733e70b9395d678f24a876acb951"/></dir><dir name="System"><dir name="Config"><dir name="Source"><file name="Testlive.php" hash="8d46ec0f6de0630ee10f682929de8127"/><file name="Yesno.php" hash="375b1847d684271a360b3382022afd52"/></dir></dir></dir></dir><dir name="sql"><dir name="postnl_setup"><file name="install-1.0.0.php" hash="df347ac048cb1afa14dfe9301535d4b7"/><file name="upgrade-1.1.5-1.2.0.php" hash="e89bbd2c46bad85b169c2ab7890ce067"/></dir></dir><file name="Exception.php" hash="4d7275f3c8929b9d48c73049bef3f05c"/></dir></dir></target></contents>
172
  <compatible/>
173
  <dependencies><required><php><min>5.3.0</min><max>6.0.0</max></php></required></dependencies>
174
  </package>