nypwidget - Version 1.2.7

Version Notes

Bug Fixes:
- Improved compatibility with grouped products.

Download this release

Release Info

Developer PriceWaiter
Extension nypwidget
Version 1.2.7
Comparing to
See all releases


Code changes from version 1.2.5 to 1.2.7

app/code/community/PriceWaiter/NYPWidget/Helper/Data.php CHANGED
@@ -1,4 +1,5 @@
1
  <?php
 
2
  /*
3
  * Copyright 2013 Price Waiter, LLC
4
  *
@@ -15,6 +16,7 @@
15
  * limitations under the License.
16
  *
17
  */
 
18
  class PriceWaiter_NYPWidget_Helper_Data extends Mage_Core_Helper_Abstract
19
  {
20
  private $_product = false;
@@ -77,9 +79,9 @@ class PriceWaiter_NYPWidget_Helper_Data extends Mage_Core_Helper_Abstract
77
  {
78
  $apiKey = Mage::getStoreConfig('pricewaiter/configuration/api_key');
79
 
80
- $displayPhrase = Mage::getStoreConfig('pricewaiter/appearance/display_phrase') ? 'button_mo' : 'button_nyp';
81
- $displaySize = Mage::getStoreConfig('pricewaiter/appearance/display_size') ? 'sm' : 'lg';
82
- $displayColor = Mage::getStoreConfig('pricewaiter/appearance/display_color');
83
  $displayHoverColor = Mage::getStoreConfig('pricewaiter/appearance/display_hover_color');
84
 
85
  $pwOptions = "
@@ -89,21 +91,21 @@ class PriceWaiter_NYPWidget_Helper_Data extends Mage_Core_Helper_Abstract
89
  type: " . json_encode($displayPhrase) . ",
90
  size: " . json_encode($displaySize) . ",";
91
 
92
- if ($displayColor) {
93
- $pwOptions .= "
94
  color: " . json_encode($displayColor) . ",";
95
- }
96
 
97
- if ($displayHoverColor) {
98
- $pwOptions .= "
99
  hoverColor: " . json_encode($displayHoverColor) . ",";
100
- }
101
 
102
- $pwOptions .= "
103
  },
104
  };\n";
105
 
106
- return $pwOptions;
107
  }
108
 
109
  public function getProductOptions($admin = false)
@@ -124,38 +126,37 @@ class PriceWaiter_NYPWidget_Helper_Data extends Mage_Core_Helper_Abstract
124
  if ($product->getId()) {
125
 
126
  switch ($product->getTypeId()) {
127
- case "simple":
128
- return $this->_pwBoilerPlate($product) . "
129
  var PriceWaiterProductType = 'simple';
130
  ";
131
- break;
132
- case "configurable":
133
- return $this->_pwBoilerPlate($product) . "
134
  var PriceWaiterProductType = 'configurable';
135
  ";
136
- break;
137
- case "grouped":
138
- return $this->_pwBoilerPlate($product) . "
139
- var PriceWaiterProductType = 'grouped';
140
- ";
141
- return false;
142
- break;
143
- case "virtual":
144
- // Virtual products are not yet supported
145
- return false;
146
- break;
147
- case "bundle":
148
- return $this->_pwBoilerPlate($product) . "
149
  var PriceWaiterProductType = 'bundle';
150
  ";
151
- break;
152
- case "downloadable":
153
- // Downloadable products are not yet supported
154
- return false;
155
- break;
156
- default:
157
- return false;
158
- break;
159
  }
160
  } else {
161
  return false;
@@ -175,11 +176,11 @@ class PriceWaiter_NYPWidget_Helper_Data extends Mage_Core_Helper_Abstract
175
  {
176
  if ($this->_testing) {
177
  return "https://api-testing.pricewaiter.com/1/order/verify?"
178
- . "api_key="
179
- . Mage::getStoreConfig('pricewaiter/configuration/api_key');
180
  } else {
181
  return "https://api.pricewaiter.com/1/order/verify?api_key="
182
- . Mage::getStoreConfig('pricewaiter/configuration/api_key');
183
  }
184
  }
185
 
@@ -194,11 +195,11 @@ class PriceWaiter_NYPWidget_Helper_Data extends Mage_Core_Helper_Abstract
194
  return "
195
  PriceWaiterOptions.product = {
196
  sku: " . json_encode($product->getSku()) . ",
197
- name: " . json_encode($product->getName()) . ",
198
- price: " . json_encode($productPrice) . ",
199
- image: " . json_encode($product->getImageUrl()) . "
200
- };
201
- var PriceWaiterRegularPrice = '" . (float) $product->getPrice() . "';
202
  ";
203
  }
