notime_same_day_delivery - Version 1.1.0

Version Notes

Extension calculates shipping price dynamically.

Download this release

Release Info

Developer notime
Extension notime_same_day_delivery
Version 1.1.0
Comparing to
See all releases


Code changes from version 1.0.0 to 1.1.0

app/code/local/Notime/Shipping/Block/Checkout/Onepage/Shipping/Notime.php CHANGED
@@ -75,5 +75,10 @@ class Notime_Shipping_Block_Checkout_Onepage_Shipping_Notime extends Mage_Checko
75
  }
76
  return '';
77
  }
 
 
 
 
 
78
 
79
  }
75
  }
76
  return '';
77
  }
78
+
79
+ public function getAdditionalText(){
80
+ return Mage::getStoreConfig('carriers/notime/additional_info', Mage::app()->getStore()->getId());
81
+ }
82
+
83
 
84
  }
app/code/local/Notime/Shipping/Model/Carrier/Notime.php CHANGED
@@ -53,6 +53,11 @@ class Notime_Shipping_Model_Carrier_Notime
53
  } else {
54
  $shippingPrice = false;
55
  }
 
 
 
 
 
56
 
57
  if ($shippingPrice !== false) {
58
  $method = Mage::getModel('shipping/rate_result_method');
53
  } else {
54
  $shippingPrice = false;
55
  }
56
+
57
+ $shipmentFee = Mage::getSingleton('core/session')->getNotimeShipmentFee();
58
+ if($shipmentFee) {
59
+ $shippingPrice = $shipmentFee;
60
+ }
61
 
62
  if ($shippingPrice !== false) {
63
  $method = Mage::getModel('shipping/rate_result_method');
app/code/local/Notime/Shipping/Model/Observer.php CHANGED
@@ -51,6 +51,7 @@ class Notime_Shipping_Model_Observer
51
  ->setConfig(array('timeout' => 30, 'keepalive' => 1))
52
  ->setHeaders(array(
53
  'Ocp-Apim-Subscription-Key' => '493dc25bf9674ccb9c5920a035c1f777',
 
54
  ))
55
  ->setRawData(json_encode($params), 'application/json')
56
  ->setMethod(Zend_Http_Client::POST);
@@ -92,7 +93,8 @@ class Notime_Shipping_Model_Observer
92
 
93
  $request = Mage::app()->getRequest();
94
  $shipmentId = trim($request->getPost('notime_shipment_id'));
95
-
 
96
  if($shipmentId == '') { exit; }
97
 
98
  try {
@@ -101,16 +103,15 @@ class Notime_Shipping_Model_Observer
101
  $readConnection = $resource->getConnection('core_read');
102
  $writeConnection = $resource->getConnection('core_write');
103
 
104
- $query = 'SELECT quote_id FROM notime_shipping WHERE quote_id = '. $_quote->getId() .' LIMIT 1';
105
- $val = $readConnection->fetchOne($query);
106
- if(!$val) {
107
-
108
- $writeConnection->insert(
109
- "notime_shipping",
110
- array("quote_id" => $_quote->getId(),"shipment_id" => $shipmentId, "status" => 0)
111
- );
112
-
113
- }
114
  } catch (Exception $e) {
115
  mage::log('Error when processing shipping method:'.$e->getMessage(), false, 'notime_shipping.log');
116
  }
@@ -134,7 +135,6 @@ class Notime_Shipping_Model_Observer
134
  if($pos2 = strpos($html, $endingToken, $pos1)){
135
 
136
  $carrier = Mage::getModel('shipping/config')->getCarrierInstance($code);
137
- Mage::log($carrier->getFormBlock(), false, 'notime_shipping.log');
138
  $injectBlock = $block->getLayout()->createBlock($carrier->getFormBlock());
139
 
140
  //Store adress id so we can use it in the ajax call done in the block
@@ -157,17 +157,40 @@ class Notime_Shipping_Model_Observer
157
  //$this->AddSalesRuleJavascript($observer);
158
  }
159
 
160
- public function notime_shipping_salesQuoteCollectTotalsBefore(Varien_Event_Observer $observer)
161
- {
162
- //$custom_price = Mage::app()->getRequest()->getPost('notime_shipment_fee');
163
- //$quote = $observer->getQuote();
164
- //$store = Mage::app()->getStore($quote->getStoreId());
165
- //$carriers = Mage::getStoreConfig('carriers', $store);
166
- //foreach ($carriers as $carrierCode => $carrierConfig) {
167
- // if($carrierCode == 'notime'){
168
- // $store->setConfig("carriers/{$carrierCode}/price", $custom_price);
169
- // }
170
- //}
 
 
 
 
 
 
 
 
 
 
 
 
171
  }
 
 
 
 
 
 
 
 
 
 
 
172
 
173
  }
