Owebia_Shipping_2 - Version 2.5.19

Version Notes

[2.5.19 - 09 novembre 2015]
Note: the extension is not affected by the patch SUPEE-6788 since it uses the new admin url routing syntax for 3 years (version 2.4.8.0)
Fix bug: deactivation of auto-escaping by default since it can cause some bugs (ex: impossible to use {address_filter.EU-27} in shipto)
Fix bug: fix auto-escaping of properties like {{shipto.country_name}}
Fix bug: variable replacements in labels (variables {cart.price-tax-discount}, {cart.price-tax+discount}, {cart.price+tax-discount} and {cart.price+tax+discount})
Fix bug: use items and not quote to retrieve values {cart.price-tax-discount}, {cart.price-tax+discount}, {cart.price+tax-discount} and {cart.price+tax+discount} (quote totals are not available at this time, calculating them causes duplications of addresses and a false grand_total value)
Fix bug: retrieve customer in backoffice order
Fix unicode accented chars in json_encode for PHP < 5.4
Fix bug: usage of regular expressions inside {count ...}, {sum ...}, {min ...} and {max ...}
Allow usage of php functions date and strtotime (ex: "label": "'Your package will be delivered between ' . date('d/m', strtotime('+5 days')) . ' and ' . date('d/m Y', strtotime('+7 days'))",

Download this release

Release Info

Developer owebia
Extension Owebia_Shipping_2
Version 2.5.19
Comparing to
See all releases


Code changes from version 2.5.18 to 2.5.19

app/code/community/Owebia/Shipping2/Helper/Data.php CHANGED
@@ -93,8 +93,6 @@ class Owebia_Shipping2_Helper_Data extends Mage_Core_Helper_Data
93
  ),
94
  array(
95
  $cart->weight . $cart->weight_unit,
96
- $this->currency($cart->price_including_tax),
97
- $this->currency($cart->price_excluding_tax),
98
  $this->currency($cart->{'price-tax+discount'}),
99
  $this->currency($cart->{'price-tax-discount'}),
100
  $this->currency($cart->{'price+tax+discount'}),
93
  ),
94
  array(
95
  $cart->weight . $cart->weight_unit,
 
 
96
  $this->currency($cart->{'price-tax+discount'}),
97
  $this->currency($cart->{'price-tax-discount'}),
98
  $this->currency($cart->{'price+tax+discount'}),
app/code/community/Owebia/Shipping2/Model/Carrier/Abstract.php CHANGED
@@ -155,33 +155,6 @@ abstract class Owebia_Shipping2_Model_Carrier_Abstract extends Mage_Shipping_Mod
155
  return $this->_config;
156
  }
157
 
158
- protected function _getMethodText($process, $row, $property)
159
- {
160
- if (!isset($row[$property])) return '';
161
-
162
- $output = '';
163
- $cart = $process['data']['cart'];
164
- return $output . ' ' . $this->_helper->evalInput($process, $row, $property, str_replace(
165
- array(
166
- '{cart.weight}',
167
- '{cart.price-tax+discount}',
168
- '{cart.price-tax-discount}',
169
- '{cart.price+tax+discount}',
170
- '{cart.price+tax-discount}',
171
- ),
172
- array(
173
- $cart->weight.$cart->weight_unit,
174
- $this->__formatPrice($cart->price_including_tax),
175
- $this->__formatPrice($cart->price_excluding_tax),
176
- $this->__formatPrice($cart->{'price-tax+discount'}),
177
- $this->__formatPrice($cart->{'price-tax-discount'}),
178
- $this->__formatPrice($cart->{'price+tax+discount'}),
179
- $this->__formatPrice($cart->{'price+tax-discount'}),
180
- ),
181
- $this->_helper->getRowProperty($row, $property)
182
- ));
183
- }
184
-
185
  /***************************************************************************************************************************/
186
 
187
  protected function __checkRequest($http_request, $path)
155
  return $this->_config;
156
  }
157
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
158
  /***************************************************************************************************************************/
159
 
160
  protected function __checkRequest($http_request, $path)
app/code/community/Owebia/Shipping2/Model/Os2/Data/Cart.php CHANGED
@@ -24,6 +24,7 @@ class Owebia_Shipping2_Model_Os2_Data_Cart extends Owebia_Shipping2_Model_Os2_Da
24
  protected $additional_attributes = array('coupon_code', 'weight_unit', 'weight_for_charge', 'free_shipping');
25
  protected $_free_shipping;
26
  protected $_items;
 
27
  protected $_options;
28
 
29
  public function __construct($arguments)
@@ -32,12 +33,11 @@ class Owebia_Shipping2_Model_Os2_Data_Cart extends Owebia_Shipping2_Model_Os2_Da
32
  $request = $arguments['request'];
33
  $this->_options = $arguments['options'];
34
 
35
- $quote = Mage::getModel('checkout/session')->getQuote(); // Do not use Mage::getSingleton('checkout/session')->getQuote();
36
- $shipping_address = $quote->getShippingAddress();
37
  $this->_data = array(
38
- 'price-tax+discount' => (double)$quote->getData('subtotal_with_discount'), //$request->getData('package_value_with_discount'),
39
- 'price-tax-discount' => (double)$quote->getData('subtotal'), //$request->getData('package_value'),
40
- 'price+tax+discount' => (double)$quote->getData('grand_total') - $shipping_address->getData('shipping_amount') - $shipping_address->getData('shipping_tax_amount'),
 
41
  'price+tax-discount' => null,
42
  'weight' => $request->getData('package_weight'),
43
  'qty' => $request->getData('package_qty'),
@@ -61,8 +61,11 @@ class Owebia_Shipping2_Model_Os2_Data_Cart extends Owebia_Shipping2_Model_Os2_Da
61
  }
62
  }
63
 
64
- $tax_amount = 0;
65
- $full_price = 0;
 
 
 
66
  $this->_items = array();
67
  foreach ($cart_items as $item) {
68
  $type = $item->getProduct()->getTypeId();
@@ -81,15 +84,25 @@ class Owebia_Shipping2_Model_Os2_Data_Cart extends Owebia_Shipping2_Model_Os2_Da
81
  }
