[wellwell-devel] [wellwell] Apply fixes for multiple carts to WellWell::Cart.

Stefan Hornburg wellwell-devel at rt.icdevgroup.org
Fri Dec 16 11:16:46 UTC 2011


commit 1a02531dde0afd806c621a8ee306292ba4efd105
Author: Stefan Hornburg (Racke) <racke at linuxia.de>
Date:   Fri Dec 16 12:17:12 2011 +0100

    Apply fixes for multiple carts to WellWell::Cart.

 lib/WellWell/Cart.pm |   26 ++++++++++++--------------
 1 files changed, 12 insertions(+), 14 deletions(-)
---
diff --git a/lib/WellWell/Cart.pm b/lib/WellWell/Cart.pm
index a4fff32..fc0bf0f 100644
--- a/lib/WellWell/Cart.pm
+++ b/lib/WellWell/Cart.pm
@@ -191,10 +191,9 @@ sub cart_refresh {
 	$new_cart = [];
 
 	if ($CGI::values{mv_order_item}) {
-		my (@oi, $sku);
-
-		@oi = @{$CGI::values_array{mv_order_item}};
+		my (@oi, @qi, $sku);
 
+		@oi = @{$CGI::values_array{mv_order_item} || [split(/\0/, $CGI::values{mv_order_item})]};
 		if (@oi == 1) {
 			# Adding single item from product order link/button
 
@@ -211,21 +210,20 @@ sub cart_refresh {
 
 			return cart_add($sku,
 				 $CGI::values{mv_order_quantity} || 1,
-							CART_DEFAULT,
+				 $cart_name,
 				 $modifiers);
 
 		}
 		else {
 			# Adding multiple items from result lists
-			for (my $i = 0; $i < @{$CGI::values_array{mv_order_item}}; $i++) {
-				$sku = $CGI::values_array{mv_order_item}->[$i];
+			@qi = @{$CGI::values_array{mv_order_quantity} || [split(/\0/, $CGI::values{mv_order_quantity})]};
+
+			for (my $i = 0; $i < @oi; $i++) {
+				$sku = $oi[$i];
 
-				next unless $CGI::values_array{mv_order_quantity}->[$i];
+				next unless $qi[$i];
 
-				cart_add($sku,
-						 $CGI::values_array{mv_order_quantity}->[$i] || 1,
-						 CART_DEFAULT,
-						 $modifiers);
+				cart_add($sku, $qi[$i], $cart_name, $modifiers);
 			}
 	
 			return;
@@ -248,7 +246,7 @@ sub cart_refresh {
 		if (defined $quantity) {
 			if ($quantity =~ /^(\d+)$/ && $quantity != $itemref->{quantity}) {
 				if ($quantity == 0) {
-					WellWell::Core::hooks('run', 'cart', 'delete', CART_DEFAULT, $itemref);
+					WellWell::Core::hooks('run', 'cart', 'delete', $cart_name, $itemref);
 
 					if ($itemref->{error}) {
 						if ($itemref->{log_error}) {
@@ -280,7 +278,7 @@ sub cart_refresh {
 		}
 
 		if (keys %$modref) {
-		    WellWell::Core::hooks('run', 'cart', 'modify', CART_DEFAULT, $itemref, $modref);
+		    WellWell::Core::hooks('run', 'cart', 'modify', $cart_name, $itemref, $modref);
 
 			if ($itemref->{error}) {
 				if ($itemref->{log_error}) {
@@ -306,7 +304,7 @@ sub cart_refresh {
 
 sub cart_refresh_form_action {
 	# let [cart-refresh] deal with that
-	cart_refresh();
+	cart_refresh($CGI::values{mv_cartname});
 	
 	if ($CGI::values{mv_nextpage} eq $Vend::Cfg->{ProcessPage}) {
 		# skip virtual pages for determing shopping cart page



More information about the wellwell-devel mailing list