DX STF Client API

<back to all web services

GetOrderById

Order Requests

Order

Requires Authentication
The following routes are available for this service:
GET/api/order/{Id}Get specific order by Order Id
import 'package:servicestack/servicestack.dart';

// @DataContract
class DocumentIdentification implements IConvertible
{
    // @DataMember(Name="identifier")
    String identifier = "";

    // @DataMember(Name="type")
    String type = "";

    // @DataMember(Name="creationDateAndTime")
    DateTime creationDateAndTime = DateTime(0);

    DocumentIdentification({this.identifier,this.type,this.creationDateAndTime});
    DocumentIdentification.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        identifier = json['identifier'];
        type = json['type'];
        creationDateAndTime = JsonConverters.fromJson(json['creationDateAndTime'],'DateTime',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'identifier': identifier,
        'type': type,
        'creationDateAndTime': JsonConverters.toJson(creationDateAndTime,'DateTime',context!)
    };

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

// @DataContract
class Identifier implements IConvertible
{
    // @DataMember(Name="authority")
    String authority = "";

    // @DataMember(Name="text")
    String text = "";

    Identifier({this.authority,this.text});
    Identifier.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        authority = json['authority'];
        text = json['text'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'authority': authority,
        'text': text
    };

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

// @DataContract
class ContactInformation implements IConvertible
{
    ContactInformation();
    ContactInformation.fromJson(Map<String, dynamic> json) : super();
    fromMap(Map<String, dynamic> json) {
        return this;
    }

    Map<String, dynamic> toJson() => {};
    getTypeName() => "ContactInformation";
    TypeContext? context = _ctx;
}

// @DataContract
class Partner implements IConvertible
{
    // @DataMember(Name="identifier")
    Identifier identifier;

    // @DataMember(Name="contactInformation")
    List<ContactInformation> contactInformation = [];

    Partner({this.identifier,this.contactInformation});
    Partner.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        identifier = JsonConverters.fromJson(json['identifier'],'Identifier',context!);
        contactInformation = JsonConverters.fromJson(json['contactInformation'],'List<ContactInformation>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'identifier': JsonConverters.toJson(identifier,'Identifier',context!),
        'contactInformation': JsonConverters.toJson(contactInformation,'List<ContactInformation>',context!)
    };

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

// @DataContract
class Header implements IConvertible
{
    // @DataMember(Name="documentIdentification")
    DocumentIdentification documentIdentification;

    // @DataMember(Name="sender")
    Partner sender;

    // @DataMember(Name="receiver")
    Partner receiver;

    Header({this.documentIdentification,this.sender,this.receiver});
    Header.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        documentIdentification = JsonConverters.fromJson(json['documentIdentification'],'DocumentIdentification',context!);
        sender = JsonConverters.fromJson(json['sender'],'Partner',context!);
        receiver = JsonConverters.fromJson(json['receiver'],'Partner',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'documentIdentification': JsonConverters.toJson(documentIdentification,'DocumentIdentification',context!),
        'sender': JsonConverters.toJson(sender,'Partner',context!),
        'receiver': JsonConverters.toJson(receiver,'Partner',context!)
    };

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

enum DocumentAction
{
    ADD,
    CHANGE_BY_REFRESH,
    DELETE,
    REJECTED,
}

enum DocumentStatus
{
    ADDITIONAL_TRANSMISSION,
    COPY,
    ORIGINAL,
}

class AvpList implements IConvertible
{
    String code = "";
    String value = "";

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

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

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

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

class BaseDocument implements IConvertible
{
    String currencyCode = "";
    DateTime creationDateTime = DateTime(0);
    DocumentAction documentActionCode;
    DocumentStatus documentStatusCode;
    String documentStructureVersion = "";
    DateTime? lastUpdateDateTime;
    int? revisionNumber;
    List<AvpList> avpList = [];

    BaseDocument({this.currencyCode,this.creationDateTime,this.documentActionCode,this.documentStatusCode,this.documentStructureVersion,this.lastUpdateDateTime,this.revisionNumber,this.avpList});
    BaseDocument.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        currencyCode = json['currencyCode'];
        creationDateTime = JsonConverters.fromJson(json['creationDateTime'],'DateTime',context!);
        documentActionCode = JsonConverters.fromJson(json['documentActionCode'],'DocumentAction',context!);
        documentStatusCode = JsonConverters.fromJson(json['documentStatusCode'],'DocumentStatus',context!);
        documentStructureVersion = json['documentStructureVersion'];
        lastUpdateDateTime = JsonConverters.fromJson(json['lastUpdateDateTime'],'DateTime',context!);
        revisionNumber = json['revisionNumber'];
        avpList = JsonConverters.fromJson(json['avpList'],'List<AvpList>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'currencyCode': currencyCode,
        'creationDateTime': JsonConverters.toJson(creationDateTime,'DateTime',context!),
        'documentActionCode': JsonConverters.toJson(documentActionCode,'DocumentAction',context!),
        'documentStatusCode': JsonConverters.toJson(documentStatusCode,'DocumentStatus',context!),
        'documentStructureVersion': documentStructureVersion,
        'lastUpdateDateTime': JsonConverters.toJson(lastUpdateDateTime,'DateTime',context!),
        'revisionNumber': revisionNumber,
        'avpList': JsonConverters.toJson(avpList,'List<AvpList>',context!)
    };

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

class Ecom_PartyIdentification implements IConvertible
{
    List<AvpList> additionalPartyIdentification = [];
    String gln = "";

    Ecom_PartyIdentification({this.additionalPartyIdentification,this.gln});
    Ecom_PartyIdentification.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

    Map<String, dynamic> toJson() => {
        'additionalPartyIdentification': JsonConverters.toJson(additionalPartyIdentification,'List<AvpList>',context!),
        'gln': gln
    };

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

class Ecom_EntityIdentification implements IConvertible
{
    String entityIdentification = "";
    Ecom_PartyIdentification contentOwner;

    Ecom_EntityIdentification({this.entityIdentification,this.contentOwner});
    Ecom_EntityIdentification.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        entityIdentification = json['entityIdentification'];
        contentOwner = JsonConverters.fromJson(json['contentOwner'],'Ecom_PartyIdentification',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'entityIdentification': entityIdentification,
        'contentOwner': JsonConverters.toJson(contentOwner,'Ecom_PartyIdentification',context!)
    };

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

class Code implements IConvertible
{
    String value = "";
    String codeDescription = "";
    String codeListAgencyCodeListVersion = "";
    String codeListAgencyName = "";
    String codeListName = "";
    String codeListUri = "";

    Code({this.value,this.codeDescription,this.codeListAgencyCodeListVersion,this.codeListAgencyName,this.codeListName,this.codeListUri});
    Code.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        value = json['value'];
        codeDescription = json['codeDescription'];
        codeListAgencyCodeListVersion = json['codeListAgencyCodeListVersion'];
        codeListAgencyName = json['codeListAgencyName'];
        codeListName = json['codeListName'];
        codeListUri = json['codeListUri'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'value': value,
        'codeDescription': codeDescription,
        'codeListAgencyCodeListVersion': codeListAgencyCodeListVersion,
        'codeListAgencyName': codeListAgencyName,
        'codeListName': codeListName,
        'codeListUri': codeListUri
    };

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

class DateRange implements IConvertible
{
    DateTime? beginDate;
    DateTime? beginTime;
    DateTime? endDate;
    DateTime? endTime;

    DateRange({this.beginDate,this.beginTime,this.endDate,this.endTime});
    DateRange.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        beginDate = JsonConverters.fromJson(json['beginDate'],'DateTime',context!);
        beginTime = JsonConverters.fromJson(json['beginTime'],'DateTime',context!);
        endDate = JsonConverters.fromJson(json['endDate'],'DateTime',context!);
        endTime = JsonConverters.fromJson(json['endTime'],'DateTime',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'beginDate': JsonConverters.toJson(beginDate,'DateTime',context!),
        'beginTime': JsonConverters.toJson(beginTime,'DateTime',context!),
        'endDate': JsonConverters.toJson(endDate,'DateTime',context!),
        'endTime': JsonConverters.toJson(endTime,'DateTime',context!)
    };

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

class OrderLogisticalDateInformation implements IConvertible
{
    DateRange dateRangeDeliveryDateRange;
    DateRange dateRangeShipDateRange;
    DateRange dateRangeDeliveryDateRangeAtUltimateConsignee;
    DateTime? requestedDeliveryDateTime;
    String requestedShipDateTime = "";
    DateTime? requestedPickUpDateTime;
    DateTime? requestedDeliveryDateTimeAtUltimateConsignee;

    OrderLogisticalDateInformation({this.dateRangeDeliveryDateRange,this.dateRangeShipDateRange,this.dateRangeDeliveryDateRangeAtUltimateConsignee,this.requestedDeliveryDateTime,this.requestedShipDateTime,this.requestedPickUpDateTime,this.requestedDeliveryDateTimeAtUltimateConsignee});
    OrderLogisticalDateInformation.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        dateRangeDeliveryDateRange = JsonConverters.fromJson(json['dateRangeDeliveryDateRange'],'DateRange',context!);
        dateRangeShipDateRange = JsonConverters.fromJson(json['dateRangeShipDateRange'],'DateRange',context!);
        dateRangeDeliveryDateRangeAtUltimateConsignee = JsonConverters.fromJson(json['dateRangeDeliveryDateRangeAtUltimateConsignee'],'DateRange',context!);
        requestedDeliveryDateTime = JsonConverters.fromJson(json['requestedDeliveryDateTime'],'DateTime',context!);
        requestedShipDateTime = json['requestedShipDateTime'];
        requestedPickUpDateTime = JsonConverters.fromJson(json['requestedPickUpDateTime'],'DateTime',context!);
        requestedDeliveryDateTimeAtUltimateConsignee = JsonConverters.fromJson(json['requestedDeliveryDateTimeAtUltimateConsignee'],'DateTime',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'dateRangeDeliveryDateRange': JsonConverters.toJson(dateRangeDeliveryDateRange,'DateRange',context!),
        'dateRangeShipDateRange': JsonConverters.toJson(dateRangeShipDateRange,'DateRange',context!),
        'dateRangeDeliveryDateRangeAtUltimateConsignee': JsonConverters.toJson(dateRangeDeliveryDateRangeAtUltimateConsignee,'DateRange',context!),
        'requestedDeliveryDateTime': JsonConverters.toJson(requestedDeliveryDateTime,'DateTime',context!),
        'requestedShipDateTime': requestedShipDateTime,
        'requestedPickUpDateTime': JsonConverters.toJson(requestedPickUpDateTime,'DateTime',context!),
        'requestedDeliveryDateTimeAtUltimateConsignee': JsonConverters.toJson(requestedDeliveryDateTimeAtUltimateConsignee,'DateTime',context!)
    };

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

class Ecom_PartyIdentificationType implements IConvertible
{
    String gln = "";
    String name = "";
    List<AvpList> additionalPartyIdentification = [];

    Ecom_PartyIdentificationType({this.gln,this.name,this.additionalPartyIdentification});
    Ecom_PartyIdentificationType.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        gln = json['gln'];
        name = json['name'];
        additionalPartyIdentification = JsonConverters.fromJson(json['additionalPartyIdentification'],'List<AvpList>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'gln': gln,
        'name': name,
        'additionalPartyIdentification': JsonConverters.toJson(additionalPartyIdentification,'List<AvpList>',context!)
    };

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

class CommunicationChannel implements IConvertible
{
    String communicationChannelCode = "";
    String communicationChannelName = "";
    String communicationValue = "";

    CommunicationChannel({this.communicationChannelCode,this.communicationChannelName,this.communicationValue});
    CommunicationChannel.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        communicationChannelCode = json['communicationChannelCode'];
        communicationChannelName = json['communicationChannelName'];
        communicationValue = json['communicationValue'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'communicationChannelCode': communicationChannelCode,
        'communicationChannelName': communicationChannelName,
        'communicationValue': communicationValue
    };

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

class Contact implements IConvertible
{
    String contactTypeCode = "";
    String personName = "";
    String departmentName = "";
    String jobTitle = "";
    String responsibility = "";
    List<CommunicationChannel> communicationChannel = [];

    Contact({this.contactTypeCode,this.personName,this.departmentName,this.jobTitle,this.responsibility,this.communicationChannel});
    Contact.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        contactTypeCode = json['contactTypeCode'];
        personName = json['personName'];
        departmentName = json['departmentName'];
        jobTitle = json['jobTitle'];
        responsibility = json['responsibility'];
        communicationChannel = JsonConverters.fromJson(json['communicationChannel'],'List<CommunicationChannel>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'contactTypeCode': contactTypeCode,
        'personName': personName,
        'departmentName': departmentName,
        'jobTitle': jobTitle,
        'responsibility': responsibility,
        'communicationChannel': JsonConverters.toJson(communicationChannel,'List<CommunicationChannel>',context!)
    };

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

class Address implements IConvertible
{
    String streetAddressOne = "";
    String streetAddressTwo = "";
    String streetAddressThree = "";
    String city = "";
    String postalCode = "";
    String provinceCode = "";
    String countryCode = "";

    Address({this.streetAddressOne,this.streetAddressTwo,this.streetAddressThree,this.city,this.postalCode,this.provinceCode,this.countryCode});
    Address.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        streetAddressOne = json['streetAddressOne'];
        streetAddressTwo = json['streetAddressTwo'];
        streetAddressThree = json['streetAddressThree'];
        city = json['city'];
        postalCode = json['postalCode'];
        provinceCode = json['provinceCode'];
        countryCode = json['countryCode'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'streetAddressOne': streetAddressOne,
        'streetAddressTwo': streetAddressTwo,
        'streetAddressThree': streetAddressThree,
        'city': city,
        'postalCode': postalCode,
        'provinceCode': provinceCode,
        'countryCode': countryCode
    };

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

class FinancialRoutingNumber implements IConvertible
{
    String number = "";
    String numberTypeCode = "";

    FinancialRoutingNumber({this.number,this.numberTypeCode});
    FinancialRoutingNumber.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        number = json['number'];
        numberTypeCode = json['numberTypeCode'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'number': number,
        'numberTypeCode': numberTypeCode
    };

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

class FinancialAccount implements IConvertible
{
    String number = "";
    String numberTypeCode = "";
    String name = "";

    FinancialAccount({this.number,this.numberTypeCode,this.name});
    FinancialAccount.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        number = json['number'];
        numberTypeCode = json['numberTypeCode'];
        name = json['name'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'number': number,
        'numberTypeCode': numberTypeCode,
        'name': name
    };

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

class FinancialInstitutionInformation implements IConvertible
{
    String financialInstitutionBranchName = "";
    String financialInstitutionName = "";
    FinancialRoutingNumber financialRoutingNumber;
    FinancialAccount financialAccount;
    String swiftCode = "";
    String exportersCode = "";

    FinancialInstitutionInformation({this.financialInstitutionBranchName,this.financialInstitutionName,this.financialRoutingNumber,this.financialAccount,this.swiftCode,this.exportersCode});
    FinancialInstitutionInformation.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        financialInstitutionBranchName = json['financialInstitutionBranchName'];
        financialInstitutionName = json['financialInstitutionName'];
        financialRoutingNumber = JsonConverters.fromJson(json['financialRoutingNumber'],'FinancialRoutingNumber',context!);
        financialAccount = JsonConverters.fromJson(json['financialAccount'],'FinancialAccount',context!);
        swiftCode = json['swiftCode'];
        exportersCode = json['exportersCode'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'financialInstitutionBranchName': financialInstitutionBranchName,
        'financialInstitutionName': financialInstitutionName,
        'financialRoutingNumber': JsonConverters.toJson(financialRoutingNumber,'FinancialRoutingNumber',context!),
        'financialAccount': JsonConverters.toJson(financialAccount,'FinancialAccount',context!),
        'swiftCode': swiftCode,
        'exportersCode': exportersCode
    };

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

class TransactionalParty extends Ecom_PartyIdentificationType implements IConvertible
{
    List<Contact> contact = [];
    Address address;
    List<AvpList> communicationChannel = [];
    FinancialInstitutionInformation financialInstitutionInformation;
    String dutyFeeTaxRegistration = "";
    String entityIdentification = "";

