Schema Changes - 2025-05-22
This document contains the changes to the schema files compared to the main branch.
Changes
diff --git a/schema/Api/OfferBroker/CreateOfferCategoryParameters.json b/schema/Api/CustomerBroker/CreateCustomerParameters.json
similarity index 100%
rename from schema/Api/OfferBroker/CreateOfferCategoryParameters.json
rename to schema/Api/CustomerBroker/CreateCustomerParameters.json
diff --git a/schema/Api/OfferBroker/CreateOfferCategoryRequest.json b/schema/Api/CustomerBroker/CreateCustomerRequest.json
similarity index 50%
rename from schema/Api/OfferBroker/CreateOfferCategoryRequest.json
rename to schema/Api/CustomerBroker/CreateCustomerRequest.json
index b6654a0..2c741fa 100644
--- a/schema/Api/OfferBroker/CreateOfferCategoryRequest.json
+++ b/schema/Api/CustomerBroker/CreateCustomerRequest.json
@@ -1,7 +1,7 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
- "$id": "CreateOfferCategoryRequest.json",
- "$ref": "parts/OfferCategoryFromCreateOfferCategoryRequest.json",
+ "$id": "CreateCustomerRequest.json",
+ "$ref": "parts/CustomerFromCreateCustomerRequest.json",
"type": "object",
"additionalProperties": false
}
diff --git a/schema/Api/CustomerBroker/CreateCustomerResponse.json b/schema/Api/CustomerBroker/CreateCustomerResponse.json
new file mode 100644
index 0000000..f00e554
--- /dev/null
+++ b/schema/Api/CustomerBroker/CreateCustomerResponse.json
@@ -0,0 +1,11 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "$id": "CreateCustomerResponse.json",
+ "allOf": [
+ {"$ref": "../../Common/ApiResponseBase.json"},
+ {
+ "type": "object",
+ "properties": { "data": { "oneOf": [ {"type": "null"}, {"$ref": "parts/Customer.json"} ] } }
+ }
+ ]
+}
diff --git a/schema/Api/OfferBroker/DeleteOfferCategoryParameters.json b/schema/Api/CustomerBroker/UpdateCustomerParameters.json
similarity index 100%
rename from schema/Api/OfferBroker/DeleteOfferCategoryParameters.json
rename to schema/Api/CustomerBroker/UpdateCustomerParameters.json
diff --git a/schema/Api/OfferBroker/UpdateOfferCategoryRequest.json b/schema/Api/CustomerBroker/UpdateCustomerRequest.json
similarity index 50%
rename from schema/Api/OfferBroker/UpdateOfferCategoryRequest.json
rename to schema/Api/CustomerBroker/UpdateCustomerRequest.json
index f8a4829..41698de 100644
--- a/schema/Api/OfferBroker/UpdateOfferCategoryRequest.json
+++ b/schema/Api/CustomerBroker/UpdateCustomerRequest.json
@@ -1,7 +1,7 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
- "$id": "UpdateOfferCategoryRequest.json",
- "$ref": "parts/OfferCategoryFromUpdateOfferCategoryRequest.json",
+ "$id": "UpdateCustomerRequest.json",
+ "$ref": "parts/CustomerFromUpdateCustomerRequest.json",
"type": "object",
"additionalProperties": false
}
diff --git a/schema/Api/CustomerBroker/UpdateCustomerResponse.json b/schema/Api/CustomerBroker/UpdateCustomerResponse.json
new file mode 100644
index 0000000..8700a1e
--- /dev/null
+++ b/schema/Api/CustomerBroker/UpdateCustomerResponse.json
@@ -0,0 +1,11 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "$id": "UpdateCustomerResponse.json",
+ "allOf": [
+ {"$ref": "../../Common/ApiResponseBase.json"},
+ {
+ "type": "object",
+ "properties": { "data": { "oneOf": [ {"type": "null"}, {"$ref": "parts/Customer.json"} ] } }
+ }
+ ]
+}
diff --git a/schema/Api/CustomerBroker/parts/ContactAddress.json b/schema/Api/CustomerBroker/parts/ContactAddress.json
index 8b53eba..32efcd3 100644
--- a/schema/Api/CustomerBroker/parts/ContactAddress.json
+++ b/schema/Api/CustomerBroker/parts/ContactAddress.json
@@ -2,20 +2,38 @@
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "ContactAddress.json",
"type": "object",
- "additionalProperties": false,
"properties": {
- "address1" : { "type": ["string", "null"] },
- "address2" : { "type": ["string", "null"] },
- "address3" : { "type": ["string", "null"] },
- "addressType" : { "type": ["string", "null"] },
- "city" : { "type": ["string", "null"] },
- "company" : { "type": ["string", "null"] },
- "country" : { "type": ["string", "null"] },
- "faxNumber" : { "type": ["string", "null"] },
- "name" : { "type": ["string", "null"] },
- "phoneNumber" : { "type": ["string", "null"] },
- "postalCode" : { "type": ["string", "null"] },
- "stateProvince": { "type": ["string", "null"] }
+ "address1": {
+ "description": "Required if contactAddress is present. Address line 1. Must not be empty.",
+ "type": ["string", "null"],
+ "minLength": 1
+ },
+ "address2": { "description": "Optional. Address line 2.", "type": ["string", "null"] },
+ "address3": { "description": "Optional. Address line 3.", "type": ["string", "null"] },
+ "city": {
+ "description": "Required if contactAddress is present. City. Must not be empty.",
+ "type": ["string", "null"],
+ "minLength": 1
+ },
+ "company": { "description": "Optional. Company name.", "type": ["string", "null"] },
+ "country": {
+ "description": "Required if contactAddress is present. Country. Must not be empty.",
+ "type": ["string", "null"],
+ "minLength": 1
+ },
+ "faxNumber": { "description": "Optional. Fax number.", "type": ["string", "null"] },
+ "name": { "description": "Optional. Contact name.", "type": ["string", "null"] },
+ "phoneNumber": { "description": "Optional. Phone number.", "type": ["string", "null"] },
+ "postalCode": {
+ "description": "Required if contactAddress is present. Postal code. Must not be empty.",
+ "type": ["string", "null"],
+ "minLength": 1
+ },
+ "stateProvince": {
+ "description": "Required. State or province.",
+ "type": ["string", "null"],
+ "minLength": 1
+ }
},
- "required": ["address1", "addressType"]
+ "required": ["address1", "city", "country", "postalCode", "stateProvince"]
}
diff --git a/schema/Api/CustomerBroker/parts/Customer.json b/schema/Api/CustomerBroker/parts/Customer.json
index 42d6919..648f705 100644
--- a/schema/Api/CustomerBroker/parts/Customer.json
+++ b/schema/Api/CustomerBroker/parts/Customer.json
@@ -2,30 +2,43 @@
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "Customer.json",
"type": "object",
- "additionalProperties": false,
"properties": {
- "defaultWarehouseId": { "type": ["string", "null"] },
- "id": {"type": "string"},
- "brokerScopes": { "type": ["array", "null"], "items": {"type": "string"} },
- "clientSecret": { "type": ["string", "null"] },
- "contactAddress": {"$ref": "ContactAddress.json"},
- "contactEmailAddress": { "type": ["string", "null"] },
- "emailNotificationSubscriptions": {
- "type": ["array", "null"],
- "items": {"$ref": "EmailNotificationSubscription.json"}
+ "defaultWarehouseId": { "description": "Optional. Warehouse identifier.", "type": ["string", "null"] },
+ "id": {
+ "description": "Required. Unique customer identifier. Must not be empty. Must exist for update. Cannot be the same as parent.id.",
+ "type": ["string", "null"],
+ "minLength": 1
},
- "invoiceEmailAddress": { "type": ["string", "null"] },
- "name": {"type": "string"},
- "parentCustomer": {"$ref": "ParentCustomer.json"},
- "partner": { "type": ["string", "null"] },
- "paymentEmailAddress": { "type": ["string", "null"] },
- "phoneNumber": { "type": ["string", "null"] },
- "productionFileLocation": { "type": ["string", "null"] },
- "salesRep": { "type": ["string", "null"] },
- "shipMethodMappings": { "type": ["array", "null"], "items": {"$ref": "ShipMethodMapping.json"} },
- "sourceSystems": { "type": ["array", "null"], "items": {"$ref": "SourceSystem.json"} },
- "subsidiary": { "type": ["string", "null"] },
- "website": { "type": ["string", "null"] }
+ "contactEmailAddress": {
+ "description": "Optional. Contact email address. Must be a valid email if provided.",
+ "type": ["string", "null"],
+ "format": "email"
+ },
+ "invoiceEmailAddress": {
+ "description": "Optional. Invoice email address. Must be a valid email if provided.",
+ "type": ["string", "null"],
+ "format": "email"
+ },
+ "name": {
+ "description": "Required. Customer name.",
+ "type": ["string", "null"],
+ "minLength": 1
+ },
+ "offerRevisionDelimiter": { "type": ["string", "null"] },
+ "partner": { "description": "Optional. Partner name.", "type": ["string", "null"] },
+ "paymentEmailAddress": {
+ "description": "Optional. Payment email address. Must be a valid email if provided.",
+ "type": ["string", "null"],
+ "format": "email"
+ },
+ "phoneNumber": { "description": "Optional. Phone number.", "type": ["string", "null"] },
+ "productionFileLocation": {
+ "description": "Optional. Production file location.",
+ "type": ["string", "null"]
+ },
+ "salesRep": { "description": "Optional. Sales representative.", "type": ["string", "null"] },
+ "subsidiary": { "description": "Optional. Subsidiary name.", "type": ["string", "null"] },
+ "website": { "description": "Optional. Website URL.", "type": ["string", "null"] }
},
"required": ["id", "name"]
}
diff --git a/schema/Api/CustomerBroker/parts/CustomerFromCreateCustomerRequest.json b/schema/Api/CustomerBroker/parts/CustomerFromCreateCustomerRequest.json
new file mode 100644
index 0000000..00ef500
--- /dev/null
+++ b/schema/Api/CustomerBroker/parts/CustomerFromCreateCustomerRequest.json
@@ -0,0 +1,32 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "$id": "CustomerFromCreateCustomerRequest.json",
+ "type": "object",
+ "allOf": [
+ {"$ref": "Customer.json"},
+ {
+ "type": "object",
+ "properties": {
+ "contactAddress": {
+ "$ref": "ContactAddress.json",
+ "description": "Optional. Contact address for the customer. Required fields are validated if present."
+ },
+ "createDateTimeUtc": {
+ "description": "Optional. Creation date/time in UTC. Must not be in the future if provided.",
+ "type": ["string", "null"]
+ },
+ "emailNotificationSubscriptions": {
+ "description": "Optional. List of email notification subscriptions.",
+ "type": ["array", "null"],
+ "items": {"$ref": "EmailNotificationSubscription.json"}
+ },
+ "parent": {"$ref": "Parent.json"},
+ "shipMethodMappings": {
+ "description": "Optional. Ship method mappings for the customer.",
+ "type": ["array", "null"],
+ "items": {"$ref": "ShipMethodMapping.json"}
+ }
+ }
+ }
+ ]
+}
diff --git a/schema/Api/CustomerBroker/parts/CustomerFromUpdateCustomerRequest.json b/schema/Api/CustomerBroker/parts/CustomerFromUpdateCustomerRequest.json
new file mode 100644
index 0000000..4c93d37
--- /dev/null
+++ b/schema/Api/CustomerBroker/parts/CustomerFromUpdateCustomerRequest.json
@@ -0,0 +1,21 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "$id": "CustomerFromUpdateCustomerRequest.json",
+ "type": "object",
+ "allOf": [
+ {"$ref": "Customer.json"},
+ {
+ "type": "object",
+ "properties": {
+ "contactAddress": {"$ref": "ContactAddress.json"},
+ "emailNotificationSubscriptions": {
+ "type": ["array", "null"],
+ "items": {"$ref": "EmailNotificationSubscription.json"}
+ },
+ "parent": {"$ref": "Parent.json"},
+ "shipMethodMappings": { "type": ["array", "null"], "items": {"$ref": "ShipMethodMapping.json"} },
+ "updateDateTimeUtc": { "type": ["string", "null"] }
+ }
+ }
+ ]
+}
diff --git a/schema/Api/CustomerBroker/parts/CustomerId.json b/schema/Api/CustomerBroker/parts/CustomerId.json
index a658dd5..a8fdf6c 100644
--- a/schema/Api/CustomerBroker/parts/CustomerId.json
+++ b/schema/Api/CustomerBroker/parts/CustomerId.json
@@ -3,5 +3,5 @@
"$id": "CustomerId.json",
"type": "object",
"additionalProperties": false,
- "properties": { "customerId": { "type": ["string", "null"] } }
+ "properties": { "id": { "type": ["string", "null"] } }
}
diff --git a/schema/Api/CustomerBroker/parts/EmailNotificationSubscription.json b/schema/Api/CustomerBroker/parts/EmailNotificationSubscription.json
index e109a77..d158991 100644
--- a/schema/Api/CustomerBroker/parts/EmailNotificationSubscription.json
+++ b/schema/Api/CustomerBroker/parts/EmailNotificationSubscription.json
@@ -2,10 +2,8 @@
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "EmailNotificationSubscription.json",
"type": "object",
- "additionalProperties": false,
"properties": {
- "emailNotificationTemplateId": { "type": "string" },
- "emailAddresses" : { "type": ["array", "null"], "items": {"type": "string"} }
- },
- "required": ["emailNotificationTemplateId"]
+ "emailNotificationTemplateId": { "type": ["string", "null"] },
+ "emailAddresses" : { "type": ["array", "null"] , "items": {"type": "string"} }
+ }
}
diff --git a/schema/Api/CustomerBroker/parts/FulfillmentSystemShipMethod.json b/schema/Api/CustomerBroker/parts/FulfillmentSystemShipMethod.json
index ce356a6..2152fb9 100644
--- a/schema/Api/CustomerBroker/parts/FulfillmentSystemShipMethod.json
+++ b/schema/Api/CustomerBroker/parts/FulfillmentSystemShipMethod.json
@@ -2,11 +2,9 @@
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "FulfillmentSystemShipMethod.json",
"type": "object",
- "additionalProperties": false,
"properties": {
"fulfillmentSystemId": {"type": "integer", "format": "int32"},
- "fulfillmentSystemShipMethodId": {"type": "string"},
+ "fulfillmentSystemShipMethodId": { "type": ["string", "null"] },
"fulfillmentSystemName": { "type": ["string", "null"] }
- },
- "required": ["fulfillmentSystemId", "fulfillmentSystemShipMethodId"]
+ }
}
diff --git a/schema/Api/CustomerBroker/parts/Parent.json b/schema/Api/CustomerBroker/parts/Parent.json
new file mode 100644
index 0000000..9e5f2ca
--- /dev/null
+++ b/schema/Api/CustomerBroker/parts/Parent.json
@@ -0,0 +1,13 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "$id": "Parent.json",
+ "type": "object",
+ "properties": {
+ "id": {
+ "description": "Required. Must not be the same as the customer id. Must exist in the system.",
+ "type": "string"
+ },
+ "name": { "type": ["string", "null"] }
+ },
+ "required": ["id"]
+}
diff --git a/schema/Api/CustomerBroker/parts/ShipMethodMapping.json b/schema/Api/CustomerBroker/parts/ShipMethodMapping.json
index 8257c8b..0f88a48 100644
--- a/schema/Api/CustomerBroker/parts/ShipMethodMapping.json
+++ b/schema/Api/CustomerBroker/parts/ShipMethodMapping.json
@@ -2,7 +2,6 @@
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "ShipMethodMapping.json",
"type": "object",
- "additionalProperties": false,
"properties": {
"ratesProviderShipMethodId": { "type": ["string", "null"] },
"sourceSystemShipMethodId": {"type": "string"},
diff --git a/schema/Api/IdentityBroker/GetCustomerTokenRequest.json b/schema/Api/IdentityBroker/GetCustomerTokenRequest.json
index 41ec911..3a6876b 100644
--- a/schema/Api/IdentityBroker/GetCustomerTokenRequest.json
+++ b/schema/Api/IdentityBroker/GetCustomerTokenRequest.json
@@ -4,14 +4,12 @@
"type": "object",
"additionalProperties": false,
"properties": {
- "sourceSystemId": {"type": "integer", "format": "int32"},
"clientName": { "type": ["string", "null"] },
- "password": { "type": ["string", "null"] }
+ "password" : { "type": ["string", "null"] }
},
- "required": ["sourceSystemId", "clientName", "password"],
+ "required": ["clientName", "password"],
"examples": [
{
- "sourceSystemId": 2,
"clientName": "Tliw1cu7ad6qbrpBncV1aCoFhQUqVMYn",
"password": "l0RHIXhw50egq65DkO3YpawB999UOw1VRgsIlaw8LZQKdS3h5gW-LoJ7wmQTSJLZ"
}
diff --git a/schema/Api/IdentityBroker/GetTokenRequest.json b/schema/Api/IdentityBroker/GetTokenRequest.json
index f4e0179..d569278 100644
--- a/schema/Api/IdentityBroker/GetTokenRequest.json
+++ b/schema/Api/IdentityBroker/GetTokenRequest.json
@@ -3,7 +3,10 @@
"$id": "GetTokenRequest.json",
"type": "object",
"additionalProperties": false,
- "properties": { "clientName": {"type": "string"}, "password": {"type": "string"} },
+ "properties": {
+ "clientName": { "type": ["string", "null"] },
+ "password" : { "type": ["string", "null"] }
+ },
"required": ["clientName", "password"],
"examples": [
{
diff --git a/schema/Api/IdentityBroker/parts/Token.json b/schema/Api/IdentityBroker/parts/Token.json
index 7cb2255..9d2c4c6 100644
--- a/schema/Api/IdentityBroker/parts/Token.json
+++ b/schema/Api/IdentityBroker/parts/Token.json
@@ -2,7 +2,6 @@
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "Token.json",
"type": "object",
- "additionalProperties": false,
"properties": { "authToken": {"type": "string"}, "expiresOn": {"type": "string"} },
"required": ["authToken", "expiresOn"]
}
diff --git a/schema/Api/OfferBroker/UpdateOfferCategoryParameters.json b/schema/Api/OfferBroker/CreateCategoryParameters.json
similarity index 100%
rename from schema/Api/OfferBroker/UpdateOfferCategoryParameters.json
rename to schema/Api/OfferBroker/CreateCategoryParameters.json
diff --git a/schema/Api/OfferBroker/CreateCategoryRequest.json b/schema/Api/OfferBroker/CreateCategoryRequest.json
new file mode 100644
index 0000000..da85692
--- /dev/null
+++ b/schema/Api/OfferBroker/CreateCategoryRequest.json
@@ -0,0 +1,7 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "$id": "CreateCategoryRequest.json",
+ "$ref": "parts/CategoryFromCreateCategoryRequest.json",
+ "type": "object",
+ "additionalProperties": false
+}
diff --git a/schema/Api/OfferBroker/CreateCategoryResponse.json b/schema/Api/OfferBroker/CreateCategoryResponse.json
new file mode 100644
index 0000000..234d094
--- /dev/null
+++ b/schema/Api/OfferBroker/CreateCategoryResponse.json
@@ -0,0 +1,22 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "$id": "CreateCategoryResponse.json",
+ "allOf": [
+ {"$ref": "../../Common/ApiResponseBase.json"},
+ {
+ "type": "object",
+ "properties": {
+ "data": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "id": { "type": ["string", "null"] },
+ "failureMessages": { "type": ["array", "null"], "items": {"type": "string"} },
+ "informationalMessages": { "type": ["array", "null"], "items": {"type": "string"} },
+ "operationWasSuccessful": {"type": "boolean", "readOnly": true}
+ }
+ }
+ }
+ }
+ ]
+}
diff --git a/schema/Api/OfferBroker/CreateOfferRequest.json b/schema/Api/OfferBroker/CreateOfferRequest.json
index e9996dc..d80675c 100644
--- a/schema/Api/OfferBroker/CreateOfferRequest.json
+++ b/schema/Api/OfferBroker/CreateOfferRequest.json
@@ -1,7 +1,6 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "CreateOfferRequest.json",
- "$ref": "parts/OfferFromCreateOfferRequest.json",
- "type": "object",
- "additionalProperties": false
+ "$ref": "parts/Offer.json",
+ "type": "object"
}
diff --git a/schema/Api/OfferBroker/CreateOfferResponse.json b/schema/Api/OfferBroker/CreateOfferResponse.json
new file mode 100644
index 0000000..ba49f0d
--- /dev/null
+++ b/schema/Api/OfferBroker/CreateOfferResponse.json
@@ -0,0 +1,22 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "$id": "CreateOfferResponse.json",
+ "allOf": [
+ {"$ref": "../../Common/ApiResponseBase.json"},
+ {
+ "type": "object",
+ "properties": {
+ "data": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "id": { "type": ["string", "null"] },
+ "failureMessages": { "type": ["array", "null"], "items": {"type": "string"} },
+ "informationalMessages": { "type": ["array", "null"], "items": {"type": "string"} },
+ "operationWasSuccessful": {"type": "boolean", "readOnly": true}
+ }
+ }
+ }
+ }
+ ]
+}
diff --git a/schema/Api/OfferBroker/DeleteCategoryParameters.json b/schema/Api/OfferBroker/DeleteCategoryParameters.json
new file mode 100644
index 0000000..011b51c
--- /dev/null
+++ b/schema/Api/OfferBroker/DeleteCategoryParameters.json
@@ -0,0 +1,9 @@
+{
+ "CorrelationId": {
+ "description": "Correlation ID. This is added by the API Management service if not present. Once added, it should be propagated to any downstream services.",
+ "in": "header",
+ "name": "x-correlation-id",
+ "schema": {"type": "string"},
+ "required": false
+ }
+}
diff --git a/schema/Api/CustomerBroker/parts/ParentCustomer.json b/schema/Api/OfferBroker/DeleteCategoryRequest.json
similarity index 53%
rename from schema/Api/CustomerBroker/parts/ParentCustomer.json
rename to schema/Api/OfferBroker/DeleteCategoryRequest.json
index cf6f5f5..cb035c9 100644
--- a/schema/Api/CustomerBroker/parts/ParentCustomer.json
+++ b/schema/Api/OfferBroker/DeleteCategoryRequest.json
@@ -1,8 +1,8 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
- "$id": "ParentCustomer.json",
+ "$id": "DeleteCategoryRequest.json",
"type": "object",
"additionalProperties": false,
- "properties": { "id": {"type": "string"}, "name": { "type": ["string", "null"] } },
+ "properties": { "id": { "type": ["string", "null"] } },
"required": ["id"]
}
diff --git a/schema/Api/OfferBroker/DeleteCategoryResponse.json b/schema/Api/OfferBroker/DeleteCategoryResponse.json
new file mode 100644
index 0000000..35a21ab
--- /dev/null
+++ b/schema/Api/OfferBroker/DeleteCategoryResponse.json
@@ -0,0 +1,22 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "$id": "DeleteCategoryResponse.json",
+ "allOf": [
+ {"$ref": "../../Common/ApiResponseBase.json"},
+ {
+ "type": "object",
+ "properties": {
+ "data": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "id": { "type": ["string", "null"] },
+ "failureMessages": { "type": ["array", "null"], "items": {"type": "string"} },
+ "informationalMessages": { "type": ["array", "null"], "items": {"type": "string"} },
+ "operationWasSuccessful": {"type": "boolean", "readOnly": true}
+ }
+ }
+ }
+ }
+ ]
+}
diff --git a/schema/Api/OfferBroker/DeleteOfferCategoryRequest.json b/schema/Api/OfferBroker/DeleteOfferCategoryRequest.json
deleted file mode 100644
index 068c220..0000000
--- a/schema/Api/OfferBroker/DeleteOfferCategoryRequest.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "$schema": "http://json-schema.org/draft-07/schema#",
- "$id": "DeleteOfferCategoryRequest.json",
- "type": "object",
- "additionalProperties": false,
- "properties": { "categoryId": { "type": ["string", "null"] } },
- "required": ["categoryId"]
-}
diff --git a/schema/Api/OfferBroker/DeleteOfferRequest.json b/schema/Api/OfferBroker/DeleteOfferRequest.json
index 4ad7470..fd01891 100644
--- a/schema/Api/OfferBroker/DeleteOfferRequest.json
+++ b/schema/Api/OfferBroker/DeleteOfferRequest.json
@@ -3,9 +3,6 @@
"$id": "DeleteOfferRequest.json",
"type": "object",
"additionalProperties": false,
- "properties": {
- "customerId": { "type": ["string", "null"] },
- "omsOfferId": { "type": ["string", "null"] }
- },
+ "properties": { "omsOfferId": { "type": ["string", "null"] } },
"required": ["omsOfferId"]
}
diff --git a/schema/Api/OfferBroker/DeleteOfferResponse.json b/schema/Api/OfferBroker/DeleteOfferResponse.json
new file mode 100644
index 0000000..c8a595e
--- /dev/null
+++ b/schema/Api/OfferBroker/DeleteOfferResponse.json
@@ -0,0 +1,22 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "$id": "DeleteOfferResponse.json",
+ "allOf": [
+ {"$ref": "../../Common/ApiResponseBase.json"},
+ {
+ "type": "object",
+ "properties": {
+ "data": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "id": { "type": ["string", "null"] },
+ "failureMessages": { "type": ["array", "null"], "items": {"type": "string"} },
+ "informationalMessages": { "type": ["array", "null"], "items": {"type": "string"} },
+ "operationWasSuccessful": {"type": "boolean", "readOnly": true}
+ }
+ }
+ }
+ }
+ ]
+}
diff --git a/schema/Api/OfferBroker/GetOfferResponse.json b/schema/Api/OfferBroker/GetOfferResponse.json
index 3cc8571..5deab35 100644
--- a/schema/Api/OfferBroker/GetOfferResponse.json
+++ b/schema/Api/OfferBroker/GetOfferResponse.json
@@ -5,11 +5,7 @@
{"$ref": "../../Common/ApiResponseBase.json"},
{
"type": "object",
- "properties": {
- "data": {
- "oneOf": [ {"type": "null"}, {"$ref": "parts/OfferFromGetOfferResponse.json"} ]
- }
- }
+ "properties": { "data": { "oneOf": [ {"type": "null"}, {"$ref": "parts/Offer.json"} ] } }
}
]
}
diff --git a/schema/Api/OfferBroker/GetOffersParameters.json b/schema/Api/OfferBroker/GetOffersParameters.json
index 011b51c..e6115f1 100644
--- a/schema/Api/OfferBroker/GetOffersParameters.json
+++ b/schema/Api/OfferBroker/GetOffersParameters.json
@@ -5,5 +5,15 @@
"name": "x-correlation-id",
"schema": {"type": "string"},
"required": false
+ },
+ "DoIncludeDeletedItems": {
+ "in": "query",
+ "name": "doIncludeDeletedItems",
+ "schema": {"type": "boolean"}
+ },
+ "UpdatedSinceDateTime": {
+ "in": "query",
+ "name": "updatedSinceDateTime",
+ "schema": {"type": "string", "format": "date-time"}
}
}
diff --git a/schema/Api/OfferBroker/GetOffersResponse.json b/schema/Api/OfferBroker/GetOffersResponse.json
index 11d660e..053762d 100644
--- a/schema/Api/OfferBroker/GetOffersResponse.json
+++ b/schema/Api/OfferBroker/GetOffersResponse.json
@@ -5,12 +5,7 @@
{"$ref": "../../Common/ApiResponseBase.json"},
{
"type": "object",
- "properties": {
- "data": {
- "type": ["array", "null"],
- "items": {"$ref": "parts/OfferFromGetOffersResponse.json"}
- }
- }
+ "properties": { "data": { "type": ["array", "null"], "items": {"$ref": "parts/Offer.json"} } }
}
]
}
diff --git a/schema/Api/OfferBroker/UpdateCategoryParameters.json b/schema/Api/OfferBroker/UpdateCategoryParameters.json
new file mode 100644
index 0000000..011b51c
--- /dev/null
+++ b/schema/Api/OfferBroker/UpdateCategoryParameters.json
@@ -0,0 +1,9 @@
+{
+ "CorrelationId": {
+ "description": "Correlation ID. This is added by the API Management service if not present. Once added, it should be propagated to any downstream services.",
+ "in": "header",
+ "name": "x-correlation-id",
+ "schema": {"type": "string"},
+ "required": false
+ }
+}
diff --git a/schema/Api/OfferBroker/UpdateCategoryRequest.json b/schema/Api/OfferBroker/UpdateCategoryRequest.json
new file mode 100644
index 0000000..fa413cd
--- /dev/null
+++ b/schema/Api/OfferBroker/UpdateCategoryRequest.json
@@ -0,0 +1,7 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "$id": "UpdateCategoryRequest.json",
+ "$ref": "parts/CategoryFromUpdateCategoryRequest.json",
+ "type": "object",
+ "additionalProperties": false
+}
diff --git a/schema/Api/OfferBroker/UpdateCategoryResponse.json b/schema/Api/OfferBroker/UpdateCategoryResponse.json
new file mode 100644
index 0000000..9f560b3
--- /dev/null
+++ b/schema/Api/OfferBroker/UpdateCategoryResponse.json
@@ -0,0 +1,22 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "$id": "UpdateCategoryResponse.json",
+ "allOf": [
+ {"$ref": "../../Common/ApiResponseBase.json"},
+ {
+ "type": "object",
+ "properties": {
+ "data": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "id": { "type": ["string", "null"] },
+ "failureMessages": { "type": ["array", "null"], "items": {"type": "string"} },
+ "informationalMessages": { "type": ["array", "null"], "items": {"type": "string"} },
+ "operationWasSuccessful": {"type": "boolean", "readOnly": true}
+ }
+ }
+ }
+ }
+ ]
+}
diff --git a/schema/Api/OfferBroker/UpdateOfferRequest.json b/schema/Api/OfferBroker/UpdateOfferRequest.json
index ceb1f66..fd5b0da 100644
--- a/schema/Api/OfferBroker/UpdateOfferRequest.json
+++ b/schema/Api/OfferBroker/UpdateOfferRequest.json
@@ -1,7 +1,7 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "UpdateOfferRequest.json",
- "$ref": "parts/OfferFromUpdateOfferRequest.json",
+ "$ref": "parts/Offer.json",
"type": "object",
"additionalProperties": false
}
diff --git a/schema/Api/OfferBroker/UpdateOfferResponse.json b/schema/Api/OfferBroker/UpdateOfferResponse.json
new file mode 100644
index 0000000..c21d7f9
--- /dev/null
+++ b/schema/Api/OfferBroker/UpdateOfferResponse.json
@@ -0,0 +1,22 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "$id": "UpdateOfferResponse.json",
+ "allOf": [
+ {"$ref": "../../Common/ApiResponseBase.json"},
+ {
+ "type": "object",
+ "properties": {
+ "data": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "id": { "type": ["string", "null"] },
+ "failureMessages": { "type": ["array", "null"], "items": {"type": "string"} },
+ "informationalMessages": { "type": ["array", "null"], "items": {"type": "string"} },
+ "operationWasSuccessful": {"type": "boolean", "readOnly": true}
+ }
+ }
+ }
+ }
+ ]
+}
diff --git a/schema/Api/OfferBroker/parts/OfferCategoryFromCreateOfferCategoryRequest.json b/schema/Api/OfferBroker/parts/Category.json
similarity index 77%
rename from schema/Api/OfferBroker/parts/OfferCategoryFromCreateOfferCategoryRequest.json
rename to schema/Api/OfferBroker/parts/Category.json
index 014e118..b07fcc0 100644
--- a/schema/Api/OfferBroker/parts/OfferCategoryFromCreateOfferCategoryRequest.json
+++ b/schema/Api/OfferBroker/parts/Category.json
@@ -1,11 +1,11 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
- "$id": "OfferCategoryFromCreateOfferCategoryRequest.json",
+ "$id": "Category.json",
"type": "object",
"properties": {
"parentId" : { "type": ["string", "null"] },
"lastUpdatedDateTimeUtc": { "type": ["string", "null"] },
"name" : { "type": ["string", "null"] }
},
- "required": ["name"]
+ "required": ["id", "name"]
}
diff --git a/schema/Api/OfferBroker/parts/CategoryFromCreateCategoryRequest.json b/schema/Api/OfferBroker/parts/CategoryFromCreateCategoryRequest.json
new file mode 100644
index 0000000..9c4a7c0
--- /dev/null
+++ b/schema/Api/OfferBroker/parts/CategoryFromCreateCategoryRequest.json
@@ -0,0 +1,6 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "$id": "CategoryFromCreateCategoryRequest.json",
+ "type": "object",
+ "allOf": [ {"$ref": "Category.json"} ]
+}
diff --git a/schema/Api/OfferBroker/parts/CategoryFromUpdateCategoryRequest.json b/schema/Api/OfferBroker/parts/CategoryFromUpdateCategoryRequest.json
new file mode 100644
index 0000000..fa615a4
--- /dev/null
+++ b/schema/Api/OfferBroker/parts/CategoryFromUpdateCategoryRequest.json
@@ -0,0 +1,9 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "$id": "CategoryFromUpdateCategoryRequest.json",
+ "type": "object",
+ "allOf": [
+ {"$ref": "Category.json"},
+ { "type": "object", "properties": { "id": { "type": ["string", "null"] } } }
+ ]
+}
diff --git a/schema/Api/OfferBroker/parts/Offer.json b/schema/Api/OfferBroker/parts/Offer.json
index 57f063c..d07333a 100644
--- a/schema/Api/OfferBroker/parts/Offer.json
+++ b/schema/Api/OfferBroker/parts/Offer.json
@@ -2,35 +2,83 @@
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "Offer.json",
"type": "object",
+ "allOf": [
+ {
+ "if": { "properties": { "offerType": {"const": "Product List"} } },
+ "then": {
+ "properties": { "productClusters": {"minItems": 1} },
+ "required": ["productClusters"]
+ }
+ }
+ ],
"properties": {
- "omsOfferId": { "type": ["string", "null"] },
+ "id": { "type": ["string", "null"] },
+ "omsOfferId": {
+ "description": "Required. Unique offer identifier. Must not be empty.",
+ "type": ["string", "null"],
+ "minLength": 1
+ },
"xmPieTemplateId": { "type": ["string", "null"] },
"xmPieUStoreId": { "type": ["string", "null"] },
+ "description": { "type": ["string", "null"] },
"accessGroups": { "type": ["array", "null"], "items": {"type": "string"} },
+ "additionalPropsRequiredOnOrder": {
+ "type": ["array", "null"],
+ "items": {"$ref": "AdditionalPropsRequiredOnOrderOutput.json"}
+ },
"availableEndDate": { "type": ["string", "null"] },
"availableStartDate": { "type": ["string", "null"] },
+ "categories": {
+ "type": ["array", "null"],
+ "items": {"$ref": "OfferCategoryFromGetOffersResponse.json"}
+ },
"categoryIds": { "type": ["array", "null"], "items": {"type": "string"} },
"comments": { "type": ["string", "null"] },
"defaultPrice": { "type": ["number", "null"], "format": "double" },
"doSuppressShippingAndHandling": {"type": "boolean"},
"fixedOrderQuantities": { "type": ["array", "null"], "items": {"type": "integer", "format": "int32"} },
"fullImageUrl": { "type": ["string", "null"] },
+ "integrationBrokerLastUpdatedDateTimeUtc": {"type": "string"},
"isActive": {"type": "boolean"},
"isAvailableViaCoopFunds": { "type": ["boolean", "null"] },
+ "isDeleted": {"type": "boolean"},
"isInventoried": { "type": ["boolean", "null"] },
"isTaxable": {"type": "boolean"},
- "number": { "type": ["string", "null"] },
- "offerType": { "type": ["string", "null"] },
+ "lastUpdatedDateTimeUTC": {
+ "description": "If provided, must not be in the future.",
+ "type": ["string", "null"]
+ },
+ "number": {
+ "description": "Required. Offer number. Must not be empty.",
+ "type": ["string", "null"],
+ "minLength": 1
+ },
+ "offerType": {
+ "description": "Required. Must be one of: Product List, Drop Ship, Download, VDM, Omnichannel.",
+ "type": ["string", "null"],
+ "enum": ["Product List", "Drop Ship", "Download", "VDM", "Omnichannel"],
+ "minLength": 1
+ },
+ "omsIdentifier": { "type": ["string", "null"] },
+ "omsRootSystemName": { "type": ["string", "null"] },
"onlyShipMethodsAvailable": { "type": ["array", "null"], "items": {"type": "string"} },
"orderMaximum": { "type": ["integer", "null"], "format": "int32" },
"orderMinimum": { "type": ["integer", "null"], "format": "int32" },
"pdfUrl": { "type": ["string", "null"] },
+ "priceClasses": { "type": ["array", "null"], "items": {"$ref": "PriceClass.json"} },
+ "productClusters": {
+ "description": "Required if offerType is 'Product List'. Must contain at least one ProductCluster with at least one Product, each with a non-empty productId and pageCount >= 1 if provided.",
+ "type": ["array", "null"],
+ "items": {"$ref": "ProductClusterOutput.json"}
+ },
"requiresApproval": { "type": ["boolean", "null"] },
+ "schemaVersion": { "type": ["string", "null"] },
"secureEmailBody": { "type": ["string", "null"] },
"secureEmailSubject": { "type": ["string", "null"] },
"surcharge": {"type": "number", "format": "double"},
"thumbnailUrl": { "type": ["string", "null"] },
"unitOfMeasure": { "type": ["string", "null"] },
"weightInPounds": {"type": "number", "format": "float"}
- }
+ },
+ "required": ["omsOfferId", "number", "offerType"]
}
diff --git a/schema/Api/OfferBroker/parts/OfferCategoryFromGetOffersResponse.json b/schema/Api/OfferBroker/parts/OfferCategoryFromGetOffersResponse.json
index 2c32309..ad3800c 100644
--- a/schema/Api/OfferBroker/parts/OfferCategoryFromGetOffersResponse.json
+++ b/schema/Api/OfferBroker/parts/OfferCategoryFromGetOffersResponse.json
@@ -6,5 +6,6 @@
"properties": {
"categoryKey": { "type": ["string", "null"] },
"name" : { "type": ["string", "null"] }
- }
+ },
+ "required": ["categoryKey", "name"]
}
diff --git a/schema/Api/OfferBroker/parts/OfferCategoryFromUpdateOfferCategoryRequest.json b/schema/Api/OfferBroker/parts/OfferCategoryFromUpdateOfferCategoryRequest.json
deleted file mode 100644
index bb7528d..0000000
--- a/schema/Api/OfferBroker/parts/OfferCategoryFromUpdateOfferCategoryRequest.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "$schema": "http://json-schema.org/draft-07/schema#",
- "$id": "OfferCategoryFromUpdateOfferCategoryRequest.json",
- "type": "object",
- "properties": {
- "id" : { "type": ["string", "null"] },
- "parentId" : { "type": ["string", "null"] },
- "lastUpdatedDateTimeUtc": { "type": ["string", "null"] },
- "name" : { "type": ["string", "null"] }
- },
- "required": ["id", "name"]
-}
diff --git a/schema/Api/OfferBroker/parts/OfferFromCreateOfferRequest.json b/schema/Api/OfferBroker/parts/OfferFromCreateOfferRequest.json
deleted file mode 100644
index 99200b0..0000000
--- a/schema/Api/OfferBroker/parts/OfferFromCreateOfferRequest.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
- "$schema": "http://json-schema.org/draft-07/schema#",
- "$id": "OfferFromCreateOfferRequest.json",
- "type": "object",
- "allOf": [
- {"$ref": "Offer.json"},
- {
- "type": "object",
- "properties": {
- "correlationId": { "type": ["string", "null"], "format": "uuid" },
- "customerId": { "type": ["string", "null"] },
- "description": { "type": ["string", "null"] },
- "additionalPropsRequiredOnOrder": {
- "type": ["array", "null"],
- "items": {"$ref": "AdditionalPropsRequiredOnOrderInput.json"}
- },
- "lastUpdatedDateTimeUtc": { "type": ["string", "null"] },
- "priceClasses": { "type": ["array", "null"], "items": {"$ref": "PriceClass.json"} },
- "productClusters": { "type": ["array", "null"], "items": {"$ref": "ProductClusterInput.json"} },
- "products": { "type": ["array", "null"], "items": {"$ref": "ProductInput.json"} }
- }
- }
- ]
-}
diff --git a/schema/Api/OfferBroker/parts/OfferFromGetOfferResponse.json b/schema/Api/OfferBroker/parts/OfferFromGetOfferResponse.json
deleted file mode 100644
index d27f644..0000000
--- a/schema/Api/OfferBroker/parts/OfferFromGetOfferResponse.json
+++ /dev/null
@@ -1,31 +0,0 @@
-{
- "$schema": "http://json-schema.org/draft-07/schema#",
- "$id": "OfferFromGetOfferResponse.json",
- "type": "object",
- "allOf": [
- {"$ref": "Offer.json"},
- {
- "type": "object",
- "properties": {
- "id": { "type": ["string", "null"] },
- "description": { "type": ["string", "null"] },
- "additionalPropsRequiredOnOrder": {
- "type": ["array", "null"],
- "items": {"$ref": "AdditionalPropsRequiredOnOrderOutput.json"}
- },
- "categories": {
- "type": ["array", "null"],
- "items": {"$ref": "OfferCategoryFromGetOfferResponse.json"}
- },
- "integrationBrokerLastUpdatedDateTimeUtc": {"type": "string"},
- "isDeleted": {"type": "boolean"},
- "lastUpdatedDateTimeUTC": {"type": "string"},
- "omsIdentifier": { "type": ["string", "null"] },
- "omsRootSystemName": { "type": ["string", "null"] },
- "priceClasses": { "type": ["array", "null"], "items": {"$ref": "PriceClass.json"} },
- "productClusters": { "type": ["array", "null"], "items": {"$ref": "ProductClusterOutput.json"} },
- "schemaVersion": { "type": ["string", "null"] }
- }
- }
- ]
-}
diff --git a/schema/Api/OfferBroker/parts/OfferFromGetOffersResponse.json b/schema/Api/OfferBroker/parts/OfferFromGetOffersResponse.json
deleted file mode 100644
index 596f411..0000000
--- a/schema/Api/OfferBroker/parts/OfferFromGetOffersResponse.json
+++ /dev/null
@@ -1,31 +0,0 @@
-{
- "$schema": "http://json-schema.org/draft-07/schema#",
- "$id": "OfferFromGetOffersResponse.json",
- "type": "object",
- "allOf": [
- {"$ref": "Offer.json"},
- {
- "type": "object",
- "properties": {
- "id": { "type": ["string", "null"] },
- "description": { "type": ["string", "null"] },
- "additionalPropsRequiredOnOrder": {
- "type": ["array", "null"],
- "items": {"$ref": "AdditionalPropsRequiredOnOrderOutput.json"}
- },
- "categories": {
- "type": ["array", "null"],
- "items": {"$ref": "OfferCategoryFromGetOffersResponse.json"}
- },
- "integrationBrokerLastUpdatedDateTimeUtc": {"type": "string"},
- "isDeleted": {"type": "boolean"},
- "lastUpdatedDateTimeUTC": {"type": "string"},
- "omsIdentifier": { "type": ["string", "null"] },
- "omsRootSystemName": { "type": ["string", "null"] },
- "priceClasses": { "type": ["array", "null"], "items": {"$ref": "PriceClass.json"} },
- "productClusters": { "type": ["array", "null"], "items": {"$ref": "ProductClusterOutput.json"} },
- "schemaVersion": { "type": ["string", "null"] }
- }
- }
- ]
-}
diff --git a/schema/Api/OfferBroker/parts/OfferFromUpdateOfferRequest.json b/schema/Api/OfferBroker/parts/OfferFromUpdateOfferRequest.json
deleted file mode 100644
index dccdd6f..0000000
--- a/schema/Api/OfferBroker/parts/OfferFromUpdateOfferRequest.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
- "$schema": "http://json-schema.org/draft-07/schema#",
- "$id": "OfferFromUpdateOfferRequest.json",
- "type": "object",
- "allOf": [
- {"$ref": "Offer.json"},
- {
- "type": "object",
- "properties": {
- "correlationId": { "type": ["string", "null"], "format": "uuid" },
- "customerId": { "type": ["string", "null"] },
- "description": { "type": ["string", "null"] },
- "additionalPropsRequiredOnOrder": {
- "type": ["array", "null"],
- "items": {"$ref": "AdditionalPropsRequiredOnOrderInput.json"}
- },
- "lastUpdatedDateTimeUtc": { "type": ["string", "null"] },
- "priceClasses": { "type": ["array", "null"], "items": {"$ref": "PriceClass.json"} },
- "productClusters": { "type": ["array", "null"], "items": {"$ref": "ProductClusterInput.json"} },
- "products": { "type": ["array", "null"], "items": {"$ref": "ProductInput.json"} }
- }
- }
- ]
-}
diff --git a/schema/Api/OfferBroker/parts/ProductClusterInput.json b/schema/Api/OfferBroker/parts/ProductClusterInput.json
index e5a9c2d..dc1410e 100644
--- a/schema/Api/OfferBroker/parts/ProductClusterInput.json
+++ b/schema/Api/OfferBroker/parts/ProductClusterInput.json
@@ -3,8 +3,8 @@
"$id": "ProductClusterInput.json",
"type": "object",
"properties": {
- "clusterId": { "type": ["string", "null"] },
- "products" : { "type": ["array", "null"] , "items": {"$ref": "ProductInput.json"} }
+ "id" : { "type": ["string", "null"] },
+ "products": { "type": ["array", "null"] , "items": {"$ref": "ProductInput.json"} }
},
- "required": ["clusterId"]
+ "required": ["id"]
}
diff --git a/schema/Api/OfferBroker/parts/ProductInput.json b/schema/Api/OfferBroker/parts/ProductInput.json
index dc8081c..7f48354 100644
--- a/schema/Api/OfferBroker/parts/ProductInput.json
+++ b/schema/Api/OfferBroker/parts/ProductInput.json
@@ -3,8 +3,9 @@
"$id": "ProductInput.json",
"type": "object",
"properties": {
- "productId" : { "type": ["string", "null"] },
- "productQuantityInOffer": { "type": "integer" , "format": "int32" }
+ "productId" : { "type": ["string", "null"] },
+ "pageCount" : { "type": ["integer", "null"], "format": "int32" },
+ "productQuantityInOffer": { "type": "integer" , "format": "int32" }
},
"required": ["productId", "productQuantityInOffer"]
}
diff --git a/schema/Api/OfferBroker/parts/ProductOutput.json b/schema/Api/OfferBroker/parts/ProductOutput.json
index 6a6fe43..0f34669 100644
--- a/schema/Api/OfferBroker/parts/ProductOutput.json
+++ b/schema/Api/OfferBroker/parts/ProductOutput.json
@@ -7,6 +7,7 @@
"productId": { "type": ["string", "null"] },
"associatedFileName": { "type": ["string", "null"] },
"buildType": { "type": "integer", "enum": [0, 1, 2, 3, 4, 5], "format": "int32" },
+ "pageCount": { "type": ["integer", "null"], "format": "int32" },
"productColor": { "type": ["string", "null"] },
"productDescription": { "type": ["string", "null"] },
"productNumber": { "type": ["string", "null"] },
diff --git a/schema/Api/OrderBroker/InternalNewOrderRequest.json b/schema/Api/OrderBroker/InternalNewOrderRequest.json
index 58937f0..35538ee 100644
--- a/schema/Api/OrderBroker/InternalNewOrderRequest.json
+++ b/schema/Api/OrderBroker/InternalNewOrderRequest.json
@@ -1,546 +1,329 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
- "$id": "InternalNewOrderRequest.json",
+ "$id": "NewOrderRequest.json",
"description": "Details for Order JSON schema",
"type": "object",
"additionalProperties": false,
"properties": {
- "OrderId": {
+ "orderId": {
"description": "Unique ID for order within order management system (system where order lifecycle will be managed)",
- "type": ["string", "null"]
+ "type": "string",
+ "maxLength": 100,
+ "examples": ["123456789"]
},
- "ReferenceId": { "type": ["string", "null"] },
- "SourceSystemCustomerId": { "type": ["string", "null"] },
- "SourceSystemId": {"type": "integer", "format": "int32"},
- "AccessGroups": { "type": ["array", "null"], "items": {"type": "string"} },
- "AffiliateIdentifier": {
+ "referenceId": { "type": ["string", "null"], "maxLength": 255, "examples": ["REF123456"] },
+ "sourceSystemCustomerId": { "type": ["string", "null"], "maxLength": 100, "examples": ["CUST123456"] },
+ "sourceSystemId": {"type": "integer", "format": "int32"},
+ "accessGroups": {
+ "type": ["array", "null"],
+ "items": {"type": "string", "maxLength": 255},
+ "examples": [ ["Group1", "Group2"] ]
+ },
+ "affiliateIdentifier": {
"description": "Unique ID for affiliate within source system (system where order was originally placed)",
- "type": ["string", "null"]
+ "type": ["string", "null"],
+ "maxLength": 100,
+ "examples": ["AFF123456"]
},
- "AffiliateName": {
+ "affiliateName": {
"description": "Name for affiliate within source system (system where order was originally placed)",
- "type": ["string", "null"]
+ "type": ["string", "null"],
+ "maxLength": 255,
+ "examples": ["Affiliate Name"]
},
- "BillTos": {
+ "billTos": {
"description": "Bill to addresses array for Order",
- "type": ["array", "null"],
"oneOf": [
{"type": "null"},
{
"type": "array",
"items": {"$ref": "parts/BillToFromNewOrderRequest.json"},
- "minItems": 1
- }
- ],
- "examples": [
- {
- "Address1": "106 Tyler Street Suite 175",
- "Address2": "3181 George Vista",
- "Address3": "",
- "City": "West Savannahside",
- "Company": "Matthews, Mclean and Huynh",
- "Country": "USA",
- "EmailAddress": "ghunt@example.com",
- "FaxNumber": "",
- "Key": 0,
- "Name": "Kristin Tyler",
- "PhoneNumber": "001-990-377-8647x21426",
- "PostalCode": "69532",
- "StateProvince": "Idaho"
+ "minItems": 1,
+ "examples": [
+ [
+ {
+ "address": {
+ "address1": "123 Main St",
+ "city": "Anytown",
+ "country": "US",
+ "postalCode": "12345",
+ "state": "CA"
+ },
+ "email": "john.doe@example.com",
+ "key": 1,
+ "name": "John Doe",
+ "phone": "123-456-7890"
+ }
+ ]
+ ]
}
]
},
- "CostCenter": { "type": ["string", "null"] },
- "CreateDateTime": {
+ "costCenter": { "type": ["string", "null"], "maxLength": 255, "examples": ["CC123456"] },
+ "createDateTime": {
"description": "Datetime of when order was created",
- "type": ["string", "null"]
+ "type": ["string", "null"],
+ "examples": ["2024-03-20T10:30:00"]
},
- "CreditCardFee": {
+ "creditCardFee": {
"description": "Credit card transaction fee applied to Order",
"type": ["number", "null"],
- "format": "double"
+ "format": "double",
+ "minimum": 0,
+ "examples": [2.5]
},
- "DefaultBillToKey": {
+ "defaultBillToKey": {
"description": "Unique ID for default billing contact details pulled from Order.BillTos.Key property (Only if applicable. Otherwise DefaultBillToKey will be null/empty value) (NOTE: If this value is not set, BillToKey must be set on all line items.)",
"type": ["integer", "null"],
- "format": "int32"
+ "format": "int32",
+ "minimum": 0,
+ "examples": [1]
},
- "DefaultOrderedByKey": {
+ "defaultOrderedByKey": {
"description": "Unique ID for default ordered by contact details pulled from Order.OrderedBy.Key property (Only if applicable. Otherwise DefaultOrderedByKey will be null/empty value)",
"type": ["integer", "null"],
- "format": "int32"
+ "format": "int32",
+ "minimum": 0,
+ "examples": [1]
},
- "DefaultShipToKey": {
+ "defaultShipToKey": {
"description": "Unique ID for default ship to contact pulled from Order.ShipTos.Key property (Only if applicable. Otherwise DefaultShipToKey will be null/empty value) (NOTE: If this value is not set, ShipToKey must be set on all line items.)",
"type": ["integer", "null"],
- "format": "int32"
+ "format": "int32",
+ "minimum": 0,
+ "examples": [1]
},
- "DueDate": {
+ "dueDate": {
"description": "Datetime of expected due date for Order",
- "type": ["string", "null"]
+ "type": ["string", "null"],
+ "pattern": "^(\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}|\\d{8}|\\d{2}[-/]\\d{2}[-/]\\d{4}(\\s\\d{2}:\\d{2}:\\d{2})?)$",
+ "examples": ["2024-04-20T10:30:00", "20240420", "04/20/2024 10:30:00"]
},
- "LineItems": {
+ "lineItems": {
"description": "Order level line item details",
- "type": ["array", "null"],
+ "type": "array",
"items": {"$ref": "parts/LineItem.json"},
+ "minItems": 1,
"examples": [
- {
- "OfferId": "8-998608-269",
- "ReferenceId": null,
- "VariableTemplatePrintId": null,
- "BillToKey": null,
- "Comment": "HPD-PNP-DRS-TEACONT-0322:",
- "CostCenter": null,
- "DueDate": null,
- "LineItemFee": 1,
- "OfferDescription": "Tea Container Sticker",
- "OfferLineNumber": "1",
- "OfferNumber": "HPD-PNP-DRS-TEACONT-0322",
- "OrderedByKey": null,
- "PONumber": null,
- "Price": 4.57,
- "Products": [ {"ProductId": "JGI-BTU-BFUI-5022-9773"} ],
- "QuantityOrdered": 1,
- "RushOrder": null,
- "ShipToKey": 0,
- "TaxAmount": 2.92
- }
+ [
+ {
+ "offerId": "OFFER123",
+ "billToKey": 1,
+ "offerLineNumber": "1",
+ "quantity": 1,
+ "shipToKey": 1,
+ "unitPrice": 99.99
+ }
+ ]
]
},
- "OrderFee": {
+ "orderFee": {
"description": "Fee applied to Order",
"type": ["number", "null"],
- "format": "double"
+ "format": "double",
+ "minimum": 0,
+ "examples": [5.0]
},
- "OrderVariables": {
+ "orderVariables": {
"$ref": "parts/OrderVariable.json",
- "description": "Manually entered variables for order within order management system (system where order lifecycle will be managed in)"
+ "description": "Manually entered variables for order within order management system (system where order lifecycle will be managed in)",
+ "examples": [ {"key": "CUSTOM_FIELD", "value": "Custom Value"} ]
},
- "OrderedBys": {
+ "orderedBys": {
"description": "Order level ordered by contact and address details",
"type": ["array", "null"],
- "oneOf": [
- {"type": "null"},
- { "type": "array", "items": {"$ref": "parts/OrderedBy.json"}, "minItems": 1 }
- ],
+ "items": {"$ref": "parts/OrderedBy.json"},
"examples": [
- {
- "Address1": "106 Tyler Street Suite 175",
- "Address2": "3181 George Vista",
- "Address3": "",
- "City": "West Savannahside",
- "Company": "Matthews, Mclean and Huynh",
- "Country": "USA",
- "EmailAddress": "ghunt@example.com",
- "FaxNumber": "",
- "Key": 0,
- "PhoneNumber": "001-990-377-8647x21426",
- "PostalCode": "02019",
- "StateProvince": "Idaho"
- }
+ [
+ {
+ "address": {
+ "address1": "123 Main St",
+ "city": "Anytown",
+ "country": "US",
+ "postalCode": "12345",
+ "state": "CA"
+ },
+ "email": "jane.doe@example.com",
+ "key": 1,
+ "name": "Jane Doe",
+ "phone": "123-456-7890"
+ }
+ ]
]
},
- "PONumber": { "description": "Purchase order number for Order", "type": ["string", "null"] },
- "PaymentMethods": {
+ "paymentMethods": {
"description": "Order.ShipTos level payment method details",
"type": ["array", "null"],
- "items": {"$ref": "parts/PaymentMethod.json"}
+ "items": {"$ref": "parts/PaymentMethod.json"},
+ "examples": [
+ [
+ {
+ "type": "CREDIT_CARD",
+ "amount": 99.99,
+ "cardNumber": "4111111111111111",
+ "cvv": "123",
+ "expirationDate": "12/25"
+ }
+ ]
+ ]
},
- "PickPackHandlingFee": {
+ "pickPackHandlingFee": {
"description": "Sum of pick & pack handling fees for all Order.ShipTos",
"type": ["number", "null"],
- "format": "double"
+ "format": "double",
+ "minimum": 0,
+ "examples": [3.5]
+ },
+ "poNumber": {
+ "description": "Purchase order number for Order",
+ "type": ["string", "null"],
+ "maxLength": 100,
+ "examples": ["PO123456"]
+ },
+ "rushOrder": {
+ "description": "True/false indicator if Order is expedited",
+ "type": "boolean",
+ "examples": [true]
},
- "RushOrder": {"description": "True/false indicator if Order is expedited", "type": "boolean"},
- "ShipTos": {
+ "shipTos": {
"description": "Order level ship to details",
- "type": ["array", "null"],
- "oneOf": [
- {"type": "null"},
- {
- "type": "array",
- "items": {"$ref": "parts/ShipToFromNewOrderRequest.json"},
- "minItems": 1
- }
- ],
+ "type": "array",
+ "items": {"$ref": "parts/ShipToFromNewOrderRequest.json"},
+ "minItems": 1,
"examples": [
- {
- "AffiliateId": null,
- "ReferenceId": "BQJ efg Deebjplybqjtgr ",
- "SourceSystemShippingMethodId": "vos_vrzuqz",
- "AffiliateName": null,
- "Comment": "",
- "CostCenter": "6342091000- IN Medicaid Case Mgmt",
- "CreditCardFee": null,
- "DueDate": null,
- "Key": 0,
- "OrderFee": 5,
- "PONumber": null,
- "PaymentMethods": null,
- "PickPackHandlingFee": 21,
- "RushOrder": false,
- "ShipToAddress": {
- "Address1": "65677 Laura Village Suite 322",
- "City": "Catherineshire",
- "Company": "Nunez-Cardenas",
- "Country": "USA",
- "Name": "Julie Lester",
- "PostalCode": "11460",
- "StateProvince": "Arizona"
- },
- "ShippingCost": 20.22,
- "ShippingHandlingTax": 2.15,
- "TotalOrderFee": 5
- }
+ [
+ {
+ "address": {
+ "address1": "123 Main St",
+ "city": "Anytown",
+ "country": "US",
+ "postalCode": "12345",
+ "state": "CA"
+ },
+ "email": "john.doe@example.com",
+ "key": 1,
+ "name": "John Doe",
+ "phone": "123-456-7890"
+ }
+ ]
]
},
- "ShippingHandlingTax": {
+ "shippingHandlingTax": {
"description": "Sum of shipping & handling taxes for all Order.ShipTos",
"type": ["number", "null"],
- "format": "double"
+ "format": "double",
+ "minimum": 0,
+ "examples": [8.5]
},
- "TotalOrderFee": {
+ "totalOrderFee": {
"description": "Sum of OrderFee",
"type": ["number", "null"],
- "format": "double"
+ "format": "double",
+ "minimum": 0,
+ "examples": [5.0]
},
- "TotalShippingCost": {
+ "totalShippingCost": {
"description": "Sum of shipping cost for all Order.ShipTos.Shipments",
"type": ["number", "null"],
- "format": "double"
+ "format": "double",
+ "minimum": 0,
+ "examples": [10.0]
}
},
- "required": ["SourceSystemId", "OrderId", "LineItems", "ShippingHandlingTax", "BillTos"],
+ "required": ["orderId", "lineItems", "shippingHandlingTax", "billTos"],
"allOf": [
{
"oneOf": [
{
- "properties": { "DefaultBillToKey": {"type": "integer"} },
- "required": ["DefaultBillToKey"]
+ "properties": { "defaultBillToKey": {"type": "integer"} },
+ "required": ["defaultBillToKey"]
},
{
"not": {
- "properties": { "DefaultBillToKey": {"type": "integer"} },
- "required": ["DefaultBillToKey"]
+ "properties": { "defaultBillToKey": {"type": "integer"} },
+ "required": ["defaultBillToKey"]
},
"properties": {
- "BillTos" : { "type": "array" , "minItems": 1 },
- "DefaultBillToKey": { "type": ["null", "integer"] }
+ "billTos" : { "type": "array" , "minItems": 1 },
+ "defaultBillToKey": { "type": ["null", "integer"] }
},
- "required": ["BillTos"]
+ "required": ["billTos"]
}
]
},
{
"oneOf": [
{
- "properties": { "DefaultShipToKey": {"type": "integer"} },
- "required": ["DefaultShipToKey"]
+ "properties": { "defaultShipToKey": {"type": "integer"} },
+ "required": ["defaultShipToKey"]
},
{
"not": {
- "properties": { "DefaultShipToKey": {"type": "integer"} },
- "required": ["DefaultShipToKey"]
+ "properties": { "defaultShipToKey": {"type": "integer"} },
+ "required": ["defaultShipToKey"]
},
"properties": {
- "DefaultShipToKey": { "type": ["null", "integer"] },
- "ShipTos" : { "type": "array" , "minItems": 1 }
+ "defaultShipToKey": { "type": ["null", "integer"] },
+ "shipTos" : { "type": "array" , "minItems": 1 }
},
- "required": ["ShipTos"]
+ "required": ["shipTos"]
}
]
- }
- ],
- "examples": [
+ },
{
- "OrderId": "7-mkkutsde-3-K-5649-4005-64",
- "ReferenceId": "OWMR WSKFA - LNSSZT XBUUJ & MS XXQ QCHX",
- "SourceSystemCustomerId": "1234567890",
- "SourceSystemId": 3,
- "AccessGroups": ["TS-Retail", "CDM Tuff Shed", "Tuff shed Act on behalf and see all orders"],
- "AffiliateIdentifier": "QJ-987",
- "AffiliateName": "UJ-143-ABWJINHFVL, QD",
- "BillTos": [
+ "description": "LineItem BillToKey validation - If defaultBillToKey is not provided, all lineItems must specify a billToKey",
+ "oneOf": [
{
- "Address1": "16013 Valenzuela Turnpike",
- "Address2": null,
- "Address3": null,
- "City": "Rosaleshaven",
- "Company": "Rosales-Shea",
- "Country": "USA",
- "EmailAddress": "chelseamiller@example.org",
- "FaxNumber": "",
- "Key": 0,
- "Name": "Gail Stewart",
- "PhoneNumber": "411-770-8380",
- "PostalCode": "12507",
- "StateProvince": "Washington"
- }
- ],
- "CostCenter": "020 - Denver",
- "CreateDateTime": "2025-02-28T20:37:42.018+00:00",
- "CreditCardFee": 0.0,
- "DefaultBillToKey": null,
- "DefaultOrderedByKey": null,
- "DefaultShipToKey": null,
- "DueDate": null,
- "LineItems": [
+ "properties": { "defaultBillToKey": {"type": "integer"} },
+ "required": ["defaultBillToKey"]
+ },
{
- "OfferId": "t87grb75-e9pe-5405-y8yv-25n5q70bu93i",
- "ReferenceId": "BEHZ QUJNS - TPGJXT MMGVN & UX ZDN HHQS",
- "VariableTemplatePrintId": null,
- "AdditionalProperties": [],
- "BillToKey": 0,
- "Comment": null,
- "CostCenter": "020 - Denver",
- "DueDate": null,
- "LineItemFee": 0.75,
- "OfferDescription": "<p>$17.00 Each \u2013 S - XL<br>\n$20.00 Each \u2013 2XL - XLarge/Tall Sizes<br>\n$21.50 Each \u2013 3XL - 2XLarge/Tall sizes<br>$25.00 Each - 4XL Sizes - 3XL tall <br>$35.00 Each - 5XL Sizes<br><br></p>",
- "OfferLineNumber": "0",
- "OfferNumber": "TS_A-A0050",
- "OrderedByKey": 0,
- "PONumber": null,
- "Price": 17.0,
- "Products": [
- {
- "ProductId": "3j8hu98q-s0t6-409v-029r-321r0uo02k30",
- "AssociatedFileName": "",
- "Color": null,
- "Comment": null,
- "Components": [],
- "ProductDescription": "8\"x8\" square paint swatch.",
- "ProductLineNumber": "1",
- "ProductNumber": "R_962_24008_TSO",
- "ProductOwner": null,
- "QuantityOrdered": null,
- "Size": null
- },
- {
- "ProductId": "7jv34sz5-m4q8-8q8f-187d-jt7791j02958",
- "AssociatedFileName": "",
- "Color": null,
- "Comment": null,
- "Components": [],
- "ProductDescription": "Tuff Shed Men's Polo",
- "ProductLineNumber": "2",
- "ProductNumber": "TS_A-A0050",
- "ProductOwner": null,
- "QuantityOrdered": null,
- "Size": null
+ "properties": {
+ "lineItems": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": { "billToKey": {"type": "integer", "minimum": 0} },
+ "required": ["billToKey"]
+ }
}
- ],
- "QuantityOrdered": 1,
- "RushOrder": false,
- "ShipToKey": 0,
- "TaxAmount": 0.0
- }
- ],
- "OrderFee": 4.0,
- "OrderVariables": {},
- "OrderedBys": [
- {
- "Address1": "42801 Pamela Run",
- "Address2": null,
- "Address3": null,
- "City": "Port Rickside",
- "Company": "Trujillo-Sims",
- "Country": "USA",
- "EmailAddress": "jonesjeff@example.net",
- "FaxNumber": "",
- "Key": 0,
- "Name": "Benjamin Smith",
- "PhoneNumber": "+1-310-761-3615x7115",
- "PostalCode": "10330",
- "StateProvince": "California"
+ }
}
- ],
- "PONumber": null,
- "PaymentMethods": [ {"Amount": 35.8, "MethodName": "invoice"} ],
- "PickPackHandlingFee": 0.75,
- "RushOrder": false,
- "ShipTos": [
- {
- "AffiliateId": "EK-023",
- "ReferenceId": "QGSN VNSAH - PWJRVG OCYIA & PG GAE RZTN",
- "SourceSystemShippingMethodId": "qnigy_cxdcmo",
- "AffiliateName": "JK-467-WLTQIEOCCZ, PA",
- "Comment": null,
- "CostCenter": "020 - Denver",
- "CreditCardFee": 0.0,
- "DueDate": null,
- "Key": 0,
- "OrderFee": 4.0,
- "PONumber": null,
- "PaymentMethods": [],
- "PickPackHandlingFee": 0.75,
- "RushOrder": false,
- "ShipToAddress": {
- "Address1": "130 Owen Gateway",
- "Address2": null,
- "Address3": null,
- "City": "Arthurborough",
- "Company": "Bryant-Compton",
- "Country": "USA",
- "EmailAddress": "yduran@example.com",
- "FaxNumber": "",
- "Name": "Patricia Parker",
- "PhoneNumber": "317.410.1217",
- "PostalCode": "96718",
- "StateProvince": "Georgia"
- },
- "ShippingCost": 13.66,
- "ShippingHandlingTax": 0.39,
- "TotalOrderFee": 4.0
- }
- ],
- "ShippingHandlingTax": 0.39,
- "TotalOrderFee": 4.0,
- "TotalShippingCost": 13.66
+ ]
},
{
- "OrderId": "1-qrhjtpek-8-Q-0286-8859-25",
- "ReferenceId": "WUQD HWKPE - XIWHAC BTVOM & BH WAK DXRI",
- "SourceSystemCustomerId": "1234567890",
- "SourceSystemId": 3,
- "AccessGroups": ["TS-Retail", "CDM Tuff Shed", "Tuff shed Act on behalf and see all orders"],
- "AffiliateIdentifier": "VJ-268",
- "AffiliateName": "GZ-589-WUOFETGVLG, RM",
- "BillTos": [
+ "description": "LineItem ShipToKey validation - If defaultShipToKey is not provided, all lineItems must specify a shipToKey",
+ "oneOf": [
{
- "Address1": "547 James Ports",
- "Address2": null,
- "Address3": null,
- "City": "Angelastad",
- "Company": "Jones-Hurst",
- "Country": "USA",
- "EmailAddress": "rjohnson@example.net",
- "FaxNumber": "",
- "Key": 0,
- "Name": "Joseph Hayes",
- "PhoneNumber": "001-226-553-1291x1555",
- "PostalCode": "68236",
- "StateProvince": "Missouri"
- }
- ],
- "CostCenter": "020 - Denver",
- "CreateDateTime": "2025-02-28T20:37:42.018+00:00",
- "CreditCardFee": 0.0,
- "DefaultBillToKey": null,
- "DefaultOrderedByKey": null,
- "DefaultShipToKey": null,
- "DueDate": null,
- "LineItems": [
+ "properties": { "defaultShipToKey": {"type": "integer"} },
+ "required": ["defaultShipToKey"]
+ },
{
- "OfferId": "s59otw94-k6go-1114-c6ja-17q7i68pu06t",
- "ReferenceId": "VNMV APSLE - GMGDGG ELXCC & VS FUP NCHR",
- "VariableTemplatePrintId": null,
- "AdditionalProperties": [],
- "BillToKey": 0,
- "Comment": null,
- "CostCenter": "020 - Denver",
- "DueDate": null,
- "LineItemFee": 0.75,
- "OfferDescription": "<p>$17.00 Each \u2013 S - XL<br>\n$20.00 Each \u2013 2XL - XLarge/Tall Sizes<br>\n$21.50 Each \u2013 3XL - 2XLarge/Tall sizes<br>$25.00 Each - 4XL Sizes - 3XL tall <br>$35.00 Each - 5XL Sizes<br><br></p>",
- "OfferLineNumber": "0",
- "OfferNumber": "TS_A-A0050",
- "OrderedByKey": 0,
- "PONumber": null,
- "Price": 17.0,
- "Products": [
- {
- "ProductId": "1t6xb26e-g4n3-882j-217s-200f1fp92e83",
- "AssociatedFileName": "",
- "Color": null,
- "Comment": null,
- "Components": [],
- "ProductDescription": "8\"x8\" square paint swatch.",
- "ProductLineNumber": "1",
- "ProductNumber": "R_962_24008_TSO",
- "ProductOwner": null,
- "QuantityOrdered": null,
- "Size": null
- },
- {
- "ProductId": "3sn29wd7-z0g3-5z6f-133y-yt7327a65247",
- "AssociatedFileName": "",
- "Color": null,
- "Comment": null,
- "Components": [],
- "ProductDescription": "Tuff Shed Men's Polo",
- "ProductLineNumber": "2",
- "ProductNumber": "TS_A-A0050",
- "ProductOwner": null,
- "QuantityOrdered": null,
- "Size": null
+ "properties": {
+ "lineItems": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": { "shipToKey": {"type": "integer", "minimum": 0} },
+ "required": ["shipToKey"]
+ }
}
- ],
- "QuantityOrdered": 1,
- "RushOrder": false,
- "ShipToKey": 0,
- "TaxAmount": 0.0
- }
- ],
- "OrderFee": 4.0,
- "OrderVariables": {},
- "OrderedBys": [
- {
- "Address1": "6084 Stephanie Lodge",
- "Address2": null,
- "Address3": null,
- "City": "South Donald",
- "Company": "Mccullough Group",
- "Country": "USA",
- "EmailAddress": "murphytracy@example.net",
- "FaxNumber": "",
- "Key": 0,
- "Name": "Joshua Pena",
- "PhoneNumber": "898-997-8385x11658",
- "PostalCode": "44793",
- "StateProvince": "Alaska"
+ }
}
- ],
- "PONumber": null,
- "PaymentMethods": [ {"Amount": 35.8, "MethodName": "invoice"} ],
- "PickPackHandlingFee": 0.75,
- "RushOrder": false,
- "ShipTos": [
- {
- "AffiliateId": "XU-170",
- "ReferenceId": "ZVZT XMPKV - IZQTEP WTIUT & UL QCX WPSI",
- "SourceSystemShippingMethodId": "bzman_ehfsxc",
- "AffiliateName": "EH-565-JEYFOGBQJW, UU",
- "Comment": null,
- "CostCenter": "020 - Denver",
- "CreditCardFee": 0.0,
- "DueDate": null,
- "Key": 0,
- "OrderFee": 4.0,
- "PONumber": null,
- "PaymentMethods": [],
- "PickPackHandlingFee": 0.75,
- "RushOrder": false,
- "ShipToAddress": {
- "Address1": "9947 Rich Estate",
- "Address2": null,
- "Address3": null,
- "City": "North Megan",
- "Company": "Lewis, Pierce and Alvarez",
- "Country": "USA",
- "EmailAddress": "freemanrobert@example.com",
- "FaxNumber": "",
- "Name": "Zachary Gilbert",
- "PhoneNumber": "001-937-677-3517x2443",
- "PostalCode": "49875",
- "StateProvince": "Ohio"
- },
- "ShippingCost": 13.66,
- "ShippingHandlingTax": 0.39,
- "TotalOrderFee": 4.0
+ ]
+ },
+ {
+ "description": "LineItem OfferLineNumber validation - All lineItems must have unique, non-empty offerLineNumbers",
+ "properties": {
+ "lineItems": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": { "offerLineNumber": {"type": "string", "minLength": 1} },
+ "required": ["offerLineNumber"]
+ }
}
- ],
- "ShippingHandlingTax": 0.39,
- "TotalOrderFee": 4.0,
- "TotalShippingCost": 13.66
+ }
}
]
}
diff --git a/schema/Api/OrderBroker/NewOrderRequest.json b/schema/Api/OrderBroker/NewOrderRequest.json
index 60cf541..ff83308 100644
--- a/schema/Api/OrderBroker/NewOrderRequest.json
+++ b/schema/Api/OrderBroker/NewOrderRequest.json
@@ -1,539 +1,495 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
- "$id": "NewOrderRequest.json",
- "description": "Details for Order JSON schema",
+ "$id": "InternalNewOrderRequest.json",
+ "description": "Details for Order JSON schema. Conditional constraints (enforced in backend): If defaultBillToKey, defaultOrderedByKey, or defaultShipToKey are null, corresponding keys must be set on each line item. If defaultBillToKey, defaultOrderedByKey, or defaultShipToKey are not null, they must match a key in billTos, orderedBys, or shipTos respectively. OfferLineNumber, productLineNumber, and componentLineNumber values must be unique within their collections if provided.",
"type": "object",
"additionalProperties": false,
"properties": {
- "OrderId": {
- "description": "Unique ID for order within order management system (system where order lifecycle will be managed)",
- "type": ["string", "null"]
+ "orderId": {
+ "description": "Unique ID for order within order management system (system where order lifecycle will be managed). Required, must not be null or empty.",
+ "type": ["string"],
+ "minLength": 1
+ },
+ "referenceId": { "type": ["string", "null"] },
+ "sourceSystemCustomerId": {
+ "description": "Unique customer ID in the source system. Required, must not be null or empty.",
+ "type": ["string"],
+ "minLength": 1
+ },
+ "sourceSystemId": {
+ "description": "Source system ID. Required, must not be null.",
+ "type": "integer",
+ "format": "int32"
},
- "ReferenceId": { "type": ["string", "null"] },
- "AccessGroups": { "type": ["array", "null"], "items": {"type": "string"} },
- "AffiliateIdentifier": {
+ "accessGroups": { "type": ["array", "null"], "items": { "type": "string" } },
+ "affiliateIdentifier": {
"description": "Unique ID for affiliate within source system (system where order was originally placed)",
"type": ["string", "null"]
},
- "AffiliateName": {
+ "affiliateName": {
"description": "Name for affiliate within source system (system where order was originally placed)",
"type": ["string", "null"]
},
- "BillTos": {
- "description": "Bill to addresses array for Order",
+ "billTos": {
+ "description": "Bill to addresses array for Order. Required, must not be empty. Each item must have required address fields and a non-null key.",
"oneOf": [
- {"type": "null"},
+ { "type": "null" },
{
"type": "array",
- "items": {"$ref": "parts/BillToFromNewOrderRequest.json"},
+ "items": { "$ref": "parts/BillToFromNewOrderRequest.json" },
"minItems": 1
}
],
"examples": [
{
- "Address1": "106 Tyler Street Suite 175",
- "Address2": "3181 George Vista",
- "Address3": "",
- "City": "West Savannahside",
- "Company": "Matthews, Mclean and Huynh",
- "Country": "USA",
- "EmailAddress": "ghunt@example.com",
- "FaxNumber": "",
- "Key": 0,
- "Name": "Kristin Tyler",
- "PhoneNumber": "001-990-377-8647x21426",
- "PostalCode": "69532",
- "StateProvince": "Idaho"
+ "address1": "106 Tyler Street Suite 175",
+ "address2": "3181 George Vista",
+ "address3": "",
+ "city": "West Savannahside",
+ "company": "Matthews, Mclean and Huynh",
+ "country": "USA",
+ "emailAddress": "ghunt@example.com",
+ "faxNumber": "",
+ "key": 0,
+ "name": "Kristin Tyler",
+ "phoneNumber": "001-990-377-8647x21426",
+ "postalCode": "69532",
+ "stateProvince": "Idaho"
}
]
},
- "CostCenter": { "type": ["string", "null"] },
- "CreateDateTime": {
+ "costCenter": { "type": ["string", "null"] },
+ "createDateTime": {
"description": "Datetime of when order was created",
"type": ["string", "null"]
},
- "CreditCardFee": {
+ "creditCardFee": {
"description": "Credit card transaction fee applied to Order",
"type": ["number", "null"],
"format": "double"
},
- "DefaultBillToKey": {
+ "defaultBillToKey": {
"description": "Unique ID for default billing contact details pulled from Order.BillTos.Key property (Only if applicable. Otherwise DefaultBillToKey will be null/empty value) (NOTE: If this value is not set, BillToKey must be set on all line items.)",
"type": ["integer", "null"],
"format": "int32"
},
- "DefaultOrderedByKey": {
+ "defaultOrderedByKey": {
"description": "Unique ID for default ordered by contact details pulled from Order.OrderedBy.Key property (Only if applicable. Otherwise DefaultOrderedByKey will be null/empty value)",
"type": ["integer", "null"],
"format": "int32"
},
- "DefaultShipToKey": {
+ "defaultShipToKey": {
"description": "Unique ID for default ship to contact pulled from Order.ShipTos.Key property (Only if applicable. Otherwise DefaultShipToKey will be null/empty value) (NOTE: If this value is not set, ShipToKey must be set on all line items.)",
"type": ["integer", "null"],
"format": "int32"
},
- "DueDate": {
- "description": "Datetime of expected due date for Order",
+ "dueDate": {
+ "description": "Datetime of expected due date for Order. If present, must be a valid date and not in the past (enforced in backend).",
"type": ["string", "null"]
},
- "LineItems": {
- "description": "Order level line item details",
- "type": ["array", "null"],
- "items": {"$ref": "parts/LineItem.json"},
- "examples": [
- {
- "OfferId": "8-998608-269",
- "ReferenceId": null,
- "VariableTemplatePrintId": null,
- "BillToKey": null,
- "Comment": "HPD-PNP-DRS-TEACONT-0322:",
- "CostCenter": null,
- "DueDate": null,
- "LineItemFee": 1,
- "OfferDescription": "Tea Container Sticker",
- "OfferLineNumber": "1",
- "OfferNumber": "HPD-PNP-DRS-TEACONT-0322",
- "OrderedByKey": null,
- "PONumber": null,
- "Price": 4.57,
- "Products": [ {"ProductId": "JGI-BTU-BFUI-5022-9773"} ],
- "QuantityOrdered": 1,
- "RushOrder": null,
- "ShipToKey": 0,
- "TaxAmount": 2.92
- }
- ]
+ "lineItems": {
+ "description": "Order level line item details. Required, must not be empty. Each item must have offerId, quantityOrdered > 0, price >= 0, taxAmount >= 0, lineItemFee >= 0. If defaultBillToKey, defaultOrderedByKey, or defaultShipToKey are null, corresponding keys must be set on each line item.",
+ "type": ["array"],
+ "items": { "$ref": "parts/LineItem.json" },
+ "minItems": 1,
+ "uniqueItems": false
},
- "OrderFee": {
+ "orderFee": {
"description": "Fee applied to Order",
"type": ["number", "null"],
"format": "double"
},
- "OrderVariables": {
+ "orderVariables": {
"$ref": "parts/OrderVariable.json",
"description": "Manually entered variables for order within order management system (system where order lifecycle will be managed in)"
},
- "OrderedBys": {
- "description": "Order level ordered by contact and address details",
+ "orderedBys": {
+ "description": "Order level ordered by contact and address details. Not required, but if present, each item must have required address fields and a non-null key.",
"type": ["array", "null"],
- "oneOf": [
- {"type": "null"},
- { "type": "array", "items": {"$ref": "parts/OrderedBy.json"}, "minItems": 1 }
- ],
+ "oneOf": [{ "type": "null" }, { "type": "array", "items": { "$ref": "parts/OrderedBy.json" }, "minItems": 1 }],
"examples": [
{
- "Address1": "106 Tyler Street Suite 175",
- "Address2": "3181 George Vista",
- "Address3": "",
- "City": "West Savannahside",
- "Company": "Matthews, Mclean and Huynh",
- "Country": "USA",
- "EmailAddress": "ghunt@example.com",
- "FaxNumber": "",
- "Key": 0,
- "PhoneNumber": "001-990-377-8647x21426",
- "PostalCode": "02019",
- "StateProvince": "Idaho"
+ "address1": "106 Tyler Street Suite 175",
+ "address2": "3181 George Vista",
+ "address3": "",
+ "city": "West Savannahside",
+ "company": "Matthews, Mclean and Huynh",
+ "country": "USA",
+ "emailAddress": "ghunt@example.com",
+ "faxNumber": "",
+ "key": 0,
+ "phoneNumber": "001-990-377-8647x21426",
+ "postalCode": "02019",
+ "stateProvince": "Idaho"
}
]
},
- "PONumber": { "description": "Purchase order number for Order", "type": ["string", "null"] },
- "PaymentMethods": {
+ "paymentMethods": {
"description": "Order.ShipTos level payment method details",
"type": ["array", "null"],
- "items": {"$ref": "parts/PaymentMethod.json"}
+ "items": { "$ref": "parts/PaymentMethod.json" }
},
- "PickPackHandlingFee": {
+ "pickPackHandlingFee": {
"description": "Sum of pick & pack handling fees for all Order.ShipTos",
"type": ["number", "null"],
"format": "double"
},
- "RushOrder": {"description": "True/false indicator if Order is expedited", "type": "boolean"},
- "ShipTos": {
- "description": "Order level ship to details",
- "type": ["array", "null"],
- "oneOf": [
- {"type": "null"},
- {
- "type": "array",
- "items": {"$ref": "parts/ShipToFromNewOrderRequest.json"},
- "minItems": 1
- }
- ],
- "examples": [
- {
- "AffiliateId": null,
- "ReferenceId": "BQJ efg Deebjplybqjtgr ",
- "SourceSystemShippingMethodId": "vos_vrzuqz",
- "AffiliateName": null,
- "Comment": "",
- "CostCenter": "6342091000- IN Medicaid Case Mgmt",
- "CreditCardFee": null,
- "DueDate": null,
- "Key": 0,
- "OrderFee": 5,
- "PONumber": null,
- "PaymentMethods": null,
- "PickPackHandlingFee": 21,
- "RushOrder": false,
- "ShipToAddress": {
- "Address1": "65677 Laura Village Suite 322",
- "City": "Catherineshire",
- "Company": "Nunez-Cardenas",
- "Country": "USA",
- "Name": "Julie Lester",
- "PostalCode": "11460",
- "StateProvince": "Arizona"
- },
- "ShippingCost": 20.22,
- "ShippingHandlingTax": 2.15,
- "TotalOrderFee": 5
- }
- ]
+ "poNumber": {
+ "description": "Purchase order number for Order. Maximum length 20 characters.",
+ "type": ["string", "null"],
+ "maxLength": 20
},
- "ShippingHandlingTax": {
- "description": "Sum of shipping & handling taxes for all Order.ShipTos",
- "type": ["number", "null"],
+ "rushOrder": { "description": "True/false indicator if Order is expedited", "type": "boolean" },
+ "shipTos": {
+ "description": "Order level ship to details. Required, must not be empty. Each item must have required address fields and a non-null key.",
+ "type": ["array"],
+ "items": { "$ref": "parts/ShipToFromNewOrderRequest.json" },
+ "minItems": 1,
+ "uniqueItems": false
+ },
+ "shippingHandlingTax": {
+ "description": "Sum of shipping & handling taxes for all Order.ShipTos. Required, must not be null.",
+ "type": ["number"],
"format": "double"
},
- "TotalOrderFee": {
+ "totalOrderFee": {
"description": "Sum of OrderFee",
"type": ["number", "null"],
"format": "double"
},
- "TotalShippingCost": {
+ "totalShippingCost": {
"description": "Sum of shipping cost for all Order.ShipTos.Shipments",
"type": ["number", "null"],
"format": "double"
}
},
- "required": ["OrderId", "LineItems", "ShippingHandlingTax", "BillTos"],
+ "required": ["orderId", "lineItems", "shippingHandlingTax", "billTos"],
"allOf": [
{
"oneOf": [
{
- "properties": { "DefaultBillToKey": {"type": "integer"} },
- "required": ["DefaultBillToKey"]
+ "properties": { "defaultBillToKey": { "type": "integer" } },
+ "required": ["defaultBillToKey"]
},
{
"not": {
- "properties": { "DefaultBillToKey": {"type": "integer"} },
- "required": ["DefaultBillToKey"]
+ "properties": { "defaultBillToKey": { "type": "integer" } },
+ "required": ["defaultBillToKey"]
},
"properties": {
- "BillTos" : { "type": "array" , "minItems": 1 },
- "DefaultBillToKey": { "type": ["null", "integer"] }
+ "billTos": { "type": "array", "minItems": 1 },
+ "defaultBillToKey": { "type": ["null", "integer"] }
},
- "required": ["BillTos"]
+ "required": ["billTos"]
}
]
},
{
"oneOf": [
{
- "properties": { "DefaultShipToKey": {"type": "integer"} },
- "required": ["DefaultShipToKey"]
+ "properties": { "defaultShipToKey": { "type": "integer" } },
+ "required": ["defaultShipToKey"]
},
{
"not": {
- "properties": { "DefaultShipToKey": {"type": "integer"} },
- "required": ["DefaultShipToKey"]
+ "properties": { "defaultShipToKey": { "type": "integer" } },
+ "required": ["defaultShipToKey"]
},
"properties": {
- "DefaultShipToKey": { "type": ["null", "integer"] },
- "ShipTos" : { "type": "array" , "minItems": 1 }
+ "DefaultShipToKey": { "type": ["null", "integer"] },
+ "ShipTos": { "type": "array", "minItems": 1 }
},
- "required": ["ShipTos"]
+ "required": ["shipTos"]
}
]
}
],
"examples": [
{
- "OrderId": "7-mkkutsde-3-K-5649-4005-64",
- "ReferenceId": "OWMR WSKFA - LNSSZT XBUUJ & MS XXQ QCHX",
- "AccessGroups": ["TS-Retail", "CDM Tuff Shed", "Tuff shed Act on behalf and see all orders"],
- "AffiliateIdentifier": "QJ-987",
- "AffiliateName": "UJ-143-ABWJINHFVL, QD",
- "BillTos": [
+ "orderId": "7-mkkutsde-3-K-5649-4005-64",
+ "referenceId": "OWMR WSKFA - LNSSZT XBUUJ & MS XXQ QCHX",
+ "accessGroups": ["TS-Retail", "CDM Tuff Shed", "Tuff shed Act on behalf and see all orders"],
+ "affiliateIdentifier": "QJ-987",
+ "affiliateName": "UJ-143-ABWJINHFVL, QD",
+ "billTos": [
{
- "Address1": "16013 Valenzuela Turnpike",
- "Address2": null,
- "Address3": null,
- "City": "Rosaleshaven",
- "Company": "Rosales-Shea",
- "Country": "USA",
- "EmailAddress": "chelseamiller@example.org",
- "FaxNumber": "",
- "Key": 0,
- "Name": "Gail Stewart",
- "PhoneNumber": "411-770-8380",
- "PostalCode": "12507",
- "StateProvince": "Washington"
+ "address1": "16013 Valenzuela Turnpike",
+ "address2": null,
+ "address3": null,
+ "city": "Rosaleshaven",
+ "company": "Rosales-Shea",
+ "country": "USA",
+ "emailAddress": "chelseamiller@example.org",
+ "faxNumber": "",
+ "key": 0,
+ "name": "Gail Stewart",
+ "phoneNumber": "411-770-8380",
+ "postalCode": "12507",
+ "stateProvince": "Washington"
}
],
- "CostCenter": "020 - Denver",
- "CreateDateTime": "2025-02-28T20:37:42.018+00:00",
- "CreditCardFee": 0.0,
- "DefaultBillToKey": null,
- "DefaultOrderedByKey": null,
- "DefaultShipToKey": null,
- "DueDate": null,
- "LineItems": [
+ "costCenter": "020 - Denver",
+ "createDateTime": "2025-02-28T20:37:42.018+00:00",
+ "creditCardFee": 0.0,
+ "defaultBillToKey": null,
+ "defaultOrderedByKey": null,
+ "defaultShipToKey": null,
+ "dueDate": null,
+ "lineItems": [
{
- "OfferId": "t87grb75-e9pe-5405-y8yv-25n5q70bu93i",
- "ReferenceId": "BEHZ QUJNS - TPGJXT MMGVN & UX ZDN HHQS",
- "VariableTemplatePrintId": null,
- "AdditionalProperties": [],
- "BillToKey": 0,
- "Comment": null,
- "CostCenter": "020 - Denver",
- "DueDate": null,
- "LineItemFee": 0.75,
- "OfferDescription": "<p>$17.00 Each \u2013 S - XL<br>\n$20.00 Each \u2013 2XL - XLarge/Tall Sizes<br>\n$21.50 Each \u2013 3XL - 2XLarge/Tall sizes<br>$25.00 Each - 4XL Sizes - 3XL tall <br>$35.00 Each - 5XL Sizes<br><br></p>",
- "OfferLineNumber": "0",
- "OfferNumber": "TS_A-A0050",
- "OrderedByKey": 0,
- "PONumber": null,
- "Price": 17.0,
- "Products": [
+ "offerId": "t87grb75-e9pe-5405-y8yv-25n5q70bu93i",
+ "referenceId": "BEHZ QUJNS - TPGJXT MMGVN & UX ZDN HHQS",
+ "variableTemplatePrintId": null,
+ "additionalProperties": [],
+ "billToKey": 0,
+ "comment": null,
+ "costCenter": "020 - Denver",
+ "dueDate": null,
+ "lineItemFee": 0.75,
+ "offerDescription": "<p>$17.00 Each \u2013 S - XL<br>\n$20.00 Each \u2013 2XL - XLarge/Tall Sizes<br>\n$21.50 Each \u2013 3XL - 2XLarge/Tall sizes<br>$25.00 Each - 4XL Sizes - 3XL tall <br>$35.00 Each - 5XL Sizes<br><br></p>",
+ "offerLineNumber": "0",
+ "offerNumber": "TS_A-A0050",
+ "orderedByKey": 0,
+ "poNumber": null,
+ "price": 17.0,
+ "products": [
{
- "ProductId": "3j8hu98q-s0t6-409v-029r-321r0uo02k30",
- "AssociatedFileName": "",
- "Color": null,
- "Comment": null,
- "Components": [],
- "ProductDescription": "8\"x8\" square paint swatch.",
- "ProductLineNumber": "1",
- "ProductNumber": "R_962_24008_TSO",
- "ProductOwner": null,
- "QuantityOrdered": null,
- "Size": null
+ "productId": "3j8hu98q-s0t6-409v-029r-321r0uo02k30",
+ "associatedFileName": "",
+ "color": null,
+ "comment": null,
+ "components": [],
+ "productDescription": "8\"x8\" square paint swatch.",
+ "productLineNumber": "1",
+ "productNumber": "R_962_24008_TSO",
+ "productOwner": null,
+ "quantityOrdered": null,
+ "size": null
},
{
- "ProductId": "7jv34sz5-m4q8-8q8f-187d-jt7791j02958",
- "AssociatedFileName": "",
- "Color": null,
- "Comment": null,
- "Components": [],
- "ProductDescription": "Tuff Shed Men's Polo",
- "ProductLineNumber": "2",
- "ProductNumber": "TS_A-A0050",
- "ProductOwner": null,
- "QuantityOrdered": null,
- "Size": null
+ "productId": "7jv34sz5-m4q8-8q8f-187d-jt7791j02958",
+ "associatedFileName": "",
+ "color": null,
+ "comment": null,
+ "components": [],
+ "productDescription": "Tuff Shed Men's Polo",
+ "productLineNumber": "2",
+ "productNumber": "TS_A-A0050",
+ "productOwner": null,
+ "quantityOrdered": null,
+ "size": null
}
],
- "QuantityOrdered": 1,
- "RushOrder": false,
- "ShipToKey": 0,
- "TaxAmount": 0.0
+ "quantityOrdered": 1,
+ "rushOrder": false,
+ "shipToKey": 0,
+ "taxAmount": 0.0
}
],
- "OrderFee": 4.0,
- "OrderVariables": {},
- "OrderedBys": [
+ "orderFee": 4.0,
+ "orderVariables": {},
+ "orderedBys": [
{
- "Address1": "42801 Pamela Run",
- "Address2": null,
- "Address3": null,
- "City": "Port Rickside",
- "Company": "Trujillo-Sims",
- "Country": "USA",
- "EmailAddress": "jonesjeff@example.net",
- "FaxNumber": "",
- "Key": 0,
- "Name": "Benjamin Smith",
- "PhoneNumber": "+1-310-761-3615x7115",
- "PostalCode": "10330",
- "StateProvince": "California"
+ "address1": "42801 Pamela Run",
+ "address2": null,
+ "address3": null,
+ "city": "Port Rickside",
+ "company": "Trujillo-Sims",
+ "country": "USA",
+ "emailAddress": "jonesjeff@example.net",
+ "faxNumber": "",
+ "key": 0,
+ "name": "Benjamin Smith",
+ "phoneNumber": "+1-310-761-3615x7115",
+ "postalCode": "10330",
+ "stateProvince": "California"
}
],
- "PONumber": null,
- "PaymentMethods": [ {"Amount": 35.8, "MethodName": "invoice"} ],
- "PickPackHandlingFee": 0.75,
- "RushOrder": false,
- "ShipTos": [
+ "paymentMethods": [{ "amount": 35.8, "methodName": "invoice" }],
+ "pickPackHandlingFee": 0.75,
+ "poNumber": null,
+ "rushOrder": false,
+ "shipTos": [
{
- "AffiliateId": "EK-023",
- "ReferenceId": "QGSN VNSAH - PWJRVG OCYIA & PG GAE RZTN",
- "SourceSystemShippingMethodId": "qnigy_cxdcmo",
- "AffiliateName": "JK-467-WLTQIEOCCZ, PA",
- "Comment": null,
- "CostCenter": "020 - Denver",
- "CreditCardFee": 0.0,
- "DueDate": null,
- "Key": 0,
- "OrderFee": 4.0,
- "PONumber": null,
- "PaymentMethods": [],
- "PickPackHandlingFee": 0.75,
- "RushOrder": false,
- "ShipToAddress": {
- "Address1": "130 Owen Gateway",
- "Address2": null,
- "Address3": null,
- "City": "Arthurborough",
- "Company": "Bryant-Compton",
- "Country": "USA",
- "EmailAddress": "yduran@example.com",
- "FaxNumber": "",
- "Name": "Patricia Parker",
- "PhoneNumber": "317.410.1217",
- "PostalCode": "96718",
- "StateProvince": "Georgia"
+ "affiliateId": "EK-023",
+ "referenceId": "QGSN VNSAH - PWJRVG OCYIA & PG GAE RZTN",
+ "sourceSystemShippingMethodId": "qnigy_cxdcmo",
+ "affiliateName": "JK-467-WLTQIEOCCZ, PA",
+ "comment": null,
+ "costCenter": "020 - Denver",
+ "creditCardFee": 0.0,
+ "dueDate": null,
+ "key": 0,
+ "orderFee": 4.0,
+ "paymentMethods": [],
+ "pickPackHandlingFee": 0.75,
+ "poNumber": null,
+ "rushOrder": false,
+ "shipToAddress": {
+ "address1": "130 Owen Gateway",
+ "address2": null,
+ "address3": null,
+ "city": "Arthurborough",
+ "company": "Bryant-Compton",
+ "country": "USA",
+ "emailAddress": "yduran@example.com",
+ "faxNumber": "",
+ "name": "Patricia Parker",
+ "phoneNumber": "317.410.1217",
+ "postalCode": "96718",
+ "stateProvince": "Georgia"
},
- "ShippingCost": 13.66,
- "ShippingHandlingTax": 0.39,
- "TotalOrderFee": 4.0
+ "shippingCost": 13.66,
+ "shippingHandlingTax": 0.39,
+ "totalOrderFee": 4.0
}
],
- "ShippingHandlingTax": 0.39,
- "TotalOrderFee": 4.0,
- "TotalShippingCost": 13.66
+ "shippingHandlingTax": 0.39,
+ "totalOrderFee": 4.0,
+ "totalShippingCost": 13.66
},
{
- "OrderId": "1-qrhjtpek-8-Q-0286-8859-25",
- "ReferenceId": "WUQD HWKPE - XIWHAC BTVOM & BH WAK DXRI",
- "AccessGroups": ["TS-Retail", "CDM Tuff Shed", "Tuff shed Act on behalf and see all orders"],
- "AffiliateIdentifier": "VJ-268",
- "AffiliateName": "GZ-589-WUOFETGVLG, RM",
- "BillTos": [
+ "orderId": "1-qrhjtpek-8-Q-0286-8859-25",
+ "referenceId": "WUQD HWKPE - XIWHAC BTVOM & BH WAK DXRI",
+ "accessGroups": ["TS-Retail", "CDM Tuff Shed", "Tuff shed Act on behalf and see all orders"],
+ "affiliateIdentifier": "VJ-268",
+ "affiliateName": "GZ-589-WUOFETGVLG, RM",
+ "billTos": [
{
- "Address1": "547 James Ports",
- "Address2": null,
- "Address3": null,
- "City": "Angelastad",
- "Company": "Jones-Hurst",
- "Country": "USA",
- "EmailAddress": "rjohnson@example.net",
- "FaxNumber": "",
- "Key": 0,
- "Name": "Joseph Hayes",
- "PhoneNumber": "001-226-553-1291x1555",
- "PostalCode": "68236",
- "StateProvince": "Missouri"
+ "address1": "547 James Ports",
+ "address2": null,
+ "address3": null,
+ "city": "Angelastad",
+ "company": "Jones-Hurst",
+ "country": "USA",
+ "emailAddress": "rjohnson@example.net",
+ "faxNumber": "",
+ "key": 0,
+ "name": "Joseph Hayes",
+ "phoneNumber": "001-226-553-1291x1555",
+ "postalCode": "68236",
+ "stateProvince": "Missouri"
}
],
- "CostCenter": "020 - Denver",
- "CreateDateTime": "2025-02-28T20:37:42.018+00:00",
- "CreditCardFee": 0.0,
- "DefaultBillToKey": null,
- "DefaultOrderedByKey": null,
- "DefaultShipToKey": null,
- "DueDate": null,
- "LineItems": [
+ "costCenter": "020 - Denver",
+ "createDateTime": "2025-02-28T20:37:42.018+00:00",
+ "creditCardFee": 0.0,
+ "defaultBillToKey": null,
+ "defaultOrderedByKey": null,
+ "defaultShipToKey": null,
+ "dueDate": null,
+ "lineItems": [
{
- "OfferId": "s59otw94-k6go-1114-c6ja-17q7i68pu06t",
- "ReferenceId": "VNMV APSLE - GMGDGG ELXCC & VS FUP NCHR",
- "VariableTemplatePrintId": null,
- "AdditionalProperties": [],
- "BillToKey": 0,
- "Comment": null,
- "CostCenter": "020 - Denver",
- "DueDate": null,
- "LineItemFee": 0.75,
- "OfferDescription": "<p>$17.00 Each \u2013 S - XL<br>\n$20.00 Each \u2013 2XL - XLarge/Tall Sizes<br>\n$21.50 Each \u2013 3XL - 2XLarge/Tall sizes<br>$25.00 Each - 4XL Sizes - 3XL tall <br>$35.00 Each - 5XL Sizes<br><br></p>",
- "OfferLineNumber": "0",
- "OfferNumber": "TS_A-A0050",
- "OrderedByKey": 0,
- "PONumber": null,
- "Price": 17.0,
- "Products": [
+ "offerId": "s59otw94-k6go-1114-c6ja-17q7i68pu06t",
+ "referenceId": "VNMV APSLE - GMGDGG ELXCC & VS FUP NCHR",
+ "variableTemplatePrintId": null,
+ "additionalProperties": [],
+ "billToKey": 0,
+ "comment": null,
+ "costCenter": "020 - Denver",
+ "dueDate": null,
+ "lineItemFee": 0.75,
+ "offerDescription": "<p>$17.00 Each \u2013 S - XL<br>\n$20.00 Each \u2013 2XL - XLarge/Tall Sizes<br>\n$21.50 Each \u2013 3XL - 2XLarge/Tall sizes<br>$25.00 Each - 4XL Sizes - 3XL tall <br>$35.00 Each - 5XL Sizes<br><br></p>",
+ "offerLineNumber": "0",
+ "offerNumber": "TS_A-A0050",
+ "orderedByKey": 0,
+ "poNumber": null,
+ "price": 17.0,
+ "products": [
{
- "ProductId": "1t6xb26e-g4n3-882j-217s-200f1fp92e83",
- "AssociatedFileName": "",
- "Color": null,
- "Comment": null,
- "Components": [],
- "ProductDescription": "8\"x8\" square paint swatch.",
- "ProductLineNumber": "1",
- "ProductNumber": "R_962_24008_TSO",
- "ProductOwner": null,
- "QuantityOrdered": null,
- "Size": null
+ "productId": "1t6xb26e-g4n3-882j-217s-200f1fp92e83",
+ "associatedFileName": "",
+ "color": null,
+ "comment": null,
+ "components": [],
+ "productDescription": "8\"x8\" square paint swatch.",
+ "productLineNumber": "1",
+ "productNumber": "R_962_24008_TSO",
+ "productOwner": null,
+ "quantityOrdered": null,
+ "size": null
},
{
- "ProductId": "3sn29wd7-z0g3-5z6f-133y-yt7327a65247",
- "AssociatedFileName": "",
- "Color": null,
- "Comment": null,
- "Components": [],
- "ProductDescription": "Tuff Shed Men's Polo",
- "ProductLineNumber": "2",
- "ProductNumber": "TS_A-A0050",
- "ProductOwner": null,
- "QuantityOrdered": null,
- "Size": null
+ "productId": "3sn29wd7-z0g3-5z6f-133y-yt7327a65247",
+ "associatedFileName": "",
+ "color": null,
+ "comment": null,
+ "components": [],
+ "productDescription": "Tuff Shed Men's Polo",
+ "productLineNumber": "2",
+ "productNumber": "TS_A-A0050",
+ "productOwner": null,
+ "quantityOrdered": null,
+ "size": null
}
],
- "QuantityOrdered": 1,
- "RushOrder": false,
- "ShipToKey": 0,
- "TaxAmount": 0.0
+ "quantityOrdered": 1,
+ "rushOrder": false,
+ "shipToKey": 0,
+ "taxAmount": 0.0
}
],
- "OrderFee": 4.0,
- "OrderVariables": {},
- "OrderedBys": [
+ "orderFee": 4.0,
+ "orderVariables": {},
+ "orderedBys": [
{
- "Address1": "6084 Stephanie Lodge",
- "Address2": null,
- "Address3": null,
- "City": "South Donald",
- "Company": "Mccullough Group",
- "Country": "USA",
- "EmailAddress": "murphytracy@example.net",
- "FaxNumber": "",
- "Key": 0,
- "Name": "Joshua Pena",
- "PhoneNumber": "898-997-8385x11658",
- "PostalCode": "44793",
- "StateProvince": "Alaska"
+ "address1": "6084 Stephanie Lodge",
+ "address2": null,
+ "address3": null,
+ "city": "South Donald",
+ "company": "Mccullough Group",
+ "country": "USA",
+ "emailAddress": "murphytracy@example.net",
+ "faxNumber": "",
+ "key": 0,
+ "name": "Joshua Pena",
+ "phoneNumber": "898-997-8385x11658",
+ "postalCode": "44793",
+ "stateProvince": "Alaska"
}
],
- "PONumber": null,
- "PaymentMethods": [ {"Amount": 35.8, "MethodName": "invoice"} ],
- "PickPackHandlingFee": 0.75,
- "RushOrder": false,
- "ShipTos": [
+ "paymentMethods": [{ "amount": 35.8, "methodName": "invoice" }],
+ "pickPackHandlingFee": 0.75,
+ "poNumber": null,
+ "rushOrder": false,
+ "shipTos": [
{
- "AffiliateId": "XU-170",
- "ReferenceId": "ZVZT XMPKV - IZQTEP WTIUT & UL QCX WPSI",
- "SourceSystemShippingMethodId": "bzman_ehfsxc",
- "AffiliateName": "EH-565-JEYFOGBQJW, UU",
- "Comment": null,
- "CostCenter": "020 - Denver",
- "CreditCardFee": 0.0,
- "DueDate": null,
- "Key": 0,
- "OrderFee": 4.0,
- "PONumber": null,
- "PaymentMethods": [],
- "PickPackHandlingFee": 0.75,
- "RushOrder": false,
- "ShipToAddress": {
- "Address1": "9947 Rich Estate",
- "Address2": null,
- "Address3": null,
- "City": "North Megan",
- "Company": "Lewis, Pierce and Alvarez",
- "Country": "USA",
- "EmailAddress": "freemanrobert@example.com",
- "FaxNumber": "",
- "Name": "Zachary Gilbert",
- "PhoneNumber": "001-937-677-3517x2443",
- "PostalCode": "49875",
- "StateProvince": "Ohio"
+ "affiliateId": "XU-170",
+ "referenceId": "ZVZT XMPKV - IZQTEP WTIUT & UL QCX WPSI",
+ "sourceSystemShippingMethodId": "bzman_ehfsxc",
+ "affiliateName": "EH-565-JEYFOGBQJW, UU",
+ "comment": null,
+ "costCenter": "020 - Denver",
+ "creditCardFee": 0.0,
+ "dueDate": null,
+ "key": 0,
+ "orderFee": 4.0,
+ "paymentMethods": [],
+ "pickPackHandlingFee": 0.75,
+ "poNumber": null,
+ "rushOrder": false,
+ "shipToAddress": {
+ "address1": "9947 Rich Estate",
+ "address2": null,
+ "address3": null,
+ "city": "North Megan",
+ "company": "Lewis, Pierce and Alvarez",
+ "country": "USA",
+ "emailAddress": "freemanrobert@example.com",
+ "faxNumber": "",
+ "name": "Zachary Gilbert",
+ "phoneNumber": "001-937-677-3517x2443",
+ "postalCode": "49875",
+ "stateProvince": "Ohio"
},
- "ShippingCost": 13.66,
- "ShippingHandlingTax": 0.39,
- "TotalOrderFee": 4.0
+ "shippingCost": 13.66,
+ "shippingHandlingTax": 0.39,
+ "totalOrderFee": 4.0
}
],
- "ShippingHandlingTax": 0.39,
- "TotalOrderFee": 4.0,
- "TotalShippingCost": 13.66
+ "shippingHandlingTax": 0.39,
+ "totalOrderFee": 4.0,
+ "totalShippingCost": 13.66
}
]
}
diff --git a/schema/Api/OrderBroker/UpdateFulfillmentOrderResponse.json b/schema/Api/OrderBroker/UpdateFulfillmentOrderResponse.json
index 0e89914..91ae19f 100644
--- a/schema/Api/OrderBroker/UpdateFulfillmentOrderResponse.json
+++ b/schema/Api/OrderBroker/UpdateFulfillmentOrderResponse.json
@@ -10,9 +10,9 @@
"type": "object",
"additionalProperties": false,
"properties": {
- "FailureMessages": { "type": ["array", "null"], "items": {"type": "string"} },
- "InformationalMessages": { "type": ["array", "null"], "items": {"type": "string"} },
- "OperationWasSuccessful": {"type": "boolean", "readOnly": true}
+ "failureMessages": { "type": ["array", "null"], "items": {"type": "string"} },
+ "informationalMessages": { "type": ["array", "null"], "items": {"type": "string"} },
+ "operationWasSuccessful": {"type": "boolean", "readOnly": true}
}
}
}
diff --git a/schema/Api/OrderBroker/parts/AdditionalProperty.json b/schema/Api/OrderBroker/parts/AdditionalProperty.json
index c9e9f39..80d66e6 100644
--- a/schema/Api/OrderBroker/parts/AdditionalProperty.json
+++ b/schema/Api/OrderBroker/parts/AdditionalProperty.json
@@ -5,8 +5,8 @@
"type": "object",
"additionalProperties": false,
"properties": {
- "Key" : { "type": ["string", "null"] },
- "Value": { "type": ["string", "null"] }
+ "key" : { "type": ["string", "null"] },
+ "value": { "type": ["string", "null"] }
},
- "required": ["Key", "Value"]
+ "required": ["key", "value"]
}
diff --git a/schema/Api/OrderBroker/parts/BillTo.json b/schema/Api/OrderBroker/parts/BillTo.json
index 7ecce4e..98d323e 100644
--- a/schema/Api/OrderBroker/parts/BillTo.json
+++ b/schema/Api/OrderBroker/parts/BillTo.json
@@ -4,24 +4,21 @@
"description": "Bill to address object for Order",
"type": "object",
"properties": {
- "Address1": { "description": "Address line 1 for address", "type": ["string", "null"] },
- "Address2": { "description": "Address line 2 for address", "type": ["string", "null"] },
- "Address3": { "description": "Address line 3 for address", "type": ["string", "null"] },
- "City": { "description": "City name for address", "type": ["string", "null"] },
- "Company": { "description": "Company name for address", "type": ["string", "null"] },
- "Country": { "description": "Country name for address", "type": ["string", "null"] },
- "EmailAddress": {
+ "address1": {"description": "Address line 1 for address", "type": "string"},
+ "address2": { "description": "Address line 2 for address", "type": ["string", "null"] },
+ "address3": { "description": "Address line 3 for address", "type": ["string", "null"] },
+ "city": {"description": "City name for address", "type": "string"},
+ "company": { "description": "Company name for address", "type": ["string", "null"] },
+ "country": {"description": "Country name for address", "type": "string"},
+ "emailAddress": {
"description": "Contact email address for address",
"type": ["string", "null"]
},
- "FaxNumber": { "description": "Fax number for address", "type": ["string", "null"] },
- "Name": { "description": "Contact name for this address", "type": ["string", "null"] },
- "PhoneNumber": { "description": "Phone number for address", "type": ["string", "null"] },
- "PostalCode": { "description": "Postal code for address", "type": ["string", "null"] },
- "StateProvince": {
- "description": "State or province name for address",
- "type": ["string", "null"]
- }
+ "faxNumber": { "description": "Fax number for address", "type": ["string", "null"] },
+ "name": {"description": "Contact name for this address", "type": "string"},
+ "phoneNumber": { "description": "Phone number for address", "type": ["string", "null"] },
+ "postalCode": {"description": "Postal code for address", "type": "string"},
+ "stateProvince": {"description": "State or province name for address", "type": "string"}
},
- "required": ["Address1", "City", "Country", "Name", "PostalCode", "StateProvince"]
+ "required": ["address1", "city", "country", "name", "postalCode", "stateProvince"]
}
diff --git a/schema/Api/OrderBroker/parts/BillToFromNewOrderRequest.json b/schema/Api/OrderBroker/parts/BillToFromNewOrderRequest.json
index 3882f17..37c6546 100644
--- a/schema/Api/OrderBroker/parts/BillToFromNewOrderRequest.json
+++ b/schema/Api/OrderBroker/parts/BillToFromNewOrderRequest.json
@@ -6,7 +6,8 @@
{"$ref": "BillTo.json"},
{
"type": "object",
- "properties": { "Key": {"type": "integer", "format": "int32"} }
+ "properties": { "key": {"type": "integer", "format": "int32"} }
}
- ]
+ ],
+ "required": ["key"]
}
diff --git a/schema/Api/OrderBroker/parts/Component.json b/schema/Api/OrderBroker/parts/Component.json
index cfa1e2f..684422f 100644
--- a/schema/Api/OrderBroker/parts/Component.json
+++ b/schema/Api/OrderBroker/parts/Component.json
@@ -5,42 +5,43 @@
"type": "object",
"additionalProperties": false,
"properties": {
- "ProductId": {
+ "productId": {
"description": "Unique ID for component product within Integration Broker",
"type": ["string", "null"]
},
- "AssociatedFileName": {
+ "associatedFileName": {
"description": "Name of file associated to component product (if applicable)",
"type": ["string", "null"]
},
- "Color": { "description": "Color of component product", "type": ["string", "null"] },
- "Comment": {
+ "color": { "description": "Color of component product", "type": ["string", "null"] },
+ "comment": {
"description": "Manually entered comment for component product",
"type": ["string", "null"]
},
- "ComponentLineNumber": {
+ "componentLineNumber": {
"description": "Unique ID for component product within parent product",
"type": ["string", "null"]
},
- "ProductDescription": {
+ "productDescription": {
"description": "Description for component product within product management system (system where ordered line item products will be managed)",
"type": ["string", "null"]
},
- "ProductNumber": {
+ "productNumber": {
"description": "Name for component product within product management system (system where ordered line item products will be managed)",
"type": ["string", "null"]
},
- "ProductOwner": { "description": "Owner of component product", "type": ["string", "null"] },
- "QuantityBackordered": {
+ "productOwner": { "description": "Owner of component product", "type": ["string", "null"] },
+ "quantityBackordered": {
"description": "Amount of component product back-ordered within parent product",
"type": ["integer", "null"],
"format": "int32"
},
- "QuantityOrdered": {
+ "quantityOrdered": {
"description": "Amount of component product ordered within parent product",
"type": ["integer", "null"],
"format": "int32"
},
- "Size": { "description": "Size of component product", "type": ["string", "null"] }
- }
+ "size": { "description": "Size of component product", "type": ["string", "null"] }
+ },
+ "required": ["productId"]
}
diff --git a/schema/Api/OrderBroker/parts/FulfillmentOrder.json b/schema/Api/OrderBroker/parts/FulfillmentOrder.json
index d345483..82f58f6 100644
--- a/schema/Api/OrderBroker/parts/FulfillmentOrder.json
+++ b/schema/Api/OrderBroker/parts/FulfillmentOrder.json
@@ -3,71 +3,34 @@
"$id": "FulfillmentOrder.json",
"type": "object",
"properties": {
- "CustomerId": { "type": ["string", "null"] },
- "FulfillmentOrderId": { "type": ["string", "null"] },
- "FulfillmentSystemCustomerId": { "type": ["string", "null"] },
- "FulfillmentSystemId": { "type": ["string", "null"] },
- "FulfillmentSystemLocationId": { "type": ["string", "null"] },
- "FulfillmentSystemOrderId": { "type": ["string", "null"] },
- "ReferenceId": { "type": ["string", "null"] },
- "BillTo": { "$ref": "BillToFromUpdateFulfillmentOrderRequest.json" },
- "CreateDateTime": { "type": ["string", "null"] },
- "DefaultShipToKey": { "type": "integer", "format": "int32" },
- "DueDate": { "type": ["string", "null"] },
- "OrderIds": { "type": ["array", "null"], "items": { "type": "string" } },
- "OrderVariables": { "type": ["string", "null"] },
- "PONumber": { "type": ["string", "null"] },
- "PaymentMethods": {
- "type": ["array", "null"],
- "items": { "$ref": "PaymentMethod.json" }
+ "customerId": { "type": ["string", "null"] },
+ "fulfillmentOrderId": { "type": ["string", "null"] },
+ "fulfillmentSystemCustomerId": { "type": ["string", "null"] },
+ "fulfillmentSystemId": { "type": ["string", "null"] },
+ "fulfillmentSystemLocationId": { "type": ["string", "null"] },
+ "fulfillmentSystemOrderId": { "type": ["string", "null"] },
+ "referenceId": { "type": ["string", "null"] },
+ "billTo": {
+ "description": "Bill to addresses array for Order",
+ "oneOf": [ {"type": "null"}, {"$ref": "BillToFromUpdateFulfillmentOrderRequest.json"} ]
},
- "Products": {
+ "createDateTime": { "type": ["string", "null"] },
+ "defaultShipToKey": {"type": "integer", "format": "int32"},
+ "dueDate": { "type": ["string", "null"] },
+ "orderIds": { "type": ["array", "null"], "items": {"type": "string"} },
+ "orderVariables": { "type": ["string", "null"] },
+ "paymentMethods": { "type": ["array", "null"], "items": {"$ref": "PaymentMethod.json"} },
+ "poNumber": { "type": ["string", "null"] },
+ "products": {
"type": ["array", "null"],
- "items": { "$ref": "ProductFromUpdateFulfillmentOrderRequest.json" }
+ "items": {"$ref": "ProductFromUpdateFulfillmentOrderRequest.json"}
},
- "RushOrder": { "type": ["string", "null"] },
- "ShipTos": {
+ "rushOrder": { "type": ["string", "null"] },
+ "shipTos": {
"type": ["array", "null"],
- "items": {
- "$ref": "ShipToFromUpdateFulfillmentOrderRequest.json",
- "examples": [
- {
- "ShipmentId": "000000116",
- "ShipDateUtc": "2025-05-09T00:00:00",
- "Carrier": "Customer Pickup",
- "Service": "Customer Pickup (H)",
- "Freight": 0,
- "PackingSlipNumber": "000000116",
- "MasterTrackingNumber": null,
- "ShipToAddress": {
- "Name": "Amya Kreiger",
- "Company": "Kidde Residential/Commercial Division",
- "Address1": "377 Mireille Causeway",
- "Address2": "Suite 048",
- "Address3": "",
- "City": "North Fridamouth",
- "StateProvince": "WA",
- "PostalCode": "76996",
- "Country": "United States",
- "PhoneNumber": "(984) 633-1221 x3373",
- "FaxNumber": null,
- "EmailAddress": null
- },
- "Packages": [
- {
- "PackageNumber": "1",
- "TrackingNumber": "TrackingNumber123123",
- "IsDeleted": null
- }
- ],
- "IsDeleted": null
- }
- ]
- }
+ "items": {"$ref": "ShipToFromUpdateFulfillmentOrderRequest.json"}
},
- "Shipments": {
- "type": ["array", "null"],
- "items": { "$ref": "Shipment.json" }
- }
- }
+ "shipments": { "type": ["array", "null"], "items": {"$ref": "Shipment.json"} }
+ },
+ "required": ["fulfillmentOrderId"]
}
diff --git a/schema/Api/OrderBroker/parts/LineItem.json b/schema/Api/OrderBroker/parts/LineItem.json
index a339008..5744383 100644
--- a/schema/Api/OrderBroker/parts/LineItem.json
+++ b/schema/Api/OrderBroker/parts/LineItem.json
@@ -3,89 +3,90 @@
"$id": "LineItem.json",
"description": "Order level line item details",
"type": "object",
+ "additionalProperties": false,
"properties": {
- "OfferId": {
+ "offerId": {
"description": "Unique ID for offer within Integration Broker",
"type": ["string", "null"]
},
- "ReferenceId": { "type": ["string", "null"] },
- "VariableTemplatePrintId": {
+ "referenceId": { "type": ["string", "null"] },
+ "variableTemplatePrintId": {
"description": "Unique ID for variable template file associated to offer on individual line item",
"type": ["string", "null"]
},
- "AdditionalProperties": {
+ "additionalProperties": {
"description": "Additional properties details for Order LineItems",
"type": ["array", "null"],
"items": {"$ref": "AdditionalProperty.json"}
},
- "BillToKey": {
+ "billToKey": {
"description": "Unique ID for Order.BillTos.Key property associated to individual line item (NOTE: If top-level DefaultBillToKey is not set, this must be.)",
"type": ["integer", "null"],
"format": "int32"
},
- "Comment": {
+ "comment": {
"description": "Manually entered comment for individual line item",
"type": ["string", "null"]
},
- "CostCenter": { "type": ["string", "null"] },
- "DueDate": {
+ "costCenter": { "type": ["string", "null"] },
+ "dueDate": {
"description": "Datetime of expected due date for individual line item",
"type": ["string", "null"]
},
- "LineItemFee": {
+ "lineItemFee": {
"description": "Fee applied to individual line item",
"type": ["number", "null"],
"format": "double"
},
- "OfferDescription": {
+ "offerDescription": {
"description": "Description for offer within product management system (system where ordered line item products will be managed)",
"type": ["string", "null"]
},
- "OfferLineNumber": {
+ "offerLineNumber": {
"description": "Unique ID for individual line item",
"type": ["string", "null"]
},
- "OfferNumber": {
+ "offerNumber": {
"description": "Name for offer within product management system (system where ordered line item products will be managed)",
"type": ["string", "null"]
},
- "OrderedByKey": {
+ "orderedByKey": {
"description": "Unique ID for Order.OrderedBy.Key property associated to individual line item",
"type": ["integer", "null"],
"format": "int32"
},
- "PONumber": {
+ "poNumber": {
"description": "Purchase order number for individual line item",
"type": ["string", "null"]
},
- "Price": {
+ "price": {
"description": "Total offer price of individual line item",
"type": ["number", "null"],
"format": "double"
},
- "Products": {
+ "products": {
"type": ["array", "null"],
"items": {"$ref": "ProductFromNewOrderRequest.json"}
},
- "QuantityOrdered": {
+ "quantityOrdered": {
"description": "Amount of offer ordered for individual line item",
- "type": "integer",
+ "type": ["integer", "null"],
"format": "int32"
},
- "RushOrder": {
+ "rushOrder": {
"description": "True/false indicator if individual line item is expedited",
"type": ["boolean", "null"]
},
- "ShipToKey": {
+ "shipToKey": {
"description": "Unique ID for Order.ShipTos.Key property associated to individual line item (NOTE: If top-level DefaultShipToKey is not set, this must be.)",
"type": ["integer", "null"],
"format": "int32"
},
- "TaxAmount": {
+ "taxAmount": {
"description": "Total tax amount applied to individual line item",
"type": ["number", "null"],
"format": "double"
}
},
- "required": ["LineItemFee", "Price", "QuantityOrdered"]
+ "required": ["offerId", "lineItemFee", "price", "quantityOrdered"]
}
diff --git a/schema/Api/OrderBroker/parts/OrderVariable.json b/schema/Api/OrderBroker/parts/OrderVariable.json
index 4d25a2f..746ab85 100644
--- a/schema/Api/OrderBroker/parts/OrderVariable.json
+++ b/schema/Api/OrderBroker/parts/OrderVariable.json
@@ -1,6 +1,10 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "OrderVariable.json",
- "type": ["object", "null"],
- "additionalProperties": true
+ "description": "Manually entered variables for order within order management system (system where order lifecycle will be managed in)",
+ "oneOf": [
+ {"type": "null"},
+ {"type": "object", "maxProperties": 0},
+ {"$ref": "AdditionalProperty.json"}
+ ]
}
diff --git a/schema/Api/OrderBroker/parts/OrderedBy.json b/schema/Api/OrderBroker/parts/OrderedBy.json
index e59c83a..03a614e 100644
--- a/schema/Api/OrderBroker/parts/OrderedBy.json
+++ b/schema/Api/OrderBroker/parts/OrderedBy.json
@@ -5,29 +5,26 @@
"type": "object",
"additionalProperties": false,
"properties": {
- "Address1": { "description": "Address line 1 for address", "type": ["string", "null"] },
- "Address2": { "description": "Address line 2 for address", "type": ["string", "null"] },
- "Address3": { "description": "Address line 3 for address", "type": ["string", "null"] },
- "City": { "description": "City name for address", "type": ["string", "null"] },
- "Company": { "description": "Company name for address", "type": ["string", "null"] },
- "Country": { "description": "Country name for address", "type": ["string", "null"] },
- "EmailAddress": {
+ "address1": {"description": "Address line 1 for address", "type": "string"},
+ "address2": { "description": "Address line 2 for address", "type": ["string", "null"] },
+ "address3": { "description": "Address line 3 for address", "type": ["string", "null"] },
+ "city": {"description": "City name for address", "type": "string"},
+ "company": { "description": "Company name for address", "type": ["string", "null"] },
+ "country": {"description": "Country name for address", "type": "string"},
+ "emailAddress": {
"description": "Contact email address for address",
"type": ["string", "null"]
},
- "FaxNumber": { "description": "Fax number for address", "type": ["string", "null"] },
- "Key": {
+ "faxNumber": { "description": "Fax number for address", "type": ["string", "null"] },
+ "key": {
"description": "Unique ID for individual contact",
"type": "integer",
"format": "int32"
},
- "Name": { "type": ["string", "null"] },
- "PhoneNumber": { "description": "Phone number for address", "type": ["string", "null"] },
- "PostalCode": { "description": "Postal code for address", "type": ["string", "null"] },
- "StateProvince": {
- "description": "State or province name for address",
- "type": ["string", "null"]
- }
+ "name": {"type": "string"},
+ "phoneNumber": { "description": "Phone number for address", "type": ["string", "null"] },
+ "postalCode": {"description": "Postal code for address", "type": "string"},
+ "stateProvince": {"description": "State or province name for address", "type": "string"}
},
- "required": ["Address1", "City", "Country", "Name", "PostalCode", "StateProvince"]
+ "required": ["address1", "city", "country", "name", "postalCode", "stateProvince"]
}
diff --git a/schema/Api/OrderBroker/parts/Package.json b/schema/Api/OrderBroker/parts/Package.json
index 54a30ca..7686c0c 100644
--- a/schema/Api/OrderBroker/parts/Package.json
+++ b/schema/Api/OrderBroker/parts/Package.json
@@ -4,8 +4,8 @@
"type": "object",
"additionalProperties": false,
"properties": {
- "PackageNumber" : { "type": ["string", "null"] },
- "TrackingNumber": { "type": ["string", "null"] }
+ "packageNumber" : { "type": ["string", "null"] },
+ "trackingNumber": { "type": ["string", "null"] }
},
- "required": ["PackageNumber", "TrackingNumber"]
+ "required": ["packageNumber", "trackingNumber"]
}
diff --git a/schema/Api/OrderBroker/parts/PaymentMethod.json b/schema/Api/OrderBroker/parts/PaymentMethod.json
index 9c563b9..964e52e 100644
--- a/schema/Api/OrderBroker/parts/PaymentMethod.json
+++ b/schema/Api/OrderBroker/parts/PaymentMethod.json
@@ -3,14 +3,15 @@
"$id": "PaymentMethod.json",
"type": "object",
"properties": {
- "Amount": {
+ "amount": {
"description": "Total Amount. Required if MethodName specified",
"type": ["number", "null"],
"format": "double"
},
- "MethodName": {
+ "methodName": {
"description": "Name of payment method. Required if Payment Amount specified",
"type": ["string", "null"]
}
- }
+ },
+ "required": ["amount", "methodName"]
}
diff --git a/schema/Api/OrderBroker/parts/Product.json b/schema/Api/OrderBroker/parts/Product.json
index e900103..a4951d5 100644
--- a/schema/Api/OrderBroker/parts/Product.json
+++ b/schema/Api/OrderBroker/parts/Product.json
@@ -3,9 +3,10 @@
"$id": "Product.json",
"type": "object",
"properties": {
- "ProductId": { "type": ["string", "null"] },
- "AssociatedFileName": { "type": ["string", "null"] },
- "Comment": { "type": ["string", "null"] },
- "QuantityOrdered": { "type": ["integer", "null"], "format": "int32" }
- }
+ "productId": { "type": ["string", "null"] },
+ "associatedFileName": { "type": ["string", "null"] },
+ "comment": { "type": ["string", "null"] },
+ "quantityOrdered": { "type": ["integer", "null"], "format": "int32" }
+ },
+ "required": ["productId"]
}
diff --git a/schema/Api/OrderBroker/parts/ProductFromNewOrderRequest.json b/schema/Api/OrderBroker/parts/ProductFromNewOrderRequest.json
index 2e7d0e1..064562f 100644
--- a/schema/Api/OrderBroker/parts/ProductFromNewOrderRequest.json
+++ b/schema/Api/OrderBroker/parts/ProductFromNewOrderRequest.json
@@ -7,14 +7,15 @@
{
"type": "object",
"properties": {
- "Color": { "type": ["string", "null"] },
- "Components": { "type": ["array", "null"], "items": {"$ref": "Component.json"} },
- "ProductDescription": { "type": ["string", "null"] },
- "ProductLineNumber": { "type": ["string", "null"] },
- "ProductNumber": { "type": ["string", "null"] },
- "ProductOwner": { "type": ["string", "null"] },
- "Size": { "type": ["string", "null"] }
+ "color": { "type": ["string", "null"] },
+ "components": { "type": ["array", "null"], "items": {"$ref": "Component.json"} },
+ "productDescription": { "type": ["string", "null"] },
+ "productLineNumber": { "type": ["string", "null"] },
+ "productNumber": { "type": ["string", "null"] },
+ "productOwner": { "type": ["string", "null"] },
+ "size": { "type": ["string", "null"] }
}
}
- ]
+ ],
+ "required": ["productId"]
}
diff --git a/schema/Api/OrderBroker/parts/ProductFromUpdateFulfillmentOrderRequest.json b/schema/Api/OrderBroker/parts/ProductFromUpdateFulfillmentOrderRequest.json
index 33b78d5..62bf42b 100644
--- a/schema/Api/OrderBroker/parts/ProductFromUpdateFulfillmentOrderRequest.json
+++ b/schema/Api/OrderBroker/parts/ProductFromUpdateFulfillmentOrderRequest.json
@@ -3,26 +3,16 @@
"$id": "ProductFromUpdateFulfillmentOrderRequest.json",
"type": "object",
"allOf": [
- { "$ref": "Product.json" },
+ {"$ref": "Product.json"},
{
"type": "object",
"properties": {
- "FulfillmentSystemProductId": { "type": ["string", "null"] },
- "ProductLineId": { "type": ["string", "null"] },
- "Price": { "type": ["number", "null"], "format": "double" },
- "ShipToKey": { "type": ["integer", "null"], "format": "int32" },
- "ShipmentPackages": {
- "type": ["array", "null"],
- "items": { "$ref": "ShipmentPackage.json" },
- "examples": [
- {
- "ShipmentId": "ShipmentId123",
- "PackageNumber": "1",
- "ShipQuantity": 2
- }
- ]
- },
- "Status": { "type": ["string", "null"] }
+ "fulfillmentSystemProductId": { "type": ["string", "null"] },
+ "productLineId": { "type": ["string", "null"] },
+ "price": { "type": ["number", "null"], "format": "double" },
+ "shipToKey": { "type": ["integer", "null"], "format": "int32" },
+ "shipmentPackages": { "type": ["array", "null"], "items": {"$ref": "ShipmentPackage.json"} },
+ "status": { "type": ["string", "null"] }
}
}
]
diff --git a/schema/Api/OrderBroker/parts/ShipTo.json b/schema/Api/OrderBroker/parts/ShipTo.json
index 1998fdc..679c349 100644
--- a/schema/Api/OrderBroker/parts/ShipTo.json
+++ b/schema/Api/OrderBroker/parts/ShipTo.json
@@ -4,12 +4,13 @@
"description": "Ship to addresses array for Order",
"type": "object",
"properties": {
- "ReferenceId": { "type": ["string", "null"] },
- "Comment": { "type": ["string", "null"] },
- "DueDate": { "type": ["string", "null"] },
- "Key": {"type": "integer", "format": "int32"},
- "PONumber": { "type": ["string", "null"] },
- "RushOrder": { "type": ["boolean", "null"] },
- "ShippingCost": { "type": ["number", "null"], "format": "double" }
- }
+ "referenceId": { "type": ["string", "null"] },
+ "comment": { "type": ["string", "null"] },
+ "dueDate": { "type": ["string", "null"] },
+ "key": {"type": "integer", "format": "int32"},
+ "poNumber": { "type": ["string", "null"] },
+ "rushOrder": { "type": ["boolean", "null"] },
+ "shippingCost": { "type": ["number", "null"], "format": "double" }
+ },
+ "required": ["key"]
}
diff --git a/schema/Api/OrderBroker/parts/ShipToAddress.json b/schema/Api/OrderBroker/parts/ShipToAddress.json
index 1741a9d..9e0fe63 100644
--- a/schema/Api/OrderBroker/parts/ShipToAddress.json
+++ b/schema/Api/OrderBroker/parts/ShipToAddress.json
@@ -4,24 +4,21 @@
"description": "Ship to addresses array for Order",
"type": "object",
"properties": {
- "Address1": { "description": "Address line 1 for address", "type": ["string", "null"] },
- "Address2": { "description": "Address line 2 for address", "type": ["string", "null"] },
- "Address3": { "description": "Address line 3 for address", "type": ["string", "null"] },
- "City": { "description": "City name for address", "type": ["string", "null"] },
- "Company": { "description": "Company name for address", "type": ["string", "null"] },
- "Country": { "description": "Country name for address", "type": ["string", "null"] },
- "EmailAddress": {
+ "address1": {"description": "Address line 1 for address", "type": "string"},
+ "address2": { "description": "Address line 2 for address", "type": ["string", "null"] },
+ "address3": { "description": "Address line 3 for address", "type": ["string", "null"] },
+ "city": {"description": "City name for address", "type": "string"},
+ "company": { "description": "Company name for address", "type": ["string", "null"] },
+ "country": {"description": "Country name for address", "type": "string"},
+ "emailAddress": {
"description": "Contact email address for address",
"type": ["string", "null"]
},
- "FaxNumber": { "description": "Fax number for address", "type": ["string", "null"] },
- "Name": { "type": ["string", "null"] },
- "PhoneNumber": { "description": "Phone number for address", "type": ["string", "null"] },
- "PostalCode": { "description": "Postal code for address", "type": ["string", "null"] },
- "StateProvince": {
- "description": "State or province name for address",
- "type": ["string", "null"]
- }
+ "faxNumber": { "description": "Fax number for address", "type": ["string", "null"] },
+ "name": {"type": "string"},
+ "phoneNumber": { "description": "Phone number for address", "type": ["string", "null"] },
+ "postalCode": {"description": "Postal code for address", "type": "string"},
+ "stateProvince": {"description": "State or province name for address", "type": "string"}
},
- "required": ["Address1", "City", "Country", "Name", "PostalCode", "StateProvince"]
+ "required": ["address1", "city", "country", "name", "postalCode", "stateProvince"]
}
diff --git a/schema/Api/OrderBroker/parts/ShipToFromNewOrderRequest.json b/schema/Api/OrderBroker/parts/ShipToFromNewOrderRequest.json
index 51be7ee..29440a1 100644
--- a/schema/Api/OrderBroker/parts/ShipToFromNewOrderRequest.json
+++ b/schema/Api/OrderBroker/parts/ShipToFromNewOrderRequest.json
@@ -7,18 +7,19 @@
{
"type": "object",
"properties": {
- "AffiliateId": { "type": ["string", "null"] },
- "SourceSystemShippingMethodId": { "type": ["string", "null"] },
- "AffiliateName": { "type": ["string", "null"] },
- "CostCenter": { "type": ["string", "null"] },
- "CreditCardFee": { "type": ["number", "null"], "format": "double" },
- "OrderFee": { "type": ["number", "null"], "format": "double" },
- "PaymentMethods": { "type": ["array", "null"], "items": {"$ref": "PaymentMethod.json"} },
- "PickPackHandlingFee": { "type": ["number", "null"], "format": "double" },
- "ShipToAddress": {"$ref": "ShipToAddress.json"},
- "ShippingHandlingTax": { "type": ["number", "null"], "format": "double" },
- "TotalOrderFee": { "type": ["number", "null"], "format": "double" }
+ "affiliateId": { "type": ["string", "null"] },
+ "sourceSystemShippingMethodId": { "type": ["string", "null"] },
+ "affiliateName": { "type": ["string", "null"] },
+ "costCenter": { "type": ["string", "null"] },
+ "creditCardFee": { "type": ["number", "null"], "format": "double" },
+ "orderFee": { "type": ["number", "null"], "format": "double" },
+ "paymentMethods": { "type": ["array", "null"], "items": {"$ref": "PaymentMethod.json"} },
+ "pickPackHandlingFee": { "type": ["number", "null"], "format": "double" },
+ "shipToAddress": {"$ref": "ShipToAddress.json"},
+ "shippingHandlingTax": { "type": ["number", "null"], "format": "double" },
+ "totalOrderFee": { "type": ["number", "null"], "format": "double" }
}
}
- ]
+ ],
+ "required": ["key"]
}
diff --git a/schema/Api/OrderBroker/parts/ShipToFromUpdateFulfillmentOrderRequest.json b/schema/Api/OrderBroker/parts/ShipToFromUpdateFulfillmentOrderRequest.json
index 8b44ad9..5b5412b 100644
--- a/schema/Api/OrderBroker/parts/ShipToFromUpdateFulfillmentOrderRequest.json
+++ b/schema/Api/OrderBroker/parts/ShipToFromUpdateFulfillmentOrderRequest.json
@@ -7,12 +7,12 @@
{
"type": "object",
"properties": {
- "FulfillmentSystemShippingMethodId": { "type": ["string", "null"] },
- "PaymentMethods": { "type": ["array", "null"], "items": {"$ref": "PaymentMethod.json"} },
- "ShipToAddress": {"$ref": "ShipToAddress.json"},
- "ShippingCarrier": { "type": ["string", "null"] },
- "ShippingService": { "type": ["string", "null"] },
- "Status": { "type": ["string", "null"] }
+ "fulfillmentSystemShippingMethodId": { "type": ["string", "null"] },
+ "paymentMethods": { "type": ["array", "null"], "items": {"$ref": "PaymentMethod.json"} },
+ "shipToAddress": {"$ref": "ShipToAddress.json"},
+ "shippingCarrier": { "type": ["string", "null"] },
+ "shippingService": { "type": ["string", "null"] },
+ "status": { "type": ["string", "null"] }
}
}
]
diff --git a/schema/Api/OrderBroker/parts/Shipment.json b/schema/Api/OrderBroker/parts/Shipment.json
index e0c4a2e..7d9628a 100644
--- a/schema/Api/OrderBroker/parts/Shipment.json
+++ b/schema/Api/OrderBroker/parts/Shipment.json
@@ -4,42 +4,15 @@
"type": "object",
"additionalProperties": false,
"properties": {
- "ShipmentId": { "type": ["string", "null"] },
- "Carrier": { "type": ["string", "null"] },
- "Freight": { "type": ["number", "null"], "format": "double" },
- "MasterTrackingNumber": { "type": ["string", "null"] },
- "Packages": {
- "type": ["array", "null"],
- "items": { "$ref": "Package.json" },
- "examples": [
- {
- "PackageNumber": "1",
- "TrackingNumber": "TrackingNumber123123"
- }
- ]
- },
- "PackingSlipNumber": { "type": ["string", "null"] },
- "Service": { "type": ["string", "null"] },
- "ShipDateUtc": { "type": ["string", "null"] },
- "ShipToAddress": {
- "$ref": "ShipToAddress.json",
- "examples": [
- {
- "Name": "Amya Kreiger",
- "Company": "Kidde Residential/Commercial Division",
- "Address1": "377 Mireille Causeway",
- "Address2": "Suite 048",
- "Address3": "",
- "City": "North Fridamouth",
- "StateProvince": "WA",
- "PostalCode": "76996",
- "Country": "United States",
- "PhoneNumber": "(984) 633-1221 x3373",
- "FaxNumber": null,
- "EmailAddress": null
- }
- ]
- }
+ "shipmentId": { "type": ["string", "null"] },
+ "carrier": { "type": ["string", "null"] },
+ "freight": { "type": ["number", "null"], "format": "double" },
+ "masterTrackingNumber": { "type": ["string", "null"] },
+ "packages": { "type": ["array", "null"], "items": {"$ref": "Package.json"} },
+ "packingSlipNumber": { "type": ["string", "null"] },
+ "service": { "type": ["string", "null"] },
+ "shipDateUtc": { "type": ["string", "null"] },
+ "shipToAddress": {"$ref": "ShipToAddress.json"}
},
- "required": ["ShipmentId", "Service", "ShipDateUtc", "Freight"]
+ "required": ["shipmentId", "service", "shipDateUtc", "freight"]
}
diff --git a/schema/Api/OrderBroker/parts/ShipmentPackage.json b/schema/Api/OrderBroker/parts/ShipmentPackage.json
index 1a27d87..828a57a 100644
--- a/schema/Api/OrderBroker/parts/ShipmentPackage.json
+++ b/schema/Api/OrderBroker/parts/ShipmentPackage.json
@@ -4,9 +4,9 @@
"type": "object",
"additionalProperties": false,
"properties": {
- "ShipmentId": { "type": ["string", "null"] },
- "PackageNumber": { "type": ["string", "null"] },
- "ShipQuantity": { "type": ["number", "null"], "format": "double" }
+ "shipmentId": { "type": ["string", "null"] },
+ "packageNumber": { "type": ["string", "null"] },
+ "shipQuantity": { "type": ["number", "null"], "format": "double" }
},
- "required": ["ShipmentId", "PackageNumber", "ShipQuantity"]
+ "required": ["shipmentId", "packageNumber", "shipQuantity"]
}
diff --git a/schema/Api/ShippingBroker/GetShippingratesParameters.json b/schema/Api/ShippingBroker/GetShippingratesParameters.json
new file mode 100644
index 0000000..011b51c
--- /dev/null
+++ b/schema/Api/ShippingBroker/GetShippingratesParameters.json
@@ -0,0 +1,9 @@
+{
+ "CorrelationId": {
+ "description": "Correlation ID. This is added by the API Management service if not present. Once added, it should be propagated to any downstream services.",
+ "in": "header",
+ "name": "x-correlation-id",
+ "schema": {"type": "string"},
+ "required": false
+ }
+}
diff --git a/schema/Api/ShippingBroker/GetShippingratesRequest.json b/schema/Api/ShippingBroker/GetShippingratesRequest.json
new file mode 100644
index 0000000..79d558c
--- /dev/null
+++ b/schema/Api/ShippingBroker/GetShippingratesRequest.json
@@ -0,0 +1,14 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "$id": "GetShippingratesRequest.json",
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "SourceSystemCustomerId": { "type": ["string", "null"] },
+ "SourceSystemId": {"type": "integer", "format": "int32"},
+ "OfferIds": { "type": ["array", "null"], "items": {"type": "string"} },
+ "PackageWeight": {"type": "number", "format": "float"},
+ "ShipToAddress": {"$ref": "parts/ShipToAddress.json"},
+ "SourceSystemShippingMethods": { "type": ["array", "null"], "items": {"type": "string"} }
+ }
+}
diff --git a/schema/Api/ShippingBroker/GetShippingratesResponse.json b/schema/Api/ShippingBroker/GetShippingratesResponse.json
new file mode 100644
index 0000000..317ad32
--- /dev/null
+++ b/schema/Api/ShippingBroker/GetShippingratesResponse.json
@@ -0,0 +1,13 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "$id": "GetShippingratesResponse.json",
+ "allOf": [
+ {"$ref": "../../Common/ApiResponseBase.json"},
+ {
+ "type": "object",
+ "properties": {
+ "data": { "oneOf": [ {"type": "null"}, {"$ref": "parts/Shippingrate.json"} ] }
+ }
+ }
+ ]
+}
diff --git a/schema/Api/ShippingBroker/parts/ShipToAddress.json b/schema/Api/ShippingBroker/parts/ShipToAddress.json
new file mode 100644
index 0000000..782a12a
--- /dev/null
+++ b/schema/Api/ShippingBroker/parts/ShipToAddress.json
@@ -0,0 +1,21 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "$id": "ShipToAddress.json",
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "Address1" : { "type": ["string", "null"] },
+ "Address2" : { "type": ["string", "null"] },
+ "Address3" : { "type": ["string", "null"] },
+ "City" : { "type": ["string", "null"] },
+ "Company" : { "type": ["string", "null"] },
+ "Country" : { "type": ["string", "null"] },
+ "EmailAddress" : { "type": ["string", "null"] },
+ "FaxNumber" : { "type": ["string", "null"] },
+ "IsResidential": { "type": ["boolean", "null"] },
+ "Name" : { "type": ["string", "null"] },
+ "PhoneNumber" : { "type": ["string", "null"] },
+ "PostalCode" : { "type": ["string", "null"] },
+ "StateProvince": { "type": ["string", "null"] }
+ }
+}
diff --git a/schema/Api/ShippingBroker/parts/Shippingrate.json b/schema/Api/ShippingBroker/parts/Shippingrate.json
new file mode 100644
index 0000000..01a8ebf
--- /dev/null
+++ b/schema/Api/ShippingBroker/parts/Shippingrate.json
@@ -0,0 +1,6 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "$id": "Shippingrate.json",
+ "type": "object",
+ "additionalProperties": false
+}
diff --git a/schema/Event/FulfillmentOrder/FulfillmentOrder.json b/schema/Event/FulfillmentOrder/FulfillmentOrder.json
index b8a3482..3e75b52 100644
--- a/schema/Event/FulfillmentOrder/FulfillmentOrder.json
+++ b/schema/Event/FulfillmentOrder/FulfillmentOrder.json
@@ -9,10 +9,7 @@
"description": "Customer ID tied to the fulfillment order",
"type": ["string", "null"]
},
- "FulfillmentOrderId": {
- "description": "Unique ID for fulfillment order",
- "type": ["string", "null"]
- },
+ "FulfillmentOrderId": { "description": "Unique ID for fulfillment order", "type": ["string", "null"] },
"FulfillmentSystemCustomerId": {
"description": "ID of customer within the fulfillment system",
"type": ["string", "null"]
@@ -32,7 +29,7 @@
"BillTo": {
"description": "Fulfillment order level bill to contact and address details",
"type": ["object", "null"],
- "items": { "$ref": "parts/BillTo.json" },
+ "items": {"$ref": "parts/BillTo.json"},
"examples": [
{
"Address1": "106 Tyler Street Suite 175",
@@ -55,10 +52,7 @@
"description": "Created date time of the fulfillment order",
"type": ["string", "null"]
},
- "DefaultShipToKey": {
- "description": "Default key for ShipTo",
- "type": "integer"
- },
+ "DefaultShipToKey": {"description": "Default key for ShipTo", "type": "integer"},
"DueDate": {
"description": "Due date of the fulfillment order",
"type": ["string", "null"]
@@ -66,7 +60,7 @@
"OrderIds": {
"description": "Order IDs tied to the fulfillment order",
"type": ["array", "null"],
- "items": { "type": "string" }
+ "items": {"type": "string"}
},
"OrderVariables": {
"description": "Order variables tied to the fulfillment order in JSON format",
@@ -79,59 +73,21 @@
"PaymentMethods": {
"description": "PaymentMethod details",
"type": ["array", "null"],
- "items": { "$ref": "parts/PaymentMethod.json" }
+ "items": {"$ref": "parts/PaymentMethod.json"}
},
"Products": {
"description": "Fulfillment order level product details",
"type": ["array", "null"],
- "items": { "$ref": "parts/FOProduct.json" }
+ "items": {"$ref": "parts/FOProduct.json"}
},
"RushOrder": {
"description": "Indicator if the order is a rush order",
"type": ["string", "null"]
},
- "Shipments": {
- "description": "Shipments tied to the fulfillment order",
- "type": ["array", "null"],
- "items": { "$ref": "parts/Shipment.json" },
- "examples": [
- {
- "ShipmentId": "000000116",
- "ShipDateUtc": "2025-05-09T00:00:00",
- "Carrier": "Customer Pickup",
- "Service": "Customer Pickup (H)",
- "Freight": 0,
- "PackingSlipNumber": "000000116",
- "MasterTrackingNumber": null,
- "ShipToAddress": {
- "Name": "Amya Kreiger",
- "Company": "Kidde Residential/Commercial Division",
- "Address1": "377 Mireille Causeway",
- "Address2": "Suite 048",
- "Address3": "",
- "City": "North Fridamouth",
- "StateProvince": "WA",
- "PostalCode": "76996",
- "Country": "United States",
- "PhoneNumber": "(984) 633-1221 x3373",
- "FaxNumber": null,
- "EmailAddress": null
- },
- "Packages": [
- {
- "PackageNumber": "1",
- "TrackingNumber": "TrackingNumber123123",
- "IsDeleted": null
- }
- ],
- "IsDeleted": null
- }
- ]
- },
"ShipTos": {
"description": "Fulfillment order level ship to details",
"type": ["array", "null"],
- "items": { "$ref": "parts/FOShipTo.json" },
+ "items": {"$ref": "parts/FOShipTo.json"},
"examples": [
{
"FulfillmentSystemShippingMethodId": "FedEx Ground",
@@ -161,36 +117,67 @@
"Status": null
}
]
+ },
+ "Shipments": {
+ "description": "Shipments tied to the fulfillment order",
+ "type": ["array", "null"],
+ "items": {"$ref": "parts/Shipment.json"},
+ "examples": [
+ {
+ "ShipmentId": "000000116",
+ "Carrier": "Customer Pickup",
+ "Freight": 0,
+ "IsDeleted": null,
+ "MasterTrackingNumber": null,
+ "Packages": [
+ {
+ "IsDeleted": null,
+ "PackageNumber": "1",
+ "TrackingNumber": "TrackingNumber123123"
+ }
+ ],
+ "PackingSlipNumber": "000000116",
+ "Service": "Customer Pickup (H)",
+ "ShipDateUtc": "2025-05-09T00:00:00",
+ "ShipToAddress": {
+ "Address1": "377 Mireille Causeway",
+ "Address2": "Suite 048",
+ "Address3": "",
+ "City": "North Fridamouth",
+ "Company": "Kidde Residential/Commercial Division",
+ "Country": "United States",
+ "EmailAddress": null,
+ "FaxNumber": null,
+ "Name": "Amya Kreiger",
+ "PhoneNumber": "(984) 633-1221 x3373",
+ "PostalCode": "76996",
+ "StateProvince": "WA"
+ }
+ }
+ ]
}
},
"required": [
- "FulfillmentOrderId",
- "OrderIds",
- "CustomerId",
- "FulfillmentSystemOrderId",
- "FulfillmentSystemId",
- "FulfillmentSystemCustomerId",
- "FulfillmentSystemLocationId",
- "Products",
- "ShipTos",
- "BillTo",
+ "FulfillmentOrderId", "OrderIds", "CustomerId", "FulfillmentSystemOrderId",
+ "FulfillmentSystemId", "FulfillmentSystemCustomerId",
+ "FulfillmentSystemLocationId", "Products", "ShipTos", "BillTo",
"DefaultShipToKey"
],
"allOf": [
{
"oneOf": [
{
- "properties": { "DefaultShipToKey": { "type": "integer" } },
+ "properties": { "DefaultShipToKey": {"type": "integer"} },
"required": ["DefaultShipToKey"]
},
{
"not": {
- "properties": { "DefaultShipToKey": { "type": "integer" } },
+ "properties": { "DefaultShipToKey": {"type": "integer"} },
"required": ["DefaultShipToKey"]
},
"properties": {
- "DefaultShipToKey": { "type": ["null", "integer"] },
- "ShipTos": { "type": "array", "minItems": 1 }
+ "DefaultShipToKey": { "type": ["null", "integer"] },
+ "ShipTos" : { "type": "array" , "minItems": 1 }
},
"required": ["ShipTos"]
}
@@ -225,7 +212,7 @@
"OrderIds": ["88236a77-813d-a65a-3311-e1facde69736"],
"OrderVariables": "{}",
"PONumber": "n94ualw05x",
- "PaymentMethods": [{ "Amount": 131.25, "MethodName": "Credit Card" }],
+ "PaymentMethods": [ {"Amount": 131.25, "MethodName": "Credit Card"} ],
"Products": [
{
"FulfillmentSystemProductId": "123456",
diff --git a/schema/Event/FulfillmentOrder/parts/FOProduct.json b/schema/Event/FulfillmentOrder/parts/FOProduct.json
index a08d95c..a1333d0 100644
--- a/schema/Event/FulfillmentOrder/parts/FOProduct.json
+++ b/schema/Event/FulfillmentOrder/parts/FOProduct.json
@@ -21,49 +21,23 @@
"description": "Name of file associated to product (if applicable)",
"type": ["string", "null"]
},
- "Comment": {
- "description": "Comment for product",
- "type": ["string", "null"]
- },
- "Price": {
- "description": "Price of product line item",
- "type": ["number", "null"]
- },
- "QuantityOrdered": {
- "description": "Amount of product ordered",
- "type": "integer"
- },
- "ShipToKey": {
- "description": "ShipTo key for shipping this product",
- "type": "integer"
- },
- "Status": {
- "description": "Status of product line item",
- "type": ["string", "null"]
- },
+ "Comment": { "description": "Comment for product", "type": ["string", "null"] },
"IsDeleted": {
"description": "Flag to indicate the product line item is deleted",
"type": ["boolean", "null"]
},
+ "Price": { "description": "Price of product line item", "type": ["number", "null"] },
+ "QuantityOrdered": {"description": "Amount of product ordered", "type": "integer"},
+ "ShipToKey": {"description": "ShipTo key for shipping this product", "type": "integer"},
"ShipmentPackages": {
"description": "Shipment packages associated with this product line item",
"type": ["array", "null"],
- "items": { "$ref": "ShipmentPackage.json" },
- "examples": [
- {
- "ShipmentId": "ShipmentId123",
- "PackageNumber": "1",
- "ShipQuantity": 2
- }
- ]
- }
+ "items": {"$ref": "ShipmentPackage.json"},
+ "examples": [ {"ShipmentId": "ShipmentId123", "PackageNumber": "1", "ShipQuantity": 2} ]
+ },
+ "Status": { "description": "Status of product line item", "type": ["string", "null"] }
},
- "required": [
- "ProductLineId",
- "QuantityOrdered",
- "FulfillmentSystemProductId",
- "Price"
- ],
+ "required": ["ProductLineId", "QuantityOrdered", "FulfillmentSystemProductId", "Price"],
"examples": [
{
"FulfillmentSystemProductId": "123456",
diff --git a/schema/Event/FulfillmentOrder/parts/FOShipTo.json b/schema/Event/FulfillmentOrder/parts/FOShipTo.json
index f44da49..075f34b 100644
--- a/schema/Event/FulfillmentOrder/parts/FOShipTo.json
+++ b/schema/Event/FulfillmentOrder/parts/FOShipTo.json
@@ -18,6 +18,10 @@
"description": "Datetime of expected due date for individual Order.ShipTos",
"type": ["string", "null"]
},
+ "IsDeleted": {
+ "description": "Flag to indicate the ship to is deleted",
+ "type": ["boolean", "null"]
+ },
"Key": {"description": "Unique ID for individual ship to", "type": "integer"},
"PONumber": {
"description": "Purchase order number for individual Order.ShipTos",
@@ -28,10 +32,6 @@
"description": "True/false indicator if individual Order.ShipTos is expedited",
"type": ["boolean", "null"]
},
- "IsDeleted": {
- "description": "Flag to indicate the ship to is deleted",
- "type": ["boolean", "null"]
- },
"ShipToAddress": {
"$ref": "ShipToAddress.json",
"description": "Ship to addresses array for Order",
diff --git a/schema/Event/FulfillmentOrder/parts/Package.json b/schema/Event/FulfillmentOrder/parts/Package.json
index 7826484..fcac931 100644
--- a/schema/Event/FulfillmentOrder/parts/Package.json
+++ b/schema/Event/FulfillmentOrder/parts/Package.json
@@ -4,28 +4,12 @@
"type": "object",
"additionalProperties": false,
"properties": {
- "PackageNumber": {
- "type": [
- "string",
- "null"
- ]
- },
- "TrackingNumber": {
- "type": [
- "string",
- "null"
- ]
- },
"IsDeleted": {
"description": "Flag to indicate the package is deleted",
- "type": [
- "boolean",
- "null"
- ]
- }
+ "type": ["boolean", "null"]
+ },
+ "PackageNumber": { "type": ["string", "null"] },
+ "TrackingNumber": { "type": ["string", "null"] }
},
- "required": [
- "PackageNumber",
- "TrackingNumber"
- ]
+ "required": ["PackageNumber", "TrackingNumber"]
}
diff --git a/schema/Event/FulfillmentOrder/parts/Shipment.json b/schema/Event/FulfillmentOrder/parts/Shipment.json
index cec7446..253f0bf 100644
--- a/schema/Event/FulfillmentOrder/parts/Shipment.json
+++ b/schema/Event/FulfillmentOrder/parts/Shipment.json
@@ -7,41 +7,41 @@
"ShipmentId": { "type": ["string", "null"] },
"Carrier": { "type": ["string", "null"] },
"Freight": { "type": ["number", "null"], "format": "double" },
+ "IsDeleted": {
+ "description": "Flag to indicate the shipment is deleted",
+ "type": ["boolean", "null"]
+ },
"MasterTrackingNumber": { "type": ["string", "null"] },
"Packages": {
"type": ["array", "null"],
- "items": { "$ref": "Package.json" },
+ "items": {"$ref": "Package.json"},
"examples": [
{
+ "IsDeleted": null,
"PackageNumber": "1",
- "TrackingNumber": "TrackingNumber123123",
- "IsDeleted": null
+ "TrackingNumber": "TrackingNumber123123"
}
]
},
"PackingSlipNumber": { "type": ["string", "null"] },
"Service": { "type": ["string", "null"] },
"ShipDateUtc": { "type": ["string", "null"] },
- "IsDeleted": {
- "description": "Flag to indicate the shipment is deleted",
- "type": ["boolean", "null"]
- },
"ShipToAddress": {
"$ref": "ShipToAddress.json",
"examples": [
{
- "Name": "Amya Kreiger",
- "Company": "Kidde Residential/Commercial Division",
"Address1": "377 Mireille Causeway",
"Address2": "Suite 048",
"Address3": "",
"City": "North Fridamouth",
- "StateProvince": "WA",
- "PostalCode": "76996",
+ "Company": "Kidde Residential/Commercial Division",
"Country": "United States",
- "PhoneNumber": "(984) 633-1221 x3373",
+ "EmailAddress": null,
"FaxNumber": null,
- "EmailAddress": null
+ "Name": "Amya Kreiger",
+ "PhoneNumber": "(984) 633-1221 x3373",
+ "PostalCode": "76996",
+ "StateProvince": "WA"
}
]
}
diff --git a/schema/Event/FulfillmentOrder/parts/ShipmentPackage.json b/schema/Event/FulfillmentOrder/parts/ShipmentPackage.json
index fd97706..c09c8af 100644
--- a/schema/Event/FulfillmentOrder/parts/ShipmentPackage.json
+++ b/schema/Event/FulfillmentOrder/parts/ShipmentPackage.json
@@ -5,12 +5,12 @@
"additionalProperties": false,
"properties": {
"ShipmentId": { "type": ["string", "null"] },
- "PackageNumber": { "type": ["string", "null"] },
- "ShipQuantity": { "type": ["number", "null"], "format": "double" },
"IsDeleted": {
"description": "Flag to indicate the shipment package is deleted",
"type": ["boolean", "null"]
- }
+ },
+ "PackageNumber": { "type": ["string", "null"] },
+ "ShipQuantity": { "type": ["number", "null"], "format": "double" }
},
"required": ["ShipmentId", "PackageNumber", "ShipQuantity"]
}