diff options
Diffstat (limited to 'StoneIsland/www/js/lib/cart/CartConfirm.js')
| -rw-r--r-- | StoneIsland/www/js/lib/cart/CartConfirm.js | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/StoneIsland/www/js/lib/cart/CartConfirm.js b/StoneIsland/www/js/lib/cart/CartConfirm.js index 171f41a1..8e841138 100644 --- a/StoneIsland/www/js/lib/cart/CartConfirm.js +++ b/StoneIsland/www/js/lib/cart/CartConfirm.js @@ -127,9 +127,47 @@ var CartConfirm = FormView.extend({ }, save: function(){ + promise(sdk.cart.finalize, {}).then(function(){ + app.router.go('cart/thanks') + }.bind(this)).error(function(data){ + // {"Header":{"StatusCode":403,"Description":"403 Forbidden"},"Error":{"Description":"GenericApiError:CartAlreadyClosed"}} + // {"Header":{"StatusCode":409,"Description":"304 NotModified"},"Error":{"Description":"FinalizationError:\\"Item has been removed from cart because it is no longer available.\\"\\n235"}}' + // {"Header":{"StatusCode":409,"Description":"304 NotModified"},"Error":{"Description":"FinalizationError:\"The cart cannot be empty.\"\n233"}} + // {"Header":{"StatusCode":409,"Description":"304 NotModified"},"Error":{"Description":"FinalizationError:\"The reciever validation fails."}} + // {"Header":{"StatusCode":440,"Description":"304 NotModified"},"Error":{"Description":"GenericApiError:CartFinalizationNotYetCompleted"}} + // {"Header":{"StatusCode":441,"Description":"304 NotModified"},"Error":{"Description":"GenericApiError:EmptyCreditCard"}} + switch (data.StatusCode) { + case 403: // cart already closed + // reset cart + break + case 409: // finalization error + this.finalization_error(data) + break + case 440: // genericapierror (credit card error!) + case 441: // genericapierror (credit card cleared) + app.router.go('cart/payment') + app.cart.payment.show_errors(["Number","There was a problem with your credit card."]) + break + } + }.bind(this)) + }, + + finalization_error: function(data){ + if (data['Error']['Description'].match(/receiver validation fails/)) { + app.router.go('cart/shipping') + app.cart.payment.show_errors(["Number","There was a problem with your credit card."]) + } + else if (data['Error']['Description'].match(/cart cannot be empty/)) { + app.router.go('cart/summary') + } + else if (data['Error']['Description'].match(/Item has been removed/)) { + app.router.go('cart/thanks') + app.cart.thanks.show_error("We're sorry, but one or more items was out of stock. Please check your cart and try again.") + } }, cancel: function(){ + app.router.go('cart/payment') }, })
\ No newline at end of file |
