Richemont.Booster2.PublicApi

<back to all web services

GetStockDetail

Requires Authentication
The following routes are available for this service:
GET/stock/{brand}/{posCode}/{articleCode}Get stock details
import 'package:servicestack/servicestack.dart';

class Pos implements IConvertible
{
    /**
    * Name of the POS
    */
    // @ApiMember(Description="Name of the POS", IsRequired=true)
    String? name;

    /**
    * POS Code
    */
    // @ApiMember(Description="POS Code", IsRequired=true)
    String? posCode;

    /**
    * Pos Code To Be Displayed
    */
    // @ApiMember(Description="Pos Code To Be Displayed", IsRequired=true)
    String? posCodeToBeDisplayed;

    /**
    * Country of the POS
    */
    // @ApiMember(Description="Country of the POS", IsRequired=true)
    String? country;

    /**
    * City of the POS
    */
    // @ApiMember(Description="City of the POS", IsRequired=true)
    String? city;

    /**
    * Postal Code
    */
    // @ApiMember(Description="Postal Code", IsRequired=true)
    String? postalCode;

    /**
    * State
    */
    // @ApiMember(Description="State", IsRequired=true)
    String? state;

    /**
    * Street
    */
    // @ApiMember(Description="Street", IsRequired=true)
    String? street;

    Pos({this.name,this.posCode,this.posCodeToBeDisplayed,this.country,this.city,this.postalCode,this.state,this.street});
    Pos.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        name = json['name'];
        posCode = json['posCode'];
        posCodeToBeDisplayed = json['posCodeToBeDisplayed'];
        country = json['country'];
        city = json['city'];
        postalCode = json['postalCode'];
        state = json['state'];
        street = json['street'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'name': name,
        'posCode': posCode,
        'posCodeToBeDisplayed': posCodeToBeDisplayed,
        'country': country,
        'city': city,
        'postalCode': postalCode,
        'state': state,
        'street': street
    };

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

class UnitNetAmount implements IConvertible
{
    /**
    * Currency Iso Code
    */
    // @ApiMember(Description="Currency Iso Code", IsRequired=true)
    String? currencyIsoCode;

    /**
    * Value
    */
    // @ApiMember(Description="Value", IsRequired=true)
    double? value;

    UnitNetAmount({this.currencyIsoCode,this.value});
    UnitNetAmount.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        currencyIsoCode = json['currencyIsoCode'];
        value = JsonConverters.toDouble(json['value']);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'currencyIsoCode': currencyIsoCode,
        'value': value
    };

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

class StockPositionItem implements IConvertible
{
    /**
    * Quantity
    */
    // @ApiMember(Description="Quantity", IsRequired=true)
    int? quantity;

    /**
    * Serial Number
    */
    // @ApiMember(Description="Serial Number")
    String? serialNumber;

    /**
    * Stock Date
    */
    // @ApiMember(Description="Stock Date", IsRequired=true)
    String? stockDate;

    /**
    * Loaded On Date
    */
    // @ApiMember(Description="Loaded On Date", IsRequired=true)
    String? loadedOnDate;

    /**
    * Type e.g. consignment or standard
    */
    // @ApiMember(Description="Type e.g. consignment or standard", IsRequired=true)
    String? type;

    /**
    * Is Consignment Sellable 
    */
    // @ApiMember(Description="Is Consignment Sellable ", IsRequired=true)
    bool? isConsignmentSellable;

    /**
    * Sell-In Price. Disclaimer: this data will be arriving empty/null due to DealerCost project still being in test phase.
    */
    // @ApiMember(Description="Sell-In Price. Disclaimer: this data will be arriving empty/null due to DealerCost project still being in test phase.")
    UnitNetAmount? unitNetAmount;

    /**
    * Retail Sales Price
    */
    // @ApiMember(Description="Retail Sales Price")
    UnitNetAmount? retailSalesPrice;

    StockPositionItem({this.quantity,this.serialNumber,this.stockDate,this.loadedOnDate,this.type,this.isConsignmentSellable,this.unitNetAmount,this.retailSalesPrice});
    StockPositionItem.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        quantity = json['quantity'];
        serialNumber = json['serialNumber'];
        stockDate = json['stockDate'];
        loadedOnDate = json['loadedOnDate'];
        type = json['type'];
        isConsignmentSellable = json['isConsignmentSellable'];
        unitNetAmount = JsonConverters.fromJson(json['unitNetAmount'],'UnitNetAmount',context!);
        retailSalesPrice = JsonConverters.fromJson(json['retailSalesPrice'],'UnitNetAmount',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'quantity': quantity,
        'serialNumber': serialNumber,
        'stockDate': stockDate,
        'loadedOnDate': loadedOnDate,
        'type': type,
        'isConsignmentSellable': isConsignmentSellable,
        'unitNetAmount': JsonConverters.toJson(unitNetAmount,'UnitNetAmount',context!),
        'retailSalesPrice': JsonConverters.toJson(retailSalesPrice,'UnitNetAmount',context!)
    };

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

class GetStockDetailResponse implements IConvertible
{
    /**
    * Article code
    */
    // @ApiMember(Description="Article code", IsRequired=true)
    String? articleCode;