204
 
@@ -211,7 +212,23 @@ class PriceWaiter_NYPWidget_Helper_Data extends Mage_Core_Helper_Abstract
211
  return $this->_product;
212
  }
213
 
214
- public function getStoreByApiKey($apiKey) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
215
  $stores = Mage::app()->getStores();
216
 
217
  // Find the store with the matching API key by checking the key for each store
@@ -224,5 +241,4 @@ class PriceWaiter_NYPWidget_Helper_Data extends Mage_Core_Helper_Abstract
224
 
225
  return Mage::app()->getStore();
226
  }
227
-
228
  }
1
  <?php
2
+
3
  /*
4
  * Copyright 2013 Price Waiter, LLC
5
  *
16
  * limitations under the License.
17
  *
18
  */
19
+
20
  class PriceWaiter_NYPWidget_Helper_Data extends Mage_Core_Helper_Abstract
21
  {
22
  private $_product = false;
79
  {
80
  $apiKey = Mage::getStoreConfig('pricewaiter/configuration/api_key');
81
 
82
+ $displayPhrase = Mage::getStoreConfig('pricewaiter/appearance/display_phrase') ? 'button_mo' : 'button_nyp';
83
+ $displaySize = Mage::getStoreConfig('pricewaiter/appearance/display_size') ? 'sm' : 'lg';
84
+ $displayColor = Mage::getStoreConfig('pricewaiter/appearance/display_color');
85
  $displayHoverColor = Mage::getStoreConfig('pricewaiter/appearance/display_hover_color');
86
 
87
  $pwOptions = "
91
  type: " . json_encode($displayPhrase) . ",
92
  size: " . json_encode($displaySize) . ",";
93
 
94
+ if ($displayColor) {
95
+ $pwOptions .= "
96
  color: " . json_encode($displayColor) . ",";
97
+ }
98
 
99
+ if ($displayHoverColor) {
100
+ $pwOptions .= "
101
  hoverColor: " . json_encode($displayHoverColor) . ",";
102
+ }
103
 
104
+ $pwOptions .= "
105
  },
106
  };\n";
107
 
108
+ return $pwOptions;
109
  }
110
 
111
  public function getProductOptions($admin = false)
126
  if ($product->getId()) {
127
 
128
  switch ($product->getTypeId()) {
129
+ case "simple":
130
+ return $this->_pwBoilerPlate($product) . "
131
  var PriceWaiterProductType = 'simple';
132
  ";
133
+ break;
134
+ case "configurable":
135
+ return $this->_pwBoilerPlate($product) . "
136
  var PriceWaiterProductType = 'configurable';
137
  ";
138
+ break;
139
+ case "grouped":
140
+ return $this->_pwBoilerPlate($product) . "
141
+ var PriceWaiterProductType = 'grouped';\n"
142
+ . $this->_getGroupedProductInfo() ."\n";
143
+ break;
144
+ case "virtual":
145
+ // Virtual products are not yet supported
146
+ return false;
147
+ break;
148
+ case "bundle":
149
+ return $this->_pwBoilerPlate($product) . "
 
150
  var PriceWaiterProductType = 'bundle';
151
  ";
152
+ break;
153
+ case "downloadable":
154
+ // Downloadable products are not yet supported
155
+ return false;
156
+ break;
157
+ default:
158
+ return false;
159
+ break;
160
  }
161
  } else {
162
  return false;
176
  {
177
  if ($this->_testing) {
178
  return "https://api-testing.pricewaiter.com/1/order/verify?"
179
+ . "api_key="
180
+ . Mage::getStoreConfig('pricewaiter/configuration/api_key');
181
  } else {
182
  return "https://api.pricewaiter.com/1/order/verify?api_key="
183
+ . Mage::getStoreConfig('pricewaiter/configuration/api_key');
184
  }
185
  }
186
 
195
  return "
196
  PriceWaiterOptions.product = {
197
  sku: " . json_encode($product->getSku()) . ",
198
+ name: " . json_encode($product->getName()) . ",
199
+ price: " . json_encode($productPrice) . ",
200
+ image: " . json_encode($product->getImageUrl()) . "
201
+ };
202
+ var PriceWaiterRegularPrice = '" . (float)$product->getPrice() . "';
203
  ";
204
  }
