Craig_Tco - Version 2.2.0

Version Notes

*Made PTP default for better lineitem listings
*Added multi-currency support
*Removed shipping address from intangible sales
*Removed mark shipping requirement

Download this release

Release Info

Developer Magento Core Team
Extension Craig_Tco
Version 2.2.0
Comparing to
See all releases


Code changes from version 2.1.7 to 2.2.0

app/code/local/Craig/Tco/Model/Checkout.php CHANGED
@@ -50,11 +50,7 @@ class Craig_Tco_Model_Checkout extends Mage_Payment_Model_Method_Abstract {
50
 
51
  //get purchase routine URL
52
  public function getUrl() {
53
- if ($this->getConfigData('submit_url') == '1') {
54
- $url = "https://www.2checkout.com/checkout/spurchase";
55
- } else {
56
- $url = "https://www.2checkout.com/checkout/purchase";
57
- }
58
  return $url;
59
  }
60
 
@@ -94,6 +90,7 @@ class Craig_Tco_Model_Checkout extends Mage_Payment_Model_Method_Abstract {
94
  $taxFull = $order->getFullTaxInfo();
95
  $ship_method = $order->getShipping_description();
96
  $coupon = $order->getCoupon_code();
 
97
  $i = 1;
98
  //get products
99
  if ($items) {
@@ -106,7 +103,8 @@ class Craig_Tco_Model_Checkout extends Mage_Payment_Model_Method_Abstract {
106
  $lineitems['li_'.$i.'_quantity'] = $item->getQtyToInvoice();
107
  $lineitems['li_'.$i.'_name'] = $item->getName();
108
  $lineitems['li_'.$i.'_description'] = $item->getDescription();
109
- $lineitems['li_'.$i.'_price'] = number_format($item->getBasePrice(), 2, '.', '');
 
110
  $i++;
111
  }
112
  }
@@ -116,6 +114,7 @@ class Craig_Tco_Model_Checkout extends Mage_Payment_Model_Method_Abstract {
116
  $lineitems['li_'.$i.'_type'] = 'tax';
117
  $lineitems['li_'.$i.'_name'] = $rate['rates']['0']['code'];
118
  $lineitems['li_'.$i.'_price'] = round($rate['amount'], 2);
 
119
  $i++;
120
  }
121
  }
@@ -123,7 +122,8 @@ class Craig_Tco_Model_Checkout extends Mage_Payment_Model_Method_Abstract {
123
  if ($ship_method) {
124
  $lineitems['li_'.$i.'_type'] = 'shipping';
125
  $lineitems['li_'.$i.'_name'] = $order->getShipping_description();
126
- $lineitems['li_'.$i.'_price'] = round($order->getBaseShippingAmount(), 2);
 
127
  $i++;
128
  }
129
  //get coupons
@@ -131,11 +131,48 @@ class Craig_Tco_Model_Checkout extends Mage_Payment_Model_Method_Abstract {
131
  $lineitems['li_'.$i.'_type'] = 'coupon';
132
  $lineitems['li_'.$i.'_name'] = $order->getCoupon_code();
133
  $lineitems['li_'.$i.'_price'] = trim(round($order->getBase_discount_amount(), 2), '-');
 
134
  $i++;
135
  }
136
  return $lineitems;
137
  }
138
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
139
  //get tax data
140
  public function getTaxData() {
141
  $order_id = $this->getCheckout()->getLastRealOrderId();
@@ -157,11 +194,11 @@ class Craig_Tco_Model_Checkout extends Mage_Payment_Model_Method_Abstract {
157
  public function getFormFields() {
158
  $order_id = $this->getCheckout()->getLastRealOrderId();
159
  $order = Mage::getModel('sales/order')->loadByIncrementId($order_id);
160
- $amount = round($order->getBaseGrandTotal(), 2);
161
  $a = $this->getQuote()->getShippingAddress();
162
  $b = $this->getQuote()->getBillingAddress();
163
  $country = $b->getCountry();
164
- $currency_code = $this->getQuote()->getCurrencyCode();
165
  $shipping = round($order->getShippingAmount(), 2);
166
  $weight = round($order->getWeight(), 2);
167
  $ship_method = $order->getShipping_description();
@@ -199,32 +236,26 @@ class Craig_Tco_Model_Checkout extends Mage_Payment_Model_Method_Abstract {
199
  $tcoFields['ship_city'] = $a->getCity();
200
  $tcoFields['ship_state'] = $a->getRegion();
201
  $tcoFields['ship_zip'] = $a->getPostcode();
202
- } else {
203
- $tcoFields['ship_name'] = $b->getFirstname() . ' ' . $b->getLastname();
204
- $tcoFields['ship_country'] = $b->getCountry();
205
- $tcoFields['ship_street_address'] = $b->getStreet1();
206
- $tcoFields['ship_street_address2'] = $b->getStreet2();
207
- $tcoFields['ship_city'] = $b->getCity();
208
- $tcoFields['ship_state'] = $b->getRegion();
209
- $tcoFields['ship_zip'] = $b->getPostcode();
210
- }
211
- $tcoFields['2co_tax'] = $tax;
212
  $tcoFields['sh_cost'] = $shipping;
213
  $tcoFields['sh_weight'] = $weight;
214
  $tcoFields['ship_method'] = $ship_method;
 
 
215
  $tcoFields['2co_cart_type'] = 'magento';
216
  $tcoFields['x_Receipt_Link_URL'] = Mage::getUrl('tco/redirect/success', array('_secure' => true));
217
  $tcoFields['demo'] = $this->getDemo();
 
218
 
219
  //Check Integration mode
220
- if ($this->getConfigData('integration') == '0') {
221
- $tcoFields['id_type'] = '1';
222
- $tcoFields['total'] = $amount;
223
- $tcoFields['cart_order_id'] = $order_id;
224
- $result = $productData + $taxData + $tcoFields;
225
- } else {
226
- $tcoFields['mode'] = '2CO';
227
- $result = $tcoFields + $lineitemData;
 
228
  }
229
  return $result;
230
  }
50
 
51
  //get purchase routine URL
52
  public function getUrl() {
53
+ $url = "https://www.2checkout.com/checkout/purchase";
 
 
 
 
54
  return $url;
55
  }
56
 
90
  $taxFull = $order->getFullTaxInfo();
91
  $ship_method = $order->getShipping_description();
92
  $coupon = $order->getCoupon_code();
93
+ $lineitem_total = 0;
94
  $i = 1;
95
  //get products
96
  if ($items) {
103
  $lineitems['li_'.$i.'_quantity'] = $item->getQtyToInvoice();
104
  $lineitems['li_'.$i.'_name'] = $item->getName();
105
  $lineitems['li_'.$i.'_description'] = $item->getDescription();
106
+ $lineitems['li_'.$i.'_price'] = number_format($item->getPrice(), 2, '.', '');
107
+ $lineitem_total += number_format($item->getPrice(), 2, '.', '');
108
  $i++;
109
  }
110
  }
114
  $lineitems['li_'.$i.'_type'] = 'tax';
115
  $lineitems['li_'.$i.'_name'] = $rate['rates']['0']['code'];
116
  $lineitems['li_'.$i.'_price'] = round($rate['amount'], 2);
117
+ $lineitem_total += round($rate['amount'], 2);
118
  $i++;
119
  }
120
  }