    /**
    * Brand
    */
    // @ApiMember(Description="Brand", IsRequired=true)
    String? brand;

    /**
    * Pos Code
    */
    // @ApiMember(Description="Pos Code", IsRequired=true)
    String? posCode;

    /**
    * Current Stock Quantity
    */
    // @ApiMember(Description="Current Stock Quantity", IsRequired=true)
    int? currentStockQuantity;

    /**
    * Shared Stock Location
    */
    // @ApiMember(Description="Shared Stock Location", IsRequired=true)
    Pos? sharedStockLocation;

    /**
    * Stock Positions
    */
    // @ApiMember(Description="Stock Positions", IsRequired=true)
    List<StockPositionItem>? stockPositions;

    GetStockDetailResponse({this.articleCode,this.brand,this.posCode,this.currentStockQuantity,this.sharedStockLocation,this.stockPositions});
    GetStockDetailResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        articleCode = json['articleCode'];
        brand = json['brand'];
        posCode = json['posCode'];
        currentStockQuantity = json['currentStockQuantity'];
        sharedStockLocation = JsonConverters.fromJson(json['sharedStockLocation'],'Pos',context!);
        stockPositions = JsonConverters.fromJson(json['stockPositions'],'List<StockPositionItem>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'articleCode': articleCode,
        'brand': brand,
        'posCode': posCode,
        'currentStockQuantity': currentStockQuantity,
        'sharedStockLocation': JsonConverters.toJson(sharedStockLocation,'Pos',context!),
        'stockPositions': JsonConverters.toJson(stockPositions,'List<StockPositionItem>',context!)
    };

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

class GetStockDetail implements IConvertible
{
    /**
    * Brand
    */
    // @ApiMember(Description="Brand", IsRequired=true)
    String? brand;

    /**
    * POS Legacy
    */
    // @ApiMember(Description="POS Legacy", IsRequired=true)
    String? posCode;

    /**
    * Article Code
    */
    // @ApiMember(Description="Article Code", IsRequired=true)
    String? articleCode;

    GetStockDetail({this.brand,this.posCode,this.articleCode});
    GetStockDetail.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        brand = json['brand'];
        posCode = json['posCode'];
        articleCode = json['articleCode'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'brand': brand,
        'posCode': posCode,
        'articleCode': articleCode
    };

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

TypeContext _ctx = TypeContext(library: 'dev_api_booster.richemont.com', types: <String, TypeInfo> {
    'Pos': TypeInfo(TypeOf.Class, create:() => Pos()),
    'UnitNetAmount': TypeInfo(TypeOf.Class, create:() => UnitNetAmount()),
    'StockPositionItem': TypeInfo(TypeOf.Class, create:() => StockPositionItem()),
    'GetStockDetailResponse': TypeInfo(TypeOf.Class, create:() => GetStockDetailResponse()),
    'List<StockPositionItem>': TypeInfo(TypeOf.Class, create:() => <StockPositionItem>[]),
    'GetStockDetail': TypeInfo(TypeOf.Class, create:() => GetStockDetail()),
});

Dart GetStockDetail DTOs

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

HTTP + XML

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

GET /stock/{brand}/{posCode}/{articleCode} HTTP/1.1 
Host: dev-api-booster.richemont.com 
Accept: application/xml
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<GetStockDetailResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Richemont.Booster2.PublicApi.Stock.ServiceModel">
  <articleCode>String</articleCode>
  <brand>String</brand>
  <currentStockQuantity>0</currentStockQuantity>
  <posCode>String</posCode>
  <sharedStockLocation>
    <city>String</city>
    <country>String</country>
    <name>String</name>
    <posCode>String</posCode>
    <posCodeToBeDisplayed>String</posCodeToBeDisplayed>
    <postalCode>String</postalCode>
    <state>String</state>
    <street>String</street>
  </sharedStockLocation>
  <stockPositions>
    <StockPositionItem>
      <isConsignmentSellable>false</isConsignmentSellable>
      <loadedOnDate>String</loadedOnDate>
      <quantity>0</quantity>
      <retailSalesPrice>
        <currencyIsoCode>String</currencyIsoCode>
        <value>0</value>
      </retailSalesPrice>
      <serialNumber>String</serialNumber>
      <stockDate>String</stockDate>
      <type>String</type>
      <unitNetAmount>
        <currencyIsoCode>String</currencyIsoCode>
        <value>0</value>
      </unitNetAmount>
    </StockPositionItem>
  </stockPositions>
</GetStockDetailResponse>