205
 
212
  return $this->_product;
213
  }
214
 
215
+ private function _getGroupedProductInfo()
216
+ {
217
+ $product = $this->_getProduct();
218
+ $javascript = "var PriceWaiterGroupedProductInfo = new Array();\n";
219
+
220
+ $associatedProducts = $product->getTypeInstance(true)->getAssociatedProducts($product);
221
+ foreach ($associatedProducts as $simpleProduct) {
222
+ $javascript .= "PriceWaiterGroupedProductInfo[" . $simpleProduct->getId() . "] = ";
223
+ $javascript .= "new Array('" . htmlentities($simpleProduct->getName()) . "', '"
224
+ . number_format($simpleProduct->getPrice(), 2) . "')\n";
225
+ }
226
+
227
+ return $javascript;
228
+ }
229
+
230
+ public function getStoreByApiKey($apiKey)
231
+ {
232
  $stores = Mage::app()->getStores();
233
 
234
  // Find the store with the matching API key by checking the key for each store
241
 
242
  return Mage::app()->getStore();
243
  }
 
244
  }
app/code/community/PriceWaiter/NYPWidget/Model/Callback.php CHANGED
@@ -80,9 +80,6 @@ class PriceWaiter_NYPWidget_Model_Callback
80
  $customer = Mage::getModel('customer/customer')
81
  ->setWebsiteId($this->_store->getWebsiteId());
82
  $customer->loadByEmail($request['buyer_email']);
83
- preg_match('#^(\w+\.)?\s*([\'\’\w]+)\s+([\'\’\w]+)\s*(\w+\.?)?$#',$request['buyer_name'] , $name);
84
- $request['buyer_first_name'] = $name[2];
85
- $request['buyer_last_name'] = $name[3];
86
 