    TransactionalParty({this.contact,this.address,this.communicationChannel,this.financialInstitutionInformation,this.dutyFeeTaxRegistration,this.entityIdentification});
    TransactionalParty.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        contact = JsonConverters.fromJson(json['contact'],'List<Contact>',context!);
        address = JsonConverters.fromJson(json['address'],'Address',context!);
        communicationChannel = JsonConverters.fromJson(json['communicationChannel'],'List<AvpList>',context!);
        financialInstitutionInformation = JsonConverters.fromJson(json['financialInstitutionInformation'],'FinancialInstitutionInformation',context!);
        dutyFeeTaxRegistration = json['dutyFeeTaxRegistration'];
        entityIdentification = json['entityIdentification'];
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'contact': JsonConverters.toJson(contact,'List<Contact>',context!),
        'address': JsonConverters.toJson(address,'Address',context!),
        'communicationChannel': JsonConverters.toJson(communicationChannel,'List<AvpList>',context!),
        'financialInstitutionInformation': JsonConverters.toJson(financialInstitutionInformation,'FinancialInstitutionInformation',context!),
        'dutyFeeTaxRegistration': dutyFeeTaxRegistration,
        'entityIdentification': entityIdentification
    });

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

class ShipmentTransportationInformation implements IConvertible
{
    TransactionalParty carrier;
    TransactionalParty freightForwarder;

    ShipmentTransportationInformation({this.carrier,this.freightForwarder});
    ShipmentTransportationInformation.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        carrier = JsonConverters.fromJson(json['carrier'],'TransactionalParty',context!);
        freightForwarder = JsonConverters.fromJson(json['freightForwarder'],'TransactionalParty',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'carrier': JsonConverters.toJson(carrier,'TransactionalParty',context!),
        'freightForwarder': JsonConverters.toJson(freightForwarder,'TransactionalParty',context!)
    };

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

class OrderLogisticalInformation implements IConvertible
{
    Code commodityTypeCode;
    OrderLogisticalDateInformation orderLogisticalDateInformation;
    TransactionalParty inventoryLocation;
    TransactionalParty shipFrom;
    TransactionalParty shipTo;
    TransactionalParty ultimateConsignee;
    ShipmentTransportationInformation shipmentTransportationInformation;

    OrderLogisticalInformation({this.commodityTypeCode,this.orderLogisticalDateInformation,this.inventoryLocation,this.shipFrom,this.shipTo,this.ultimateConsignee,this.shipmentTransportationInformation});
    OrderLogisticalInformation.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        commodityTypeCode = JsonConverters.fromJson(json['commodityTypeCode'],'Code',context!);
        orderLogisticalDateInformation = JsonConverters.fromJson(json['orderLogisticalDateInformation'],'OrderLogisticalDateInformation',context!);
        inventoryLocation = JsonConverters.fromJson(json['inventoryLocation'],'TransactionalParty',context!);
        shipFrom = JsonConverters.fromJson(json['shipFrom'],'TransactionalParty',context!);
        shipTo = JsonConverters.fromJson(json['shipTo'],'TransactionalParty',context!);
        ultimateConsignee = JsonConverters.fromJson(json['ultimateConsignee'],'TransactionalParty',context!);
        shipmentTransportationInformation = JsonConverters.fromJson(json['shipmentTransportationInformation'],'ShipmentTransportationInformation',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'commodityTypeCode': JsonConverters.toJson(commodityTypeCode,'Code',context!),
        'orderLogisticalDateInformation': JsonConverters.toJson(orderLogisticalDateInformation,'OrderLogisticalDateInformation',context!),
        'inventoryLocation': JsonConverters.toJson(inventoryLocation,'TransactionalParty',context!),
        'shipFrom': JsonConverters.toJson(shipFrom,'TransactionalParty',context!),
        'shipTo': JsonConverters.toJson(shipTo,'TransactionalParty',context!),
        'ultimateConsignee': JsonConverters.toJson(ultimateConsignee,'TransactionalParty',context!),
        'shipmentTransportationInformation': JsonConverters.toJson(shipmentTransportationInformation,'ShipmentTransportationInformation',context!)
    };

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

class AdministrativeUnit implements IConvertible
{
    String typeCode = "";
    String gln = "";
    String internalIdentification = "";

    AdministrativeUnit({this.typeCode,this.gln,this.internalIdentification});
    AdministrativeUnit.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        typeCode = json['typeCode'];
        gln = json['gln'];
        internalIdentification = json['internalIdentification'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'typeCode': typeCode,
        'gln': gln,
        'internalIdentification': internalIdentification
    };

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

class DeliveryTermsLocation implements IConvertible
{
    String unLocationCode = "";
    String gln = "";
    List<AvpList> additionalLocationIdentification = [];
    String sublocationIdentification = "";
    String locationName = "";
    String locationSpecificInstructions = "";

    DeliveryTermsLocation({this.unLocationCode,this.gln,this.additionalLocationIdentification,this.sublocationIdentification,this.locationName,this.locationSpecificInstructions});
    DeliveryTermsLocation.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        unLocationCode = json['unLocationCode'];
        gln = json['gln'];
        additionalLocationIdentification = JsonConverters.fromJson(json['additionalLocationIdentification'],'List<AvpList>',context!);
        sublocationIdentification = json['sublocationIdentification'];
        locationName = json['locationName'];
        locationSpecificInstructions = json['locationSpecificInstructions'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'unLocationCode': unLocationCode,
        'gln': gln,
        'additionalLocationIdentification': JsonConverters.toJson(additionalLocationIdentification,'List<AvpList>',context!),
        'sublocationIdentification': sublocationIdentification,
        'locationName': locationName,
        'locationSpecificInstructions': locationSpecificInstructions
    };

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

class DeliveryTerms implements IConvertible
{
    String incotermsCode = "";
    String alternateDeliveryTermsCode = "";
    String deliveryInstructions = "";
    String deliveryCostPayment = "";
    String isSignatureRequired = "";
    DeliveryTermsLocation deliveryTermsLocation;

    DeliveryTerms({this.incotermsCode,this.alternateDeliveryTermsCode,this.deliveryInstructions,this.deliveryCostPayment,this.isSignatureRequired,this.deliveryTermsLocation});
    DeliveryTerms.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        incotermsCode = json['incotermsCode'];
        alternateDeliveryTermsCode = json['alternateDeliveryTermsCode'];
        deliveryInstructions = json['deliveryInstructions'];
        deliveryCostPayment = json['deliveryCostPayment'];
        isSignatureRequired = json['isSignatureRequired'];
        deliveryTermsLocation = JsonConverters.fromJson(json['deliveryTermsLocation'],'DeliveryTermsLocation',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'incotermsCode': incotermsCode,
        'alternateDeliveryTermsCode': alternateDeliveryTermsCode,
        'deliveryInstructions': deliveryInstructions,
        'deliveryCostPayment': deliveryCostPayment,
        'isSignatureRequired': isSignatureRequired,
        'deliveryTermsLocation': JsonConverters.toJson(deliveryTermsLocation,'DeliveryTermsLocation',context!)
    };

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

class DocumentReference implements IConvertible
{
    DateTime? creationDateTime;
    int? revisionNumber;
    int? lineItemNumber;
    String entityIdentification = "";

    DocumentReference({this.creationDateTime,this.revisionNumber,this.lineItemNumber,this.entityIdentification});
    DocumentReference.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        creationDateTime = JsonConverters.fromJson(json['creationDateTime'],'DateTime',context!);
        revisionNumber = json['revisionNumber'];
        lineItemNumber = json['lineItemNumber'];
        entityIdentification = json['entityIdentification'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'creationDateTime': JsonConverters.toJson(creationDateTime,'DateTime',context!),
        'revisionNumber': revisionNumber,
        'lineItemNumber': lineItemNumber,
        'entityIdentification': entityIdentification
    };

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

class ReferencedOrder implements IConvertible
{
    String orderRelationship = "";
    DocumentReference documentReference;

    ReferencedOrder({this.orderRelationship,this.documentReference});
    ReferencedOrder.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        orderRelationship = json['orderRelationship'];
        documentReference = JsonConverters.fromJson(json['documentReference'],'DocumentReference',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'orderRelationship': orderRelationship,
        'documentReference': JsonConverters.toJson(documentReference,'DocumentReference',context!)
    };

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

class AllowanceCharge implements IConvertible
{
    double? allowanceChargeAmount;
    double? allowanceChargePercentage;
    String allowanceChargeType = "";
    String allowanceOrChargeType = "";
    double? amountPerUnit;
    double? baseAmount;
    String baseNumberOfUnits = "";
    String bracketIdentifier = "";
    DateTime? effectiveDateType;
    String sequenceNumber = "";
    String settlementType = "";
    String specialServiceType = "";
    String allowanceChargeDescription = "";

    AllowanceCharge({this.allowanceChargeAmount,this.allowanceChargePercentage,this.allowanceChargeType,this.allowanceOrChargeType,this.amountPerUnit,this.baseAmount,this.baseNumberOfUnits,this.bracketIdentifier,this.effectiveDateType,this.sequenceNumber,this.settlementType,this.specialServiceType,this.allowanceChargeDescription});
    AllowanceCharge.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        allowanceChargeAmount = JsonConverters.toDouble(json['allowanceChargeAmount']);
        allowanceChargePercentage = JsonConverters.toDouble(json['allowanceChargePercentage']);
        allowanceChargeType = json['allowanceChargeType'];
        allowanceOrChargeType = json['allowanceOrChargeType'];
        amountPerUnit = JsonConverters.toDouble(json['amountPerUnit']);
        baseAmount = JsonConverters.toDouble(json['baseAmount']);
        baseNumberOfUnits = json['baseNumberOfUnits'];
        bracketIdentifier = json['bracketIdentifier'];
        effectiveDateType = JsonConverters.fromJson(json['effectiveDateType'],'DateTime',context!);
        sequenceNumber = json['sequenceNumber'];
        settlementType = json['settlementType'];
        specialServiceType = json['specialServiceType'];
        allowanceChargeDescription = json['allowanceChargeDescription'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'allowanceChargeAmount': allowanceChargeAmount,
        'allowanceChargePercentage': allowanceChargePercentage,
        'allowanceChargeType': allowanceChargeType,
        'allowanceOrChargeType': allowanceOrChargeType,
        'amountPerUnit': amountPerUnit,
        'baseAmount': baseAmount,
        'baseNumberOfUnits': baseNumberOfUnits,
        'bracketIdentifier': bracketIdentifier,
        'effectiveDateType': JsonConverters.toJson(effectiveDateType,'DateTime',context!),
        'sequenceNumber': sequenceNumber,
        'settlementType': settlementType,
        'specialServiceType': specialServiceType,
        'allowanceChargeDescription': allowanceChargeDescription
    };

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

class Quantity implements IConvertible
{
    double? value;
    String measurementUnitCode = "";
    String codeListVersion = "";

    Quantity({this.value,this.measurementUnitCode,this.codeListVersion});
    Quantity.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

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

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

class TransactionalItem implements IConvertible
{
    String measurementUnitCode = "";
    String measurementType = "";
    String measurementValue = "";

    TransactionalItem({this.measurementUnitCode,this.measurementType,this.measurementValue});
    TransactionalItem.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        measurementUnitCode = json['measurementUnitCode'];
        measurementType = json['measurementType'];
        measurementValue = json['measurementValue'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'measurementUnitCode': measurementUnitCode,
        'measurementType': measurementType,
        'measurementValue': measurementValue
    };

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

class SerialNumberRange implements IConvertible
{
    String maximumValue = "";
    String minimumValue = "";

    SerialNumberRange({this.maximumValue,this.minimumValue});
    SerialNumberRange.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        maximumValue = json['maximumValue'];
        minimumValue = json['minimumValue'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'maximumValue': maximumValue,
        'minimumValue': minimumValue
    };

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

class TransactionalItemDimension implements IConvertible
{
    String measurementUnitCode = "";
    String depth = "";
    String height = "";
    String width = "";

    TransactionalItemDimension({this.measurementUnitCode,this.depth,this.height,this.width});
    TransactionalItemDimension.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        measurementUnitCode = json['measurementUnitCode'];
        depth = json['depth'];
        height = json['height'];
        width = json['width'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'measurementUnitCode': measurementUnitCode,
        'depth': depth,
        'height': height,
        'width': width
    };

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

class TransactionalItemLogisticUnitInformation implements IConvertible
{
    int? numberOfLayers;
    int? numberOfUnitsPerLayer;
    int? numberOfUnitsPerPallet;
    String packagingTerms = "";
    String packageTypeCode = "";
    int? maximumStackingFactor;
    String returnablePackageTransportCostPayment = "";
    List<TransactionalItemDimension> dimensionsOfLogisticUnit = [];

    TransactionalItemLogisticUnitInformation({this.numberOfLayers,this.numberOfUnitsPerLayer,this.numberOfUnitsPerPallet,this.packagingTerms,this.packageTypeCode,this.maximumStackingFactor,this.returnablePackageTransportCostPayment,this.dimensionsOfLogisticUnit});
    TransactionalItemLogisticUnitInformation.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        numberOfLayers = json['numberOfLayers'];
        numberOfUnitsPerLayer = json['numberOfUnitsPerLayer'];
        numberOfUnitsPerPallet = json['numberOfUnitsPerPallet'];
        packagingTerms = json['packagingTerms'];
        packageTypeCode = json['packageTypeCode'];
        maximumStackingFactor = json['maximumStackingFactor'];
        returnablePackageTransportCostPayment = json['returnablePackageTransportCostPayment'];
        dimensionsOfLogisticUnit = JsonConverters.fromJson(json['dimensionsOfLogisticUnit'],'List<TransactionalItemDimension>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'numberOfLayers': numberOfLayers,
        'numberOfUnitsPerLayer': numberOfUnitsPerLayer,
        'numberOfUnitsPerPallet': numberOfUnitsPerPallet,
        'packagingTerms': packagingTerms,
        'packageTypeCode': packageTypeCode,
        'maximumStackingFactor': maximumStackingFactor,
        'returnablePackageTransportCostPayment': returnablePackageTransportCostPayment,
        'dimensionsOfLogisticUnit': JsonConverters.toJson(dimensionsOfLogisticUnit,'List<TransactionalItemDimension>',context!)
    };

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

class TransactionalItemDataCarrierAndIdentification implements IConvertible
{
    String gs1TransactionalItemIdentificationKey = "";
    String dataCarrier = "";

    TransactionalItemDataCarrierAndIdentification({this.gs1TransactionalItemIdentificationKey,this.dataCarrier});
    TransactionalItemDataCarrierAndIdentification.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        gs1TransactionalItemIdentificationKey = json['gs1TransactionalItemIdentificationKey'];
        dataCarrier = json['dataCarrier'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'gs1TransactionalItemIdentificationKey': gs1TransactionalItemIdentificationKey,
        'dataCarrier': dataCarrier
    };

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

class TradeItemWaste implements IConvertible
{
    String wasteIdentification = "";
    List<AvpList> typeOfWaste = [];

    TradeItemWaste({this.wasteIdentification,this.typeOfWaste});
    TradeItemWaste.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

    Map<String, dynamic> toJson() => {
        'wasteIdentification': wasteIdentification,
        'typeOfWaste': JsonConverters.toJson(typeOfWaste,'List<AvpList>',context!)
    };

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

class TransactionalItemOrganicInformation implements IConvertible
{
    bool? isTradeItemOrganic;
    String organicCertification = "";

