Skip to end of metadata
Go to start of metadata

You are viewing an old version of this content. View the current version.

Compare with Current View Version History

« Previous Version 31 Current »

Revision

Date

Description

New version due to move to a new server. URL change and new yaml versions MediaOrderB2C and MediaShipment

Functional changes:

  • MediaOrderB2C Get Orderstatus: The "OwnerName" has been included in the OpenApi specification. Up until now, this field was incorrectly not included as a tag and therefore also not as a value. In this new version, this is the case (if applicable).

  • MediaShipment Get ShippingUnit: The ShippingUnitId has been extended, so that it remains unique. Even over the years.

Added extra information authorisation: “Basic ”||"Base64 encoding of username and password joined by a single colon : "

Media Order B2C: Yaml file version 1.3.0. Changelog version 1.2.0 to version 1.3.0:

  • Add Article with ArticleId as product identification for dedicated stock

  • Use either EAN or Article in placeOrder (EAN is now optional), if both are supplied the EAN is used and Article is ignored

  • Report either EAN or Article in getOrderStatus based on provided input in placeOrder

MediaShipment: Yaml file version 1.0.0 version 1.1.0. Changelog version 1.0.0 to version 1.1.0:

  • Add ArticleId as product identification for dedicated stock

  • Report either EAN or ArticleId in getShippingUnit based on provided input in placeOrder

Test and order simulation added

Add Tag matrix for Green and Standard option

Update yaml file MediaOrderNotify v.1.0.2.yaml

Update generic error messages

Align with updated order notifications

Update yaml file MediaOrderB2C v1.2.0.yaml

Update MediaOrderB2C version; Correct resource for notifyOrder and notityShipment

Update yaml versions

Add volume limits and error messages; Correct typo in process flow diagrams

Add flows and sequence diagrams

Add operations

Initial document

Introduction

This document contains a description of the standard interfaces for implementation of data exchange with CB via webservices.

Tag matrix for Green and Standard option

CB has two options for submitting e-commerce orders:

  • Green option no document attached to shipment

  • Standard option packing slip or invoice included with shipment

 Click here to expand matrix Green and Standard Option

Green optionStandard Option
TagWithout documentWith Packingslip documentWith Invoice document
 Click here for legend
++Indicates the level of the tag
MMandatory
OOptional
1.3minimum 1 occurrence, maximum 3 occurrences
n.a. not applicable
OrderingPartyRelationIdMMM
OrderFlowNumberOOO
OrderIdMMM
OrderTypeMMM
BuyerReferenceOOO
OwnerReferenceOOO
TemplateTypen.a.OO
Shipment0..10..10..1
+SplitPackageOOO
+ShipmentCodeOOO
+PartialShipmentOOO
+ShipmentDate0..10..10..1
++DateMMM
++EarlyShipmentOOO
+ShipmentPeriod0..10..10..1
++FromMMM
++TillMMM
Parties1..31..31..3
+PartyTypeMMM
+PartyIdOOO
+Address1..11..11..1
++NameMMM
++SecondaryNameOOO
++StreetMMM
++StreetAdditionOOO
++HouseNumberMMM
++HouseNumberAdditionOOO
++PostalCodeMMM
++CityMMM
++RegionOOO
++CountryCodeMMM
+Contact0..10..10..1
++EmailAddressOOO
++PhoneNumberOOO
++MobileNumberOOO
PackingSlipInstructionsn.a.1..11..1
+PackingSlipAddressn.a.1..91..9
++SequenceNumbern.a.MM
++AddressDescriptionn.a.MM
+Marketingn.a.1..51..5
++SequenceNumbern.a.MM
++MarketingDescriptionn.a.MM
+PaymentConditionn.a.1..31..3
++SequenceNumbern.a.MM
++PaymentConditionDescriptionn.a.MM
+Headern.a.OO
+PaymentRemarkn.a.n.a.O
+PrintInvoicen.a.n.a.M
+DiscountDescriptionn.a.n.a.O
+DiscountAmountn.a.n.a.O
+PostageAmountn.a.n.a.O
OrderLines1..n1..n1..n
+OrderLineIdMMM
+EANMMM
+BuyerLineReferenceOOO
+OwnerLineReferenceOOO
+QuantityOrderedMMM
+TransactionCategoryOOO
+BackOrderShipmentOOO
+PartialLineShipmentOOO
+SalesAmountn.a.n.a.M

The entire set for the standard data exchange with CB consists of the following documents and files:

File versus webservice. Communication about orders is based on the receiving channel, i.e. file base communication is used for orders received via file based interfaces and webservice communication is used for orders received via the webservice MediaOrderB2C. Order are processed independent from the receiving channel

