diff -urpN sites/all/modules/ecommerce/ec_buynow/ec_buynow.module sites/all/modules/ecommerce_new/ec_buynow/ec_buynow.module
--- sites/all/modules/ecommerce/ec_buynow/ec_buynow.module	2009-01-05 06:17:48.000000000 +0700
+++ sites/all/modules/ecommerce_new/ec_buynow/ec_buynow.module	2009-01-11 22:38:40.484375000 +0700
@@ -123,3 +123,28 @@ function ec_buynow_checkout_init() {
   return $txn;
 }
 
+/**
+ * Implementation of hook_views_api().
+ */
+function ec_buynow_views_api() {
+  return array(
+    'api' => '2.0',
+  );
+}
+
+/**
+ * Implementation of hook_views_handlers().
+ */
+function ec_buynow_views_handlers() {
+  return array(
+    'info' => array(
+      'path' => drupal_get_path('module', 'ec_buynow') . '/handlers',
+    ),
+    'handlers' => array(
+      'views_handler_field_buynow' => array(
+        'parent' => 'views_handler_field',
+        'file' => 'views_handler_field_buynow.inc',
+      ),
+    ),
+  );
+}
\ No newline at end of file
diff -urpN sites/all/modules/ecommerce/ec_buynow/ec_buynow.views.inc sites/all/modules/ecommerce_new/ec_buynow/ec_buynow.views.inc
--- sites/all/modules/ecommerce/ec_buynow/ec_buynow.views.inc	1970-01-01 07:00:00.000000000 +0700
+++ sites/all/modules/ecommerce_new/ec_buynow/ec_buynow.views.inc	2009-01-11 22:55:30.500000000 +0700
@@ -0,0 +1,21 @@
+<?php
+// $Id$
+
+/**
+ * Implementation of hook_views_data().
+ */
+function ec_buynow_views_data() {
+  // Define the base group of this table. Fields that don't
+  // have a group defined will go into this field by default.
+  
+  $data['ec_product']['hide_buynow_link'] = array(
+    'title' => t('Buy now link'),
+	'help' => t('Provide a buy now link, if the node has not hidden the link'),
+    'field' => array(
+      'help' => t('Provide a simple link to buy the product.'),
+      'handler' => 'views_handler_field_buynow',
+    ),
+  );
+  
+  return $data;
+}
\ No newline at end of file
diff -urpN sites/all/modules/ecommerce/ec_buynow/handlers/views_handler_field_buynow.inc sites/all/modules/ecommerce_new/ec_buynow/handlers/views_handler_field_buynow.inc
--- sites/all/modules/ecommerce/ec_buynow/handlers/views_handler_field_buynow.inc	1970-01-01 07:00:00.000000000 +0700
+++ sites/all/modules/ecommerce_new/ec_buynow/handlers/views_handler_field_buynow.inc	2009-01-11 23:02:56.031250000 +0700
@@ -0,0 +1,35 @@
+<?php
+// $Id$
+
+/**
+ * Field handler to present a link node edit.
+ */
+class views_handler_field_buynow extends views_handler_field {
+  function construct() {
+    parent::construct();
+  }
+  
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+    $form['text'] = array(
+      '#type' => 'textfield',
+      '#title' => t('Text to display'),
+      '#default_value' => $this->options['text'],
+    );
+  }
+
+  function render($values) {
+    // ensure buy now link should be shown.
+    // $hide_buynow = $values->{$this->aliases['ec_product_hide_buynow_link']};
+	$hide_buynow = $values->ec_product_hide_buynow_link;
+    $nid = $values->nid;
+    
+	if ($hide_buynow) {
+	  return '';
+	}
+	
+    $text = !empty($this->options['text']) ? $this->options['text'] : t('buy now');
+	
+	return l($text, 'node/'. $nid .'/checkout', array('query' => drupal_get_destination()));
+  }
+}
diff -urpN sites/all/modules/ecommerce/ec_product/ec_product.module sites/all/modules/ecommerce_new/ec_product/ec_product.module
--- sites/all/modules/ecommerce/ec_product/ec_product.module	2008-12-18 13:09:09.000000000 +0700
+++ sites/all/modules/ecommerce_new/ec_product/ec_product.module	2009-01-11 20:35:32.078125000 +0700
@@ -1529,3 +1529,28 @@ function ec_product_checkout_info() {
   );
 }
 
