result = dispatcher.runSync("loadCartFromOrder", UtilMisc.toMap("orderId", subscription.get("orderId"), "userLogin", userLogin));
ShoppingCart cart = (ShoppingCart) result.get("shoppingCart");
// only keep the orderitem with the related product.
List cartItems = cart.items();
Iterator ci = cartItems.iterator();
while (ci.hasNext()) {
ShoppingCartItem shoppingCartItem = (ShoppingCartItem) ci.next();
if (!subscription.get("productId").equals(shoppingCartItem.getProductId())) {
cart.removeCartItem(shoppingCartItem, dispatcher);