Trendsic Platform Service

<back to all web services

ProductsRequest

Requires Authentication
Requires any of the roles:Agent, Administrator, Agent, Administrator, Agent, Administrator, Agent, Administrator
The following routes are available for this service:
GET/v1/Products/{UserID}
GET,POST,PUT,DELETE,OPTIONS/v1/Products/
import 'package:servicestack/servicestack.dart';
import 'dart:typed_data';

class Product implements IConvertible
{
    int? ID;
    String? ProductName;
    int? ProductTypeID;
    double? UnitPrice;
    String? Description;
    String? ImageURL;
    String? ImageKey;
    String? SpecialSaleText;
    double? ShipPrice;
    double? SalePrice;
    String? UID;
    int? ProductCategory;
    int? ProductSubCategory;
    double? ProductWeight;
    double? FreightMarkupPercent;
    double? FreightMarkUpAmount;
    double? PointValue;
    bool? IsActive;
    String? StripeProductId;

    Product({this.ID,this.ProductName,this.ProductTypeID,this.UnitPrice,this.Description,this.ImageURL,this.ImageKey,this.SpecialSaleText,this.ShipPrice,this.SalePrice,this.UID,this.ProductCategory,this.ProductSubCategory,this.ProductWeight,this.FreightMarkupPercent,this.FreightMarkUpAmount,this.PointValue,this.IsActive,this.StripeProductId});
    Product.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        ID = json['ID'];
        ProductName = json['ProductName'];
        ProductTypeID = json['ProductTypeID'];
        UnitPrice = JsonConverters.toDouble(json['UnitPrice']);
        Description = json['Description'];
        ImageURL = json['ImageURL'];
        ImageKey = json['ImageKey'];
        SpecialSaleText = json['SpecialSaleText'];
        ShipPrice = JsonConverters.toDouble(json['ShipPrice']);
        SalePrice = JsonConverters.toDouble(json['SalePrice']);
        UID = json['UID'];
        ProductCategory = json['ProductCategory'];
        ProductSubCategory = json['ProductSubCategory'];
        ProductWeight = JsonConverters.toDouble(json['ProductWeight']);
        FreightMarkupPercent = JsonConverters.toDouble(json['FreightMarkupPercent']);
        FreightMarkUpAmount = JsonConverters.toDouble(json['FreightMarkUpAmount']);
        PointValue = JsonConverters.toDouble(json['PointValue']);
        IsActive = json['IsActive'];
        StripeProductId = json['StripeProductId'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'ID': ID,
        'ProductName': ProductName,
        'ProductTypeID': ProductTypeID,
        'UnitPrice': UnitPrice,
        'Description': Description,
        'ImageURL': ImageURL,
        'ImageKey': ImageKey,
        'SpecialSaleText': SpecialSaleText,
        'ShipPrice': ShipPrice,
        'SalePrice': SalePrice,
        'UID': UID,
        'ProductCategory': ProductCategory,
        'ProductSubCategory': ProductSubCategory,
        'ProductWeight': ProductWeight,
        'FreightMarkupPercent': FreightMarkupPercent,
        'FreightMarkUpAmount': FreightMarkUpAmount,
        'PointValue': PointValue,
        'IsActive': IsActive,
        'StripeProductId': StripeProductId
    };

    getTypeName() => "Product";
    TypeContext? context = _ctx;
}

class ProductsResponse implements IConvertible
{
    ResponseStatus? ResponseStatus;
    List<Product>? Products = [];

    ProductsResponse({this.ResponseStatus,this.Products});
    ProductsResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        ResponseStatus = JsonConverters.fromJson(json['ResponseStatus'],'ResponseStatus',context!);
        Products = JsonConverters.fromJson(json['Products'],'List<Product>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'ResponseStatus': JsonConverters.toJson(ResponseStatus,'ResponseStatus',context!),
        'Products': JsonConverters.toJson(Products,'List<Product>',context!)
    };

    getTypeName() => "ProductsResponse";
    TypeContext? context = _ctx;
}

class ProductsRequest implements IConvertible
{
    String? UserID;
    List<Product>? Products = [];

    ProductsRequest({this.UserID,this.Products});
    ProductsRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        UserID = json['UserID'];
        Products = JsonConverters.fromJson(json['Products'],'List<Product>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'UserID': UserID,
        'Products': JsonConverters.toJson(Products,'List<Product>',context!)
    };

    getTypeName() => "ProductsRequest";
    TypeContext? context = _ctx;
}

TypeContext _ctx = TypeContext(library: 'api.dev.dynamics.trendsic.com', types: <String, TypeInfo> {
    'Product': TypeInfo(TypeOf.Class, create:() => Product()),
    'ProductsResponse': TypeInfo(TypeOf.Class, create:() => ProductsResponse()),
    'List<Product>': TypeInfo(TypeOf.Class, create:() => <Product>[]),
    'ProductsRequest': TypeInfo(TypeOf.Class, create:() => ProductsRequest()),
});

Dart ProductsRequest DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .other suffix or ?format=other

HTTP + OTHER

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /v1/Products/ HTTP/1.1 
Host: api.dev.dynamics.trendsic.com 
Accept: text/jsonl
Content-Type: text/jsonl
Content-Length: length

{"UserID":"00000000000000000000000000000000","Products":[{"ID":0,"ProductName":"String","ProductTypeID":0,"UnitPrice":0,"Description":"String","ImageURL":"String","ImageKey":"String","SpecialSaleText":"String","ShipPrice":0,"SalePrice":0,"UID":"00000000000000000000000000000000","ProductCategory":0,"ProductSubCategory":0,"ProductWeight":0,"FreightMarkupPercent":0,"FreightMarkUpAmount":0,"PointValue":0,"IsActive":false,"StripeProductId":"String"}]}
HTTP/1.1 200 OK
Content-Type: text/jsonl
Content-Length: length

{"ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}},"Products":[{"ID":0,"ProductName":"String","ProductTypeID":0,"UnitPrice":0,"Description":"String","ImageURL":"String","ImageKey":"String","SpecialSaleText":"String","ShipPrice":0,"SalePrice":0,"UID":"00000000000000000000000000000000","ProductCategory":0,"ProductSubCategory":0,"ProductWeight":0,"FreightMarkupPercent":0,"FreightMarkUpAmount":0,"PointValue":0,"IsActive":false,"StripeProductId":"String"}]}