    TransactionalItemOrganicInformation({this.isTradeItemOrganic,this.organicCertification});
    TransactionalItemOrganicInformation.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        isTradeItemOrganic = json['isTradeItemOrganic'];
        organicCertification = json['organicCertification'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'isTradeItemOrganic': isTradeItemOrganic,
        'organicCertification': organicCertification
    };

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

class TransactionalItemData implements IConvertible
{
    DateTime? availableForSaleDate;
    String batchNumber = "";
    DateTime? bestBeforeDate;
    String countryOfOrigin = "";
    DateTime? itemExpirationDate;
    String lotNumber = "";
    DateTime? packagingDate;
    DateTime? productionDate;
    String productQualityIndication = "";
    DateTime? sellByDate;
    List<String> serialNumber = [];
    String shelfLife = "";
    int? tradeItemQuantity;
    bool? itemInContactWithFoodProduct;
    List<TransactionalItem> transactionalItemWeight = [];
    List<TransactionalItem> transactionalItemVolume = [];
    List<SerialNumberRange> serialNumberRange = [];
    List<TransactionalItemDimension> transactionalItemDimensions = [];
    TransactionalItemLogisticUnitInformation transactionalItemLogisticUnitInformation;
    TransactionalItemDataCarrierAndIdentification transactionalItemDataCarrierAndIdentification;
    List<TradeItemWaste> tradeItemWaste = [];
    TransactionalItemOrganicInformation transactionalItemOrganicInformation;
    List<AvpList> avpList = [];

    TransactionalItemData({this.availableForSaleDate,this.batchNumber,this.bestBeforeDate,this.countryOfOrigin,this.itemExpirationDate,this.lotNumber,this.packagingDate,this.productionDate,this.productQualityIndication,this.sellByDate,this.serialNumber,this.shelfLife,this.tradeItemQuantity,this.itemInContactWithFoodProduct,this.transactionalItemWeight,this.transactionalItemVolume,this.serialNumberRange,this.transactionalItemDimensions,this.transactionalItemLogisticUnitInformation,this.transactionalItemDataCarrierAndIdentification,this.tradeItemWaste,this.transactionalItemOrganicInformation,this.avpList});
    TransactionalItemData.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        availableForSaleDate = JsonConverters.fromJson(json['availableForSaleDate'],'DateTime',context!);
        batchNumber = json['batchNumber'];
        bestBeforeDate = JsonConverters.fromJson(json['bestBeforeDate'],'DateTime',context!);
        countryOfOrigin = json['countryOfOrigin'];
        itemExpirationDate = JsonConverters.fromJson(json['itemExpirationDate'],'DateTime',context!);
        lotNumber = json['lotNumber'];
        packagingDate = JsonConverters.fromJson(json['packagingDate'],'DateTime',context!);
        productionDate = JsonConverters.fromJson(json['productionDate'],'DateTime',context!);
        productQualityIndication = json['productQualityIndication'];
        sellByDate = JsonConverters.fromJson(json['sellByDate'],'DateTime',context!);
        serialNumber = JsonConverters.fromJson(json['serialNumber'],'List<String>',context!);
        shelfLife = json['shelfLife'];
        tradeItemQuantity = json['tradeItemQuantity'];
        itemInContactWithFoodProduct = json['itemInContactWithFoodProduct'];
        transactionalItemWeight = JsonConverters.fromJson(json['transactionalItemWeight'],'List<TransactionalItem>',context!);
        transactionalItemVolume = JsonConverters.fromJson(json['transactionalItemVolume'],'List<TransactionalItem>',context!);
        serialNumberRange = JsonConverters.fromJson(json['serialNumberRange'],'List<SerialNumberRange>',context!);
        transactionalItemDimensions = JsonConverters.fromJson(json['transactionalItemDimensions'],'List<TransactionalItemDimension>',context!);
        transactionalItemLogisticUnitInformation = JsonConverters.fromJson(json['transactionalItemLogisticUnitInformation'],'TransactionalItemLogisticUnitInformation',context!);
        transactionalItemDataCarrierAndIdentification = JsonConverters.fromJson(json['transactionalItemDataCarrierAndIdentification'],'TransactionalItemDataCarrierAndIdentification',context!);
        tradeItemWaste = JsonConverters.fromJson(json['tradeItemWaste'],'List<TradeItemWaste>',context!);
        transactionalItemOrganicInformation = JsonConverters.fromJson(json['transactionalItemOrganicInformation'],'TransactionalItemOrganicInformation',context!);
        avpList = JsonConverters.fromJson(json['avpList'],'List<AvpList>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'availableForSaleDate': JsonConverters.toJson(availableForSaleDate,'DateTime',context!),
        'batchNumber': batchNumber,
        'bestBeforeDate': JsonConverters.toJson(bestBeforeDate,'DateTime',context!),
        'countryOfOrigin': countryOfOrigin,
        'itemExpirationDate': JsonConverters.toJson(itemExpirationDate,'DateTime',context!),
        'lotNumber': lotNumber,
        'packagingDate': JsonConverters.toJson(packagingDate,'DateTime',context!),
        'productionDate': JsonConverters.toJson(productionDate,'DateTime',context!),
        'productQualityIndication': productQualityIndication,
        'sellByDate': JsonConverters.toJson(sellByDate,'DateTime',context!),
        'serialNumber': JsonConverters.toJson(serialNumber,'List<String>',context!),
        'shelfLife': shelfLife,
        'tradeItemQuantity': tradeItemQuantity,
        'itemInContactWithFoodProduct': itemInContactWithFoodProduct,
        'transactionalItemWeight': JsonConverters.toJson(transactionalItemWeight,'List<TransactionalItem>',context!),
        'transactionalItemVolume': JsonConverters.toJson(transactionalItemVolume,'List<TransactionalItem>',context!),
        'serialNumberRange': JsonConverters.toJson(serialNumberRange,'List<SerialNumberRange>',context!),
        'transactionalItemDimensions': JsonConverters.toJson(transactionalItemDimensions,'List<TransactionalItemDimension>',context!),
        'transactionalItemLogisticUnitInformation': JsonConverters.toJson(transactionalItemLogisticUnitInformation,'TransactionalItemLogisticUnitInformation',context!),
        'transactionalItemDataCarrierAndIdentification': JsonConverters.toJson(transactionalItemDataCarrierAndIdentification,'TransactionalItemDataCarrierAndIdentification',context!),
        'tradeItemWaste': JsonConverters.toJson(tradeItemWaste,'List<TradeItemWaste>',context!),
        'transactionalItemOrganicInformation': JsonConverters.toJson(transactionalItemOrganicInformation,'TransactionalItemOrganicInformation',context!),
        'avpList': JsonConverters.toJson(avpList,'List<AvpList>',context!)
    };

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

class Colour implements IConvertible
{
    String colourCode = "";
    String colourDescription = "";

    Colour({this.colourCode,this.colourDescription});
    Colour.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        colourCode = json['colourCode'];
        colourDescription = json['colourDescription'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'colourCode': colourCode,
        'colourDescription': colourDescription
    };

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

class Size implements IConvertible
{
    String descriptiveSize = "";
    String sizeCode = "";

    Size({this.descriptiveSize,this.sizeCode});
    Size.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        descriptiveSize = json['descriptiveSize'];
        sizeCode = json['sizeCode'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'descriptiveSize': descriptiveSize,
        'sizeCode': sizeCode
    };

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

class TradeItemClassification implements IConvertible
{
    String gpcCategoryCode = "";
    List<AvpList> additionalTradeItemClassificationCode = [];
    String gpcCategoryName = "";
    List<AvpList> gpcAttribute = [];

    TradeItemClassification({this.gpcCategoryCode,this.additionalTradeItemClassificationCode,this.gpcCategoryName,this.gpcAttribute});
    TradeItemClassification.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        gpcCategoryCode = json['gpcCategoryCode'];
        additionalTradeItemClassificationCode = JsonConverters.fromJson(json['additionalTradeItemClassificationCode'],'List<AvpList>',context!);
        gpcCategoryName = json['gpcCategoryName'];
        gpcAttribute = JsonConverters.fromJson(json['gpcAttribute'],'List<AvpList>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'gpcCategoryCode': gpcCategoryCode,
        'additionalTradeItemClassificationCode': JsonConverters.toJson(additionalTradeItemClassificationCode,'List<AvpList>',context!),
        'gpcCategoryName': gpcCategoryName,
        'gpcAttribute': JsonConverters.toJson(gpcAttribute,'List<AvpList>',context!)
    };

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

class TransactionalTradeItem implements IConvertible
{
    String gtin = "";
    List<AvpList> additionalTradeItemIdentification = [];
    double? tradeItemQuantity;
    String tradeItemDescription = "";
    String productVariantIdentifier = "";
    String itemTypeCode = "";
    String tradeItemDataOwner = "";
    String butterFatReference = "";
    List<TransactionalItemData> transactionalItemData = [];
    List<Colour> colour = [];
    Size size;
    TradeItemClassification tradeItemClassification;
    List<AvpList> avpList = [];

    TransactionalTradeItem({this.gtin,this.additionalTradeItemIdentification,this.tradeItemQuantity,this.tradeItemDescription,this.productVariantIdentifier,this.itemTypeCode,this.tradeItemDataOwner,this.butterFatReference,this.transactionalItemData,this.colour,this.size,this.tradeItemClassification,this.avpList});
    TransactionalTradeItem.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        gtin = json['gtin'];
        additionalTradeItemIdentification = JsonConverters.fromJson(json['additionalTradeItemIdentification'],'List<AvpList>',context!);
        tradeItemQuantity = JsonConverters.toDouble(json['tradeItemQuantity']);
        tradeItemDescription = json['tradeItemDescription'];
        productVariantIdentifier = json['productVariantIdentifier'];
        itemTypeCode = json['itemTypeCode'];
        tradeItemDataOwner = json['tradeItemDataOwner'];
        butterFatReference = json['butterFatReference'];
        transactionalItemData = JsonConverters.fromJson(json['transactionalItemData'],'List<TransactionalItemData>',context!);
        colour = JsonConverters.fromJson(json['colour'],'List<Colour>',context!);
        size = JsonConverters.fromJson(json['size'],'Size',context!);
        tradeItemClassification = JsonConverters.fromJson(json['tradeItemClassification'],'TradeItemClassification',context!);
        avpList = JsonConverters.fromJson(json['avpList'],'List<AvpList>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'gtin': gtin,
        'additionalTradeItemIdentification': JsonConverters.toJson(additionalTradeItemIdentification,'List<AvpList>',context!),
        'tradeItemQuantity': tradeItemQuantity,
        'tradeItemDescription': tradeItemDescription,
        'productVariantIdentifier': productVariantIdentifier,
        'itemTypeCode': itemTypeCode,
        'tradeItemDataOwner': tradeItemDataOwner,
        'butterFatReference': butterFatReference,
        'transactionalItemData': JsonConverters.toJson(transactionalItemData,'List<TransactionalItemData>',context!),
        'colour': JsonConverters.toJson(colour,'List<Colour>',context!),
        'size': JsonConverters.toJson(size,'Size',context!),
        'tradeItemClassification': JsonConverters.toJson(tradeItemClassification,'TradeItemClassification',context!),
        'avpList': JsonConverters.toJson(avpList,'List<AvpList>',context!)
    };

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

class LeviedDutyFeeTax implements IConvertible
{
    double? dutyFeeTaxAmount;
    double? dutyFeeTaxBasisAmount;
    String dutyFeeTaxDescription = "";
    double? dutyFeeTaxPercentage;

    LeviedDutyFeeTax({this.dutyFeeTaxAmount,this.dutyFeeTaxBasisAmount,this.dutyFeeTaxDescription,this.dutyFeeTaxPercentage});
    LeviedDutyFeeTax.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        dutyFeeTaxAmount = JsonConverters.toDouble(json['dutyFeeTaxAmount']);
        dutyFeeTaxBasisAmount = JsonConverters.toDouble(json['dutyFeeTaxBasisAmount']);
        dutyFeeTaxDescription = json['dutyFeeTaxDescription'];
        dutyFeeTaxPercentage = JsonConverters.toDouble(json['dutyFeeTaxPercentage']);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'dutyFeeTaxAmount': dutyFeeTaxAmount,
        'dutyFeeTaxBasisAmount': dutyFeeTaxBasisAmount,
        'dutyFeeTaxDescription': dutyFeeTaxDescription,
        'dutyFeeTaxPercentage': dutyFeeTaxPercentage
    };

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

class OrderLineItemDetail implements IConvertible
{
    Quantity requestedQuantity;
    OrderLogisticalInformation orderLogisticalInformation;
    List<AvpList> avpList = [];

    OrderLineItemDetail({this.requestedQuantity,this.orderLogisticalInformation,this.avpList});
    OrderLineItemDetail.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        requestedQuantity = JsonConverters.fromJson(json['requestedQuantity'],'Quantity',context!);
        orderLogisticalInformation = JsonConverters.fromJson(json['orderLogisticalInformation'],'OrderLogisticalInformation',context!);
        avpList = JsonConverters.fromJson(json['avpList'],'List<AvpList>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'requestedQuantity': JsonConverters.toJson(requestedQuantity,'Quantity',context!),
        'orderLogisticalInformation': JsonConverters.toJson(orderLogisticalInformation,'OrderLogisticalInformation',context!),
        'avpList': JsonConverters.toJson(avpList,'List<AvpList>',context!)
    };

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

class OrderLineItem implements IConvertible
{
    Quantity freeGoodsQuantity;
    Quantity itemPriceBaseQuantity;
    Quantity requestedQuantity;
    String lineItemActionCode = "";
    int? lineItemNumber;
    double? listPrice;
    double? monetaryAmountExcludingTaxes;
    double? monetaryAmountIncludingTaxes;
    double? netAmount;
    double? netPrice;
    String note = "";
    String orderLineItemInstructionCode = "";
    double? parentLineItemNumber;
    double? recommendedRetailPrice;
    String orderLineItemPriority = "";
    List<AvpList> additionalOrderLineInstruction = [];
    List<AllowanceCharge> allowanceCharge = [];
    List<AdministrativeUnit> administrativeUnit = [];
    TransactionalTradeItem transactionalTradeItem;
    LeviedDutyFeeTax leviedDutyFeeTax;
    DocumentReference contract;
    DocumentReference promotionalDeal;
    DocumentReference purchaseConditions;
    List<AvpList> avpList = [];
    List<OrderLineItemDetail> orderLineItemDetail = [];

