[wellwell-devel] [wellwell] Allow multiple items to be added in [cart-refresh].
Stefan Hornburg
wellwell-devel at rt.icdevgroup.org
Wed Jun 30 13:17:56 UTC 2010
commit 04123598bd50ed5837539e33bf4040e1e90e948c
Author: Stefan Hornburg (Racke) <racke at linuxia.de>
Date: Wed Jun 30 15:15:58 2010 +0200
Allow multiple items to be added in [cart-refresh].
lib/WellWell/Cart.pm | 41 +++++++++++++++++++++++++++++++++--------
1 files changed, 33 insertions(+), 8 deletions(-)
---
diff --git a/lib/WellWell/Cart.pm b/lib/WellWell/Cart.pm
index c08d855..0410987 100644
--- a/lib/WellWell/Cart.pm
+++ b/lib/WellWell/Cart.pm
@@ -122,29 +122,54 @@ sub cart_add {
}
sub cart_refresh {
- my ($cart, $new_cart, $quantity, $itemref, $modifiers);
+ my ($cart, $new_cart, $quantity, $itemref, $sku, $modifiers);
$cart = $Vend::Items;
$new_cart = [];
if ($CGI::values{mv_order_item}) {
- $modifiers = {};
+ my (@oi, $sku);
+
+ @oi = @{$CGI::values_array{mv_order_item}};
+
+ if (@oi == 1) {
+ # Adding single item from product order link/button
+
+ $sku = $oi[0];
+ $modifiers = {};
- if (ref($Vend::Cfg->{UseModifier}) eq 'ARRAY') {
- for (@{$Vend::Cfg->{UseModifier}}) {
- if (exists $CGI::values{"mv_order_$_"}) {
- $modifiers->{$_} = $CGI::values{"mv_order_$_"};
+ if (ref($Vend::Cfg->{UseModifier}) eq 'ARRAY') {
+ for (@{$Vend::Cfg->{UseModifier}}) {
+ if (exists $CGI::values{"mv_order_$_"}) {
+ $modifiers->{$_} = $CGI::values{"mv_order_$_"};
+ }
}
}
- }
- return cart_add($CGI::values{mv_order_item},
+ return cart_add($sku,
$CGI::values{mv_order_quantity} || 1,
$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];
+
+ next unless $CGI::values_array{mv_order_quantity}->[$i];
+
+ cart_add($sku,
+ $CGI::values_array{mv_order_quantity}->[$i] || 1,
+ $modifiers);
+ }
+
+ return;
+ }
}
return 1 unless defined $CGI::values{"quantity0"};
+ # Refreshing cart
foreach my $i (0 .. $#$cart) {
my $modref = {};
More information about the wellwell-devel
mailing list