PostcodeNl_Api - Version 1.0.2.0

Version Notes

Improved compatibility with different checkout address-setups.

Download this release

Release Info

Developer Magento Core Team
Extension PostcodeNl_Api
Version 1.0.2.0
Comparing to
See all releases


Code changes from version 1.0.1.0 to 1.0.2.0

app/code/community/PostcodeNl/Api/controllers/JsonController.php CHANGED
@@ -34,33 +34,37 @@ class PostcodeNl_Api_JsonController extends Mage_Core_Controller_Front_Action
34
 
35
  $response = json_decode($jsonResponse, true);
36
 
 
37
  if ($serviceShowcase)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
38
  {
39
- echo $jsonResponse;
40
  }
41
  else
42
  {
43
- if (is_array($response) && isset($response['exceptionId']))
44
- {
45
- switch ($response['exceptionId'])
46
- {
47
- case 'PostcodeNl_Service_PostcodeAddress_NotFoundException':
48
- echo json_encode(array('message' => $this->__('Unknown postcode + housenumber combination.')));
49
- break;
50
- default:
51
- echo json_encode(array('message' => $this->__('Validation failed.')));
52
- break;
53
- }
54
- }
55
- else if (is_array($response) && isset($response['postcode']))
56
- {
57
- echo $jsonResponse;
58
- }
59
- else
60
- {
61
- echo json_encode(array('message' => $this->__('Validation failed.')));
62
- }
63
  }
 
64
  }
65
-
66
  }
34
 
35
  $response = json_decode($jsonResponse, true);
36
 
37
+ $sendResponse = array();
38
  if ($serviceShowcase)
39
+ $sendResponse['showcaseResponse'] = $response;
40
+
41
+ if (is_array($response) && isset($response['exceptionId']))
42
+ {
43
+ switch ($response['exceptionId'])
44
+ {
45
+ case 'PostcodeNl_Controller_Address_InvalidPostcodeException':
46
+ $sendResponse['message'] = $this->__('Invalid postcode format, use `1234AB` format.');
47
+ $sendResponse['messageTarget'] = 'postcode';
48
+ break;
49
+ case 'PostcodeNl_Service_PostcodeAddress_AddressNotFoundException':
50
+ $sendResponse['message'] = $this->__('Unknown postcode + housenumber combination.');
51
+ $sendResponse['messageTarget'] = 'housenumber';
52
+ break;
53
+ default:
54
+ $sendResponse['message'] = $this->__('Validation failed.');
55
+ $sendResponse['messageTarget'] = 'housenumber';
56
+ break;
57
+ }
58
+ }
59
+ else if (is_array($response) && isset($response['postcode']))
60
  {
61
+ $sendResponse = array_merge($sendResponse, $response);
62
  }
63
  else
64
  {
65
+ $sendResponse['message'] = $this->__('Validation failed.');
66
+ $sendResponse['messageTarget'] = 'housenumber';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
67
  }
68
+ echo json_encode($sendResponse);
69
  }
 
70
  }
app/code/community/PostcodeNl/Api/etc/system.xml CHANGED
@@ -56,6 +56,19 @@
56
  To get your Postcode.nl API key and secret, please register at <a href="https://api.postcode.nl">Postcode.nl API</a>.
57
  ]]></comment>
58
  </api_secret>
 
 
 
 
 
 
 
 
 
 
 
 
 
59
  <api_showcase translate="label">
60
  <label>Enable API Showcase</label>
61
  <frontend_type>select</frontend_type>
56
  To get your Postcode.nl API key and secret, please register at <a href="https://api.postcode.nl">Postcode.nl API</a>.
57
  ]]></comment>
58
  </api_secret>
59
+ <use_street2_as_housenumber translate="label">
60
+ <label>Separate housenumber</label>
61
+ <frontend_type>select</frontend_type>
62
+ <source_model>adminhtml/system_config_source_yesno</source_model>
63
+ <sort_order>45</sort_order>
64
+ <show_in_default>1</show_in_default>
65
+ <show_in_website>1</show_in_website>
66
+ <show_in_store>1</show_in_store>
67
+ <comment>
68
+ <![CDATA[
69
+ If you use the second 'street' field as a separate house-number field, enable this option.
70
+ ]]></comment>
71
+ </use_street2_as_housenumber>
72
  <api_showcase translate="label">
73
  <label>Enable API Showcase</label>