+/**
+ * Implementation of hook_views_api().
+ */
+function ec_product_views_api() {
+  return array(
+    'api' => '2.0',
+  );
+}
+
+/**
+ * Implementation of hook_views_handlers().
+ */
+function ec_product_views_handlers() {
+  return array(
+    'info' => array(
+      'path' => drupal_get_path('module', 'ec_product') . '/handlers',
+    ),
+    'handlers' => array(
+      'views_handler_field_price' => array(
+        'parent' => 'views_handler_field',
+        'file' => 'views_handler_field_price.inc',
+      ),
+    ),
+  );
+}
\ No newline at end of file
diff -urpN sites/all/modules/ecommerce/ec_product/ec_product.views.inc sites/all/modules/ecommerce_new/ec_product/ec_product.views.inc
--- sites/all/modules/ecommerce/ec_product/ec_product.views.inc	1970-01-01 07:00:00.000000000 +0700
+++ sites/all/modules/ecommerce_new/ec_product/ec_product.views.inc	2009-01-11 21:01:52.781250000 +0700
@@ -0,0 +1,102 @@
+<?php
+/**
+ * @file
+ * Expose product information to Views.
+ */
+
+
+/**
+ * Implementation of hook_views_data().
+ */
+function ec_product_views_data() {
+  $data['ec_product']['table']['group'] = t('EC Product');
+  
+  $data['ec_product']['table']['base'] = array(
+    'field' => 'nid',
+    'title' => t('Node'),
+    'help' => t("Product information for nodes."),
+  );
+  
+  // joins
+  $data['ec_product']['table']['join'] = array(
+    //...to the node table
+    'node' => array(
+      'left_field' => 'nid',
+      'field' => 'nid',
+    ),
+  );
+
+  $data['ec_product']['ptype'] = array(
+    'title' => t('Product type'),
+    'help' => t('The product type of the product.'), // The help that appears on the UI,
+    // Information for displaying the product type
+    'field' => array(
+      'handler' => 'views_handler_field',
+      'click sortable' => TRUE,
+    ),
+    // Information for accepting a product type as an argument
+    'argument' => array(
+      'handler' => 'views_handler_argument_string',
+      'name field' => 'type', // the field to display in the summary.
+      'numeric' => FALSE,
+    ),
+    // Information for accepting a product type as a filter
+    'filter' => array(
+      'handler' => 'views_handler_filter_string',
+    ),
+    // Information for sorting on a nid.
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+  );
+
+  $data['ec_product']['sku'] = array(
+    'title' => t('Product SKU'),
+    'help' => t('The SKU or unique product id of the product.'), // The help that appears on the UI,
+    // Information for displaying the product SKU
+    'field' => array(
+      'handler' => 'views_handler_field',
+      'click sortable' => TRUE,
+    ),
+    // Information for accepting a product SKU as an argument
+    'argument' => array(
+      'handler' => 'views_handler_argument_string',
+      'name field' => 'type', // the field to display in the summary.
+      'numeric' => FALSE,
+    ),
+    // Information for accepting a product SKU as a filter
+    'filter' => array(
+      'handler' => 'views_handler_filter_string',
+    ),
+    // Information for sorting on a nid.
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+  );
+
+  $data['ec_product']['price'] = array(
+    'title' => t('Product price'),
+    'help' => t('The price of the product.'), // The help that appears on the UI,
+    // Information for displaying the product price
+    'field' => array(
+      'handler' => 'views_handler_field_price',
+      'click sortable' => TRUE,
+    ),
+    // Information for accepting a product price as an argument
+    'argument' => array(
+      'handler' => 'views_handler_argument_string',
+      'name field' => 'type', // the field to display in the summary.
+      'numeric' => FALSE,
+    ),
+    // Information for accepting a product price as a filter
+    'filter' => array(
+      'handler' => 'views_handler_filter_string',
+    ),
+    // Information for sorting on a nid.
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+  );
+
+  return $data;
+}
\ No newline at end of file
diff -urpN sites/all/modules/ecommerce/ec_product/handlers/views_handler_field_price.inc sites/all/modules/ecommerce_new/ec_product/handlers/views_handler_field_price.inc
--- sites/all/modules/ecommerce/ec_product/handlers/views_handler_field_price.inc	1970-01-01 07:00:00.000000000 +0700
+++ sites/all/modules/ecommerce_new/ec_product/handlers/views_handler_field_price.inc	2009-01-11 23:02:17.625000000 +0700
@@ -0,0 +1,33 @@
+<?php
+// $Id$
+
+class views_handler_field_price extends views_handler_field {
+  function construct() {
+    parent::construct();
+  }
+
+  /**
+   * Provide formatter option.
+   */
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+
+    $form['currency'] = array(
+      '#title' => t('Currency Symbol'),
+      '#type' => 'textfield',
+      '#default_value' => variable_get('payment_symbol', '$'),
+      '#weight' => 2,
+	  '#size' => 10,
+    );
+  }
+
+  function options_validate($form, &$form_state) { }
+
+  function render($values) {
+    $currency = $this->options['currency'];
+	//$price = $values->{$this->aliases['ec_product_price']};
+	$price = $values->ec_product_price;
+	//print_r($this->aliases);
+    return $currency . $price;
+  }
+}
\ No newline at end of file