122
  if ($ship_method) {
123
  $lineitems['li_'.$i.'_type'] = 'shipping';
124
  $lineitems['li_'.$i.'_name'] = $order->getShipping_description();
125
+ $lineitems['li_'.$i.'_price'] = round($order->getShippingAmount(), 2);
126
+ $lineitem_total += round($order->getShippingAmount(), 2);
127
  $i++;
128
  }
129
  //get coupons
131
  $lineitems['li_'.$i.'_type'] = 'coupon';
132
  $lineitems['li_'.$i.'_name'] = $order->getCoupon_code();
133
  $lineitems['li_'.$i.'_price'] = trim(round($order->getBase_discount_amount(), 2), '-');
134
+ $lineitem_total -= trim(round($order->getBase_discount_amount(), 2), '-');
135
  $i++;
136
  }
137
  return $lineitems;
138
  }
139
 
140
+ //check total
141
+ public function checkTotal() {
142
+ $items = $this->getQuote()->getAllItems();
143
+ $order_id = $this->getCheckout()->getLastRealOrderId();
144
+ $order = Mage::getModel('sales/order')->loadByIncrementId($order_id);
145
+ $taxFull = $order->getFullTaxInfo();
146
+ $ship_method = $order->getShipping_description();
147
+ $coupon = $order->getCoupon_code();
148
+ $lineitem_total = 0;
149
+ $i = 1;
150
+ //get products
151
+ if ($items) {
152
+ foreach($items as $item){
153
+ if ($item->getParentItem()) {
154
+ continue;
155
+ }
156
+ $lineitem_total += number_format($item->getPrice(), 2, '.', '');
157
+ }
158
+ }
159
+ //get taxes
160
+ if ($taxFull) {
161
+ foreach($taxFull as $rate){
162
+ $lineitem_total += round($rate['amount'], 2);
163
+ }
164
+ }
165
+ //get shipping
166
+ if ($ship_method) {
167
+ $lineitem_total += round($order->getShippingAmount(), 2);
168
+ }
169
+ //get coupons
170
+ if ($coupon) {
171
+ $lineitem_total -= trim(round($order->getBase_discount_amount(), 2), '-');
172
+ }
173
+ return $lineitem_total;
174
+ }
175
+
176
  //get tax data