Mapping berichten naar webservices B2C.xlsx

The mapping from file based to webservice based messages

File based

Webservice operation

OPDNAW

placeOrder

ANNOPD

cancelOrder

UITOPD

notifyOrder / getOrderStatus + notifyShipment / getShippingUnit

NUITOP

notifyOrder / getOrderStatus

Migration strategy from batch file to webservice

Suggested migration strategy from batch file to webservice:

  • Verify technical and functional process with a live connection to the CB test environment.

  • Arrange for shadow-run(s) in a combination of production and test environments,, i.e. send an OPDNAW message to the CB production environment, extract a few orders and send them via the webservice to the CB test environment. CB can verify the received data in the test environment against the production data from the OPDNAW.

  • Arrange for go-live date

  • Send a limited number of orders via the webservice to the CB production environment. CB can monitor the processing of these orders.

  • Verify the information in the order status and shipping unit operations.

  • Step-by-step increase the webservice load until the required level is reached.

  • If applicable then disable the file based flow.

Authentication & Authorisation

MediaOrderB2C and Shipment

Header-parameters "Username" + "Password"  

Webservice information

Webservice approache

REST - Representational State Transfer

MediaOrderB2C

OpenAPI Specification

Resource

Orders

Operations provided by CB:

placeOrder

Send one (1) order to CB

cancelOrderLine

Cancel one (1) orderline

getOrderStatus

Retrieve the status if one (1) order

MediaOrderNotify

OpenAPI Specification

Resource: 

Notifications

Operations provided by you:

notifyOrder

CB calls your webservice to inform you about status updates of an order

Authentication mode

CB supports:

  • Basic - username:password   “Basic ”||"Base64 encoding of username and password joined by a single colon : "

  • Token 

MediaShipment

Definition

Resource

ShippingUnits

Operations provided by CB:

getShippingUnit

Retrieve the shipment information for a shipping unit

MediaShipmentNotify

Definition: 

Resource: 

Notifications

Operations provided by you:

notifyShipment

CB calls your webservice to inform you about shipment for your order

Authentication mode

CB supports:

  • Basic - username:password   “Basic ”||"Base64 encoding of username and password joined by a single colon : "

  • Token 

Content type

The content /body in the request and response has to be, will be in json format

‘Optional’ parameter

For any optional Attribute ons of th following options applies:

  • be filled with the correct value

  • be left out

  • be filled with ““ (read empty)

An optional parameter may therefore never be filled with the value null

URL Test

MediaOrderB2C base: https://media.tst.cb-api.nl/mediaorderb2c

  • /v2/orders

  • /v2/orders/{OrderId}/status

  • /v2/orders/{OrderId}/orderlines/{OrderLineId}

MediaShipment base:  https://media.tst.cb-api.nl/mediashipment

  • /v2/shippingunit/{ShippingUnitId}

URL Production

MediaOrderB2C base: https://media.cb-api.nl/mediaorderb2c

  • /v2/orders

  • /v2/orders/{OrderId}/status

  • /v2/orders/{OrderId}/orderlines/{OrderLineId}

MediaShipment base: https://media.cb-api.nl/mediashipment

  • /v2/shippingunit/{ShippingUnitId}

Supported SSL/TLS protocols

TLS 1.2

TLS 1.3

Overview webservices

This chapter gives an overview of the available interaction patterns for data exchange with CB. The figure below gives an high level overview of the CB system landscape and the available webservice operations.

MoB2C_Overview_webservices.jpg

The webservices provide online creation and cancelation of media orders at CB. Changes to an order (other than cancel) are not available. Resending an order is possible only when the order was not accepted by CB earlier. 

Operations

Order - placeOrder

The operation placeOrder supports sending one order for a customer. An order can contain multiple orderlines, each for a specific title. Confirmation of the operation is provided with a http-response-code.

Check order identification (Requestor Order Id)

The identification of an order is used to check if an order already exists in the CB systems. If this is the case the new order is rejected. Only open orders are taken into account, so closed/cancelled orders are ignored.

Order type

The operation is available for order types ShipBuyer (LNAFN), ShipOwner (LNEIG) and ShipSecundaryOwner (LMEONE).

Sender and Owner

In the common scenario for media orders the sender requests CB to ship titles owned by a publisher to a consumer. This scenario identifies the publisher as owner, the sender (shop) as buyer from the owner and the consumer as receiver (and buying from the shop). An alternative scenario is secondary ownership, in this alternative scenario the sender (shop) already purchased titles from the publisher and requests CB to ship from its own stock.

Party

Because parties where goods have to be delivered are not known by CB the PartyType “ReceiverAddress,” is mandatory and all name and address information must be provided.

