Offer Object

An offer to transfer some rights to an item or to provide a service. For example sell a product.

Modeled based on https://schema.org/Offer

We welcome your feedback. Please use the Improvement Requests form.

Offer Object JSON Schema

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://apis.objectsgrid.com/schemas/OGObject.schema.json",
  "title": "Offer",
  "description": "Objects Grid Offer Object",
  "type": "object",
  "properties": {
    "at_context": {
      "description": "Schema context",
      "type": [
        "string",
        "null"
      ],
      "enum": [
        "https://schema.org"
      ]
    },
    "at_type": {
      "description": "The object type",
      "type": [
        "string",
        "null"
      ],
      "enum": [
        "Offer"
      ]
    },
    "id": {
      "description": "The unique identifier for Offer",
      "type": [
        "string",
        "null"
      ],
      "minLength": 0,
      "maxLength": 50
    },
    "identifier": {
      "description": "The unique identifier for Offer",
      "type": [
        "string",
        "null"
      ],
      "minLength": 0,
      "maxLength": 50
    },
    "image": {
      "description": "image URL",
      "type": [
        "string",
        "null"
      ],
      "minLength": 0,
      "format": "uri"
    },
    "name": {
      "description": "The Offer Name",
      "type": "array",
      "items": {
        "$ref": "#/$defs/LanguageTaggedString"
      },
      "minItems": 1
    },
    "description": {
      "description": "The Offer Description",
      "type": "array",
      "items": {
        "$ref": "#/$defs/LanguageTaggedString"
      }
    },
    "url": {
      "description": "This Offer URL",
      "type": [
        "string",
        "null"
      ],
      "format": "uri",
      "minLength": 1
    },
    "acceptedPaymentMethod": {
      "description": "The accepted Payment Method",
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "string"
      }
    },
    "availability": {
      "description": "item availability",
      "type": "array",
      "items": { "$ref": "#/$defs/ItemAvailability" },
      "minItems": 1,
      "uniqueItems": true
    },
    "availabilityEnds": {
      "description": "What date the availability ends",
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "availabilityStarts": {
      "description": "What date the availability starts",
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "availableDeliveryMethod": {
      "description": "The available delivery method(s)",
      "type": "array",
      "items": { "$ref": "#/$defs/DeliveryMethod" },
      "minItems": 1,
      "uniqueItems": true
    },
    "businessFunction": {
      "description": "business function",
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "string"
      },
      "minLength": 0
    },
    "category": {
      "description": "The Offer category",
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "string"
      },
      "minLength": 0
    },
    "checkoutPageUrlTemplate": {
      "description": "This Offer checkout Page Url Template",
      "type": [
        "string",
        "null"
      ],
      "format": "uri"
    },
    "deliveryLeadTime": {
      "description": "The delivery lead time",
      "anyOf": [
        {
          "$ref": "#/$defs/QuantitativeValue"
        },
        {
          "type": "null"
        }
      ]
    },
    "eligibleCustomerType": {
      "description": "The eligible customer type",
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "string"
      },
      "minLength": 0
    },
    "eligibleDuration": {
      "description": "The eligible duration",
      "anyOf": [
        {
          "$ref": "#/$defs/QuantitativeValue"
        },
        {
          "type": "null"
        }
      ]
    },
    "eligibleQuantity": {
      "description": "The eligible quantity",
      "type": [
        "number",
        "null"
      ],
      "minimum": 0
    },
    "eligibleRegion": {
      "description": "The eligible region",
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "string"
      },
      "minLength": 0
    },
    "hasMerchantReturnPolicy": {
      "description": "The Merchant Return Policy",
      "anyOf": [
        {
          "$ref": "#/$defs/MerchantReturnPolicy"
        },
        {
          "type": "null"
        }
      ]
    },
    "itemCondition": {
      "description": "The item condition",
      "type": "array",
      "items": { "$ref": "#/$defs/OfferItemCondition" },
      "minItems": 1,
      "uniqueItems": true
    },
    "itemOffered": {
      "description": "The item offered by whom",
      "type": [
        "string",
        "null"
      ],
      "format": "uri"
    },
    "offeredBy": {
      "description": "The Organization URL that offers this Offer",
      "type": [
        "string",
        "null"
      ]
    },
    "price": {
      "description": "The Offer price",
      "type": [
        "number",
        "null"
      ],
      "minimum": 0
    },
    "priceCurrency": {
      "description": "The Offer price currency ISO 4217 codes",
          "$ref": "#/$defs/CurrencyCodeEnumeration"
    },
    "priceValidUntil": {
      "description": "The Offer price valid until date",
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "shippingDetails": {
      "description": "The Offer Shipping Details",
      "anyOf": [
        {
          "$ref": "#/$defs/OfferShippingDetails"
        },
        {
          "type": "null"
        }
      ]
    },
    "validFrom": {
      "description": "The Offer valid from date",
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "validThrough": {
      "description": "The Offer valid through date",
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "warranty": {
      "description": "The Offer Warranty",
      "anyOf": [
        {
          "$ref": "#/$defs/WarrantyPromise"
        },
        {
          "type": "null"
        }
      ]
    },
    "tags": {
      "description": "Object Tags",
      "type": [
        "array",
        "null"
      ],
      "items": {
        "$ref": "#/$defs/Tag"
      }
    }
  },
  "required": [
    "name", "price", "priceCurrency"
  ],
  "$defs": {
    "CurrencyCodeEnumeration": {
        "type": "string",
        "enum": [
          "AED","AFN","ALL","AMD","ANG","AOA","ARS","AUD","AWG","AZN",
          "BAM","BBD","BDT","BGN","BHD","BIF","BMD","BND","BOB","BRL",
          "BSD","BTN","BWP","BYN","BZD","CAD","CDF","CHF","CLP","CNY",
          "COP","CRC","CUP","CVE","CZK","DJF","DKK","DOP","DZD","EGP",
          "ERN","ETB","EUR","FJD","FKP","FOK","GBP","GEL","GGP","GHS",
          "GIP","GMD","GNF","GTQ","GYD","HKD","HNL","HRK","HTG","HUF",
          "IDR","ILS","IMP","INR","IQD","IRR","ISK","JEP","JMD","JOD",
          "JPY","KES","KGS","KHR","KID","KMF","KRW","KWD","KYD","KZT",
          "LAK","LBP","LKR","LRD","LSL","LYD","MAD","MDL","MGA","MKD",
          "MMK","MNT","MOP","MRU","MUR","MVR","MWK","MXN","MYR","MZN",
          "NAD","NGN","NIO","NOK","NPR","NZD","OMR","PAB","PEN","PGK",
          "PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR",
          "SBD","SCR","SDG","SEK","SGD","SHP","SLE","SOS","SRD","SSP",
          "STN","SYP","SZL","THB","TJS","TMT","TND","TOP","TRY","TTD",
          "TVD","TWD","TZS","UAH","UGX","USD","UYU","UZS","VES","VND",
          "VUV","WST","XAF","XCD","XOF","XPF","YER","ZAR","ZMW","ZWL"
        ]
    },
    "DayOfWeek": {
      "type": "string",
      "enum": [
        "https://schema.org/Monday",
        "https://schema.org/Tuesday",
        "https://schema.org/Wednesday",
        "https://schema.org/Thursday",
        "https://schema.org/Friday",
        "https://schema.org/Saturday",
        "https://schema.org/Sunday"
      ]
    },
    "DeliveryMethod" : {
      "type": "string",
      "enum": [
        "http://purl.org/goodrelations/v1#DeliveryModeDirectDownload",
        "http://purl.org/goodrelations/v1#DeliveryModeFreight",
        "http://purl.org/goodrelations/v1#DeliveryModeMail",
        "http://purl.org/goodrelations/v1#DeliveryModeOwnFleet",
        "http://purl.org/goodrelations/v1#DeliveryModePickUp",
        "https://purl.org/goodrelations/v1#DHL",
        "https://purl.org/goodrelations/v1#FedEx",
        "https://purl.org/goodrelations/v1#UPS",
        "https://purl.org/goodrelations/v1#UPSAccessPoint",
        "https://schema.org/LockerDelivery",
        "https://schema.org/OnSitePickup",
        "https://schema.org/ParcelService"
      ]
    },
    "ItemAvailability": {
      "type": "string",
      "enum": [
        "https://schema.org/BackOrder",
        "https://schema.org/Discontinued",
        "https://schema.org/InStock",
        "https://schema.org/InStoreOnly",
        "https://schema.org/LimitedAvailability",
        "https://schema.org/MadeToOrder",
        "https://schema.org/OnlineOnly",
        "https://schema.org/OutOfStock",
        "https://schema.org/PreOrder",
        "https://schema.org/PreSale",
        "https://schema.org/Reserved",
        "https://schema.org/SoldOut"
      ]
    },
    "LanguageTaggedString": {
      "type": "object",
      "properties": {
        "at_value": {
          "type": "string",
          "minLength": 1
        },
        "at_language": {
          "type": "string",
          "minLength": 2
        }
      },
      "required": [
        "at_value",
        "at_language"
      ]
    },
    "MerchantReturnEnumeration": {
      "type": "string",
      "enum": [
        "https://schema.org/MerchantReturnFiniteReturnWindow",
        "https://schema.org/MerchantReturnNotPermitted",
        "https://schema.org/MerchantReturnUnlimitedWindow",
        "https://schema.org/MerchantReturnUnspecified"
      ]
    },
    "MerchantReturnPolicy": {
      "description": "MerchantReturnPolicy",
      "properties": {
        "at_type": {
          "description": "The object type",
          "type": [
            "string",
            "null"
          ],
          "enum": [
            "MerchantReturnPolicy"
          ]
        },
        "name": {
          "description": "The Merchant Return Policy Name",
          "type": "array",
          "items": {
            "$ref": "#/$defs/LanguageTaggedString"
          },
          "minItems": 1
        },
        "description": {
          "description": "The Merchant Return Policy Description",
          "type": "array",
          "items": {
            "$ref": "#/$defs/LanguageTaggedString"
          }
        },
        "applicableCountry": {
          "description": "The Merchant Return Policy applicable country",
          "type": [
            "string",
            "null"
          ],
          "minLength": 2,
          "maxLength": 2
        },
        "inStoreReturnOffered": {
          "description": "Whether in-store return is offered",
          "type": [
            "boolean",
            "null"
          ]
        },
        "itemCondition": {
          "description": "The item condition for the return policy",
          "type": "array",
          "items": { "$ref": "#/$defs/OfferItemCondition" },
          "minItems": 1,
          "uniqueItems": true
        },
        "merchantReturnDays": {
          "description": "The number of days the merchant accepts returns",
          "type": [
            "integer",
            "null"
          ],
          "minimum": 0
        },
        "refundType": {
          "description": "The type of refund offered by the merchant",
          "type": "array",
          "items": { "$ref": "#/$defs/RefundTypeEnumeration" },
          "minItems": 1,
          "uniqueItems": true
        },
        "returnPolicyCategory": {
          "type": "array",
          "items": { "$ref": "#/$defs/MerchantReturnEnumeration" },
          "minItems": 1,
          "uniqueItems": true
        },
        "returnMethod": {
          "description": "The method of return",
          "type": "array",
          "items": { "$ref": "#/$defs/ReturnMethodEnumeration" },
          "minItems": 1,
          "uniqueItems": true
        },
        "returnFees": {
          "description": "The fees associated with the return",
          "type": "array",
          "items": { "$ref": "#/$defs/ReturnFeesEnumeration" },
          "minItems": 1,
          "uniqueItems": true
        }
      },
      "required": [
        "name"
      ]
    },
    "MonetaryAmount": {
      "description": "MonetaryAmount",
      "properties": {
        "at_type": {
          "description": "The object type",
          "type": [
            "string",
            "null"
          ],
          "enum": [
            "MonetaryAmount"
          ]
        },
        "currency": {
          "description": "The currency code",
          "$ref": "#/$defs/CurrencyCodeEnumeration"
        },
        "maxValue": {
          "description": "The max monetary value",
          "type": [
            "number",
            "null"
          ],
          "minimum": 0
        },
        "minValue": {
          "description": "The min monetary value",
          "type": [
            "number",
            "null"
          ],
          "minimum": 0
        },
        "value": {
          "description": "The monetary value",
          "type": [
            "number",
            "null"
          ],
          "minimum": 0
        }
      },
      "required": [
        "value",
        "currency"
      ]
    },
    "OfferItemCondition": {
      "type": "string",
      "enum": [
        "https://schema.org/DamagedCondition",
        "https://schema.org/NewCondition",
        "https://schema.org/RefurbishedCondition",
        "https://schema.org/UsedCondition"
      ]
    },
    "OfferShippingDetails": {
      "description": "OfferShippingDetails",
      "properties": {
        "at_type": {
          "description": "The object type",
          "type": [
            "string",
            "null"
          ],
          "enum": [
            "OfferShippingDetails"
          ]
        },
        "name": {
          "description": "The Merchant Return Policy Name",
          "type": "array",
          "items": {
            "$ref": "#/$defs/LanguageTaggedString"
          },
          "minItems": 1
        },
        "description": {
          "description": "The Merchant Return Policy Description",
          "type": "array",
          "items": {
            "$ref": "#/$defs/LanguageTaggedString"
          }
        },
        "deliveryTime": {
          "description": "The delivery time for the shipping",
          "anyOf": [
            {
              "$ref": "#/$defs/ShippingDeliveryTime"
            },
            {
              "type": "null"
            }
          ]
        },
        "depth": {
          "description": "The depth of the shipping package",
          "anyOf": [
            {
              "$ref": "#/$defs/QuantitativeValue"
            },
            {
              "type": "null"
            }
          ]
        },
        "doesNotShip": {
          "description": "Whether the offer does not ship",
          "type": [
            "boolean",
            "null"
          ]
        },
        "height": {
          "description": "The height of the shipping package",
          "anyOf": [
            {
              "$ref": "#/$defs/QuantitativeValue"
            },
            {
              "type": "null"
            }
          ]
        },
        "shippingRate": {
          "description": "The shipping rate",
          "anyOf": [
            {
              "$ref": "#/$defs/MonetaryAmount"
            },
            {
              "type": "null"
            }
          ]
        },
        "weight": {
          "description": "The weight of the shipping package",
          "anyOf": [
            {
              "$ref": "#/$defs/QuantitativeValue"
            },
            {
              "type": "null"
            }
          ]
        },
        "width": {
          "description": "The width of the shipping package",
          "anyOf": [
            {
              "$ref": "#/$defs/QuantitativeValue"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "required": [
        "name",
        "shippingRate"
      ]
    },
    "ReturnFeesEnumeration": {
        "type": "string",
        "enum": [
            "https://schema.org/FreeReturn",
            "https://schema.org/OriginalShippingFeesReturn",
            "https://schema.org/RestockingFees",
            "https://schema.org/ReturnFeesCustomerResponsibility",
            "https://schema.org/ReturnShippingFees"
        ]
    },
    "ReturnMethodEnumeration": {
        "type": "string",
        "enum": [
            "https://schema.org/KeepProduct",
            "https://schema.org/ReturnAtKiosk",
            "https://schema.org/ReturnByMail",
            "https://schema.org/ReturnInStore"
        ]
    },
    "RefundTypeEnumeration": {
        "type": "string",
        "enum": [
            "https://schema.org/ExchangeRefund",
            "https://schema.org/FullRefund",
            "https://schema.org/StoreCreditRefund"
        ]
    },
    "ShippingDeliveryTime": {
      "description": "ShippingDeliveryTime",
      "properties": {
        "at_type": {
          "description": "The object type",
          "type": [
            "string",
            "null"
          ],
          "enum": [
            "ShippingDeliveryTime"
          ]
        },
        "businessDays": {
          "description": "The number of business days for delivery",
          "anyOf": [
            {
              "$ref": "#/$defs/DayOfWeek"
            },
            {
              "type": "null"
            }
          ]
        },
        "cutoffTime": {
          "description": "The cutoff time for shipping",
          "type": [
            "string",
            "null"
          ],
          "format": "time"
        },
        "handlingTime": {
          "description": "The handling time in business days",
          "anyOf": [
            {
              "$ref": "#/$defs/QuantitativeValue"
            },
            {
              "type": "null"
            }
          ]
        },
        "transitTime": {
          "description": "The transit time in business days",
          "anyOf": [
            {
              "$ref": "#/$defs/QuantitativeValue"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "required": [
        "businessDays"
      ]
    },
    "QuantitativeValue": {
      "description": "QuantitativeValue",
      "properties": {
        "at_type": {
          "description": "The object type",
          "type": [
            "string",
            "null"
          ],
          "enum": [
            "QuantitativeValue"
          ]
        },
        "maxValue": {
          "type": [
            "number",
            "null"
          ],
          "minimum": 0
        },
        "minValue": {
          "type": [
            "number",
            "null"
          ],
          "minimum": 0
        },
        "unitCode": {
          "type": "string",
          "minLength": 1
        },
        "unitText": {
          "type": "string",
          "minLength": 1
        },
        "value": {
          "type": [
            "number",
            "null"
          ],
          "minimum": 0
        }
      },
      "required": [
        "unitCode",
        "value"
      ]
    },
    "WarrantyPromise": {
      "description": "WarrantyPromise",
      "properties": {
        "at_type": {
          "description": "The object type",
          "type": [
            "string",
            "null"
          ],
          "enum": [
            "WarrantyPromise"
          ]
        },
        "durationOfWarranty": {
          "description": "The duration of the warranty",
          "anyOf": [
            {
              "$ref": "#/$defs/QuantitativeValue"
            },
            {
              "type": "null"
            }
          ]
        },
        "warrantyScope": {
          "description": "The scope of the warranty",
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "durationOfWarranty"
      ]
    },
    "Tag": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "minLength": 1
        },
        "val": {
          "type": "string",
          "minLength": 1
        }
      },
      "required": [
        "name",
        "val"
      ]
    }
  }
}

Last updated

Was this helpful?