51
  ->setConfig(array('timeout' => 30, 'keepalive' => 1))
52
  ->setHeaders(array(
53
  'Ocp-Apim-Subscription-Key' => '493dc25bf9674ccb9c5920a035c1f777',
54
+ 'authorization' => 'Basic YXp1cmUtc2hpcG1lbnRhcGk6UTEhZTQzYjczWA==',
55
  ))
56
  ->setRawData(json_encode($params), 'application/json')
57
  ->setMethod(Zend_Http_Client::POST);
93
 
94
  $request = Mage::app()->getRequest();
95
  $shipmentId = trim($request->getPost('notime_shipment_id'));
96
+ $confirmedTimeWindowDescription = trim($request->getPost('notime_confirmed_time_window_description'));
97
+
98
  if($shipmentId == '') { exit; }
99
 
100
  try {
103
  $readConnection = $resource->getConnection('core_read');
104
  $writeConnection = $resource->getConnection('core_write');
105
 
106
+ $writeConnection->delete(
107
+ "notime_shipping",
108
+ "quote_id=".$_quote->getId()
109
+ );
110
+ $writeConnection->insert(
111
+ "notime_shipping",
112
+ array("quote_id" => $_quote->getId(),"shipment_id" => $shipmentId, "status" => 0)
113
+ );
114
+ $_quote->setExtShippingInfo($confirmedTimeWindowDescription);
 
115
  } catch (Exception $e) {
116
  mage::log('Error when processing shipping method:'.$e->getMessage(), false, 'notime_shipping.log');
117
  }
135
  if($pos2 = strpos($html, $endingToken, $pos1)){
136
 
137
  $carrier = Mage::getModel('shipping/config')->getCarrierInstance($code);
 
138
  $injectBlock = $block->getLayout()->createBlock($carrier->getFormBlock());
139
 
140
  //Store adress id so we can use it in the ajax call done in the block
157
  //$this->AddSalesRuleJavascript($observer);
158
  }
159
 
160
+ public function notime_shipping_salesQuoteCollectTotalsAfter(Varien_Event_Observer $observer){
161
+ $shipmentFee = Mage::app()->getRequest()->getPost('notime_shipment_fee', -1);
162
+ if($shipmentFee == -1) {
163
+ return $this;
164
+ }
165
+
166
+ $quoteAddress = $observer->getQuoteAddress();
167
+ $quote = $observer->getQuoteAddress()->getQuote();
168
+
169
+ $store = Mage::app()->getStore($quote->getStoreId());
170
+
171
+ $carriers = Mage::getStoreConfig('carriers', $store);
172
+ foreach ($carriers as $carrierCode => $carrierConfig) {
173
+ if($carrierCode == 'notime') {
174
+
175
+ Mage::getSingleton('core/session')->setNotimeShipmentFee($shipmentFee);
176
+
177
+ $quoteAddress->setShippingAmount($shipmentFee)
178
+ ->setBaseShippingAmount($shipmentFee)->save();
179
+ }
180
+ }
181
+
182
+ return $this;
183
  }
184
+
185
+ public function notime_shipping_salesOrderPlaceAfter(Varien_Event_Observer $observer) {
186
+
187
+ Mage::getSingleton('core/session')->unsNotimeShipmentFee();
188
+
189
+ $_order = $observer->getOrder();
190
+ $_quote = Mage::getModel('sales/quote')->load($_order->getQuoteId());
191
+ if($_quote->getId()) {
192
+ $_order->setShippingDescription($_order->getShippingDescription().' ('.$_quote->getExtShippingInfo().')')->save();
193
+ }
194
+ }
195
 
196
  }
app/code/local/Notime/Shipping/etc/config.xml CHANGED
@@ -89,15 +89,24 @@
89
  </notime_core_block_html_before>
90
  </observers>
91
  </core_block_abstract_to_html_after>
92
- <sales_quote_collect_totals_before>
93
  <observers>
94
  <notime_order_change_price>
95
  <type>singleton</type>
96
  <class>Notime_Shipping_Model_Observer</class>