Values added services (VAS)

VAS activities can be controlled by means of special handling instructions for the order.

Examples of instructions:

  • Wrap the books in gift paper

  • Add leaflet to the package

Available special handling instructions must be agreed upon in advance by requestor and CB.

Order - cancelOrderLine

The operation cancelOrderLine supports cancellation of one orderline. Cancellation is available until the orderline is released for production (“vrijgegeven”). Confirmation of the operation is provided with a http-response-code. The operation requires the OrderId and OrderLineId as input and is available for orders entered via webservices only.

Order - getOrderStatus

When the status of an order or orderline is changed a notifyOrder message is sent. This is the preferred trigger to call the operation getOrderStatus.

The operation getOrderStatus provides the status summary of the requested order. An order can contain multiple orderlines, each for a specific product. The status of every orderline is reported separately. An orderline can also be reported in multiple statuses, for instance when part of the quantity is available and ready for production and the remaining quantity is in backorder. If (a part of) the order is not delivered, the status includes an explanation why.

The operation requires the OrderId as input and available for orders entered via webservices only.

Available statuses for notifyOrder:

  • New Order is accepted after being received during the service window

  • InProgress Order(line) passed validation

  • ProductionReady Order(line) is ready for pick/pack in warehouse

  • Warning Order processing started with an issue for at least one orderline

  • Processed Order is finished with shipment

  • Cancelled Order is finished without shipment

Shipment - getShippingUnit

When a shipment is ready to be shipped a notifyShipment message is sent per available shipping unit. The operation getShippingUnit provides the contents of the shipping unit and the relation to order and orderlines. An order can be shipped in multiple shipping units.

The operation requires the ShippingUnitId as input.

Available statuses for notifyShipment:

  • Processed ShippingUnit is ready for shipping

Response messages

MediaOrderB2C

HTTP code

Error code

Description/Message

getOrderStatus

placeOrder

cancelOrderLine

200

Request executed

(tick)

204

Request executed

(tick)

(tick)

206

Request executed with pending status

(tick)

(tick)

400

Request failed

(tick)

(tick)

401

Not authorised

(tick)

(tick)

(tick)

404

Order not found

(tick)

(tick)

HTTP code

Error code

Description/Message
The list of error codes within these groups may change in time without notice

getOrderStatus

placeOrder

cancelOrderLine

CEP-***

CEP-002

The request does not comply with the yaml definition; Value is not one of the possible/allowed values