    OrderLineItem({this.freeGoodsQuantity,this.itemPriceBaseQuantity,this.requestedQuantity,this.lineItemActionCode,this.lineItemNumber,this.listPrice,this.monetaryAmountExcludingTaxes,this.monetaryAmountIncludingTaxes,this.netAmount,this.netPrice,this.note,this.orderLineItemInstructionCode,this.parentLineItemNumber,this.recommendedRetailPrice,this.orderLineItemPriority,this.additionalOrderLineInstruction,this.allowanceCharge,this.administrativeUnit,this.transactionalTradeItem,this.leviedDutyFeeTax,this.contract,this.promotionalDeal,this.purchaseConditions,this.avpList,this.orderLineItemDetail});
    OrderLineItem.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        freeGoodsQuantity = JsonConverters.fromJson(json['freeGoodsQuantity'],'Quantity',context!);
        itemPriceBaseQuantity = JsonConverters.fromJson(json['itemPriceBaseQuantity'],'Quantity',context!);
        requestedQuantity = JsonConverters.fromJson(json['requestedQuantity'],'Quantity',context!);
        lineItemActionCode = json['lineItemActionCode'];
        lineItemNumber = json['lineItemNumber'];
        listPrice = JsonConverters.toDouble(json['listPrice']);
        monetaryAmountExcludingTaxes = JsonConverters.toDouble(json['monetaryAmountExcludingTaxes']);
        monetaryAmountIncludingTaxes = JsonConverters.toDouble(json['monetaryAmountIncludingTaxes']);
        netAmount = JsonConverters.toDouble(json['netAmount']);
        netPrice = JsonConverters.toDouble(json['netPrice']);
        note = json['note'];
        orderLineItemInstructionCode = json['orderLineItemInstructionCode'];
        parentLineItemNumber = JsonConverters.toDouble(json['parentLineItemNumber']);
        recommendedRetailPrice = JsonConverters.toDouble(json['recommendedRetailPrice']);
        orderLineItemPriority = json['orderLineItemPriority'];
        additionalOrderLineInstruction = JsonConverters.fromJson(json['additionalOrderLineInstruction'],'List<AvpList>',context!);
        allowanceCharge = JsonConverters.fromJson(json['allowanceCharge'],'List<AllowanceCharge>',context!);
        administrativeUnit = JsonConverters.fromJson(json['administrativeUnit'],'List<AdministrativeUnit>',context!);
        transactionalTradeItem = JsonConverters.fromJson(json['transactionalTradeItem'],'TransactionalTradeItem',context!);
        leviedDutyFeeTax = JsonConverters.fromJson(json['leviedDutyFeeTax'],'LeviedDutyFeeTax',context!);
        contract = JsonConverters.fromJson(json['contract'],'DocumentReference',context!);
        promotionalDeal = JsonConverters.fromJson(json['promotionalDeal'],'DocumentReference',context!);
        purchaseConditions = JsonConverters.fromJson(json['purchaseConditions'],'DocumentReference',context!);
        avpList = JsonConverters.fromJson(json['avpList'],'List<AvpList>',context!);
        orderLineItemDetail = JsonConverters.fromJson(json['orderLineItemDetail'],'List<OrderLineItemDetail>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'freeGoodsQuantity': JsonConverters.toJson(freeGoodsQuantity,'Quantity',context!),
        'itemPriceBaseQuantity': JsonConverters.toJson(itemPriceBaseQuantity,'Quantity',context!),
        'requestedQuantity': JsonConverters.toJson(requestedQuantity,'Quantity',context!),
        'lineItemActionCode': lineItemActionCode,
        'lineItemNumber': lineItemNumber,
        'listPrice': listPrice,
        'monetaryAmountExcludingTaxes': monetaryAmountExcludingTaxes,
        'monetaryAmountIncludingTaxes': monetaryAmountIncludingTaxes,
        'netAmount': netAmount,
        'netPrice': netPrice,
        'note': note,
        'orderLineItemInstructionCode': orderLineItemInstructionCode,
        'parentLineItemNumber': parentLineItemNumber,
        'recommendedRetailPrice': recommendedRetailPrice,
        'orderLineItemPriority': orderLineItemPriority,
        'additionalOrderLineInstruction': JsonConverters.toJson(additionalOrderLineInstruction,'List<AvpList>',context!),
        'allowanceCharge': JsonConverters.toJson(allowanceCharge,'List<AllowanceCharge>',context!),
        'administrativeUnit': JsonConverters.toJson(administrativeUnit,'List<AdministrativeUnit>',context!),
        'transactionalTradeItem': JsonConverters.toJson(transactionalTradeItem,'TransactionalTradeItem',context!),
        'leviedDutyFeeTax': JsonConverters.toJson(leviedDutyFeeTax,'LeviedDutyFeeTax',context!),
        'contract': JsonConverters.toJson(contract,'DocumentReference',context!),
        'promotionalDeal': JsonConverters.toJson(promotionalDeal,'DocumentReference',context!),
        'purchaseConditions': JsonConverters.toJson(purchaseConditions,'DocumentReference',context!),
        'avpList': JsonConverters.toJson(avpList,'List<AvpList>',context!),
        'orderLineItemDetail': JsonConverters.toJson(orderLineItemDetail,'List<OrderLineItemDetail>',context!)
    };

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

class Order extends BaseDocument implements IConvertible
{
    DateTime? documentEffectiveDate;
    String additionalOrderInstruction = "";
    bool? isApplicationReceiptAcknowledgementRequired;
    bool? isOrderFreeOfExciseTaxDuty;
    String note = "";
    String orderEntryType = "";
    String orderInstructionCode = "";
    String orderPriority = "";
    String orderTypeCode = "";
    double? totalMonetaryAmountExcludingTaxes;
    double? totalMonetaryAmountIncludingTaxes;
    double? totalTaxAmount;
    String paymentTerms = "";
    Ecom_EntityIdentification orderIdentification;
    OrderLogisticalInformation orderLogisticalInformation;
    List<AdministrativeUnit> administrativeUnit = [];
    DeliveryTerms deliveryTerms;
    List<AvpList> transactionalGenericReference = [];
    List<ReferencedOrder> referencedOrder = [];
    TransactionalParty billTo;
    TransactionalParty buyer;
    TransactionalParty pickupFrom;
    TransactionalParty seller;
    TransactionalParty ultimateConsignee;
    DocumentReference contract;
    DocumentReference quoteNumber;
    DocumentReference promotionalDeal;
    DocumentReference tradeAgreement;
    DateTime? deliveryDateAccordingToSchedule;
    DateTime? latestDeliveryDate;
    List<AllowanceCharge> allowanceCharge = [];
    List<OrderLineItem> orderLineItem = [];

    Order({this.documentEffectiveDate,this.additionalOrderInstruction,this.isApplicationReceiptAcknowledgementRequired,this.isOrderFreeOfExciseTaxDuty,this.note,this.orderEntryType,this.orderInstructionCode,this.orderPriority,this.orderTypeCode,this.totalMonetaryAmountExcludingTaxes,this.totalMonetaryAmountIncludingTaxes,this.totalTaxAmount,this.paymentTerms,this.orderIdentification,this.orderLogisticalInformation,this.administrativeUnit,this.deliveryTerms,this.transactionalGenericReference,this.referencedOrder,this.billTo,this.buyer,this.pickupFrom,this.seller,this.ultimateConsignee,this.contract,this.quoteNumber,this.promotionalDeal,this.tradeAgreement,this.deliveryDateAccordingToSchedule,this.latestDeliveryDate,this.allowanceCharge,this.orderLineItem});
    Order.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        documentEffectiveDate = JsonConverters.fromJson(json['documentEffectiveDate'],'DateTime',context!);
        additionalOrderInstruction = json['additionalOrderInstruction'];
        isApplicationReceiptAcknowledgementRequired = json['isApplicationReceiptAcknowledgementRequired'];
        isOrderFreeOfExciseTaxDuty = json['isOrderFreeOfExciseTaxDuty'];
        note = json['note'];
        orderEntryType = json['orderEntryType'];
        orderInstructionCode = json['orderInstructionCode'];
        orderPriority = json['orderPriority'];
        orderTypeCode = json['orderTypeCode'];
        totalMonetaryAmountExcludingTaxes = JsonConverters.toDouble(json['totalMonetaryAmountExcludingTaxes']);
        totalMonetaryAmountIncludingTaxes = JsonConverters.toDouble(json['totalMonetaryAmountIncludingTaxes']);
        totalTaxAmount = JsonConverters.toDouble(json['totalTaxAmount']);
        paymentTerms = json['paymentTerms'];
        orderIdentification = JsonConverters.fromJson(json['orderIdentification'],'Ecom_EntityIdentification',context!);
        orderLogisticalInformation = JsonConverters.fromJson(json['orderLogisticalInformation'],'OrderLogisticalInformation',context!);
        administrativeUnit = JsonConverters.fromJson(json['administrativeUnit'],'List<AdministrativeUnit>',context!);
        deliveryTerms = JsonConverters.fromJson(json['deliveryTerms'],'DeliveryTerms',context!);
        transactionalGenericReference = JsonConverters.fromJson(json['transactionalGenericReference'],'List<AvpList>',context!);
        referencedOrder = JsonConverters.fromJson(json['referencedOrder'],'List<ReferencedOrder>',context!);
        billTo = JsonConverters.fromJson(json['billTo'],'TransactionalParty',context!);
        buyer = JsonConverters.fromJson(json['buyer'],'TransactionalParty',context!);
        pickupFrom = JsonConverters.fromJson(json['pickupFrom'],'TransactionalParty',context!);
        seller = JsonConverters.fromJson(json['seller'],'TransactionalParty',context!);
        ultimateConsignee = JsonConverters.fromJson(json['ultimateConsignee'],'TransactionalParty',context!);
        contract = JsonConverters.fromJson(json['contract'],'DocumentReference',context!);
        quoteNumber = JsonConverters.fromJson(json['quoteNumber'],'DocumentReference',context!);
        promotionalDeal = JsonConverters.fromJson(json['promotionalDeal'],'DocumentReference',context!);
        tradeAgreement = JsonConverters.fromJson(json['tradeAgreement'],'DocumentReference',context!);
        deliveryDateAccordingToSchedule = JsonConverters.fromJson(json['deliveryDateAccordingToSchedule'],'DateTime',context!);
        latestDeliveryDate = JsonConverters.fromJson(json['latestDeliveryDate'],'DateTime',context!);
        allowanceCharge = JsonConverters.fromJson(json['allowanceCharge'],'List<AllowanceCharge>',context!);
        orderLineItem = JsonConverters.fromJson(json['orderLineItem'],'List<OrderLineItem>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'documentEffectiveDate': JsonConverters.toJson(documentEffectiveDate,'DateTime',context!),
        'additionalOrderInstruction': additionalOrderInstruction,
        'isApplicationReceiptAcknowledgementRequired': isApplicationReceiptAcknowledgementRequired,
        'isOrderFreeOfExciseTaxDuty': isOrderFreeOfExciseTaxDuty,
        'note': note,
        'orderEntryType': orderEntryType,
        'orderInstructionCode': orderInstructionCode,
        'orderPriority': orderPriority,
        'orderTypeCode': orderTypeCode,
        'totalMonetaryAmountExcludingTaxes': totalMonetaryAmountExcludingTaxes,
        'totalMonetaryAmountIncludingTaxes': totalMonetaryAmountIncludingTaxes,
        'totalTaxAmount': totalTaxAmount,
        'paymentTerms': paymentTerms,
        'orderIdentification': JsonConverters.toJson(orderIdentification,'Ecom_EntityIdentification',context!),
        'orderLogisticalInformation': JsonConverters.toJson(orderLogisticalInformation,'OrderLogisticalInformation',context!),
        'administrativeUnit': JsonConverters.toJson(administrativeUnit,'List<AdministrativeUnit>',context!),
        'deliveryTerms': JsonConverters.toJson(deliveryTerms,'DeliveryTerms',context!),
        'transactionalGenericReference': JsonConverters.toJson(transactionalGenericReference,'List<AvpList>',context!),
        'referencedOrder': JsonConverters.toJson(referencedOrder,'List<ReferencedOrder>',context!),
        'billTo': JsonConverters.toJson(billTo,'TransactionalParty',context!),
        'buyer': JsonConverters.toJson(buyer,'TransactionalParty',context!),
        'pickupFrom': JsonConverters.toJson(pickupFrom,'TransactionalParty',context!),
        'seller': JsonConverters.toJson(seller,'TransactionalParty',context!),
        'ultimateConsignee': JsonConverters.toJson(ultimateConsignee,'TransactionalParty',context!),
        'contract': JsonConverters.toJson(contract,'DocumentReference',context!),
        'quoteNumber': JsonConverters.toJson(quoteNumber,'DocumentReference',context!),
        'promotionalDeal': JsonConverters.toJson(promotionalDeal,'DocumentReference',context!),
        'tradeAgreement': JsonConverters.toJson(tradeAgreement,'DocumentReference',context!),
        'deliveryDateAccordingToSchedule': JsonConverters.toJson(deliveryDateAccordingToSchedule,'DateTime',context!),
        'latestDeliveryDate': JsonConverters.toJson(latestDeliveryDate,'DateTime',context!),
        'allowanceCharge': JsonConverters.toJson(allowanceCharge,'List<AllowanceCharge>',context!),
        'orderLineItem': JsonConverters.toJson(orderLineItem,'List<OrderLineItem>',context!)
    });

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

class OrderMessage implements IConvertible
{
    Header header;
    Order order;

    OrderMessage({this.header,this.order});
    OrderMessage.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        header = JsonConverters.fromJson(json['header'],'Header',context!);
        order = JsonConverters.fromJson(json['order'],'Order',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'header': JsonConverters.toJson(header,'Header',context!),
        'order': JsonConverters.toJson(order,'Order',context!)
    };

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

/**
* Order
*/
// @Api(Description="Order")
// @ApiResponse(Description="Order data", IsDefaultResponse=true, StatusCode=200)
// @ApiResponse(Description="No Content", ResponseType=typeof(IReturnVoid), StatusCode=204)
// @ApiResponse(Description="Specified argument was out of the range of valid values.", ResponseType=typeof(ArgumentOutOfRangeException), StatusCode=400)
class GetOrderById implements IGetDocumentById, IConvertible
{
    /**
    * Order ID or Token
    */
    // @ApiMember(Description="Order ID or Token", ExcludeInSchema=true, ParameterType="path")
    String id = "";

