Richemont.Booster2.PublicApi

<back to all web services

CreateOrderV2

Requires Authentication
The following routes are available for this service:
POST/purchase/v2Create Order
<?php namespace dtos;

use DateTime;
use Exception;
use DateInterval;
use JsonSerializable;
use ServiceStack\{IReturn,IReturnVoid,IGet,IPost,IPut,IDelete,IPatch,IMeta,IHasSessionId,IHasBearerToken,IHasVersion};
use ServiceStack\{ICrud,ICreateDb,IUpdateDb,IPatchDb,IDeleteDb,ISaveDb,AuditBase,QueryDb,QueryDb2,QueryData,QueryData2,QueryResponse};
use ServiceStack\{ResponseStatus,ResponseError,EmptyResponse,IdResponse,ArrayList,KeyValuePair2,StringResponse,StringsResponse,Tuple2,Tuple3,ByteArray};
use ServiceStack\{JsonConverters,Returns,TypeContext};


class StrapItem implements JsonSerializable
{
    public function __construct(
        /** @description Article reference */
        // @ApiMember(Description="Article reference")
        /** @var string|null */
        public ?string $speakingArticleCode=null,

        /** @description Buckle type Description */
        // @ApiMember(Description="Buckle type Description")
        /** @var string|null */
        public ?string $buckleTypeDescription=null,

        /** @description Buckle type */
        // @ApiMember(Description="Buckle type")
        /** @var string|null */
        public ?string $buckleTypeCode=null,

        /** @description watch 6 Length */
        // @ApiMember(Description="watch 6 Length")
        /** @var int|null */
        public ?int $watch6Length=null,

        /** @description watch 12 Length */
        // @ApiMember(Description="watch 12 Length")
        /** @var int|null */
        public ?int $watch12Length=null,

        /** @description Article Material Code */
        // @ApiMember(Description="Article Material Code")
        /** @var string|null */
        public ?string $materialCode=null,

        /** @description Article Material Description */
        // @ApiMember(Description="Article Material Description")
        /** @var string|null */
        public ?string $materialDescription=null,

        /** @description Article Color Code */
        // @ApiMember(Description="Article Color Code")
        /** @var string|null */
        public ?string $colorCode=null,

        /** @description Article Color Description */
        // @ApiMember(Description="Article Color Description")
        /** @var string|null */
        public ?string $colorDescription=null,

        /** @description Buckle Witdh */
        // @ApiMember(Description="Buckle Witdh")
        /** @var string|null */
        public ?string $buckleWidth=null,

        /** @description Article Lining Code */
        // @ApiMember(Description="Article Lining Code")
        /** @var string|null */
        public ?string $liningCode=null,

        /** @description Article Lining Description */
        // @ApiMember(Description="Article Lining Description")
        /** @var string|null */
        public ?string $liningDescription=null,

        /** @description Article Stitching Code */
        // @ApiMember(Description="Article Stitching Code")
        /** @var string|null */
        public ?string $stitchingCode=null,

        /** @description Article Stitching Description */
        // @ApiMember(Description="Article Stitching Description")
        /** @var string|null */
        public ?string $stitchingDescription=null,

        /** @description Article Edge Code */
        // @ApiMember(Description="Article Edge Code")
        /** @var string|null */
        public ?string $edgeCode=null,

        /** @description Article Edge Description */
        // @ApiMember(Description="Article Edge Description")
        /** @var string|null */
        public ?string $edgeDescription=null,

        /** @description Article Padding Code */
        // @ApiMember(Description="Article Padding Code")
        /** @var string|null */
        public ?string $paddingCode=null,

        /** @description Article Padding Description */
        // @ApiMember(Description="Article Padding Description")
        /** @var string|null */
        public ?string $paddingDescription=null,

        /** @description Article Speciality Code */
        // @ApiMember(Description="Article Speciality Code")
        /** @var string|null */
        public ?string $specialtyCode=null,

        /** @description Article Speciality Description */
        // @ApiMember(Description="Article Speciality Description")
        /** @var string|null */
        public ?string $specialtyDescription=null,

        /** @description Nuancier Code */
        // @ApiMember(Description="Nuancier Code")
        /** @var string|null */
        public ?string $nuancierCode=null,

        /** @description Strap Vip Order */
        // @ApiMember(Description="Strap Vip Order")
        /** @var bool|null */
        public ?bool $isStrapVipOrder=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['speakingArticleCode'])) $this->speakingArticleCode = $o['speakingArticleCode'];
        if (isset($o['buckleTypeDescription'])) $this->buckleTypeDescription = $o['buckleTypeDescription'];
        if (isset($o['buckleTypeCode'])) $this->buckleTypeCode = $o['buckleTypeCode'];
        if (isset($o['watch6Length'])) $this->watch6Length = $o['watch6Length'];
        if (isset($o['watch12Length'])) $this->watch12Length = $o['watch12Length'];
        if (isset($o['materialCode'])) $this->materialCode = $o['materialCode'];
        if (isset($o['materialDescription'])) $this->materialDescription = $o['materialDescription'];
        if (isset($o['colorCode'])) $this->colorCode = $o['colorCode'];
        if (isset($o['colorDescription'])) $this->colorDescription = $o['colorDescription'];
        if (isset($o['buckleWidth'])) $this->buckleWidth = $o['buckleWidth'];
        if (isset($o['liningCode'])) $this->liningCode = $o['liningCode'];
        if (isset($o['liningDescription'])) $this->liningDescription = $o['liningDescription'];
        if (isset($o['stitchingCode'])) $this->stitchingCode = $o['stitchingCode'];
        if (isset($o['stitchingDescription'])) $this->stitchingDescription = $o['stitchingDescription'];
        if (isset($o['edgeCode'])) $this->edgeCode = $o['edgeCode'];
        if (isset($o['edgeDescription'])) $this->edgeDescription = $o['edgeDescription'];
        if (isset($o['paddingCode'])) $this->paddingCode = $o['paddingCode'];
        if (isset($o['paddingDescription'])) $this->paddingDescription = $o['paddingDescription'];
        if (isset($o['specialtyCode'])) $this->specialtyCode = $o['specialtyCode'];
        if (isset($o['specialtyDescription'])) $this->specialtyDescription = $o['specialtyDescription'];
        if (isset($o['nuancierCode'])) $this->nuancierCode = $o['nuancierCode'];
        if (isset($o['isStrapVipOrder'])) $this->isStrapVipOrder = $o['isStrapVipOrder'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->speakingArticleCode)) $o['speakingArticleCode'] = $this->speakingArticleCode;
        if (isset($this->buckleTypeDescription)) $o['buckleTypeDescription'] = $this->buckleTypeDescription;
        if (isset($this->buckleTypeCode)) $o['buckleTypeCode'] = $this->buckleTypeCode;
        if (isset($this->watch6Length)) $o['watch6Length'] = $this->watch6Length;
        if (isset($this->watch12Length)) $o['watch12Length'] = $this->watch12Length;
        if (isset($this->materialCode)) $o['materialCode'] = $this->materialCode;
        if (isset($this->materialDescription)) $o['materialDescription'] = $this->materialDescription;
        if (isset($this->colorCode)) $o['colorCode'] = $this->colorCode;
        if (isset($this->colorDescription)) $o['colorDescription'] = $this->colorDescription;
        if (isset($this->buckleWidth)) $o['buckleWidth'] = $this->buckleWidth;
        if (isset($this->liningCode)) $o['liningCode'] = $this->liningCode;
        if (isset($this->liningDescription)) $o['liningDescription'] = $this->liningDescription;
        if (isset($this->stitchingCode)) $o['stitchingCode'] = $this->stitchingCode;
        if (isset($this->stitchingDescription)) $o['stitchingDescription'] = $this->stitchingDescription;
        if (isset($this->edgeCode)) $o['edgeCode'] = $this->edgeCode;
        if (isset($this->edgeDescription)) $o['edgeDescription'] = $this->edgeDescription;
        if (isset($this->paddingCode)) $o['paddingCode'] = $this->paddingCode;
        if (isset($this->paddingDescription)) $o['paddingDescription'] = $this->paddingDescription;
        if (isset($this->specialtyCode)) $o['specialtyCode'] = $this->specialtyCode;
        if (isset($this->specialtyDescription)) $o['specialtyDescription'] = $this->specialtyDescription;
        if (isset($this->nuancierCode)) $o['nuancierCode'] = $this->nuancierCode;
        if (isset($this->isStrapVipOrder)) $o['isStrapVipOrder'] = $this->isStrapVipOrder;
        return empty($o) ? new class(){} : $o;
    }
}