82
  $this->_items[] = Mage::getModel('owebia_shipping2/Os2_Data_CartItem', array('item' => $item, 'parent_item' => $parent_item, 'options' => $this->_options));
83
  }
84
- //$tax_amount += $item->getData('tax_amount');
85
- $full_price += Mage::helper('checkout')->getSubtotalInclTax($item); // ok
 
 
 
86
  }
87
- //$this->_data['price+tax+discount'] = $tax_amount+$this->_data['price-tax+discount'];
88
- $this->_data['price+tax-discount'] = $full_price;
89
-
 
 
90
  //echo '<pre>Owebia_Shipping2_Model_Os2_Data_Abstract::__construct<br/>';foreach ($this->_data as $n => $v){echo "\t$n => ".(is_object($v) ? get_class($v) : (is_array($v) ? 'array' : $v))."<br/>";}echo '</pre>';
91
  }
92
 
 
 
 
 
 
93
  protected function _load($name)
94
  {
95
  switch ($name) {
@@ -101,16 +114,8 @@ class Owebia_Shipping2_Model_Os2_Data_Cart extends Owebia_Shipping2_Model_Os2_Da
101
  return $weight_for_charge;
102
  case 'coupon_code':
103
  $coupon_code = null;
104
- $session = Mage::getSingleton('checkout/session');
105
- if ($session && ($quote = $session->getQuote()) && $quote->hasCouponCode() && $quote->getCouponCode()) {
106
- $coupon_code = $quote->getCouponCode();
107
- } else { // Pour les commandes depuis Adminhtml
108
- $session = Mage::getSingleton('adminhtml/session_quote');
109
- if ($session && ($quote = $session->getQuote()) && $quote->hasCouponCode() && $quote->getCouponCode()) {
110
- $coupon_code = $quote->getCouponCode();
111
- }
112
- }
113
- return $coupon_code;
114
  case 'weight_unit':
115
  return Mage::getStoreConfig('owebia_shipping2/general/weight_unit');
116
  }
24
  protected $additional_attributes = array('coupon_code', 'weight_unit', 'weight_for_charge', 'free_shipping');
25
  protected $_free_shipping;
26
  protected $_items;
27
+ protected $_quote;
28
  protected $_options;
29
 
30
  public function __construct($arguments)
33
  $request = $arguments['request'];
34
  $this->_options = $arguments['options'];
35
 
 
 
36
  $this->_data = array(
37
+ // Do not use quote to retrieve values, totals are not available
38
+ 'price-tax+discount' => null,//(double)$request->getData('package_value_with_discount'), // Bad value in backoffice orders
39
+ 'price-tax-discount' => null,//(double)$request->getData('package_value'),
40
+ 'price+tax+discount' => null,
41
  'price+tax-discount' => null,
42
  'weight' => $request->getData('package_weight'),
43
  'qty' => $request->getData('package_qty'),
61
  }
62
  }
63
 
64
+ // Do not use quote to retrieve values, totals are not available
65
+ $total_incl_tax_without_discount = 0;
66
+ $total_excl_tax_without_discount = 0;
67
+ $total_incl_tax_with_discount = 0;
68
+ $total_excl_tax_with_discount = 0;
69
  $this->_items = array();
70
  foreach ($cart_items as $item) {
71
  $type = $item->getProduct()->getTypeId();
84
  }
85
  $this->_items[] = Mage::getModel('owebia_shipping2/Os2_Data_CartItem', array('item' => $item, 'parent_item' => $parent_item, 'options' => $this->_options));
86
  }
87
+ //foreach ($item->getData() as $index => $value) echo "$index = $value<br/>\n";
88
+ $total_excl_tax_without_discount += $item->getData('base_row_total');
89
+ $total_excl_tax_with_discount += $item->getData('base_row_total') - $item->getData('base_discount_amount');
90
+ $total_incl_tax_with_discount += $item->getData('base_row_total') - $item->getData('base_discount_amount') + $item->getData('tax_amount');
91
+ $total_incl_tax_without_discount += $item->getData('base_row_total_incl_tax');
92
  }
93
+ $this->_data['price-tax+discount'] = $total_excl_tax_with_discount;
94
+ $this->_data['price-tax-discount'] = $total_excl_tax_without_discount;
95
+ $this->_data['price+tax+discount'] = $total_incl_tax_with_discount;
96
+ $this->_data['price+tax-discount'] = $total_incl_tax_without_discount;
97
+
98
  //echo '<pre>Owebia_Shipping2_Model_Os2_Data_Abstract::__construct<br/>';foreach ($this->_data as $n => $v){echo "\t$n => ".(is_object($v) ? get_class($v) : (is_array($v) ? 'array' : $v))."<br/>";}echo '</pre>';
99
  }
100
 
101
+ protected function _getQuote()
102
+ {
103
+ return Mage::getModel('owebia_shipping2/Os2_Data_Quote');
104
+ }
105
+
106
  protected function _load($name)
107
  {
108
  switch ($name) {
114
  return $weight_for_charge;
115
  case 'coupon_code':
116
  $coupon_code = null;
117
+ $quote = $this->_getQuote();
118
+ return $quote->coupon_code;
 
 
 
 
 
 
 
 
119
  case 'weight_unit':
120
  return Mage::getStoreConfig('owebia_shipping2/general/weight_unit');
121
  }
app/code/community/Owebia/Shipping2/Model/Os2/Data/Customer.php CHANGED
@@ -26,7 +26,7 @@ class Owebia_Shipping2_Model_Os2_Data_Customer extends Owebia_Shipping2_Model_Os
26
  public function __construct($arguments=null)
27
  {
28
  parent::__construct(array(
29
- 'id' => Mage::getSingleton('customer/session')->getCustomerId(),
30
  ));
31
  }
32
 
26
  public function __construct($arguments=null)
27
  {
28
  parent::__construct(array(
29
+ 'id' => Mage::getModel('owebia_shipping2/Os2_Data_Quote')->customer_id,
30
  ));
31
  }
32
 
app/code/community/Owebia/Shipping2/Model/Os2/Data/Quote.php CHANGED
@@ -25,7 +25,19 @@ class Owebia_Shipping2_Model_Os2_Data_Quote extends Owebia_Shipping2_Model_Os2_D
25
 
26
  protected function _loadObject()
27
  {
28
- $quote = Mage::getModel('checkout/session')->getQuote(); // Do not use Mage::getSingleton('checkout/session')->getQuote();
 
 
 
 
 
 
 
 
 
 
 
 
29
  return $quote;
30
  }
31
  }