177
  public function getTaxData() {
178
  $order_id = $this->getCheckout()->getLastRealOrderId();
194
  public function getFormFields() {
195
  $order_id = $this->getCheckout()->getLastRealOrderId();
196
  $order = Mage::getModel('sales/order')->loadByIncrementId($order_id);
197
+ $amount = round($order->getGrandTotal(), 2);
198
  $a = $this->getQuote()->getShippingAddress();
199
  $b = $this->getQuote()->getBillingAddress();
200
  $country = $b->getCountry();
201
+ $currency_code = $order->getOrderCurrencyCode();
202
  $shipping = round($order->getShippingAmount(), 2);
203
  $weight = round($order->getWeight(), 2);
204
  $ship_method = $order->getShipping_description();
236
  $tcoFields['ship_city'] = $a->getCity();
237
  $tcoFields['ship_state'] = $a->getRegion();
238
  $tcoFields['ship_zip'] = $a->getPostcode();
 
 
 
 
 
 
 
 
 
 
239
  $tcoFields['sh_cost'] = $shipping;
240
  $tcoFields['sh_weight'] = $weight;
241
  $tcoFields['ship_method'] = $ship_method;
242
+ }
243
+ $tcoFields['2co_tax'] = $tax;
244
  $tcoFields['2co_cart_type'] = 'magento';
245
  $tcoFields['x_Receipt_Link_URL'] = Mage::getUrl('tco/redirect/success', array('_secure' => true));
246
  $tcoFields['demo'] = $this->getDemo();
247
+ $tcoFields['currency_code'] = $currency_code;
248
 
249
  //Check Integration mode
250
+ $lineitem_total = $this->checkTotal();
251
+ if ($lineitem_total != $amount) {
252
+ $tcoFields['id_type'] = '1';
253
+ $tcoFields['total'] = $amount;
254
+ $tcoFields['cart_order_id'] = $order_id;
255
+ $result = $productData + $taxData + $tcoFields;
256
+ } else {
257
+ $tcoFields['mode'] = '2CO';
258
+ $result = $tcoFields + $lineitemData;
259
  }
260
  return $result;
261
  }
app/code/local/Craig/Tco/Model/Observer.php CHANGED
@@ -42,43 +42,5 @@ class Craig_Tco_Model_Observer {
42
  $response = $http->read();
43
  }
44
  }