class CreateOrderItemRequestV2 implements JsonSerializable
{
    public function __construct(
        /** @description Line Number */
        // @ApiMember(Description="Line Number", IsRequired=true)
        /** @var int */
        public int $lineNumber=0,

        /** @description Reference ID of the article/product, e.g. 'CRWB520003' */
        // @ApiMember(Description="Reference ID of the article/product, e.g. 'CRWB520003'", IsRequired=true)
        /** @var string */
        public string $articleCode='',

        /** @description Desired quantity of the article */
        // @ApiMember(Description="Desired quantity of the article", IsRequired=true)
        /** @var int */
        public int $quantity=0,

        /** @description Requested Delivery Date of the Item, e.g. '2020-12-30' */
        // @ApiMember(Description="Requested Delivery Date of the Item, e.g. '2020-12-30'")
        /** @var DateTime|null */
        public ?DateTime $requestedDeliveryDate=null,

        /** @description Strap definition */
        // @ApiMember(Description="Strap definition")
        /** @var StrapItem|null */
        public ?StrapItem $strap=null,

        /** @description Purchase order type, e.g. 'WCFS', null. Null for ordinary order */
        // @ApiMember(Description="Purchase order type, e.g. 'WCFS', null. Null for ordinary order")
        /** @var string|null */
        public ?string $orderType=null,

        /** @description DeliveryPlantId of item, e.g.: CHD6 */
        // @ApiMember(Description="DeliveryPlantId of item, e.g.: CHD6")
        /** @var string|null */
        public ?string $deliveryPlantId=null,

        /** @description Reason Code */
        // @ApiMember(Description="Reason Code", IsRequired=true)
        /** @var string */
        public string $reasonCode='',

        /** @description Order Delivery Priority,  e.g.: 10, 20, 30, 40, 50 */
        // @ApiMember(Description="Order Delivery Priority,  e.g.: 10, 20, 30, 40, 50")
        /** @var int|null */
        public ?int $orderDeliveryPriority=null,

        /** @description Buckle Summary, can be get from order simulation */
        // @ApiMember(Description="Buckle Summary, can be get from order simulation")
        /** @var string|null */
        public ?string $buckleSummary=null,

        /** @description Material Summary, can be get from order simulation */
        // @ApiMember(Description="Material Summary, can be get from order simulation")
        /** @var string|null */
        public ?string $materialSummary=null,

        /** @description Content Summary, can be get from order simulation */
        // @ApiMember(Description="Content Summary, can be get from order simulation")
        /** @var string|null */
        public ?string $contentSummary=null,

        /** @description Strap Summary, can be get from order simulation */
        // @ApiMember(Description="Strap Summary, can be get from order simulation")
        /** @var string|null */
        public ?string $strapSummary=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['lineNumber'])) $this->lineNumber = $o['lineNumber'];
        if (isset($o['articleCode'])) $this->articleCode = $o['articleCode'];
        if (isset($o['quantity'])) $this->quantity = $o['quantity'];
        if (isset($o['requestedDeliveryDate'])) $this->requestedDeliveryDate = JsonConverters::from('DateTime', $o['requestedDeliveryDate']);
        if (isset($o['strap'])) $this->strap = JsonConverters::from('StrapItem', $o['strap']);
        if (isset($o['orderType'])) $this->orderType = $o['orderType'];
        if (isset($o['deliveryPlantId'])) $this->deliveryPlantId = $o['deliveryPlantId'];
        if (isset($o['reasonCode'])) $this->reasonCode = $o['reasonCode'];
        if (isset($o['orderDeliveryPriority'])) $this->orderDeliveryPriority = $o['orderDeliveryPriority'];
        if (isset($o['buckleSummary'])) $this->buckleSummary = $o['buckleSummary'];
        if (isset($o['materialSummary'])) $this->materialSummary = $o['materialSummary'];
        if (isset($o['contentSummary'])) $this->contentSummary = $o['contentSummary'];
        if (isset($o['strapSummary'])) $this->strapSummary = $o['strapSummary'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->lineNumber)) $o['lineNumber'] = $this->lineNumber;
        if (isset($this->articleCode)) $o['articleCode'] = $this->articleCode;
        if (isset($this->quantity)) $o['quantity'] = $this->quantity;
        if (isset($this->requestedDeliveryDate)) $o['requestedDeliveryDate'] = JsonConverters::to('DateTime', $this->requestedDeliveryDate);
        if (isset($this->strap)) $o['strap'] = JsonConverters::to('StrapItem', $this->strap);
        if (isset($this->orderType)) $o['orderType'] = $this->orderType;
        if (isset($this->deliveryPlantId)) $o['deliveryPlantId'] = $this->deliveryPlantId;
        if (isset($this->reasonCode)) $o['reasonCode'] = $this->reasonCode;
        if (isset($this->orderDeliveryPriority)) $o['orderDeliveryPriority'] = $this->orderDeliveryPriority;
        if (isset($this->buckleSummary)) $o['buckleSummary'] = $this->buckleSummary;
        if (isset($this->materialSummary)) $o['materialSummary'] = $this->materialSummary;
        if (isset($this->contentSummary)) $o['contentSummary'] = $this->contentSummary;
        if (isset($this->strapSummary)) $o['strapSummary'] = $this->strapSummary;
        return empty($o) ? new class(){} : $o;
    }
}