25
 
26
  protected function _loadObject()
27
  {
28
+ // Backend
29
+ if (Mage::app()->getStore()->isAdmin()) {
30
+ $sessionQuote = Mage::getSingleton('adminhtml/session_quote');
31
+ if (!$sessionQuote->getQuoteId()) return; // Avoid infinite loop
32
+ $quote = $sessionQuote->getQuote();
33
+ }
34
+ // Frontend
35
+ else {
36
+ $session = Mage::getSingleton('checkout/session');
37
+ if (!$session->getQuoteId()) return; // Avoid infinite loop
38
+ $quote = $session->getQuote();
39
+ }
40
+
41
  return $quote;
42
  }
43
  }
app/code/community/Owebia/Shipping2/changelog CHANGED
@@ -1,3 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
1
  [2.5.18 - 24 juillet 2014]
2
  Pas de modification, nouvelle version pour Magento Connect
3
 
1
+ [2.5.19 - 09 novembre 2015]
2
+ Note: the extension is not affected by the patch SUPEE-6788 since it uses the new admin url routing syntax for 3 years (version 2.4.8.0)
3
+ Fix bug: deactivation of auto-escaping by default since it can cause some bugs (ex: impossible to use {address_filter.EU-27} in shipto)
4
+ Fix bug: fix auto-escaping of properties like {{shipto.country_name}}
5
+ Fix bug: variable replacements in labels (variables {cart.price-tax-discount}, {cart.price-tax+discount}, {cart.price+tax-discount} and {cart.price+tax+discount})
6
+ Fix bug: use items and not quote to retrieve values {cart.price-tax-discount}, {cart.price-tax+discount}, {cart.price+tax-discount} and {cart.price+tax+discount} (quote totals are not available at this time, calculating them causes duplications of addresses and a false grand_total value)
7
+ Fix bug: retrieve customer in backoffice order
8
+ Fix unicode accented chars in json_encode for PHP < 5.4
9
+ Fix bug: usage of regular expressions inside {count ...}, {sum ...}, {min ...} and {max ...}
10
+ Allow usage of php functions date and strtotime (ex: "label": "'Your package will be delivered between ' . date('d/m', strtotime('+5 days')) . ' and ' . date('d/m Y', strtotime('+7 days'))",
11
+
12
  [2.5.18 - 24 juillet 2014]
13
  Pas de modification, nouvelle version pour Magento Connect
14
 
app/code/community/Owebia/Shipping2/etc/config.xml CHANGED
@@ -168,7 +168,7 @@
168
  }
169
  }</config>
170
  <debug>0</debug>
171
- <auto_escaping>1</auto_escaping>
172
  <auto_correction>1</auto_correction>
173
  <stop_to_first_match>0</stop_to_first_match>
174
  <sort_order>1</sort_order>
@@ -180,7 +180,7 @@
180
  <tracking_view_url></tracking_view_url>
181
  <config></config>
182
  <debug>0</debug>
183
- <auto_escaping>1</auto_escaping>
184
  <auto_correction>1</auto_correction>
185
  <stop_to_first_match>0</stop_to_first_match>
186
  <sort_order>3</sort_order>
@@ -192,7 +192,7 @@
192
  <tracking_view_url></tracking_view_url>
193
  <config></config>
194
  <debug>0</debug>
195
- <auto_escaping>1</auto_escaping>
196
  <auto_correction>1</auto_correction>
197
  <stop_to_first_match>0</stop_to_first_match>
198
  <sort_order>2</sort_order>
@@ -204,7 +204,7 @@
204
  <tracking_view_url></tracking_view_url>
205
  <config></config>
206
  <debug>0</debug>
207
- <auto_escaping>1</auto_escaping>
208
  <auto_correction>1</auto_correction>
209
  <stop_to_first_match>0</stop_to_first_match>
210
  <sort_order>4</sort_order>
168
  }
169
  }</config>
170
  <debug>0</debug>
171
+ <auto_escaping>0</auto_escaping>
172
  <auto_correction>1</auto_correction>
173
  <stop_to_first_match>0</stop_to_first_match>
174
  <sort_order>1</sort_order>
180
  <tracking_view_url></tracking_view_url>
181
  <config></config>
182
  <debug>0</debug>
183
+ <auto_escaping>0</auto_escaping>
184
  <auto_correction>1</auto_correction>
185
  <stop_to_first_match>0</stop_to_first_match>
186
  <sort_order>3</sort_order>
192
  <tracking_view_url></tracking_view_url>
193
  <config></config>
194
  <debug>0</debug>
195
+ <auto_escaping>0</auto_escaping>
196
  <auto_correction>1</auto_correction>
197
  <stop_to_first_match>0</stop_to_first_match>
198
  <sort_order>2</sort_order>
204
  <tracking_view_url></tracking_view_url>
205
  <config></config>
206
  <debug>0</debug>
207
+ <auto_escaping>0</auto_escaping>
208
  <auto_correction>1</auto_correction>
209
  <stop_to_first_match>0</stop_to_first_match>
210
  <sort_order>4</sort_order>
app/code/community/Owebia/Shipping2/includes/OwebiaShippingHelper.php CHANGED
@@ -204,7 +204,11 @@ class OwebiaShippingHelper
204
 
205
  public static function escapeString($input)
206
  {
207
- return self::json_encode($input);
 
 
 
 
208
  }
209
 
210
  protected $_input;
@@ -481,11 +485,12 @@ class OwebiaShippingHelper
481
  if (is_array($replacement) && isset($replacement['error'])) {
482
  return isset($original_row) ? $replacement : 'false';
483
  }
 
 
