[wellwell-devel] [wellwell] Prevent error signaled by cart hook from leaking into subsequent cart actions.

Stefan Hornburg wellwell-devel at rt.icdevgroup.org
Tue Jul 6 08:51:24 UTC 2010


commit eac37f2004140bd2e0448cddcf9156271aac69cf
Author: Stefan Hornburg (Racke) <racke at linuxia.de>
Date:   Tue Jul 6 10:49:31 2010 +0200

    Prevent error signaled by cart hook from leaking into subsequent cart actions.

 lib/WellWell/Cart.pm |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)
---
diff --git a/lib/WellWell/Cart.pm b/lib/WellWell/Cart.pm
index 862b4c4..804b7f6 100644
--- a/lib/WellWell/Cart.pm
+++ b/lib/WellWell/Cart.pm
@@ -93,6 +93,9 @@ sub cart_add {
 			::logError('Adding item %s was denied: %s', $sku, $itemref->{error});
 		}
 		Vend::Tags->error({name => $sku, set => $itemref->{error}, overwrite => 1});
+
+		# prevent error from leaking into subsequent cart actions
+		delete $itemref->{error};
 		return;
 	}
 
@@ -191,6 +194,9 @@ sub cart_refresh {
 							::logError('Removal of item %s was denied: %s', $itemref->{code}, $itemref->{error});
 						}
 						Vend::Tags->error({name => $itemref->{code}, set => $itemref->{error}, overwrite => 1});
+						# prevent error from leaking into subsequent cart actions
+						delete $itemref->{error};
+						
 						$quantity = $itemref->{quantity};
 					}
 					else {
@@ -221,6 +227,9 @@ sub cart_refresh {
 				}
 				Vend::Tags->error({name => $itemref->{code}, set => $itemref->{error}, overwrite => 1});
 				%$modref = ();
+				
+				# prevent error from leaking into subsequent cart actions
+				delete $itemref->{error};
 			}
 			
 			for (keys %$modref) {



More information about the wellwell-devel mailing list