45
-
46
- public function mark_order_as_shipped(Varien_Object $payment) {
47
-
48
- $integration = Mage::getStoreConfig('payment/tco/integration');
49
-
50
- if ($integration == '1') {
51
-
52
- $order = $payment->getInvoice()->getOrder()->getData();
53
- $invoice_comment = $payment->getInvoice()->getCommentsCollection()->toArray();
54
-
55
- if(isset($invoice_comment['items'][0]['comment'])){
56
- $comment = $invoice_comment['items'][0]['comment'];
57
- } else {
58
- $comment = 'Order shipped by seller.';
59
- }
60
-
61
- $username = Mage::getStoreConfig('payment/tco/username');
62
- $password = Mage::getStoreConfig('payment/tco/password');
63
- $auth = 'Basic ' . base64_encode($username . ':' . $password);
64
-
65
- $data = array();
66
- $data['sale_id'] = $order['ext_order_id'];
67
- $data['comment'] = $comment;
68
- $data['tracking_number'] = 'See shipping comments.';
69
- $data['reauthorize'] = '1';
70
-
71
- $headers = array(
72
- 'Authorization: ' . $auth,
73
- 'Accept: application/xml'
74
- );
75
-
76
- $url = 'https://www.2checkout.com/api/sales/mark_shipped';
77
-
78
- $http = new Varien_Http_Adapter_Curl();
79
- $http->write('POST', $url, '1.1', $headers, $data);
80
- $response = $http->read();
81
- }
82
- }
83
  }
84
  ?>
42
  $response = $http->read();
43
  }
44
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
45
  }
46
  ?>
app/code/local/Craig/Tco/etc/config.xml CHANGED
@@ -24,7 +24,7 @@
24
  <config>
25
  <modules>
26
  <Craig_Tco>
27
- <version>2.1.7</version>
28
  </Craig_Tco>
29
  </modules>
30
  <global>
@@ -64,7 +64,6 @@
64
  </tco_read>
65
  </resources>
66
  <events>
67
- <!-- **** This is the event that it will execute on => sales_order_creditmemo_refund*** -->
68
  <sales_order_creditmemo_refund>
69
  <observers>
70
  <issue_creditmemo_refund>
@@ -75,16 +74,6 @@
75
  </observers>
76
  </sales_order_creditmemo_refund>
77
 
78
- <!-- **** This is the event that it will execute on => sales_order_invoice_pay*** -->
79
- <sales_order_invoice_pay>
80
- <observers>
81
- <mark_order_as_shipped>
82
- <type>singleton</type>
83
- <class>Craig_Tco_Model_Observer</class>
84
- <method>mark_order_as_shipped</method>
85
- </mark_order_as_shipped>
86
- </observers>
87
- </sales_order_invoice_pay>
88
  </events>
89
  </global>
90
  <frontend>
24
  <config>
25
  <modules>
26
  <Craig_Tco>
27
+ <version>2.2.0</version>
28
  </Craig_Tco>
29
  </modules>
30
  <global>
64
  </tco_read>
65
  </resources>
66
  <events>
 
67
  <sales_order_creditmemo_refund>
68
  <observers>
69
  <issue_creditmemo_refund>
74
  </observers>
75
  </sales_order_creditmemo_refund>
76
 
 
 
 
 
 
 
 
 
 
 
77
  </events>
78
  </global>
79
  <frontend>
app/code/local/Craig/Tco/etc/system.xml CHANGED
@@ -61,7 +61,7 @@
61
  </sid>
62
  <username translate="label">
63
  <label>API Username</label>
64
- <comment>Required if "Use Pass Through Products" is set to 'Yes' and required if 'Live Refunds' is set to 'Yes'.</comment>
65
  <frontend_type>text</frontend_type>
66
  <sort_order>4</sort_order>
67
  <show_in_default>1</show_in_default>
@@ -70,7 +70,7 @@
70
  </username>
71
  <password translate="label">
72
  <label>API Password</label>
73
- <comment>Required if "Use Pass Through Products" is set to 'Yes' and required if 'Live Refunds' is set to 'Yes'.</comment>
74
  <frontend_type>text</frontend_type>
75
  <sort_order>5</sort_order>
76
  <show_in_default>1</show_in_default>
@@ -86,26 +86,6 @@
86
  <show_in_website>1</show_in_website>
87
  <show_in_store>0</show_in_store>
88
  </secret_word>
