diff --git a/uc_price_per_role.module b/uc_price_per_role.module
index 07c8f66..34777ab 100644
--- a/uc_price_per_role.module
+++ b/uc_price_per_role.module
@@ -357,24 +357,21 @@ function uc_price_per_role_node_revision_delete($node) {
 }
 
 /**
- * Implements hook_uc_cart_item().
+ * Implements hook_uc_product_alter()
  */
-function uc_price_per_role_uc_cart_item($op, $item) {
-  if (module_exists('uc_attribute')) {
-    switch ($op) {
-      case 'load':
-        $role_prices = uc_price_per_role_load_option_prices($item->nid);
-        foreach (_uc_cart_product_get_options($item) as $option) {
-          $oid = $option['oid'];
-          if (isset($role_prices[$oid])) {
-            $price = uc_price_per_role_find_price($role_prices[$oid]);
-            if ($price !== FALSE) {
-              $item->price += $price - $option['price'];
-            }
-          }
-        }
-    }
-  }
+function uc_price_per_role_uc_product_alter(&$node){
+	if(module_exists('uc_attribute')) {
+		$role_prices = uc_price_per_role_load_option_prices($node->nid);
+		foreach (_uc_cart_product_get_options($node) as $option) {
+			$oid = $option['oid'];
+			if (isset($role_prices[$oid])) {
+				$price = uc_price_per_role_find_price($role_prices[$oid]);
+				if ($price !== FALSE) {
+					$node->price += $price - $option['price'];
+				}
+			}
+		}
+	}
 }
 
 /**
