| Requires any of the roles: | Admin, TeamAdmin, MobileApp | Required permission: | Tickets.Add |
| POST | /Webshop/Order/Purchase |
|---|
import 'package:servicestack/servicestack.dart';
class LocalizedMessage implements IConvertible
{
String? Is;
String? en;
LocalizedMessage({this.Is,this.en});
LocalizedMessage.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Is = json['is'];
en = json['en'];
return this;
}
Map<String, dynamic> toJson() => {
'is': Is,
'en': en
};
getTypeName() => "LocalizedMessage";
TypeContext? context = _ctx;
}
class WebshopOrderLineSummary implements IConvertible
{
int? id;
int? productId;
int? variantId;
String? productName;
String? size;
String? color;
int? unitPriceMinor;
int? quantity;
int? lineTotalMinor;
String? status;
int? payoutInfoId;
String? payoutTag;
WebshopOrderLineSummary({this.id,this.productId,this.variantId,this.productName,this.size,this.color,this.unitPriceMinor,this.quantity,this.lineTotalMinor,this.status,this.payoutInfoId,this.payoutTag});
WebshopOrderLineSummary.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
id = json['id'];
productId = json['productId'];
variantId = json['variantId'];
productName = json['productName'];
size = json['size'];
color = json['color'];
unitPriceMinor = json['unitPriceMinor'];
quantity = json['quantity'];
lineTotalMinor = json['lineTotalMinor'];
status = json['status'];
payoutInfoId = json['payoutInfoId'];
payoutTag = json['payoutTag'];
return this;
}
Map<String, dynamic> toJson() => {
'id': id,
'productId': productId,
'variantId': variantId,
'productName': productName,
'size': size,
'color': color,
'unitPriceMinor': unitPriceMinor,
'quantity': quantity,
'lineTotalMinor': lineTotalMinor,
'status': status,
'payoutInfoId': payoutInfoId,
'payoutTag': payoutTag
};
getTypeName() => "WebshopOrderLineSummary";
TypeContext? context = _ctx;
}
class WebshopOrderSummary implements IConvertible
{
int? id;
String? orderReference;
int? ownerId;
String? status;
int? totalMinor;
int? deliveryFeeMinor;
int? totalDiscountMinor;
String? currency;
String? buyerName;
String? buyerEmail;
String? buyerPhone;
String? address;
String? city;
String? zipCode;
String? country;
String? deliveryType;
String? droppOrderId;
String? droppLocationId;
bool? needsDeliveryAttention;
String? paymentMethodId;
String? paymentId;
String? paymentReference;
String? discountCode;
int? giftPaidMinor;
DateTime? createdAt;
DateTime? updatedAt;
List<WebshopOrderLineSummary>? lines;
WebshopOrderSummary({this.id,this.orderReference,this.ownerId,this.status,this.totalMinor,this.deliveryFeeMinor,this.totalDiscountMinor,this.currency,this.buyerName,this.buyerEmail,this.buyerPhone,this.address,this.city,this.zipCode,this.country,this.deliveryType,this.droppOrderId,this.droppLocationId,this.needsDeliveryAttention,this.paymentMethodId,this.paymentId,this.paymentReference,this.discountCode,this.giftPaidMinor,this.createdAt,this.updatedAt,this.lines});
WebshopOrderSummary.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
id = json['id'];
orderReference = json['orderReference'];
ownerId = json['ownerId'];
status = json['status'];
totalMinor = json['totalMinor'];
deliveryFeeMinor = json['deliveryFeeMinor'];
totalDiscountMinor = json['totalDiscountMinor'];
currency = json['currency'];
buyerName = json['buyerName'];
buyerEmail = json['buyerEmail'];
buyerPhone = json['buyerPhone'];
address = json['address'];
city = json['city'];
zipCode = json['zipCode'];
country = json['country'];
deliveryType = json['deliveryType'];
droppOrderId = json['droppOrderId'];
droppLocationId = json['droppLocationId'];
needsDeliveryAttention = json['needsDeliveryAttention'];
paymentMethodId = json['paymentMethodId'];
paymentId = json['paymentId'];
paymentReference = json['paymentReference'];
discountCode = json['discountCode'];
giftPaidMinor = json['giftPaidMinor'];
createdAt = JsonConverters.fromJson(json['createdAt'],'DateTime',context!);
updatedAt = JsonConverters.fromJson(json['updatedAt'],'DateTime',context!);
lines = JsonConverters.fromJson(json['lines'],'List<WebshopOrderLineSummary>',context!);
return this;
}
Map<String, dynamic> toJson() => {
'id': id,
'orderReference': orderReference,
'ownerId': ownerId,
'status': status,
'totalMinor': totalMinor,
'deliveryFeeMinor': deliveryFeeMinor,
'totalDiscountMinor': totalDiscountMinor,
'currency': currency,
'buyerName': buyerName,
'buyerEmail': buyerEmail,
'buyerPhone': buyerPhone,
'address': address,
'city': city,
'zipCode': zipCode,
'country': country,
'deliveryType': deliveryType,
'droppOrderId': droppOrderId,
'droppLocationId': droppLocationId,
'needsDeliveryAttention': needsDeliveryAttention,
'paymentMethodId': paymentMethodId,
'paymentId': paymentId,
'paymentReference': paymentReference,
'discountCode': discountCode,
'giftPaidMinor': giftPaidMinor,
'createdAt': JsonConverters.toJson(createdAt,'DateTime',context!),
'updatedAt': JsonConverters.toJson(updatedAt,'DateTime',context!),
'lines': JsonConverters.toJson(lines,'List<WebshopOrderLineSummary>',context!)
};
getTypeName() => "WebshopOrderSummary";
TypeContext? context = _ctx;
}
class WebshopOrderResult implements IConvertible
{
bool? success;
String? reason;
LocalizedMessage? message;
String? orderReference;
WebshopOrderSummary? order;
int? statusCode;
WebshopOrderResult({this.success,this.reason,this.message,this.orderReference,this.order,this.statusCode});
WebshopOrderResult.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
success = json['success'];
reason = json['reason'];
message = JsonConverters.fromJson(json['message'],'LocalizedMessage',context!);
orderReference = json['orderReference'];
order = JsonConverters.fromJson(json['order'],'WebshopOrderSummary',context!);
statusCode = json['statusCode'];
return this;
}
Map<String, dynamic> toJson() => {
'success': success,
'reason': reason,
'message': JsonConverters.toJson(message,'LocalizedMessage',context!),
'orderReference': orderReference,
'order': JsonConverters.toJson(order,'WebshopOrderSummary',context!),
'statusCode': statusCode
};
getTypeName() => "WebshopOrderResult";
TypeContext? context = _ctx;
}
class WebshopPurchaseLine implements IConvertible
{
int? variantId;
int? quantity;
WebshopPurchaseLine({this.variantId,this.quantity});
WebshopPurchaseLine.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
variantId = json['variantId'];
quantity = json['quantity'];
return this;
}
Map<String, dynamic> toJson() => {
'variantId': variantId,
'quantity': quantity
};
getTypeName() => "WebshopPurchaseLine";
TypeContext? context = _ctx;
}
class OrderTender implements IConvertible
{
String? kind;
String? code;
int? amountMinor;
String? idempotencyKey;
int? holdId;
int? appliedMinor;
OrderTender({this.kind,this.code,this.amountMinor,this.idempotencyKey,this.holdId,this.appliedMinor});
OrderTender.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
kind = json['kind'];
code = json['code'];
amountMinor = json['amountMinor'];
idempotencyKey = json['idempotencyKey'];
holdId = json['holdId'];
appliedMinor = json['appliedMinor'];
return this;
}
Map<String, dynamic> toJson() => {
'kind': kind,
'code': code,
'amountMinor': amountMinor,
'idempotencyKey': idempotencyKey,
'holdId': holdId,
'appliedMinor': appliedMinor
};
getTypeName() => "OrderTender";
TypeContext? context = _ctx;
}
class PaymentMethodCreditCardInfo implements IConvertible
{
String? paymentType;
String? token;
String? pan;
String? expYear;
String? expMonth;
String? cvc;
PaymentMethodCreditCardInfo({this.paymentType,this.token,this.pan,this.expYear,this.expMonth,this.cvc});
PaymentMethodCreditCardInfo.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
paymentType = json['paymentType'];
token = json['token'];
pan = json['pan'];
expYear = json['expYear'];
expMonth = json['expMonth'];
cvc = json['cvc'];
return this;
}
Map<String, dynamic> toJson() => {
'paymentType': paymentType,
'token': token,
'pan': pan,
'expYear': expYear,
'expMonth': expMonth,
'cvc': cvc
};
getTypeName() => "PaymentMethodCreditCardInfo";
TypeContext? context = _ctx;
}
class PaymentRequestCreditCard implements IConvertible
{
PaymentMethodCreditCardInfo? paymentMethod;
double? amount;
String? currency;
String? orderId;
DateTime? transActionDate;
bool? saveCardToToken;
PaymentRequestCreditCard({this.paymentMethod,this.amount,this.currency,this.orderId,this.transActionDate,this.saveCardToToken});
PaymentRequestCreditCard.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
paymentMethod = JsonConverters.fromJson(json['paymentMethod'],'PaymentMethodCreditCardInfo',context!);
amount = JsonConverters.toDouble(json['amount']);
currency = json['currency'];
orderId = json['orderId'];
transActionDate = JsonConverters.fromJson(json['transActionDate'],'DateTime',context!);
saveCardToToken = json['saveCardToToken'];
return this;
}
Map<String, dynamic> toJson() => {
'paymentMethod': JsonConverters.toJson(paymentMethod,'PaymentMethodCreditCardInfo',context!),
'amount': amount,
'currency': currency,
'orderId': orderId,
'transActionDate': JsonConverters.toJson(transActionDate,'DateTime',context!),
'saveCardToToken': saveCardToToken
};
getTypeName() => "PaymentRequestCreditCard";
TypeContext? context = _ctx;
}
class Borgun3DFinalPaymentMethodInfo implements IConvertible
{
String? paymentType;
String? token;
String? virtualNumber;
String? expYear;
String? expMonth;
String? panLastFour;
Borgun3DFinalPaymentMethodInfo({this.paymentType,this.token,this.virtualNumber,this.expYear,this.expMonth,this.panLastFour});
Borgun3DFinalPaymentMethodInfo.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
paymentType = json['paymentType'];
token = json['token'];
virtualNumber = json['virtualNumber'];
expYear = json['expYear'];
expMonth = json['expMonth'];
panLastFour = json['panLastFour'];
return this;
}
Map<String, dynamic> toJson() => {
'paymentType': paymentType,
'token': token,
'virtualNumber': virtualNumber,
'expYear': expYear,
'expMonth': expMonth,
'panLastFour': panLastFour
};
getTypeName() => "Borgun3DFinalPaymentMethodInfo";
TypeContext? context = _ctx;
}
class Borgun3DFinal3DSecureInfo implements IConvertible
{
String? dataType;
String? mpiToken;
Borgun3DFinal3DSecureInfo({this.dataType,this.mpiToken});
Borgun3DFinal3DSecureInfo.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
dataType = json['dataType'];
mpiToken = json['mpiToken'];
return this;
}
Map<String, dynamic> toJson() => {
'dataType': dataType,
'mpiToken': mpiToken
};
getTypeName() => "Borgun3DFinal3DSecureInfo";
TypeContext? context = _ctx;
}
class Borgun3DFinalRequest implements IConvertible
{
String? transactionType;
int? amount;
String? currency;
DateTime? transactionDate;
String? orderId;
Borgun3DFinalPaymentMethodInfo? paymentMethod;
Borgun3DFinal3DSecureInfo? threeDSecure;
Borgun3DFinalRequest({this.transactionType,this.amount,this.currency,this.transactionDate,this.orderId,this.paymentMethod,this.threeDSecure});
Borgun3DFinalRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
transactionType = json['transactionType'];
amount = json['amount'];
currency = json['currency'];
transactionDate = JsonConverters.fromJson(json['transactionDate'],'DateTime',context!);
orderId = json['orderId'];
paymentMethod = JsonConverters.fromJson(json['paymentMethod'],'Borgun3DFinalPaymentMethodInfo',context!);
threeDSecure = JsonConverters.fromJson(json['threeDSecure'],'Borgun3DFinal3DSecureInfo',context!);
return this;
}
Map<String, dynamic> toJson() => {
'transactionType': transactionType,
'amount': amount,
'currency': currency,
'transactionDate': JsonConverters.toJson(transactionDate,'DateTime',context!),
'orderId': orderId,
'paymentMethod': JsonConverters.toJson(paymentMethod,'Borgun3DFinalPaymentMethodInfo',context!),
'threeDSecure': JsonConverters.toJson(threeDSecure,'Borgun3DFinal3DSecureInfo',context!)
};
getTypeName() => "Borgun3DFinalRequest";
TypeContext? context = _ctx;
}
class BorgunApplePayThreeDSecureInfo implements IConvertible
{
String? dataType;
String? securityLevelInd;
String? cavv;
String? ucaf;
BorgunApplePayThreeDSecureInfo({this.dataType,this.securityLevelInd,this.cavv,this.ucaf});
BorgunApplePayThreeDSecureInfo.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
dataType = json['dataType'];
securityLevelInd = json['securityLevelInd'];
cavv = json['cavv'];
ucaf = json['ucaf'];
return this;
}
Map<String, dynamic> toJson() => {
'dataType': dataType,
'securityLevelInd': securityLevelInd,
'cavv': cavv,
'ucaf': ucaf
};
getTypeName() => "BorgunApplePayThreeDSecureInfo";
TypeContext? context = _ctx;
}
class BorgunApplePayFinalInfo implements IConvertible
{
String? orderId;
BorgunApplePayThreeDSecureInfo? threeDSecure;
BorgunApplePayFinalInfo({this.orderId,this.threeDSecure});
BorgunApplePayFinalInfo.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
orderId = json['orderId'];
threeDSecure = JsonConverters.fromJson(json['threeDSecure'],'BorgunApplePayThreeDSecureInfo',context!);
return this;
}
Map<String, dynamic> toJson() => {
'orderId': orderId,
'threeDSecure': JsonConverters.toJson(threeDSecure,'BorgunApplePayThreeDSecureInfo',context!)
};
getTypeName() => "BorgunApplePayFinalInfo";
TypeContext? context = _ctx;
}
class WebshopOrderPurchaseRequest implements IConvertible
{
int? ownerId;
String? externalId;
List<WebshopPurchaseLine>? lines;
String? buyerName;
String? buyerEmail;
String? buyerPhone;
String? deliveryType;
String? droppLocationId;
String? address;
String? city;
String? zipCode;
String? country;
String? idempotencyKey;
String? discountCode;
List<OrderTender>? tenders;
String? paymentMethodId;
String? paymentId;
PaymentRequestCreditCard? cardInfo;
Borgun3DFinalRequest? borgun3DFinalInfo;
BorgunApplePayFinalInfo? applePayInfo;
WebshopOrderPurchaseRequest({this.ownerId,this.externalId,this.lines,this.buyerName,this.buyerEmail,this.buyerPhone,this.deliveryType,this.droppLocationId,this.address,this.city,this.zipCode,this.country,this.idempotencyKey,this.discountCode,this.tenders,this.paymentMethodId,this.paymentId,this.cardInfo,this.borgun3DFinalInfo,this.applePayInfo});
WebshopOrderPurchaseRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
ownerId = json['ownerId'];
externalId = json['externalId'];
lines = JsonConverters.fromJson(json['lines'],'List<WebshopPurchaseLine>',context!);
buyerName = json['buyerName'];
buyerEmail = json['buyerEmail'];
buyerPhone = json['buyerPhone'];
deliveryType = json['deliveryType'];
droppLocationId = json['droppLocationId'];
address = json['address'];
city = json['city'];
zipCode = json['zipCode'];
country = json['country'];
idempotencyKey = json['idempotencyKey'];
discountCode = json['discountCode'];
tenders = JsonConverters.fromJson(json['tenders'],'List<OrderTender>',context!);
paymentMethodId = json['paymentMethodId'];
paymentId = json['paymentId'];
cardInfo = JsonConverters.fromJson(json['cardInfo'],'PaymentRequestCreditCard',context!);
borgun3DFinalInfo = JsonConverters.fromJson(json['borgun3DFinalInfo'],'Borgun3DFinalRequest',context!);
applePayInfo = JsonConverters.fromJson(json['applePayInfo'],'BorgunApplePayFinalInfo',context!);
return this;
}
Map<String, dynamic> toJson() => {
'ownerId': ownerId,
'externalId': externalId,
'lines': JsonConverters.toJson(lines,'List<WebshopPurchaseLine>',context!),
'buyerName': buyerName,
'buyerEmail': buyerEmail,
'buyerPhone': buyerPhone,
'deliveryType': deliveryType,
'droppLocationId': droppLocationId,
'address': address,
'city': city,
'zipCode': zipCode,
'country': country,
'idempotencyKey': idempotencyKey,
'discountCode': discountCode,
'tenders': JsonConverters.toJson(tenders,'List<OrderTender>',context!),
'paymentMethodId': paymentMethodId,
'paymentId': paymentId,
'cardInfo': JsonConverters.toJson(cardInfo,'PaymentRequestCreditCard',context!),
'borgun3DFinalInfo': JsonConverters.toJson(borgun3DFinalInfo,'Borgun3DFinalRequest',context!),
'applePayInfo': JsonConverters.toJson(applePayInfo,'BorgunApplePayFinalInfo',context!)
};
getTypeName() => "WebshopOrderPurchaseRequest";
TypeContext? context = _ctx;
}
TypeContext _ctx = TypeContext(library: 'stubbur_app.azurewebsites.net', types: <String, TypeInfo> {
'LocalizedMessage': TypeInfo(TypeOf.Class, create:() => LocalizedMessage()),
'WebshopOrderLineSummary': TypeInfo(TypeOf.Class, create:() => WebshopOrderLineSummary()),
'WebshopOrderSummary': TypeInfo(TypeOf.Class, create:() => WebshopOrderSummary()),
'List<WebshopOrderLineSummary>': TypeInfo(TypeOf.Class, create:() => <WebshopOrderLineSummary>[]),
'WebshopOrderResult': TypeInfo(TypeOf.Class, create:() => WebshopOrderResult()),
'WebshopPurchaseLine': TypeInfo(TypeOf.Class, create:() => WebshopPurchaseLine()),
'OrderTender': TypeInfo(TypeOf.Class, create:() => OrderTender()),
'PaymentMethodCreditCardInfo': TypeInfo(TypeOf.Class, create:() => PaymentMethodCreditCardInfo()),
'PaymentRequestCreditCard': TypeInfo(TypeOf.Class, create:() => PaymentRequestCreditCard()),
'Borgun3DFinalPaymentMethodInfo': TypeInfo(TypeOf.Class, create:() => Borgun3DFinalPaymentMethodInfo()),
'Borgun3DFinal3DSecureInfo': TypeInfo(TypeOf.Class, create:() => Borgun3DFinal3DSecureInfo()),
'Borgun3DFinalRequest': TypeInfo(TypeOf.Class, create:() => Borgun3DFinalRequest()),
'BorgunApplePayThreeDSecureInfo': TypeInfo(TypeOf.Class, create:() => BorgunApplePayThreeDSecureInfo()),
'BorgunApplePayFinalInfo': TypeInfo(TypeOf.Class, create:() => BorgunApplePayFinalInfo()),
'WebshopOrderPurchaseRequest': TypeInfo(TypeOf.Class, create:() => WebshopOrderPurchaseRequest()),
'List<WebshopPurchaseLine>': TypeInfo(TypeOf.Class, create:() => <WebshopPurchaseLine>[]),
'List<OrderTender>': TypeInfo(TypeOf.Class, create:() => <OrderTender>[]),
});
Dart WebshopOrderPurchaseRequest DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .csv suffix or ?format=csv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /Webshop/Order/Purchase HTTP/1.1
Host: stubbur-app.azurewebsites.net
Accept: text/csv
Content-Type: text/csv
Content-Length: length
{"ownerId":0,"externalId":"String","lines":[{"variantId":0,"quantity":0}],"buyerName":"String","buyerEmail":"String","buyerPhone":"String","deliveryType":"String","droppLocationId":"String","address":"String","city":"String","zipCode":"String","country":"String","idempotencyKey":"String","discountCode":"String","tenders":[{"kind":"String","code":"String","amountMinor":0,"idempotencyKey":"String","holdId":0,"appliedMinor":0}],"paymentMethodId":"String","paymentId":"String","cardInfo":{"paymentMethod":{"paymentType":"String","token":"String","pan":"String","expYear":"String","expMonth":"String","cvc":"String"},"amount":0,"currency":"String","orderId":"String","transActionDate":"0001-01-01T00:00:00.0000000","saveCardToToken":false},"borgun3DFinalInfo":{"transactionType":"String","amount":0,"currency":"String","transactionDate":"0001-01-01T00:00:00.0000000","orderId":"String","paymentMethod":{"paymentType":"String","token":"String","virtualNumber":"String","expYear":"String","expMonth":"String","panLastFour":"String"},"threeDSecure":{"dataType":"String","mpiToken":"String"}},"applePayInfo":{"orderId":"String","threeDSecure":{"dataType":"String","securityLevelInd":"String","cavv":"String","ucaf":"String"}}}
HTTP/1.1 200 OK
Content-Type: text/csv
Content-Length: length
{"success":false,"reason":"String","message":{"is":"String","en":"String"},"orderReference":"String","order":{"id":0,"orderReference":"String","ownerId":0,"status":"String","totalMinor":0,"deliveryFeeMinor":0,"totalDiscountMinor":0,"currency":"String","buyerName":"String","buyerEmail":"String","buyerPhone":"String","address":"String","city":"String","zipCode":"String","country":"String","deliveryType":"String","droppOrderId":"String","droppLocationId":"String","needsDeliveryAttention":false,"paymentMethodId":"String","paymentId":"String","paymentReference":"String","discountCode":"String","giftPaidMinor":0,"createdAt":"0001-01-01T00:00:00.0000000","updatedAt":"0001-01-01T00:00:00.0000000","lines":[{"id":0,"productId":0,"variantId":0,"productName":"String","size":"String","color":"String","unitPriceMinor":0,"quantity":0,"lineTotalMinor":0,"status":"String","payoutInfoId":0,"payoutTag":"String"}]},"statusCode":0}