89
- <submit_url translate="label">
90
- <label>Use Single Page Checkout</label>
91
- <comment>Select "Yes" for 2Checkout single page checkout or select "No" for 2Checkout standard checkout. Please note that 2Checkout will revert to the standard checkout routine if Pass Through Products are enabled.</comment>
92
- <frontend_type>select</frontend_type>
93
- <source_model>adminhtml/system_config_source_yesno</source_model>
94
- <sort_order>7</sort_order>
95
- <show_in_default>1</show_in_default>
96
- <show_in_website>1</show_in_website>
97
- <show_in_store>0</show_in_store>
98
- </submit_url>
99
- <integration translate="label">
100
- <label>Use Pass Through Products</label>
101
- <comment>**IMPORTANT** Requires API Username and Password. Select 'Yes' for cleaner 2Checkout lineitem listings (Does not support non-coupon Shopping Cart Price Rules and orders containing tangible items must be invoiced through Magento with in 7 days of being placed to bill the customers card.</comment>
102
- <frontend_type>select</frontend_type>
103
- <sort_order>8</sort_order>
104
- <source_model>adminhtml/system_config_source_yesno</source_model>
105
- <show_in_default>1</show_in_default>
106
- <show_in_website>1</show_in_website>
107
- <show_in_store>0</show_in_store>
108
- </integration>
109
  <refund translate="label">
110
  <label>Live Refunds</label>
111
  <comment>**IMPORTANT** Requires API Username and Password. Select 'Yes' to enable live refunds through 2Checkout when sending credit memos in Magento. This will actually issue refunds for the credit memo amount.</comment>
@@ -131,9 +111,7 @@
131
  <comment>Automatically issues magento invoice after
132
  2Checkout fraud review passes. If you are
133
  offering downloadable products this would
134
- enable downloads or if you are using Pass
135
- Through Products this would mark the sale as
136
- shipped at 2Checkout.</comment>
137
  <frontend_type>select</frontend_type>
138
  <sort_order>11</sort_order>
139
  <source_model>adminhtml/system_config_source_yesno</source_model>
@@ -147,9 +125,7 @@
147
  <comment>Automatically issues magento invoice
148
  when sale is processed by 2Checkout. If you are
149
  offering downloadable products this would
150
- enable downloads or if you are using Pass
151
- Through Products this would mark the sale as
152
- shipped at 2Checkout.</comment>
153
  <frontend_type>select</frontend_type>
154
  <sort_order>12</sort_order>
155
  <source_model>adminhtml/system_config_source_yesno</source_model>
61
  </sid>
62
  <username translate="label">
63
  <label>API Username</label>
64
+ <comment>Required if 'Live Refunds' is set to 'Yes'.</comment>
65
  <frontend_type>text</frontend_type>
66
  <sort_order>4</sort_order>
67
  <show_in_default>1</show_in_default>
70
  </username>
71
  <password translate="label">
72
  <label>API Password</label>
73
+ <comment>Required if 'Live Refunds' is set to 'Yes'.</comment>
74
  <frontend_type>text</frontend_type>
75
  <sort_order>5</sort_order>
76
  <show_in_default>1</show_in_default>
86
  <show_in_website>1</show_in_website>
87
  <show_in_store>0</show_in_store>
88
  </secret_word>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
89
  <refund translate="label">
90
  <label>Live Refunds</label>
91
  <comment>**IMPORTANT** Requires API Username and Password. Select 'Yes' to enable live refunds through 2Checkout when sending credit memos in Magento. This will actually issue refunds for the credit memo amount.</comment>
111
  <comment>Automatically issues magento invoice after
112
  2Checkout fraud review passes. If you are
113
  offering downloadable products this would
114
+ enable downloads.</comment>
 
 
115
  <frontend_type>select</frontend_type>
116
  <sort_order>11</sort_order>
117
  <source_model>adminhtml/system_config_source_yesno</source_model>
125
  <comment>Automatically issues magento invoice
126
  when sale is processed by 2Checkout. If you are
127
  offering downloadable products this would
128
+ enable downloads</comment>
 
 
129
  <frontend_type>select</frontend_type>
130
  <sort_order>12</sort_order>
131
  <source_model>adminhtml/system_config_source_yesno</source_model>
package.xml CHANGED
@@ -1,18 +1,21 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Craig_Tco</name>
4
- <version>2.1.7</version>
5
  <stability>stable</stability>
6
  <license uri="http://www.opensource.org/licenses/osl-3.0.php">OSL v3.0</license>
7
  <channel>community</channel>
8
  <extends/>
9
  <summary>2Checkout Payment Extension</summary>
10
  <description>Official 2Checkout Payment Extension</description>
11
- <notes>Added better behavior on MD5 hash mismatch</notes>
 
 
 
12
  <authors><author><name>Craig Christenson</name><user>auto-converted</user><email>christensoncraig@gmail.com</email></author></authors>
13
- <date>2012-09-17</date>
14
- <time>19:54:46</time>
15
- <contents><target name="mageetc"><dir name="modules"><file name="Craig_Tco.xml" hash="4a6e92678d9b2a310af880d35a4c355f"/></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="template"><dir name="tco"><file name="form.phtml" hash="08ae585e158550d0a5dccbed3d37758d"/><file name="info.phtml" hash="b714a7398773adc71ea086024dfc96b1"/></dir></dir></dir></dir></dir></target><target name="magelocal"><dir name="Craig"><dir name="Tco"><dir name="Block"><file name="Form.php" hash="b552018543f57090c42784d939004dd4"/><file name="Info.php" hash="ceb4ec03e4de3e4f1dafaf5d7da9b982"/><file name="Redirect.php" hash="e2809d56d51bdc74367dad8da77ac563"/></dir><dir name="controllers"><file name="NotificationController.php" hash="c978c760f0ee234a371ace1853353ccf"/><file name="RedirectController.php" hash="6dd5e6460c5454da1e37be35de7b4ec7"/></dir><dir name="etc"><file name="config.xml" hash="891b77a13c291af6f09dabf0ce036728"/><file name="system.xml" hash="4bf8199f530281ba446d9c943fcb6932"/></dir><dir name="Helper"><file name="Data.php" hash="de7680011db7d6821c1f68d70a8fa684"/></dir><dir name="Model"><file name="Checkout.php" hash="f23d1777a554d67ac8cc70b835d94198"/><file name="Observer.php" hash="727312c017289346a6c9a4aedb5fcc4f"/></dir></dir></dir></target></contents>
16
  <compatible/>
17
  <dependencies/>
18
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Craig_Tco</name>
4
+ <version>2.2.0</version>
5
  <stability>stable</stability>
6
  <license uri="http://www.opensource.org/licenses/osl-3.0.php">OSL v3.0</license>
7
  <channel>community</channel>
8
  <extends/>
9
  <summary>2Checkout Payment Extension</summary>
10
  <description>Official 2Checkout Payment Extension</description>
11
+ <notes>*Made PTP default for better lineitem listings&#xD;
12
+ *Added multi-currency support&#xD;
13
+ *Removed shipping address from intangible sales&#xD;
14
+ *Removed mark shipping requirement</notes>
15
  <authors><author><name>Craig Christenson</name><user>auto-converted</user><email>christensoncraig@gmail.com</email></author></authors>
16
+ <date>2012-11-30</date>
17
+ <time>15:15:21</time>
18
+ <contents><target name="mageetc"><dir name="modules"><file name="Craig_Tco.xml" hash="4a6e92678d9b2a310af880d35a4c355f"/></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="template"><dir name="tco"><file name="form.phtml" hash="08ae585e158550d0a5dccbed3d37758d"/><file name="info.phtml" hash="b714a7398773adc71ea086024dfc96b1"/></dir></dir></dir></dir></dir></target><target name="magelocal"><dir name="Craig"><dir name="Tco"><dir name="Block"><file name="Form.php" hash="b552018543f57090c42784d939004dd4"/><file name="Info.php" hash="ceb4ec03e4de3e4f1dafaf5d7da9b982"/><file name="Redirect.php" hash="e2809d56d51bdc74367dad8da77ac563"/></dir><dir name="controllers"><file name="NotificationController.php" hash="c978c760f0ee234a371ace1853353ccf"/><file name="RedirectController.php" hash="6dd5e6460c5454da1e37be35de7b4ec7"/></dir><dir name="etc"><file name="config.xml" hash="dbc9281bf0137e3c19647b7d485f129c"/><file name="system.xml" hash="36c109d2906a8aa301aa1e6338988d56"/></dir><dir name="Helper"><file name="Data.php" hash="de7680011db7d6821c1f68d70a8fa684"/></dir><dir name="Model"><file name="Checkout.php" hash="1d94602fe52951ba9e6876359b9cf848"/><file name="Observer.php" hash="1451aacaa9eb8038629b2a48c842c406"/></dir></dir></dir></target></contents>
19
  <compatible/>
20
  <dependencies/>
21
  </package>