class SplittedOrder implements JsonSerializable
{
    public function __construct(
        /** @description Ship To Pos Code */
        // @ApiMember(Description="Ship To Pos Code", IsRequired=true)
        /** @var string */
        public string $shipToId='',

        /** @description Final Ship To Pos Code */
        // @ApiMember(Description="Final Ship To Pos Code")
        /** @var string|null */
        public ?string $finalShipToId=null,

        /** @description Bill To Pos Code */
        // @ApiMember(Description="Bill To Pos Code", IsRequired=true)
        /** @var string */
        public string $billToId='',

        /** @description Sold To Pos Code */
        // @ApiMember(Description="Sold To Pos Code", IsRequired=true)
        /** @var string */
        public string $soldToId='',

        /** @description Sales Representative Code */
        // @ApiMember(Description="Sales Representative Code")
        /** @var string|null */
        public ?string $salesRepresentativeId=null,

        /** @description List of Articles to be created */
        // @ApiMember(Description="List of Articles to be created", IsRequired=true)
        /** @var array<CreateOrderItemRequestV2>|null */
        public ?array $orderItems=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['shipToId'])) $this->shipToId = $o['shipToId'];
        if (isset($o['finalShipToId'])) $this->finalShipToId = $o['finalShipToId'];
        if (isset($o['billToId'])) $this->billToId = $o['billToId'];
        if (isset($o['soldToId'])) $this->soldToId = $o['soldToId'];
        if (isset($o['salesRepresentativeId'])) $this->salesRepresentativeId = $o['salesRepresentativeId'];
        if (isset($o['orderItems'])) $this->orderItems = JsonConverters::fromArray('CreateOrderItemRequestV2', $o['orderItems']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->shipToId)) $o['shipToId'] = $this->shipToId;
        if (isset($this->finalShipToId)) $o['finalShipToId'] = $this->finalShipToId;
        if (isset($this->billToId)) $o['billToId'] = $this->billToId;
        if (isset($this->soldToId)) $o['soldToId'] = $this->soldToId;
        if (isset($this->salesRepresentativeId)) $o['salesRepresentativeId'] = $this->salesRepresentativeId;
        if (isset($this->orderItems)) $o['orderItems'] = JsonConverters::toArray('CreateOrderItemRequestV2', $this->orderItems);
        return empty($o) ? new class(){} : $o;
    }
}