484
  } else {
485
  $replacement = $original;
 
486
  }
487
- $output = $this->replace('{'.$original.'}', $this->_autoEscapeStrings($replacement), $output);
488
- $output = $this->replace($original, $replacement, $output);
489
  //$this->addMessage('error', $row, $key, $original.' => '.$replacement.' = '.$output);
490
  }
491
  } else {
@@ -743,8 +748,8 @@ class OwebiaShippingHelper
743
  //while ($this->_preg_match("/{(count) products(?: where ([^}]+))?}/i", $formula, $result)
744
  // || $this->_preg_match("/{(sum|min|max|count distinct) {PRODUCT_REGEX}\.({ATTRIBUTE_REGEX}|{OPTION_REGEX}|stock)\.([a-z0-9_+-]+)(?: where ([^}]+))?}/i", $formula, $result)
745
  // || $this->_preg_match("/{(sum|min|max|count distinct) {PRODUCT_REGEX}\.(quantity)()(?: where ([^}]+))?}/i", $formula, $result)
746
- while ($this->_preg_match("/{(count) items(?: where ([^}]+))?}/i", $formula, $result)
747
- || $this->_preg_match("/{(sum|min|max|count distinct) ((?:item|product|p)\.[a-z0-9_\+\-\.]+)(?: where ([^}]+))?}/i", $formula, $result)
748
  ) {
749
  $original = $result[0];
750
  if ($use_cache && array_key_exists($original, $this->_expression_cache)) {
@@ -849,6 +854,7 @@ class OwebiaShippingHelper
849
  .'E|e|int|float|string|boolean|object|array|true|false|null|and|or|in'
850
  .'|floor|ceil|round|rand|pow|pi|sqrt|log|exp|abs|substr|strtolower|preg_match|in_array'
851
  .'|max|min|range|array_match_any|array_match_all'
 
852
  .')\b'
853
  .'|\'[^\']*\'|\"[^\"]*\"|[0-9,\'\.\-\(\)\*\/\?\:\+\<\>\=\&\|%!]|\s)*$/', $formula)) {
854
  $errors = array(
204
 
205
  public static function escapeString($input)
206
  {
207
+ $escaped = self::json_encode($input);
208
+ $escaped = preg_replace_callback('/\\\\u([0-9a-fA-F]{4})/', function ($match) {
209
+ return mb_convert_encoding(pack('H*', $match[1]), 'UTF-8', 'UCS-2BE');
210
+ }, $escaped);
211
+ return $escaped;
212
  }
213
 
214
  protected $_input;
485
  if (is_array($replacement) && isset($replacement['error'])) {
486
  return isset($original_row) ? $replacement : 'false';
487
  }
488
+ $output = $this->replace('{'.$original.'}', $this->_autoEscapeStrings($replacement), $output);
489
+ $output = $this->replace($original, $replacement, $output);
490
  } else {
491
  $replacement = $original;
492
+ $output = $this->replace($original, $replacement, $output);
493
  }
 
 
494
  //$this->addMessage('error', $row, $key, $original.' => '.$replacement.' = '.$output);
495
  }
496
  } else {
748
  //while ($this->_preg_match("/{(count) products(?: where ([^}]+))?}/i", $formula, $result)
749
  // || $this->_preg_match("/{(sum|min|max|count distinct) {PRODUCT_REGEX}\.({ATTRIBUTE_REGEX}|{OPTION_REGEX}|stock)\.([a-z0-9_+-]+)(?: where ([^}]+))?}/i", $formula, $result)
750
  // || $this->_preg_match("/{(sum|min|max|count distinct) {PRODUCT_REGEX}\.(quantity)()(?: where ([^}]+))?}/i", $formula, $result)
751
+ while ($this->_preg_match("/{(count)\s+items\s*(?:\s+where\s+((?:[^\"'}]|'[^']+'|\"[^\"]+\")+))?}/i", $formula, $result)
752
+ || $this->_preg_match("/{(sum|min|max|count distinct) ((?:item|product|p)\.[a-z0-9_\+\-\.]+)(?: where ((?:[^\"'}]|'[^']+'|\"[^\"]+\")+))?}/i", $formula, $result)
753
  ) {
754
  $original = $result[0];
755
  if ($use_cache && array_key_exists($original, $this->_expression_cache)) {
854
  .'E|e|int|float|string|boolean|object|array|true|false|null|and|or|in'
855
  .'|floor|ceil|round|rand|pow|pi|sqrt|log|exp|abs|substr|strtolower|preg_match|in_array'
856
  .'|max|min|range|array_match_any|array_match_all'
857
+ .'|date|strtotime'
858
  .')\b'
859
  .'|\'[^\']*\'|\"[^\"]*\"|[0-9,\'\.\-\(\)\*\/\?\:\+\<\>\=\&\|%!]|\s)*$/', $formula)) {
860
  $errors = array(
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Owebia_Shipping_2</name>
4
- <version>2.5.18</version>
5
  <stability>stable</stability>
6
  <license uri="http://www.opensource.org/licenses/MIT">The MIT License (MIT)</license>
7
  <channel>community</channel>
@@ -10,18 +10,21 @@
10
  <description>[EN] This module provides 3 shipping modes configurable with a very flexible syntax.&#xD;
11
  &#xD;
12
  [FR] Ce module met &#xE0; disposition 3 modes de livraison configurables avec une syntaxe tr&#xE8;s souple.</description>
13
- <notes>[2.5.18 - 24 juillet 2014]&#xD;
14
- Pas de modification, nouvelle version pour Magento Connect&#xD;
15
- &#xD;
16
- [2.5.17 - 24 juillet 2014]&#xD;
17
- Correction d'un bug d'affichage des totaux dans le panier suite au correctif 2.5.16 : annulation de la modification faite dans la version 2.5.14 &#xD;
18
- &#xD;
19
- [2.5.16 - 24 juillet 2014]&#xD;
20
- Correction d'un bug suite &#xE0; la modification de la r&#xE9;cup&#xE9;ration de la session dans la version 2.5.14</notes>
21
- <authors><author><name>owebia</name><user>auto-converted</user><email>antoine.lemoine@owebia.com</email></author></authors>
22
- <date>2014-07-24</date>
23
- <time>19:09:58</time>
24
- <contents><target name="magecommunity"><dir name="Owebia"><dir name="Shipping2"><dir name="Block"><dir name="Adminhtml"><dir name="Os2"><dir name="Editor"><dir name="Property"><file name="Input.php" hash="da443c90f3dda730300654569b55d46c"/></dir></dir><file name="Editor.php" hash="571ff0d5da00f96a49aa9c0504d07a50"/><file name="Help.php" hash="d2f3fd818f9d5034365e0c57cd01448e"/></dir><dir name="System"><dir name="Config"><dir name="Form"><dir name="Field"><file name="Config.php" hash="66487da1f208546729207661de30e378"/><file name="Informations.php" hash="34eda44f2b4646f2acfe07be52440058"/></dir></dir></dir></dir></dir></dir><dir name="Controller"><file name="Abstract.php" hash="f1ad9781bcc1fe1382a714958fdaf388"/></dir><dir name="Helper"><file name="Data.php" hash="2fb3cb6c82405981376fa72a4142af10"/></dir><dir name="Model"><dir name="Carrier"><file name="Abstract.php" hash="c5eebb34bb97952d6ced04e6d17049ea"/><file name="OwebiaShipping1.php" hash="6e4aa3ba4b3ec09a344a0f6a666645d1"/><file name="OwebiaShipping2.php" hash="e6a5d90fcf89910c119dad51a226a5ab"/><file name="OwebiaShipping3.php" hash="1a556c06950805f4d0b709e5f6b35743"/><file name="OwebiaShipping4.php" hash="ef18ccb1f5ed3e14ac93f40f69871a6e"/></dir><dir name="Mysql4"><file name="Setup.php" hash="79dd512a2278429c69ec92d0064e6bf3"/></dir><dir name="Os2"><dir name="Data"><file name="Abstract.php" hash="6d1aa6bf9270e0af4f349f2279760a80"/><file name="AbstractWithAttributes.php" hash="f51eedef920565ef5acbbb570af47805"/><file name="Address.php" hash="924940393fdf382b41d469e448be1e2d"/><file name="AddressFilter.php" hash="1ebed8610ace2b0f319c90ab6661b856"/><file name="AttributeSet.php" hash="8530ba04c22811a0014a39f03b389c75"/><file name="Billto.php" hash="fa430451c5d8cc01120e790607182546"/><file name="Cart.php" hash="fba92b879ff7a73454bd3f6fb989c5c8"/><file name="CartItem.php" hash="42077e6f3055ec2a06c71b6fda08ef7c"/><file name="Category.php" hash="947a56f34136065e9ed5d5f8b775d408"/><file name="Customer.php" hash="12045cf6dcfba428f24cde46412e51bd"/><file name="CustomerGroup.php" hash="dec898287825c0afab6f96b01fcc2b3c"/><file name="Customvar.php" hash="e9b59523ba14d23d1aeeaa4a8e432bec"/><file name="Date.php" hash="8e2120bb4b5c2c840f1fcbaf4f630f24"/><file name="Info.php" hash="922a1b57d0cb72e59335851e1a92cacc"/><file name="Product.php" hash="687b819acf9524bea522ed0c56e16249"/><file name="Quote.php" hash="80c2563611539627f628706b17435545"/><file name="Selection.php" hash="8a055d68edfc5210cec7611f2d43448b"/><file name="StockItem.php" hash="b0345ea37ad9826a2822a911752cf06f"/><file name="Store.php" hash="f5e2f014a372e83787928e7f0218b12f"/></dir></dir><dir name="System"><dir name="Config"><dir name="Source"><file name="LoadOnParent.php" hash="31d5c899a174dc5ee046be9ec4080f5e"/><file name="ProcessChildren.php" hash="f7a1c4fd61bc52cfd29c3079c64a01fb"/></dir></dir></dir></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Os2"><file name="AjaxController.php" hash="b954504ea1ba4fcebee59df9036efc9c"/></dir></dir><dir name="Checkout"><file name="CartController.php" hash="8c6ee136298e0e2dd0052143887282ce"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="553cc9ec895436e0da108020de260885"/><file name="config.xml" hash="6fa09251ad1fafcec233b0f4cb76b6df"/><file name="system.xml" hash="e549ba889f6d9b05e154ca49ab455ae0"/></dir><dir name="includes"><file name="OS2_AddressFilterParser.php" hash="867b63a23ee99b6cafb51e91759a9d00"/><file name="OwebiaShippingHelper.php" hash="7ca683da565a38e04b31cbc1f0552c1a"/></dir><dir name="sql"><dir name="owebia_shipping2_setup"><file name="mysql4-install-2.5.13.php" hash="807dad21a089045946ab1cf2b433f954"/></dir></dir><file name="changelog" hash="c3b7b68879cb27283e6ec0984eac861a"/><file name="doc_en_US.html" hash="92fecf9fc34fd4611c47b529b5acb305"/><file name="doc_fr_FR.html" hash="bf99aa1758e17fca3f84981326ff0c32"/></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Owebia_Shipping2.xml" hash="046e4a5822bd9a6c2e781bfbb33f7ebd"/></dir></target><target name="magelocale"><dir name="en_US"><file name="Owebia_Shipping2.csv" hash="e9d54947d5b38eb975fc0de4145ffe23"/></dir><dir name="fr_FR"><file name="Owebia_Shipping2.csv" hash="a8c41b1a205a92de71b9e4621532c97d"/></dir></target><target name="mage"><dir name="js"><dir name="owebia"><dir name="shipping2"><dir name="colorbox"><dir name="images"><dir name="ie6"><file name="borderBottomCenter.png" hash="1936585831e8bcf4eb5ef1081c8e2574"/><file name="borderBottomLeft.png" hash="7ceeb01563f030dc47837fd8bad29488"/><file name="borderBottomRight.png" hash="297fb77440870d91f519bcecdb312725"/><file name="borderMiddleLeft.png" hash="64df0244eeaade27764d2cf33606527b"/><file name="borderMiddleRight.png" hash="9fa458eaaa35b80b2452f35a1d6b4d0c"/><file name="borderTopCenter.png" hash="01ecb01841270f3a765aadf4900929f3"/><file name="borderTopLeft.png" hash="bf4949b95b09d255edd9bcb8358a3557"/><file name="borderTopRight.png" hash="51315fa19507a33d5f1b5411598593e7"/></dir><file name="border.png" hash="439d585a4e35279cf1eddec5729f7144"/><file name="border.png-" hash="7ca8a1d2eb0763b35c266cd54bee2fa5"/><file name="controls.png" hash="4cbe54bbf6c352ea181a5739842215e2"/><file name="controls.png-" hash="b68b9ecaae424de4862ba0d055b7a560"/><file name="loading.gif" hash="e6611f867d63754b7a2a974fb0a0e7dc"/><file name="loading_background.png" hash="acf427e932fb9413700a4b8b58b41eec"/><file name="overlay.png" hash="790376e15a036959e358a19d4a7ea437"/></dir><file name="colorbox.css" hash="1a7dd23f5d2962260d5bb26a57046db1"/><file name="jquery.colorbox-min.js" hash="afa27e7333f494cf87e4c07297c2160b"/></dir><dir name="img"><dir name="famfamsilk"><file name="help.png" hash="c3812c74bc524179f4ccf5d2db7b3cbf"/><file name="pencil.png" hash="a34e71ab08a6d1162b948d26321dea50"/></dir><file name="btn-edit.png" hash="abc9f604977fc6dc75547a2e04c9748f"/><file name="btn-help.png" hash="b743486f26c3b69871490049147ef14b"/><file name="btn-remove.png" hash="42492684e24356a4081134894eabeb9e"/></dir><dir name="jquery-ui-1.8.23.custom"><dir name="css"><dir name="ui-lightness"><dir name="images"><file name="ui-bg_diagonals-thick_18_b81900_40x40.png" hash="95f9cceeb9d742dd3e917ec16ed754f8"/><file name="ui-bg_diagonals-thick_20_666666_40x40.png" hash="f040b255ca13e693da34ab33c7d6b554"/><file name="ui-bg_flat_10_000000_40x100.png" hash="c18cd01623c7fed23c80d53e2f5e7c78"/><file name="ui-bg_glass_100_f6f6f6_1x400.png" hash="5f1847175ba18c41322cb9cb0581e0fb"/><file name="ui-bg_glass_100_fdf5ce_1x400.png" hash="d26e8f463195a7b86f86b7d550cfc114"/><file name="ui-bg_glass_65_ffffff_1x400.png" hash="e5a8f32e28fd5c27bf0fed33c8a8b9b5"/><file name="ui-bg_gloss-wave_35_f6a828_500x100.png" hash="58d2cd501e01573cf537089c694ba899"/><file name="ui-bg_highlight-soft_100_eeeeee_1x100.png" hash="384c3f17709ba0f809b023b6e7b10b84"/><file name="ui-bg_highlight-soft_75_ffe45c_1x100.png" hash="b806658954cb4d16ade8977af737f486"/><file name="ui-icons_222222_256x240.png" hash="ebe6b6902a408fbf9cac6379a1477525"/><file name="ui-icons_228ef1_256x240.png" hash="79f41c0765e9ec18562b20b0801d748b"/><file name="ui-icons_ef8c08_256x240.png" hash="ef9a6ccfe3b14041928ddc708665b226"/><file name="ui-icons_ffd27a_256x240.png" hash="ab8c30acc0e3608fb79e01fccf832c70"/><file name="ui-icons_ffffff_256x240.png" hash="342bc03f6264c75d3f1d7f99e34295b9"/></dir><file name="jquery-ui-1.8.23.custom.css" hash="d4a4e04116e9bed6a2b00c5e8c260914"/></dir></dir><dir name="js"><file name="jquery-1.8.0.min.js" hash="cd8b0bffc85bb5614385ee4ce3596d07"/><file name="jquery-ui-1.8.23.custom.min.js" hash="c406c4654466fbeee1cf9173b69ec55c"/></dir></dir><file name="jquery-1.8.2.min.js" hash="cfa9051cc0b05eb519f1e16b2a6645d7"/><file name="jquery.caret.1.02.min.js" hash="ee130de5e6b9ae2be7579a5fd77f7b23"/><file name="jquery.layout-1.3.0-rc30.6.min.js" hash="745e5e2084b6330c3f837a0169a96320"/><file name="jquery.layout.min.js" hash="d91b61c69554cd02f4cf3bbbf97b95a8"/><file name="jquery.noconflict.js" hash="3179f2255b046d5f2e9a71e365287bef"/><file name="os2editor.css" hash="96805f469cf7d6f2a7269d5d372fa46b"/><file name="os2editor.js" hash="107807e905cb39f178c1e349c7d89cb8"/></dir></dir></dir></target></contents>
 
 
 
25
  <compatible/>
26
- <dependencies/>
27
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Owebia_Shipping_2</name>
4
+ <version>2.5.19</version>
5
  <stability>stable</stability>
6
  <license uri="http://www.opensource.org/licenses/MIT">The MIT License (MIT)</license>
7
  <channel>community</channel>
10
  <description>[EN] This module provides 3 shipping modes configurable with a very flexible syntax.&#xD;
11
  &#xD;
12
  [FR] Ce module met &#xE0; disposition 3 modes de livraison configurables avec une syntaxe tr&#xE8;s souple.</description>
13
+ <notes>[2.5.19 - 09 novembre 2015]&#xD;
14
+ Note: the extension is not affected by the patch SUPEE-6788 since it uses the new admin url routing syntax for 3 years (version 2.4.8.0)&#xD;
15
+ Fix bug: deactivation of auto-escaping by default since it can cause some bugs (ex: impossible to use {address_filter.EU-27} in shipto)&#xD;
16
+ Fix bug: fix auto-escaping of properties like {{shipto.country_name}}&#xD;
17
+ Fix bug: variable replacements in labels (variables {cart.price-tax-discount}, {cart.price-tax+discount}, {cart.price+tax-discount} and {cart.price+tax+discount})&#xD;
18
+ Fix bug: use items and not quote to retrieve values {cart.price-tax-discount}, {cart.price-tax+discount}, {cart.price+tax-discount} and {cart.price+tax+discount} (quote totals are not available at this time, calculating them causes duplications of addresses and a false grand_total value)&#xD;
19
+ Fix bug: retrieve customer in backoffice order&#xD;
20
+ Fix unicode accented chars in json_encode for PHP &lt; 5.4&#xD;
21
+ Fix bug: usage of regular expressions inside {count ...}, {sum ...}, {min ...} and {max ...}&#xD;
22
+ Allow usage of php functions date and strtotime (ex: "label": "'Your package will be delivered between ' . date('d/m', strtotime('+5 days')) . ' and ' . date('d/m Y', strtotime('+7 days'))",&#xD;
23
+ </notes>
24
+ <authors><author><name>owebia</name><user>owebia</user><email>antoine.lemoine@owebia.com</email></author></authors>
25
+ <date>2015-11-09</date>
26
+ <time>18:48:22</time>
27
+ <contents><target name="magecommunity"><dir name="Owebia"><dir name="Shipping2"><dir name="Block"><dir name="Adminhtml"><dir name="Os2"><dir name="Editor"><dir name="Property"><file name="Input.php" hash="da443c90f3dda730300654569b55d46c"/></dir></dir><file name="Editor.php" hash="571ff0d5da00f96a49aa9c0504d07a50"/><file name="Help.php" hash="d2f3fd818f9d5034365e0c57cd01448e"/></dir><dir name="System"><dir name="Config"><dir name="Form"><dir name="Field"><file name="Config.php" hash="66487da1f208546729207661de30e378"/><file name="Informations.php" hash="34eda44f2b4646f2acfe07be52440058"/></dir></dir></dir></dir></dir></dir><dir name="Controller"><file name="Abstract.php" hash="f1ad9781bcc1fe1382a714958fdaf388"/></dir><dir name="Helper"><file name="Data.php" hash="3f4ed53a2255cc3a7220f134b0dd4f12"/></dir><dir name="Model"><dir name="Carrier"><file name="Abstract.php" hash="fdf75d41b08704a92d5d64c73af1fd4d"/><file name="OwebiaShipping1.php" hash="6e4aa3ba4b3ec09a344a0f6a666645d1"/><file name="OwebiaShipping2.php" hash="e6a5d90fcf89910c119dad51a226a5ab"/><file name="OwebiaShipping3.php" hash="1a556c06950805f4d0b709e5f6b35743"/><file name="OwebiaShipping4.php" hash="ef18ccb1f5ed3e14ac93f40f69871a6e"/></dir><dir name="Mysql4"><file name="Setup.php" hash="79dd512a2278429c69ec92d0064e6bf3"/></dir><dir name="Os2"><dir name="Data"><file name="Abstract.php" hash="6d1aa6bf9270e0af4f349f2279760a80"/><file name="AbstractWithAttributes.php" hash="f51eedef920565ef5acbbb570af47805"/><file name="Address.php" hash="924940393fdf382b41d469e448be1e2d"/><file name="AddressFilter.php" hash="1ebed8610ace2b0f319c90ab6661b856"/><file name="AttributeSet.php" hash="8530ba04c22811a0014a39f03b389c75"/><file name="Billto.php" hash="fa430451c5d8cc01120e790607182546"/><file name="Cart.php" hash="9c3954c84a4470a3b95edc21b264f8a7"/><file name="CartItem.php" hash="42077e6f3055ec2a06c71b6fda08ef7c"/><file name="Category.php" hash="947a56f34136065e9ed5d5f8b775d408"/><file name="Customer.php" hash="98d521002435cb0997f3bf44fdc88fd8"/><file name="CustomerGroup.php" hash="dec898287825c0afab6f96b01fcc2b3c"/><file name="Customvar.php" hash="e9b59523ba14d23d1aeeaa4a8e432bec"/><file name="Date.php" hash="8e2120bb4b5c2c840f1fcbaf4f630f24"/><file name="Info.php" hash="922a1b57d0cb72e59335851e1a92cacc"/><file name="Product.php" hash="687b819acf9524bea522ed0c56e16249"/><file name="Quote.php" hash="4ef2d9152d8d536f1901b6fc16dc4182"/><file name="Selection.php" hash="8a055d68edfc5210cec7611f2d43448b"/><file name="StockItem.php" hash="b0345ea37ad9826a2822a911752cf06f"/><file name="Store.php" hash="f5e2f014a372e83787928e7f0218b12f"/></dir></dir><dir name="System"><dir name="Config"><dir name="Source"><file name="LoadOnParent.php" hash="31d5c899a174dc5ee046be9ec4080f5e"/><file name="ProcessChildren.php" hash="f7a1c4fd61bc52cfd29c3079c64a01fb"/></dir></dir></dir></dir><file name="changelog" hash="0526180765a45d21f45017965c261006"/><dir name="controllers"><dir name="Adminhtml"><dir name="Os2"><file name="AjaxController.php" hash="b954504ea1ba4fcebee59df9036efc9c"/></dir></dir><dir name="Checkout"><file name="CartController.php" hash="8c6ee136298e0e2dd0052143887282ce"/></dir></dir><file name="doc_en_US.html" hash="92fecf9fc34fd4611c47b529b5acb305"/><file name="doc_fr_FR.html" hash="bf99aa1758e17fca3f84981326ff0c32"/><dir name="etc"><file name="adminhtml.xml" hash="553cc9ec895436e0da108020de260885"/><file name="config.xml" hash="0dfb8a5818a8842f69a7a3bc7070ea32"/><file name="system.xml" hash="e549ba889f6d9b05e154ca49ab455ae0"/></dir><dir name="includes"><file name="OS2_AddressFilterParser.php" hash="867b63a23ee99b6cafb51e91759a9d00"/><file name="OwebiaShippingHelper.php" hash="a4800b33ac41ce1fcd2783db12cc6868"/></dir><dir name="sql"><dir name="owebia_shipping2_setup"><file name="mysql4-install-2.5.13.php" hash="807dad21a089045946ab1cf2b433f954"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Owebia_Shipping2.xml" hash="046e4a5822bd9a6c2e781bfbb33f7ebd"/></dir></target><target name="magelocale"><dir name="fr_FR"><file name="Owebia_Shipping2.csv" hash="a8c41b1a205a92de71b9e4621532c97d"/></dir><dir name="en_US"><file name="Owebia_Shipping2.csv" hash="e9d54947d5b38eb975fc0de4145ffe23"/></dir></target><target name="mageweb"><dir name="js"><dir name="owebia"><dir name="shipping2"><dir name="colorbox"><file name="colorbox.css" hash="1a7dd23f5d2962260d5bb26a57046db1"/><dir name="images"><file name="border.png" hash="439d585a4e35279cf1eddec5729f7144"/><file name="border.png-" hash="7ca8a1d2eb0763b35c266cd54bee2fa5"/><file name="controls.png" hash="4cbe54bbf6c352ea181a5739842215e2"/><file name="controls.png-" hash="b68b9ecaae424de4862ba0d055b7a560"/><dir name="ie6"><file name="borderBottomCenter.png" hash="1936585831e8bcf4eb5ef1081c8e2574"/><file name="borderBottomLeft.png" hash="7ceeb01563f030dc47837fd8bad29488"/><file name="borderBottomRight.png" hash="297fb77440870d91f519bcecdb312725"/><file name="borderMiddleLeft.png" hash="64df0244eeaade27764d2cf33606527b"/><file name="borderMiddleRight.png" hash="9fa458eaaa35b80b2452f35a1d6b4d0c"/><file name="borderTopCenter.png" hash="01ecb01841270f3a765aadf4900929f3"/><file name="borderTopLeft.png" hash="bf4949b95b09d255edd9bcb8358a3557"/><file name="borderTopRight.png" hash="51315fa19507a33d5f1b5411598593e7"/></dir><file name="loading.gif" hash="e6611f867d63754b7a2a974fb0a0e7dc"/><file name="loading_background.png" hash="acf427e932fb9413700a4b8b58b41eec"/><file name="overlay.png" hash="790376e15a036959e358a19d4a7ea437"/></dir><file name="jquery.colorbox-min.js" hash="afa27e7333f494cf87e4c07297c2160b"/></dir><dir name="img"><file name="btn-edit.png" hash="abc9f604977fc6dc75547a2e04c9748f"/><file name="btn-help.png" hash="b743486f26c3b69871490049147ef14b"/><file name="btn-remove.png" hash="42492684e24356a4081134894eabeb9e"/><dir name="famfamsilk"><file name="help.png" hash="c3812c74bc524179f4ccf5d2db7b3cbf"/><file name="pencil.png" hash="a34e71ab08a6d1162b948d26321dea50"/></dir></dir><file name="jquery-1.8.2.min.js" hash="cfa9051cc0b05eb519f1e16b2a6645d7"/><dir name="jquery-ui-1.8.23.custom"><dir name="css"><dir name="ui-lightness"><dir name="images"><file name="ui-bg_diagonals-thick_18_b81900_40x40.png" hash="95f9cceeb9d742dd3e917ec16ed754f8"/><file name="ui-bg_diagonals-thick_20_666666_40x40.png" hash="f040b255ca13e693da34ab33c7d6b554"/><file name="ui-bg_flat_10_000000_40x100.png" hash="c18cd01623c7fed23c80d53e2f5e7c78"/><file name="ui-bg_glass_100_f6f6f6_1x400.png" hash="5f1847175ba18c41322cb9cb0581e0fb"/><file name="ui-bg_glass_100_fdf5ce_1x400.png" hash="d26e8f463195a7b86f86b7d550cfc114"/><file name="ui-bg_glass_65_ffffff_1x400.png" hash="e5a8f32e28fd5c27bf0fed33c8a8b9b5"/><file name="ui-bg_gloss-wave_35_f6a828_500x100.png" hash="58d2cd501e01573cf537089c694ba899"/><file name="ui-bg_highlight-soft_100_eeeeee_1x100.png" hash="384c3f17709ba0f809b023b6e7b10b84"/><file name="ui-bg_highlight-soft_75_ffe45c_1x100.png" hash="b806658954cb4d16ade8977af737f486"/><file name="ui-icons_222222_256x240.png" hash="ebe6b6902a408fbf9cac6379a1477525"/><file name="ui-icons_228ef1_256x240.png" hash="79f41c0765e9ec18562b20b0801d748b"/><file name="ui-icons_ef8c08_256x240.png" hash="ef9a6ccfe3b14041928ddc708665b226"/><file name="ui-icons_ffd27a_256x240.png" hash="ab8c30acc0e3608fb79e01fccf832c70"/><file name="ui-icons_ffffff_256x240.png" hash="342bc03f6264c75d3f1d7f99e34295b9"/></dir><file name="jquery-ui-1.8.23.custom.css" hash="d4a4e04116e9bed6a2b00c5e8c260914"/></dir></dir><dir name="js"><file name="jquery-1.8.0.min.js" hash="cd8b0bffc85bb5614385ee4ce3596d07"/><file name="jquery-ui-1.8.23.custom.min.js" hash="c406c4654466fbeee1cf9173b69ec55c"/></dir></dir><file name="jquery.caret.1.02.min.js" hash="ee130de5e6b9ae2be7579a5fd77f7b23"/><file name="jquery.layout-1.3.0-rc30.6.min.js" hash="745e5e2084b6330c3f837a0169a96320"/><file name="jquery.layout.min.js" hash="d91b61c69554cd02f4cf3bbbf97b95a8"/><file name="jquery.noconflict.js" hash="3179f2255b046d5f2e9a71e365287bef"/><file name="os2editor.css" hash="96805f469cf7d6f2a7269d5d372fa46b"/><file name="os2editor.js" hash="107807e905cb39f178c1e349c7d89cb8"/></dir></dir></dir></target></contents>
28
  <compatible/>
29
+ <dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
30
  </package>