97
- <method>notime_shipping_salesQuoteCollectTotalsBefore</method>
98
  </notime_order_change_price>
99
  </observers>
100
- </sales_quote_collect_totals_before>
 
 
 
 
 
 
 
 
 
101
  </events>
102
  </global>
103
  <adminhtml>
@@ -119,7 +128,7 @@
119
  <name>Same-day (by notime)</name>
120
  <price>4.90</price>
121
  <title>Same-day (by notime)</title>
122
- <type>0</type>
123
  <shipping_widget></shipping_widget>
124
  <product_widget></product_widget>
125
  <show_product_widget></show_product_widget>
89
  </notime_core_block_html_before>
90
  </observers>
91
  </core_block_abstract_to_html_after>
92
+ <sales_quote_address_collect_totals_after>
93
  <observers>
94
  <notime_order_change_price>
95
  <type>singleton</type>
96
  <class>Notime_Shipping_Model_Observer</class>
97
+ <method>notime_shipping_salesQuoteCollectTotalsAfter</method>
98
  </notime_order_change_price>
99
  </observers>
100
+ </sales_quote_address_collect_totals_after>
101
+ <sales_order_place_after>
102
+ <observers>
103
+ <notime_order_place_after>
104
+ <type>singleton</type>
105
+ <class>Notime_Shipping_Model_Observer</class>
106
+ <method>notime_shipping_salesOrderPlaceAfter</method>
107
+ </notime_order_place_after>
108
+ </observers>
109
+ </sales_order_place_after>
110
  </events>
111
  </global>
112
  <adminhtml>
128
  <name>Same-day (by notime)</name>
129
  <price>4.90</price>
130
  <title>Same-day (by notime)</title>
131
+ <type>O</type>
132
  <shipping_widget></shipping_widget>
133
  <product_widget></product_widget>
134
  <show_product_widget></show_product_widget>
app/code/local/Notime/Shipping/etc/system.xml CHANGED
@@ -38,6 +38,7 @@
38
  </title>
39
  <price translate="label">
40
  <label>Price</label>
 
41
  <frontend_type>text</frontend_type>
42
  <sort_order>4</sort_order>
43
  <show_in_default>1</show_in_default>
38
  </title>
39
  <price translate="label">
40
  <label>Price</label>
