{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "schema:ShippingService",
  "title": "ShippingService",
  "description": "ShippingService represents the criteria used to determine if and how an offer could be shipped to a customer.",
  "type": "object",
  "allOf": [
    {
      "description": "Structured values are used when the value of a property has a more complex structure than simply being a textual value or a reference to another thing.",
      "$ref": "schema:StructuredValue"
    }
  ],
  "properties": {
    "fulfillmentType": {
      "description": "Type of fulfillment applicable to the [[ShippingService]].",
      "oneOf": [
        { "$ref": "schema:FulfillmentTypeEnumeration" },
        {
          "type": "array",
          "items": { "$ref": "schema:FulfillmentTypeEnumeration" }
        }
      ]
    },
    "handlingTime": {
      "description": "The typical delay between the receipt of the order and the goods either leaving the warehouse or being prepared for pickup, in case the delivery method is on site pickup.\n\nIn the context of [[ShippingDeliveryTime]], Typical properties: minValue, maxValue, unitCode (d for DAY).  This is by common convention assumed to mean business days (if a unitCode is used, coded as \"d\"), i.e. only counting days when the business normally operates.\n\nIn the context of [[ShippingService]], use the [[ServicePeriod]] format, that contains the same information in a structured form, with cut-off time, business days and duration.",
      "anyOf": [
        { "$ref": "schema:QuantitativeValue" },
        { "$ref": "schema:ServicePeriod" }
      ]
    },
    "shippingConditions": {
      "description": "The conditions (constraints, price) applicable to the [[ShippingService]].",
      "$ref": "schema:ShippingConditions"
    },
    "validForMemberTier": {
      "description": "The membership program tier an Offer (or a PriceSpecification, OfferShippingDetails, or MerchantReturnPolicy under an Offer) is valid for.",
      "$ref": "schema:MemberProgramTier"
    }
  }
}
