{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "#/components/schemas/responseFulfillmentSimulation", "title": "Response body", "description": "Expected response body of fulfillment simulation.", "type": "object", "required": [ "country", "items", "logisticsInfo", "postalCode" ], "properties": { "country": { "title": "Country", "description": "ISO 3-digit code of the country where the delivery address is located. If you don\u2019t want to send it, use the value null.", "type": "string" }, "items": { "title": "Items", "description": "Contains the data about each SKU in the cart.", "type": "array", "items": { "title": "Items", "description": "Contains the data about each SKU in the cart.", "type": "object", "required": [ "id", "listPrice", "measurementUnit", "merchantName", "offerings", "price", "priceTags", "priceValidUntil", "quantity", "requestIndex", "seller", "unitMultiplier" ], "properties": { "id": { "title": "id", "description": "SKU ID.", "type": "string" }, "listPrice": { "title": "listPrice", "description": "List price. It\u2019s the amount presented to the customer as a \u201cprevious\u201d price that has been lowered due to a discount. Don\u2019t separate the decimal places. The last two digits are the cents.", "type": "integer" }, "measurementUnit": { "title": "measurementUnit", "description": "SKU\u2019s measurement unit.", "type": "string" }, "merchantName": { "title": "merchantName", "description": "Name of the marketplace, used to guide payments. This field should be nulled if the marketplace is responsible for processing payments. Check out our [\u200b\u200bPayments in VTEX marketplaces](https://help.vtex.com/en/tutorial/payments-in-vtex-marketplaces--2kYOfWCZYweJkYl18bw9yD) article to know more.", "type": "string" }, "offerings": { "title": "offerings", "description": "Services that may be offered for this SKU. example are the assembly of a piece of furniture or warranty. In case these information are sent, the following fields are mandatory. If you don\u2019t want to send it, use an empty array.", "type": "array", "items": { "title": "offerings", "description": "Services that may be offered for this SKU. example are the assembly of a piece of furniture or warranty. In case these information are sent, the following fields are mandatory. If you don\u2019t want to send it, use an empty array.", "type": "object", "required": [ "type", "id", "name", "price" ], "properties": { "type": { "title": "type", "description": "Type of the service.", "type": "string" }, "id": { "title": "id", "description": "Service ID.", "type": "string" }, "name": { "title": "name", "description": "Service name.", "type": "string" }, "price": { "title": "price", "description": "Service price. The last two digits are the cents.", "type": "integer" } } } }, "price": { "title": "price", "description": "Actual selling price of the SKU. Don\u2019t separate the decimal places. The last two digits are the cents.", "type": "integer" }, "priceTags": { "title": "priceTags", "description": "List with the promotions applied to the SKU.", "type": "array", "items": { "title": "priceTags", "description": "Promotions applied to the SKU.", "type": "string" } }, "priceValidUntil": { "title": "priceValidUntil", "description": "Expiration date of the SKU price. Example: `2014-03-01T22:58:28.143`. In case you don\u2019t want to send it, use the value null.", "type": "string", "nullable": true }, "quantity": { "title": "quantity", "description": "Quantity of the item. The seller should send the quantity that was indicated in the request, or the maximum quantity possible.", "type": "integer", "default": 0 }, "requestIndex": { "title": "requestIndex", "description": "Position of this item in the original array (request).", "type": "integer" }, "seller": { "title": "seller", "description": "ID of the seller as registered in VTEX. You should send the same value that came in the request.", "type": "string" }, "unitMultiplier": { "title": "unitMultiplier", "description": "SKU unit multiplier. The default value is 1.", "type": "integer" } } } }, "logisticsInfo": { "title": "logisticsInfo", "description": "Array that contains the data regarding the delivery methods and stock for each item. If all products are unavailable, this field should return empty.", "type": "array", "items": { "description": "Description of each logistics data object.", "type": "object", "required": [ "itemIndex", "quantity", "shipsTo", "slas", "stockBalance", "deliveryChannels" ], "properties": { "itemIndex": { "title": "itemIndex", "description": "Position of this item in the original array, i.e., in the array that came with the request. This index is what identifies which SKU you are referring to for each object inside the `logisticsInfo`.", "type": "integer" }, "quantity": { "title": "quantity", "description": "Quantity of the item. The seller should send the quantity that was indicated in the request, or the maximum quantity possible.", "type": "integer" }, "shipsTo": { "title": "shipsTo", "description": "ISO 3-digit code of the countries to where the SKU is delivered.", "type": "array", "items": { "title": "shipsTo", "description": "Array of country codes.", "type": "string" } }, "slas": { "title": "slas", "description": "Contains the available delivery methods.", "type": "array", "items": { "title": "slas", "description": "Object with delivery methods information.", "type": "object", "required": [ "id", "deliveryChannel", "name", "price", "shippingEstimate", "availableDeliveryWindows", "pickupStoreInfo" ], "properties": { "id": { "title": "id", "description": "Identifier of the delivery method.", "type": "string" }, "deliveryChannel": { "title": "deliveryChannel", "description": "Type of delivery channel. The values that are possible are: `pickup-in-point` for pickup point and `delivery` for regular delivery.", "type": "string" }, "name": { "title": "name", "description": "Name of the delivery method.", "type": "string" }, "price": { "title": "price", "description": "Delivery price. The two last digits are the cents.", "type": "integer" }, "shippingEstimate": { "title": "shippingEstimate", "description": "Time estimated for the delivery. Possible suffixes are `bd` for *business day* , `h` for *hours*, and `m` for *minutes*.", "type": "string" }, "availableDeliveryWindows": { "title": "availableDeliveryWindows", "description": "Contains the delivery windows available for the SLA.", "type": "array", "items": { "title": "availableDeliveryWindows", "description": "Object with delivery windows information.", "type": "object", "required": [ "startDateUtc", "endDateUtc", "price" ], "properties": { "startDateUtc": { "title": "startDateUtc", "description": "Start date of the delivery window.", "type": "string" }, "endDateUtc": { "title": "endDateUtc", "description": "End date of the delivery window.", "type": "string" }, "price": { "title": "price", "description": "Extra price for scheduled delivery. The last two digits are the cents.", "type": "integer" } } } }, "pickupStoreInfo": { "title": "pickupStoreInfo", "description": "Contains the data about the pickup point. If you do not want to send this, use the value `null`.", "type": "object", "nullable": true, "required": [ "isPickupStore", "friendlyName", "address", "additionalInfo" ], "properties": { "isPickupStore": { "title": "isPickupStore", "description": "`true` if it is a pickup point.", "type": "boolean" }, "friendlyName": { "title": "friendlyName", "description": "Friendly name of the pickup point.", "type": "string" }, "address": { "title": "address", "description": "Address data of the pickup point.", "type": "object", "required": [ "addressType", "receiverName", "addressId", "postalCode", "city", "state", "country", "street", "number", "neighborhood", "complement", "reference", "geoCoordinates" ], "properties": { "addressType": { "title": " addressType", "description": "The possible value is pickup.", "type": "string" }, "receiverName": { "title": "receiverName", "description": "Name of the person who will receive the product. May be sent as `null`.", "type": "string", "nullable": true }, "addressId": { "title": "addressId", "description": "Identifies the pickup point.", "type": "string" }, "postalCode": { "title": "postalCode", "description": "Postal code of the pickup point. This field is mandatory, for shopping carts simulations, where both Country and Postal Code are required. This field should be sent as `null` for storefront simulations, where the information is not necessary.", "type": "string" }, "city": { "title": "city", "description": "Pickup point's city.", "type": "string" }, "state": { "title": "state", "description": "Pickup point's state.", "type": "string" }, "country": { "title": "country", "description": "3-digit ISO code of the country where the pickup point is located.", "type": "string" }, "street": { "title": "street", "description": "Street where the pickup point is located.", "type": "string" }, "number": { "title": "number", "description": "Address number of the pickup point.", "type": "string" }, "neighborhood": { "title": "neighborhood", "description": "Neighborhood where the pickup point is located.", "type": "string" }, "complement": { "title": "complement", "description": "Complement of the pickup point address.", "type": "string" }, "reference": { "title": "reference", "description": "A reference for the pickup point address.", "type": "string", "nullable": true }, "geoCoordinates": { "title": "geoCoordinates", "description": "Contains the geographic coordinates of the pickup point.", "type": "array", "items": { "title": "geoCoordinates", "description": "Contains the geographic coordinates of the pickup point.", "type": "number", "example": 25.401705 } } } }, "additionalInfo": { "title": "additionalInfo", "description": "Description or extra information about the pickup point.", "type": "string" } } } } } }, "stockBalance": { "title": "stockBalance", "description": "Stock balance of the SKU.", "type": "integer" }, "deliveryChannels": { "title": "deliveryChannels", "description": "Array contains the stock balance for each channel.", "type": "array", "items": { "title": "deliveryChannels", "description": "Object containing ID and stockbalance of each delivery channel.", "type": "object", "required": [ "id", "stockBalance" ], "properties": { "id": { "title": "id", "description": "Identifies the channel type whose stock balance will be informed in the next field. Possible values are: pickup-in-point for pickup point and delivery for regular delivery.", "type": "string" }, "stockBalance": { "title": "stockBalance", "description": "Stock balance for the channel type selected in the previous field.", "type": "integer" } } } } } } }, "postalCode": { "title": "postalCode", "description": "Postal code of the delivery address. This field is mandatory, for shopping carts simulations, where both Country and Postal Code are required. This field should be sent as `null` for storefront simulations, where the information is not necessary.", "type": "string" }, "allowMultipleDeliveries": { "description": "Flag for permission of multiple deliveries.", "type": "boolean" } } }