sdk.cart = (function(){ var cart = {} cart.id = "" cart.token = "" // https://gist.github.com/fanfare/9a50c524aea417d0bf3e cart.initialize = function(opt){ $.ajax({ method: "POST", url: sdk.path("Cart.API/1.6", "carts.json"), headers: { "x-yoox-appname": auth.appname, "x-yoox-device": auth.device, }, data: opt.data, success: function(data){ console.log(data) cart.id = data["CartSession"]["CartId"] cart.token = data["CartSession"]["CartToken"] opt.success(data) }, error: opt.error, }) } cart.set_user = function(opt){ $.ajax({ method: "PUT", url: sdk.path("Cart.API/1.6", "carts.json"), headers: { "x-yoox-appname": auth.appname, "x-yoox-cart-token": cart.token, }, data: { "UserId": auth.user_id, "UserToken": auth.access_token, }, success: function(data){ console.log(data) opt.success(data) }, error: opt.error, }) } // Code10, Size, Section cart.add_item = function(opt){ $.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: opt.data, success: function(data){ console.log(data) opt.success(data) }, error: opt.error, }) } cart.delete_item = function(opt){ $.ajax({ method: "DELETE", url: sdk.path("Cart.API/1.6", "carts/" + cart.id + "/items/" + opt.code10 + "/" + opt.size + ".json"), headers: { "x-yoox-appname": auth.appname, "x-yoox-cart-token": cart.token, }, success: function(data){ console.log(data) opt.success(data) }, error: opt.error, }) } cart.get_status = function(opt){ $.ajax({ method: "GET", url: sdk.path("Cart.API/1.6", "carts/" + cart.id), headers: { "x-yoox-appname": auth.appname, "x-yoox-cart-token": cart.token, "x-yoox-device": auth.device, }, data: { "UserId": auth.user_id, "UserToken": auth.access_token, }, success: function(data){ console.log(data) opt.success(data) }, error: opt.error, }) } // NOTE: data might be wrapped in a Receiver object cart.set_shipping_address = function(opt){ $.ajax({ method: "PUT", url: sdk.path("Cart.API/1.6", "receiver.json"), headers: { "x-yoox-appname": auth.appname, "x-yoox-cart-token": cart.token, }, data: 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){ $.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: opt.data, success: function(data){ console.log(data) opt.success(data) }, error: opt.error, }) } // use with full CC data if not storing it in wallet cart.set_credit_card = function(opt){ $.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: 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){ $.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: { // NB may be wrapped in UserCreditCard object "Guid": opt.guid, "UserId": auth.user_id, "AccessToken": auth.access_token, "Cvv": opt.cvv, "Issue": opt.issue, }, success: function(data){ console.log(data) opt.success(data) }, error: opt.error, }) } cart.finalize = function(opt){ $.ajax({ method: "PUT", 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: opt.data, success: function(data){ console.log(data) // order number is: // "Info": "2905Y07FA13020" opt.success(data) }, error: opt.error, }) } return cart })()