    GetOrderById({this.id});
    GetOrderById.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

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

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

TypeContext _ctx = TypeContext(library: 'stf_api_uat.data_xchange.co.za', types: <String, TypeInfo> {
    'DocumentIdentification': TypeInfo(TypeOf.Class, create:() => DocumentIdentification()),
    'Identifier': TypeInfo(TypeOf.Class, create:() => Identifier()),
    'ContactInformation': TypeInfo(TypeOf.Class, create:() => ContactInformation()),
    'Partner': TypeInfo(TypeOf.Class, create:() => Partner()),
    'List<ContactInformation>': TypeInfo(TypeOf.Class, create:() => <ContactInformation>[]),
    'Header': TypeInfo(TypeOf.Class, create:() => Header()),
    'DocumentAction': TypeInfo(TypeOf.Enum, enumValues:DocumentAction.values),
    'DocumentStatus': TypeInfo(TypeOf.Enum, enumValues:DocumentStatus.values),
    'AvpList': TypeInfo(TypeOf.Class, create:() => AvpList()),
    'BaseDocument': TypeInfo(TypeOf.Class, create:() => BaseDocument()),
    'List<AvpList>': TypeInfo(TypeOf.Class, create:() => <AvpList>[]),
    'Ecom_PartyIdentification': TypeInfo(TypeOf.Class, create:() => Ecom_PartyIdentification()),
    'Ecom_EntityIdentification': TypeInfo(TypeOf.Class, create:() => Ecom_EntityIdentification()),
    'Code': TypeInfo(TypeOf.Class, create:() => Code()),
    'DateRange': TypeInfo(TypeOf.Class, create:() => DateRange()),
    'OrderLogisticalDateInformation': TypeInfo(TypeOf.Class, create:() => OrderLogisticalDateInformation()),
    'Ecom_PartyIdentificationType': TypeInfo(TypeOf.Class, create:() => Ecom_PartyIdentificationType()),
    'CommunicationChannel': TypeInfo(TypeOf.Class, create:() => CommunicationChannel()),
    'Contact': TypeInfo(TypeOf.Class, create:() => Contact()),
    'List<CommunicationChannel>': TypeInfo(TypeOf.Class, create:() => <CommunicationChannel>[]),
    'Address': TypeInfo(TypeOf.Class, create:() => Address()),
    'FinancialRoutingNumber': TypeInfo(TypeOf.Class, create:() => FinancialRoutingNumber()),
    'FinancialAccount': TypeInfo(TypeOf.Class, create:() => FinancialAccount()),
    'FinancialInstitutionInformation': TypeInfo(TypeOf.Class, create:() => FinancialInstitutionInformation()),
    'TransactionalParty': TypeInfo(TypeOf.Class, create:() => TransactionalParty()),
    'List<Contact>': TypeInfo(TypeOf.Class, create:() => <Contact>[]),
    'ShipmentTransportationInformation': TypeInfo(TypeOf.Class, create:() => ShipmentTransportationInformation()),
    'OrderLogisticalInformation': TypeInfo(TypeOf.Class, create:() => OrderLogisticalInformation()),
    'AdministrativeUnit': TypeInfo(TypeOf.Class, create:() => AdministrativeUnit()),
    'DeliveryTermsLocation': TypeInfo(TypeOf.Class, create:() => DeliveryTermsLocation()),
    'DeliveryTerms': TypeInfo(TypeOf.Class, create:() => DeliveryTerms()),
    'DocumentReference': TypeInfo(TypeOf.Class, create:() => DocumentReference()),
    'ReferencedOrder': TypeInfo(TypeOf.Class, create:() => ReferencedOrder()),
    'AllowanceCharge': TypeInfo(TypeOf.Class, create:() => AllowanceCharge()),
    'Quantity': TypeInfo(TypeOf.Class, create:() => Quantity()),
    'TransactionalItem': TypeInfo(TypeOf.Class, create:() => TransactionalItem()),
    'SerialNumberRange': TypeInfo(TypeOf.Class, create:() => SerialNumberRange()),
    'TransactionalItemDimension': TypeInfo(TypeOf.Class, create:() => TransactionalItemDimension()),
    'TransactionalItemLogisticUnitInformation': TypeInfo(TypeOf.Class, create:() => TransactionalItemLogisticUnitInformation()),
    'List<TransactionalItemDimension>': TypeInfo(TypeOf.Class, create:() => <TransactionalItemDimension>[]),
    'TransactionalItemDataCarrierAndIdentification': TypeInfo(TypeOf.Class, create:() => TransactionalItemDataCarrierAndIdentification()),
    'TradeItemWaste': TypeInfo(TypeOf.Class, create:() => TradeItemWaste()),
    'TransactionalItemOrganicInformation': TypeInfo(TypeOf.Class, create:() => TransactionalItemOrganicInformation()),
    'TransactionalItemData': TypeInfo(TypeOf.Class, create:() => TransactionalItemData()),
    'List<TransactionalItem>': TypeInfo(TypeOf.Class, create:() => <TransactionalItem>[]),
    'List<SerialNumberRange>': TypeInfo(TypeOf.Class, create:() => <SerialNumberRange>[]),
    'List<TradeItemWaste>': TypeInfo(TypeOf.Class, create:() => <TradeItemWaste>[]),
    'Colour': TypeInfo(TypeOf.Class, create:() => Colour()),
    'Size': TypeInfo(TypeOf.Class, create:() => Size()),
    'TradeItemClassification': TypeInfo(TypeOf.Class, create:() => TradeItemClassification()),
    'TransactionalTradeItem': TypeInfo(TypeOf.Class, create:() => TransactionalTradeItem()),
    'List<TransactionalItemData>': TypeInfo(TypeOf.Class, create:() => <TransactionalItemData>[]),
    'List<Colour>': TypeInfo(TypeOf.Class, create:() => <Colour>[]),
    'LeviedDutyFeeTax': TypeInfo(TypeOf.Class, create:() => LeviedDutyFeeTax()),
    'OrderLineItemDetail': TypeInfo(TypeOf.Class, create:() => OrderLineItemDetail()),
    'OrderLineItem': TypeInfo(TypeOf.Class, create:() => OrderLineItem()),
    'List<AllowanceCharge>': TypeInfo(TypeOf.Class, create:() => <AllowanceCharge>[]),
    'List<AdministrativeUnit>': TypeInfo(TypeOf.Class, create:() => <AdministrativeUnit>[]),
    'List<OrderLineItemDetail>': TypeInfo(TypeOf.Class, create:() => <OrderLineItemDetail>[]),
    'Order': TypeInfo(TypeOf.Class, create:() => Order()),
    'List<ReferencedOrder>': TypeInfo(TypeOf.Class, create:() => <ReferencedOrder>[]),
    'List<OrderLineItem>': TypeInfo(TypeOf.Class, create:() => <OrderLineItem>[]),
    'OrderMessage': TypeInfo(TypeOf.Class, create:() => OrderMessage()),
    'GetOrderById': TypeInfo(TypeOf.Class, create:() => GetOrderById()),
});

Dart GetOrderById 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 /api/order/{Id} HTTP/1.1 
Host: stf-api-uat.data-xchange.co.za 
Accept: application/xml
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<OrderMessage xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/DX.STF.Models.Dto.GS1">
  <Header>
    <documentIdentification>
      <creationDateAndTime>0001-01-01T00:00:00</creationDateAndTime>
      <identifier>String</identifier>
      <type>String</type>
    </documentIdentification>
    <receiver>
      <contactInformation>
        <ContactInformation />
      </contactInformation>
      <identifier>
        <authority>String</authority>
        <text>String</text>
      </identifier>
    </receiver>
    <sender>
      <contactInformation>
        <ContactInformation />
      </contactInformation>
      <identifier>
        <authority>String</authority>
        <text>String</text>
      </identifier>
    </sender>
  </Header>
  <Order>
    <AvpList>
      <AvpList>
        <Code>String</Code>
        <Value>String</Value>
      </AvpList>
    </AvpList>
    <CreationDateTime>0001-01-01T00:00:00</CreationDateTime>
    <CurrencyCode>String</CurrencyCode>
    <DocumentActionCode>ADD</DocumentActionCode>
    <DocumentStatusCode>ADDITIONAL_TRANSMISSION</DocumentStatusCode>
    <DocumentStructureVersion>String</DocumentStructureVersion>
    <LastUpdateDateTime>0001-01-01T00:00:00</LastUpdateDateTime>
    <RevisionNumber>0</RevisionNumber>
    <AdditionalOrderInstruction>String</AdditionalOrderInstruction>
    <AdministrativeUnit>
      <AdministrativeUnit>
        <Gln>String</Gln>
        <InternalIdentification>String</InternalIdentification>
        <TypeCode>String</TypeCode>
      </AdministrativeUnit>
    </AdministrativeUnit>
    <AllowanceCharge>
      <AllowanceCharge>
        <AllowanceChargeAmount>0</AllowanceChargeAmount>
        <AllowanceChargeDescription>String</AllowanceChargeDescription>
        <AllowanceChargePercentage>0</AllowanceChargePercentage>
        <AllowanceChargeType>String</AllowanceChargeType>
        <AllowanceOrChargeType>String</AllowanceOrChargeType>
        <AmountPerUnit>0</AmountPerUnit>
        <BaseAmount>0</BaseAmount>
        <BaseNumberOfUnits>String</BaseNumberOfUnits>
        <BracketIdentifier>String</BracketIdentifier>
        <EffectiveDateType>0001-01-01T00:00:00</EffectiveDateType>
        <SequenceNumber>String</SequenceNumber>
        <SettlementType>String</SettlementType>
        <SpecialServiceType>String</SpecialServiceType>
      </AllowanceCharge>
    </AllowanceCharge>
    <BillTo>
      <AdditionalPartyIdentification>
        <AvpList>
          <Code>String</Code>
          <Value>String</Value>
        </AvpList>
      </AdditionalPartyIdentification>
      <Gln>String</Gln>
      <Name>String</Name>
      <Address>
        <City>String</City>
        <CountryCode>String</CountryCode>
        <PostalCode>String</PostalCode>
        <ProvinceCode>String</ProvinceCode>
        <StreetAddressOne>String</StreetAddressOne>
        <StreetAddressThree>String</StreetAddressThree>
        <StreetAddressTwo>String</StreetAddressTwo>
      </Address>
      <CommunicationChannel>
        <AvpList>
          <Code>String</Code>
          <Value>String</Value>
        </AvpList>
      </CommunicationChannel>
      <Contact>
        <Contact>
          <CommunicationChannel>
            <CommunicationChannel>
              <CommunicationChannelCode>String</CommunicationChannelCode>
              <CommunicationChannelName>String</CommunicationChannelName>
              <CommunicationValue>String</CommunicationValue>
            </CommunicationChannel>
          </CommunicationChannel>
          <ContactTypeCode>String</ContactTypeCode>
          <DepartmentName>String</DepartmentName>
          <JobTitle>String</JobTitle>
          <PersonName>String</PersonName>
          <Responsibility>String</Responsibility>
        </Contact>
      </Contact>
      <DutyFeeTaxRegistration>String</DutyFeeTaxRegistration>
      <EntityIdentification>String</EntityIdentification>
      <FinancialInstitutionInformation>
        <ExportersCode>String</ExportersCode>
        <FinancialAccount>
          <Name>String</Name>
          <Number>String</Number>
          <NumberTypeCode>String</NumberTypeCode>
        </FinancialAccount>
        <FinancialInstitutionBranchName>String</FinancialInstitutionBranchName>
        <FinancialInstitutionName>String</FinancialInstitutionName>
        <FinancialRoutingNumber>
          <Number>String</Number>
          <NumberTypeCode>String</NumberTypeCode>
        </FinancialRoutingNumber>
        <SwiftCode>String</SwiftCode>
      </FinancialInstitutionInformation>
    </BillTo>
    <Buyer>
      <AdditionalPartyIdentification>
        <AvpList>
          <Code>String</Code>
          <Value>String</Value>
        </AvpList>
      </AdditionalPartyIdentification>
      <Gln>String</Gln>
      <Name>String</Name>
      <Address>
        <City>String</City>
        <CountryCode>String</CountryCode>
        <PostalCode>String</PostalCode>
        <ProvinceCode>String</ProvinceCode>
        <StreetAddressOne>String</StreetAddressOne>
        <StreetAddressThree>String</StreetAddressThree>
        <StreetAddressTwo>String</StreetAddressTwo>
      </Address>
      <CommunicationChannel>
        <AvpList>
          <Code>String</Code>
          <Value>String</Value>
        </AvpList>
      </CommunicationChannel>
      <Contact>
        <Contact>
          <CommunicationChannel>
            <CommunicationChannel>
              <CommunicationChannelCode>String</CommunicationChannelCode>
              <CommunicationChannelName>String</CommunicationChannelName>
              <CommunicationValue>String</CommunicationValue>
            </CommunicationChannel>
          </CommunicationChannel>
          <ContactTypeCode>String</ContactTypeCode>
          <DepartmentName>String</DepartmentName>
          <JobTitle>String</JobTitle>
          <PersonName>String</PersonName>
          <Responsibility>String</Responsibility>
        </Contact>
      </Contact>
      <DutyFeeTaxRegistration>String</DutyFeeTaxRegistration>
      <EntityIdentification>String</EntityIdentification>
      <FinancialInstitutionInformation>
        <ExportersCode>String</ExportersCode>
        <FinancialAccount>
          <Name>String</Name>
          <Number>String</Number>
          <NumberTypeCode>String</NumberTypeCode>
        </FinancialAccount>
        <FinancialInstitutionBranchName>String</FinancialInstitutionBranchName>
        <FinancialInstitutionName>String</FinancialInstitutionName>
        <FinancialRoutingNumber>
          <Number>String</Number>
          <NumberTypeCode>String</NumberTypeCode>
        </FinancialRoutingNumber>
        <SwiftCode>String</SwiftCode>
      </FinancialInstitutionInformation>
    </Buyer>
    <Contract>
      <CreationDateTime>0001-01-01T00:00:00</CreationDateTime>
      <EntityIdentification>String</EntityIdentification>
      <LineItemNumber>0</LineItemNumber>
      <RevisionNumber>0</RevisionNumber>
    </Contract>
    <DeliveryDateAccordingToSchedule>0001-01-01T00:00:00</DeliveryDateAccordingToSchedule>
    <DeliveryTerms>
      <AlternateDeliveryTermsCode>String</AlternateDeliveryTermsCode>
      <DeliveryCostPayment>String</DeliveryCostPayment>
      <DeliveryInstructions>String</DeliveryInstructions>
      <DeliveryTermsLocation>
        <AdditionalLocationIdentification>
          <AvpList>
            <Code>String</Code>
            <Value>String</Value>
          </AvpList>
        </AdditionalLocationIdentification>
        <Gln>String</Gln>
        <LocationName>String</LocationName>
        <LocationSpecificInstructions>String</LocationSpecificInstructions>
        <SublocationIdentification>String</SublocationIdentification>
        <UnLocationCode>String</UnLocationCode>
      </DeliveryTermsLocation>
      <IncotermsCode>String</IncotermsCode>
      <IsSignatureRequired>String</IsSignatureRequired>
    </DeliveryTerms>
    <DocumentEffectiveDate>0001-01-01T00:00:00</DocumentEffectiveDate>
    <IsApplicationReceiptAcknowledgementRequired>false</IsApplicationReceiptAcknowledgementRequired>
    <IsOrderFreeOfExciseTaxDuty>false</IsOrderFreeOfExciseTaxDuty>
    <LatestDeliveryDate>0001-01-01T00:00:00</LatestDeliveryDate>
    <Note>String</Note>
    <OrderEntryType>String</OrderEntryType>
    <OrderIdentification>
      <ContentOwner>
        <AdditionalPartyIdentification>
          <AvpList>
            <Code>String</Code>
            <Value>String</Value>
          </AvpList>
        </AdditionalPartyIdentification>
        <Gln>String</Gln>
      </ContentOwner>
      <EntityIdentification>String</EntityIdentification>
    </OrderIdentification>
    <OrderInstructionCode>String</OrderInstructionCode>
    <OrderLineItem>
      <OrderLineItem>
        <AdditionalOrderLineInstruction>
          <AvpList>
            <Code>String</Code>
            <Value>String</Value>
          </AvpList>
        </AdditionalOrderLineInstruction>
        <AdministrativeUnit>
          <AdministrativeUnit>
            <Gln>String</Gln>
            <InternalIdentification>String</InternalIdentification>
            <TypeCode>String</TypeCode>
          </AdministrativeUnit>
        </AdministrativeUnit>
        <AllowanceCharge>
          <AllowanceCharge>
            <AllowanceChargeAmount>0</AllowanceChargeAmount>
            <AllowanceChargeDescription>String</AllowanceChargeDescription>
            <AllowanceChargePercentage>0</AllowanceChargePercentage>
            <AllowanceChargeType>String</AllowanceChargeType>
            <AllowanceOrChargeType>String</AllowanceOrChargeType>
            <AmountPerUnit>0</AmountPerUnit>
            <BaseAmount>0</BaseAmount>
            <BaseNumberOfUnits>String</BaseNumberOfUnits>
            <BracketIdentifier>String</BracketIdentifier>
            <EffectiveDateType>0001-01-01T00:00:00</EffectiveDateType>
            <SequenceNumber>String</SequenceNumber>
            <SettlementType>String</SettlementType>
            <SpecialServiceType>String</SpecialServiceType>
          </AllowanceCharge>
        </AllowanceCharge>
        <AvpList>
          <AvpList>
            <Code>String</Code>
            <Value>String</Value>
          </AvpList>
        </AvpList>
        <Contract>
          <CreationDateTime>0001-01-01T00:00:00</CreationDateTime>
          <EntityIdentification>String</EntityIdentification>
          <LineItemNumber>0</LineItemNumber>
          <RevisionNumber>0</RevisionNumber>
        </Contract>
        <FreeGoodsQuantity>
          <CodeListVersion>String</CodeListVersion>
          <MeasurementUnitCode>String</MeasurementUnitCode>
          <Value>0</Value>
        </FreeGoodsQuantity>
        <ItemPriceBaseQuantity>
          <CodeListVersion>String</CodeListVersion>
          <MeasurementUnitCode>String</MeasurementUnitCode>
          <Value>0</Value>
        </ItemPriceBaseQuantity>
        <LeviedDutyFeeTax>
          <DutyFeeTaxAmount>0</DutyFeeTaxAmount>
          <DutyFeeTaxBasisAmount>0</DutyFeeTaxBasisAmount>
          <DutyFeeTaxDescription>String</DutyFeeTaxDescription>
          <DutyFeeTaxPercentage>0</DutyFeeTaxPercentage>
        </LeviedDutyFeeTax>
        <LineItemActionCode>String</LineItemActionCode>
        <LineItemNumber>0</LineItemNumber>
        <ListPrice>0</ListPrice>
        <MonetaryAmountExcludingTaxes>0</MonetaryAmountExcludingTaxes>
        <MonetaryAmountIncludingTaxes>0</MonetaryAmountIncludingTaxes>
        <NetAmount>0</NetAmount>
        <NetPrice>0</NetPrice>
        <Note>String</Note>
        <OrderLineItemDetail>
          <OrderLineItemDetail>
            <AvpList>
              <AvpList>
                <Code>String</Code>
                <Value>String</Value>
              </AvpList>
            </AvpList>
            <OrderLogisticalInformation>
              <CommodityTypeCode>
                <CodeDescription>String</CodeDescription>
                <CodeListAgencyCodeListVersion>String</CodeListAgencyCodeListVersion>
                <CodeListAgencyName>String</CodeListAgencyName>
                <CodeListName>String</CodeListName>
                <CodeListUri>String</CodeListUri>
                <Value>String</Value>
              </CommodityTypeCode>
              <InventoryLocation>
                <AdditionalPartyIdentification>
                  <AvpList>
                    <Code>String</Code>
                    <Value>String</Value>
                  </AvpList>
                </AdditionalPartyIdentification>
                <Gln>String</Gln>
                <Name>String</Name>
                <Address>
                  <City>String</City>
                  <CountryCode>String</CountryCode>
                  <PostalCode>String</PostalCode>
                  <ProvinceCode>String</ProvinceCode>
                  <StreetAddressOne>String</StreetAddressOne>
                  <StreetAddressThree>String</StreetAddressThree>
                  <StreetAddressTwo>String</StreetAddressTwo>
                </Address>
                <CommunicationChannel>
                  <AvpList>
                    <Code>String</Code>
                    <Value>String</Value>
                  </AvpList>
                </CommunicationChannel>
                <Contact>
                  <Contact>
                    <CommunicationChannel>
                      <CommunicationChannel>
                        <CommunicationChannelCode>String</CommunicationChannelCode>
                        <CommunicationChannelName>String</CommunicationChannelName>
                        <CommunicationValue>String</CommunicationValue>
                      </CommunicationChannel>
                    </CommunicationChannel>
                    <ContactTypeCode>String</ContactTypeCode>
                    <DepartmentName>String</DepartmentName>
                    <JobTitle>String</JobTitle>
                    <PersonName>String</PersonName>
                    <Responsibility>String</Responsibility>
                  </Contact>
                </Contact>
                <DutyFeeTaxRegistration>String</DutyFeeTaxRegistration>
                <EntityIdentification>String</EntityIdentification>
                <FinancialInstitutionInformation>
                  <ExportersCode>String</ExportersCode>
                  <FinancialAccount>
                    <Name>String</Name>
                    <Number>String</Number>
                    <NumberTypeCode>String</NumberTypeCode>
                  </FinancialAccount>
                  <FinancialInstitutionBranchName>String</FinancialInstitutionBranchName>
                  <FinancialInstitutionName>String</FinancialInstitutionName>
                  <FinancialRoutingNumber>
                    <Number>String</Number>
                    <NumberTypeCode>String</NumberTypeCode>
                  </FinancialRoutingNumber>
                  <SwiftCode>String</SwiftCode>
                </FinancialInstitutionInformation>
              </InventoryLocation>
              <OrderLogisticalDateInformation>
                <DateRangeDeliveryDateRange>
                  <BeginDate>0001-01-01T00:00:00</BeginDate>
                  <BeginTime>0001-01-01T00:00:00</BeginTime>
                  <EndDate>0001-01-01T00:00:00</EndDate>
                  <EndTime>0001-01-01T00:00:00</EndTime>
                </DateRangeDeliveryDateRange>
                <DateRangeDeliveryDateRangeAtUltimateConsignee>
                  <BeginDate>0001-01-01T00:00:00</BeginDate>
                  <BeginTime>0001-01-01T00:00:00</BeginTime>
                  <EndDate>0001-01-01T00:00:00</EndDate>
                  <EndTime>0001-01-01T00:00:00</EndTime>
                </DateRangeDeliveryDateRangeAtUltimateConsignee>
                <DateRangeShipDateRange>
                  <BeginDate>0001-01-01T00:00:00</BeginDate>
                  <BeginTime>0001-01-01T00:00:00</BeginTime>
                  <EndDate>0001-01-01T00:00:00</EndDate>
                  <EndTime>0001-01-01T00:00:00</EndTime>
                </DateRangeShipDateRange>
                <RequestedDeliveryDateTime>0001-01-01T00:00:00</RequestedDeliveryDateTime>
                <RequestedDeliveryDateTimeAtUltimateConsignee>0001-01-01T00:00:00</RequestedDeliveryDateTimeAtUltimateConsignee>
                <RequestedPickUpDateTime>0001-01-01T00:00:00</RequestedPickUpDateTime>
                <RequestedShipDateTime>String</RequestedShipDateTime>
              </OrderLogisticalDateInformation>
              <ShipFrom>
                <AdditionalPartyIdentification>
                  <AvpList>
                    <Code>String</Code>
                    <Value>String</Value>
                  </AvpList>
                </AdditionalPartyIdentification>
                <Gln>String</Gln>
                <Name>String</Name>
                <Address>
                  <City>String</City>
                  <CountryCode>String</CountryCode>
                  <PostalCode>String</PostalCode>
                  <ProvinceCode>String</ProvinceCode>
                  <StreetAddressOne>String</StreetAddressOne>
                  <StreetAddressThree>String</StreetAddressThree>
                  <StreetAddressTwo>String</StreetAddressTwo>
                </Address>
                <CommunicationChannel>
                  <AvpList>
                    <Code>String</Code>
                    <Value>String</Value>
                  </AvpList>
                </CommunicationChannel>
                <Contact>
                  <Contact>
                    <CommunicationChannel>
                      <CommunicationChannel>
                        <CommunicationChannelCode>String</CommunicationChannelCode>
                        <CommunicationChannelName>String</CommunicationChannelName>
                        <CommunicationValue>String</CommunicationValue>
                      </CommunicationChannel>
                    </CommunicationChannel>
                    <ContactTypeCode>String</ContactTypeCode>
                    <DepartmentName>String</DepartmentName>
                    <JobTitle>String</JobTitle>
                    <PersonName>String</PersonName>
                    <Responsibility>String</Responsibility>
                  </Contact>
                </Contact>
                <DutyFeeTaxRegistration>String</DutyFeeTaxRegistration>
                <EntityIdentification>String</EntityIdentification>
                <FinancialInstitutionInformation>
                  <ExportersCode>String</ExportersCode>
                  <FinancialAccount>
                    <Name>String</Name>
                    <Number>String</Number>
                    <NumberTypeCode>String</NumberTypeCode>
                  </FinancialAccount>
                  <FinancialInstitutionBranchName>String</FinancialInstitutionBranchName>
                  <FinancialInstitutionName>String</FinancialInstitutionName>
                  <FinancialRoutingNumber>
                    <Number>String</Number>
                    <NumberTypeCode>String</NumberTypeCode>
                  </FinancialRoutingNumber>
                  <SwiftCode>String</SwiftCode>
                </FinancialInstitutionInformation>
              </ShipFrom>
              <ShipTo>
                <AdditionalPartyIdentification>
                  <AvpList>
                    <Code>String</Code>
                    <Value>String</Value>
                  </AvpList>
                </AdditionalPartyIdentification>
                <Gln>String</Gln>
                <Name>String</Name>
                <Address>
                  <City>String</City>
                  <CountryCode>String</CountryCode>
                  <PostalCode>String</PostalCode>
                  <ProvinceCode>String</ProvinceCode>
                  <StreetAddressOne>String</StreetAddressOne>
                  <StreetAddressThree>String</StreetAddressThree>
                  <StreetAddressTwo>String</StreetAddressTwo>
                </Address>
                <CommunicationChannel>
                  <AvpList>
                    <Code>String</Code>
                    <Value>String</Value>
                  </AvpList>
                </CommunicationChannel>
                <Contact>
                  <Contact>
                    <CommunicationChannel>
                      <CommunicationChannel>
                        <CommunicationChannelCode>String</CommunicationChannelCode>
                        <CommunicationChannelName>String</CommunicationChannelName>
                        <CommunicationValue>String</CommunicationValue>
                      </CommunicationChannel>
                    </CommunicationChannel>
                    <ContactTypeCode>String</ContactTypeCode>
                    <DepartmentName>String</DepartmentName>
                    <JobTitle>String</JobTitle>
                    <PersonName>String</PersonName>
                    <Responsibility>String</Responsibility>
                  </Contact>
                </Contact>
                <DutyFeeTaxRegistration>String</DutyFeeTaxRegistration>
                <EntityIdentification>String</EntityIdentification>
                <FinancialInstitutionInformation>
                  <ExportersCode>String</ExportersCode>
                  <FinancialAccount>
                    <Name>String</Name>
                    <Number>String</Number>
                    <NumberTypeCode>String</NumberTypeCode>
                  </FinancialAccount>
                  <FinancialInstitutionBranchName>String</FinancialInstitutionBranchName>
                  <FinancialInstitutionName>String</FinancialInstitutionName>
                  <FinancialRoutingNumber>
                    <Number>String</Number>
                    <NumberTypeCode>String</NumberTypeCode>
                  </FinancialRoutingNumber>
                  <SwiftCode>String</SwiftCode>
                </FinancialInstitutionInformation>
              </ShipTo>
              <ShipmentTransportationInformation>
                <Carrier>
                  <AdditionalPartyIdentification>
                    <AvpList>
                      <Code>String</Code>
                      <Value>String</Value>
                    </AvpList>
                  </AdditionalPartyIdentification>
                  <Gln>String</Gln>
                  <Name>String</Name>
                  <Address>
                    <City>String</City>
                    <CountryCode>String</CountryCode>
                    <PostalCode>String</PostalCode>
                    <ProvinceCode>String</ProvinceCode>
                    <StreetAddressOne>String</StreetAddressOne>
                    <StreetAddressThree>String</StreetAddressThree>
                    <StreetAddressTwo>String</StreetAddressTwo>
                  </Address>
                  <CommunicationChannel>
                    <AvpList>
                      <Code>String</Code>
                      <Value>String</Value>
                    </AvpList>
                  </CommunicationChannel>
                  <Contact>
                    <Contact>
                      <CommunicationChannel>
                        <CommunicationChannel>
                          <CommunicationChannelCode>String</CommunicationChannelCode>
                          <CommunicationChannelName>String</CommunicationChannelName>
                          <CommunicationValue>String</CommunicationValue>
                        </CommunicationChannel>
                      </CommunicationChannel>
                      <ContactTypeCode>String</ContactTypeCode>
                      <DepartmentName>String</DepartmentName>
                      <JobTitle>String</JobTitle>
                      <PersonName>String</PersonName>
                      <Responsibility>String</Responsibility>
                    </Contact>
                  </Contact>
                  <DutyFeeTaxRegistration>String</DutyFeeTaxRegistration>
                  <EntityIdentification>String</EntityIdentification>
                  <FinancialInstitutionInformation>
                    <ExportersCode>String</ExportersCode>
                    <FinancialAccount>
                      <Name>String</Name>
                      <Number>String</Number>
                      <NumberTypeCode>String</NumberTypeCode>
                    </FinancialAccount>
                    <FinancialInstitutionBranchName>String</FinancialInstitutionBranchName>
                    <FinancialInstitutionName>String</FinancialInstitutionName>
                    <FinancialRoutingNumber>
                      <Number>String</Number>
                      <NumberTypeCode>String</NumberTypeCode>
                    </FinancialRoutingNumber>
                    <SwiftCode>String</SwiftCode>
                  </FinancialInstitutionInformation>
                </Carrier>
                <FreightForwarder>
                  <AdditionalPartyIdentification>
                    <AvpList>
                      <Code>String</Code>
                      <Value>String</Value>
                    </AvpList>
                  </AdditionalPartyIdentification>
                  <Gln>String</Gln>
                  <Name>String</Name>
                  <Address>
                    <City>String</City>
                    <CountryCode>String</CountryCode>
                    <PostalCode>String</PostalCode>
                    <ProvinceCode>String</ProvinceCode>
                    <StreetAddressOne>String</StreetAddressOne>
                    <StreetAddressThree>String</StreetAddressThree>
                    <StreetAddressTwo>String</StreetAddressTwo>
                  </Address>
                  <CommunicationChannel>
                    <AvpList>
                      <Code>String</Code>
                      <Value>String</Value>
                    </AvpList>
                  </CommunicationChannel>
                  <Contact>
                    <Contact>
                      <CommunicationChannel>
                        <CommunicationChannel>
                          <CommunicationChannelCode>String</CommunicationChannelCode>
                          <CommunicationChannelName>String</CommunicationChannelName>
                          <CommunicationValue>String</CommunicationValue>
                        </CommunicationChannel>
                      </CommunicationChannel>
                      <ContactTypeCode>String</ContactTypeCode>
                      <DepartmentName>String</DepartmentName>
                      <JobTitle>String</JobTitle>
                      <PersonName>String</PersonName>
                      <Responsibility>String</Responsibility>
                    </Contact>
                  </Contact>
                  <DutyFeeTaxRegistration>String</DutyFeeTaxRegistration>
                  <EntityIdentification>String</EntityIdentification>
                  <FinancialInstitutionInformation>
                    <ExportersCode>String</ExportersCode>
                    <FinancialAccount>
                      <Name>String</Name>
                      <Number>String</Number>
                      <NumberTypeCode>String</NumberTypeCode>
                    </FinancialAccount>
                    <FinancialInstitutionBranchName>String</FinancialInstitutionBranchName>
                    <FinancialInstitutionName>String</FinancialInstitutionName>
                    <FinancialRoutingNumber>
                      <Number>String</Number>
                      <NumberTypeCode>String</NumberTypeCode>
                    </FinancialRoutingNumber>
                    <SwiftCode>String</SwiftCode>
                  </FinancialInstitutionInformation>
                </FreightForwarder>
              </ShipmentTransportationInformation>
              <UltimateConsignee>
                <AdditionalPartyIdentification>
                  <AvpList>
                    <Code>String</Code>
                    <Value>String</Value>
                  </AvpList>
                </AdditionalPartyIdentification>
                <Gln>String</Gln>
                <Name>String</Name>
                <Address>
                  <City>String</City>
                  <CountryCode>String</CountryCode>
                  <PostalCode>String</PostalCode>
                  <ProvinceCode>String</ProvinceCode>
                  <StreetAddressOne>String</StreetAddressOne>
                  <StreetAddressThree>String</StreetAddressThree>
                  <StreetAddressTwo>String</StreetAddressTwo>
                </Address>
                <CommunicationChannel>
                  <AvpList>
                    <Code>String</Code>
                    <Value>String</Value>
                  </AvpList>
                </CommunicationChannel>
                <Contact>
                  <Contact>
                    <CommunicationChannel>
                      <CommunicationChannel>
                        <CommunicationChannelCode>String</CommunicationChannelCode>
                        <CommunicationChannelName>String</CommunicationChannelName>
                        <CommunicationValue>String</CommunicationValue>
                      </CommunicationChannel>
                    </CommunicationChannel>
                    <ContactTypeCode>String</ContactTypeCode>
                    <DepartmentName>String</DepartmentName>
                    <JobTitle>String</JobTitle>
                    <PersonName>String</PersonName>
                    <Responsibility>String</Responsibility>
                  </Contact>
                </Contact>
                <DutyFeeTaxRegistration>String</DutyFeeTaxRegistration>
                <EntityIdentification>String</EntityIdentification>
                <FinancialInstitutionInformation>
                  <ExportersCode>String</ExportersCode>
                  <FinancialAccount>
                    <Name>String</Name>
                    <Number>String</Number>
                    <NumberTypeCode>String</NumberTypeCode>
                  </FinancialAccount>
                  <FinancialInstitutionBranchName>String</FinancialInstitutionBranchName>
                  <FinancialInstitutionName>String</FinancialInstitutionName>
                  <FinancialRoutingNumber>
                    <Number>String</Number>
                    <NumberTypeCode>String</NumberTypeCode>
                  </FinancialRoutingNumber>
                  <SwiftCode>String</SwiftCode>
                </FinancialInstitutionInformation>
              </UltimateConsignee>
            </OrderLogisticalInformation>
            <RequestedQuantity>
              <CodeListVersion>String</CodeListVersion>
              <MeasurementUnitCode>String</MeasurementUnitCode>
              <Value>0</Value>
            </RequestedQuantity>
          </OrderLineItemDetail>
        </OrderLineItemDetail>
        <OrderLineItemInstructionCode>String</OrderLineItemInstructionCode>
        <OrderLineItemPriority>String</OrderLineItemPriority>
        <ParentLineItemNumber>0</ParentLineItemNumber>
        <PromotionalDeal>
          <CreationDateTime>0001-01-01T00:00:00</CreationDateTime>
          <EntityIdentification>String</EntityIdentification>
          <LineItemNumber>0</LineItemNumber>
          <RevisionNumber>0</RevisionNumber>
        </PromotionalDeal>
        <PurchaseConditions>
          <CreationDateTime>0001-01-01T00:00:00</CreationDateTime>
          <EntityIdentification>String</EntityIdentification>
          <LineItemNumber>0</LineItemNumber>
          <RevisionNumber>0</RevisionNumber>
        </PurchaseConditions>
        <RecommendedRetailPrice>0</RecommendedRetailPrice>
        <RequestedQuantity>
          <CodeListVersion>String</CodeListVersion>
          <MeasurementUnitCode>String</MeasurementUnitCode>
          <Value>0</Value>
        </RequestedQuantity>
        <TransactionalTradeItem>
          <AdditionalTradeItemIdentification>
            <AvpList>
              <Code>String</Code>
              <Value>String</Value>
            </AvpList>
          </AdditionalTradeItemIdentification>
          <AvpList>
            <AvpList>
              <Code>String</Code>
              <Value>String</Value>
            </AvpList>
          </AvpList>
          <ButterFatReference>String</ButterFatReference>
          <Colour>
            <Colour>
              <ColourCode>String</ColourCode>
              <ColourDescription>String</ColourDescription>
            </Colour>
          </Colour>
          <Gtin>String</Gtin>
          <ItemTypeCode>String</ItemTypeCode>
          <ProductVariantIdentifier>String</ProductVariantIdentifier>
          <Size>
            <DescriptiveSize>String</DescriptiveSize>
            <SizeCode>String</SizeCode>
          </Size>
          <TradeItemClassification>
            <AdditionalTradeItemClassificationCode>
              <AvpList>
                <Code>String</Code>
                <Value>String</Value>
              </AvpList>
            </AdditionalTradeItemClassificationCode>
            <GpcAttribute>
              <AvpList>
                <Code>String</Code>
                <Value>String</Value>
              </AvpList>
            </GpcAttribute>
            <GpcCategoryCode>String</GpcCategoryCode>
            <GpcCategoryName>String</GpcCategoryName>
          </TradeItemClassification>
          <TradeItemDataOwner>String</TradeItemDataOwner>
          <TradeItemDescription>String</TradeItemDescription>
          <TradeItemQuantity>0</TradeItemQuantity>
          <TransactionalItemData>
            <TransactionalItemData>
              <AvailableForSaleDate>0001-01-01T00:00:00</AvailableForSaleDate>
              <AvpList>
                <AvpList>
                  <Code>String</Code>
                  <Value>String</Value>
                </AvpList>
              </AvpList>
              <BatchNumber>String</BatchNumber>
              <BestBeforeDate>0001-01-01T00:00:00</BestBeforeDate>
              <CountryOfOrigin>String</CountryOfOrigin>
              <ItemExpirationDate>0001-01-01T00:00:00</ItemExpirationDate>
              <ItemInContactWithFoodProduct>false</ItemInContactWithFoodProduct>
              <LotNumber>String</LotNumber>
              <PackagingDate>0001-01-01T00:00:00</PackagingDate>
              <ProductQualityIndication>String</ProductQualityIndication>
              <ProductionDate>0001-01-01T00:00:00</ProductionDate>
              <SellByDate>0001-01-01T00:00:00</SellByDate>
              <SerialNumber xmlns:d8p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
                <d8p1:string>String</d8p1:string>
              </SerialNumber>
              <SerialNumberRange>
                <SerialNumberRange>
                  <MaximumValue>String</MaximumValue>
                  <MinimumValue>String</MinimumValue>
                </SerialNumberRange>
              </SerialNumberRange>
              <ShelfLife>String</ShelfLife>
              <TradeItemQuantity>0</TradeItemQuantity>
              <TradeItemWaste>
                <TradeItemWaste>
                  <TypeOfWaste>
                    <AvpList>
                      <Code>String</Code>
                      <Value>String</Value>
                    </AvpList>
                  </TypeOfWaste>
                  <WasteIdentification>String</WasteIdentification>
                </TradeItemWaste>
              </TradeItemWaste>
              <TransactionalItemDataCarrierAndIdentification>
                <DataCarrier>String</DataCarrier>
                <Gs1TransactionalItemIdentificationKey>String</Gs1TransactionalItemIdentificationKey>
              </TransactionalItemDataCarrierAndIdentification>
              <TransactionalItemDimensions>
                <TransactionalItemDimension>
                  <Depth>String</Depth>
                  <Height>String</Height>
                  <MeasurementUnitCode>String</MeasurementUnitCode>
                  <Width>String</Width>
                </TransactionalItemDimension>
              </TransactionalItemDimensions>
              <TransactionalItemLogisticUnitInformation>
                <DimensionsOfLogisticUnit>
                  <TransactionalItemDimension>
                    <Depth>String</Depth>
                    <Height>String</Height>
                    <MeasurementUnitCode>String</MeasurementUnitCode>
                    <Width>String</Width>
                  </TransactionalItemDimension>
                </DimensionsOfLogisticUnit>
                <MaximumStackingFactor>0</MaximumStackingFactor>
                <NumberOfLayers>0</NumberOfLayers>
                <NumberOfUnitsPerLayer>0</NumberOfUnitsPerLayer>
                <NumberOfUnitsPerPallet>0</NumberOfUnitsPerPallet>
                <PackageTypeCode>String</PackageTypeCode>
                <PackagingTerms>String</PackagingTerms>
                <ReturnablePackageTransportCostPayment>String</ReturnablePackageTransportCostPayment>
              </TransactionalItemLogisticUnitInformation>
              <TransactionalItemOrganicInformation>
                <IsTradeItemOrganic>false</IsTradeItemOrganic>
                <OrganicCertification>String</OrganicCertification>
              </TransactionalItemOrganicInformation>
              <TransactionalItemVolume>
                <TransactionalItem>
                  <MeasurementType>String</MeasurementType>
                  <MeasurementUnitCode>String</MeasurementUnitCode>
                  <MeasurementValue>String</MeasurementValue>
                </TransactionalItem>
              </TransactionalItemVolume>
              <TransactionalItemWeight>
                <TransactionalItem>
                  <MeasurementType>String</MeasurementType>
                  <MeasurementUnitCode>String</MeasurementUnitCode>
                  <MeasurementValue>String</MeasurementValue>
                </TransactionalItem>
              </TransactionalItemWeight>
            </TransactionalItemData>
          </TransactionalItemData>
        </TransactionalTradeItem>
      </OrderLineItem>
    </OrderLineItem>
    <OrderLogisticalInformation>
      <CommodityTypeCode>
        <CodeDescription>String</CodeDescription>
        <CodeListAgencyCodeListVersion>String</CodeListAgencyCodeListVersion>
        <CodeListAgencyName>String</CodeListAgencyName>
        <CodeListName>String</CodeListName>
        <CodeListUri>String</CodeListUri>
        <Value>String</Value>
      </CommodityTypeCode>
      <InventoryLocation>
        <AdditionalPartyIdentification>
          <AvpList>
            <Code>String</Code>
            <Value>String</Value>
          </AvpList>
        </AdditionalPartyIdentification>
        <Gln>String</Gln>
        <Name>String</Name>
        <Address>
          <City>String</City>
          <CountryCode>String</CountryCode>
          <PostalCode>String</PostalCode>
          <ProvinceCode>String</ProvinceCode>
          <StreetAddressOne>String</StreetAddressOne>
          <StreetAddressThree>String</StreetAddressThree>
          <StreetAddressTwo>String</StreetAddressTwo>
        </Address>
        <CommunicationChannel>
          <AvpList>
            <Code>String</Code>
            <Value>String</Value>
          </AvpList>
        </CommunicationChannel>
        <Contact>
          <Contact>
            <CommunicationChannel>
              <CommunicationChannel>
                <CommunicationChannelCode>String</CommunicationChannelCode>
                <CommunicationChannelName>String</CommunicationChannelName>
                <CommunicationValue>String</CommunicationValue>
              </CommunicationChannel>
            </CommunicationChannel>
            <ContactTypeCode>String</ContactTypeCode>
            <DepartmentName>String</DepartmentName>
            <JobTitle>String</JobTitle>
            <PersonName>String</PersonName>
            <Responsibility>String</Responsibility>
          </Contact>
        </Contact>
        <DutyFeeTaxRegistration>String</DutyFeeTaxRegistration>
        <EntityIdentification>String</EntityIdentification>
        <FinancialInstitutionInformation>
          <ExportersCode>String</ExportersCode>
          <FinancialAccount>
            <Name>String</Name>
            <Number>String</Number>
            <NumberTypeCode>String</NumberTypeCode>
          </FinancialAccount>
          <FinancialInstitutionBranchName>String</FinancialInstitutionBranchName>
          <FinancialInstitutionName>String</FinancialInstitutionName>
          <FinancialRoutingNumber>
            <Number>String</Number>
            <NumberTypeCode>String</NumberTypeCode>
          </FinancialRoutingNumber>
          <SwiftCode>String</SwiftCode>
        </FinancialInstitutionInformation>
      </InventoryLocation>
      <OrderLogisticalDateInformation>
        <DateRangeDeliveryDateRange>
          <BeginDate>0001-01-01T00:00:00</BeginDate>
          <BeginTime>0001-01-01T00:00:00</BeginTime>
          <EndDate>0001-01-01T00:00:00</EndDate>
          <EndTime>0001-01-01T00:00:00</EndTime>
        </DateRangeDeliveryDateRange>
        <DateRangeDeliveryDateRangeAtUltimateConsignee>
          <BeginDate>0001-01-01T00:00:00</BeginDate>
          <BeginTime>0001-01-01T00:00:00</BeginTime>
          <EndDate>0001-01-01T00:00:00</EndDate>
          <EndTime>0001-01-01T00:00:00</EndTime>
        </DateRangeDeliveryDateRangeAtUltimateConsignee>
        <DateRangeShipDateRange>
          <BeginDate>0001-01-01T00:00:00</BeginDate>
          <BeginTime>0001-01-01T00:00:00</BeginTime>
          <EndDate>0001-01-01T00:00:00</EndDate>
          <EndTime>0001-01-01T00:00:00</EndTime>
        </DateRangeShipDateRange>
        <RequestedDeliveryDateTime>0001-01-01T00:00:00</RequestedDeliveryDateTime>
        <RequestedDeliveryDateTimeAtUltimateConsignee>0001-01-01T00:00:00</RequestedDeliveryDateTimeAtUltimateConsignee>
        <RequestedPickUpDateTime>0001-01-01T00:00:00</RequestedPickUpDateTime>
        <RequestedShipDateTime>String</RequestedShipDateTime>
      </OrderLogisticalDateInformation>
      <ShipFrom>
        <AdditionalPartyIdentification>
          <AvpList>
            <Code>String</Code>
            <Value>String</Value>
          </AvpList>
        </AdditionalPartyIdentification>
        <Gln>String</Gln>
        <Name>String</Name>
        <Address>
          <City>String</City>
          <CountryCode>String</CountryCode>
          <PostalCode>String</PostalCode>
          <ProvinceCode>String</ProvinceCode>
          <StreetAddressOne>String</StreetAddressOne>
          <StreetAddressThree>String</StreetAddressThree>
          <StreetAddressTwo>String</StreetAddressTwo>
        </Address>
        <CommunicationChannel>
          <AvpList>
            <Code>String</Code>
            <Value>String</Value>
          </AvpList>
        </CommunicationChannel>
        <Contact>
          <Contact>
            <CommunicationChannel>
              <CommunicationChannel>
                <CommunicationChannelCode>String</CommunicationChannelCode>
                <CommunicationChannelName>String</CommunicationChannelName>
                <CommunicationValue>String</CommunicationValue>
              </CommunicationChannel>
            </CommunicationChannel>
            <ContactTypeCode>String</ContactTypeCode>
            <DepartmentName>String</DepartmentName>
            <JobTitle>String</JobTitle>
            <PersonName>String</PersonName>
            <Responsibility>String</Responsibility>
          </Contact>
        </Contact>
        <DutyFeeTaxRegistration>String</DutyFeeTaxRegistration>
        <EntityIdentification>String</EntityIdentification>
        <FinancialInstitutionInformation>
          <ExportersCode>String</ExportersCode>
          <FinancialAccount>
            <Name>String</Name>
            <Number>String</Number>
            <NumberTypeCode>String</NumberTypeCode>
          </FinancialAccount>
          <FinancialInstitutionBranchName>String</FinancialInstitutionBranchName>
          <FinancialInstitutionName>String</FinancialInstitutionName>
          <FinancialRoutingNumber>
            <Number>String</Number>
            <NumberTypeCode>String</NumberTypeCode>
          </FinancialRoutingNumber>
          <SwiftCode>String</SwiftCode>
        </FinancialInstitutionInformation>
      </ShipFrom>
      <ShipTo>
        <AdditionalPartyIdentification>
          <AvpList>
            <Code>String</Code>
            <Value>String</Value>
          </AvpList>
        </AdditionalPartyIdentification>
        <Gln>String</Gln>
        <Name>String</Name>
        <Address>
          <City>String</City>
          <CountryCode>String</CountryCode>
          <PostalCode>String</PostalCode>
          <ProvinceCode>String</ProvinceCode>
          <StreetAddressOne>String</StreetAddressOne>
          <StreetAddressThree>String</StreetAddressThree>
          <StreetAddressTwo>String</StreetAddressTwo>
        </Address>
        <CommunicationChannel>
          <AvpList>
            <Code>String</Code>
            <Value>String</Value>
          </AvpList>
        </CommunicationChannel>
        <Contact>
          <Contact>
            <CommunicationChannel>
              <CommunicationChannel>
                <CommunicationChannelCode>String</CommunicationChannelCode>
                <CommunicationChannelName>String</CommunicationChannelName>
                <CommunicationValue>String</CommunicationValue>
              </CommunicationChannel>
            </CommunicationChannel>
            <ContactTypeCode>String</ContactTypeCode>
            <DepartmentName>String</DepartmentName>
            <JobTitle>String</JobTitle>
            <PersonName>String</PersonName>
            <Responsibility>String</Responsibility>
          </Contact>
        </Contact>
        <DutyFeeTaxRegistration>String</DutyFeeTaxRegistration>
        <EntityIdentification>String</EntityIdentification>
        <FinancialInstitutionInformation>
          <ExportersCode>String</ExportersCode>
          <FinancialAccount>
            <Name>String</Name>
            <Number>String</Number>
            <NumberTypeCode>String</NumberTypeCode>
          </FinancialAccount>
          <FinancialInstitutionBranchName>String</FinancialInstitutionBranchName>
          <FinancialInstitutionName>String</FinancialInstitutionName>
          <FinancialRoutingNumber>
            <Number>String</Number>
            <NumberTypeCode>String</NumberTypeCode>
          </FinancialRoutingNumber>
          <SwiftCode>String</SwiftCode>
        </FinancialInstitutionInformation>
      </ShipTo>
      <ShipmentTransportationInformation>
        <Carrier>
          <AdditionalPartyIdentification>
            <AvpList>
              <Code>String</Code>
              <Value>String</Value>
            </AvpList>
          </AdditionalPartyIdentification>
          <Gln>String</Gln>
          <Name>String</Name>
          <Address>
            <City>String</City>
            <CountryCode>String</CountryCode>
            <PostalCode>String</PostalCode>
            <ProvinceCode>String</ProvinceCode>
            <StreetAddressOne>String</StreetAddressOne>
            <StreetAddressThree>String</StreetAddressThree>
            <StreetAddressTwo>String</StreetAddressTwo>
          </Address>
          <CommunicationChannel>
            <AvpList>
              <Code>String</Code>
              <Value>String</Value>
            </AvpList>
          </CommunicationChannel>
          <Contact>
            <Contact>
              <CommunicationChannel>
                <CommunicationChannel>
                  <CommunicationChannelCode>String</CommunicationChannelCode>
                  <CommunicationChannelName>String</CommunicationChannelName>
                  <CommunicationValue>String</CommunicationValue>
                </CommunicationChannel>
              </CommunicationChannel>
              <ContactTypeCode>String</ContactTypeCode>
              <DepartmentName>String</DepartmentName>
              <JobTitle>String</JobTitle>
              <PersonName>String</PersonName>
              <Responsibility>String</Responsibility>
            </Contact>
          </Contact>
          <DutyFeeTaxRegistration>String</DutyFeeTaxRegistration>
          <EntityIdentification>String</EntityIdentification>
          <FinancialInstitutionInformation>
            <ExportersCode>String</ExportersCode>
            <FinancialAccount>
              <Name>String</Name>
              <Number>String</Number>
              <NumberTypeCode>String</NumberTypeCode>
            </FinancialAccount>
            <FinancialInstitutionBranchName>String</FinancialInstitutionBranchName>
            <FinancialInstitutionName>String</FinancialInstitutionName>
            <FinancialRoutingNumber>
              <Number>String</Number>
              <NumberTypeCode>String</NumberTypeCode>
            </FinancialRoutingNumber>
            <SwiftCode>String</SwiftCode>
          </FinancialInstitutionInformation>
        </Carrier>
        <FreightForwarder>
          <AdditionalPartyIdentification>
            <AvpList>
              <Code>String</Code>
              <Value>String</Value>
            </AvpList>
          </AdditionalPartyIdentification>
          <Gln>String</Gln>
          <Name>String</Name>
          <Address>
            <City>String</City>
            <CountryCode>String</CountryCode>
            <PostalCode>String</PostalCode>
            <ProvinceCode>String</ProvinceCode>
            <StreetAddressOne>String</StreetAddressOne>
            <StreetAddressThree>String</StreetAddressThree>
            <StreetAddressTwo>String</StreetAddressTwo>
          </Address>
          <CommunicationChannel>
            <AvpList>
              <Code>String</Code>
              <Value>String</Value>
            </AvpList>
          </CommunicationChannel>
          <Contact>
            <Contact>
              <CommunicationChannel>
                <CommunicationChannel>
                  <CommunicationChannelCode>String</CommunicationChannelCode>
                  <CommunicationChannelName>String</CommunicationChannelName>
                  <CommunicationValue>String</CommunicationValue>
                </CommunicationChannel>
              </CommunicationChannel>
              <ContactTypeCode>String</ContactTypeCode>
              <DepartmentName>String</DepartmentName>
              <JobTitle>String</JobTitle>
              <PersonName>String</PersonName>
              <Responsibility>String</Responsibility>
            </Contact>
          </Contact>
          <DutyFeeTaxRegistration>String</DutyFeeTaxRegistration>
          <EntityIdentification>String</EntityIdentification>
          <FinancialInstitutionInformation>
            <ExportersCode>String</ExportersCode>
            <FinancialAccount>
              <Name>String</Name>
              <Number>String</Number>
              <NumberTypeCode>String</NumberTypeCode>
            </FinancialAccount>
            <FinancialInstitutionBranchName>String</FinancialInstitutionBranchName>
            <FinancialInstitutionName>String</FinancialInstitutionName>
            <FinancialRoutingNumber>
              <Number>String</Number>
              <NumberTypeCode>String</NumberTypeCode>
            </FinancialRoutingNumber>
            <SwiftCode>String</SwiftCode>
          </FinancialInstitutionInformation>
        </FreightForwarder>
      </ShipmentTransportationInformation>
      <UltimateConsignee>
        <AdditionalPartyIdentification>
          <AvpList>
            <Code>String</Code>
            <Value>String</Value>
          </AvpList>
        </AdditionalPartyIdentification>
        <Gln>String</Gln>
        <Name>String</Name>
        <Address>
          <City>String</City>
          <CountryCode>String</CountryCode>
          <PostalCode>String</PostalCode>
          <ProvinceCode>String</ProvinceCode>
          <StreetAddressOne>String</StreetAddressOne>
          <StreetAddressThree>String</StreetAddressThree>
          <StreetAddressTwo>String</StreetAddressTwo>
        </Address>
        <CommunicationChannel>
          <AvpList>
            <Code>String</Code>
            <Value>String</Value>
          </AvpList>
        </CommunicationChannel>
        <Contact>
          <Contact>
            <CommunicationChannel>
              <CommunicationChannel>
                <CommunicationChannelCode>String</CommunicationChannelCode>
                <CommunicationChannelName>String</CommunicationChannelName>
                <CommunicationValue>String</CommunicationValue>
              </CommunicationChannel>
            </CommunicationChannel>
            <ContactTypeCode>String</ContactTypeCode>
            <DepartmentName>String</DepartmentName>
            <JobTitle>String</JobTitle>
            <PersonName>String</PersonName>
            <Responsibility>String</Responsibility>
          </Contact>
        </Contact>
        <DutyFeeTaxRegistration>String</DutyFeeTaxRegistration>
        <EntityIdentification>String</EntityIdentification>
        <FinancialInstitutionInformation>
          <ExportersCode>String</ExportersCode>
          <FinancialAccount>
            <Name>String</Name>
            <Number>String</Number>
            <NumberTypeCode>String</NumberTypeCode>
          </FinancialAccount>
          <FinancialInstitutionBranchName>String</FinancialInstitutionBranchName>
          <FinancialInstitutionName>String</FinancialInstitutionName>
          <FinancialRoutingNumber>
            <Number>String</Number>
            <NumberTypeCode>String</NumberTypeCode>
          </FinancialRoutingNumber>
          <SwiftCode>String</SwiftCode>
        </FinancialInstitutionInformation>
      </UltimateConsignee>
    </OrderLogisticalInformation>
    <OrderPriority>String</OrderPriority>
    <OrderTypeCode>String</OrderTypeCode>
    <PaymentTerms>String</PaymentTerms>
    <PickupFrom>
      <AdditionalPartyIdentification>
        <AvpList>
          <Code>String</Code>
          <Value>String</Value>
        </AvpList>
      </AdditionalPartyIdentification>
      <Gln>String</Gln>
      <Name>String</Name>
      <Address>
        <City>String</City>
        <CountryCode>String</CountryCode>
        <PostalCode>String</PostalCode>
        <ProvinceCode>String</ProvinceCode>
        <StreetAddressOne>String</StreetAddressOne>
        <StreetAddressThree>String</StreetAddressThree>
        <StreetAddressTwo>String</StreetAddressTwo>
      </Address>
      <CommunicationChannel>
        <AvpList>
          <Code>String</Code>
          <Value>String</Value>
        </AvpList>
      </CommunicationChannel>
      <Contact>
        <Contact>
          <CommunicationChannel>
            <CommunicationChannel>
              <CommunicationChannelCode>String</CommunicationChannelCode>
              <CommunicationChannelName>String</CommunicationChannelName>
              <CommunicationValue>String</CommunicationValue>
            </CommunicationChannel>
          </CommunicationChannel>
          <ContactTypeCode>String</ContactTypeCode>
          <DepartmentName>String</DepartmentName>
          <JobTitle>String</JobTitle>
          <PersonName>String</PersonName>
          <Responsibility>String</Responsibility>
        </Contact>
      </Contact>
      <DutyFeeTaxRegistration>String</DutyFeeTaxRegistration>
      <EntityIdentification>String</EntityIdentification>
      <FinancialInstitutionInformation>
        <ExportersCode>String</ExportersCode>
        <FinancialAccount>
          <Name>String</Name>
          <Number>String</Number>
          <NumberTypeCode>String</NumberTypeCode>
        </FinancialAccount>
        <FinancialInstitutionBranchName>String</FinancialInstitutionBranchName>
        <FinancialInstitutionName>String</FinancialInstitutionName>
        <FinancialRoutingNumber>
          <Number>String</Number>
          <NumberTypeCode>String</NumberTypeCode>
        </FinancialRoutingNumber>
        <SwiftCode>String</SwiftCode>
      </FinancialInstitutionInformation>
    </PickupFrom>
    <PromotionalDeal>
      <CreationDateTime>0001-01-01T00:00:00</CreationDateTime>
      <EntityIdentification>String</EntityIdentification>
      <LineItemNumber>0</LineItemNumber>
      <RevisionNumber>0</RevisionNumber>
    </PromotionalDeal>
    <QuoteNumber>
      <CreationDateTime>0001-01-01T00:00:00</CreationDateTime>
      <EntityIdentification>String</EntityIdentification>
      <LineItemNumber>0</LineItemNumber>
      <RevisionNumber>0</RevisionNumber>
    </QuoteNumber>
    <ReferencedOrder>
      <ReferencedOrder>
        <DocumentReference>
          <CreationDateTime>0001-01-01T00:00:00</CreationDateTime>
          <EntityIdentification>String</EntityIdentification>
          <LineItemNumber>0</LineItemNumber>
          <RevisionNumber>0</RevisionNumber>
        </DocumentReference>
        <OrderRelationship>String</OrderRelationship>
      </ReferencedOrder>
    </ReferencedOrder>
    <Seller>
      <AdditionalPartyIdentification>
        <AvpList>
          <Code>String</Code>
          <Value>String</Value>
        </AvpList>
      </AdditionalPartyIdentification>
      <Gln>String</Gln>
      <Name>String</Name>
      <Address>
        <City>String</City>
        <CountryCode>String</CountryCode>
        <PostalCode>String</PostalCode>
        <ProvinceCode>String</ProvinceCode>
        <StreetAddressOne>String</StreetAddressOne>
        <StreetAddressThree>String</StreetAddressThree>
        <StreetAddressTwo>String</StreetAddressTwo>
      </Address>
      <CommunicationChannel>
        <AvpList>
          <Code>String</Code>
          <Value>String</Value>
        </AvpList>
      </CommunicationChannel>
      <Contact>
        <Contact>
          <CommunicationChannel>
            <CommunicationChannel>
              <CommunicationChannelCode>String</CommunicationChannelCode>
              <CommunicationChannelName>String</CommunicationChannelName>
              <CommunicationValue>String</CommunicationValue>
            </CommunicationChannel>
          </CommunicationChannel>
          <ContactTypeCode>String</ContactTypeCode>
          <DepartmentName>String</DepartmentName>
          <JobTitle>String</JobTitle>
          <PersonName>String</PersonName>
          <Responsibility>String</Responsibility>
        </Contact>
      </Contact>
      <DutyFeeTaxRegistration>String</DutyFeeTaxRegistration>
      <EntityIdentification>String</EntityIdentification>
      <FinancialInstitutionInformation>
        <ExportersCode>String</ExportersCode>
        <FinancialAccount>
          <Name>String</Name>
          <Number>String</Number>
          <NumberTypeCode>String</NumberTypeCode>
        </FinancialAccount>
        <FinancialInstitutionBranchName>String</FinancialInstitutionBranchName>
        <FinancialInstitutionName>String</FinancialInstitutionName>
        <FinancialRoutingNumber>
          <Number>String</Number>
          <NumberTypeCode>String</NumberTypeCode>
        </FinancialRoutingNumber>
        <SwiftCode>String</SwiftCode>
      </FinancialInstitutionInformation>
    </Seller>
    <TotalMonetaryAmountExcludingTaxes>0</TotalMonetaryAmountExcludingTaxes>
    <TotalMonetaryAmountIncludingTaxes>0</TotalMonetaryAmountIncludingTaxes>
    <TotalTaxAmount>0</TotalTaxAmount>
    <TradeAgreement>
      <CreationDateTime>0001-01-01T00:00:00</CreationDateTime>
      <EntityIdentification>String</EntityIdentification>
      <LineItemNumber>0</LineItemNumber>
      <RevisionNumber>0</RevisionNumber>
    </TradeAgreement>
    <TransactionalGenericReference>
      <AvpList>
        <Code>String</Code>
        <Value>String</Value>
      </AvpList>
    </TransactionalGenericReference>
    <UltimateConsignee>
      <AdditionalPartyIdentification>
        <AvpList>
          <Code>String</Code>
          <Value>String</Value>
        </AvpList>
      </AdditionalPartyIdentification>
      <Gln>String</Gln>
      <Name>String</Name>
      <Address>
        <City>String</City>
        <CountryCode>String</CountryCode>
        <PostalCode>String</PostalCode>
        <ProvinceCode>String</ProvinceCode>
        <StreetAddressOne>String</StreetAddressOne>
        <StreetAddressThree>String</StreetAddressThree>
        <StreetAddressTwo>String</StreetAddressTwo>
      </Address>
      <CommunicationChannel>
        <AvpList>
          <Code>String</Code>
          <Value>String</Value>
        </AvpList>
      </CommunicationChannel>
      <Contact>
        <Contact>
          <CommunicationChannel>
            <CommunicationChannel>
              <CommunicationChannelCode>String</CommunicationChannelCode>
              <CommunicationChannelName>String</CommunicationChannelName>
              <CommunicationValue>String</CommunicationValue>
            </CommunicationChannel>
          </CommunicationChannel>
          <ContactTypeCode>String</ContactTypeCode>
          <DepartmentName>String</DepartmentName>
          <JobTitle>String</JobTitle>
          <PersonName>String</PersonName>
          <Responsibility>String</Responsibility>
        </Contact>
      </Contact>
      <DutyFeeTaxRegistration>String</DutyFeeTaxRegistration>
      <EntityIdentification>String</EntityIdentification>
      <FinancialInstitutionInformation>
        <ExportersCode>String</ExportersCode>
        <FinancialAccount>
          <Name>String</Name>
          <Number>String</Number>
          <NumberTypeCode>String</NumberTypeCode>
        </FinancialAccount>
        <FinancialInstitutionBranchName>String</FinancialInstitutionBranchName>
        <FinancialInstitutionName>String</FinancialInstitutionName>
        <FinancialRoutingNumber>
          <Number>String</Number>
          <NumberTypeCode>String</NumberTypeCode>
        </FinancialRoutingNumber>
        <SwiftCode>String</SwiftCode>
      </FinancialInstitutionInformation>
    </UltimateConsignee>
  </Order>
</OrderMessage>