class EndCustomerDetails implements JsonSerializable
{
    public function __construct(
        /** @description Title of the end Customer, e.g. 'MR', 'MRS'. */
        // @ApiMember(Description="Title of the end Customer, e.g. 'MR', 'MRS'.")
        /** @var string|null */
        public ?string $title=null,

        /** @description First Name of the end Customer */
        // @ApiMember(Description="First Name of the end Customer", IsRequired=true)
        /** @var string */
        public string $firstName='',

        /** @description Last Name of the end Customer */
        // @ApiMember(Description="Last Name of the end Customer", IsRequired=true)
        /** @var string */
        public string $lastName='',

        /** @description Email of the end Customer */
        // @ApiMember(Description="Email of the end Customer")
        /** @var string|null */
        public ?string $email=null,

        /** @description Phone number of the end Customer, e.g. '0032477123456'.  */
        // @ApiMember(Description="Phone number of the end Customer, e.g. '0032477123456'. ")
        /** @var string|null */
        public ?string $phone=null,

        /** @description Countr code in the shipping address, e.g. 'BE' (ISO Code) */
        // @ApiMember(Description="Countr code in the shipping address, e.g. 'BE' (ISO Code)", IsRequired=true)
        /** @var string */
        public string $country='',

        /** @description City name in the shipping address */
        // @ApiMember(Description="City name in the shipping address", IsRequired=true)
        /** @var string */
        public string $city='',

        /** @description Street name in the shipping address */
        // @ApiMember(Description="Street name in the shipping address", IsRequired=true)
        /** @var string */
        public string $street='',

        /** @description House number in the shipping address */
        // @ApiMember(Description="House number in the shipping address")
        /** @var string|null */
        public ?string $houseNumber=null,

        /** @description Building number in the shipping address */
        // @ApiMember(Description="Building number in the shipping address")
        /** @var string|null */
        public ?string $building=null,

        /** @description Postal code in the shipping address */
        // @ApiMember(Description="Postal code in the shipping address")
        /** @var string|null */
        public ?string $postalCode=null,

        /** @description Region code in the shipping address, e.g. 'VL' (ISO Code) */
        // @ApiMember(Description="Region code in the shipping address, e.g. 'VL' (ISO Code)")
        /** @var string|null */
        public ?string $region=null,

        /** @description District name in the shipping address */
        // @ApiMember(Description="District name in the shipping address")
        /** @var string|null */
        public ?string $district=null,

        /** @description Additional Info number to the shipping address */
        // @ApiMember(Description="Additional Info number to the shipping address")
        /** @var string|null */
        public ?string $additionalInfo=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['title'])) $this->title = $o['title'];
        if (isset($o['firstName'])) $this->firstName = $o['firstName'];
        if (isset($o['lastName'])) $this->lastName = $o['lastName'];
        if (isset($o['email'])) $this->email = $o['email'];
        if (isset($o['phone'])) $this->phone = $o['phone'];
        if (isset($o['country'])) $this->country = $o['country'];
        if (isset($o['city'])) $this->city = $o['city'];
        if (isset($o['street'])) $this->street = $o['street'];
        if (isset($o['houseNumber'])) $this->houseNumber = $o['houseNumber'];
        if (isset($o['building'])) $this->building = $o['building'];
        if (isset($o['postalCode'])) $this->postalCode = $o['postalCode'];
        if (isset($o['region'])) $this->region = $o['region'];
        if (isset($o['district'])) $this->district = $o['district'];
        if (isset($o['additionalInfo'])) $this->additionalInfo = $o['additionalInfo'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->title)) $o['title'] = $this->title;
        if (isset($this->firstName)) $o['firstName'] = $this->firstName;
        if (isset($this->lastName)) $o['lastName'] = $this->lastName;
        if (isset($this->email)) $o['email'] = $this->email;
        if (isset($this->phone)) $o['phone'] = $this->phone;
        if (isset($this->country)) $o['country'] = $this->country;
        if (isset($this->city)) $o['city'] = $this->city;
        if (isset($this->street)) $o['street'] = $this->street;
        if (isset($this->houseNumber)) $o['houseNumber'] = $this->houseNumber;
        if (isset($this->building)) $o['building'] = $this->building;
        if (isset($this->postalCode)) $o['postalCode'] = $this->postalCode;
        if (isset($this->region)) $o['region'] = $this->region;
        if (isset($this->district)) $o['district'] = $this->district;
        if (isset($this->additionalInfo)) $o['additionalInfo'] = $this->additionalInfo;
        return empty($o) ? new class(){} : $o;
    }
}