74
  <frontend_type>select</frontend_type>
app/design/frontend/default/default/template/postcodenl/api/jsinit.phtml CHANGED
@@ -3,6 +3,7 @@
3
  var PCNLAPI_CONFIG = {
4
  baseUrl: "<?php echo htmlspecialchars(Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_LINK)) ?>",
5
  showcase: <?php echo Mage::getStoreConfig('postcodenl/config/api_showcase') ? 'true' : 'false' ?>,
 
6
  translations: {
7
  defaultError: "<?php echo htmlspecialchars($this->__('Unknown postcode + housenumber combination.')) ?>",
8
  postcodeInputLabel: "<?php echo htmlspecialchars($this->__('Postcode (auto-validating)')) ?>",
3
  var PCNLAPI_CONFIG = {
4
  baseUrl: "<?php echo htmlspecialchars(Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_LINK)) ?>",
5
  showcase: <?php echo Mage::getStoreConfig('postcodenl/config/api_showcase') ? 'true' : 'false' ?>,
6
+ useStreet2AsHouseNumber: <?php echo Mage::getStoreConfig('postcodenl/config/use_street2_as_housenumber') ? 'true' : 'false' ?>,
7
  translations: {
8
  defaultError: "<?php echo htmlspecialchars($this->__('Unknown postcode + housenumber combination.')) ?>",
9
  postcodeInputLabel: "<?php echo htmlspecialchars($this->__('Postcode (auto-validating)')) ?>",
app/locale/en_US/PostcodeNl_Api.csv CHANGED
@@ -1,6 +1,9 @@
1
  "Unknown postcode + housenumber combination.","Unknown postcode + housenumber combination."
2
  "Housenumber addition `{addition}` is unknown.","Housenumber addition `{addition}` is unknown."
3
  "Housenumber addition required.","Housenumber addition required."
 
 
 
4
  "Housenumber","Housenumber"
5
  "Houseno addition","Houseno addition"
6
  "Housenumber addition","Housenumber addition"
1
  "Unknown postcode + housenumber combination.","Unknown postcode + housenumber combination."
2
  "Housenumber addition `{addition}` is unknown.","Housenumber addition `{addition}` is unknown."
3
  "Housenumber addition required.","Housenumber addition required."
4
+ "Invalid postcode format, use `1234AB` format.","Invalid postcode format, use `1234AB` format."
5
+ "Postcode","Postcode"
6
+ "Postcode (auto-validating)","Postcode (auto-validating)"
7
  "Housenumber","Housenumber"
8
  "Houseno addition","Houseno addition"
9
  "Housenumber addition","Housenumber addition"
app/locale/nl_NL/PostcodeNl_Api.csv CHANGED
@@ -1,6 +1,9 @@
1
  "Unknown postcode + housenumber combination.","Onbekende postcode + huisnummer combinatie."
2
  "Housenumber addition `{addition}` is unknown.","Huisnummer toevoeging `{addition}` is onbekend."
3
  "Housenumber addition required.","Huisnummer toevoeging vereist."
 
 
 
4
  "Housenumber","Huisnummer"
5
  "Houseno addition","Huisnr toevoeging"
6
  "Housenumber addition","Huisnummer toevoeging"
1
  "Unknown postcode + housenumber combination.","Onbekende postcode + huisnummer combinatie."
2
  "Housenumber addition `{addition}` is unknown.","Huisnummer toevoeging `{addition}` is onbekend."
3
  "Housenumber addition required.","Huisnummer toevoeging vereist."
4
+ "Invalid postcode format, use `1234AB` format.","Invalide postcode formaat, gebruik het `1234AB` formaat."
5
+ "Postcode","Postcode"
6
+ "Postcode (auto-validating)","Postcode (automatisch validerend)"
7
  "Housenumber","Huisnummer"
8
  "Houseno addition","Huisnr toevoeging"
9
  "Housenumber addition","Huisnummer toevoeging"
js/postcodenl/api/lookup.js CHANGED
@@ -45,16 +45,16 @@ document.observe("dom:loaded", function() {
45
  $(prefix +'showcase').remove();
46
 
47
  var info = '';
48
- for (var prop in json)
49
  {
50
  var name = prop.charAt(0).toUpperCase() + prop.slice(1);
51
- info += '<dt>'+ name.escapeHTML() +'</dt><dd>'+ String(json[prop] === null ? '- none -' : json[prop]).escapeHTML() +'</dd>';
52
  }
53
 
54
  var map = '';
55
- if (json.longitude && json.latitude)
56
  {
57
- map = '<iframe frameborder="0" scrolling="no" marginheight="0" marginwidth="0" class="map" src="http://maps.google.com/maps?t=h&amp;q='+ json.latitude +','+ json.longitude +'+(Location found)&amp;z=19&amp;output=embed&amp;iwloc=near"></iframe>';
58
  }
59
 
60
  if ($(prefix + countryFieldId).parentNode.tagName == 'TD')
@@ -64,7 +64,7 @@ document.observe("dom:loaded", function() {
64
  }
65
  else
66
  {
67
- $(prefix + street1).parentNode.parentNode.insert({before: '<li id="' + prefix +'showcase" class="wide"><div class="input-box"><h4 class="showcase">'+ PCNLAPI_CONFIG.translations.apiShowcase.escapeHTML() +'</h4><dl class="showcase">'+ info + map + '</dl></div></li>'});
68
  }
69
  }
70
 
@@ -72,6 +72,11 @@ document.observe("dom:loaded", function() {
72
  if (advice) {
73
  Validation.hideAdvice($(prefix +'postcode_housenumber'), advice, 'invalid-postcode');
74
  }
 
 
 
 
 
75
  if ($(prefix +'postcode_housenumber_addition'))
76
  {
77
  var additionAdvice = Validation.getAdvice('invalid-addition', $(prefix +'postcode_housenumber_addition'));
@@ -83,7 +88,16 @@ document.observe("dom:loaded", function() {
83
  {
84
  $(prefix + postcodeFieldId).setValue(json.postcode);
85
  $(prefix + 'postcode_input').setValue(json.postcode);
86
- $(prefix + street1).setValue((json.street +' '+ json.houseNumber +' '+ (json.houseNumberAddition ? json.houseNumberAddition : housenumber_addition)).trim());
 
 
 
 
 
 
 
 
 
87
  $(prefix +'city').setValue(json.city);
88
  $(prefix +'region').setValue(json.province);
89
 
@@ -126,7 +140,7 @@ document.observe("dom:loaded", function() {
126
  }
127
  else if (json.message != undefined)
128
  {
129
- newAdvice = Validation.createAdvice('invalid-postcode', $(prefix +'postcode_housenumber'), false, json.message);
130
  Validation.showAdvice($(prefix +'postcode_housenumber'), newAdvice, 'invalid-postcode');
131
 
132
  if ($(prefix +'postcode_housenumber_addition'))
@@ -134,7 +148,7 @@ document.observe("dom:loaded", function() {
134
  }
135
  else
136
  {
137
- newAdvice = Validation.createAdvice('invalid-postcode', $(prefix +'postcode_housenumber'), false, '');
138
  Validation.showAdvice($(prefix +'postcode_housenumber'), newAdvice, 'invalid-postcode');
139
 
140
  if ($(prefix +'postcode_housenumber_addition'))
@@ -151,8 +165,16 @@ document.observe("dom:loaded", function() {
151
  alert(prefix + countryFieldId);
152
  if ($(prefix + countryFieldId).getValue() == 'NL')
153
  {
154
- $(prefix +'city', prefix +'region', prefix + postcodeFieldId, prefix + street1, prefix + street2).invoke('setAttribute', 'readonly', true);
155
- $(prefix +'city', prefix +'region', prefix + postcodeFieldId, prefix + street1, prefix + street2).invoke('addClassName', 'readonly');
 
 
 
 
 
 
 
 
156
  $(prefix +'city', prefix +'region', prefix + postcodeFieldId, prefix + street1).invoke('removeClassName', 'required-entry');
157
  if (!$(prefix +'postcode_input:wrapper'))
158
  {
@@ -163,7 +185,7 @@ document.observe("dom:loaded", function() {
163
  }
164
  else
165
  {
166
- $(prefix + street1).parentNode.parentNode.insert({before: '<li id="' + prefix + 'postcode_input:wrapper"><div class="field"><label for="' + prefix + 'postcode_input" class="required"><em>*</em>'+ PCNLAPI_CONFIG.translations.postcodeInputLabel +'</label><div class="input-box"><input type="text" title="'+ PCNLAPI_CONFIG.translations.postcodeInputTitle +'" id="' + prefix + 'postcode_input" value="" class="input-text required-entry" /></div></div><div class="field"><label for="' + prefix + 'postcode_housenumber" class="required"><em>*</em>'+ PCNLAPI_CONFIG.translations.houseNumberLabel +'</label><div class="input-box"><input type="text" title="'+ PCNLAPI_CONFIG.translations.houseNumberTitle +'" name="billing[postcode_housenumber]" id="' + prefix + 'postcode_housenumber" value="" class="input-text input-text-half required-entry" /></div></div></li>'});
167
  }
168
 
169
  $(prefix +'postcode_input').observe('change', function(e) { lookupPostcode(prefix, postcodeFieldId, countryFieldId, street1, street2, e); });
@@ -180,7 +202,15 @@ document.observe("dom:loaded", function() {
180
  {
181
  $(prefix +'postcode_input').setValue($(prefix + postcodeFieldId).getValue());
182
 
183
- var housenumber_match = $(prefix + street1).getValue().match(/([0-9]+)([^0-9a-zA-Z]+([0-9a-zA-Z ]+)|([a-zA-Z]([0-9a-zA-Z ]+)))?$/);
 
 
 
 
 
 
 
 
184
 
185
  var housenumber = housenumber_match ? housenumber_match[1].trim() : '';
186
 
@@ -199,8 +229,16 @@ document.observe("dom:loaded", function() {
199
  }
200
  else
201
  {
202
- $(prefix +'city', prefix +'region', prefix + postcodeFieldId, prefix + street1, prefix + street2).invoke('removeAttribute', 'readonly');
203
- $(prefix +'city', prefix +'region', prefix + postcodeFieldId, prefix + street1, prefix + street2).invoke('removeClassName', 'readonly');
 
 
 
 
 
 
 
 
204
  $(prefix +'city', prefix +'region', prefix + postcodeFieldId, prefix + street1).invoke('addClassName', 'required-entry');
205
  Element.remove($(prefix +'postcode_input:wrapper'));
206
  if ($(prefix +'postcode_housenumber:wrapper'))
45
  $(prefix +'showcase').remove();
46
 
47
  var info = '';
48
+ for (var prop in json.showcaseResponse)
49
  {
50
  var name = prop.charAt(0).toUpperCase() + prop.slice(1);
51
+ info += '<dt>'+ name.escapeHTML() +'</dt><dd>'+ String(json.showcaseResponse[prop] === null ? '- none -' : json.showcaseResponse[prop]).escapeHTML() +'</dd>';
52
  }
53
 
54
  var map = '';
55
+ if (json.showcaseResponse.longitude && json.showcaseResponse.latitude)
56
  {
57
+ map = '<iframe frameborder="0" scrolling="no" marginheight="0" marginwidth="0" class="map" src="http://maps.google.com/maps?t=h&amp;q='+ json.showcaseResponse.latitude +','+ json.showcaseResponse.longitude +'+(Location found)&amp;z=19&amp;output=embed&amp;iwloc=near"></iframe>';
58
  }
59
 
60
  if ($(prefix + countryFieldId).parentNode.tagName == 'TD')
64
  }
65
  else
66
  {
67
+ $(prefix + street1).up('li').insert({before: '<li id="' + prefix +'showcase" class="wide"><div class="input-box"><h4 class="showcase">'+ PCNLAPI_CONFIG.translations.apiShowcase.escapeHTML() +'</h4><dl class="showcase">'+ info + map + '</dl></div></li>'});
68
  }
69
  }
70
 
72
  if (advice) {
73
  Validation.hideAdvice($(prefix +'postcode_housenumber'), advice, 'invalid-postcode');
74
  }
75
+ var advice = Validation.getAdvice('invalid-postcode', $(prefix +'postcode_input'));
76
+ if (advice) {
77
+ Validation.hideAdvice($(prefix +'postcode_input'), advice, 'invalid-postcode');
78
+ }
79
+
80
  if ($(prefix +'postcode_housenumber_addition'))
81
  {
82
  var additionAdvice = Validation.getAdvice('invalid-addition', $(prefix +'postcode_housenumber_addition'));
88
  {
89
  $(prefix + postcodeFieldId).setValue(json.postcode);
90
  $(prefix + 'postcode_input').setValue(json.postcode);
91
+ if (PCNLAPI_CONFIG.useStreet2AsHouseNumber)
92
+ {
93
+ $(prefix + street1).setValue((json.street).trim());
94
+ $(prefix + street2).setValue((json.houseNumber +' '+ (json.houseNumberAddition ? json.houseNumberAddition : housenumber_addition)).trim());
95
+ }
96
+ else
97
+ {
98
+ $(prefix + street1).setValue((json.street +' '+ json.houseNumber +' '+ (json.houseNumberAddition ? json.houseNumberAddition : housenumber_addition)).trim());
99
+ }
100
+
101
  $(prefix +'city').setValue(json.city);
102
  $(prefix +'region').setValue(json.province);
103
 
140
  }
141
  else if (json.message != undefined)
142
  {
143
+ newAdvice = Validation.createAdvice('invalid-postcode', $(prefix + (json.messageTarget == 'postcode' ? 'postcode_input' : 'postcode_housenumber')), false, json.message);
144
  Validation.showAdvice($(prefix +'postcode_housenumber'), newAdvice, 'invalid-postcode');
145
 
146
  if ($(prefix +'postcode_housenumber_addition'))
148
  }
149
  else
150
  {
151
+ newAdvice = Validation.createAdvice('invalid-postcode', $(prefix + (json.messageTarget == 'postcode' ? 'postcode_input' : 'postcode_housenumber')), false, '');
152
  Validation.showAdvice($(prefix +'postcode_housenumber'), newAdvice, 'invalid-postcode');
153
 
154
  if ($(prefix +'postcode_housenumber_addition'))
165
  alert(prefix + countryFieldId);
166
  if ($(prefix + countryFieldId).getValue() == 'NL')
167
  {
168
+ var street2element = $(prefix + street2);
169
+ if (street2element)
170
+ {
171
+ $(street2element).setAttribute('readonly', true);
172
+ $(street2element).addClassName('readonly');
173
+ $(street2element).removeClassName('required-entry');
174
+ }
175
+
176
+ $(prefix +'city', prefix +'region', prefix + postcodeFieldId, prefix + street1).invoke('setAttribute', 'readonly', true);
177
+ $(prefix +'city', prefix +'region', prefix + postcodeFieldId, prefix + street1).invoke('addClassName', 'readonly');
178
  $(prefix +'city', prefix +'region', prefix + postcodeFieldId, prefix + street1).invoke('removeClassName', 'required-entry');
179
  if (!$(prefix +'postcode_input:wrapper'))
180
  {
185
  }
186
  else
187
  {
188
+ $(prefix + street1).up('li').insert({before: '<li id="' + prefix + 'postcode_input:wrapper" class="fields"><div class="field"><label for="' + prefix + 'postcode_input" class="required"><em>*</em>'+ PCNLAPI_CONFIG.translations.postcodeInputLabel +'</label><div class="input-box"><input type="text" title="'+ PCNLAPI_CONFIG.translations.postcodeInputTitle +'" id="' + prefix + 'postcode_input" value="" class="input-text required-entry" /></div></div><div class="field"><label for="' + prefix + 'postcode_housenumber" class="required"><em>*</em>'+ PCNLAPI_CONFIG.translations.houseNumberLabel +'</label><div class="input-box"><input type="text" title="'+ PCNLAPI_CONFIG.translations.houseNumberTitle +'" name="billing[postcode_housenumber]" id="' + prefix + 'postcode_housenumber" value="" class="input-text input-text-half required-entry" /></div></div></li>'});
189
  }
190
 
191
  $(prefix +'postcode_input').observe('change', function(e) { lookupPostcode(prefix, postcodeFieldId, countryFieldId, street1, street2, e); });
202
  {
203
  $(prefix +'postcode_input').setValue($(prefix + postcodeFieldId).getValue());
204
 
205
+ var housenumber_match;
206
+ if (PCNLAPI_CONFIG.useStreet2AsHouseNumber)
207
+ {
208
+ housenumber_match = $(prefix + street2).getValue().match(/([0-9]+)([^0-9a-zA-Z]+([0-9a-zA-Z ]+)|([a-zA-Z]([0-9a-zA-Z ]+)))?$/);
209
+ }
210
+ else
211
+ {
212
+ housenumber_match = $(prefix + street1).getValue().match(/([0-9]+)([^0-9a-zA-Z]+([0-9a-zA-Z ]+)|([a-zA-Z]([0-9a-zA-Z ]+)))?$/);
213
+ }
214
 
215
  var housenumber = housenumber_match ? housenumber_match[1].trim() : '';
216
 
229
  }
230
  else
231
  {
232
+ var street2element = $(prefix + street2);
233
+ if (street2element)
234
+ {
235
+ $(street2element).removeAttribute('readonly');
236
+ $(street2element).removeClassName('readonly');
237
+ $(street2element).addClassName('required-entry');
238
+ }
239
+
240
+ $(prefix +'city', prefix +'region', prefix + postcodeFieldId, prefix + street1).invoke('removeAttribute', 'readonly');
241
+ $(prefix +'city', prefix +'region', prefix + postcodeFieldId, prefix + street1).invoke('removeClassName', 'readonly');
242
  $(prefix +'city', prefix +'region', prefix + postcodeFieldId, prefix + street1).invoke('addClassName', 'required-entry');
243
  Element.remove($(prefix +'postcode_input:wrapper'));
244
  if ($(prefix +'postcode_housenumber:wrapper'))
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>PostcodeNl_Api</name>
4
- <version>1.0.1.0</version>
5
  <stability>stable</stability>
6
  <license>Simplified BSD License</license>
7
  <channel>community</channel>
@@ -9,17 +9,17 @@
9
  <summary>Complement and validate Dutch addresses at Checkout with the free postcode Magento plugin from Postcode.nl.</summary>
10
  <description>Complement and validate Dutch addresses at Checkout with the free postcode Magento plugin from Postcode.nl.&#xD;
11
  &#xD;
12
- &#x2022; Reduce address errors &#xD;
13
  &#x2022; Reduce costs from undelivered mail and packages&#xD;
14
  &#x2022; Offer extra service for your customers with easy address entry&#xD;
15
  &#x2022; Improve sale conversion&#xD;
16
  &#xD;
17
  The postcode Magento plugin from Postcode.nl is free of charge, with a limitation of 10,000 requests per year. The use of the Postcode.nl Magento plugin is subject to our Terms and Conditions.</description>
18
- <notes>Improved compatibility.</notes>
19
  <authors><author><name>Postcode.nl Technical Support</name><user>auto-converted</user><email>tech@postcode.nl</email></author></authors>
20
- <date>2012-09-06</date>
21
- <time>13:55:07</time>
22
- <contents><target name="magecommunity"><dir name="PostcodeNl"><dir name="Api"><dir name="Block"><file name="Jsinit.php" hash="79bb826a50ce0cf4f87cc2f958bfafa1"/></dir><dir name="Helper"><file name="Data.php" hash="86d092299190f0c57ef73e9432278306"/></dir><dir name="controllers"><file name="JsonController.php" hash="4c0ea49354041dd49049bc4ed24b3ed3"/></dir><dir name="etc"><file name="config.xml" hash="a1b4244120c47f02084de73488ce68c2"/><file name="system.xml" hash="e49a0d5fd68620e2f179a58e1de51671"/></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><dir name="postcodenl"><dir name="api"><file name="lookup.xml" hash="912aa0881de03e5d7bd338a00e783215"/></dir></dir></dir><dir name="template"><dir name="postcodenl"><dir name="api"><file name="jsinit.phtml" hash="8061e808dc71f96026e268d3463728fe"/></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="default"><dir name="default"><dir name="layout"><dir name="postcodenl"><dir name="api"><file name="lookup.xml" hash="606b14bed6481aa253e60c89e75ed9e6"/></dir></dir></dir><dir name="template"><dir name="postcodenl"><dir name="api"><file name="jsinit.phtml" hash="fe4621dc415f62efd24bb7707df72cf7"/></dir></dir></dir></dir></dir></dir></target><target name="magelocale"><dir name="en_US"><file name="PostcodeNl_Api.csv" hash="4afeaaa3b5dd9fe76b5c0d72ebe504aa"/></dir><dir name="nl_NL"><file name="PostcodeNl_Api.csv" hash="890191bad671146a940d0c561ea27782"/></dir></target><target name="mageweb"><dir name="js"><dir name="postcodenl"><dir name="api"><file name="lookup.js" hash="1a2d3cee535ed0655b1518af26b5ae2f"/></dir></dir></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="postcodenl"><dir name="api"><dir name="css"><file name="lookup.css" hash="bfb9ee43739cfec85954b1e810fc996c"/></dir><dir name="images"><file name="postcode-logo.png" hash="da02bc29be1057a0201e63f81ee4bd02"/></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="default"><dir name="default"><dir name="postcodenl"><dir name="api"><dir name="css"><file name="lookup.css" hash="b3565f5a31fb73b3d8c9d78c3226bdec"/></dir><dir name="images"><file name="postcode-logo.png" hash="da02bc29be1057a0201e63f81ee4bd02"/></dir></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="PostcodeNl_Api.xml" hash="feeaf95128ffe4ad109ed8b0b8bc85ab"/></dir></target></contents>
23
  <compatible/>
24
  <dependencies/>
25
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>PostcodeNl_Api</name>
4
+ <version>1.0.2.0</version>
5
  <stability>stable</stability>
6
  <license>Simplified BSD License</license>
7
  <channel>community</channel>
9
  <summary>Complement and validate Dutch addresses at Checkout with the free postcode Magento plugin from Postcode.nl.</summary>
10
  <description>Complement and validate Dutch addresses at Checkout with the free postcode Magento plugin from Postcode.nl.&#xD;
11
  &#xD;
12
+ &#x2022; Reduce address errors&#xD;
13
  &#x2022; Reduce costs from undelivered mail and packages&#xD;
14
  &#x2022; Offer extra service for your customers with easy address entry&#xD;
15
  &#x2022; Improve sale conversion&#xD;
16
  &#xD;
17
  The postcode Magento plugin from Postcode.nl is free of charge, with a limitation of 10,000 requests per year. The use of the Postcode.nl Magento plugin is subject to our Terms and Conditions.</description>
18
+ <notes>Improved compatibility with different checkout address-setups.</notes>
19
  <authors><author><name>Postcode.nl Technical Support</name><user>auto-converted</user><email>tech@postcode.nl</email></author></authors>
20
+ <date>2012-09-12</date>
21
+ <time>14:32:56</time>
22
+ <contents><target name="magecommunity"><dir name="PostcodeNl"><dir name="Api"><dir name="Block"><file name="Jsinit.php" hash="79bb826a50ce0cf4f87cc2f958bfafa1"/></dir><dir name="Helper"><file name="Data.php" hash="86d092299190f0c57ef73e9432278306"/></dir><dir name="controllers"><file name="JsonController.php" hash="08c7624dc4c99c0153d606dc2af49f9f"/></dir><dir name="etc"><file name="config.xml" hash="a1b4244120c47f02084de73488ce68c2"/><file name="system.xml" hash="a9f001a7ecd29056679873229284fa80"/></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><dir name="postcodenl"><dir name="api"><file name="lookup.xml" hash="912aa0881de03e5d7bd338a00e783215"/></dir></dir></dir><dir name="template"><dir name="postcodenl"><dir name="api"><file name="jsinit.phtml" hash="8061e808dc71f96026e268d3463728fe"/></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="default"><dir name="default"><dir name="layout"><dir name="postcodenl"><dir name="api"><file name="lookup.xml" hash="606b14bed6481aa253e60c89e75ed9e6"/></dir></dir></dir><dir name="template"><dir name="postcodenl"><dir name="api"><file name="jsinit.phtml" hash="31e7380f3954b2cafcfb4f88702b8d7b"/></dir></dir></dir></dir></dir></dir></target><target name="magelocale"><dir name="en_US"><file name="PostcodeNl_Api.csv" hash="d13aab689872c566127cd05fa210f4cd"/></dir><dir name="nl_NL"><file name="PostcodeNl_Api.csv" hash="f61fb87d1954d2321ffbeabb578d078e"/></dir></target><target name="mageweb"><dir name="js"><dir name="postcodenl"><dir name="api"><file name="lookup.js" hash="80f9037e48a7f283af2298a4b4f0d045"/></dir></dir></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="postcodenl"><dir name="api"><dir name="css"><file name="lookup.css" hash="bfb9ee43739cfec85954b1e810fc996c"/></dir><dir name="images"><file name="postcode-logo.png" hash="da02bc29be1057a0201e63f81ee4bd02"/></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="default"><dir name="default"><dir name="postcodenl"><dir name="api"><dir name="css"><file name="lookup.css" hash="b3565f5a31fb73b3d8c9d78c3226bdec"/></dir><dir name="images"><file name="postcode-logo.png" hash="da02bc29be1057a0201e63f81ee4bd02"/></dir></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="PostcodeNl_Api.xml" hash="feeaf95128ffe4ad109ed8b0b8bc85ab"/></dir></target></contents>
23
  <compatible/>
24
  <dependencies/>
25
  </package>