@salesforce/b2c-tooling-sdk 2.4.0 → 2.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/data/schemas/dw.schema.json +14 -0
- package/data/tooling/index.json +5 -5
- package/dist/esm/cli/base-command.js +4 -3
- package/dist/esm/cli/base-command.js.map +1 -1
- package/dist/esm/cli/cartridge-command.js +2 -1
- package/dist/esm/cli/cartridge-command.js.map +1 -1
- package/dist/esm/cli/config.js +3 -1
- package/dist/esm/cli/config.js.map +1 -1
- package/dist/esm/cli/hooks.d.ts +13 -0
- package/dist/esm/cli/hooks.js +11 -0
- package/dist/esm/cli/hooks.js.map +1 -1
- package/dist/esm/cli/instance-command.js +2 -1
- package/dist/esm/cli/instance-command.js.map +1 -1
- package/dist/esm/clients/scapi-backend-utils.d.ts +15 -0
- package/dist/esm/clients/scapi-backend-utils.js +28 -1
- package/dist/esm/clients/scapi-backend-utils.js.map +1 -1
- package/dist/esm/clients/scapi-fallback-backend.js +2 -2
- package/dist/esm/clients/scapi-fallback-backend.js.map +1 -1
- package/dist/esm/clients/scapi-schemas.generated.d.ts +2 -2
- package/dist/esm/compat/dispatcher.js +2 -2
- package/dist/esm/compat/dispatcher.js.map +1 -1
- package/dist/esm/config/config-origins.d.ts +19 -0
- package/dist/esm/config/config-origins.js +11 -0
- package/dist/esm/config/config-origins.js.map +1 -0
- package/dist/esm/config/config-write.d.ts +86 -0
- package/dist/esm/config/config-write.js +296 -0
- package/dist/esm/config/config-write.js.map +1 -0
- package/dist/esm/config/dw-json-schema.js +4 -0
- package/dist/esm/config/dw-json-schema.js.map +1 -1
- package/dist/esm/config/dw-json.d.ts +2 -0
- package/dist/esm/config/dw-json.js +10 -6
- package/dist/esm/config/dw-json.js.map +1 -1
- package/dist/esm/config/index.d.ts +8 -3
- package/dist/esm/config/index.js +5 -2
- package/dist/esm/config/index.js.map +1 -1
- package/dist/esm/config/instance-manager.d.ts +64 -28
- package/dist/esm/config/instance-manager.js +145 -63
- package/dist/esm/config/instance-manager.js.map +1 -1
- package/dist/esm/config/mapping.js +6 -0
- package/dist/esm/config/mapping.js.map +1 -1
- package/dist/esm/config/resolver.d.ts +22 -0
- package/dist/esm/config/resolver.js +54 -29
- package/dist/esm/config/resolver.js.map +1 -1
- package/dist/esm/config/sources/dw-json-source.d.ts +9 -1
- package/dist/esm/config/sources/dw-json-source.js +34 -20
- package/dist/esm/config/sources/dw-json-source.js.map +1 -1
- package/dist/esm/config/sources/env-source.d.ts +30 -3
- package/dist/esm/config/sources/env-source.js +126 -1
- package/dist/esm/config/sources/env-source.js.map +1 -1
- package/dist/esm/config/types.d.ts +46 -0
- package/dist/esm/operations/jobs/run-system-job.js +2 -2
- package/dist/esm/operations/jobs/run-system-job.js.map +1 -1
- package/dist/esm/plugins/discovery.js +2 -1
- package/dist/esm/plugins/discovery.js.map +1 -1
- package/dist/esm/scapi/index.d.ts +5 -2
- package/dist/esm/scapi/index.js +3 -2
- package/dist/esm/scapi/index.js.map +1 -1
- package/dist/esm/scapi/live.d.ts +12 -1
- package/dist/esm/scapi/live.js +30 -2
- package/dist/esm/scapi/live.js.map +1 -1
- package/dist/esm/scapi/local.d.ts +17 -0
- package/dist/esm/scapi/local.js +68 -16
- package/dist/esm/scapi/local.js.map +1 -1
- package/dist/esm/scapi/request.d.ts +2 -2
- package/dist/esm/scapi/request.js +2 -1
- package/dist/esm/scapi/request.js.map +1 -1
- package/dist/esm/scapi/runtime.d.ts +5 -0
- package/dist/esm/scapi/runtime.js.map +1 -1
- package/dist/esm/scapi/schema-source.d.ts +90 -0
- package/dist/esm/scapi/schema-source.js +146 -0
- package/dist/esm/scapi/schema-source.js.map +1 -0
- package/dist/esm/scapi/worker-source.js +30 -6
- package/dist/esm/scapi/worker-source.js.map +1 -1
- package/dist/esm/test-utils/config-isolation.js +9 -2
- package/dist/esm/test-utils/config-isolation.js.map +1 -1
- package/node_modules/@salesforce/b2c-api-schemas/manifest.json +83 -42
- package/node_modules/@salesforce/b2c-api-schemas/package.json +1 -1
- package/node_modules/@salesforce/b2c-api-schemas/scapi/cdn/zones/v1.json +6798 -238
- package/node_modules/@salesforce/b2c-api-schemas/scapi/checkout/orders/v1.json +2296 -205
- package/node_modules/@salesforce/b2c-api-schemas/scapi/checkout/shopper-baskets/v1.json +5571 -666
- package/node_modules/@salesforce/b2c-api-schemas/scapi/checkout/shopper-baskets/v2.json +6062 -371
- package/node_modules/@salesforce/b2c-api-schemas/scapi/checkout/shopper-orders/v1.json +3426 -360
- package/node_modules/@salesforce/b2c-api-schemas/scapi/checkout/shopper-payments/v1.json +351 -99
- package/node_modules/@salesforce/b2c-api-schemas/scapi/configuration/cors/v1.json +172 -12
- package/node_modules/@salesforce/b2c-api-schemas/scapi/configuration/preferences/v1.json +1497 -111
- package/node_modules/@salesforce/b2c-api-schemas/scapi/configuration/shopper-configurations/v1.json +202 -36
- package/node_modules/@salesforce/b2c-api-schemas/scapi/configuration/timeouts/v1.json +79 -10
- package/node_modules/@salesforce/b2c-api-schemas/scapi/custom-object/custom-objects/v1.json +785 -49
- package/node_modules/@salesforce/b2c-api-schemas/scapi/custom-object/shopper-custom-objects/v1.json +191 -40
- package/node_modules/@salesforce/b2c-api-schemas/scapi/customer/customers/v1.json +1483 -107
- package/node_modules/@salesforce/b2c-api-schemas/scapi/customer/shopper-customers/v1.json +4854 -787
- package/node_modules/@salesforce/b2c-api-schemas/scapi/dx/custom-apis/v1.json +119 -15
- package/node_modules/@salesforce/b2c-api-schemas/scapi/dx/object-definitions/v1.json +1699 -80
- package/node_modules/@salesforce/b2c-api-schemas/scapi/dx/scapi-schemas/v1.json +252 -18
- package/node_modules/@salesforce/b2c-api-schemas/scapi/dx/scripts/v1.json +329 -23
- package/node_modules/@salesforce/b2c-api-schemas/scapi/experience/experiences/v1.json +4208 -234
- package/node_modules/@salesforce/b2c-api-schemas/scapi/experience/shopper-experience/v1.json +1591 -247
- package/node_modules/@salesforce/b2c-api-schemas/scapi/intelligence/analytics/v1.json +396 -8
- package/node_modules/@salesforce/b2c-api-schemas/scapi/inventory/availability/v1.json +1242 -69
- package/node_modules/@salesforce/b2c-api-schemas/scapi/inventory/impex/v1.json +2354 -248
- package/node_modules/@salesforce/b2c-api-schemas/scapi/inventory/reservation/v1.json +1550 -45
- package/node_modules/@salesforce/b2c-api-schemas/scapi/inventory/segmentation/v1.json +6615 -0
- package/node_modules/@salesforce/b2c-api-schemas/scapi/merchant/roles/v1.json +1520 -59
- package/node_modules/@salesforce/b2c-api-schemas/scapi/merchant/users/v1.json +397 -17
- package/node_modules/@salesforce/b2c-api-schemas/scapi/observability/metrics/v1.json +1241 -27
- package/node_modules/@salesforce/b2c-api-schemas/scapi/operation/jobs/v1.json +1069 -68
- package/node_modules/@salesforce/b2c-api-schemas/scapi/operation/replications/v1.json +410 -23
- package/node_modules/@salesforce/b2c-api-schemas/scapi/pricing/assignments/v1.json +502 -102
- package/node_modules/@salesforce/b2c-api-schemas/scapi/pricing/campaigns/v1.json +1112 -94
- package/node_modules/@salesforce/b2c-api-schemas/scapi/pricing/coupons/v1.json +820 -93
- package/node_modules/@salesforce/b2c-api-schemas/scapi/pricing/gift-certificates/v1.json +845 -92
- package/node_modules/@salesforce/b2c-api-schemas/scapi/pricing/promotions/v1.json +2716 -674
- package/node_modules/@salesforce/b2c-api-schemas/scapi/pricing/shopper-gift-certificates/v1.json +130 -47
- package/node_modules/@salesforce/b2c-api-schemas/scapi/pricing/shopper-promotions/v1.json +233 -63
- package/node_modules/@salesforce/b2c-api-schemas/scapi/pricing/source-code-groups/v1.json +630 -70
- package/node_modules/@salesforce/b2c-api-schemas/scapi/product/catalogs/v1.json +2886 -348
- package/node_modules/@salesforce/b2c-api-schemas/scapi/product/inventory-lists/v1.json +520 -19
- package/node_modules/@salesforce/b2c-api-schemas/scapi/product/price-books/v1.json +3115 -293
- package/node_modules/@salesforce/b2c-api-schemas/scapi/product/products/v1.json +3313 -138
- package/node_modules/@salesforce/b2c-api-schemas/scapi/product/shopper-availability/v1.json +266 -52
- package/node_modules/@salesforce/b2c-api-schemas/scapi/product/shopper-delivery-estimates/v1.json +256 -48
- package/node_modules/@salesforce/b2c-api-schemas/scapi/product/shopper-products/v1.json +1744 -306
- package/node_modules/@salesforce/b2c-api-schemas/scapi/search/shopper-search/v1.json +1661 -120
- package/node_modules/@salesforce/b2c-api-schemas/scapi/shopper/auth/v1.json +2174 -118
- package/node_modules/@salesforce/b2c-api-schemas/scapi/shopper/auth-admin/v1.json +1373 -24
- package/node_modules/@salesforce/b2c-api-schemas/scapi/shopper/consents/v1.json +531 -20
- package/node_modules/@salesforce/b2c-api-schemas/scapi/shopper/shopper-agents/v1.json +154 -6
- package/node_modules/@salesforce/b2c-api-schemas/scapi/shopper/shopper-consents/v1.json +596 -79
- package/node_modules/@salesforce/b2c-api-schemas/scapi/shopper/shopper-context/v1.json +456 -42
- package/node_modules/@salesforce/b2c-api-schemas/scapi/site/seo/v1.json +101 -23
- package/node_modules/@salesforce/b2c-api-schemas/scapi/site/shopper-seo/v1.json +184 -41
- package/node_modules/@salesforce/b2c-api-schemas/scapi/site/sites/v1.json +995 -47
- package/node_modules/@salesforce/b2c-api-schemas/scapi/store/shopper-stores/v1.json +370 -67
- package/node_modules/@salesforce/b2c-api-schemas/scapi/store/store-redirect-mappings/v1.json +319 -11
- package/node_modules/@salesforce/b2c-api-schemas/scapi/store/stores/v1.json +1109 -64
- package/node_modules/@salesforce/b2c-api-schemas/scapi/storefront/deployments/v1.json +1442 -0
- package/node_modules/@salesforce/b2c-api-schemas/scapi/storefront/environments/v1.json +4293 -0
- package/node_modules/@salesforce/b2c-api-schemas/scapi/storefront/storefronts/v1.json +1371 -0
- package/package.json +2 -2
- package/specs/scapi-schemas-v1.yaml +4 -1
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
"openapi": "3.0.3",
|
|
3
3
|
"info": {
|
|
4
4
|
"title": "Inventory Reservation",
|
|
5
|
+
"description": "[Download API specification](https://developer.salesforce.com/static/commercecloud/commerce-api/inventory-reservation-service/reservation-oas-v1-public.yaml)\n# API Overview\n\nInventory Reservation APIs enable you to place, manage, and fulfill reservations using Omnichannel Inventory.\n\nInventory Reservation APIs can be segregated into the following functional categories.\n\n| Category | Endpoint Description |\n| ----------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |\n| Reservations Management | API endpoints for creating and editing order reservation data. Reserved amounts affect the quantities that are available to order and fulfill. |\n\n**Note**: Omnichannel Inventory uses the Tenant Group ID in place of the Organization ID. For more information, see [Base URL and Request Formation](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html).\n\n## Rate Limits\n\nFor load shedding and rate limiting information, see [Load Shedding and Rate Limiting.](https://developer.salesforce.com/docs/commerce/commerce-api/guide/throttle-rates.html)\n\n## Authentication and Authorization\n\nClients calling Omnichannel Inventory can be authenticated in one of two ways.\n\n- Authenticate using Account Manager with your B2C Commerce credentials.\n- Authenticate using your Salesforce org credentials.\n\nIf you are using both B2C Commerce and Salesforce Order Management, you can use either authentication approach. However, we recommend choosing only one to avoid mixing approaches across your integrations.\n\nThe different authentication approaches do not impact the purpose or performance of the APIs.\n\nEach authentication approach uses a unique set of scopes.\n\n| Scopes for Account Manager Authentication | Scopes for Salesforce org Authentication |\n| ----------------------------------------- | ---------------------------------------- |\n| sfcc.inventory.impex-graphs | sfcc_inventory_impex_graphs |\n| sfcc.inventory.impex-inventory.rw | sfcc_inventory_impex_inventory_rw |\n| sfcc.inventory.impex-inventory | sfcc_inventory_impex_inventory |\n| sfcc.inventory.availability | sfcc_inventory_availability |\n| sfcc.inventory.availability.rw | sfcc_inventory_availability_rw |\n| sfcc.inventory.reservations | sfcc_inventory_reservations |\n| sfcc.inventory.reservations.rw | sfcc_inventory_reservations_rw |\n\nCalls through the API gateway to Omnichannel Inventory must have a valid OAUTH bearer token. The tenant identifier used by Omnichannel Inventory is supplied in the header of the token.\n\nAll request and response body entities are composed in JSON.\n\n## Use Cases \n\n### Reservation Management\n\nUse these API endpoints to create and edit order reservation data. Reserved amounts affect the quantities that are available to order and fulfill.\n\n#### Reserve Inventory\n\nThis endpoint contains data representing a client order in the body of the request. The response body contains the items Omnichannel Inventory was able to reserve, _which may be less than what was requested_.\n\n#### Update and Cancel Reservation\n\nThis endpoint is used primarily for adding items to an existing reservation. The reservation ID is provided as part of the URL, and will be used to locate the reservation document to update. The response body will contain information regarding which items were able to be added, as well as the items that failed to be added along with the reason for the failure.\n\nThis endpoint is also used to cancel a reservation request when you have the Reservation ID that was created at the time of the reservation. This is the preferred method for cancellation, and should always be used if the Reservation ID is available. When using the Cancel Reservation endpoint with the Reservation ID, the reservation document is marked as cancelled and OCI adjusts the reservation and inventory counts based on the reservation document details.\n\n#### Unreserve Quantity\n\nUse this endpoint to unreserve a previously reserved amount with the quantity, SKU, and place identifier (group or location) specified in the body of the request. This endpoint is provided in case you find yourself in any situation where the Reservation ID is unavailable, or if you find it easier to provide the details to unreserve directly (SKU, and Group or Location). The net effect is the same as using the Cancel Reservation endpoint. When performing an Unreserve, the reservation counts are removed from the location or group using the details provided in the call instead of the details in the reservation document.\n\n#### Move Reservation Quantity\n\nUse this endpoint to move reservation quantity between a group and location, a location and a group or between 2 locations, with the quantity and place identifiers specified in the body of the request. A Reservation ID is not required for reservation moves. A reservation move between groups and/or locations is determined in an OMS and only requires that a reserved quantity is moved from one group/location to another. It doesn't need to be aware of or alter the initial reservation document.\n\n#### Fulfill Quantity\n\nUse this endpoint to fulfill a reservation amount at a location with the SKU, quantity, and place identifier (group or location) specified in the body of the request. Fulfilling a reservation occurs when the client ships an order and needs to ensure the reserved and on-hand amounts are correct. This is an atomic operation to ensure that all values are successfully updated.\n\nIn the case of a response that includes errors, the caller must ensure that they do NOT resubmit the entire request. Doing so will result in a EntityAlreadyExists error response. The HTTP 200 response should be parsed for the skus with errors and then each SKU handled individually to determine if resubmitting is necessary. \n\nProvided in the table below are a few examples of conditions that may exist in the system and the responses that would be expected from the fulfill call based on those conditions.\n\n|Condition | Request | Result |\n|:-------------|:--------------:|:----------------------------|\n| On Hand = 0 and Reserved = 1 | requested 1 QTY to fufill | the reservation will be fulfilled with no errors |\n| On hand = 1 and Reserved = 0 | requested 1 QTY to fufill | an insufficient quantity exception is thrown and OH remains the same |\n| On hand = 2 and Reserved = 1 | requested 2 QTY to fufill | an insufficient quantity exception is thrown and OH remains 2, Reserved remains 1 |\n| On hand = 1 and Reserved = 2 | requested 2 QTY to fufill | both reservations are fulfilled and OH is reduced to 0 |\n\n\n#### The Reservation Document\n\n- The api consumer creates the reservation document in order to have a reference containing pertinent information associated with the reservation (Reservation ID, SKU, Qty, Location Group or Location).\n\n- The api consumer sends the reservation document to OCI as part of reservation, and to an OMS (SOM or 3rd Party) as part of the order.\n\n- The reservation document is used by OMS to know which Group/Location a reservation was placed against for routing purposes.\n\n- The reservation document is used by OCI/ECOM in the event that the reservation needs to be cancelled with the Cancel endpoint. (The unreserve endpoint can be used as well, which doesn't require the Reservation ID, but does require other pertinent reservation details such as SKU, and Group or Location)\n\n### Group Reservations\n\nBecause inventory is only available at locations, group availability reflects the aggregation of all locations in the group. It also includes reservations placed at a group that has not been allocated to a specific location.\n\n#### General Lifecycle of a Group Reservation\n\n- Place the group reservation using `reservation-documents`.\n- Allocate the reservation to a location in the group using `transfers`.\n- Fulfill the reservation at the location using `fulfillments`.\n\n#### Example flow:\n\nAssume Group A has Location 1 and Location 2.\n\nGiven the following state of the group:\n\n| Place | On hand | Reserved | ATO |\n| ---------- | ------- | -------- | --- |\n| Location 1 | 50 | 0 | 50 |\n| Location 2 | 50 | 0 | 50 |\n| Group A | 100 | 0 | 100 |\n\n→ Place group reservation of 1\n\n| Place | On hand | Reserved | ATO |\n| ---------- | ------- | -------- | --- |\n| Location 1 | 50 | 0 | 50 |\n| Location 2 | 50 | 0 | 50 |\n| Group A | 100 | 1 | 99 |\n\n→ Allocate reservation to Location 2\n\n| Place | On hand | Reserved | ATO |\n| ---------- | ------- | -------- | --- |\n| Location 1 | 50 | 0 | 50 |\n| Location 2 | 50 | 1 | 49 |\n| Group A | 100 | 1 | 99 |\n\n→ Fulfill at Location 2\n\n| Place | On hand | Reserved | ATO |\n| ---------- | ------- | -------- | --- |\n| Location 1 | 50 | 0 | 50 |\n| Location 2 | 49 | 0 | 49 |\n| Group A | 99 | 0 | 99 |\n\nGroup Reservations **DO NOT** affect a location’s reported Available to Order (ATO) quantity. Essentially, group reservations are a promise returned by the group that one or more of its locations can satisfy the requested reservation quantity. It’s possible that a reservation made against a location could fail if Omnichannel Inventory determines it would break any such existing promises.\n\nFor example, a location with a reported ATO of 3 can fail with an ‘Insufficient Quantity’ response when a reservation quantity of 3 is made against it. This scenario happens when some or all of the location’s inventory is unavailable due to a promise (group reservation) made at one of its associated groups.\n\nFortunately, Omnichannel Inventory exhausts all possibilities to accommodate a group reservation before resulting in failure.\n\nAs shown in the Group A example above, a group reservation is only reflected at the location level when it's allocated to one or more locations.\n\n#### Shared Locations\n\nWhen groups share locations things get a little more complex. For example, group reservations made at one group could increase the count of reservations at another if they share one or more locations.\n\nExample Scenario:\n\nAssume that Group A has Location 1 and Location 2 and Group B has Location 2 and Location 3.\n\nThus, Location 2 is **shared**.\n\nGiven the following state of the groups:\n\n| Place | On hand | Reserved | ATO |\n| ---------- | ------- | -------- | --- |\n| Location 1 | 5 | 0 | 5 |\n| Location 2 | 5 | 0 | 5 |\n| Group A | 10 | 0 | 10 |\n| | | | |\n| Location 2 | 5 | 0 | 5 |\n| Location 3 | 15 | 0 | 15 |\n| Group B | 20 | 0 | 20 |\n\n→ Placing a Group B reservation of 17\n\n| Place | On hand | Reserved | ATO |\n| ---------- | ------- | -------- | --- |\n| Location 2 | 5 | 0 | 5 |\n| Location 3 | 15 | 0 | 15 |\n| Group B | 20 | 17 | 3 |\n\n→ Will increase Group A's reservation count by 2\n\n| Place | On hand | Reserved | ATO |\n| ---------- | ------- | -------- | --- |\n| Location 1 | 5 | 0 | 5 |\n| Location 2 | 5 | 0 | 5 |\n| Group A | 10 | 2 | 8 |\n\nAs stated previously, group reservations are a promise returned by the group that one or more of its locations can satisfy the requested reservation quantity. When determining that promise, group reservations follow a \"least shared location\" approach in that they first lock inventory in their locations which are least shared with other groups. Consequently, that's why, when a reservation of a quantity of 17 was made at Group B, 15 of them were locked at Location 3 first, and the remaining 2 at shared Location 2. As a result, Group A increased its reservation count by 2 to reflect the fact that those 2 are promised elsewhere.\n\n### Temporary Reservations\n\nWhen creating reservations, the **expirationSeconds** value indicates the amount of time (in seconds) a reservation maintains a hold on its inventory before releasing it. This expiration time constitutes an approximate time because there’s typically a delay (up to 60+ seconds, under extreme load) from the specified expiration time and the actual release of inventory reflected in availability counts.\n\nConsequently, we suggest that you use the **expirationSeconds** value as a guarantee of a reservation's eventual release of inventory, in the event the client is unable to cancel the reservation due to unforeseen technical issues. In other words, we encourage you to let the client manage the timely cancellation of reservations rather than relying on a reservation's expiration time to prevent underselling scenarios and optimize the accuracy of real-time availability counts.\n\n## Common Response Codes\n\nThe following error codes apply to all API endpoints. See the API documentation for a complete list of the error codes and response bodies that can be expected on each endpoint.\n\n- 401 - The OATH bearer token is not valid for the tenant or is no longer valid. The response body has the details.\n- 403 - The tenant is not provisioned in the system.\n- 5XX - There was a server error. The response body has the details.\n- Unknown - If an Unknown error type is returned, it indicates that an unknown internal error occurred.\n\n## External Reference Identifier\n\nCurrently, there are a number of places where a consumer can submit an `ExternalRefId` with their request. This is to allow the consumer to submit user generated data along with their request as a link to other external systems data. For example, if I'm pulling data from an order that has an order ID, I can submit that order ID with my reservation request as the `externalRefId`. Then, if there is a problem with the reservation, there is a way to connect it with the order in the external system that generated the error or problem. This is NOT to be confused with `externalRefId` used in Salesforce Core, or any other services. The usage is exclusive to OCI and is not used anywhere else.\n\n## Correlation-ID\n\nIn order to facilitate tracking of operations in OCI, customers must populate a header with the name Correlation-ID, which will be passed through the CDN and sent with the request to OCI. This will help trace requests as they move throughout our service. To be accepted, the correlation-id must be a valid UUIDv2, otherwise, it will be ignored.\n\nWhen a web-request is passed through the CDN, the CDN's x-correlation-id header value (which comes from their ray-id) also comes into play. In this case, the correlation-id provided will be prepended to the CDN's x-correlation-id and both values will be passed through, separated by a comma.\n\nSome services use a header X-Correlation-ID. In the case of OCI, if this header is used, it is overwritten by the CDN with a new value and the initial purpose of the header is defeated. Use the Correlation-ID instead for a consistent result.",
|
|
5
6
|
"version": "1.1.23",
|
|
6
7
|
"x-api-type": "Admin",
|
|
7
8
|
"x-api-family": "Inventory"
|
|
@@ -19,17 +20,21 @@
|
|
|
19
20
|
"paths": {
|
|
20
21
|
"/organizations/{organizationId}/reservation-documents/{reservationId}": {
|
|
21
22
|
"put": {
|
|
23
|
+
"summary": "Create or update reservations for a number of location groups, locations, or both. If any of the location groups or locations provided in the request are invalid, nothing is processed.",
|
|
24
|
+
"description": "Creates or updates a reservation document for the specified organization and reservation ID.",
|
|
22
25
|
"operationId": "createReservations",
|
|
23
26
|
"parameters": [
|
|
24
27
|
{
|
|
25
28
|
"name": "organizationId",
|
|
26
29
|
"in": "path",
|
|
30
|
+
"description": "An identifier for the organization the request is being made by",
|
|
27
31
|
"required": true,
|
|
28
32
|
"style": "simple",
|
|
29
33
|
"explode": false,
|
|
30
34
|
"schema": {
|
|
31
35
|
"$ref": "#/components/schemas/OrganizationId"
|
|
32
|
-
}
|
|
36
|
+
},
|
|
37
|
+
"example": "f_ecom_zzxy_prd"
|
|
33
38
|
},
|
|
34
39
|
{
|
|
35
40
|
"name": "reservationId",
|
|
@@ -39,6 +44,7 @@
|
|
|
39
44
|
"explode": false,
|
|
40
45
|
"schema": {
|
|
41
46
|
"type": "string",
|
|
47
|
+
"example": "12345-23456-3456-4567-5678",
|
|
42
48
|
"maxLength": 36,
|
|
43
49
|
"pattern": "^[0-9a-fA-F\\-]{36}$"
|
|
44
50
|
}
|
|
@@ -49,6 +55,23 @@
|
|
|
49
55
|
"application/json": {
|
|
50
56
|
"schema": {
|
|
51
57
|
"$ref": "#/components/schemas/PlaceReservationRequest"
|
|
58
|
+
},
|
|
59
|
+
"examples": {
|
|
60
|
+
"placeReservationRequestBodyLocation": {
|
|
61
|
+
"$ref": "#/components/examples/placeReservationRequestBodyLocation"
|
|
62
|
+
},
|
|
63
|
+
"placeReservationRequestBodyLocationAllOrNothing": {
|
|
64
|
+
"$ref": "#/components/examples/placeReservationRequestBodyLocationAllOrNothing"
|
|
65
|
+
},
|
|
66
|
+
"placeReservationRequestBodyGroups": {
|
|
67
|
+
"$ref": "#/components/examples/placeReservationRequestBodyGroups"
|
|
68
|
+
},
|
|
69
|
+
"placeReservationRequestBodyLocationAndGroup": {
|
|
70
|
+
"$ref": "#/components/examples/placeReservationRequestBodyLocationAndGroup"
|
|
71
|
+
},
|
|
72
|
+
"placeReservationAgainstATFBody": {
|
|
73
|
+
"$ref": "#/components/examples/placeReservationAgainstATFBody"
|
|
74
|
+
}
|
|
52
75
|
}
|
|
53
76
|
}
|
|
54
77
|
},
|
|
@@ -59,14 +82,17 @@
|
|
|
59
82
|
"description": "Successfully received and processed the request. The consumer is responsible for validating the returned data to ensure that the specified quantity was reserved as requested.",
|
|
60
83
|
"headers": {
|
|
61
84
|
"Location": {
|
|
85
|
+
"description": "URI used to retrieve the recorded reservation document.",
|
|
62
86
|
"style": "simple",
|
|
63
87
|
"explode": false,
|
|
64
88
|
"schema": {
|
|
65
89
|
"type": "string",
|
|
90
|
+
"example": "/organizations/org123/reservation-documents/2345-23456-3456-4567-5678",
|
|
66
91
|
"maxLength": 255
|
|
67
92
|
}
|
|
68
93
|
},
|
|
69
94
|
"X-RateLimit-Limit": {
|
|
95
|
+
"description": "The maximum number of requests permitted per minute.",
|
|
70
96
|
"style": "simple",
|
|
71
97
|
"explode": false,
|
|
72
98
|
"schema": {
|
|
@@ -74,6 +100,7 @@
|
|
|
74
100
|
}
|
|
75
101
|
},
|
|
76
102
|
"X-RateLimit-Remaining": {
|
|
103
|
+
"description": "The number of requests remaining in the current rate limit window.",
|
|
77
104
|
"style": "simple",
|
|
78
105
|
"explode": false,
|
|
79
106
|
"schema": {
|
|
@@ -81,6 +108,7 @@
|
|
|
81
108
|
}
|
|
82
109
|
},
|
|
83
110
|
"X-RateLimit-Reset": {
|
|
111
|
+
"description": "The time at which the current rate limit window resets in UTC epoch seconds.",
|
|
84
112
|
"style": "simple",
|
|
85
113
|
"explode": false,
|
|
86
114
|
"schema": {
|
|
@@ -92,6 +120,32 @@
|
|
|
92
120
|
"application/json": {
|
|
93
121
|
"schema": {
|
|
94
122
|
"$ref": "#/components/schemas/PlaceReservationResponseBody"
|
|
123
|
+
},
|
|
124
|
+
"examples": {
|
|
125
|
+
"reservationSuccessExample": {
|
|
126
|
+
"$ref": "#/components/examples/reservationSuccessExample"
|
|
127
|
+
},
|
|
128
|
+
"placeReservationResponseBody": {
|
|
129
|
+
"$ref": "#/components/examples/placeReservationResponseBody"
|
|
130
|
+
},
|
|
131
|
+
"reservationFail": {
|
|
132
|
+
"$ref": "#/components/examples/reservationFail"
|
|
133
|
+
},
|
|
134
|
+
"reservationPartialQtySuccess": {
|
|
135
|
+
"$ref": "#/components/examples/reservationPartialQtySuccess"
|
|
136
|
+
},
|
|
137
|
+
"reservationPartialItemSuccess": {
|
|
138
|
+
"$ref": "#/components/examples/reservationPartialItemSuccess"
|
|
139
|
+
},
|
|
140
|
+
"reservationPartialNoItemSuccess": {
|
|
141
|
+
"$ref": "#/components/examples/reservationPartialNoItemSuccess"
|
|
142
|
+
},
|
|
143
|
+
"reservationNonPartialSomeItemSuccessSomeFail": {
|
|
144
|
+
"$ref": "#/components/examples/reservationNonPartialSomeItemSuccessSomeFail"
|
|
145
|
+
},
|
|
146
|
+
"reservationNonPartialAllItemsFail": {
|
|
147
|
+
"$ref": "#/components/examples/reservationNonPartialAllItemsFail"
|
|
148
|
+
}
|
|
95
149
|
}
|
|
96
150
|
}
|
|
97
151
|
}
|
|
@@ -100,6 +154,7 @@
|
|
|
100
154
|
"description": "Invalid request.",
|
|
101
155
|
"headers": {
|
|
102
156
|
"X-RateLimit-Limit": {
|
|
157
|
+
"description": "The maximum number of requests permitted per minute.",
|
|
103
158
|
"style": "simple",
|
|
104
159
|
"explode": false,
|
|
105
160
|
"schema": {
|
|
@@ -107,6 +162,7 @@
|
|
|
107
162
|
}
|
|
108
163
|
},
|
|
109
164
|
"X-RateLimit-Remaining": {
|
|
165
|
+
"description": "The number of requests remaining in the current rate limit window.",
|
|
110
166
|
"style": "simple",
|
|
111
167
|
"explode": false,
|
|
112
168
|
"schema": {
|
|
@@ -114,6 +170,7 @@
|
|
|
114
170
|
}
|
|
115
171
|
},
|
|
116
172
|
"X-RateLimit-Reset": {
|
|
173
|
+
"description": "The time at which the current rate limit window resets in UTC epoch seconds.",
|
|
117
174
|
"style": "simple",
|
|
118
175
|
"explode": false,
|
|
119
176
|
"schema": {
|
|
@@ -125,6 +182,17 @@
|
|
|
125
182
|
"application/problem+json": {
|
|
126
183
|
"schema": {
|
|
127
184
|
"$ref": "#/components/schemas/InvalidRequestLocOrGroupDoesNotExist"
|
|
185
|
+
},
|
|
186
|
+
"examples": {
|
|
187
|
+
"locationGroupNotFound": {
|
|
188
|
+
"$ref": "#/components/examples/LocationGroupNotFound"
|
|
189
|
+
},
|
|
190
|
+
"locationIdNotFound": {
|
|
191
|
+
"$ref": "#/components/examples/LocationIdNotFound"
|
|
192
|
+
},
|
|
193
|
+
"noLocationOrGroupsNotProvided": {
|
|
194
|
+
"$ref": "#/components/examples/NoLocationOrGroupsNotProvided"
|
|
195
|
+
}
|
|
128
196
|
}
|
|
129
197
|
}
|
|
130
198
|
}
|
|
@@ -135,6 +203,11 @@
|
|
|
135
203
|
"application/problem+json": {
|
|
136
204
|
"schema": {
|
|
137
205
|
"$ref": "#/components/schemas/InventoryResponseErrorSchema"
|
|
206
|
+
},
|
|
207
|
+
"examples": {
|
|
208
|
+
"TenantNotProvisioned": {
|
|
209
|
+
"$ref": "#/components/examples/TenantNotProvisioned"
|
|
210
|
+
}
|
|
138
211
|
}
|
|
139
212
|
}
|
|
140
213
|
}
|
|
@@ -143,6 +216,7 @@
|
|
|
143
216
|
"description": "A reservation with the specified ID is in an invalid state.",
|
|
144
217
|
"headers": {
|
|
145
218
|
"X-RateLimit-Limit": {
|
|
219
|
+
"description": "The maximum number of requests permitted per minute.",
|
|
146
220
|
"style": "simple",
|
|
147
221
|
"explode": false,
|
|
148
222
|
"schema": {
|
|
@@ -150,6 +224,7 @@
|
|
|
150
224
|
}
|
|
151
225
|
},
|
|
152
226
|
"X-RateLimit-Remaining": {
|
|
227
|
+
"description": "The number of requests remaining in the current rate limit window.",
|
|
153
228
|
"style": "simple",
|
|
154
229
|
"explode": false,
|
|
155
230
|
"schema": {
|
|
@@ -157,6 +232,7 @@
|
|
|
157
232
|
}
|
|
158
233
|
},
|
|
159
234
|
"X-RateLimit-Reset": {
|
|
235
|
+
"description": "The time at which the current rate limit window resets in UTC epoch seconds.",
|
|
160
236
|
"style": "simple",
|
|
161
237
|
"explode": false,
|
|
162
238
|
"schema": {
|
|
@@ -168,6 +244,17 @@
|
|
|
168
244
|
"application/problem+json": {
|
|
169
245
|
"schema": {
|
|
170
246
|
"$ref": "#/components/schemas/ReservationInvalidState"
|
|
247
|
+
},
|
|
248
|
+
"examples": {
|
|
249
|
+
"conflictExample": {
|
|
250
|
+
"summary": "Example conflict response",
|
|
251
|
+
"value": {
|
|
252
|
+
"errorCode": "ReservationInvalidState",
|
|
253
|
+
"message": "Reservation is in a CLOSED state.",
|
|
254
|
+
"type": "about:blank",
|
|
255
|
+
"parameterName": "sku"
|
|
256
|
+
}
|
|
257
|
+
}
|
|
171
258
|
}
|
|
172
259
|
}
|
|
173
260
|
}
|
|
@@ -186,18 +273,31 @@
|
|
|
186
273
|
"content": {
|
|
187
274
|
"application/problem+json": {
|
|
188
275
|
"schema": {
|
|
276
|
+
"example": {
|
|
277
|
+
"type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/too-many-requests",
|
|
278
|
+
"title": "Too Many Requests",
|
|
279
|
+
"detail": "You have performed too many requests in a short period of time."
|
|
280
|
+
},
|
|
189
281
|
"properties": {
|
|
190
282
|
"title": {
|
|
191
|
-
"type": "string"
|
|
283
|
+
"type": "string",
|
|
284
|
+
"description": "A short, human-readable summary of the problem\ntype. It will not change from occurrence to occurrence of the\nproblem, except for purposes of localization.\n",
|
|
285
|
+
"example": "You do not have enough credit."
|
|
192
286
|
},
|
|
193
287
|
"type": {
|
|
194
|
-
"type": "string"
|
|
288
|
+
"type": "string",
|
|
289
|
+
"description": "A URI reference [RFC3986] that identifies the\nproblem type. This specification encourages that, when\ndereferenced, it provide human-readable documentation for the\nproblem type (e.g., using HTML [W3C.REC-html5-20141028]). When\nthis member is not present, its value is assumed to be\n\"about:blank\". It accepts relative URIs; this means\nthat they must be resolved relative to the document's base URI, as\nper [RFC3986], Section 5.\n",
|
|
290
|
+
"example": "https://example.com/probs/out-of-credit"
|
|
195
291
|
},
|
|
196
292
|
"detail": {
|
|
197
|
-
"type": "string"
|
|
293
|
+
"type": "string",
|
|
294
|
+
"description": "A human-readable explanation specific to this\noccurrence of the problem.\n",
|
|
295
|
+
"example": "Your current balance is 30, but that costs 50."
|
|
198
296
|
},
|
|
199
297
|
"instance": {
|
|
200
|
-
"type": "string"
|
|
298
|
+
"type": "string",
|
|
299
|
+
"description": "A URI reference that identifies the specific\noccurrence of the problem. It may or may not yield further\ninformation if dereferenced. It accepts relative URIs; this means\nthat they must be resolved relative to the document's base URI, as\nper [RFC3986], Section 5.\n",
|
|
300
|
+
"example": "/account/12345/msgs/abc"
|
|
201
301
|
}
|
|
202
302
|
},
|
|
203
303
|
"required": [
|
|
@@ -218,17 +318,21 @@
|
|
|
218
318
|
]
|
|
219
319
|
},
|
|
220
320
|
"patch": {
|
|
321
|
+
"summary": "Cancel a reservation or add items to an existing reservation document. This endpoint references the reservation document directly, marking it as cancelled or adding the items, and then adjusting the reservation and inventory counts based on the details of the reservation document.",
|
|
322
|
+
"description": "Cancels or updates an existing reservation document by ID.",
|
|
221
323
|
"operationId": "updateReservation",
|
|
222
324
|
"parameters": [
|
|
223
325
|
{
|
|
224
326
|
"name": "organizationId",
|
|
225
327
|
"in": "path",
|
|
328
|
+
"description": "An identifier for the organization the request is being made by",
|
|
226
329
|
"required": true,
|
|
227
330
|
"style": "simple",
|
|
228
331
|
"explode": false,
|
|
229
332
|
"schema": {
|
|
230
333
|
"$ref": "#/components/schemas/OrganizationId"
|
|
231
|
-
}
|
|
334
|
+
},
|
|
335
|
+
"example": "f_ecom_zzxy_prd"
|
|
232
336
|
},
|
|
233
337
|
{
|
|
234
338
|
"name": "reservationId",
|
|
@@ -238,6 +342,7 @@
|
|
|
238
342
|
"explode": false,
|
|
239
343
|
"schema": {
|
|
240
344
|
"type": "string",
|
|
345
|
+
"example": "12345-23456-3456-4567-5678",
|
|
241
346
|
"maxLength": 36,
|
|
242
347
|
"pattern": "^[0-9a-fA-F\\-]{36}$"
|
|
243
348
|
}
|
|
@@ -248,6 +353,14 @@
|
|
|
248
353
|
"application/json": {
|
|
249
354
|
"schema": {
|
|
250
355
|
"$ref": "#/components/schemas/UpdateReservationRequestBody"
|
|
356
|
+
},
|
|
357
|
+
"examples": {
|
|
358
|
+
"cancelReservation": {
|
|
359
|
+
"$ref": "#/components/examples/CancelReservation"
|
|
360
|
+
},
|
|
361
|
+
"updateReservation": {
|
|
362
|
+
"$ref": "#/components/examples/UpdateReservation"
|
|
363
|
+
}
|
|
251
364
|
}
|
|
252
365
|
}
|
|
253
366
|
},
|
|
@@ -258,6 +371,7 @@
|
|
|
258
371
|
"description": "Reservation update request was received and processed successfully.",
|
|
259
372
|
"headers": {
|
|
260
373
|
"X-RateLimit-Limit": {
|
|
374
|
+
"description": "The maximum number of requests permitted per minute.",
|
|
261
375
|
"style": "simple",
|
|
262
376
|
"explode": false,
|
|
263
377
|
"schema": {
|
|
@@ -265,6 +379,7 @@
|
|
|
265
379
|
}
|
|
266
380
|
},
|
|
267
381
|
"X-RateLimit-Remaining": {
|
|
382
|
+
"description": "The number of requests remaining in the current rate limit window.",
|
|
268
383
|
"style": "simple",
|
|
269
384
|
"explode": false,
|
|
270
385
|
"schema": {
|
|
@@ -272,6 +387,7 @@
|
|
|
272
387
|
}
|
|
273
388
|
},
|
|
274
389
|
"X-RateLimit-Reset": {
|
|
390
|
+
"description": "The time at which the current rate limit window resets in UTC epoch seconds.",
|
|
275
391
|
"style": "simple",
|
|
276
392
|
"explode": false,
|
|
277
393
|
"schema": {
|
|
@@ -283,6 +399,20 @@
|
|
|
283
399
|
"application/json": {
|
|
284
400
|
"schema": {
|
|
285
401
|
"$ref": "#/components/schemas/UpdateReservationResponse"
|
|
402
|
+
},
|
|
403
|
+
"examples": {
|
|
404
|
+
"successfulReservationUpdateResponse": {
|
|
405
|
+
"$ref": "#/components/examples/SuccessfulReservationUpdateResponse"
|
|
406
|
+
},
|
|
407
|
+
"partialQuantitySuccessfulReservationUpdateResponse": {
|
|
408
|
+
"$ref": "#/components/examples/PartialQuantitySuccessfulReservationUpdateResponse"
|
|
409
|
+
},
|
|
410
|
+
"partialAllItemsFailedReservationUpdateResponse": {
|
|
411
|
+
"$ref": "#/components/examples/PartialAllItemsFailedReservationUpdateResponse"
|
|
412
|
+
},
|
|
413
|
+
"failedUpdateReservationUpdateResponse": {
|
|
414
|
+
"$ref": "#/components/examples/FailedUpdateReservationUpdateResponse"
|
|
415
|
+
}
|
|
286
416
|
}
|
|
287
417
|
}
|
|
288
418
|
}
|
|
@@ -291,6 +421,7 @@
|
|
|
291
421
|
"description": "Reservation marked as cancelled. Inventory levels updated asynchronously.",
|
|
292
422
|
"headers": {
|
|
293
423
|
"X-RateLimit-Limit": {
|
|
424
|
+
"description": "The maximum number of requests permitted per minute.",
|
|
294
425
|
"style": "simple",
|
|
295
426
|
"explode": false,
|
|
296
427
|
"schema": {
|
|
@@ -298,6 +429,7 @@
|
|
|
298
429
|
}
|
|
299
430
|
},
|
|
300
431
|
"X-RateLimit-Remaining": {
|
|
432
|
+
"description": "The number of requests remaining in the current rate limit window.",
|
|
301
433
|
"style": "simple",
|
|
302
434
|
"explode": false,
|
|
303
435
|
"schema": {
|
|
@@ -305,6 +437,7 @@
|
|
|
305
437
|
}
|
|
306
438
|
},
|
|
307
439
|
"X-RateLimit-Reset": {
|
|
440
|
+
"description": "The time at which the current rate limit window resets in UTC epoch seconds.",
|
|
308
441
|
"style": "simple",
|
|
309
442
|
"explode": false,
|
|
310
443
|
"schema": {
|
|
@@ -317,6 +450,7 @@
|
|
|
317
450
|
"description": "Reservation cancelled successfully.",
|
|
318
451
|
"headers": {
|
|
319
452
|
"X-RateLimit-Limit": {
|
|
453
|
+
"description": "The maximum number of requests permitted per minute.",
|
|
320
454
|
"style": "simple",
|
|
321
455
|
"explode": false,
|
|
322
456
|
"schema": {
|
|
@@ -324,6 +458,7 @@
|
|
|
324
458
|
}
|
|
325
459
|
},
|
|
326
460
|
"X-RateLimit-Remaining": {
|
|
461
|
+
"description": "The number of requests remaining in the current rate limit window.",
|
|
327
462
|
"style": "simple",
|
|
328
463
|
"explode": false,
|
|
329
464
|
"schema": {
|
|
@@ -331,6 +466,7 @@
|
|
|
331
466
|
}
|
|
332
467
|
},
|
|
333
468
|
"X-RateLimit-Reset": {
|
|
469
|
+
"description": "The time at which the current rate limit window resets in UTC epoch seconds.",
|
|
334
470
|
"style": "simple",
|
|
335
471
|
"explode": false,
|
|
336
472
|
"schema": {
|
|
@@ -343,6 +479,7 @@
|
|
|
343
479
|
"description": "Invalid request.",
|
|
344
480
|
"headers": {
|
|
345
481
|
"X-RateLimit-Limit": {
|
|
482
|
+
"description": "The maximum number of requests permitted per minute.",
|
|
346
483
|
"style": "simple",
|
|
347
484
|
"explode": false,
|
|
348
485
|
"schema": {
|
|
@@ -350,6 +487,7 @@
|
|
|
350
487
|
}
|
|
351
488
|
},
|
|
352
489
|
"X-RateLimit-Remaining": {
|
|
490
|
+
"description": "The number of requests remaining in the current rate limit window.",
|
|
353
491
|
"style": "simple",
|
|
354
492
|
"explode": false,
|
|
355
493
|
"schema": {
|
|
@@ -357,6 +495,7 @@
|
|
|
357
495
|
}
|
|
358
496
|
},
|
|
359
497
|
"X-RateLimit-Reset": {
|
|
498
|
+
"description": "The time at which the current rate limit window resets in UTC epoch seconds.",
|
|
360
499
|
"style": "simple",
|
|
361
500
|
"explode": false,
|
|
362
501
|
"schema": {
|
|
@@ -368,6 +507,11 @@
|
|
|
368
507
|
"application/problem+json": {
|
|
369
508
|
"schema": {
|
|
370
509
|
"$ref": "#/components/schemas/InventoryResponseErrorSchema"
|
|
510
|
+
},
|
|
511
|
+
"examples": {
|
|
512
|
+
"InvalidRequestParameter": {
|
|
513
|
+
"$ref": "#/components/examples/InvalidRequestParameter"
|
|
514
|
+
}
|
|
371
515
|
}
|
|
372
516
|
}
|
|
373
517
|
}
|
|
@@ -378,6 +522,11 @@
|
|
|
378
522
|
"application/problem+json": {
|
|
379
523
|
"schema": {
|
|
380
524
|
"$ref": "#/components/schemas/InventoryResponseErrorSchema"
|
|
525
|
+
},
|
|
526
|
+
"examples": {
|
|
527
|
+
"TenantNotProvisioned": {
|
|
528
|
+
"$ref": "#/components/examples/TenantNotProvisioned"
|
|
529
|
+
}
|
|
381
530
|
}
|
|
382
531
|
}
|
|
383
532
|
}
|
|
@@ -386,6 +535,7 @@
|
|
|
386
535
|
"description": "Entity not found.",
|
|
387
536
|
"headers": {
|
|
388
537
|
"X-RateLimit-Limit": {
|
|
538
|
+
"description": "The maximum number of requests permitted per minute.",
|
|
389
539
|
"style": "simple",
|
|
390
540
|
"explode": false,
|
|
391
541
|
"schema": {
|
|
@@ -393,6 +543,7 @@
|
|
|
393
543
|
}
|
|
394
544
|
},
|
|
395
545
|
"X-RateLimit-Remaining": {
|
|
546
|
+
"description": "The number of requests remaining in the current rate limit window.",
|
|
396
547
|
"style": "simple",
|
|
397
548
|
"explode": false,
|
|
398
549
|
"schema": {
|
|
@@ -400,6 +551,7 @@
|
|
|
400
551
|
}
|
|
401
552
|
},
|
|
402
553
|
"X-RateLimit-Reset": {
|
|
554
|
+
"description": "The time at which the current rate limit window resets in UTC epoch seconds.",
|
|
403
555
|
"style": "simple",
|
|
404
556
|
"explode": false,
|
|
405
557
|
"schema": {
|
|
@@ -411,6 +563,11 @@
|
|
|
411
563
|
"application/problem+json": {
|
|
412
564
|
"schema": {
|
|
413
565
|
"$ref": "#/components/schemas/InventoryResponseErrorSchema"
|
|
566
|
+
},
|
|
567
|
+
"examples": {
|
|
568
|
+
"EntityNotFound": {
|
|
569
|
+
"$ref": "#/components/examples/EntityNotFound"
|
|
570
|
+
}
|
|
414
571
|
}
|
|
415
572
|
}
|
|
416
573
|
}
|
|
@@ -419,6 +576,7 @@
|
|
|
419
576
|
"description": "A reservation with the specified ID is in an invalid state.",
|
|
420
577
|
"headers": {
|
|
421
578
|
"X-RateLimit-Limit": {
|
|
579
|
+
"description": "The maximum number of requests permitted per minute.",
|
|
422
580
|
"style": "simple",
|
|
423
581
|
"explode": false,
|
|
424
582
|
"schema": {
|
|
@@ -426,6 +584,7 @@
|
|
|
426
584
|
}
|
|
427
585
|
},
|
|
428
586
|
"X-RateLimit-Remaining": {
|
|
587
|
+
"description": "The number of requests remaining in the current rate limit window.",
|
|
429
588
|
"style": "simple",
|
|
430
589
|
"explode": false,
|
|
431
590
|
"schema": {
|
|
@@ -433,6 +592,7 @@
|
|
|
433
592
|
}
|
|
434
593
|
},
|
|
435
594
|
"X-RateLimit-Reset": {
|
|
595
|
+
"description": "The time at which the current rate limit window resets in UTC epoch seconds.",
|
|
436
596
|
"style": "simple",
|
|
437
597
|
"explode": false,
|
|
438
598
|
"schema": {
|
|
@@ -444,6 +604,17 @@
|
|
|
444
604
|
"application/problem+json": {
|
|
445
605
|
"schema": {
|
|
446
606
|
"$ref": "#/components/schemas/InventoryResponseErrorSchema"
|
|
607
|
+
},
|
|
608
|
+
"examples": {
|
|
609
|
+
"conflictExample": {
|
|
610
|
+
"summary": "Invalid reservation state",
|
|
611
|
+
"value": {
|
|
612
|
+
"errorCode": "ReservationInvalidState",
|
|
613
|
+
"message": "Reservation is in a CLOSED state.",
|
|
614
|
+
"type": "about:blank",
|
|
615
|
+
"parameterName": "sku"
|
|
616
|
+
}
|
|
617
|
+
}
|
|
447
618
|
}
|
|
448
619
|
}
|
|
449
620
|
}
|
|
@@ -462,18 +633,31 @@
|
|
|
462
633
|
"content": {
|
|
463
634
|
"application/problem+json": {
|
|
464
635
|
"schema": {
|
|
636
|
+
"example": {
|
|
637
|
+
"type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/too-many-requests",
|
|
638
|
+
"title": "Too Many Requests",
|
|
639
|
+
"detail": "You have performed too many requests in a short period of time."
|
|
640
|
+
},
|
|
465
641
|
"properties": {
|
|
466
642
|
"title": {
|
|
467
|
-
"type": "string"
|
|
643
|
+
"type": "string",
|
|
644
|
+
"description": "A short, human-readable summary of the problem\ntype. It will not change from occurrence to occurrence of the\nproblem, except for purposes of localization.\n",
|
|
645
|
+
"example": "You do not have enough credit."
|
|
468
646
|
},
|
|
469
647
|
"type": {
|
|
470
|
-
"type": "string"
|
|
648
|
+
"type": "string",
|
|
649
|
+
"description": "A URI reference [RFC3986] that identifies the\nproblem type. This specification encourages that, when\ndereferenced, it provide human-readable documentation for the\nproblem type (e.g., using HTML [W3C.REC-html5-20141028]). When\nthis member is not present, its value is assumed to be\n\"about:blank\". It accepts relative URIs; this means\nthat they must be resolved relative to the document's base URI, as\nper [RFC3986], Section 5.\n",
|
|
650
|
+
"example": "https://example.com/probs/out-of-credit"
|
|
471
651
|
},
|
|
472
652
|
"detail": {
|
|
473
|
-
"type": "string"
|
|
653
|
+
"type": "string",
|
|
654
|
+
"description": "A human-readable explanation specific to this\noccurrence of the problem.\n",
|
|
655
|
+
"example": "Your current balance is 30, but that costs 50."
|
|
474
656
|
},
|
|
475
657
|
"instance": {
|
|
476
|
-
"type": "string"
|
|
658
|
+
"type": "string",
|
|
659
|
+
"description": "A URI reference that identifies the specific\noccurrence of the problem. It may or may not yield further\ninformation if dereferenced. It accepts relative URIs; this means\nthat they must be resolved relative to the document's base URI, as\nper [RFC3986], Section 5.\n",
|
|
660
|
+
"example": "/account/12345/msgs/abc"
|
|
477
661
|
}
|
|
478
662
|
},
|
|
479
663
|
"required": [
|
|
@@ -496,17 +680,21 @@
|
|
|
496
680
|
},
|
|
497
681
|
"/organizations/{organizationId}/transfers": {
|
|
498
682
|
"post": {
|
|
683
|
+
"summary": "Move reservation quantities between a group and its locations, or between locations. The system does not support transfers between groups. In the case of All or Nothing movements, only Group to Location movements are allowed.",
|
|
684
|
+
"description": "Moves reservation quantities between a group and its locations, or between locations.",
|
|
499
685
|
"operationId": "moveReservationQuantity",
|
|
500
686
|
"parameters": [
|
|
501
687
|
{
|
|
502
688
|
"name": "organizationId",
|
|
503
689
|
"in": "path",
|
|
690
|
+
"description": "An identifier for the organization the request is being made by",
|
|
504
691
|
"required": true,
|
|
505
692
|
"style": "simple",
|
|
506
693
|
"explode": false,
|
|
507
694
|
"schema": {
|
|
508
695
|
"$ref": "#/components/schemas/OrganizationId"
|
|
509
|
-
}
|
|
696
|
+
},
|
|
697
|
+
"example": "f_ecom_zzxy_prd"
|
|
510
698
|
}
|
|
511
699
|
],
|
|
512
700
|
"requestBody": {
|
|
@@ -514,6 +702,11 @@
|
|
|
514
702
|
"application/json": {
|
|
515
703
|
"schema": {
|
|
516
704
|
"$ref": "#/components/schemas/MoveReservationBatchPostBody"
|
|
705
|
+
},
|
|
706
|
+
"examples": {
|
|
707
|
+
"MoveReservationBatchPostBodyExample": {
|
|
708
|
+
"$ref": "#/components/examples/MoveReservationBatchPostBodyExample"
|
|
709
|
+
}
|
|
517
710
|
}
|
|
518
711
|
}
|
|
519
712
|
},
|
|
@@ -524,6 +717,7 @@
|
|
|
524
717
|
"description": "Batch reservation transfer partially succeeded with errors reported.",
|
|
525
718
|
"headers": {
|
|
526
719
|
"X-RateLimit-Limit": {
|
|
720
|
+
"description": "The maximum number of requests permitted per minute.",
|
|
527
721
|
"style": "simple",
|
|
528
722
|
"explode": false,
|
|
529
723
|
"schema": {
|
|
@@ -531,6 +725,7 @@
|
|
|
531
725
|
}
|
|
532
726
|
},
|
|
533
727
|
"X-RateLimit-Remaining": {
|
|
728
|
+
"description": "The number of requests remaining in the current rate limit window.",
|
|
534
729
|
"style": "simple",
|
|
535
730
|
"explode": false,
|
|
536
731
|
"schema": {
|
|
@@ -538,6 +733,7 @@
|
|
|
538
733
|
}
|
|
539
734
|
},
|
|
540
735
|
"X-RateLimit-Reset": {
|
|
736
|
+
"description": "The time at which the current rate limit window resets in UTC epoch seconds.",
|
|
541
737
|
"style": "simple",
|
|
542
738
|
"explode": false,
|
|
543
739
|
"schema": {
|
|
@@ -549,6 +745,11 @@
|
|
|
549
745
|
"application/json": {
|
|
550
746
|
"schema": {
|
|
551
747
|
"$ref": "#/components/schemas/MoveReservationErrorsResponse"
|
|
748
|
+
},
|
|
749
|
+
"examples": {
|
|
750
|
+
"MoveReservationErrorsResponseExample": {
|
|
751
|
+
"$ref": "#/components/examples/MoveReservationErrorsResponseExample"
|
|
752
|
+
}
|
|
552
753
|
}
|
|
553
754
|
}
|
|
554
755
|
}
|
|
@@ -557,6 +758,7 @@
|
|
|
557
758
|
"description": "Reservation quantities moved successfully.",
|
|
558
759
|
"headers": {
|
|
559
760
|
"X-RateLimit-Limit": {
|
|
761
|
+
"description": "The maximum number of requests permitted per minute.",
|
|
560
762
|
"style": "simple",
|
|
561
763
|
"explode": false,
|
|
562
764
|
"schema": {
|
|
@@ -564,6 +766,7 @@
|
|
|
564
766
|
}
|
|
565
767
|
},
|
|
566
768
|
"X-RateLimit-Remaining": {
|
|
769
|
+
"description": "The number of requests remaining in the current rate limit window.",
|
|
567
770
|
"style": "simple",
|
|
568
771
|
"explode": false,
|
|
569
772
|
"schema": {
|
|
@@ -571,6 +774,7 @@
|
|
|
571
774
|
}
|
|
572
775
|
},
|
|
573
776
|
"X-RateLimit-Reset": {
|
|
777
|
+
"description": "The time at which the current rate limit window resets in UTC epoch seconds.",
|
|
574
778
|
"style": "simple",
|
|
575
779
|
"explode": false,
|
|
576
780
|
"schema": {
|
|
@@ -583,6 +787,7 @@
|
|
|
583
787
|
"description": "Invalid request.",
|
|
584
788
|
"headers": {
|
|
585
789
|
"X-RateLimit-Limit": {
|
|
790
|
+
"description": "The maximum number of requests permitted per minute.",
|
|
586
791
|
"style": "simple",
|
|
587
792
|
"explode": false,
|
|
588
793
|
"schema": {
|
|
@@ -590,6 +795,7 @@
|
|
|
590
795
|
}
|
|
591
796
|
},
|
|
592
797
|
"X-RateLimit-Remaining": {
|
|
798
|
+
"description": "The number of requests remaining in the current rate limit window.",
|
|
593
799
|
"style": "simple",
|
|
594
800
|
"explode": false,
|
|
595
801
|
"schema": {
|
|
@@ -597,6 +803,7 @@
|
|
|
597
803
|
}
|
|
598
804
|
},
|
|
599
805
|
"X-RateLimit-Reset": {
|
|
806
|
+
"description": "The time at which the current rate limit window resets in UTC epoch seconds.",
|
|
600
807
|
"style": "simple",
|
|
601
808
|
"explode": false,
|
|
602
809
|
"schema": {
|
|
@@ -608,6 +815,26 @@
|
|
|
608
815
|
"application/problem+json": {
|
|
609
816
|
"schema": {
|
|
610
817
|
"$ref": "#/components/schemas/InventoryResponseErrorSchema"
|
|
818
|
+
},
|
|
819
|
+
"examples": {
|
|
820
|
+
"locationNotFound": {
|
|
821
|
+
"$ref": "#/components/examples/LocationIdNotFound"
|
|
822
|
+
},
|
|
823
|
+
"locationGroupNotFound": {
|
|
824
|
+
"$ref": "#/components/examples/LocationGroupNotFound"
|
|
825
|
+
},
|
|
826
|
+
"groupToGroupNotAllowed": {
|
|
827
|
+
"$ref": "#/components/examples/GroupToGroupNotAllowed"
|
|
828
|
+
},
|
|
829
|
+
"locationToLocationNotAllowed": {
|
|
830
|
+
"$ref": "#/components/examples/LocationToLocationNotAllowed"
|
|
831
|
+
},
|
|
832
|
+
"forceReservationLocationToGroupNotAllowed": {
|
|
833
|
+
"$ref": "#/components/examples/ForceReservationLocationToGroupNotAllowed"
|
|
834
|
+
},
|
|
835
|
+
"invalidTransferAllOrNothing": {
|
|
836
|
+
"$ref": "#/components/examples/InvalidTransferAllOrNothing"
|
|
837
|
+
}
|
|
611
838
|
}
|
|
612
839
|
}
|
|
613
840
|
}
|
|
@@ -618,6 +845,11 @@
|
|
|
618
845
|
"application/problem+json": {
|
|
619
846
|
"schema": {
|
|
620
847
|
"$ref": "#/components/schemas/InventoryResponseErrorSchema"
|
|
848
|
+
},
|
|
849
|
+
"examples": {
|
|
850
|
+
"TenantNotProvisioned": {
|
|
851
|
+
"$ref": "#/components/examples/TenantNotProvisioned"
|
|
852
|
+
}
|
|
621
853
|
}
|
|
622
854
|
}
|
|
623
855
|
}
|
|
@@ -636,18 +868,31 @@
|
|
|
636
868
|
"content": {
|
|
637
869
|
"application/problem+json": {
|
|
638
870
|
"schema": {
|
|
871
|
+
"example": {
|
|
872
|
+
"type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/too-many-requests",
|
|
873
|
+
"title": "Too Many Requests",
|
|
874
|
+
"detail": "You have performed too many requests in a short period of time."
|
|
875
|
+
},
|
|
639
876
|
"properties": {
|
|
640
877
|
"title": {
|
|
641
|
-
"type": "string"
|
|
878
|
+
"type": "string",
|
|
879
|
+
"description": "A short, human-readable summary of the problem\ntype. It will not change from occurrence to occurrence of the\nproblem, except for purposes of localization.\n",
|
|
880
|
+
"example": "You do not have enough credit."
|
|
642
881
|
},
|
|
643
882
|
"type": {
|
|
644
|
-
"type": "string"
|
|
883
|
+
"type": "string",
|
|
884
|
+
"description": "A URI reference [RFC3986] that identifies the\nproblem type. This specification encourages that, when\ndereferenced, it provide human-readable documentation for the\nproblem type (e.g., using HTML [W3C.REC-html5-20141028]). When\nthis member is not present, its value is assumed to be\n\"about:blank\". It accepts relative URIs; this means\nthat they must be resolved relative to the document's base URI, as\nper [RFC3986], Section 5.\n",
|
|
885
|
+
"example": "https://example.com/probs/out-of-credit"
|
|
645
886
|
},
|
|
646
887
|
"detail": {
|
|
647
|
-
"type": "string"
|
|
888
|
+
"type": "string",
|
|
889
|
+
"description": "A human-readable explanation specific to this\noccurrence of the problem.\n",
|
|
890
|
+
"example": "Your current balance is 30, but that costs 50."
|
|
648
891
|
},
|
|
649
892
|
"instance": {
|
|
650
|
-
"type": "string"
|
|
893
|
+
"type": "string",
|
|
894
|
+
"description": "A URI reference that identifies the specific\noccurrence of the problem. It may or may not yield further\ninformation if dereferenced. It accepts relative URIs; this means\nthat they must be resolved relative to the document's base URI, as\nper [RFC3986], Section 5.\n",
|
|
895
|
+
"example": "/account/12345/msgs/abc"
|
|
651
896
|
}
|
|
652
897
|
},
|
|
653
898
|
"required": [
|
|
@@ -670,17 +915,21 @@
|
|
|
670
915
|
},
|
|
671
916
|
"/organizations/{organizationId}/releases": {
|
|
672
917
|
"post": {
|
|
918
|
+
"summary": "Remove reservations for canceled orders or carts. When using the unreserve/release endpoint, the reservation counts are removed from the location or group using the details provided in the call instead of the details in a reservation document (which isn't provided as part of the call to this endpoint).",
|
|
919
|
+
"description": "Removes reservations for canceled orders or carts.",
|
|
673
920
|
"operationId": "unreserveReservations",
|
|
674
921
|
"parameters": [
|
|
675
922
|
{
|
|
676
923
|
"name": "organizationId",
|
|
677
924
|
"in": "path",
|
|
925
|
+
"description": "An identifier for the organization the request is being made by",
|
|
678
926
|
"required": true,
|
|
679
927
|
"style": "simple",
|
|
680
928
|
"explode": false,
|
|
681
929
|
"schema": {
|
|
682
930
|
"$ref": "#/components/schemas/OrganizationId"
|
|
683
|
-
}
|
|
931
|
+
},
|
|
932
|
+
"example": "f_ecom_zzxy_prd"
|
|
684
933
|
}
|
|
685
934
|
],
|
|
686
935
|
"requestBody": {
|
|
@@ -688,6 +937,57 @@
|
|
|
688
937
|
"application/json": {
|
|
689
938
|
"schema": {
|
|
690
939
|
"$ref": "#/components/schemas/UnreserveRequestBody"
|
|
940
|
+
},
|
|
941
|
+
"examples": {
|
|
942
|
+
"RequestBodyGroupExample": {
|
|
943
|
+
"summary": "Example request body for unreserving by group",
|
|
944
|
+
"value": {
|
|
945
|
+
"records": [
|
|
946
|
+
{
|
|
947
|
+
"id": "82251928-8863-488e-840b-2aebd10b57ba",
|
|
948
|
+
"externalRefId": "7282822-9823-aaa",
|
|
949
|
+
"group": "UnitedStates",
|
|
950
|
+
"sku": "sku1234",
|
|
951
|
+
"quantity": 1200.35
|
|
952
|
+
}
|
|
953
|
+
]
|
|
954
|
+
}
|
|
955
|
+
},
|
|
956
|
+
"RequestBodyLocationExample": {
|
|
957
|
+
"summary": "Example request body for unreserving by location",
|
|
958
|
+
"value": {
|
|
959
|
+
"records": [
|
|
960
|
+
{
|
|
961
|
+
"id": "82251928-8863-488e-840b-2aebd10b57ba",
|
|
962
|
+
"externalRefId": "7282822-9823-aaa",
|
|
963
|
+
"location": "warehouse5",
|
|
964
|
+
"sku": "sku1234",
|
|
965
|
+
"quantity": 1200.35
|
|
966
|
+
}
|
|
967
|
+
]
|
|
968
|
+
}
|
|
969
|
+
},
|
|
970
|
+
"RequestBodyGroupAndLocationExample": {
|
|
971
|
+
"summary": "Example request body for unreserving by group and location",
|
|
972
|
+
"value": {
|
|
973
|
+
"records": [
|
|
974
|
+
{
|
|
975
|
+
"id": "82251928-8863-488e-840b-2aebd10b57ba",
|
|
976
|
+
"externalRefId": "7282822-9823-aaa",
|
|
977
|
+
"location": "warehouse5",
|
|
978
|
+
"sku": "sku1234",
|
|
979
|
+
"quantity": 1200.35
|
|
980
|
+
},
|
|
981
|
+
{
|
|
982
|
+
"id": "82251928-8863-488e-840b-2aebd10b6666",
|
|
983
|
+
"externalRefId": "7282822-9823-bbb",
|
|
984
|
+
"group": "UnitedStates",
|
|
985
|
+
"sku": "sku5678",
|
|
986
|
+
"quantity": 1.35
|
|
987
|
+
}
|
|
988
|
+
]
|
|
989
|
+
}
|
|
990
|
+
}
|
|
691
991
|
}
|
|
692
992
|
}
|
|
693
993
|
},
|
|
@@ -698,6 +998,7 @@
|
|
|
698
998
|
"description": "The request was received and processed successfully. The consumer is responsible for validating the returned data to ensure that the specified quantity was released as requested.",
|
|
699
999
|
"headers": {
|
|
700
1000
|
"X-RateLimit-Limit": {
|
|
1001
|
+
"description": "The maximum number of requests permitted per minute.",
|
|
701
1002
|
"style": "simple",
|
|
702
1003
|
"explode": false,
|
|
703
1004
|
"schema": {
|
|
@@ -705,6 +1006,7 @@
|
|
|
705
1006
|
}
|
|
706
1007
|
},
|
|
707
1008
|
"X-RateLimit-Remaining": {
|
|
1009
|
+
"description": "The number of requests remaining in the current rate limit window.",
|
|
708
1010
|
"style": "simple",
|
|
709
1011
|
"explode": false,
|
|
710
1012
|
"schema": {
|
|
@@ -712,6 +1014,7 @@
|
|
|
712
1014
|
}
|
|
713
1015
|
},
|
|
714
1016
|
"X-RateLimit-Reset": {
|
|
1017
|
+
"description": "The time at which the current rate limit window resets in UTC epoch seconds.",
|
|
715
1018
|
"style": "simple",
|
|
716
1019
|
"explode": false,
|
|
717
1020
|
"schema": {
|
|
@@ -723,6 +1026,73 @@
|
|
|
723
1026
|
"application/json": {
|
|
724
1027
|
"schema": {
|
|
725
1028
|
"$ref": "#/components/schemas/UnreserveResponseBody"
|
|
1029
|
+
},
|
|
1030
|
+
"examples": {
|
|
1031
|
+
"responseBodyGroup": {
|
|
1032
|
+
"summary": "Example response body for group-level unreserve errors",
|
|
1033
|
+
"value": {
|
|
1034
|
+
"errors": [
|
|
1035
|
+
{
|
|
1036
|
+
"details": {
|
|
1037
|
+
"id": "82251928-8863-488e-840b-2aebd10b6666",
|
|
1038
|
+
"externalRefId": "7282822-9823-bbb",
|
|
1039
|
+
"group": "UnitedStates",
|
|
1040
|
+
"sku": "sku5678",
|
|
1041
|
+
"quantity": 0
|
|
1042
|
+
},
|
|
1043
|
+
"message": "Insufficient Quantity",
|
|
1044
|
+
"errorCode": "InsufficientQuantity"
|
|
1045
|
+
}
|
|
1046
|
+
]
|
|
1047
|
+
}
|
|
1048
|
+
},
|
|
1049
|
+
"responseBodyLocation": {
|
|
1050
|
+
"summary": "Example response body for location-level unreserve errors",
|
|
1051
|
+
"value": {
|
|
1052
|
+
"errors": [
|
|
1053
|
+
{
|
|
1054
|
+
"details": {
|
|
1055
|
+
"id": "82251928-8863-488e-840b-2aebd10b57ba",
|
|
1056
|
+
"externalRefId": "7282822-9823-aaa",
|
|
1057
|
+
"location": "warehouse5",
|
|
1058
|
+
"sku": "sku1234",
|
|
1059
|
+
"quantity": 0
|
|
1060
|
+
},
|
|
1061
|
+
"message": "Insufficient Quantity",
|
|
1062
|
+
"errorCode": "InsufficientQuantity"
|
|
1063
|
+
}
|
|
1064
|
+
]
|
|
1065
|
+
}
|
|
1066
|
+
},
|
|
1067
|
+
"responseBodyGroupAndLocation": {
|
|
1068
|
+
"summary": "Example response body for group and location-level unreserve errors",
|
|
1069
|
+
"value": {
|
|
1070
|
+
"errors": [
|
|
1071
|
+
{
|
|
1072
|
+
"details": {
|
|
1073
|
+
"id": "82251928-8863-488e-840b-2aebd10b6666",
|
|
1074
|
+
"externalRefId": "7282822-9823-bbb",
|
|
1075
|
+
"group": "UnitedStates",
|
|
1076
|
+
"sku": "sku5678",
|
|
1077
|
+
"quantity": 0
|
|
1078
|
+
},
|
|
1079
|
+
"message": "Insufficient Quantity",
|
|
1080
|
+
"errorCode": "InsufficientQuantity"
|
|
1081
|
+
},
|
|
1082
|
+
{
|
|
1083
|
+
"details": {
|
|
1084
|
+
"id": "82251928-8863-488e-840b-2aebd10b57ba",
|
|
1085
|
+
"externalRefId": "7282822-9823-aaa",
|
|
1086
|
+
"location": "warehouse5",
|
|
1087
|
+
"sku": "sku1234",
|
|
1088
|
+
"quantity": 0
|
|
1089
|
+
},
|
|
1090
|
+
"message": "Insufficient Quantity",
|
|
1091
|
+
"errorCode": "InsufficientQuantity"
|
|
1092
|
+
}
|
|
1093
|
+
]
|
|
1094
|
+
}
|
|
1095
|
+
}
|
|
726
1096
|
}
|
|
727
1097
|
}
|
|
728
1098
|
}
|
|
@@ -731,6 +1101,7 @@
|
|
|
731
1101
|
"description": "Reservations for specified items removed successfully.",
|
|
732
1102
|
"headers": {
|
|
733
1103
|
"X-RateLimit-Limit": {
|
|
1104
|
+
"description": "The maximum number of requests permitted per minute.",
|
|
734
1105
|
"style": "simple",
|
|
735
1106
|
"explode": false,
|
|
736
1107
|
"schema": {
|
|
@@ -738,6 +1109,7 @@
|
|
|
738
1109
|
}
|
|
739
1110
|
},
|
|
740
1111
|
"X-RateLimit-Remaining": {
|
|
1112
|
+
"description": "The number of requests remaining in the current rate limit window.",
|
|
741
1113
|
"style": "simple",
|
|
742
1114
|
"explode": false,
|
|
743
1115
|
"schema": {
|
|
@@ -745,6 +1117,7 @@
|
|
|
745
1117
|
}
|
|
746
1118
|
},
|
|
747
1119
|
"X-RateLimit-Reset": {
|
|
1120
|
+
"description": "The time at which the current rate limit window resets in UTC epoch seconds.",
|
|
748
1121
|
"style": "simple",
|
|
749
1122
|
"explode": false,
|
|
750
1123
|
"schema": {
|
|
@@ -757,6 +1130,7 @@
|
|
|
757
1130
|
"description": "Invalid request.",
|
|
758
1131
|
"headers": {
|
|
759
1132
|
"X-RateLimit-Limit": {
|
|
1133
|
+
"description": "The maximum number of requests permitted per minute.",
|
|
760
1134
|
"style": "simple",
|
|
761
1135
|
"explode": false,
|
|
762
1136
|
"schema": {
|
|
@@ -764,6 +1138,7 @@
|
|
|
764
1138
|
}
|
|
765
1139
|
},
|
|
766
1140
|
"X-RateLimit-Remaining": {
|
|
1141
|
+
"description": "The number of requests remaining in the current rate limit window.",
|
|
767
1142
|
"style": "simple",
|
|
768
1143
|
"explode": false,
|
|
769
1144
|
"schema": {
|
|
@@ -771,6 +1146,7 @@
|
|
|
771
1146
|
}
|
|
772
1147
|
},
|
|
773
1148
|
"X-RateLimit-Reset": {
|
|
1149
|
+
"description": "The time at which the current rate limit window resets in UTC epoch seconds.",
|
|
774
1150
|
"style": "simple",
|
|
775
1151
|
"explode": false,
|
|
776
1152
|
"schema": {
|
|
@@ -782,6 +1158,20 @@
|
|
|
782
1158
|
"application/problem+json": {
|
|
783
1159
|
"schema": {
|
|
784
1160
|
"$ref": "#/components/schemas/InventoryResponseErrorSchema"
|
|
1161
|
+
},
|
|
1162
|
+
"examples": {
|
|
1163
|
+
"genericErrorMessage": {
|
|
1164
|
+
"$ref": "#/components/examples/GenericErrorMessage"
|
|
1165
|
+
},
|
|
1166
|
+
"tooManyFieldsProvided": {
|
|
1167
|
+
"$ref": "#/components/examples/TooManyFieldsProvided"
|
|
1168
|
+
},
|
|
1169
|
+
"locationDoesNotExist": {
|
|
1170
|
+
"$ref": "#/components/examples/LocationIdNotFound"
|
|
1171
|
+
},
|
|
1172
|
+
"locationGroupNotFound": {
|
|
1173
|
+
"$ref": "#/components/examples/LocationGroupNotFound"
|
|
1174
|
+
}
|
|
785
1175
|
}
|
|
786
1176
|
}
|
|
787
1177
|
}
|
|
@@ -792,6 +1182,11 @@
|
|
|
792
1182
|
"application/problem+json": {
|
|
793
1183
|
"schema": {
|
|
794
1184
|
"$ref": "#/components/schemas/InventoryResponseErrorSchema"
|
|
1185
|
+
},
|
|
1186
|
+
"examples": {
|
|
1187
|
+
"TenantNotProvisioned": {
|
|
1188
|
+
"$ref": "#/components/examples/TenantNotProvisioned"
|
|
1189
|
+
}
|
|
795
1190
|
}
|
|
796
1191
|
}
|
|
797
1192
|
}
|
|
@@ -810,18 +1205,31 @@
|
|
|
810
1205
|
"content": {
|
|
811
1206
|
"application/problem+json": {
|
|
812
1207
|
"schema": {
|
|
1208
|
+
"example": {
|
|
1209
|
+
"type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/too-many-requests",
|
|
1210
|
+
"title": "Too Many Requests",
|
|
1211
|
+
"detail": "You have performed too many requests in a short period of time."
|
|
1212
|
+
},
|
|
813
1213
|
"properties": {
|
|
814
1214
|
"title": {
|
|
815
|
-
"type": "string"
|
|
1215
|
+
"type": "string",
|
|
1216
|
+
"description": "A short, human-readable summary of the problem\ntype. It will not change from occurrence to occurrence of the\nproblem, except for purposes of localization.\n",
|
|
1217
|
+
"example": "You do not have enough credit."
|
|
816
1218
|
},
|
|
817
1219
|
"type": {
|
|
818
|
-
"type": "string"
|
|
1220
|
+
"type": "string",
|
|
1221
|
+
"description": "A URI reference [RFC3986] that identifies the\nproblem type. This specification encourages that, when\ndereferenced, it provide human-readable documentation for the\nproblem type (e.g., using HTML [W3C.REC-html5-20141028]). When\nthis member is not present, its value is assumed to be\n\"about:blank\". It accepts relative URIs; this means\nthat they must be resolved relative to the document's base URI, as\nper [RFC3986], Section 5.\n",
|
|
1222
|
+
"example": "https://example.com/probs/out-of-credit"
|
|
819
1223
|
},
|
|
820
1224
|
"detail": {
|
|
821
|
-
"type": "string"
|
|
1225
|
+
"type": "string",
|
|
1226
|
+
"description": "A human-readable explanation specific to this\noccurrence of the problem.\n",
|
|
1227
|
+
"example": "Your current balance is 30, but that costs 50."
|
|
822
1228
|
},
|
|
823
1229
|
"instance": {
|
|
824
|
-
"type": "string"
|
|
1230
|
+
"type": "string",
|
|
1231
|
+
"description": "A URI reference that identifies the specific\noccurrence of the problem. It may or may not yield further\ninformation if dereferenced. It accepts relative URIs; this means\nthat they must be resolved relative to the document's base URI, as\nper [RFC3986], Section 5.\n",
|
|
1232
|
+
"example": "/account/12345/msgs/abc"
|
|
825
1233
|
}
|
|
826
1234
|
},
|
|
827
1235
|
"required": [
|
|
@@ -844,17 +1252,21 @@
|
|
|
844
1252
|
},
|
|
845
1253
|
"/organizations/{organizationId}/fulfillments": {
|
|
846
1254
|
"post": {
|
|
1255
|
+
"summary": "Adjust quantity for an item after fulfillment.",
|
|
1256
|
+
"description": "Adjusts the reserved quantity for an item after fulfillment.",
|
|
847
1257
|
"operationId": "fulfillQuantity",
|
|
848
1258
|
"parameters": [
|
|
849
1259
|
{
|
|
850
1260
|
"name": "organizationId",
|
|
851
1261
|
"in": "path",
|
|
1262
|
+
"description": "An identifier for the organization the request is being made by",
|
|
852
1263
|
"required": true,
|
|
853
1264
|
"style": "simple",
|
|
854
1265
|
"explode": false,
|
|
855
1266
|
"schema": {
|
|
856
1267
|
"$ref": "#/components/schemas/OrganizationId"
|
|
857
|
-
}
|
|
1268
|
+
},
|
|
1269
|
+
"example": "f_ecom_zzxy_prd"
|
|
858
1270
|
}
|
|
859
1271
|
],
|
|
860
1272
|
"requestBody": {
|
|
@@ -862,6 +1274,11 @@
|
|
|
862
1274
|
"application/json": {
|
|
863
1275
|
"schema": {
|
|
864
1276
|
"$ref": "#/components/schemas/FulfillQuantityRequestBody"
|
|
1277
|
+
},
|
|
1278
|
+
"examples": {
|
|
1279
|
+
"FulfillQuantityRequestBodyExample": {
|
|
1280
|
+
"$ref": "#/components/examples/FulfillQuantityRequestBodyExample"
|
|
1281
|
+
}
|
|
865
1282
|
}
|
|
866
1283
|
}
|
|
867
1284
|
},
|
|
@@ -872,6 +1289,7 @@
|
|
|
872
1289
|
"description": "Fulfillment partially succeeded with errors reported.",
|
|
873
1290
|
"headers": {
|
|
874
1291
|
"X-RateLimit-Limit": {
|
|
1292
|
+
"description": "The maximum number of requests permitted per minute.",
|
|
875
1293
|
"style": "simple",
|
|
876
1294
|
"explode": false,
|
|
877
1295
|
"schema": {
|
|
@@ -879,6 +1297,7 @@
|
|
|
879
1297
|
}
|
|
880
1298
|
},
|
|
881
1299
|
"X-RateLimit-Remaining": {
|
|
1300
|
+
"description": "The number of requests remaining in the current rate limit window.",
|
|
882
1301
|
"style": "simple",
|
|
883
1302
|
"explode": false,
|
|
884
1303
|
"schema": {
|
|
@@ -886,6 +1305,7 @@
|
|
|
886
1305
|
}
|
|
887
1306
|
},
|
|
888
1307
|
"X-RateLimit-Reset": {
|
|
1308
|
+
"description": "The time at which the current rate limit window resets in UTC epoch seconds.",
|
|
889
1309
|
"style": "simple",
|
|
890
1310
|
"explode": false,
|
|
891
1311
|
"schema": {
|
|
@@ -897,6 +1317,44 @@
|
|
|
897
1317
|
"application/json": {
|
|
898
1318
|
"schema": {
|
|
899
1319
|
"$ref": "#/components/schemas/FulfillQuantityResponseErrors"
|
|
1320
|
+
},
|
|
1321
|
+
"examples": {
|
|
1322
|
+
"locationNotFound": {
|
|
1323
|
+
"summary": "Example response when a location is not found",
|
|
1324
|
+
"value": {
|
|
1325
|
+
"errors": [
|
|
1326
|
+
{
|
|
1327
|
+
"details": {
|
|
1328
|
+
"id": "82251928-8863-488e-840b-2aebd10b57ba",
|
|
1329
|
+
"externalRefId": "7282822-9823-aaa",
|
|
1330
|
+
"location": "warehouse5",
|
|
1331
|
+
"sku": "sku1234",
|
|
1332
|
+
"quantity": 1200.35
|
|
1333
|
+
},
|
|
1334
|
+
"message": "Failed to fulfill, invalid location provided.",
|
|
1335
|
+
"errorCode": "Unknown"
|
|
1336
|
+
}
|
|
1337
|
+
]
|
|
1338
|
+
}
|
|
1339
|
+
},
|
|
1340
|
+
"insufficientQty": {
|
|
1341
|
+
"summary": "Example response when there is insufficient quantity",
|
|
1342
|
+
"value": {
|
|
1343
|
+
"errors": [
|
|
1344
|
+
{
|
|
1345
|
+
"details": {
|
|
1346
|
+
"id": "82251928-8863-488e-840b-2aebd10b57ba",
|
|
1347
|
+
"externalRefId": "7282822-9823-aaa",
|
|
1348
|
+
"location": "warehouse5",
|
|
1349
|
+
"sku": "sku1234",
|
|
1350
|
+
"quantity": 1200.35
|
|
1351
|
+
},
|
|
1352
|
+
"message": "Insufficient Quantity.",
|
|
1353
|
+
"errorCode": "Unknown"
|
|
1354
|
+
}
|
|
1355
|
+
]
|
|
1356
|
+
}
|
|
1357
|
+
}
|
|
900
1358
|
}
|
|
901
1359
|
}
|
|
902
1360
|
}
|
|
@@ -905,6 +1363,7 @@
|
|
|
905
1363
|
"description": "Quantity adjusted successfully.",
|
|
906
1364
|
"headers": {
|
|
907
1365
|
"X-RateLimit-Limit": {
|
|
1366
|
+
"description": "The maximum number of requests permitted per minute.",
|
|
908
1367
|
"style": "simple",
|
|
909
1368
|
"explode": false,
|
|
910
1369
|
"schema": {
|
|
@@ -912,6 +1371,7 @@
|
|
|
912
1371
|
}
|
|
913
1372
|
},
|
|
914
1373
|
"X-RateLimit-Remaining": {
|
|
1374
|
+
"description": "The number of requests remaining in the current rate limit window.",
|
|
915
1375
|
"style": "simple",
|
|
916
1376
|
"explode": false,
|
|
917
1377
|
"schema": {
|
|
@@ -919,6 +1379,7 @@
|
|
|
919
1379
|
}
|
|
920
1380
|
},
|
|
921
1381
|
"X-RateLimit-Reset": {
|
|
1382
|
+
"description": "The time at which the current rate limit window resets in UTC epoch seconds.",
|
|
922
1383
|
"style": "simple",
|
|
923
1384
|
"explode": false,
|
|
924
1385
|
"schema": {
|
|
@@ -931,6 +1392,7 @@
|
|
|
931
1392
|
"description": "Invalid request.",
|
|
932
1393
|
"headers": {
|
|
933
1394
|
"X-RateLimit-Limit": {
|
|
1395
|
+
"description": "The maximum number of requests permitted per minute.",
|
|
934
1396
|
"style": "simple",
|
|
935
1397
|
"explode": false,
|
|
936
1398
|
"schema": {
|
|
@@ -938,6 +1400,7 @@
|
|
|
938
1400
|
}
|
|
939
1401
|
},
|
|
940
1402
|
"X-RateLimit-Remaining": {
|
|
1403
|
+
"description": "The number of requests remaining in the current rate limit window.",
|
|
941
1404
|
"style": "simple",
|
|
942
1405
|
"explode": false,
|
|
943
1406
|
"schema": {
|
|
@@ -945,6 +1408,7 @@
|
|
|
945
1408
|
}
|
|
946
1409
|
},
|
|
947
1410
|
"X-RateLimit-Reset": {
|
|
1411
|
+
"description": "The time at which the current rate limit window resets in UTC epoch seconds.",
|
|
948
1412
|
"style": "simple",
|
|
949
1413
|
"explode": false,
|
|
950
1414
|
"schema": {
|
|
@@ -956,6 +1420,11 @@
|
|
|
956
1420
|
"application/problem+json": {
|
|
957
1421
|
"schema": {
|
|
958
1422
|
"$ref": "#/components/schemas/InventoryResponseErrorSchema"
|
|
1423
|
+
},
|
|
1424
|
+
"examples": {
|
|
1425
|
+
"MissingParameter": {
|
|
1426
|
+
"$ref": "#/components/examples/MissingParameter"
|
|
1427
|
+
}
|
|
959
1428
|
}
|
|
960
1429
|
}
|
|
961
1430
|
}
|
|
@@ -966,6 +1435,11 @@
|
|
|
966
1435
|
"application/problem+json": {
|
|
967
1436
|
"schema": {
|
|
968
1437
|
"$ref": "#/components/schemas/InventoryResponseErrorSchema"
|
|
1438
|
+
},
|
|
1439
|
+
"examples": {
|
|
1440
|
+
"TenantNotProvisioned": {
|
|
1441
|
+
"$ref": "#/components/examples/TenantNotProvisioned"
|
|
1442
|
+
}
|
|
969
1443
|
}
|
|
970
1444
|
}
|
|
971
1445
|
}
|
|
@@ -974,6 +1448,7 @@
|
|
|
974
1448
|
"description": "Reservation ID invalid.",
|
|
975
1449
|
"headers": {
|
|
976
1450
|
"X-RateLimit-Limit": {
|
|
1451
|
+
"description": "The maximum number of requests permitted per minute.",
|
|
977
1452
|
"style": "simple",
|
|
978
1453
|
"explode": false,
|
|
979
1454
|
"schema": {
|
|
@@ -981,6 +1456,7 @@
|
|
|
981
1456
|
}
|
|
982
1457
|
},
|
|
983
1458
|
"X-RateLimit-Remaining": {
|
|
1459
|
+
"description": "The number of requests remaining in the current rate limit window.",
|
|
984
1460
|
"style": "simple",
|
|
985
1461
|
"explode": false,
|
|
986
1462
|
"schema": {
|
|
@@ -988,6 +1464,7 @@
|
|
|
988
1464
|
}
|
|
989
1465
|
},
|
|
990
1466
|
"X-RateLimit-Reset": {
|
|
1467
|
+
"description": "The time at which the current rate limit window resets in UTC epoch seconds.",
|
|
991
1468
|
"style": "simple",
|
|
992
1469
|
"explode": false,
|
|
993
1470
|
"schema": {
|
|
@@ -999,6 +1476,11 @@
|
|
|
999
1476
|
"application/json": {
|
|
1000
1477
|
"schema": {
|
|
1001
1478
|
"$ref": "#/components/schemas/InventoryResponseErrorSchema"
|
|
1479
|
+
},
|
|
1480
|
+
"examples": {
|
|
1481
|
+
"IDDoesNotExist": {
|
|
1482
|
+
"$ref": "#/components/examples/IDDoesNotExist"
|
|
1483
|
+
}
|
|
1002
1484
|
}
|
|
1003
1485
|
}
|
|
1004
1486
|
}
|
|
@@ -1017,18 +1499,31 @@
|
|
|
1017
1499
|
"content": {
|
|
1018
1500
|
"application/problem+json": {
|
|
1019
1501
|
"schema": {
|
|
1502
|
+
"example": {
|
|
1503
|
+
"type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/too-many-requests",
|
|
1504
|
+
"title": "Too Many Requests",
|
|
1505
|
+
"detail": "You have performed too many requests in a short period of time."
|
|
1506
|
+
},
|
|
1020
1507
|
"properties": {
|
|
1021
1508
|
"title": {
|
|
1022
|
-
"type": "string"
|
|
1509
|
+
"type": "string",
|
|
1510
|
+
"description": "A short, human-readable summary of the problem\ntype. It will not change from occurrence to occurrence of the\nproblem, except for purposes of localization.\n",
|
|
1511
|
+
"example": "You do not have enough credit."
|
|
1023
1512
|
},
|
|
1024
1513
|
"type": {
|
|
1025
|
-
"type": "string"
|
|
1514
|
+
"type": "string",
|
|
1515
|
+
"description": "A URI reference [RFC3986] that identifies the\nproblem type. This specification encourages that, when\ndereferenced, it provide human-readable documentation for the\nproblem type (e.g., using HTML [W3C.REC-html5-20141028]). When\nthis member is not present, its value is assumed to be\n\"about:blank\". It accepts relative URIs; this means\nthat they must be resolved relative to the document's base URI, as\nper [RFC3986], Section 5.\n",
|
|
1516
|
+
"example": "https://example.com/probs/out-of-credit"
|
|
1026
1517
|
},
|
|
1027
1518
|
"detail": {
|
|
1028
|
-
"type": "string"
|
|
1519
|
+
"type": "string",
|
|
1520
|
+
"description": "A human-readable explanation specific to this\noccurrence of the problem.\n",
|
|
1521
|
+
"example": "Your current balance is 30, but that costs 50."
|
|
1029
1522
|
},
|
|
1030
1523
|
"instance": {
|
|
1031
|
-
"type": "string"
|
|
1524
|
+
"type": "string",
|
|
1525
|
+
"description": "A URI reference that identifies the specific\noccurrence of the problem. It may or may not yield further\ninformation if dereferenced. It accepts relative URIs; this means\nthat they must be resolved relative to the document's base URI, as\nper [RFC3986], Section 5.\n",
|
|
1526
|
+
"example": "/account/12345/msgs/abc"
|
|
1032
1527
|
}
|
|
1033
1528
|
},
|
|
1034
1529
|
"required": [
|
|
@@ -1054,38 +1549,54 @@
|
|
|
1054
1549
|
"schemas": {
|
|
1055
1550
|
"OrganizationId": {
|
|
1056
1551
|
"type": "string",
|
|
1552
|
+
"description": "An identifier for the organization the request is being made by",
|
|
1553
|
+
"example": "f_ecom_zzxy_prd",
|
|
1057
1554
|
"maxLength": 32,
|
|
1058
1555
|
"minLength": 1
|
|
1059
1556
|
},
|
|
1060
1557
|
"ExternalRefId": {
|
|
1061
1558
|
"type": "string",
|
|
1559
|
+
"description": "A convenience identifier for the consumer, used for auditing events. This field is NOT used by the service itself, but is intended for the consumer to be able to identify records submitted from their systems that are external to OCI.",
|
|
1560
|
+
"example": "7282822-9823-aaa",
|
|
1062
1561
|
"maxLength": 128,
|
|
1063
1562
|
"pattern": "^[a-zA-Z0-9\\-]*$"
|
|
1064
1563
|
},
|
|
1065
1564
|
"ExpirationSeconds": {
|
|
1066
1565
|
"type": "integer",
|
|
1566
|
+
"description": "The number of seconds until this reservation expires. If not specified, this reservation never expires. \n\nTypically, there's about a 10-15 second delay between the specified expiration time and its reflection on inventory counts under normal load, but usually stays within 60 seconds under higher loads. \n",
|
|
1567
|
+
"example": 300,
|
|
1067
1568
|
"maximum": 14400,
|
|
1068
1569
|
"minimum": 1
|
|
1069
1570
|
},
|
|
1070
1571
|
"AllowPartialReservations": {
|
|
1071
|
-
"type": "boolean"
|
|
1572
|
+
"type": "boolean",
|
|
1573
|
+
"description": "Whether or not to allow partial reservations. The default value is 'true'. If the value sent in is 'true', or no value is sent, the response will only include the quantity that was available to be reserved. There will be no error message. In this case, the response must be verified by the caller.",
|
|
1574
|
+
"example": true
|
|
1072
1575
|
},
|
|
1073
1576
|
"FulfillOnlyReservations": {
|
|
1074
|
-
"type": "boolean"
|
|
1577
|
+
"type": "boolean",
|
|
1578
|
+
"description": "Whether or not to fulfill a reservation ONLY against the ATF amount. The default value is 'false'. If the value sent in is 'false', or no value is sent, the reservations will apply normally. If the value is sent as 'true', the reservation will ONLY be placed against the ATF amount and will fail if this amount is insufficient to fulfill the reservation request.",
|
|
1579
|
+
"example": true
|
|
1075
1580
|
},
|
|
1076
1581
|
"ReservationTime": {
|
|
1077
1582
|
"type": "string",
|
|
1078
1583
|
"format": "date-time",
|
|
1584
|
+
"description": "The time the reservation was placed",
|
|
1585
|
+
"example": "2019-07-24T21:13:00Z",
|
|
1079
1586
|
"maxLength": 30
|
|
1080
1587
|
},
|
|
1081
1588
|
"GroupId": {
|
|
1082
1589
|
"type": "string",
|
|
1590
|
+
"description": "An identifier for a collection of locations",
|
|
1591
|
+
"example": "UnitedStates",
|
|
1083
1592
|
"maxLength": 128,
|
|
1084
1593
|
"minLength": 2,
|
|
1085
1594
|
"pattern": "^[a-zA-Z0-9-_]*$"
|
|
1086
1595
|
},
|
|
1087
1596
|
"SkuId": {
|
|
1088
1597
|
"type": "string",
|
|
1598
|
+
"description": "The inventory identifier",
|
|
1599
|
+
"example": "sku1234",
|
|
1089
1600
|
"maxLength": 250,
|
|
1090
1601
|
"minLength": 1,
|
|
1091
1602
|
"pattern": "^[^\\\\<>;%/\\s]*$"
|
|
@@ -1093,11 +1604,14 @@
|
|
|
1093
1604
|
"ReservedQuantity": {
|
|
1094
1605
|
"type": "number",
|
|
1095
1606
|
"format": "double",
|
|
1607
|
+
"description": "The quantity to reserve",
|
|
1608
|
+
"example": 10,
|
|
1096
1609
|
"minimum": 0.001,
|
|
1097
1610
|
"multipleOf": 0.001
|
|
1098
1611
|
},
|
|
1099
1612
|
"ReservationRequestRecord": {
|
|
1100
1613
|
"type": "object",
|
|
1614
|
+
"description": "Information about the SKU, and quantity to reserve.",
|
|
1101
1615
|
"properties": {
|
|
1102
1616
|
"sku": {
|
|
1103
1617
|
"$ref": "#/components/schemas/SkuId"
|
|
@@ -1113,6 +1627,7 @@
|
|
|
1113
1627
|
},
|
|
1114
1628
|
"ReservationRequestGroup": {
|
|
1115
1629
|
"type": "object",
|
|
1630
|
+
"description": "The reservations to request at the location group.",
|
|
1116
1631
|
"properties": {
|
|
1117
1632
|
"id": {
|
|
1118
1633
|
"$ref": "#/components/schemas/GroupId"
|
|
@@ -1131,18 +1646,23 @@
|
|
|
1131
1646
|
},
|
|
1132
1647
|
"LocationId": {
|
|
1133
1648
|
"type": "string",
|
|
1649
|
+
"description": "The id of the location of the inventory.",
|
|
1650
|
+
"example": "warehouse5",
|
|
1134
1651
|
"maxLength": 128,
|
|
1135
1652
|
"minLength": 2,
|
|
1136
1653
|
"pattern": "^[a-zA-Z0-9-_]*$"
|
|
1137
1654
|
},
|
|
1138
1655
|
"AllOrNothingId": {
|
|
1139
1656
|
"type": "string",
|
|
1657
|
+
"description": "The used defined id of the All Or Nothing Reservation.",
|
|
1658
|
+
"example": "a14s-4b1c-1a3cbd4",
|
|
1140
1659
|
"maxLength": 128,
|
|
1141
1660
|
"minLength": 1,
|
|
1142
1661
|
"pattern": "^[a-zA-Z0-9-_]*$"
|
|
1143
1662
|
},
|
|
1144
1663
|
"ReservationRequestLocation": {
|
|
1145
1664
|
"type": "object",
|
|
1665
|
+
"description": "The reservations to request at the location.",
|
|
1146
1666
|
"properties": {
|
|
1147
1667
|
"id": {
|
|
1148
1668
|
"$ref": "#/components/schemas/LocationId"
|
|
@@ -1183,6 +1703,7 @@
|
|
|
1183
1703
|
"PlaceReservationRequest": {
|
|
1184
1704
|
"type": "object",
|
|
1185
1705
|
"additionalProperties": false,
|
|
1706
|
+
"description": "Place a reservation Request",
|
|
1186
1707
|
"properties": {
|
|
1187
1708
|
"externalRefId": {
|
|
1188
1709
|
"$ref": "#/components/schemas/ExternalRefId"
|
|
@@ -1201,33 +1722,45 @@
|
|
|
1201
1722
|
},
|
|
1202
1723
|
"groups": {
|
|
1203
1724
|
"type": "array",
|
|
1725
|
+
"description": "The reservations to request at the specified location groups.",
|
|
1204
1726
|
"items": {
|
|
1205
1727
|
"$ref": "#/components/schemas/ReservationRequestGroup"
|
|
1206
1728
|
}
|
|
1207
1729
|
},
|
|
1208
1730
|
"locations": {
|
|
1209
1731
|
"type": "array",
|
|
1732
|
+
"description": "The reservations to request at the specified locations.",
|
|
1210
1733
|
"items": {
|
|
1211
1734
|
"$ref": "#/components/schemas/ReservationRequestLocation"
|
|
1212
1735
|
}
|
|
1213
1736
|
}
|
|
1214
|
-
}
|
|
1737
|
+
},
|
|
1738
|
+
"title": "Reservation Request"
|
|
1215
1739
|
},
|
|
1216
1740
|
"ExpirationTime": {
|
|
1217
1741
|
"type": "string",
|
|
1218
1742
|
"format": "date-time",
|
|
1743
|
+
"description": "The time the reservation expires",
|
|
1744
|
+
"example": "2019-07-24T21:13:00Z",
|
|
1219
1745
|
"maxLength": 30
|
|
1220
1746
|
},
|
|
1221
1747
|
"ErrorCode": {
|
|
1222
1748
|
"type": "string",
|
|
1749
|
+
"description": "The error code",
|
|
1223
1750
|
"enum": [
|
|
1224
1751
|
"InsufficientQuantity",
|
|
1225
1752
|
"Unknown"
|
|
1226
1753
|
],
|
|
1754
|
+
"example": "MoveError",
|
|
1227
1755
|
"maxLength": 128,
|
|
1228
1756
|
"pattern": "^[a-zA-Z0-9\\-]*$"
|
|
1229
1757
|
},
|
|
1230
1758
|
"ReservationResponseErrorRecord2": {
|
|
1759
|
+
"description": "Information about any errors that occurred attempting to place the reservation.",
|
|
1760
|
+
"example": {
|
|
1761
|
+
"sku": "sku5678",
|
|
1762
|
+
"errorCode": "Unknown"
|
|
1763
|
+
},
|
|
1231
1764
|
"maxLength": 250,
|
|
1232
1765
|
"properties": {
|
|
1233
1766
|
"sku": {
|
|
@@ -1259,20 +1792,25 @@
|
|
|
1259
1792
|
},
|
|
1260
1793
|
"PlaceReservationResponseBody": {
|
|
1261
1794
|
"type": "object",
|
|
1795
|
+
"description": "The response for a successful reservation placement.",
|
|
1262
1796
|
"properties": {
|
|
1263
1797
|
"reservationTime": {
|
|
1264
1798
|
"type": "string",
|
|
1265
1799
|
"format": "date-time",
|
|
1800
|
+
"example": "2019-07-24T21:13:00Z",
|
|
1266
1801
|
"maxLength": 30
|
|
1267
1802
|
},
|
|
1268
1803
|
"expirationTime": {
|
|
1269
1804
|
"$ref": "#/components/schemas/ExpirationTime"
|
|
1270
1805
|
},
|
|
1271
1806
|
"success": {
|
|
1272
|
-
"type": "boolean"
|
|
1807
|
+
"type": "boolean",
|
|
1808
|
+
"description": "Whether or not the reservation was able to be placed successfully.",
|
|
1809
|
+
"example": true
|
|
1273
1810
|
},
|
|
1274
1811
|
"groups": {
|
|
1275
1812
|
"type": "array",
|
|
1813
|
+
"description": "The results for the requested location group reservations.",
|
|
1276
1814
|
"items": {
|
|
1277
1815
|
"type": "object",
|
|
1278
1816
|
"properties": {
|
|
@@ -1287,6 +1825,7 @@
|
|
|
1287
1825
|
},
|
|
1288
1826
|
"details": {
|
|
1289
1827
|
"type": "array",
|
|
1828
|
+
"description": "Information about the SKU, and the amount of quantity that was successfully reserved.",
|
|
1290
1829
|
"items": {
|
|
1291
1830
|
"$ref": "#/components/schemas/ReservedReservationRecord"
|
|
1292
1831
|
}
|
|
@@ -1299,6 +1838,7 @@
|
|
|
1299
1838
|
},
|
|
1300
1839
|
"locations": {
|
|
1301
1840
|
"type": "array",
|
|
1841
|
+
"description": "The results for the requested location reservations.",
|
|
1302
1842
|
"items": {
|
|
1303
1843
|
"type": "object",
|
|
1304
1844
|
"properties": {
|
|
@@ -1313,6 +1853,7 @@
|
|
|
1313
1853
|
},
|
|
1314
1854
|
"details": {
|
|
1315
1855
|
"type": "array",
|
|
1856
|
+
"description": "Information about the SKU, and the amount of quantity that was successfully reserved.",
|
|
1316
1857
|
"items": {
|
|
1317
1858
|
"$ref": "#/components/schemas/ReservedReservationRecord"
|
|
1318
1859
|
}
|
|
@@ -1335,7 +1876,8 @@
|
|
|
1335
1876
|
"InvalidRequest",
|
|
1336
1877
|
"LocationDoesNotExist",
|
|
1337
1878
|
"GroupDoesNotExist"
|
|
1338
|
-
]
|
|
1879
|
+
],
|
|
1880
|
+
"example": "LocationDoesNotExist"
|
|
1339
1881
|
},
|
|
1340
1882
|
"InvalidRequestLocOrGroupDoesNotExist": {
|
|
1341
1883
|
"type": "object",
|
|
@@ -1345,22 +1887,30 @@
|
|
|
1345
1887
|
},
|
|
1346
1888
|
"message": {
|
|
1347
1889
|
"type": "string",
|
|
1890
|
+
"example": "An invalid group was provided.",
|
|
1348
1891
|
"maxLength": 250
|
|
1349
1892
|
},
|
|
1350
1893
|
"type": {
|
|
1351
1894
|
"type": "string",
|
|
1895
|
+
"example": "about:blank",
|
|
1352
1896
|
"maxLength": 250
|
|
1353
1897
|
},
|
|
1354
1898
|
"parameterName": {
|
|
1355
1899
|
"type": "string",
|
|
1900
|
+
"description": "When invalid json is passed to the service, this field will indicate which piece of the supplied json was invalid.",
|
|
1901
|
+
"example": "sku",
|
|
1356
1902
|
"maxLength": 250
|
|
1357
1903
|
},
|
|
1358
1904
|
"group": {
|
|
1359
1905
|
"type": "string",
|
|
1906
|
+
"description": "Indicates which group was provided that does not exist",
|
|
1907
|
+
"example": "UnitedStates",
|
|
1360
1908
|
"maxLength": 250
|
|
1361
1909
|
},
|
|
1362
1910
|
"location": {
|
|
1363
1911
|
"type": "string",
|
|
1912
|
+
"description": "Indicates the location that was provided that does not exist",
|
|
1913
|
+
"example": "warehouse5",
|
|
1364
1914
|
"maxLength": 250
|
|
1365
1915
|
}
|
|
1366
1916
|
},
|
|
@@ -1375,18 +1925,23 @@
|
|
|
1375
1925
|
"properties": {
|
|
1376
1926
|
"errorCode": {
|
|
1377
1927
|
"type": "string",
|
|
1928
|
+
"example": "InvalidRequestParameter",
|
|
1378
1929
|
"maxLength": 32
|
|
1379
1930
|
},
|
|
1380
1931
|
"message": {
|
|
1381
1932
|
"type": "string",
|
|
1933
|
+
"example": "An invalid request parameter was provided.",
|
|
1382
1934
|
"maxLength": 250
|
|
1383
1935
|
},
|
|
1384
1936
|
"type": {
|
|
1385
1937
|
"type": "string",
|
|
1938
|
+
"example": "about:blank",
|
|
1386
1939
|
"maxLength": 250
|
|
1387
1940
|
},
|
|
1388
1941
|
"parameterName": {
|
|
1389
1942
|
"type": "string",
|
|
1943
|
+
"description": "When invalid json is passed to the service, this field will indicate which piece of the supplied json was invalid.",
|
|
1944
|
+
"example": "location",
|
|
1390
1945
|
"maxLength": 250
|
|
1391
1946
|
}
|
|
1392
1947
|
},
|
|
@@ -1397,6 +1952,13 @@
|
|
|
1397
1952
|
]
|
|
1398
1953
|
},
|
|
1399
1954
|
"ReservationInvalidState": {
|
|
1955
|
+
"description": "Error generated when attempting to create a reservation with the same ID as an existing one.",
|
|
1956
|
+
"example": {
|
|
1957
|
+
"errorCode": "ReservationInvalidState",
|
|
1958
|
+
"message": "Reservation is in a CLOSED state.",
|
|
1959
|
+
"type": "about:blank",
|
|
1960
|
+
"parameterName": "sku"
|
|
1961
|
+
},
|
|
1400
1962
|
"maxLength": 1,
|
|
1401
1963
|
"properties": {
|
|
1402
1964
|
"errorCode": {
|
|
@@ -1411,18 +1973,23 @@
|
|
|
1411
1973
|
"PreviousRequestAborted",
|
|
1412
1974
|
"PreviousRequestCancelled"
|
|
1413
1975
|
],
|
|
1976
|
+
"example": "ReservationInvalidState",
|
|
1414
1977
|
"maxLength": 32
|
|
1415
1978
|
},
|
|
1416
1979
|
"message": {
|
|
1417
1980
|
"type": "string",
|
|
1981
|
+
"example": "Reservation is in a CLOSED state.",
|
|
1418
1982
|
"maxLength": 250
|
|
1419
1983
|
},
|
|
1420
1984
|
"type": {
|
|
1421
1985
|
"type": "string",
|
|
1986
|
+
"example": "about:blank",
|
|
1422
1987
|
"maxLength": 250
|
|
1423
1988
|
},
|
|
1424
1989
|
"parameterName": {
|
|
1425
1990
|
"type": "string",
|
|
1991
|
+
"description": "When invalid json is passed to the service, this field will indicate which piece of the supplied json was invalid.",
|
|
1992
|
+
"example": "sku",
|
|
1426
1993
|
"maxLength": 250
|
|
1427
1994
|
}
|
|
1428
1995
|
},
|
|
@@ -1434,6 +2001,8 @@
|
|
|
1434
2001
|
},
|
|
1435
2002
|
"IdempotenceId": {
|
|
1436
2003
|
"type": "string",
|
|
2004
|
+
"description": "A unique identifier, used in combination with the SKU, so that future requests with the same combination have the same result.",
|
|
2005
|
+
"example": "82251928-8863-488e-840b-2aebd10b57ba",
|
|
1437
2006
|
"maxLength": 128,
|
|
1438
2007
|
"pattern": "^[a-zA-Z0-9\\-]*$"
|
|
1439
2008
|
},
|
|
@@ -1457,6 +2026,7 @@
|
|
|
1457
2026
|
},
|
|
1458
2027
|
"UpdateReservationLocationType": {
|
|
1459
2028
|
"type": "array",
|
|
2029
|
+
"description": "The reservations to request at the specified locations.",
|
|
1460
2030
|
"items": {
|
|
1461
2031
|
"type": "object",
|
|
1462
2032
|
"properties": {
|
|
@@ -1471,6 +2041,8 @@
|
|
|
1471
2041
|
"properties": {
|
|
1472
2042
|
"id": {
|
|
1473
2043
|
"type": "string",
|
|
2044
|
+
"description": "The user defined ID of the all or nothing reservation",
|
|
2045
|
+
"example": "a14s-4b1c-1a3cbd4",
|
|
1474
2046
|
"maxLength": 32
|
|
1475
2047
|
},
|
|
1476
2048
|
"reservations": {
|
|
@@ -1492,6 +2064,7 @@
|
|
|
1492
2064
|
},
|
|
1493
2065
|
"UpdateReservationGroupType": {
|
|
1494
2066
|
"type": "array",
|
|
2067
|
+
"description": "The reservations to request at the specified location groups.",
|
|
1495
2068
|
"items": {
|
|
1496
2069
|
"type": "object",
|
|
1497
2070
|
"properties": {
|
|
@@ -1506,6 +2079,8 @@
|
|
|
1506
2079
|
"properties": {
|
|
1507
2080
|
"id": {
|
|
1508
2081
|
"type": "string",
|
|
2082
|
+
"description": "The user defined ID of the all or nothing reservation",
|
|
2083
|
+
"example": "a14s-4b1c-1a3cbd4",
|
|
1509
2084
|
"maxLength": 32
|
|
1510
2085
|
},
|
|
1511
2086
|
"reservations": {
|
|
@@ -1527,18 +2102,23 @@
|
|
|
1527
2102
|
},
|
|
1528
2103
|
"UpdateReservationRequestBody": {
|
|
1529
2104
|
"type": "object",
|
|
2105
|
+
"description": "The body that is sent requesting a reservation be cancelled.",
|
|
1530
2106
|
"properties": {
|
|
1531
2107
|
"status": {
|
|
1532
2108
|
"type": "string",
|
|
2109
|
+
"description": "The status to set on the reservation document",
|
|
1533
2110
|
"enum": [
|
|
1534
2111
|
"CANCELLED"
|
|
1535
|
-
]
|
|
2112
|
+
],
|
|
2113
|
+
"example": "CANCELLED"
|
|
1536
2114
|
},
|
|
1537
2115
|
"externalRefId": {
|
|
1538
2116
|
"$ref": "#/components/schemas/ExternalRefId"
|
|
1539
2117
|
},
|
|
1540
2118
|
"allowPartialReservations": {
|
|
1541
|
-
"type": "boolean"
|
|
2119
|
+
"type": "boolean",
|
|
2120
|
+
"description": "Whether or not to allow partial reservations. The default value is 'true'. If the value sent in is 'true', or no value is sent, the response will only include the quantity that was available to be reserved. There will be no error message. In this case, the response must be verified by the caller.",
|
|
2121
|
+
"example": true
|
|
1542
2122
|
},
|
|
1543
2123
|
"reservationTime": {
|
|
1544
2124
|
"$ref": "#/components/schemas/ReservationTime"
|
|
@@ -1564,6 +2144,7 @@
|
|
|
1564
2144
|
},
|
|
1565
2145
|
"errorCode": {
|
|
1566
2146
|
"type": "string",
|
|
2147
|
+
"example": "InsufficientQuantity",
|
|
1567
2148
|
"maxLength": 32
|
|
1568
2149
|
}
|
|
1569
2150
|
}
|
|
@@ -1579,7 +2160,8 @@
|
|
|
1579
2160
|
"$ref": "#/components/schemas/ExpirationTime"
|
|
1580
2161
|
},
|
|
1581
2162
|
"success": {
|
|
1582
|
-
"type": "boolean"
|
|
2163
|
+
"type": "boolean",
|
|
2164
|
+
"example": false
|
|
1583
2165
|
},
|
|
1584
2166
|
"groups": {
|
|
1585
2167
|
"type": "array",
|
|
@@ -1602,11 +2184,13 @@
|
|
|
1602
2184
|
},
|
|
1603
2185
|
"quantity": {
|
|
1604
2186
|
"type": "number",
|
|
1605
|
-
"format": "float"
|
|
2187
|
+
"format": "float",
|
|
2188
|
+
"example": 8
|
|
1606
2189
|
},
|
|
1607
2190
|
"adjustment": {
|
|
1608
2191
|
"type": "number",
|
|
1609
|
-
"format": "float"
|
|
2192
|
+
"format": "float",
|
|
2193
|
+
"example": 4
|
|
1610
2194
|
}
|
|
1611
2195
|
}
|
|
1612
2196
|
}
|
|
@@ -1635,11 +2219,13 @@
|
|
|
1635
2219
|
},
|
|
1636
2220
|
"quantity": {
|
|
1637
2221
|
"type": "number",
|
|
1638
|
-
"format": "float"
|
|
2222
|
+
"format": "float",
|
|
2223
|
+
"example": 8
|
|
1639
2224
|
},
|
|
1640
2225
|
"adjustment": {
|
|
1641
2226
|
"type": "number",
|
|
1642
|
-
"format": "float"
|
|
2227
|
+
"format": "float",
|
|
2228
|
+
"example": 4
|
|
1643
2229
|
}
|
|
1644
2230
|
}
|
|
1645
2231
|
}
|
|
@@ -1703,6 +2289,7 @@
|
|
|
1703
2289
|
"$ref": "#/components/schemas/ExternalRefId"
|
|
1704
2290
|
},
|
|
1705
2291
|
"from": {
|
|
2292
|
+
"description": "The place from which the reservation quantity is being moved.",
|
|
1706
2293
|
"oneOf": [
|
|
1707
2294
|
{
|
|
1708
2295
|
"$ref": "#/components/schemas/MoveReservationFromLocation"
|
|
@@ -1713,6 +2300,7 @@
|
|
|
1713
2300
|
]
|
|
1714
2301
|
},
|
|
1715
2302
|
"to": {
|
|
2303
|
+
"description": "The place where the reservation quantity is being moved to.",
|
|
1716
2304
|
"oneOf": [
|
|
1717
2305
|
{
|
|
1718
2306
|
"$ref": "#/components/schemas/MoveReservationToLocation"
|
|
@@ -1728,12 +2316,15 @@
|
|
|
1728
2316
|
"quantity": {
|
|
1729
2317
|
"type": "number",
|
|
1730
2318
|
"format": "double",
|
|
2319
|
+
"example": 2.011,
|
|
1731
2320
|
"minimum": 0.001,
|
|
1732
2321
|
"multipleOf": 0.001
|
|
1733
2322
|
},
|
|
1734
2323
|
"ignoreAvailabilityCheck": {
|
|
1735
2324
|
"type": "boolean",
|
|
1736
|
-
"default": false
|
|
2325
|
+
"default": false,
|
|
2326
|
+
"description": "It specifies if the reservation should be moved even if there is no inventory at the destination.",
|
|
2327
|
+
"example": false
|
|
1737
2328
|
}
|
|
1738
2329
|
},
|
|
1739
2330
|
"required": [
|
|
@@ -1742,7 +2333,8 @@
|
|
|
1742
2333
|
"quantity",
|
|
1743
2334
|
"sku",
|
|
1744
2335
|
"to"
|
|
1745
|
-
]
|
|
2336
|
+
],
|
|
2337
|
+
"title": "Location To Location Move Reservation Records"
|
|
1746
2338
|
},
|
|
1747
2339
|
"MoveReservationBatchPostBody": {
|
|
1748
2340
|
"type": "object",
|
|
@@ -1752,6 +2344,7 @@
|
|
|
1752
2344
|
},
|
|
1753
2345
|
"records": {
|
|
1754
2346
|
"type": "array",
|
|
2347
|
+
"description": "List of records to process in a batch update. The maximum number of entries in the array is 100.",
|
|
1755
2348
|
"items": {
|
|
1756
2349
|
"$ref": "#/components/schemas/MoveReservationBodyRecords"
|
|
1757
2350
|
}
|
|
@@ -1760,7 +2353,8 @@
|
|
|
1760
2353
|
"required": [
|
|
1761
2354
|
"allOrNothingTransferId",
|
|
1762
2355
|
"records"
|
|
1763
|
-
]
|
|
2356
|
+
],
|
|
2357
|
+
"title": "Move Reservations Batch Call"
|
|
1764
2358
|
},
|
|
1765
2359
|
"MoveReservationErrorDetail": {
|
|
1766
2360
|
"type": "object",
|
|
@@ -1797,6 +2391,7 @@
|
|
|
1797
2391
|
"quantity": {
|
|
1798
2392
|
"type": "number",
|
|
1799
2393
|
"format": "double",
|
|
2394
|
+
"example": 2.011,
|
|
1800
2395
|
"minimum": 0.001,
|
|
1801
2396
|
"multipleOf": 0.001
|
|
1802
2397
|
}
|
|
@@ -1812,6 +2407,8 @@
|
|
|
1812
2407
|
},
|
|
1813
2408
|
"Message": {
|
|
1814
2409
|
"type": "string",
|
|
2410
|
+
"description": "The error message",
|
|
2411
|
+
"example": "MoveError",
|
|
1815
2412
|
"maxLength": 128,
|
|
1816
2413
|
"pattern": "^[a-zA-Z0-9\\- ]*$"
|
|
1817
2414
|
},
|
|
@@ -1837,9 +2434,30 @@
|
|
|
1837
2434
|
"MoveReservationErrorsResponse": {
|
|
1838
2435
|
"type": "object",
|
|
1839
2436
|
"additionalProperties": false,
|
|
2437
|
+
"example": {
|
|
2438
|
+
"errors": [
|
|
2439
|
+
{
|
|
2440
|
+
"details": {
|
|
2441
|
+
"id": "82251928-8863-488e-840b-2aebd10b57ba",
|
|
2442
|
+
"externalRefId": "7282822-9823-aaa",
|
|
2443
|
+
"from": {
|
|
2444
|
+
"group": "UnitedStates"
|
|
2445
|
+
},
|
|
2446
|
+
"to": {
|
|
2447
|
+
"location": "warehouse5"
|
|
2448
|
+
},
|
|
2449
|
+
"sku": "sku-002",
|
|
2450
|
+
"quantity": 2.011
|
|
2451
|
+
},
|
|
2452
|
+
"message": "Insufficient Quantity",
|
|
2453
|
+
"errorCode": "InsufficientQuantity"
|
|
2454
|
+
}
|
|
2455
|
+
]
|
|
2456
|
+
},
|
|
1840
2457
|
"properties": {
|
|
1841
2458
|
"errors": {
|
|
1842
2459
|
"type": "array",
|
|
2460
|
+
"description": "Errors generated during transfer/move reservation",
|
|
1843
2461
|
"items": {
|
|
1844
2462
|
"$ref": "#/components/schemas/MoveReservationError"
|
|
1845
2463
|
}
|
|
@@ -1847,11 +2465,14 @@
|
|
|
1847
2465
|
},
|
|
1848
2466
|
"required": [
|
|
1849
2467
|
"errors"
|
|
1850
|
-
]
|
|
2468
|
+
],
|
|
2469
|
+
"title": "moveReservationsErrorResponse"
|
|
1851
2470
|
},
|
|
1852
2471
|
"QuantityOnHand": {
|
|
1853
2472
|
"type": "number",
|
|
1854
2473
|
"format": "double",
|
|
2474
|
+
"description": "Quantity on hand.",
|
|
2475
|
+
"example": 1200.35,
|
|
1855
2476
|
"minimum": 0,
|
|
1856
2477
|
"multipleOf": 0.001
|
|
1857
2478
|
},
|
|
@@ -1892,7 +2513,8 @@
|
|
|
1892
2513
|
},
|
|
1893
2514
|
"required": [
|
|
1894
2515
|
"records"
|
|
1895
|
-
]
|
|
2516
|
+
],
|
|
2517
|
+
"title": "Request Body By Location Only"
|
|
1896
2518
|
},
|
|
1897
2519
|
"UnreservedDetail": {
|
|
1898
2520
|
"type": "object",
|
|
@@ -1913,7 +2535,8 @@
|
|
|
1913
2535
|
"$ref": "#/components/schemas/SkuId"
|
|
1914
2536
|
},
|
|
1915
2537
|
"quantity": {
|
|
1916
|
-
"type": "number"
|
|
2538
|
+
"type": "number",
|
|
2539
|
+
"example": 0
|
|
1917
2540
|
}
|
|
1918
2541
|
},
|
|
1919
2542
|
"required": [
|
|
@@ -1928,6 +2551,19 @@
|
|
|
1928
2551
|
"properties": {
|
|
1929
2552
|
"errors": {
|
|
1930
2553
|
"type": "array",
|
|
2554
|
+
"example": [
|
|
2555
|
+
{
|
|
2556
|
+
"details": {
|
|
2557
|
+
"id": "82251928-8863-488e-840b-2aebd10b6666",
|
|
2558
|
+
"externalRefId": "7282822-9823-bbb",
|
|
2559
|
+
"group": "UnitedStates",
|
|
2560
|
+
"sku": "sku5678",
|
|
2561
|
+
"quantity": 0
|
|
2562
|
+
},
|
|
2563
|
+
"message": "Insufficient Quantity",
|
|
2564
|
+
"errorCode": "InsufficientQuantity"
|
|
2565
|
+
}
|
|
2566
|
+
],
|
|
1931
2567
|
"items": {
|
|
1932
2568
|
"type": "object",
|
|
1933
2569
|
"properties": {
|
|
@@ -1949,21 +2585,46 @@
|
|
|
1949
2585
|
},
|
|
1950
2586
|
"required": [
|
|
1951
2587
|
"errors"
|
|
1952
|
-
]
|
|
2588
|
+
],
|
|
2589
|
+
"title": "Unreserve Response Body"
|
|
1953
2590
|
},
|
|
1954
2591
|
"FulfillmentTime": {
|
|
1955
2592
|
"type": "string",
|
|
1956
2593
|
"format": "date-time",
|
|
2594
|
+
"description": "The time the fulfillment takes place",
|
|
2595
|
+
"example": "2019-07-24T21:13:00Z",
|
|
1957
2596
|
"maxLength": 30
|
|
1958
2597
|
},
|
|
1959
2598
|
"FulfillQuantityRequestBody": {
|
|
1960
2599
|
"type": "object",
|
|
1961
2600
|
"additionalProperties": false,
|
|
2601
|
+
"description": "Fulfills the given quantity of reservations for a SKU at a given location. The given quantity will be subtracted from the reservation count and the quantity on hand, in an atomic operation.\n",
|
|
2602
|
+
"example": {
|
|
2603
|
+
"records": [
|
|
2604
|
+
{
|
|
2605
|
+
"id": "82251928-8863-488e-840b-2aebd10b57ba",
|
|
2606
|
+
"externalRefId": "7282822-9823-aaa",
|
|
2607
|
+
"location": "warehouse5",
|
|
2608
|
+
"sku": "sku1234",
|
|
2609
|
+
"quantity": 1200.35,
|
|
2610
|
+
"fulfillmentTime": "2019-07-24T21:13:00Z"
|
|
2611
|
+
},
|
|
2612
|
+
{
|
|
2613
|
+
"id": "82251928-8863-488e-840b-2aeb567d3a87",
|
|
2614
|
+
"externalRefId": "7282822-9823-ddd",
|
|
2615
|
+
"location": "warehouse4",
|
|
2616
|
+
"sku": "sku5678",
|
|
2617
|
+
"quantity": 201.27
|
|
2618
|
+
}
|
|
2619
|
+
]
|
|
2620
|
+
},
|
|
1962
2621
|
"properties": {
|
|
1963
2622
|
"records": {
|
|
1964
2623
|
"type": "array",
|
|
2624
|
+
"description": "List of records to process in a batch update. The maximum number of entries in the array is 100.",
|
|
1965
2625
|
"items": {
|
|
1966
2626
|
"type": "object",
|
|
2627
|
+
"description": "The records provided in a fulfillment request.",
|
|
1967
2628
|
"properties": {
|
|
1968
2629
|
"id": {
|
|
1969
2630
|
"$ref": "#/components/schemas/IdempotenceId"
|
|
@@ -2000,14 +2661,31 @@
|
|
|
2000
2661
|
"FulfillQuantityResponseErrors": {
|
|
2001
2662
|
"type": "object",
|
|
2002
2663
|
"additionalProperties": false,
|
|
2664
|
+
"example": {
|
|
2665
|
+
"errors": [
|
|
2666
|
+
{
|
|
2667
|
+
"details": {
|
|
2668
|
+
"id": "82251928-8863-488e-840b-2aebd10b57ba",
|
|
2669
|
+
"externalRefId": "7282822-9823-aaa",
|
|
2670
|
+
"location": "warehouse5",
|
|
2671
|
+
"sku": "sku1234",
|
|
2672
|
+
"quantity": 1200.35
|
|
2673
|
+
},
|
|
2674
|
+
"message": "Failed to fulfill, invalid location provided.",
|
|
2675
|
+
"errorCode": "err751"
|
|
2676
|
+
}
|
|
2677
|
+
]
|
|
2678
|
+
},
|
|
2003
2679
|
"properties": {
|
|
2004
2680
|
"errors": {
|
|
2005
2681
|
"type": "array",
|
|
2006
2682
|
"items": {
|
|
2007
2683
|
"type": "object",
|
|
2684
|
+
"description": "Error message generated after a failed fulfillment.",
|
|
2008
2685
|
"properties": {
|
|
2009
2686
|
"details": {
|
|
2010
2687
|
"type": "object",
|
|
2688
|
+
"description": "Reservation fulfillment error detail information",
|
|
2011
2689
|
"properties": {
|
|
2012
2690
|
"id": {
|
|
2013
2691
|
"$ref": "#/components/schemas/IdempotenceId"
|
|
@@ -2034,6 +2712,8 @@
|
|
|
2034
2712
|
},
|
|
2035
2713
|
"message": {
|
|
2036
2714
|
"type": "string",
|
|
2715
|
+
"description": "Error message",
|
|
2716
|
+
"example": "Fulfillment failed - invalid location provided",
|
|
2037
2717
|
"maxLength": 128
|
|
2038
2718
|
},
|
|
2039
2719
|
"errorCode": {
|
|
@@ -2057,12 +2737,14 @@
|
|
|
2057
2737
|
"organizationId": {
|
|
2058
2738
|
"name": "organizationId",
|
|
2059
2739
|
"in": "path",
|
|
2740
|
+
"description": "An identifier for the organization the request is being made by",
|
|
2060
2741
|
"required": true,
|
|
2061
2742
|
"style": "simple",
|
|
2062
2743
|
"explode": false,
|
|
2063
2744
|
"schema": {
|
|
2064
2745
|
"$ref": "#/components/schemas/OrganizationId"
|
|
2065
|
-
}
|
|
2746
|
+
},
|
|
2747
|
+
"example": "f_ecom_zzxy_prd"
|
|
2066
2748
|
},
|
|
2067
2749
|
"reservationId": {
|
|
2068
2750
|
"name": "reservationId",
|
|
@@ -2072,14 +2754,837 @@
|
|
|
2072
2754
|
"explode": false,
|
|
2073
2755
|
"schema": {
|
|
2074
2756
|
"type": "string",
|
|
2757
|
+
"example": "12345-23456-3456-4567-5678",
|
|
2075
2758
|
"maxLength": 36,
|
|
2076
2759
|
"pattern": "^[0-9a-fA-F\\-]{36}$"
|
|
2077
2760
|
}
|
|
2078
2761
|
}
|
|
2079
2762
|
},
|
|
2763
|
+
"examples": {
|
|
2764
|
+
"placeReservationRequestBodyLocation": {
|
|
2765
|
+
"summary": "Example request body for placing a reservation by location",
|
|
2766
|
+
"value": {
|
|
2767
|
+
"externalRefId": "7282822-9823-aaa",
|
|
2768
|
+
"expirationSeconds": 300,
|
|
2769
|
+
"allowPartialReservations": true,
|
|
2770
|
+
"reservationTime": "2019-07-24T21:13:00Z",
|
|
2771
|
+
"locations": [
|
|
2772
|
+
{
|
|
2773
|
+
"id": "warehouse5",
|
|
2774
|
+
"reservations": [
|
|
2775
|
+
{
|
|
2776
|
+
"sku": "sku1234",
|
|
2777
|
+
"quantity": 10
|
|
2778
|
+
}
|
|
2779
|
+
]
|
|
2780
|
+
}
|
|
2781
|
+
]
|
|
2782
|
+
}
|
|
2783
|
+
},
|
|
2784
|
+
"placeReservationRequestBodyLocationAllOrNothing": {
|
|
2785
|
+
"summary": "Example request body for placing a reservation by location with all or nothing reservations",
|
|
2786
|
+
"value": {
|
|
2787
|
+
"externalRefId": "7282822-9823-aaa",
|
|
2788
|
+
"expirationSeconds": 300,
|
|
2789
|
+
"allowPartialReservations": true,
|
|
2790
|
+
"reservationTime": "2019-07-24T21:13:00Z",
|
|
2791
|
+
"locations": [
|
|
2792
|
+
{
|
|
2793
|
+
"id": "warehouse5",
|
|
2794
|
+
"reservations": [
|
|
2795
|
+
{
|
|
2796
|
+
"sku": "sku1234",
|
|
2797
|
+
"quantity": 10
|
|
2798
|
+
}
|
|
2799
|
+
],
|
|
2800
|
+
"allOrNothingReservations": [
|
|
2801
|
+
{
|
|
2802
|
+
"id": "a14s-4b1c-1a3cbd4",
|
|
2803
|
+
"reservations": [
|
|
2804
|
+
{
|
|
2805
|
+
"sku": "sku1234",
|
|
2806
|
+
"quantity": 10
|
|
2807
|
+
}
|
|
2808
|
+
]
|
|
2809
|
+
}
|
|
2810
|
+
]
|
|
2811
|
+
}
|
|
2812
|
+
]
|
|
2813
|
+
}
|
|
2814
|
+
},
|
|
2815
|
+
"placeReservationRequestBodyGroups": {
|
|
2816
|
+
"summary": "Example request body for placing a reservation by group",
|
|
2817
|
+
"value": {
|
|
2818
|
+
"externalRefId": "7282822-9823-aaa",
|
|
2819
|
+
"expirationSeconds": 300,
|
|
2820
|
+
"allowPartialReservations": true,
|
|
2821
|
+
"reservationTime": "2019-07-24T21:13:00Z",
|
|
2822
|
+
"groups": [
|
|
2823
|
+
{
|
|
2824
|
+
"id": "UnitedStates",
|
|
2825
|
+
"reservations": [
|
|
2826
|
+
{
|
|
2827
|
+
"sku": "sku1234",
|
|
2828
|
+
"quantity": 10
|
|
2829
|
+
}
|
|
2830
|
+
]
|
|
2831
|
+
}
|
|
2832
|
+
]
|
|
2833
|
+
}
|
|
2834
|
+
},
|
|
2835
|
+
"placeReservationRequestBodyLocationAndGroup": {
|
|
2836
|
+
"summary": "Example request body for placing a reservation by both location and group",
|
|
2837
|
+
"value": {
|
|
2838
|
+
"externalRefId": "7282822-9823-aaa",
|
|
2839
|
+
"expirationSeconds": 300,
|
|
2840
|
+
"allowPartialReservations": true,
|
|
2841
|
+
"reservationTime": "2019-07-24T21:13:00Z",
|
|
2842
|
+
"groups": [
|
|
2843
|
+
{
|
|
2844
|
+
"id": "UnitedStates",
|
|
2845
|
+
"reservations": [
|
|
2846
|
+
{
|
|
2847
|
+
"sku": "sku1234",
|
|
2848
|
+
"quantity": 10
|
|
2849
|
+
}
|
|
2850
|
+
]
|
|
2851
|
+
}
|
|
2852
|
+
],
|
|
2853
|
+
"locations": [
|
|
2854
|
+
{
|
|
2855
|
+
"id": "warehouse5",
|
|
2856
|
+
"reservations": [
|
|
2857
|
+
{
|
|
2858
|
+
"sku": "sku1234",
|
|
2859
|
+
"quantity": 10
|
|
2860
|
+
}
|
|
2861
|
+
]
|
|
2862
|
+
}
|
|
2863
|
+
]
|
|
2864
|
+
}
|
|
2865
|
+
},
|
|
2866
|
+
"placeReservationAgainstATFBody": {
|
|
2867
|
+
"summary": "Example request body for placing a reservation against ATF",
|
|
2868
|
+
"value": {
|
|
2869
|
+
"externalRefId": "7282822-9823-aaa",
|
|
2870
|
+
"expirationSeconds": 300,
|
|
2871
|
+
"allowPartialReservations": true,
|
|
2872
|
+
"fulfillOnly": true,
|
|
2873
|
+
"reservationTime": "2019-07-24T21:13:00Z",
|
|
2874
|
+
"locations": [
|
|
2875
|
+
{
|
|
2876
|
+
"id": "warehouse5",
|
|
2877
|
+
"reservations": [
|
|
2878
|
+
{
|
|
2879
|
+
"sku": "sku1234",
|
|
2880
|
+
"quantity": 10
|
|
2881
|
+
}
|
|
2882
|
+
]
|
|
2883
|
+
}
|
|
2884
|
+
]
|
|
2885
|
+
}
|
|
2886
|
+
},
|
|
2887
|
+
"reservationSuccessExample": {
|
|
2888
|
+
"summary": "Example response with successful reservation for groups and locations",
|
|
2889
|
+
"value": {
|
|
2890
|
+
"reservationTime": "2019-07-24T21:13:00Z",
|
|
2891
|
+
"expirationTime": "2019-07-24T22:13:00Z",
|
|
2892
|
+
"success": true,
|
|
2893
|
+
"groups": [
|
|
2894
|
+
{
|
|
2895
|
+
"id": "UnitedStates",
|
|
2896
|
+
"details": [
|
|
2897
|
+
{
|
|
2898
|
+
"sku": "sku1234",
|
|
2899
|
+
"quantity": 10.1
|
|
2900
|
+
}
|
|
2901
|
+
]
|
|
2902
|
+
}
|
|
2903
|
+
],
|
|
2904
|
+
"locations": [
|
|
2905
|
+
{
|
|
2906
|
+
"id": "warehouse5",
|
|
2907
|
+
"details": [
|
|
2908
|
+
{
|
|
2909
|
+
"sku": "sku1234",
|
|
2910
|
+
"quantity": 10.1
|
|
2911
|
+
}
|
|
2912
|
+
]
|
|
2913
|
+
}
|
|
2914
|
+
]
|
|
2915
|
+
}
|
|
2916
|
+
},
|
|
2917
|
+
"placeReservationResponseBody": {
|
|
2918
|
+
"summary": "Example response with partial failure for groups and locations",
|
|
2919
|
+
"value": {
|
|
2920
|
+
"reservationTime": "2019-07-24T21:13:00Z",
|
|
2921
|
+
"expirationTime": "2019-07-24T22:13:00Z",
|
|
2922
|
+
"success": false,
|
|
2923
|
+
"groups": [
|
|
2924
|
+
{
|
|
2925
|
+
"id": "UnitedStates",
|
|
2926
|
+
"errors": [
|
|
2927
|
+
{
|
|
2928
|
+
"sku": "sku5678",
|
|
2929
|
+
"errorCode": "Unknown"
|
|
2930
|
+
}
|
|
2931
|
+
],
|
|
2932
|
+
"details": [
|
|
2933
|
+
{
|
|
2934
|
+
"sku": "sku1234",
|
|
2935
|
+
"quantity": 10
|
|
2936
|
+
}
|
|
2937
|
+
]
|
|
2938
|
+
}
|
|
2939
|
+
],
|
|
2940
|
+
"locations": [
|
|
2941
|
+
{
|
|
2942
|
+
"id": "warehouse5",
|
|
2943
|
+
"errors": [
|
|
2944
|
+
{
|
|
2945
|
+
"sku": "sku5678",
|
|
2946
|
+
"errorCode": "Unknown"
|
|
2947
|
+
}
|
|
2948
|
+
],
|
|
2949
|
+
"details": [
|
|
2950
|
+
{
|
|
2951
|
+
"sku": "sku1234",
|
|
2952
|
+
"quantity": 10
|
|
2953
|
+
}
|
|
2954
|
+
]
|
|
2955
|
+
}
|
|
2956
|
+
]
|
|
2957
|
+
}
|
|
2958
|
+
},
|
|
2959
|
+
"reservationFail": {
|
|
2960
|
+
"summary": "Example response with reservation failure due to insufficient quantity",
|
|
2961
|
+
"value": {
|
|
2962
|
+
"reservationTime": "2019-07-24T21:13:00Z",
|
|
2963
|
+
"expirationTime": "2019-07-24T22:13:00Z",
|
|
2964
|
+
"success": false,
|
|
2965
|
+
"groups": [
|
|
2966
|
+
{
|
|
2967
|
+
"id": "UnitedStates",
|
|
2968
|
+
"errors": [
|
|
2969
|
+
{
|
|
2970
|
+
"errorCode": "InsufficientQuantity",
|
|
2971
|
+
"sku": "sku1234"
|
|
2972
|
+
}
|
|
2973
|
+
]
|
|
2974
|
+
}
|
|
2975
|
+
],
|
|
2976
|
+
"locations": [
|
|
2977
|
+
{
|
|
2978
|
+
"id": "warehouse5",
|
|
2979
|
+
"errors": [
|
|
2980
|
+
{
|
|
2981
|
+
"sku": "sku1234",
|
|
2982
|
+
"errorCode": "InsufficientQuantity"
|
|
2983
|
+
}
|
|
2984
|
+
]
|
|
2985
|
+
}
|
|
2986
|
+
]
|
|
2987
|
+
}
|
|
2988
|
+
},
|
|
2989
|
+
"reservationPartialQtySuccess": {
|
|
2990
|
+
"summary": "Example response with partial quantity success for groups and locations",
|
|
2991
|
+
"value": {
|
|
2992
|
+
"reservationTime": "2019-07-24T21:13:00Z",
|
|
2993
|
+
"expirationTime": "2019-07-24T22:13:00Z",
|
|
2994
|
+
"success": false,
|
|
2995
|
+
"groups": [
|
|
2996
|
+
{
|
|
2997
|
+
"id": "UnitedStates",
|
|
2998
|
+
"errors": [
|
|
2999
|
+
{
|
|
3000
|
+
"sku": "sku1234",
|
|
3001
|
+
"errorCode": "InsufficientQuantity"
|
|
3002
|
+
}
|
|
3003
|
+
],
|
|
3004
|
+
"details": [
|
|
3005
|
+
{
|
|
3006
|
+
"sku": "sku1234",
|
|
3007
|
+
"quantity": 10.1
|
|
3008
|
+
}
|
|
3009
|
+
]
|
|
3010
|
+
}
|
|
3011
|
+
],
|
|
3012
|
+
"locations": [
|
|
3013
|
+
{
|
|
3014
|
+
"id": "warehouse5",
|
|
3015
|
+
"errors": [
|
|
3016
|
+
{
|
|
3017
|
+
"sku": "sku1234",
|
|
3018
|
+
"errorCode": "InsufficientQuantity"
|
|
3019
|
+
}
|
|
3020
|
+
],
|
|
3021
|
+
"details": [
|
|
3022
|
+
{
|
|
3023
|
+
"sku": "sku1234",
|
|
3024
|
+
"quantity": 10.1
|
|
3025
|
+
}
|
|
3026
|
+
]
|
|
3027
|
+
}
|
|
3028
|
+
]
|
|
3029
|
+
}
|
|
3030
|
+
},
|
|
3031
|
+
"reservationPartialItemSuccess": {
|
|
3032
|
+
"summary": "Example response with partial item success for groups and locations",
|
|
3033
|
+
"value": {
|
|
3034
|
+
"reservationTime": "2019-07-24T21:13:00Z",
|
|
3035
|
+
"expirationTime": "2019-07-24T22:13:00Z",
|
|
3036
|
+
"success": true,
|
|
3037
|
+
"groups": [
|
|
3038
|
+
{
|
|
3039
|
+
"id": "UnitedStates",
|
|
3040
|
+
"errors": [
|
|
3041
|
+
{
|
|
3042
|
+
"sku": "sku1234",
|
|
3043
|
+
"errorCode": "InsufficientQuantity"
|
|
3044
|
+
}
|
|
3045
|
+
],
|
|
3046
|
+
"details": [
|
|
3047
|
+
{
|
|
3048
|
+
"sku": "sku1234",
|
|
3049
|
+
"quantity": 10.1
|
|
3050
|
+
}
|
|
3051
|
+
]
|
|
3052
|
+
}
|
|
3053
|
+
],
|
|
3054
|
+
"locations": [
|
|
3055
|
+
{
|
|
3056
|
+
"id": "warehouse5",
|
|
3057
|
+
"errors": [
|
|
3058
|
+
{
|
|
3059
|
+
"sku": "sku1234",
|
|
3060
|
+
"errorCode": "InsufficientQuantity"
|
|
3061
|
+
}
|
|
3062
|
+
],
|
|
3063
|
+
"details": [
|
|
3064
|
+
{
|
|
3065
|
+
"sku": "sku1234",
|
|
3066
|
+
"quantity": 10.1
|
|
3067
|
+
}
|
|
3068
|
+
]
|
|
3069
|
+
}
|
|
3070
|
+
]
|
|
3071
|
+
}
|
|
3072
|
+
},
|
|
3073
|
+
"reservationPartialNoItemSuccess": {
|
|
3074
|
+
"summary": "Example response with no item success for groups and locations",
|
|
3075
|
+
"value": {
|
|
3076
|
+
"reservationTime": "2019-07-24T21:13:00Z",
|
|
3077
|
+
"expirationTime": "2019-07-24T21:18:00Z",
|
|
3078
|
+
"success": false,
|
|
3079
|
+
"groups": [
|
|
3080
|
+
{
|
|
3081
|
+
"id": "Germany",
|
|
3082
|
+
"errors": [
|
|
3083
|
+
{
|
|
3084
|
+
"sku": "sku1234",
|
|
3085
|
+
"errorCode": "InsufficientQuantity"
|
|
3086
|
+
},
|
|
3087
|
+
{
|
|
3088
|
+
"sku": "sku5678",
|
|
3089
|
+
"errorCode": "InsufficientQuantity"
|
|
3090
|
+
}
|
|
3091
|
+
]
|
|
3092
|
+
}
|
|
3093
|
+
],
|
|
3094
|
+
"locations": [
|
|
3095
|
+
{
|
|
3096
|
+
"id": "warehouse5",
|
|
3097
|
+
"errors": [
|
|
3098
|
+
{
|
|
3099
|
+
"sku": "sku1234",
|
|
3100
|
+
"errorCode": "InsufficientQuantity"
|
|
3101
|
+
},
|
|
3102
|
+
{
|
|
3103
|
+
"sku": "sku5678",
|
|
3104
|
+
"errorCode": "InsufficientQuantity"
|
|
3105
|
+
}
|
|
3106
|
+
]
|
|
3107
|
+
}
|
|
3108
|
+
]
|
|
3109
|
+
}
|
|
3110
|
+
},
|
|
3111
|
+
"reservationNonPartialSomeItemSuccessSomeFail": {
|
|
3112
|
+
"summary": "Example response with some items succeeded and some failed for groups and locations",
|
|
3113
|
+
"value": {
|
|
3114
|
+
"reservationTime": "2019-07-24T21:13:00Z",
|
|
3115
|
+
"expirationTime": "2019-07-24T21:18:00Z",
|
|
3116
|
+
"success": false,
|
|
3117
|
+
"groups": [
|
|
3118
|
+
{
|
|
3119
|
+
"id": "Germany",
|
|
3120
|
+
"errors": [
|
|
3121
|
+
{
|
|
3122
|
+
"sku": "sku1234",
|
|
3123
|
+
"errorCode": "InsufficientQuantity"
|
|
3124
|
+
},
|
|
3125
|
+
{
|
|
3126
|
+
"sku": "sku5678",
|
|
3127
|
+
"errorCode": "InsufficientQuantity"
|
|
3128
|
+
}
|
|
3129
|
+
]
|
|
3130
|
+
}
|
|
3131
|
+
],
|
|
3132
|
+
"locations": [
|
|
3133
|
+
{
|
|
3134
|
+
"id": "warehouse5",
|
|
3135
|
+
"errors": [
|
|
3136
|
+
{
|
|
3137
|
+
"sku": "sku1234",
|
|
3138
|
+
"errorCode": "InsufficientQuantity"
|
|
3139
|
+
},
|
|
3140
|
+
{
|
|
3141
|
+
"sku": "sku5678",
|
|
3142
|
+
"errorCode": "InsufficientQuantity"
|
|
3143
|
+
}
|
|
3144
|
+
]
|
|
3145
|
+
}
|
|
3146
|
+
]
|
|
3147
|
+
}
|
|
3148
|
+
},
|
|
3149
|
+
"reservationNonPartialAllItemsFail": {
|
|
3150
|
+
"summary": "Example response where all items failed for groups and locations",
|
|
3151
|
+
"value": {
|
|
3152
|
+
"reservationTime": "2019-07-24T21:13:00Z",
|
|
3153
|
+
"expirationTime": "2019-07-24T21:18:00Z",
|
|
3154
|
+
"success": false,
|
|
3155
|
+
"groups": [
|
|
3156
|
+
{
|
|
3157
|
+
"id": "Germany",
|
|
3158
|
+
"errors": [
|
|
3159
|
+
{
|
|
3160
|
+
"sku": "sku1234",
|
|
3161
|
+
"errorCode": "InsufficientQuantity"
|
|
3162
|
+
},
|
|
3163
|
+
{
|
|
3164
|
+
"sku": "sku5678",
|
|
3165
|
+
"errorCode": "InsufficientQuantity"
|
|
3166
|
+
}
|
|
3167
|
+
]
|
|
3168
|
+
}
|
|
3169
|
+
],
|
|
3170
|
+
"locations": [
|
|
3171
|
+
{
|
|
3172
|
+
"id": "warehouse5",
|
|
3173
|
+
"errors": [
|
|
3174
|
+
{
|
|
3175
|
+
"sku": "sku1234",
|
|
3176
|
+
"errorCode": "InsufficientQuantity"
|
|
3177
|
+
},
|
|
3178
|
+
{
|
|
3179
|
+
"sku": "sku5678",
|
|
3180
|
+
"errorCode": "InsufficientQuantity"
|
|
3181
|
+
}
|
|
3182
|
+
]
|
|
3183
|
+
}
|
|
3184
|
+
]
|
|
3185
|
+
}
|
|
3186
|
+
},
|
|
3187
|
+
"LocationGroupNotFound": {
|
|
3188
|
+
"value": {
|
|
3189
|
+
"errorCode": "GroupDoesNotExist",
|
|
3190
|
+
"message": "No group exists with ID",
|
|
3191
|
+
"type": "about:blank"
|
|
3192
|
+
}
|
|
3193
|
+
},
|
|
3194
|
+
"LocationIdNotFound": {
|
|
3195
|
+
"value": {
|
|
3196
|
+
"errorCode": "LocationDoesNotExist",
|
|
3197
|
+
"message": "No location exists with ID 'warehouse5'",
|
|
3198
|
+
"type": "about:blank"
|
|
3199
|
+
}
|
|
3200
|
+
},
|
|
3201
|
+
"NoLocationOrGroupsNotProvided": {
|
|
3202
|
+
"value": {
|
|
3203
|
+
"errorCode": "InvalidRequest",
|
|
3204
|
+
"message": "No location or groups provided.",
|
|
3205
|
+
"type": "about:blank"
|
|
3206
|
+
}
|
|
3207
|
+
},
|
|
3208
|
+
"TenantNotProvisioned": {
|
|
3209
|
+
"value": {
|
|
3210
|
+
"type": "about:blank",
|
|
3211
|
+
"errorCode": "TenantNotProvisioned",
|
|
3212
|
+
"message": "The client is not correctly configured to access the system."
|
|
3213
|
+
}
|
|
3214
|
+
},
|
|
3215
|
+
"CancelReservation": {
|
|
3216
|
+
"value": {
|
|
3217
|
+
"status": "CANCELLED"
|
|
3218
|
+
}
|
|
3219
|
+
},
|
|
3220
|
+
"UpdateReservation": {
|
|
3221
|
+
"value": {
|
|
3222
|
+
"externalRefId": "7282822-9823-aaa",
|
|
3223
|
+
"allowPartialReservations": true,
|
|
3224
|
+
"reservationTime": "2019-07-24T21:13:00Z",
|
|
3225
|
+
"id": "b45a0d25-d9e2-419f-a55a-f435c871fe2b",
|
|
3226
|
+
"locations": [
|
|
3227
|
+
{
|
|
3228
|
+
"id": "warehouse5",
|
|
3229
|
+
"reservations": [
|
|
3230
|
+
{
|
|
3231
|
+
"sku": "sku1234",
|
|
3232
|
+
"quantity": 10
|
|
3233
|
+
},
|
|
3234
|
+
{
|
|
3235
|
+
"sku": "sku5678",
|
|
3236
|
+
"quantity": 7
|
|
3237
|
+
}
|
|
3238
|
+
],
|
|
3239
|
+
"allOrNothingReservations": {
|
|
3240
|
+
"id": "a14s-4b1c-1a3cbd4",
|
|
3241
|
+
"reservations": [
|
|
3242
|
+
{
|
|
3243
|
+
"sku": "sku1234",
|
|
3244
|
+
"quantity": 10
|
|
3245
|
+
},
|
|
3246
|
+
{
|
|
3247
|
+
"sku": "skuABCDE",
|
|
3248
|
+
"quantity": 27
|
|
3249
|
+
}
|
|
3250
|
+
]
|
|
3251
|
+
}
|
|
3252
|
+
}
|
|
3253
|
+
],
|
|
3254
|
+
"groups": [
|
|
3255
|
+
{
|
|
3256
|
+
"id": "Arizona",
|
|
3257
|
+
"reservations": [
|
|
3258
|
+
{
|
|
3259
|
+
"sku": "sku1234",
|
|
3260
|
+
"quantity": 10
|
|
3261
|
+
},
|
|
3262
|
+
{
|
|
3263
|
+
"sku": "skuHIJKL",
|
|
3264
|
+
"quantity": 37
|
|
3265
|
+
}
|
|
3266
|
+
],
|
|
3267
|
+
"allOrNothingReservations": {
|
|
3268
|
+
"id": "a14s-4b1c-1a3cbd4",
|
|
3269
|
+
"reservations": [
|
|
3270
|
+
{
|
|
3271
|
+
"sku": "sku1234",
|
|
3272
|
+
"quantity": 10
|
|
3273
|
+
},
|
|
3274
|
+
{
|
|
3275
|
+
"sku": "skuZYX",
|
|
3276
|
+
"quantity": 47
|
|
3277
|
+
}
|
|
3278
|
+
]
|
|
3279
|
+
}
|
|
3280
|
+
}
|
|
3281
|
+
]
|
|
3282
|
+
}
|
|
3283
|
+
},
|
|
3284
|
+
"SuccessfulReservationUpdateResponse": {
|
|
3285
|
+
"value": {
|
|
3286
|
+
"reservationTime": "2019-07-24T21:13:00Z",
|
|
3287
|
+
"expirationTime": "2019-07-24T22:13:00Z",
|
|
3288
|
+
"success": true,
|
|
3289
|
+
"groups": [
|
|
3290
|
+
{
|
|
3291
|
+
"id": "UnitedStates",
|
|
3292
|
+
"details": [
|
|
3293
|
+
{
|
|
3294
|
+
"sku": "sku1234",
|
|
3295
|
+
"quantity": 10,
|
|
3296
|
+
"adjustment": 5
|
|
3297
|
+
}
|
|
3298
|
+
]
|
|
3299
|
+
}
|
|
3300
|
+
],
|
|
3301
|
+
"locations": [
|
|
3302
|
+
{
|
|
3303
|
+
"id": "warehouse5",
|
|
3304
|
+
"details": [
|
|
3305
|
+
{
|
|
3306
|
+
"sku": "sku1234",
|
|
3307
|
+
"quantity": 8,
|
|
3308
|
+
"adjustment": 4
|
|
3309
|
+
}
|
|
3310
|
+
]
|
|
3311
|
+
}
|
|
3312
|
+
]
|
|
3313
|
+
}
|
|
3314
|
+
},
|
|
3315
|
+
"PartialQuantitySuccessfulReservationUpdateResponse": {
|
|
3316
|
+
"value": {
|
|
3317
|
+
"reservationTime": "2019-07-24T21:13:00Z",
|
|
3318
|
+
"expirationTime": "2019-07-24T22:13:00Z",
|
|
3319
|
+
"success": false,
|
|
3320
|
+
"groups": [
|
|
3321
|
+
{
|
|
3322
|
+
"id": "Germany",
|
|
3323
|
+
"errors": [
|
|
3324
|
+
{
|
|
3325
|
+
"sku": "sku3456",
|
|
3326
|
+
"errorCode": "InsufficientQuantity"
|
|
3327
|
+
}
|
|
3328
|
+
],
|
|
3329
|
+
"details": [
|
|
3330
|
+
{
|
|
3331
|
+
"sku": "sku1234",
|
|
3332
|
+
"quantity": 8,
|
|
3333
|
+
"adjustment": 4
|
|
3334
|
+
}
|
|
3335
|
+
]
|
|
3336
|
+
}
|
|
3337
|
+
],
|
|
3338
|
+
"locations": [
|
|
3339
|
+
{
|
|
3340
|
+
"id": "warehouse5",
|
|
3341
|
+
"errors": [
|
|
3342
|
+
{
|
|
3343
|
+
"sku": "sku5678",
|
|
3344
|
+
"errorCode": "InsufficientQuantity"
|
|
3345
|
+
}
|
|
3346
|
+
],
|
|
3347
|
+
"details": [
|
|
3348
|
+
{
|
|
3349
|
+
"sku": "sku9875",
|
|
3350
|
+
"quantity": 8,
|
|
3351
|
+
"adjustment": 4
|
|
3352
|
+
}
|
|
3353
|
+
]
|
|
3354
|
+
}
|
|
3355
|
+
]
|
|
3356
|
+
}
|
|
3357
|
+
},
|
|
3358
|
+
"PartialAllItemsFailedReservationUpdateResponse": {
|
|
3359
|
+
"value": {
|
|
3360
|
+
"reservationTime": "2019-07-24T21:13:00Z",
|
|
3361
|
+
"expirationTime": "2019-07-24T22:13:00Z",
|
|
3362
|
+
"success": false,
|
|
3363
|
+
"groups": [
|
|
3364
|
+
{
|
|
3365
|
+
"id": "Germany",
|
|
3366
|
+
"errors": [
|
|
3367
|
+
{
|
|
3368
|
+
"sku": "sku3456",
|
|
3369
|
+
"errorCode": "InsufficientQuantity"
|
|
3370
|
+
},
|
|
3371
|
+
{
|
|
3372
|
+
"sku": "sku5678",
|
|
3373
|
+
"errorCode": "InsufficientQuantity"
|
|
3374
|
+
}
|
|
3375
|
+
]
|
|
3376
|
+
}
|
|
3377
|
+
],
|
|
3378
|
+
"locations": [
|
|
3379
|
+
{
|
|
3380
|
+
"id": "warehouse5",
|
|
3381
|
+
"errors": [
|
|
3382
|
+
{
|
|
3383
|
+
"sku": "sku6789",
|
|
3384
|
+
"errorCode": "InsufficientQuantity"
|
|
3385
|
+
},
|
|
3386
|
+
{
|
|
3387
|
+
"sku": "sku7891",
|
|
3388
|
+
"errorCode": "InsufficientQuantity"
|
|
3389
|
+
}
|
|
3390
|
+
]
|
|
3391
|
+
}
|
|
3392
|
+
]
|
|
3393
|
+
}
|
|
3394
|
+
},
|
|
3395
|
+
"FailedUpdateReservationUpdateResponse": {
|
|
3396
|
+
"value": {
|
|
3397
|
+
"reservationTime": "2019-07-24T21:13:00Z",
|
|
3398
|
+
"expirationTime": "2019-07-24T22:13:00Z",
|
|
3399
|
+
"success": false,
|
|
3400
|
+
"groups": [
|
|
3401
|
+
{
|
|
3402
|
+
"id": "Germany",
|
|
3403
|
+
"errors": [
|
|
3404
|
+
{
|
|
3405
|
+
"sku": "sku3456",
|
|
3406
|
+
"errorCode": "InsufficientQuantity"
|
|
3407
|
+
}
|
|
3408
|
+
]
|
|
3409
|
+
}
|
|
3410
|
+
],
|
|
3411
|
+
"locations": [
|
|
3412
|
+
{
|
|
3413
|
+
"id": "warehouse5",
|
|
3414
|
+
"errors": [
|
|
3415
|
+
{
|
|
3416
|
+
"sku": "sku6789",
|
|
3417
|
+
"errorCode": "InsufficientQuantity"
|
|
3418
|
+
}
|
|
3419
|
+
]
|
|
3420
|
+
}
|
|
3421
|
+
]
|
|
3422
|
+
}
|
|
3423
|
+
},
|
|
3424
|
+
"InvalidRequestParameter": {
|
|
3425
|
+
"value": {
|
|
3426
|
+
"errorCode": "InvalidRequestParameter",
|
|
3427
|
+
"message": "Reservation ID provided does not exist",
|
|
3428
|
+
"parameterName": "reservationId",
|
|
3429
|
+
"type": "about:blank"
|
|
3430
|
+
}
|
|
3431
|
+
},
|
|
3432
|
+
"EntityNotFound": {
|
|
3433
|
+
"value": {
|
|
3434
|
+
"type": "about:blank",
|
|
3435
|
+
"errorCode": "EntityNotFound",
|
|
3436
|
+
"message": "Reservation ID does not exist."
|
|
3437
|
+
}
|
|
3438
|
+
},
|
|
3439
|
+
"MoveReservationBatchPostBodyExample": {
|
|
3440
|
+
"value": {
|
|
3441
|
+
"allOrNothingTransferId": "a14s-4b1c-1a3cbd4",
|
|
3442
|
+
"records": [
|
|
3443
|
+
{
|
|
3444
|
+
"id": "82251928-8863-488e-840b-2aebd10b35ed",
|
|
3445
|
+
"externalRefId": "7282822-9823-aaa",
|
|
3446
|
+
"from": {
|
|
3447
|
+
"location": "warehouse4"
|
|
3448
|
+
},
|
|
3449
|
+
"to": {
|
|
3450
|
+
"location": "warehouse5"
|
|
3451
|
+
},
|
|
3452
|
+
"sku": "sku-001",
|
|
3453
|
+
"quantity": 2.011
|
|
3454
|
+
},
|
|
3455
|
+
{
|
|
3456
|
+
"id": "82251928-8863-488e-840b-2aebd10b57ba",
|
|
3457
|
+
"externalRefId": "7282822-9823-bbb",
|
|
3458
|
+
"from": {
|
|
3459
|
+
"group": "UnitedStates"
|
|
3460
|
+
},
|
|
3461
|
+
"to": {
|
|
3462
|
+
"location": "warehouse5"
|
|
3463
|
+
},
|
|
3464
|
+
"sku": "sku-002",
|
|
3465
|
+
"quantity": 7.417,
|
|
3466
|
+
"ignoreAvailabilityCheck": true
|
|
3467
|
+
},
|
|
3468
|
+
{
|
|
3469
|
+
"id": "12345-23456-3456-4567-5678-6F6F",
|
|
3470
|
+
"externalRefId": "1234561-3574-6B6D",
|
|
3471
|
+
"from": {
|
|
3472
|
+
"location": "warehouse5"
|
|
3473
|
+
},
|
|
3474
|
+
"to": {
|
|
3475
|
+
"group": "UnitedStates"
|
|
3476
|
+
},
|
|
3477
|
+
"sku": "sku1000",
|
|
3478
|
+
"quantity": 5.417
|
|
3479
|
+
}
|
|
3480
|
+
]
|
|
3481
|
+
}
|
|
3482
|
+
},
|
|
3483
|
+
"MoveReservationErrorsResponseExample": {
|
|
3484
|
+
"value": {
|
|
3485
|
+
"errors": [
|
|
3486
|
+
{
|
|
3487
|
+
"details": {
|
|
3488
|
+
"id": "82251928-8863-488e-840b-2aebd10b57ba",
|
|
3489
|
+
"externalRefId": "7282822-9823-aaa",
|
|
3490
|
+
"from": {
|
|
3491
|
+
"group": "UnitedStates"
|
|
3492
|
+
},
|
|
3493
|
+
"to": {
|
|
3494
|
+
"location": "warehouse5"
|
|
3495
|
+
},
|
|
3496
|
+
"sku": "sku-002",
|
|
3497
|
+
"quantity": 2.011
|
|
3498
|
+
},
|
|
3499
|
+
"message": "Insufficient Quantity",
|
|
3500
|
+
"errorCode": "InsufficientQuantity"
|
|
3501
|
+
}
|
|
3502
|
+
]
|
|
3503
|
+
}
|
|
3504
|
+
},
|
|
3505
|
+
"GroupToGroupNotAllowed": {
|
|
3506
|
+
"value": {
|
|
3507
|
+
"errorCode": "InvalidRequestParameter",
|
|
3508
|
+
"message": "Group to Group Transfers are not permitted.",
|
|
3509
|
+
"type": "about:blank"
|
|
3510
|
+
}
|
|
3511
|
+
},
|
|
3512
|
+
"LocationToLocationNotAllowed": {
|
|
3513
|
+
"value": {
|
|
3514
|
+
"errorCode": "InvalidRequestParameter",
|
|
3515
|
+
"message": "'from and to' Transfers between locations is not allowed",
|
|
3516
|
+
"type": "about:blank"
|
|
3517
|
+
}
|
|
3518
|
+
},
|
|
3519
|
+
"ForceReservationLocationToGroupNotAllowed": {
|
|
3520
|
+
"value": {
|
|
3521
|
+
"errorCode": "InvalidRequestParameter",
|
|
3522
|
+
"message": "Forcing a reservation cannot be done from a location to a group",
|
|
3523
|
+
"type": "about:blank"
|
|
3524
|
+
}
|
|
3525
|
+
},
|
|
3526
|
+
"InvalidTransferAllOrNothing": {
|
|
3527
|
+
"value": {
|
|
3528
|
+
"errorCode": "InvalidRequestParameter",
|
|
3529
|
+
"message": "All or nothing transfers are only allowed from Group to Location transfer types. Invalid transfer type for request",
|
|
3530
|
+
"type": "about:blank"
|
|
3531
|
+
}
|
|
3532
|
+
},
|
|
3533
|
+
"GenericErrorMessage": {
|
|
3534
|
+
"value": {
|
|
3535
|
+
"errorCode": "InvalidRequest",
|
|
3536
|
+
"message": "The format of the message is incorrect",
|
|
3537
|
+
"type": "about:blank"
|
|
3538
|
+
}
|
|
3539
|
+
},
|
|
3540
|
+
"TooManyFieldsProvided": {
|
|
3541
|
+
"value": {
|
|
3542
|
+
"errorCode": "InvalidRequestParameter",
|
|
3543
|
+
"message": "User provided locationId AND groupId. You can only provide one or the other, not both in a single record.",
|
|
3544
|
+
"type": "about:blank"
|
|
3545
|
+
}
|
|
3546
|
+
},
|
|
3547
|
+
"FulfillQuantityRequestBodyExample": {
|
|
3548
|
+
"summary": "Example request body for fulfill quantity",
|
|
3549
|
+
"value": {
|
|
3550
|
+
"records": [
|
|
3551
|
+
{
|
|
3552
|
+
"id": "82251928-8863-488e-840b-2aebd10b57ba",
|
|
3553
|
+
"externalRefId": "7282822-9823-aaa",
|
|
3554
|
+
"location": "warehouse5",
|
|
3555
|
+
"sku": "sku1234",
|
|
3556
|
+
"quantity": 1200.35,
|
|
3557
|
+
"fulfillmentTime": "2019-07-24T21:13:00Z"
|
|
3558
|
+
},
|
|
3559
|
+
{
|
|
3560
|
+
"id": "82251928-8863-488e-840b-2aeb567d3a87",
|
|
3561
|
+
"externalRefId": "7282822-9823-ddd",
|
|
3562
|
+
"location": "warehouse4",
|
|
3563
|
+
"sku": "sku5678",
|
|
3564
|
+
"quantity": 201.27
|
|
3565
|
+
}
|
|
3566
|
+
]
|
|
3567
|
+
}
|
|
3568
|
+
},
|
|
3569
|
+
"MissingParameter": {
|
|
3570
|
+
"value": {
|
|
3571
|
+
"type": "about:blank",
|
|
3572
|
+
"errorCode": "MissingParameter",
|
|
3573
|
+
"message": "The field 'quantity' is missing from the request body."
|
|
3574
|
+
}
|
|
3575
|
+
},
|
|
3576
|
+
"IDDoesNotExist": {
|
|
3577
|
+
"value": {
|
|
3578
|
+
"type": "about:blank",
|
|
3579
|
+
"errorCode": "InvalidRequestParameter",
|
|
3580
|
+
"message": "ID does not exist."
|
|
3581
|
+
}
|
|
3582
|
+
}
|
|
3583
|
+
},
|
|
2080
3584
|
"securitySchemes": {
|
|
2081
3585
|
"AmOAuth2": {
|
|
2082
3586
|
"type": "oauth2",
|
|
3587
|
+
"description": "AccountManager OAuth 2.0 bearer token Authentication.",
|
|
2083
3588
|
"flows": {
|
|
2084
3589
|
"clientCredentials": {
|
|
2085
3590
|
"tokenUrl": "https://account.demandware.com/dwsso/oauth2/access_token",
|