87
  if (!$customer->getId()) {
88
  // Create a new customer with this email
@@ -159,6 +156,16 @@ class PriceWaiter_NYPWidget_Model_Callback
159
  ->setFax('');
160
  $order->setBillingAddress($billingAddress);
161
 
 
 
 
 
 
 
 
 
 
 
162
  // set Shipping Address
163
  $shipping = $customer->getDefaultShippingAddress();
164
  $shippingAddress = Mage::getModel('sales/order_address')
@@ -166,9 +173,9 @@ class PriceWaiter_NYPWidget_Model_Callback
166
  ->setAddressType(Mage_Sales_Model_Quote_Address::TYPE_BILLING)
167
  ->setCustomerId($customer->getId())
168
  ->setPrefix('')
169
- ->setFirstname($request['buyer_first_name'])
170
  ->setMiddlename('')
171
- ->setLastname($request['buyer_last_name'])
172
  ->setSuffix('')
173
  ->setCompany('')
174
  ->setStreet(array($request['buyer_shipping_address'],$request['buyer_shipping_address2']))
80
  $customer = Mage::getModel('customer/customer')
81
  ->setWebsiteId($this->_store->getWebsiteId());
82
  $customer->loadByEmail($request['buyer_email']);
 
 
 
83
 
84
  if (!$customer->getId()) {
85
  // Create a new customer with this email
156
  ->setFax('');
157
  $order->setBillingAddress($billingAddress);
158
 
159
+ // Try to get the shipping name. If we fail, fall back on the buyer_first/last_name fields
160
+ preg_match('#^(\w+\.)?\s*([\'\’\w]+)\s+([\'\’\w]+)\s*(\w+\.?)?$#',$request['buyer_shipping_name'] , $name);
161
+ $request['buyer_shipping_first_name'] = $name[2];
162
+ $request['buyer_shipping_last_name'] = $name[3];
163
+
164
+ if ($request['buyer_shipping_first_name'] == '') {
165
+ $request['buyer_shipping_first_name'] = $request['buyer_first_name'];
166
+ $request['buyer_shipping_last_name'] = $request['buyer_last_name'];
167
+ }
168
+
169
  // set Shipping Address
170
  $shipping = $customer->getDefaultShippingAddress();
171
  $shippingAddress = Mage::getModel('sales/order_address')
173
  ->setAddressType(Mage_Sales_Model_Quote_Address::TYPE_BILLING)
174
  ->setCustomerId($customer->getId())
175
  ->setPrefix('')
176
+ ->setFirstname($request['buyer_shipping_first_name'])
177
  ->setMiddlename('')
178
+ ->setLastname($request['buyer_shipping_last_name'])
179
  ->setSuffix('')
180
  ->setCompany('')
181
  ->setStreet(array($request['buyer_shipping_address'],$request['buyer_shipping_address2']))
app/code/community/PriceWaiter/NYPWidget/etc/config.xml CHANGED
@@ -18,7 +18,7 @@
18
 
19
  <modules>
20
  <PriceWaiter_NYPWidget>
21
- <version>1.2.5</version>
22
  </PriceWaiter_NYPWidget>
23
  </modules>
24
 
18
 
19
  <modules>
20
  <PriceWaiter_NYPWidget>
21
+ <version>1.2.7</version>
22
  </PriceWaiter_NYPWidget>
23
  </modules>
24
 
js/pricewaiter/product-pages.js CHANGED
@@ -245,18 +245,24 @@ $(document).observe('dom:loaded', function() {
245
  // Bind to the Quantity change
246
  productRows[row].select('input.qty')[0].observe('change', function(event){
247
  var qty = this.value;
248
- // Get the Product's name
249
- var productName = this.up('tr').firstDescendant().innerHTML;
250
- // Get the Product's price
251
- var productPrice = this.up('tr').select('span.price')[0].innerHTML;
 
 
 
 
 
 
252
  // The user changed the quantity field. We need to find the previous quantity and price
253
  var previousQuantity = PriceWaiter.getProductOptions()[productName + " (" + productPrice + ")"];
254
- var amountToRemove = Number(previousQuantity * productPrice.substring(1));
255
  if (qty > 0) {
256
  // Entered a quantity, set product name as option name, add quantity as value
257
  PriceWaiter.setProductOption(productName + " (" + productPrice + ")", qty);
258
  // Add the price to the product's total
259
- PriceWaiter.setPrice(Number(PriceWaiter.getPrice()) + Number(productPrice.substring(1) * qty));
260
  } else {
261
  PriceWaiter.clearProductOption(productName + " (" + productPrice + ")");
262
  }
245
  // Bind to the Quantity change
246
  productRows[row].select('input.qty')[0].observe('change', function(event){
247
  var qty = this.value;
248
+ // Find the name and price based on the input's product ID
249
+ // The product ID is found in the input's name inside the square brackets
250
+ var pattern = /\[(.*)\]/;
251
+ var inputName = this.name;
252
+ var productID = pattern.exec(inputName);
253
+ productID = productID[1];
254
+
255
+ var productName = window.PriceWaiterGroupedProductInfo[productID][0];
256
+ var productPrice = window.PriceWaiterGroupedProductInfo[productID][1];
257
+
258
  // The user changed the quantity field. We need to find the previous quantity and price
259
  var previousQuantity = PriceWaiter.getProductOptions()[productName + " (" + productPrice + ")"];
260
+ var amountToRemove = Number(previousQuantity * productPrice);
261
  if (qty > 0) {
262
  // Entered a quantity, set product name as option name, add quantity as value
263
  PriceWaiter.setProductOption(productName + " (" + productPrice + ")", qty);
264
  // Add the price to the product's total
265
+ PriceWaiter.setPrice(Number(PriceWaiter.getPrice()) + Number(productPrice * qty));
266
  } else {
267
  PriceWaiter.clearProductOption(productName + " (" + productPrice + ")");
268
  }
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>nypwidget</name>
4
- <version>1.2.5</version>
5
  <stability>stable</stability>
6
  <license uri="http://www.apache.org/licenses/LICENSE-2.0.html">Apache License, Version 2.0</license>
7
  <channel>community</channel>
@@ -9,13 +9,12 @@
9
  <summary>PriceWaiter&#xAE; let's buyers make offers on your products that you can easily accept, counter offer or reject.</summary>
10
  <description>Sell more, immediately, with the PriceWaiter&#xAE; widget. Convert comparison shoppers you might have lost, increase sales and conversions, and stop "minimum advertised price" from preventing sales before they even start.&#xD;
11
  PriceWaiter&#xAE; lets customers make offers on products you sell-- offers you can accept, reject or counter. The widget embeds a simple Name Your Price button on any product page or category that you choose. Simply install the extension and you'll have full control over PriceWaiter&#xAE; in your Magento admin control panel.</description>
12
- <notes>New Features:&#xD;
13
- - Added new "Custom CSS" field in the admin to allow you to make CSS changes to the PriceWaiter button more easily.&#xD;
14
- - Newly received orders now use the status "Processing - PriceWaiter" to more closely mirror Magento's Order Statuses.&#xD;
15
  </notes>
16
  <authors><author><name>PriceWaiter</name><user>pricewaiter</user><email>bobby.b@pricewaiter.com</email></author></authors>
17
- <date>2014-01-12</date>
18
- <time>01:54:37</time>
19
  <contents><target name="magecommunity"><dir name="PriceWaiter"><dir name="NYPWidget"><dir name="Block"><dir name="Adminhtml"><file name="Widget.php" hash="cffdba25dabdb8f9b6a2eac21c0e82e0"/></dir><file name="Category.php" hash="ba5bcfb87399356266eb2874bf691d6e"/><file name="Widget.php" hash="25489ee6ae666d91db98b70dd6adbf40"/></dir><dir name="Helper"><file name="Data.php" hash="e2d7bf749fa77e436b4166411c807487"/><file name=".Data.php.un~" hash="ebf997909064b973c4bb0720e63a48c0"/></dir><dir name="Model"><file name="Callback.php" hash="8f9b7fcc444a2b8edb13f76cfce2b670"/><dir name="Carrier"><file name="ShippingMethod.php" hash="1df7b75009a6e6e8e41b554fecb813db"/></dir><file name="Category.php" hash="55588e458cacb778b92fdacd8edeb22a"/><dir name="Display"><file name="Phrase.php" hash="ad605b93302ec648c5a7d3e3401f47b5"/><file name="Size.php" hash="42c2917e730811b78fd12e7591cb9159"/></dir><dir name="Mysql4"><dir name="Category"><file name="Collection.php" hash="adbbb19ccafb1498bb0d4c5d20abddd1"/></dir><file name="Category.php" hash="ba6b693541711d91edc5b7edae799a97"/><dir name="Order"><file name="Collection.php" hash="de7e92559722c9735b32a6d30862087e"/></dir><file name="Order.php" hash="237302190fa65833b5ff187dd0bbe71a"/></dir><file name="Observer.php" hash="a5b643d09e366068028dc1df1abee154"/><file name="Order.php" hash="c44f2d228a38e991843cee197abd397c"/><file name="PaymentMethod.php" hash="0106a5c193079d4cf07005fc9d22dd29"/><dir name="Resource"><dir name="Eav"><dir name="Mysql4"><file name="Setup.php" hash="da87eaa37fc5a09a5d5c38f9bbecabb1"/></dir></dir></dir></dir><dir name="controllers"><file name="CallbackController.php" hash="8b95003b06ebc0e1a05430655f2caacd"/></dir><dir name="etc"><file name="adminhtml.xml" hash="022f1761ba091c7e1f3e4901d40d5ce0"/><file name="config.xml" hash="5b75615e909d9f10b6c63af5c6488b21"/><file name="system.xml" hash="8b65aaf26f9bb75eee863e169b25a7ae"/><file name=".config.xml.un~" hash="dbeb241a6a168c330afedc248d5a8350"/></dir><dir name="sql"><dir name="nypwidget_setup"><file name="mysql4-install-1.0.0.php" hash="b30a0b38090a9c7aafb1a419b21755fe"/><file name="mysql4-upgrade-1.1.2-1.1.3.php" hash="8d4bd167694c277a0e8ab8034d87cb1b"/><file name="mysql4-upgrade-1.1.7-1.1.8.php" hash="2a8de13744724f647e23e612ecf1d196"/><file name="mysql4-upgrade-1.2.4-1.2.5.php" hash="4b0ef14d3e455afea1d966f8f1641d6b"/><file name=".mysql4-install-1.0.0.php.un~" hash="4ac3da846a54fea6461349a73b2a8a0b"/><file name=".mysql4-upgrade-1.2.4-1.2.5.php.un~" hash="38d59b3e5dd699ac95c81d747a1f5dcc"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="pricewaiter.xml" hash="cc51462b56118a611be1a329b308d528"/></dir><dir name="template"><dir name="pricewaiter"><file name="admin_widget.phtml" hash="daae86cfa34fbe5e786715c0c579e398"/><file name="categorytab.phtml" hash="43f8af9feca6775e4a1e8a149a86268e"/></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="pricewaiter.xml" hash="0da284d426574c7ae1f154b096f8b413"/></dir><dir name="template"><dir name="pricewaiter"><file name="widget.phtml" hash="d4e9f431922f843d5911a8b9ec2b814e"/></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="PriceWaiter_NYPWidget.xml" hash="d3b86fa976b99e64df65f9e98d689257"/></dir></target><target name="mageweb"><dir name="js"><dir name="jscolor-pw"><file name="arrow.gif" hash="5034704a76cd55c1cbcbc58ea6bf523f"/><file name="cross.gif" hash="ba9a274b9323753cd95bc3b1eb2f4e5f"/><file name="hs.png" hash="fefa1a03d92ebad25c88dca94a0b63db"/><file name="hv.png" hash="990d71cada17da100653636cf8490884"/><file name="jscolor.js" hash="668050b57cb3ad59d0a56a16fddf1a91"/></dir><dir name="pricewaiter"><file name="product-pages.js" hash="13abcb256a75027c883c247af09392a3"/></dir></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="images"><file name="pricewaiter_logo.png" hash="becb9713a561131ff69eabb7503d3e74"/><file name="pricewaiter_tab.png" hash="1bab71be6b1a93aee2ae7aeae3807484"/></dir><file name="pricewaiter.css" hash="6a58cdaa35d8f61cbb305a6a1a206816"/></dir></dir></dir></target></contents>
20
  <compatible/>
21
  <dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>nypwidget</name>
4
+ <version>1.2.7</version>
5
  <stability>stable</stability>
6
  <license uri="http://www.apache.org/licenses/LICENSE-2.0.html">Apache License, Version 2.0</license>
7
  <channel>community</channel>
9
  <summary>PriceWaiter&#xAE; let's buyers make offers on your products that you can easily accept, counter offer or reject.</summary>
10
  <description>Sell more, immediately, with the PriceWaiter&#xAE; widget. Convert comparison shoppers you might have lost, increase sales and conversions, and stop "minimum advertised price" from preventing sales before they even start.&#xD;
11
  PriceWaiter&#xAE; lets customers make offers on products you sell-- offers you can accept, reject or counter. The widget embeds a simple Name Your Price button on any product page or category that you choose. Simply install the extension and you'll have full control over PriceWaiter&#xAE; in your Magento admin control panel.</description>
12
+ <notes>Bug Fixes:&#xD;
13
+ - Improved compatibility with grouped products.&#xD;
 
14
  </notes>
15
  <authors><author><name>PriceWaiter</name><user>pricewaiter</user><email>bobby.b@pricewaiter.com</email></author></authors>
16
+ <date>2014-02-03</date>
17
+ <time>09:33:00</time>
18
  <contents><target name="magecommunity"><dir name="PriceWaiter"><dir name="NYPWidget"><dir name="Block"><dir name="Adminhtml"><file name="Widget.php" hash="cffdba25dabdb8f9b6a2eac21c0e82e0"/></dir><file name="Category.php" hash="ba5bcfb87399356266eb2874bf691d6e"/><file name="Widget.php" hash="25489ee6ae666d91db98b70dd6adbf40"/></dir><dir name="Helper"><file name="Data.php" hash="e2d7bf749fa77e436b4166411c807487"/><file name=".Data.php.un~" hash="ebf997909064b973c4bb0720e63a48c0"/></dir><dir name="Model"><file name="Callback.php" hash="8f9b7fcc444a2b8edb13f76cfce2b670"/><dir name="Carrier"><file name="ShippingMethod.php" hash="1df7b75009a6e6e8e41b554fecb813db"/></dir><file name="Category.php" hash="55588e458cacb778b92fdacd8edeb22a"/><dir name="Display"><file name="Phrase.php" hash="ad605b93302ec648c5a7d3e3401f47b5"/><file name="Size.php" hash="42c2917e730811b78fd12e7591cb9159"/></dir><dir name="Mysql4"><dir name="Category"><file name="Collection.php" hash="adbbb19ccafb1498bb0d4c5d20abddd1"/></dir><file name="Category.php" hash="ba6b693541711d91edc5b7edae799a97"/><dir name="Order"><file name="Collection.php" hash="de7e92559722c9735b32a6d30862087e"/></dir><file name="Order.php" hash="237302190fa65833b5ff187dd0bbe71a"/></dir><file name="Observer.php" hash="a5b643d09e366068028dc1df1abee154"/><file name="Order.php" hash="c44f2d228a38e991843cee197abd397c"/><file name="PaymentMethod.php" hash="0106a5c193079d4cf07005fc9d22dd29"/><dir name="Resource"><dir name="Eav"><dir name="Mysql4"><file name="Setup.php" hash="da87eaa37fc5a09a5d5c38f9bbecabb1"/></dir></dir></dir></dir><dir name="controllers"><file name="CallbackController.php" hash="8b95003b06ebc0e1a05430655f2caacd"/></dir><dir name="etc"><file name="adminhtml.xml" hash="022f1761ba091c7e1f3e4901d40d5ce0"/><file name="config.xml" hash="5b75615e909d9f10b6c63af5c6488b21"/><file name="system.xml" hash="8b65aaf26f9bb75eee863e169b25a7ae"/><file name=".config.xml.un~" hash="dbeb241a6a168c330afedc248d5a8350"/></dir><dir name="sql"><dir name="nypwidget_setup"><file name="mysql4-install-1.0.0.php" hash="b30a0b38090a9c7aafb1a419b21755fe"/><file name="mysql4-upgrade-1.1.2-1.1.3.php" hash="8d4bd167694c277a0e8ab8034d87cb1b"/><file name="mysql4-upgrade-1.1.7-1.1.8.php" hash="2a8de13744724f647e23e612ecf1d196"/><file name="mysql4-upgrade-1.2.4-1.2.5.php" hash="4b0ef14d3e455afea1d966f8f1641d6b"/><file name=".mysql4-install-1.0.0.php.un~" hash="4ac3da846a54fea6461349a73b2a8a0b"/><file name=".mysql4-upgrade-1.2.4-1.2.5.php.un~" hash="38d59b3e5dd699ac95c81d747a1f5dcc"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="pricewaiter.xml" hash="cc51462b56118a611be1a329b308d528"/></dir><dir name="template"><dir name="pricewaiter"><file name="admin_widget.phtml" hash="daae86cfa34fbe5e786715c0c579e398"/><file name="categorytab.phtml" hash="43f8af9feca6775e4a1e8a149a86268e"/></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="pricewaiter.xml" hash="0da284d426574c7ae1f154b096f8b413"/></dir><dir name="template"><dir name="pricewaiter"><file name="widget.phtml" hash="d4e9f431922f843d5911a8b9ec2b814e"/></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="PriceWaiter_NYPWidget.xml" hash="d3b86fa976b99e64df65f9e98d689257"/></dir></target><target name="mageweb"><dir name="js"><dir name="jscolor-pw"><file name="arrow.gif" hash="5034704a76cd55c1cbcbc58ea6bf523f"/><file name="cross.gif" hash="ba9a274b9323753cd95bc3b1eb2f4e5f"/><file name="hs.png" hash="fefa1a03d92ebad25c88dca94a0b63db"/><file name="hv.png" hash="990d71cada17da100653636cf8490884"/><file name="jscolor.js" hash="668050b57cb3ad59d0a56a16fddf1a91"/></dir><dir name="pricewaiter"><file name="product-pages.js" hash="13abcb256a75027c883c247af09392a3"/></dir></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="images"><file name="pricewaiter_logo.png" hash="becb9713a561131ff69eabb7503d3e74"/><file name="pricewaiter_tab.png" hash="1bab71be6b1a93aee2ae7aeae3807484"/></dir><file name="pricewaiter.css" hash="6a58cdaa35d8f61cbb305a6a1a206816"/></dir></dir></dir></target></contents>
19
  <compatible/>
20
  <dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>