class CreateOrderV2 implements JsonSerializable
{
    public function __construct(
        /** @description Purchase order ID, total length-max with x-booster-App header: 99 */
        // @ApiMember(Description="Purchase order ID, total length-max with x-booster-App header: 99", IsRequired=true)
        /** @var string */
        public string $orderId='',

        /** @description Global Pos Code for the intended Order e.g. ES100:102048 */
        // @ApiMember(Description="Global Pos Code for the intended Order e.g. ES100:102048", IsRequired=true)
        /** @var string */
        public string $posCode='',

        /** @description Brand Trigram of the intended Order, e.g. 'IWC', 'CAR', etc. */
        // @ApiMember(Description="Brand Trigram of the intended Order, e.g. 'IWC', 'CAR', etc.", IsRequired=true)
        /** @var string */
        public string $brand='',

        /** @description Additional Notes regarding the Order */
        // @ApiMember(Description="Additional Notes regarding the Order")
        /** @var string|null */
        public ?string $notes=null,

        /** @description Customer Reference */
        // @ApiMember(Description="Customer Reference")
        /** @var string|null */
        public ?string $customerReference=null,

        /** @description Customer Reference for Consignment Order */
        // @ApiMember(Description="Customer Reference for Consignment Order")
        /** @var string|null */
        public ?string $customerReferenceConsignment=null,

        /** @description Purchase order date, e.g. '2020-12-31' */
        // @ApiMember(Description="Purchase order date, e.g. '2020-12-31'")
        /** @var DateTime|null */
        public ?DateTime $orderDate=null,

        /** @description Details of the end Customer */
        // @ApiMember(Description="Details of the end Customer")
        /** @var array<SplittedOrder>|null */
        public ?array $splittedOrders=null,

        /** @description Booster1 ID of the end Customer */
        // @ApiMember(Description="Booster1 ID of the end Customer")
        /** @var string|null */
        public ?string $endCustomerBooster1Id=null,

        /** @description Details of the end Customer */
        // @ApiMember(Description="Details of the end Customer")
        /** @var EndCustomerDetails|null */
        public ?EndCustomerDetails $endCustomerDetails=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['orderId'])) $this->orderId = $o['orderId'];
        if (isset($o['posCode'])) $this->posCode = $o['posCode'];
        if (isset($o['brand'])) $this->brand = $o['brand'];
        if (isset($o['notes'])) $this->notes = $o['notes'];
        if (isset($o['customerReference'])) $this->customerReference = $o['customerReference'];
        if (isset($o['customerReferenceConsignment'])) $this->customerReferenceConsignment = $o['customerReferenceConsignment'];
        if (isset($o['orderDate'])) $this->orderDate = JsonConverters::from('DateTime', $o['orderDate']);
        if (isset($o['splittedOrders'])) $this->splittedOrders = JsonConverters::fromArray('SplittedOrder', $o['splittedOrders']);
        if (isset($o['endCustomerBooster1Id'])) $this->endCustomerBooster1Id = $o['endCustomerBooster1Id'];
        if (isset($o['endCustomerDetails'])) $this->endCustomerDetails = JsonConverters::from('EndCustomerDetails', $o['endCustomerDetails']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->orderId)) $o['orderId'] = $this->orderId;
        if (isset($this->posCode)) $o['posCode'] = $this->posCode;
        if (isset($this->brand)) $o['brand'] = $this->brand;
        if (isset($this->notes)) $o['notes'] = $this->notes;
        if (isset($this->customerReference)) $o['customerReference'] = $this->customerReference;
        if (isset($this->customerReferenceConsignment)) $o['customerReferenceConsignment'] = $this->customerReferenceConsignment;
        if (isset($this->orderDate)) $o['orderDate'] = JsonConverters::to('DateTime', $this->orderDate);
        if (isset($this->splittedOrders)) $o['splittedOrders'] = JsonConverters::toArray('SplittedOrder', $this->splittedOrders);
        if (isset($this->endCustomerBooster1Id)) $o['endCustomerBooster1Id'] = $this->endCustomerBooster1Id;
        if (isset($this->endCustomerDetails)) $o['endCustomerDetails'] = JsonConverters::to('EndCustomerDetails', $this->endCustomerDetails);
        return empty($o) ? new class(){} : $o;
    }
}