41
+ <comment><![CDATA[Don't use this field. Price will be calculated dynamically.]]></comment>
42
  <frontend_type>text</frontend_type>
43
  <sort_order>4</sort_order>
44
  <show_in_default>1</show_in_default>
app/design/frontend/base/default/template/notime/checkout/onepage/shipping_method/notime.phtml CHANGED
@@ -3,26 +3,51 @@
3
  $formCode = $this->getFormCode();
4
  $rate_id = 'notime_notime';
5
  $zipInputId = 'gls_zip_input_'.$formCode;
 
 
 
 
6
  ?>
7
 
8
  <ul class="form-list" id="<?php echo $formCode ?>">
 
 
 
9
  <input type="hidden" id="<?php echo $this->getWidgetZipCode();?>" name="magento_notime_zip_code" value="<?php echo $this->getQuote()->getShippingAddress()->getPostcode();?>">
10
  <input type="hidden" id="notime_shipment_id" name="notime_shipment_id" class="input-text required-notime-shipment" value="-">
11
  <input type="hidden" id="notime_shipment_fee" name="notime_shipment_fee" class="input-text" value="">
 
12
  <li>
13
  <?php echo $this->getWidgetButton(); ?>
14
  <span id="notime_shipment_success"></span>
15
  </li>
16
  <script type="text/javascript">
17
- var myEventHandler = function(event) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
18
  var generatedId = event.detail.generatedShippmentGuid;
19
  var shipmentFee = event.detail.fee;
 
20
  if(generatedId) {
21
  $('notime_shipment_id').setValue(generatedId);
22
- $('notime_shipment_fee').setValue(shipmentFee);
23
- //var oldPriceWithCurrency = $$("label[for='s_method_notime_notime'] > span[class='price']")[0].innerHTML;
24
- //var newPriceWithCurrency = oldPriceWithCurrency.replace(/\d+(\.\d{1,2})?/gi, shipmentFee);
25
- //$$("label[for='s_method_notime_notime'] > span[class='price']")[0].update(newPriceWithCurrency);
26
  var $validationError = $('advice-required-notime-shipment-notime_shipment_id');
27
  if($validationError){
28
  $validationError.hide();
@@ -30,7 +55,14 @@
30
  $('notime_shipment_success').update('<?php echo $this->__('You have successfully selected time window'); ?>');
31
  }
32
  }
33
- document.body.addEventListener("notime_widget:shipmentGenerated",myEventHandler);
 
 
 
 
 
 
 
34
 
35
  function load_js() {
36
  var head= document.getElementsByTagName('head')[0];
@@ -38,14 +70,8 @@
38
  script.type= 'text/javascript';
39
  script.src= '<?php echo $this->getWidgetCodeSrc(); ?>';
40
  head.appendChild(script);
41
- // http://nt-staging-servicemanagement.azurewebsites.net/NotimeWidget?groupId=28228cfe-12f2-4bfb-b8bf-b7ff87746e96&mode=2&ecommerceZipCodeId=magentoNotimeZipCode&notimeButtonNumber=1&language=en';
42
-
43
  }
44
  load_js();
45
- </script>
46
-
47
- <script type="text/javascript">
48
- // <![CDATA[
49
 
50
  document.observe('dom:loaded', function(){
51
  createNotimeShippingForm<?php echo $formCode ?>();
@@ -58,7 +84,7 @@
58
  }
59
 
60
  Translator.add('Click here and choose your delivery time-slot','<?php echo Mage::helper('notimeshipping')->__('Click here and choose your delivery time-slot')?>');
61
-
62
- // ]]>
63
  </script>
64
  </ul>
3
  $formCode = $this->getFormCode();
4
  $rate_id = 'notime_notime';
5
  $zipInputId = 'gls_zip_input_'.$formCode;
6
+ $priceTemplate = Mage::helper('core')->currency(0, true, false); //template of price with currency
7
+ $matches = array();
8
+ preg_match('/[\.,\,]/', $priceTemplate, $matches);
9
+ $priceSeparator = $matches[0];
10
  ?>
11
 
12
  <ul class="form-list" id="<?php echo $formCode ?>">
13
+ <li>
14
+ <span id="notime_shipment_additional_text"><?php echo $this->getAdditionalText(); ?></span>
15
+ </li>
16
  <input type="hidden" id="<?php echo $this->getWidgetZipCode();?>" name="magento_notime_zip_code" value="<?php echo $this->getQuote()->getShippingAddress()->getPostcode();?>">
17
  <input type="hidden" id="notime_shipment_id" name="notime_shipment_id" class="input-text required-notime-shipment" value="-">
18
  <input type="hidden" id="notime_shipment_fee" name="notime_shipment_fee" class="input-text" value="">
19
+ <input type="hidden" id="notime_confirmed_time_window_description" name="notime_confirmed_time_window_description" class="input-text" value="">
20
  <li>
21
  <?php echo $this->getWidgetButton(); ?>
22
  <span id="notime_shipment_success"></span>
23
  </li>
24
  <script type="text/javascript">
25
+ // <![CDATA[
26
+ function getShippingPriceLabel(){
27
+ return $$("label[for='s_method_notime_notime'] span[class='price']")[0];
28
+ }
29
+
30
+ function updateShippingPriceLabel(fee){
31
+ var priceLabel = getShippingPriceLabel();
32
+ if (fee !== ''){
33
+ var feeStr = fee.toString().replace(/[\.,\,]/g, '<?php echo $priceSeparator; ?>');
34
+ var priceStr = '<?php echo $priceTemplate; ?>'.replace(/\d+([\.,\,]\d{1,2})?/gi, feeStr);
35
+ priceLabel.update(priceStr);
36
+ }
37
+ else{
38
+ priceLabel.update("");
39
+ }
40
+ }
41
+
42
+ var shipmentGeneratedHandler = function(event) {
43
  var generatedId = event.detail.generatedShippmentGuid;
44
  var shipmentFee = event.detail.fee;
45
+ var confirmedTimeWindowDescription = event.detail.selectedTimeWindowDescription;
46
  if(generatedId) {
47
  $('notime_shipment_id').setValue(generatedId);
48
+ $('notime_shipment_fee').setValue(shipmentFee);
49
+ $('notime_confirmed_time_window_description').setValue(confirmedTimeWindowDescription);
50
+ updateShippingPriceLabel(shipmentFee);
 
51
  var $validationError = $('advice-required-notime-shipment-notime_shipment_id');
52
  if($validationError){
53
  $validationError.hide();
55
  $('notime_shipment_success').update('<?php echo $this->__('You have successfully selected time window'); ?>');
56
  }
57
  }
58
+
59
+ var timeWindowConfirmedHandler = function(event){
60
+ $('notime_shipment_id').setValue('-'); //Default value unless shipmentId have generated yet.
61
+ $('notime_shipment_success').update('');
62
+ }
63
+
64
+ document.body.addEventListener("notime_widget:shipmentGenerated",shipmentGeneratedHandler);
65
+ document.body.addEventListener("notime_widget:timeWindowConfirmed",timeWindowConfirmedHandler);
66
 
67
  function load_js() {
68
  var head= document.getElementsByTagName('head')[0];
70
  script.type= 'text/javascript';
71
  script.src= '<?php echo $this->getWidgetCodeSrc(); ?>';
72
  head.appendChild(script);
 
 
73
  }
74
  load_js();
 
 
 
 
75
 
76
  document.observe('dom:loaded', function(){
77
  createNotimeShippingForm<?php echo $formCode ?>();
84
  }
85
 
86
  Translator.add('Click here and choose your delivery time-slot','<?php echo Mage::helper('notimeshipping')->__('Click here and choose your delivery time-slot')?>');
87
+ updateShippingPriceLabel('');
88
+ // ]]>
89
  </script>
90
  </ul>
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>notime_same_day_delivery</name>
4
- <version>1.0.0</version>
5
  <stability>stable</stability>
6
  <license uri="https://opensource.org/licenses/osl-3.0.php">Open Software License (OSL)</license>
7
  <channel>community</channel>
@@ -12,11 +12,11 @@ notime same-day shipping is provided by notime AG based in Z&#xFC;rich Switzerla
12
  With this new shipping method customers can view and pick from the available delivery time-slots. &#xD;
13
  The popup can be placed either in the preview section, next to the product, and/or in the checkout page.&#xD;
14
  The merchant can configure this shipping method in the "Shipping methods" area and "Product Information" area.</description>
15
- <notes>Initial release</notes>
16
  <authors><author><name>notime</name><user>notime</user><email>dmitry.zhersh@notime.eu</email></author></authors>
17
- <date>2016-04-04</date>
18
- <time>20:17:25</time>
19
- <contents><target name="magelocal"><dir name="Notime"><dir name="Shipping"><dir name="Block"><dir name="Checkout"><dir name="Onepage"><dir name="Shipping"><file name="Notime.php" hash="3cf3bb2779a9a35cca776de23e2a3665"/></dir></dir></dir><dir name="Product"><file name="Widget.php" hash="e72292e3c7e8aed1909f4584fd1ea037"/></dir><file name="ShippingMethod.php" hash="b7cd80898a2a06821e6104a35b90b61e"/></dir><dir name="Helper"><file name="Data.php" hash="42686d5dffb62fdfc799d4a052daa968"/></dir><dir name="Model"><dir name="Carrier"><file name="Notime.php" hash="99b8d655f7cb95afe2bcbcacc88b117f"/></dir><file name="Observer.php" hash="9cc155e599af50eeeb515593fbbfbcff"/></dir><dir name="etc"><file name="config.xml" hash="955c73f3617e118da4df2c1dc8a1122f"/><file name="system.xml" hash="bd8747f9d8f1588fa19f779dd3cc0c90"/></dir><dir name="sql"><dir name="notimeshipping_setup"><file name="mysql4-install-1.0.0.php" hash="7647e9d736ac1199cb7732358b539be6"/><file name="mysql4-upgrade-1.0.0-1.0.1.php" hash="e15b6ad29a30175b3afca7280d1162ce"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="notime.xml" hash="3c16298a844be38a8a6d2a7ee615d6b9"/></dir><dir name="template"><dir name="notime"><dir name="checkout"><dir name="onepage"><dir name="shipping_method"><file name="notime.phtml" hash="c5575bafdd7af6e904f7c3e9f71d31e7"/></dir></dir></dir><dir name="product"><file name="widget.phtml" hash="23da2d2a03f095b8fe467c9c5c6b3c96"/></dir></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Notime_Shipping.xml" hash="f5de879b88f342a03e16c4d655867b21"/></dir></target><target name="magelocale"><dir><dir name="de_DE"><file name="Notime_Shipping.csv" hash="14d216f093725c72aca60b1a165a084a"/></dir><dir name="en_US"><file name="Notime_Shipping.csv" hash="ef8c967d4c44a6afe1f01b9cde9ff761"/></dir><dir name="fr_FR"><file name="Notime_Shipping.csv" hash="ef8c967d4c44a6afe1f01b9cde9ff761"/></dir></dir></target><target name="mageskin"><dir name="frontend"><dir name="base"><dir name="default"><dir name="css"><file name="notime.css" hash="d41d8cd98f00b204e9800998ecf8427e"/></dir><dir name="js"><file name="notime.js" hash="7678c5eebe3ccd258d1a1fcac13bdaa5"/></dir></dir></dir></dir></target></contents>
20
  <compatible/>
21
  <dependencies><required><php><min>5.4.0</min><max>7.0.4</max></php></required></dependencies>
22
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>notime_same_day_delivery</name>
4
+ <version>1.1.0</version>
5
  <stability>stable</stability>
6
  <license uri="https://opensource.org/licenses/osl-3.0.php">Open Software License (OSL)</license>
7
  <channel>community</channel>
12
  With this new shipping method customers can view and pick from the available delivery time-slots. &#xD;
13
  The popup can be placed either in the preview section, next to the product, and/or in the checkout page.&#xD;
14
  The merchant can configure this shipping method in the "Shipping methods" area and "Product Information" area.</description>
15
+ <notes>Extension calculates shipping price dynamically.</notes>
16
  <authors><author><name>notime</name><user>notime</user><email>dmitry.zhersh@notime.eu</email></author></authors>
17
+ <date>2016-04-07</date>
18
+ <time>14:10:08</time>
19
+ <contents><target name="magelocal"><dir name="Notime"><dir name="Shipping"><dir name="Block"><dir name="Checkout"><dir name="Onepage"><dir name="Shipping"><file name="Notime.php" hash="f16e5aa4ff3a9c8dd2111c445c8e8744"/></dir></dir></dir><dir name="Product"><file name="Widget.php" hash="e72292e3c7e8aed1909f4584fd1ea037"/></dir><file name="ShippingMethod.php" hash="b7cd80898a2a06821e6104a35b90b61e"/></dir><dir name="Helper"><file name="Data.php" hash="42686d5dffb62fdfc799d4a052daa968"/></dir><dir name="Model"><dir name="Carrier"><file name="Notime.php" hash="242500b090ad04d6eba1487ec7dc987b"/></dir><file name="Observer.php" hash="6e3b259610c943a41c6264e43ebe0776"/></dir><dir name="etc"><file name="config.xml" hash="ec9023896574aa83ad12cd6bc57b83c4"/><file name="system.xml" hash="f124b1bda52f8da0a305c2a6170bddca"/></dir><dir name="sql"><dir name="notimeshipping_setup"><file name="mysql4-install-1.0.0.php" hash="7647e9d736ac1199cb7732358b539be6"/><file name="mysql4-upgrade-1.0.0-1.0.1.php" hash="e15b6ad29a30175b3afca7280d1162ce"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="notime.xml" hash="3c16298a844be38a8a6d2a7ee615d6b9"/></dir><dir name="template"><dir name="notime"><dir name="checkout"><dir name="onepage"><dir name="shipping_method"><file name="notime.phtml" hash="059796293a11841976af7c04b2bd1ff4"/></dir></dir></dir><dir name="product"><file name="widget.phtml" hash="23da2d2a03f095b8fe467c9c5c6b3c96"/></dir></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Notime_Shipping.xml" hash="f5de879b88f342a03e16c4d655867b21"/></dir></target><target name="magelocale"><dir><dir name="de_DE"><file name="Notime_Shipping.csv" hash="14d216f093725c72aca60b1a165a084a"/></dir><dir name="en_US"><file name="Notime_Shipping.csv" hash="ef8c967d4c44a6afe1f01b9cde9ff761"/></dir><dir name="fr_FR"><file name="Notime_Shipping.csv" hash="ef8c967d4c44a6afe1f01b9cde9ff761"/></dir></dir></target><target name="mageskin"><dir name="frontend"><dir name="base"><dir name="default"><dir name="css"><file name="notime.css" hash="d41d8cd98f00b204e9800998ecf8427e"/></dir><dir name="js"><file name="notime.js" hash="7678c5eebe3ccd258d1a1fcac13bdaa5"/></dir></dir></dir></dir></target></contents>
20
  <compatible/>
21
  <dependencies><required><php><min>5.4.0</min><max>7.0.4</max></php></required></dependencies>
22
  </package>