[instance value (\"1234567890\") not found in enum (possible values: [\"SecundaryOwnerStock\",\"SecundaryOrPrimary\",\"PrimaryOwnerStock\",\"PrimaryOrSecundary\"]), format attribute \"decimal\" not supported, format attribute \"int32\" not supported]

(tick)

CEP-002

The request does not comply with the yaml definition; Value does not meet regex

 [ECMA 262 regex \"^[^#]*$\" does not match input string \"#\", format attribute \"int32\" not supported]

(tick)

CEP-002

The request does not comply with the yaml definition; Value does not meet set minimum or maximum value

[numeric instance is lower than the required minimum (minimum: 6000000, found: 123), format attribute \"decimal\" not supported, format attribute \"int32\" not supported]

(tick)

CEP-003

Authentication/Authorisation error

You are not authenticated

(tick)

WMO-***

WMO-00503

The request encountered a mapping error, mainly due to incorrect shipment date(s); Delivery period and delivery date cannot both be given

If Delivery is specified, then either DeliveryDate or DeliveryPeriod must be supplied

(tick)

WMO-00508

The request encountered a mapping error, mainly due to incorrect shipment date(s); Date must be in the future

The DeliveryDate is in the past

(tick)

WMO-00509

The request encountered a mapping error, mainly due to incorrect shipment date(s); Invalid date

Invalid date for Delivery/DeliveryPeriod/Till: <Submitted ShipmentPeriod.Till> compared to Delivery/DeliveryPeriod/From <Submitted ShipmentPeriod.From> 

(tick)

WMO-00510

The request encountered a mapping error, mainly due to incorrect shipment date(s); Date must be in the future

The Delivery/DeliveryPeriod/From is in the past

(tick)

WMO-00511

The request encountered a mapping error, mainly due to incorrect shipment date(s); Date must be in the pastThe

The Delivery/DeliveryPeriod/Till is in the past

(tick)

HTTP code

Error code

Description/Message
The list of error codes within these groups may change in time without notice

getOrderStatus

placeOrder

cancelOrderLine

OMS-***

 click here for OMS error codes

Error code

Description/Message

OMS-01090

Mandatory field Name is empty

OMS-01091

Mandatory field Street is empty

OMS-01092

#1 : Postcode is empty

OMS-01093

#1 : Missing address

OMS-01094

#1 : Missing instruction text

OMS-01095

#1 : Missing instruction code

OMS-01096

Unknown SKU owner

OMS-01097

#1 : Unknown SKU

OMS-01099

#1 : Duplicate shipment order

OMS-01100

#1 : Unknown transport type for #2

OMS-01101

Unknown subtype

OMS-01102

#1 : Unknown OVOR_WAARDE_TYPE

OMS-01103

#1 : Unknown return transport type for #2

OMS-01105

#1 : External identification not found

OMS-01106

Mandatory field Country is empty

OMS-01107

Country is unknown (ISO-2)

OMS-01108

For country #1 is housenumber mandatory

OMS-01109

Something went wrong in processing the order. Your order is not fulfilled (#1)

OMS-01201

Fielderror at order : SenderParty (#1)

OMS-01202

Fielderror at order : OrderingParty (#1)

OMS-01203

Fielderror at order : Type (#1)

OMS-01204

Fielderror at order : SubType (#1)

OMS-01205

Fielderror at order : DeliveryInstructionCode (#1)

OMS-01206

Fielderror at order : DeliveryTime (#1)

OMS-01207

Fielderror at order : FirstDeliveryDate (#1)

OMS-01208

Fielderror at order : LastDeliveryDate (#1)

OMS-01209

Fielderror at order : OrderReference (#1)

OMS-01210

Fielderror at order : ClientReference (#1)

OMS-01211

Fielderror at order : ShipmentCode (#1)

OMS-01212

Fielderror at order : ShipmentService (#1)

OMS-01213

Fielderror at order : ReturnShipmentCode (#1)

OMS-01214

Fielderror at order : ReturnShipmentService (#1)

OMS-01215

Fielderror at order : Priority (#1)

OMS-01216

Fielderror at order : Id (#1)

OMS-01217

Fielderror at order : PartialDelivery (#1)

OMS-01218

Fielderror at order : Explanation (#1)

OMS-01219

Fielderror at order : RateCode (#1)

OMS-01220

Fielderror at order : Documentname (#1)

OMS-01221

Fielderror at order : DateTime (#1)

OMS-01222

Fielderror at order : Party ID (#1)

OMS-01223

Invalid input #1 #2

OMS-01224

Fielderror at party : RegulationFlowNumber (#1)

OMS-01225

Fielderror at party : ExternalId (#1)

OMS-01226

Fielderror at party :  Name1 (#1)

OMS-01227

Fielderror at party : AddressLine2 (#1)

OMS-01228

Fielderror at party : Name2 (#1)

OMS-01229

Fielderror at party : AddressLine1 (#1)

OMS-01230

Fielderror at party :  HouseNumber (#1)

OMS-01231

Fielderror at party :  HouseNumberExtension (#1)

OMS-01232

Fielderror at party :  Location (#1)

OMS-01233

Fielderror at party : PostalCode (#1)

OMS-01234

Fielderror at party :  City (#1)

OMS-01235

Fielderror at party : Region (#1)

OMS-01236

Fielderror at party :  Country (#1)

OMS-01237

Fielderror at party : EmailAddress (#1)

OMS-01238

Fielderror at party : PhoneNumber (#1)

OMS-01239

Fielderror at party : MobileNumber (#1)

OMS-01240

Fielderror at party : LanguageCode (#1)

OMS-01241

Fielderror at line : Article (#1)

OMS-01242

Fielderror at line : AlternativeDescription (#1)

OMS-01243

Fielderror at line : Quantity (#1)

OMS-01244

Fielderror at line : StockType (#1)

OMS-01245

Fielderror at line : SKU owner (#1)

OMS-01246

Fielderror at line : OrderReference (#1)

OMS-01247

Fielderror at line : ClientReference (#1)

OMS-01248

Fielderror at line : BackOrder (#1)

OMS-01249

Fielderror at line : PartialDelivery (#1)

OMS-01250

Fielderror at line : MancoBackOrder (#1)

OMS-01251

Fielderror at line : Id (#1)

OMS-01252

Fielderror at line : ClientArticleCode (#1)

OMS-01253

Fielderror at line : ClientBarcdoe (#1)

OMS-01254

Fielderror at price : Amount (#1)

OMS-01255

Fielderror at price : Country (#1)

OMS-01256

Fielderror at price : Region (#1)

OMS-01257

Fielderror at price : VATCode (#1)

OMS-01258

Fielderror at instruction : SequenceNumber

OMS-01259

Fielderror at instruction : Code (#1)

OMS-01260

Fielderror at instruction : Info (#1)

OMS-01261

Fielderror at instruction : Type (#1)

OMS-01262

Fielderror at instruction : Description (#1)

OMS-01263

Fielderror at instruction : Schoolregion (#1)

OMS-01264

Fielderror at instruction : Schooltype (#1)

OMS-01265

Fielderror at instruction : DeliveryInstructionCode (#1)

OMS-01266

Fielderror at instruction : PartyType (#1)

OMS-01267

Fielderror at instruction :  RateCode (#1)

OMS-01272

VAS code or Text is mandatory.

OMS-01279

Exportvalue > 0 mandatory for LB2CM-orders with destination outside custumfree area

OMS-01280

Fielderror at additional finacial info : Type (#1)

OMS-01281

Fielderror at additional finacial info : Currency (#1)

OMS-01282

Fielderror at additional finacial info : Amount (#1)

OMS-01283

Fielderror at additional finacial info : Date (#1)

OMS-01284

Fielderror at additional finacial info : Description (#1)

OMS-01289

Fielderror at order : Incoterm (#1)

OMS-01290

Fielderror at order : Incotermplace (#1)

OMS-01291

VASMETINFO Code and Info mandatory

OMS-01292

Fielderror at number : number (#1)

OMS-01293

VASMETINFO Code BIJVOEGART number mandatory

OMS-01294

VASMETINFO Code BIJVOEGART opdrachtgever_regel_id mandatory

OMS-01295

Fielderror at opdrachtgever_regel_id : opdrachtgever_regel_id (#1)

OMS-01296

Fielderror at additional finacial info: VATCode (#1)

OMS-01297

Fielderror at additional finacial info: VATPercentage (#1)

OMS-01298

Fielderror at price: VATPercentage (#1)

OMS-01299

Fielderror at order: ReturnPeriod (#1)

OMS-01311

Fielderror at orderline : Netto prijs (#1)

OMS-01312

For order info type_kd and tekst are mandatory

OMS-01313

Fielderror at order info : Info_type (#1)

OMS-01314

Fielderror at order info : Tekst (#1)

OMS-01315

Fielderror at orderline : Artikel_kd (#1)

OMS-01316

Fielderror at opdracht : Process status (#1)

OMS-01317

Fielderror at opdracht : Process status datetime (#1)

OMS-01318

Fielderror at orderline : MinAantal (#1)

OMS-01319

Fielderror at orderline : MaxAantal (#1)

OMS-01325

Fielderror at order : SplitPackageIndicator (#1)

OMS-01326

Fielderror at order : ConfirmDelivery (#1)

OMS-01327

Fielderror at order : OrderFlowNr (#1)

OMS-01328

Fielderror at order : SeparateInvoice (#1)

OMS-01329

Fielderror at order : DiscountAmount (#1)

OMS-01331

Fielderror at order : PostageAmount (#1)

OMS-01332

Fielderror at order : PackingSlipAddres (#1)

OMS-01333

Fielderror at order : SeparateInvoice (#1)

OMS-01335

Fielderror at order : TransactionCategory (#1)

OMS-01336

Fielderror at order : UseBlockedStock (#1)

OMS-01337

Fielderror at order : StockSelectionCode (#1)

OMS-01338

Fielderror at order : DocumentName (#1)

OMS-01351

Fielderror at party : Vatnumber (#1)

OMS-01352

Fielderror at party : Eorinumber (#1)

OMS-01360

ShipmentDate in the past is not allowed.

OMS-01365

Fielderror at order: earlyshipment (#1)

OMS-01366

Fielderror at order: ShipmentDate (#1)

OMS-01367

Fielderror at orderline : CROSSDOCK_PO_NO (#1)

OMS-01368

Fielderror at orderline : CROSSDOCK_PO_ITEM (#1)

OMS-01371

Order may not contain mixed orderlines with normal and lotmarked stock.

(tick)

OMS-01268

Order not found <OrderId>

(tick)

OMS-01342

Orderline was already cancelled

(tick)

OMS-01269

Unable to cancel order. Order already processed 

(tick)

OMS-01378

Crossdock orderline can not be cancelled

(tick)

OMS-01373

Unable to cancel orderline. Orderline already promoted to the Warehouse

(tick)

Process flows

This chapter contains the identified flows when using webservices to order physical books at CB. The most common and regular scenario is describes in the happy flow. In addition 7 frequent scenarios are described in alternative flows.

Happy flow

The customer orders one or more products, stock is available and the order is shipped in one shipment.

 Click here for Process flow diagram Happy Flow
Process flow diagram Happy Flow v1 2 grootte aangepast.jpg

Flow description:

  • The customer puts one or more products in the shopping basket

  • The shop forwards the order to CB with the operation placeOrder

  • CB verifies and accepts the order, the shop is notified with the operation notifyOrder and status event In Progress

  • CB assigns stock to the order

  • CB prepares for logistic processing of the order. Cancellation of the order is not possible anymore, the shop is notified with the operation notifyOrder and status event ProductionReady

  • The shop can retrieve the order process status to see which orderlines are ready for production and cannot be cancelled anymore

  • CB executes pick and pack for the order and creates a shipment. The shop is notified with the operation notifyShipment and status event Processed

  • The shop can retrieve the shipment details (including tracking number and a list of products) per shipping unit and can inform the customer.

Alternative Flow 1 – multiple shipments

The customer orders multiple products and stock is available for all products. At pick and pack multiple shipping units are created. The order is shipped in multiple shipments.

 Click here for Process flow diagram Alternative Flow 1
Process flow diagram Alternative Flow 1- v1 2.jpg

Flow description:

  • The customer puts multiple products in the shopping basket

  • The shop forwards the order to CB with the operation placeOrder

  • CB verifies and accepts the order, the shop is notified with the operation notifyOrder and status event In Progress

  • CB prepares for logistic processing of the order. The shop is notified with the operation notifyOrder and status event ProductionReady

  • The shop can retrieve the order process status to see which orderline(s) are ready for production and cannot be cancelled anymore

  • CB executes pick and pack for orderline 1 and creates a shipment. The shop is notified with the operation notifyShipment and status event Processed

  • The shop can retrieve the shipment details (including tracking number and a list of products) per shipping unit and can inform the customer

  • CB executes pick and pack for orderline 2 and creates a shipment. The shop is notified with the operation notifyShipment and status event Processed

  • The shop can retrieve the shipment details (including tracking number and a list of products) per shipping unit and can inform the customer

Alternative Flow 2 – multiple shipments due to partial backorder

The customer orders multiple products and stock is available for at least one product. Also at least one product is in backorder. The order is shipped in multiple shipments.

 Click here for Process flow diagram Alternative Flow 2
Process flow diagram Alternative Flow 2 - v1 2.jpg

Flow description:

  • The customer puts multiple products in the shopping basket

  • The shop forwards the order to CB with the operation placeOrder

  • CB verifies and accepts the order, the shop is notified with the operation notifyOrder and status event In Progress

  • CB prepares for logistic processing of orderline 1. The shop is notified with the operation notifyOrder and status event ProductionReady

  • The shop can retrieve the order process status to see which orderline(s) are ready for production and cannot be cancelled anymore

  • CB executes pick and pack for orderline 1 and creates a shipment. The shop is notified with the operation notifyShipment and status event Processed

  • The shop can retrieve the shipment details (including tracking number and a list of products) per shipping unit and can inform the customer

  • CB received stock for orderline 2, assigns stock and prepares for logistic processing of orderline The shop is notified with the operation notifyOrder and status event ProductionReady

  • The shop can retrieve the order process status to see which orderline(s) are ready for production and cannot be cancelled anymore

  • CB executes pick and pack for orderline 2 and creates a shipment. The shop is notified with the operation notifyShipment and status event Processed

  • The shop can retrieve the shipment details (including tracking number and a list of products) per shipping unit and can inform the customer.

Alternative Flow 3 – customer cancellation

The customer orders one or more products, but decides to cancel the order shortly after ordering.

 Click here for Process flow diagram Alternative Flow 3

Process flow diagram Alternative Flow 3 - v 1 3.jpg

Flow description:

  • The customer puts one or more products in the shopping basket

  • The shop forwards the order to CB with the operation placeOrder. The operation confirms acceptance of the order

  • CB verifies the order, the shop is notified with the operation notifyOrder and status event In Progress

  • The customer decides to cancel the order at the shop

  • The shop forwards the cancel request per orderline to CB with the operation cancelOrderLine. The operation confirms acceptance of the cancellation

  • CB informs the shop that the complete order is cancelled with the operation notifyOrder and status event Cancelled

  • The shop confirms the cancellation to the customer.

Alternative Flow 4 – partial customer cancellation

The customer orders multiple products, but decides to cancel at least one of the orderlines but not all shortly after ordering.

 Click here for Process flow diagram Alternative Flow 4

Process flow diagram Alternative Flow 4- v1 2.jpg

Flow description:

  • The customer puts multiple products in the shopping basket

  • The shop forwards the order to CB with the operation placeOrder. The operation confirms acceptance of the order

  • CB verifies the order, the shop is notified with the operation notifyOrder and status event In Progress

  • The customer decides to cancel orderline 1 in the shop

  • The shop forwards the cancel request for orderline 1 to CB with the operation cancelOrderLine.The operation confirms acceptance of the cancellation

  • CB informs the shop that an orderline is cancelled with the operation notifyOrder and status event Cancelled

  • The shop confirms the cancellation to the customer

  • CB prepares for logistic processing of orderline 2. The shop is notified with the operation notifyOrder and status event ProductionReady

  • CB executes pick and pack for orderline 2 and creates a shipment. The shop is notified with the operation notifyShipment and status event Processed

  • The shop can retrieve the shipment details (including tracking number and a list of products) per shipping unit and can inform the customer.

Alternative Flow 5 – CB order reject

The customer orders one or more products, but the order is not accepted by CB due to unknown products.

 Click here for Process flow diagram Alternative Flow 5

Flow description:

  • The customer puts multiple products in the shopping basket

  • The shop forwards the order to CB with the operation placeOrder. The operation confirms rejection of the order

Alternative Flow 6 – partial CB cancellation

The customer orders multiple products and stock is available for at least one product. Also stock is not available for at least one product and backlog is not allowed.

 Click here for Process flow diagram Alternative Flow 6

Flow description:

  • The customer puts multiple products in the shopping basket

  • The shop forwards the order to CB with the operation placeOrder. The operation confirms acceptance of the order

  • CB verifies the order and identifies that orderline 1 is not available, the shop is notified with the operation notifyOrder and status event Cancelled

  • CB identifies that orderline 2 is available, the shop is notified with the operation notifyOrder and status event InProgress

  • The shop retrieves the order process status to see which orderline(s) are not available

  • CB prepares for logistic processing of orderline 2. The shop is notified with the operation notifyOrder and status event ProductionReady

  • CB executes pick and pack for orderline 2 and creates a shipment. The shop is notified with the operation notifyShipment and status event Processed

  • The shop can retrieve the shipment details (including tracking number and a list of products) per shipping unit and can inform the customer

Alternative Flow 7 – order during service window

The customer orders one or more products during the service window. Stock is available for all products.

 Click here for Process flow diagram Alternative Flow 7

Flow description:

  • The customer puts one or more products in the shopping basket

  • The shop forwards the order to CB with the operation placeOrder. The operation confirms receipt of the order during the service window

  • CB verifies the order, the shop is notified with the operation notifyOrder and status event InProgress

  • CB prepares for logistic processing of the order. The shop is notified with the operation notifyOrder and status event ProductionReady

  • The shop can retrieve the order process status with operation getOrderStatus to see which orderline(s) are ready for production and cannot be cancelled anymore

  • CB executes pick and pack for the order and creates a shipment. The shop is notified with the operation notifyShipment and status event Processed

  • The shop can retrieve the shipment details (including tracking number and a list of products) per shipping unit and can inform the customer

Alternative Flow 8 – cancel during service window

The customer orders one or more products, but decides to cancel the order during the service window.

 Click here for Process flow diagram Alternative Flow 8

Flow description:

  • The customer puts multiple products in the shopping basket

  • The shop forwards the order to CB with the operation placeOrder. The operation confirms acceptance of the order

  • CB verifies the order, the shop is notified with the operation notifyOrder and status event In Progress

  • The customer decides to cancel the order in the shop

  • The shop forwards the cancel request per orderline to CB with the operation cancelOrderLine. The operation confirms receipt of the cancellation request during the service window

  • CB confirms a successful cancellation of the order after the service window ended. The shop is notified with the operation notifyOrder and status event Cancelled

  • The shop confirms the cancellation to the customer

Volume, limits and performance requirements

Timing

Webservice requests are processed realtime, i.e. an order is registered immediately when the webservice call is executed. Order processing at CB is based on scheduled processes and not primarily triggered by the webservice request.

Responses to the requester are send in Near-Realtime (NRT) with an average delay of 2 to 3 minutes. The regular maximum delay is 5 minutes, in exceptions running up to 10 minutes. During this timeframe the orderstatus has reached a status that is not yet reported to the requestor.

Volume

Webservice requests are limited to a maximum of 10 requests per service per second per requestor.

Performance

The media webservices comply with the generic CB webservice performance requirements:

  • Average response time within 2 seconds during prime-time (08:00-01:00 CET)

  • Response within 3 seconds for 99,95% of the requests during prime-time

  • Response within 6 seconds for 99% of the requests outside prime-time

Order simulation for test purpose

In order to test the web service independently as much as possible, a test order based on a few characteristics, that the customer provides, must be processed fully automatically. The functionality described here is available on CB's test environment, but not on the production environment.

Operation of order simulation web service MediaOrderB2C

The order simulation functionality is built into the order handling and processing. 

Simulation characteristic

An order is included in the order simulation on the basis of a test characteristic in the order. The attribute identifier is:

Test attribute is: $CB*TST
The attribute is 7 positions long. The maximum length of command reference fields supported is 10 positions. The remaining 3 positions are reserved for additional command instructions. 

The customer can specify this attribute in one of the two order reference fields:

  • BuyerReference 

  • OwnerReference

The customer can choose which field is used for the characteristic. The other field remains available for the customer's reference. A customer who wants to use both order reference fields in production for his own references must, in order to apply the order simulation, choose which of the two fields is “sacrificed” for the characteristic.

Order Instructions

By default one ShippingUnitID is created for each order, independent of the number of order lines, ordered copies and dimensions of the items. We simulate that everything fits into one ShippingUnitID, which gives the customer a clear expectation of the result of the order. In practice, not everything fits in a ShippingUnitID, so the customer can indicate in the order how many ShippingUnitID's CB need to create.

Test characteristic addition for more than one ShippingUnitID
This is optional and is placed after the test attribute with: Cnn

Where nn stands for the number of ShippingUnitID's (2 to 99). For instance:

  • $CB*TSTC3   => Test feature + request for 3 ShippingUnitID's

  • $CB*TSTC05 => Test feature + request for 5 ShippingUnitID's

  • $CB*TSTC15 => Test feature + request for 15 ShippingUnitID's

The maximum number of ShippingUnitID's to be made is equal to the number of copies ordered (i.e. 1 copy per ShippingUnitID). If more ShippingUnitID's are requested than there are ordered copies in an order, a ShippingUnitID is created for each ordered copy. No error message or warning is given

Orderline instruction

By default, for each OrderLine, the number of copies ordered is also included in the ShippingUnitID as delivered. In practice, various scenarios are possible, as a result of which a different number of copies is delivered. The order simulation supports one scenario, a shortage ('manco') situation. The customer can indicate at the Orderline how many copies are reported missing. 

Scenario 'Shortage' situation

This is optional and comes with the shortage attribute: $MANCO;n

The customer can specify this attribute in one of the two order reference fields at Orderline level:

  • BuyerReference 

  • OwnerReference

Where stands for the number of ShippingUnitID's (2 to 99). For instance:

  • $MANCO;1 => Request for 1 copy shortage with this order line

  • $MANCO;5 => Request for 5 copy shortage with this order line

The maximum number of shortages is the number of copies ordered. If more shortages are requested than there are ordered copies in a OrderLine, then 0 (null) copies delivered are reported. No error message or warning is given. No new OrderLine for the missing copies is created. The intended situation is to deliver less than requested. Backordering is not supported in order simulation.

Test articles

Articles available for test

ISBN

Titel

DiscountCode

ProductAvailability 

Stock YES/NO

9789029511537

MediaOrderB2C Title 1 

A

Reprint/Herdruk

NO

9789029585071

MediaOrderB2C Title 2 

A

Announced/Aangekondigd

NO

9789063055998

MediaOrderB2C Title 3

O

Not available/Uitverkocht

NO

9789045119731

MediaOrderB2C Title 4

S

In stock/Verschenen

YES

9789045119755

MediaOrderB2C Title 5

A

In stock/Verschenen

YES

9789025307349

MediaOrderB2C Title 6

A

In stock/Verschenen

YES

9789025308339

MediaOrderB2C Title 7

A

In stock/Verschenen

YES

9789025309640

MediaOrderB2C Title 8

A

In stock/Verschenen

YES

9789025309954

MediaOrderB2C Title 9

A

In stock/Verschenen

YES

9789029505598

MediaOrderB2C Title 10

A

In stock/Verschenen

YES

9789029506182

MediaOrderB2C Title 11

A

In stock/Verschenen

YES

9789029506335

MediaOrderB2C Title 12

A

In stock/Verschenen

YES

9789029506885

MediaOrderB2C Title 13 

A

In stock/Verschenen

YES

ONIX file with Product records:  Testarticles-ini-1van1_onx.xml

Results for customer

The customer is informed almost immediately when the order status is changed. The diagram below shows which stages are defined and which web service operations are used to communicate or make information available to the customer. 

Ordersimulation image.JPG

Description:

  • The customer places one or more items in the shopping cart of a shop

  • The webshop submits the order to CB

  • CB checks the order and if accepted, CB sends an order notification with status event “In Progress”

  • CB reserves stock and releases the order (line) for logistics. The order line cannot be cancelled from that moment on. CB sends an order notification with status event “ProductionReady”

  • The webshop can retrieve the status of the order to see which order lines have been released

  • CB performs the order simulation and sends a shipment notification per shipment unit with status event “Processed”

  • The webhop can retrieve the details of each shipment unit and thus inform the customer. 

  • No labels