PHP CreateOrderV2 DTOs

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

To embed the response in a jsonp callback, append ?callback=myCallback

HTTP + JSON

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

POST /purchase/v2 HTTP/1.1 
Host: dev-api-booster.richemont.com 
Accept: application/json
Content-Type: application/json
Content-Length: length

{"orderId":"String","posCode":"String","brand":"String","notes":"String","customerReference":"String","customerReferenceConsignment":"String","orderDate":"\/Date(-62135596800000-0000)\/","splittedOrders":[{"shipToId":"String","finalShipToId":"String","billToId":"String","soldToId":"String","salesRepresentativeId":"String","orderItems":[{"lineNumber":0,"articleCode":"String","quantity":0,"requestedDeliveryDate":"\/Date(-62135596800000-0000)\/","strap":{"speakingArticleCode":"String","buckleTypeDescription":"String","buckleTypeCode":"String","watch6Length":0,"watch12Length":0,"materialCode":"String","materialDescription":"String","colorCode":"String","colorDescription":"String","buckleWidth":"String","liningCode":"String","liningDescription":"String","stitchingCode":"String","stitchingDescription":"String","edgeCode":"String","edgeDescription":"String","paddingCode":"String","paddingDescription":"String","specialtyCode":"String","specialtyDescription":"String","nuancierCode":"String","isStrapVipOrder":false},"orderType":"String","deliveryPlantId":"String","reasonCode":"String","orderDeliveryPriority":0,"buckleSummary":"String","materialSummary":"String","contentSummary":"String","strapSummary":"String"}]}],"endCustomerBooster1Id":"String","endCustomerDetails":{"title":"String","firstName":"String","lastName":"String","email":"String","phone":"String","country":"String","city":"String","street":"String","houseNumber":"String","building":"String","postalCode":"String","region":"String","district":"String","additionalInfo":"String"}}
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: length

{}