diff options
Diffstat (limited to 'StoneIsland/platforms/android/assets/www/js/sdk/cart.js')
| -rwxr-xr-x | StoneIsland/platforms/android/assets/www/js/sdk/cart.js | 248 |
1 files changed, 248 insertions, 0 deletions
diff --git a/StoneIsland/platforms/android/assets/www/js/sdk/cart.js b/StoneIsland/platforms/android/assets/www/js/sdk/cart.js new file mode 100755 index 00000000..3ff2e1d2 --- /dev/null +++ b/StoneIsland/platforms/android/assets/www/js/sdk/cart.js @@ -0,0 +1,248 @@ +sdk.cart = (function(){ + var cart = {} + + cart.id = "" + cart.token = "" + + // https://gist.github.com/fanfare/9a50c524aea417d0bf3e + cart.initialize = function(opt){ + return $.ajax({ + method: "POST", + url: sdk.path("Cart.API/1.6", "carts.json"), + headers: { + "x-yoox-appname": auth.appname, + "x-yoox-device": auth.device, + }, + data: "{}", + // data: opt.data, + success: function(data){ + cart.id = data["CartSession"]["CartId"] + cart.token = data["CartSession"]["CartToken"] + auth.set_cart( cart.id, cart.token ) + opt.success(data) + }, + error: opt.error, + }) + } + + cart.set_user = function(opt){ + return $.ajax({ + method: "PUT", + url: sdk.path("Cart.API/1.6", "carts/" + cart.id + "/user.json"), + headers: { + "x-yoox-appname": auth.appname, + "x-yoox-cart-token": cart.token, + }, + data: JSON.stringify({ + "UserId": auth.user_id, + "UserToken": auth.access_token, + }), + success: function(data){ + opt.success(data) + }, + error: opt.error, + }) + } + + // Code10, Size, Section + cart.add_item = function(opt){ + return $.ajax({ + method: "POST", + url: sdk.path("Cart.API/1.6", "carts/" + cart.id + "/items.json"), + headers: { + "x-yoox-appname": auth.appname, + "x-yoox-cart-token": cart.token, + }, + data: JSON.stringify( opt.data ), + success: function(data){ + // console.log(data) + opt.success(data) + }, + error: opt.error, + }) + } + + cart.delete_item = function(opt){ + return $.ajax({ + method: "DELETE", + url: sdk.path("Cart.API/1.6", "carts/" + cart.id + + "/items/" + opt.data.Code10 + + "/" + opt.data.Size + ".json"), + headers: { + "x-yoox-appname": auth.appname, + "x-yoox-cart-token": cart.token, + }, + data: "{}", + success: function(data){ + // console.log(data) + opt.success(data) + }, + error: opt.error, + }) + } + + cart.get_status = function(opt){ + if (! cart.id) { + return opt.error({ error: "no cart" }) + } + return $.ajax({ + method: "GET", + url: sdk.path("Cart.API/1.6", "carts/" + cart.id + ".json"), + headers: { + "x-yoox-appname": auth.appname, + "x-yoox-cart-token": cart.token, + "x-yoox-device": auth.device, + }, + success: function(data){ + if (data['Error']) { + opt.error && opt.error(data) + } + else { + opt.success(data) + } + }, + error: opt.error, + }) + } + + cart.set_shipping_address = function(opt){ + return $.ajax({ + method: "PUT", + url: sdk.path("Cart.API/1.6", "carts/" + cart.id + "/receiver.json"), + headers: { + "x-yoox-appname": auth.appname, + "x-yoox-cart-token": cart.token, + }, + data: JSON.stringify(opt.data), + success: function(data){ + // console.log(data) + opt.success(data) + }, + error: opt.error, + }) + } + + // NB: Payment type may simply be 1 (credit card) + cart.set_payment_type = function(opt){ + return $.ajax({ + method: "PUT", + url: sdk.path("Cart.API/1.6", "carts/" + cart.id + "/paymentType.json"), + headers: { + "x-yoox-appname": auth.appname, + "x-yoox-cart-token": cart.token, + }, + data: JSON.stringify( opt.data ), + success: function(data){ + // console.log(data) + opt.success(data) + }, + error: opt.error, + }) + } + + cart.get_card_types = function(opt){ + return $.ajax({ + method: "GET", + url: sdk.path("Cart.API/1.6", "cardTypes.json"), + headers: { + "x-yoox-appname": auth.appname, + "x-yoox-cart-token": cart.token, + }, + data: "", + success: function(data){ + opt.success(data) + }, + error: opt.error, + }) + } + + // use with full CC data if not storing it in wallet + cart.set_credit_card = function(opt){ + return $.ajax({ + method: "PUT", + url: sdk.path("Cart.API/1.6", "carts/" + cart.id + "/creditCard.json"), + headers: { + "x-yoox-appname": auth.appname, + "x-yoox-cart-token": cart.token, + }, + data: JSON.stringify( opt.data ), + success: function(data){ + // console.log(data) + opt.success(data) + }, + error: opt.error, + }) + } + + // use with a stored GUID + // NB: if "verification number" is 1, use CVV/CID/CVC security code + // if "verification number" is 2, use "Issue Number" + cart.use_stored_credit_card = function(opt){ + var data = { + "Guid": opt.data.guid, + "UserId": auth.user_id, + "AccessToken": auth.access_token, + } + if (opt.data.cvv) { + data["Cvv"] = opt.data.cvv + } + if (opt.data.issue) { + data["Issue"] = opt.data.issue + } + return $.ajax({ + method: "PUT", + url: sdk.path("Cart.API/1.6", "carts/" + cart.id + "/userCreditCard.json"), + headers: { + "x-yoox-appname": auth.appname, + "x-yoox-cart-token": cart.token, + }, + data: JSON.stringify(data), + success: function(data){ + // console.log(data) + opt.success(data) + }, + error: opt.error, + }) + } + + cart.secure_finalize = function(opt){ + return $.ajax({ + method: "POST", + url: sdk.path("Cart.API/1.6", "carts/" + cart.id + "/secureFinalizer.json"), + headers: { + "x-yoox-appname": auth.appname, + "x-yoox-cart-token": cart.token, + "x-yoox-device": auth.device, + }, + data: JSON.stringify( opt.data || {} ), + success: function(data){ + console.log(data) + // order number is: + // "Info": "2905Y07FA13020" + opt.success(data) + }, + error: opt.error, + }) + } + + cart.finalize = function(opt){ + return $.ajax({ + method: "POST", + url: sdk.path("Cart.API/1.6", "carts/" + cart.id + "/finalizer.json"), + headers: { + "x-yoox-appname": auth.appname, + "x-yoox-cart-token": cart.token, + }, + data: JSON.stringify( opt.data || {} ), + success: function(data){ + console.log(data) + // order number is: + // "Info": "2905Y07FA13020" + opt.success(data) + }, + error: opt.error, + }) + } + + return cart +})()
\ No newline at end of file |
