=== modified file 'uc_product/uc_product.module'
--- uc_product/uc_product.module	2009-06-11 12:43:49 +0000
+++ uc_product/uc_product.module	2009-06-17 21:02:40 +0000
@@ -1018,6 +1018,39 @@
 }
 
 /**
+ * Implementation of hook_uc_price_handler().
+ */
+function uc_product_uc_price_handler() {
+  return array(
+    'alter' => array(
+      'title' => t('Reduced price marker'),
+      'description' => t('Adds a class to the markup that indicates that the price has been reduced.'),
+      'callback' => 'uc_product_price_handler_alter',
+    ),
+  );
+}
+
+/**
+ * Reduced price alter handler.
+ */
+function uc_product_price_handler_alter(&$price, &$context, &$options) {
+  if (isset($context['subject']['node'])) {
+    $node = $context['subject']['node'];
+    if (isset($context['subject']['field'])) {
+      $field = $context['subject']['field'];
+    }
+    else {
+      $field = 'sell_price';
+    }
+    // Set a "reduced price" class if the sell-price is lower than the
+    // list-price.
+    if ($node->list_price > $node->sell_price && ($field == 'sell_price' || $field == 'list_price')) {
+      $context['class'][] = 'reduced';
+    }
+  }
+}
+
+/**
  * Display the status of the product image handlers.
  *
  * @see uc_product_image_defaults()
@@ -1245,7 +1278,10 @@
 
   $context = array(
     'location' => 'product-tapir-table',
+    'class' => array('product'),
   );
+  $options = array('label' => FALSE);
+
   foreach ($args as $nid) {
     $data = array();
     $node = node_load($nid);
@@ -1267,13 +1303,15 @@
 
     $context['subject'] = array('node' => $node);
     if ($enabled['list_price']) {
+      $context['class'][1] = 'list';
       $context['subject']['field'] = 'list_price';
-      $data['list_price'] = array('#value' => uc_price($node->list_price, $context), '#cell_attributes' => array('nowrap' => 'nowrap'));
+      $data['list_price'] = array('#value' => uc_price($node->list_price, $context, $options), '#cell_attributes' => array('nowrap' => 'nowrap'));
     }
     if ($enabled['sell_price']) {
+      $context['class'][1] = 'sell';
       $context['subject']['field'] = 'sell_price';
       $context['class'] = array('sell-price');
-      $data['price'] = array('#value' => uc_price($node->sell_price, $context, array('label' => FALSE)), '#cell_attributes' => array('nowrap' => 'nowrap'));
+      $data['price'] = array('#value' => uc_price($node->sell_price, $context, $options), '#cell_attributes' => array('nowrap' => 'nowrap'));
     }
 
     if (module_exists('uc_cart') && arg(0) != 'admin' && $enabled['add_to_cart']) {

=== modified file 'uc_product/views/uc_product_handler_field_price.inc'
--- uc_product/views/uc_product_handler_field_price.inc	2009-04-18 01:05:58 +0000
+++ uc_product/views/uc_product_handler_field_price.inc	2009-06-17 19:03:39 +0000
@@ -13,18 +13,24 @@
   function render($values) {
     $context = array(
       'location' => 'views-price-handler',
-      'class' => $this->field,
+      'class' => array(
+        'product',
+        $this->field,
+      ),
       'subject' => array(
         'node' => $values,
         'field' => $this->real_field,
       ),
     );
+    $options = array('label' => FALSE);
+
     $table_alias_len = strlen($this->table_alias);
     foreach ($values as $key => $value) {
       if (substr($key, 0, $table_alias_len) == $this->table_alias) {
         $values->{substr($key, $table_alias_len + 1)} = $value;
       }
     }
-    return uc_price($values->{$this->field_alias}, $context);
+
+    return uc_price($values->{$this->field_alias}, $context, $options);
   }
 }

