hypershop API

A RESTful Web API described with RDF and hypercontract.

Namespace
https://example.hypercontract.org/profile/
Entry Point(s)
https://example.hypercontract.org – The REST API for hypershop.
Returns ApiRoot .

Classes

# AdditionToShoppingCart

All information necessary to add a Product to the Shopping Cart.

Properties

quantity xsd:integer
The number of items ordered or to be ordered.

Links

product Product
A reference to a Product from the catalog.

Schemas

Schema ID
https://example.hypercontract.org/profile/AdditionToShoppingCart/schema/application/hal+json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "product": {
      "type": "object",
      "properties": {
        "href": {
          "type": "string",
          "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/Product>."
        }
      },
      "required": [
        "href"
      ]
    },
    "quantity": {
      "type": "number",
      "multipleOf": 1,
      "minimum": 1
    }
  },
  "required": [
    "product",
    "quantity"
  ]
}
Schema ID
https://example.hypercontract.org/profile/AdditionToShoppingCart/schema/application/json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "product": {
      "type": "string",
      "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/Product>."
    },
    "quantity": {
      "type": "number",
      "multipleOf": 1,
      "minimum": 1
    }
  },
  "required": [
    "product",
    "quantity"
  ]
}
Schema ID
https://example.hypercontract.org/profile/AdditionToShoppingCart/schema/application/ld+json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "product": {
      "oneOf": [
        {
          "type": "string",
          "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/Product>."
        },
        {
          "type": "object",
          "properties": {
            "@id": {
              "type": "string",
              "$comment": "A unique identifier."
            },
            "image": {
              "type": "string",
              "$comment": "Value is a URI for an image."
            },
            "price": {
              "type": "number",
              "multipleOf": 0.01,
              "minimum": 0.01
            },
            "productDescription": {
              "type": "string"
            },
            "productName": {
              "type": "string"
            },
            "@context": {
              "type": [
                "object",
                "string"
              ]
            },
            "addToShoppingCart": {
              "type": "string",
              "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/ShoppingCartItems>."
            }
          },
          "required": [
            "@id",
            "image",
            "price",
            "productDescription",
            "productName"
          ]
        }
      ]
    },
    "quantity": {
      "type": "number",
      "multipleOf": 1,
      "minimum": 1
    }
  },
  "required": [
    "product",
    "quantity"
  ]
}

# Address

Postal addressed that can be used as Billing Address or Shipping Address when placing an Order. The Order will contain a copy of the address. Changes to an Address do not affect Orders that have been previously placed with that Address.

Properties

city xsd:string
The city of an Address.
country xsd:string
The name of the country of an Address.
name xsd:string
The first and last name of the addressee of an Address.
street xsd:string
The street name and house number of an Address.
zipCode xsd:string
The ZIP code of an Address. There are no restrictions on the ZIP code's format.

Schemas

Schema ID
https://example.hypercontract.org/profile/Address/schema/application/hal+json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "city": {
      "type": "string"
    },
    "country": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "street": {
      "type": "string"
    },
    "zipCode": {
      "type": "string"
    },
    "_links": {
      "type": "object",
      "properties": {
        "self": {
          "type": "object",
          "properties": {
            "href": {
              "type": "string",
              "$comment": "A unique identifier."
            }
          },
          "required": [
            "href"
          ]
        }
      },
      "required": [
        "self"
      ]
    },
    "_embedded": {
      "type": "object",
      "properties": {}
    }
  },
  "required": [
    "city",
    "country",
    "name",
    "street",
    "zipCode"
  ]
}
Schema ID
https://example.hypercontract.org/profile/Address/schema/application/json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "_id": {},
    "city": {
      "type": "string"
    },
    "country": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "street": {
      "type": "string"
    },
    "zipCode": {
      "type": "string"
    }
  },
  "required": [
    "_id",
    "city",
    "country",
    "name",
    "street",
    "zipCode"
  ]
}
Schema ID
https://example.hypercontract.org/profile/Address/schema/application/ld+json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "@id": {
      "type": "string",
      "$comment": "A unique identifier."
    },
    "city": {
      "type": "string"
    },
    "country": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "street": {
      "type": "string"
    },
    "zipCode": {
      "type": "string"
    },
    "@context": {
      "type": [
        "object",
        "string"
      ]
    }
  },
  "required": [
    "@id",
    "city",
    "country",
    "name",
    "street",
    "zipCode"
  ]
}

# ApiRoot

The entry point for the hypershop API.

Links

orderHistory OrderHistory
A link to the Order History.
shoppingCart ShoppingCart
A link to the Shopping Cart.
userProfile UserProfile
A link to the UserProfile.

Operations

searchCatalog SearchResults
Searches the catalog for Products matching a Search Query. When no Search Query is provided, all Products will be returned.

Schemas

Schema ID
https://example.hypercontract.org/profile/ApiRoot/schema/application/hal+json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "_links": {
      "type": "object",
      "properties": {
        "self": {
          "type": "object",
          "properties": {
            "href": {
              "type": "string",
              "$comment": "A unique identifier."
            }
          },
          "required": [
            "href"
          ]
        },
        "https://example.hypercontract.org/profile/orderHistory": {
          "type": "object",
          "properties": {
            "href": {
              "type": "string",
              "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/OrderHistory>."
            }
          },
          "required": [
            "href"
          ]
        },
        "https://example.hypercontract.org/profile/searchCatalog": {
          "type": "object",
          "properties": {
            "href": {
              "type": "string",
              "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/SearchResults>."
            }
          },
          "required": [
            "href"
          ]
        },
        "https://example.hypercontract.org/profile/shoppingCart": {
          "type": "object",
          "properties": {
            "href": {
              "type": "string",
              "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/ShoppingCart>."
            }
          },
          "required": [
            "href"
          ]
        },
        "https://example.hypercontract.org/profile/userProfile": {
          "type": "object",
          "properties": {
            "href": {
              "type": "string",
              "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/UserProfile>."
            }
          },
          "required": [
            "href"
          ]
        }
      },
      "required": [
        "self"
      ]
    },
    "_embedded": {
      "type": "object",
      "properties": {}
    }
  },
  "required": []
}
Schema ID
https://example.hypercontract.org/profile/ApiRoot/schema/application/json
Schema Type
application/schema+json
{
  "type": "object"
}
Schema ID
https://example.hypercontract.org/profile/ApiRoot/schema/application/ld+json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "@id": {
      "type": "string",
      "$comment": "A unique identifier."
    },
    "@context": {
      "type": [
        "object",
        "string"
      ]
    },
    "orderHistory": {
      "type": "string",
      "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/OrderHistory>."
    },
    "searchCatalog": {
      "type": "string",
      "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/SearchResults>."
    },
    "shoppingCart": {
      "type": "string",
      "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/ShoppingCart>."
    },
    "userProfile": {
      "type": "string",
      "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/UserProfile>."
    }
  },
  "required": [
    "@id"
  ]
}

# BillingAddress

The postal address to which the goods will be sent. This is a copy of an Address from the User Profile at the time when the Order was placed.

Properties

city xsd:string
The city of an Address.
country xsd:string
The name of the country of an Address.
name xsd:string
The first and last name of the addressee of an Address.
street xsd:string
The street name and house number of an Address.
zipCode xsd:string
The ZIP code of an Address. There are no restrictions on the ZIP code's format.

Schemas

Schema ID
https://example.hypercontract.org/profile/BillingAddress/schema/application/hal+json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "city": {
      "type": "string"
    },
    "country": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "street": {
      "type": "string"
    },
    "zipCode": {
      "type": "string"
    }
  },
  "required": [
    "city",
    "country",
    "name",
    "street",
    "zipCode"
  ]
}
Schema ID
https://example.hypercontract.org/profile/BillingAddress/schema/application/json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "city": {
      "type": "string"
    },
    "country": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "street": {
      "type": "string"
    },
    "zipCode": {
      "type": "string"
    }
  },
  "required": [
    "city",
    "country",
    "name",
    "street",
    "zipCode"
  ]
}
Schema ID
https://example.hypercontract.org/profile/BillingAddress/schema/application/ld+json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "city": {
      "type": "string"
    },
    "country": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "street": {
      "type": "string"
    },
    "zipCode": {
      "type": "string"
    }
  },
  "required": [
    "city",
    "country",
    "name",
    "street",
    "zipCode"
  ]
}

# NewOrder

All information necessary to place a new Order.

Properties

billingAddress BillingAddress
A reference to the Billing Address of an Order. The name in the Billing Address does not have to be identical to the name of the account owner of the chosen Payment.
payment Payment
A reference to the Payment of an Order. The name of the account owner does not have to be indentical to the name in the chosen Billing Address.
shippingAddress ShippingAddress
A reference to the Shipping Address of an Order.
shoppingCartItems ShoppingCartItem[]
A reference to Shopping Cart Items in the Shopping Cart.

Schemas

Schema ID
https://example.hypercontract.org/profile/NewOrder/schema/application/hal+json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "billingAddress": {
      "type": "object",
      "properties": {
        "city": {
          "type": "string"
        },
        "country": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "street": {
          "type": "string"
        },
        "zipCode": {
          "type": "string"
        }
      },
      "required": [
        "city",
        "country",
        "name",
        "street",
        "zipCode"
      ]
    },
    "payment": {
      "type": "object",
      "properties": {
        "accountOwner": {
          "type": "string"
        },
        "bic": {
          "type": "string"
        },
        "iban": {
          "type": "string"
        }
      },
      "required": [
        "accountOwner",
        "bic",
        "iban"
      ]
    },
    "shippingAddress": {
      "type": "object",
      "properties": {
        "city": {
          "type": "string"
        },
        "country": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "street": {
          "type": "string"
        },
        "zipCode": {
          "type": "string"
        }
      },
      "required": [
        "city",
        "country",
        "name",
        "street",
        "zipCode"
      ]
    },
    "shoppingCartItems": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "price": {
            "type": "number",
            "multipleOf": 0.01,
            "minimum": 0.01
          },
          "productDescription": {
            "type": "string"
          },
          "productName": {
            "type": "string"
          },
          "quantity": {
            "type": "number",
            "multipleOf": 1,
            "minimum": 1
          },
          "_links": {
            "type": "object",
            "properties": {
              "self": {
                "type": "object",
                "properties": {
                  "href": {
                    "type": "string",
                    "$comment": "A unique identifier."
                  }
                },
                "required": [
                  "href"
                ]
              },
              "https://example.hypercontract.org/profile/changeQuantity": {
                "type": "object",
                "properties": {
                  "href": {
                    "type": "string",
                    "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/ShoppingCartItem>."
                  }
                },
                "required": [
                  "href"
                ]
              },
              "https://example.hypercontract.org/profile/remove": {
                "type": "object",
                "properties": {
                  "href": {
                    "type": "string",
                    "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/ShoppingCartItem>."
                  }
                },
                "required": [
                  "href"
                ]
              },
              "https://example.hypercontract.org/profile/product": {
                "type": "object",
                "properties": {
                  "href": {
                    "type": "string",
                    "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/Product>."
                  }
                },
                "required": [
                  "href"
                ]
              }
            },
            "required": [
              "self"
            ]
          },
          "_embedded": {
            "type": "object",
            "properties": {}
          }
        },
        "required": [
          "price",
          "productDescription",
          "productName",
          "quantity"
        ]
      },
      "minItems": 1
    }
  },
  "required": [
    "billingAddress",
    "payment",
    "shippingAddress",
    "shoppingCartItems"
  ]
}
Schema ID
https://example.hypercontract.org/profile/NewOrder/schema/application/json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "billingAddress": {
      "type": "object",
      "properties": {
        "city": {
          "type": "string"
        },
        "country": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "street": {
          "type": "string"
        },
        "zipCode": {
          "type": "string"
        }
      },
      "required": [
        "city",
        "country",
        "name",
        "street",
        "zipCode"
      ]
    },
    "payment": {
      "type": "object",
      "properties": {
        "accountOwner": {
          "type": "string"
        },
        "bic": {
          "type": "string"
        },
        "iban": {
          "type": "string"
        }
      },
      "required": [
        "accountOwner",
        "bic",
        "iban"
      ]
    },
    "shippingAddress": {
      "type": "object",
      "properties": {
        "city": {
          "type": "string"
        },
        "country": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "street": {
          "type": "string"
        },
        "zipCode": {
          "type": "string"
        }
      },
      "required": [
        "city",
        "country",
        "name",
        "street",
        "zipCode"
      ]
    },
    "shoppingCartItems": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "_id": {},
          "price": {
            "type": "number",
            "multipleOf": 0.01,
            "minimum": 0.01
          },
          "productDescription": {
            "type": "string"
          },
          "productName": {
            "type": "string"
          },
          "quantity": {
            "type": "number",
            "multipleOf": 1,
            "minimum": 1
          },
          "product": {
            "type": "string",
            "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/Product>."
          }
        },
        "required": [
          "_id",
          "price",
          "productDescription",
          "productName",
          "quantity",
          "product"
        ]
      },
      "minItems": 1
    }
  },
  "required": [
    "billingAddress",
    "payment",
    "shippingAddress",
    "shoppingCartItems"
  ]
}
Schema ID
https://example.hypercontract.org/profile/NewOrder/schema/application/ld+json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "billingAddress": {
      "type": "object",
      "properties": {
        "city": {
          "type": "string"
        },
        "country": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "street": {
          "type": "string"
        },
        "zipCode": {
          "type": "string"
        }
      },
      "required": [
        "city",
        "country",
        "name",
        "street",
        "zipCode"
      ]
    },
    "payment": {
      "type": "object",
      "properties": {
        "accountOwner": {
          "type": "string"
        },
        "bic": {
          "type": "string"
        },
        "iban": {
          "type": "string"
        }
      },
      "required": [
        "accountOwner",
        "bic",
        "iban"
      ]
    },
    "shippingAddress": {
      "type": "object",
      "properties": {
        "city": {
          "type": "string"
        },
        "country": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "street": {
          "type": "string"
        },
        "zipCode": {
          "type": "string"
        }
      },
      "required": [
        "city",
        "country",
        "name",
        "street",
        "zipCode"
      ]
    },
    "shoppingCartItems": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "@id": {
            "type": "string",
            "$comment": "A unique identifier."
          },
          "price": {
            "type": "number",
            "multipleOf": 0.01,
            "minimum": 0.01
          },
          "productDescription": {
            "type": "string"
          },
          "productName": {
            "type": "string"
          },
          "quantity": {
            "type": "number",
            "multipleOf": 1,
            "minimum": 1
          },
          "product": {
            "oneOf": [
              {
                "type": "string",
                "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/Product>."
              },
              {
                "type": "object",
                "properties": {
                  "@id": {
                    "type": "string",
                    "$comment": "A unique identifier."
                  },
                  "image": {
                    "type": "string",
                    "$comment": "Value is a URI for an image."
                  },
                  "price": {
                    "type": "number",
                    "multipleOf": 0.01,
                    "minimum": 0.01
                  },
                  "productDescription": {
                    "type": "string"
                  },
                  "productName": {
                    "type": "string"
                  },
                  "@context": {
                    "type": [
                      "object",
                      "string"
                    ]
                  },
                  "addToShoppingCart": {
                    "type": "string",
                    "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/ShoppingCartItems>."
                  }
                },
                "required": [
                  "@id",
                  "image",
                  "price",
                  "productDescription",
                  "productName"
                ]
              }
            ]
          },
          "@context": {
            "type": [
              "object",
              "string"
            ]
          },
          "changeQuantity": {
            "type": "string",
            "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/ShoppingCartItem>."
          },
          "remove": {
            "type": "string",
            "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/ShoppingCartItem>."
          }
        },
        "required": [
          "@id",
          "price",
          "productDescription",
          "productName",
          "quantity",
          "product"
        ]
      },
      "minItems": 1
    }
  },
  "required": [
    "billingAddress",
    "payment",
    "shippingAddress",
    "shoppingCartItems"
  ]
}

# Order

An order that has been placed by the user. The Order may be in processing, already fulfilled or cancelled.

Properties

billingAddress BillingAddress
A reference to the Billing Address of an Order. The name in the Billing Address does not have to be identical to the name of the account owner of the chosen Payment.
cancellationReason xsd:string
A free-text reason for why the Order was or is being cancelled.
orderDate xsd:date
The date when the Order was placed.
orderItems OrderItem[]
The Order Items of an Order.
orderStatus xsd:string
The status of the Order. Either "Processing", "Delivered" or "Cancelled".
payment Payment
A reference to the Payment of an Order. The name of the account owner does not have to be indentical to the name in the chosen Billing Address.
shippingAddress ShippingAddress
A reference to the Shipping Address of an Order.

Operations

cancel Order
Cancels the processing of an order. The status will be set to "Cancelled".

Schemas

Schema ID
https://example.hypercontract.org/profile/Order/schema/application/hal+json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "orderDate": {
      "type": "string",
      "pattern": "^\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+([+-][0-2]\\d:[0-5]\\d|Z)$"
    },
    "orderStatus": {
      "type": "string",
      "enum": [
        "Processing",
        "Delivered",
        "Cancelled"
      ]
    },
    "orderItems": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "price": {
            "type": "number",
            "multipleOf": 0.01,
            "minimum": 0.01
          },
          "productDescription": {
            "type": "string"
          },
          "productName": {
            "type": "string"
          },
          "quantity": {
            "type": "number",
            "multipleOf": 1,
            "minimum": 1
          }
        },
        "required": [
          "price",
          "productDescription",
          "productName",
          "quantity"
        ]
      },
      "minItems": 1
    },
    "payment": {
      "type": "object",
      "properties": {
        "accountOwner": {
          "type": "string"
        },
        "bic": {
          "type": "string"
        },
        "iban": {
          "type": "string"
        }
      },
      "required": [
        "accountOwner",
        "bic",
        "iban"
      ]
    },
    "billingAddress": {
      "type": "object",
      "properties": {
        "city": {
          "type": "string"
        },
        "country": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "street": {
          "type": "string"
        },
        "zipCode": {
          "type": "string"
        }
      },
      "required": [
        "city",
        "country",
        "name",
        "street",
        "zipCode"
      ]
    },
    "shippingAddress": {
      "type": "object",
      "properties": {
        "city": {
          "type": "string"
        },
        "country": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "street": {
          "type": "string"
        },
        "zipCode": {
          "type": "string"
        }
      },
      "required": [
        "city",
        "country",
        "name",
        "street",
        "zipCode"
      ]
    },
    "cancellationReason": {
      "type": "string"
    },
    "_links": {
      "type": "object",
      "properties": {
        "self": {
          "type": "object",
          "properties": {
            "href": {
              "type": "string",
              "$comment": "A unique identifier."
            }
          },
          "required": [
            "href"
          ]
        },
        "https://example.hypercontract.org/profile/cancel": {
          "type": "object",
          "properties": {
            "href": {
              "type": "string",
              "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/Order>."
            }
          },
          "required": [
            "href"
          ]
        }
      },
      "required": [
        "self"
      ]
    },
    "_embedded": {
      "type": "object",
      "properties": {}
    }
  },
  "required": [
    "orderDate",
    "orderStatus",
    "orderItems",
    "payment",
    "billingAddress",
    "shippingAddress"
  ]
}
Schema ID
https://example.hypercontract.org/profile/Order/schema/application/json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "_id": {},
    "orderDate": {
      "type": "string",
      "pattern": "^\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+([+-][0-2]\\d:[0-5]\\d|Z)$"
    },
    "orderStatus": {
      "type": "string",
      "enum": [
        "Processing",
        "Delivered",
        "Cancelled"
      ]
    },
    "orderItems": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "price": {
            "type": "number",
            "multipleOf": 0.01,
            "minimum": 0.01
          },
          "productDescription": {
            "type": "string"
          },
          "productName": {
            "type": "string"
          },
          "quantity": {
            "type": "number",
            "multipleOf": 1,
            "minimum": 1
          }
        },
        "required": [
          "price",
          "productDescription",
          "productName",
          "quantity"
        ]
      },
      "minItems": 1
    },
    "payment": {
      "type": "object",
      "properties": {
        "accountOwner": {
          "type": "string"
        },
        "bic": {
          "type": "string"
        },
        "iban": {
          "type": "string"
        }
      },
      "required": [
        "accountOwner",
        "bic",
        "iban"
      ]
    },
    "billingAddress": {
      "type": "object",
      "properties": {
        "city": {
          "type": "string"
        },
        "country": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "street": {
          "type": "string"
        },
        "zipCode": {
          "type": "string"
        }
      },
      "required": [
        "city",
        "country",
        "name",
        "street",
        "zipCode"
      ]
    },
    "shippingAddress": {
      "type": "object",
      "properties": {
        "city": {
          "type": "string"
        },
        "country": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "street": {
          "type": "string"
        },
        "zipCode": {
          "type": "string"
        }
      },
      "required": [
        "city",
        "country",
        "name",
        "street",
        "zipCode"
      ]
    },
    "cancellationReason": {
      "type": "string"
    }
  },
  "required": [
    "_id",
    "orderDate",
    "orderStatus",
    "orderItems",
    "payment",
    "billingAddress",
    "shippingAddress"
  ]
}
Schema ID
https://example.hypercontract.org/profile/Order/schema/application/ld+json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "@id": {
      "type": "string",
      "$comment": "A unique identifier."
    },
    "orderDate": {
      "type": "string",
      "pattern": "^\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+([+-][0-2]\\d:[0-5]\\d|Z)$"
    },
    "orderStatus": {
      "type": "string",
      "enum": [
        "Processing",
        "Delivered",
        "Cancelled"
      ]
    },
    "orderItems": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "price": {
            "type": "number",
            "multipleOf": 0.01,
            "minimum": 0.01
          },
          "productDescription": {
            "type": "string"
          },
          "productName": {
            "type": "string"
          },
          "quantity": {
            "type": "number",
            "multipleOf": 1,
            "minimum": 1
          }
        },
        "required": [
          "price",
          "productDescription",
          "productName",
          "quantity"
        ]
      },
      "minItems": 1
    },
    "payment": {
      "type": "object",
      "properties": {
        "accountOwner": {
          "type": "string"
        },
        "bic": {
          "type": "string"
        },
        "iban": {
          "type": "string"
        }
      },
      "required": [
        "accountOwner",
        "bic",
        "iban"
      ]
    },
    "billingAddress": {
      "type": "object",
      "properties": {
        "city": {
          "type": "string"
        },
        "country": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "street": {
          "type": "string"
        },
        "zipCode": {
          "type": "string"
        }
      },
      "required": [
        "city",
        "country",
        "name",
        "street",
        "zipCode"
      ]
    },
    "shippingAddress": {
      "type": "object",
      "properties": {
        "city": {
          "type": "string"
        },
        "country": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "street": {
          "type": "string"
        },
        "zipCode": {
          "type": "string"
        }
      },
      "required": [
        "city",
        "country",
        "name",
        "street",
        "zipCode"
      ]
    },
    "@context": {
      "type": [
        "object",
        "string"
      ]
    },
    "cancellationReason": {
      "type": "string"
    },
    "cancel": {
      "type": "string",
      "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/Order>."
    }
  },
  "required": [
    "@id",
    "orderDate",
    "orderStatus",
    "orderItems",
    "payment",
    "billingAddress",
    "shippingAddress"
  ]
}

# OrderCancellation

All information necessary to cancel an Order.

Properties

cancellationReason xsd:string
A free-text reason for why the Order was or is being cancelled.

Schemas

Schema ID
https://example.hypercontract.org/profile/OrderCancellation/schema/application/hal+json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "cancellationReason": {
      "type": "string"
    }
  },
  "required": []
}
Schema ID
https://example.hypercontract.org/profile/OrderCancellation/schema/application/json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "cancellationReason": {
      "type": "string"
    }
  },
  "required": []
}
Schema ID
https://example.hypercontract.org/profile/OrderCancellation/schema/application/ld+json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "cancellationReason": {
      "type": "string"
    }
  },
  "required": []
}

# OrderHistory

A list of all Orders that are currently being processed, already fulfilled or have been cancelled by the user.

Links

orders Order[]
A reference to Orders in the Order History.

Schemas

Schema ID
https://example.hypercontract.org/profile/OrderHistory/schema/application/hal+json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "_links": {
      "type": "object",
      "properties": {
        "self": {
          "type": "object",
          "properties": {
            "href": {
              "type": "string",
              "$comment": "A unique identifier."
            }
          },
          "required": [
            "href"
          ]
        }
      },
      "required": [
        "self"
      ]
    },
    "_embedded": {
      "type": "object",
      "properties": {
        "https://example.hypercontract.org/profile/orders": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "orderDate": {
                "type": "string",
                "pattern": "^\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+([+-][0-2]\\d:[0-5]\\d|Z)$"
              },
              "orderStatus": {
                "type": "string",
                "enum": [
                  "Processing",
                  "Delivered",
                  "Cancelled"
                ]
              },
              "orderItems": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "price": {
                      "type": "number",
                      "multipleOf": 0.01,
                      "minimum": 0.01
                    },
                    "productDescription": {
                      "type": "string"
                    },
                    "productName": {
                      "type": "string"
                    },
                    "quantity": {
                      "type": "number",
                      "multipleOf": 1,
                      "minimum": 1
                    }
                  },
                  "required": [
                    "price",
                    "productDescription",
                    "productName",
                    "quantity"
                  ]
                },
                "minItems": 1
              },
              "payment": {
                "type": "object",
                "properties": {
                  "accountOwner": {
                    "type": "string"
                  },
                  "bic": {
                    "type": "string"
                  },
                  "iban": {
                    "type": "string"
                  }
                },
                "required": [
                  "accountOwner",
                  "bic",
                  "iban"
                ]
              },
              "billingAddress": {
                "type": "object",
                "properties": {
                  "city": {
                    "type": "string"
                  },
                  "country": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  },
                  "street": {
                    "type": "string"
                  },
                  "zipCode": {
                    "type": "string"
                  }
                },
                "required": [
                  "city",
                  "country",
                  "name",
                  "street",
                  "zipCode"
                ]
              },
              "shippingAddress": {
                "type": "object",
                "properties": {
                  "city": {
                    "type": "string"
                  },
                  "country": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  },
                  "street": {
                    "type": "string"
                  },
                  "zipCode": {
                    "type": "string"
                  }
                },
                "required": [
                  "city",
                  "country",
                  "name",
                  "street",
                  "zipCode"
                ]
              },
              "cancellationReason": {
                "type": "string"
              },
              "_links": {
                "type": "object",
                "properties": {
                  "self": {
                    "type": "object",
                    "properties": {
                      "href": {
                        "type": "string",
                        "$comment": "A unique identifier."
                      }
                    },
                    "required": [
                      "href"
                    ]
                  },
                  "https://example.hypercontract.org/profile/cancel": {
                    "type": "object",
                    "properties": {
                      "href": {
                        "type": "string",
                        "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/Order>."
                      }
                    },
                    "required": [
                      "href"
                    ]
                  }
                },
                "required": [
                  "self"
                ]
              },
              "_embedded": {
                "type": "object",
                "properties": {}
              }
            },
            "required": [
              "orderDate",
              "orderStatus",
              "orderItems",
              "payment",
              "billingAddress",
              "shippingAddress"
            ]
          }
        }
      }
    }
  },
  "required": []
}
Schema ID
https://example.hypercontract.org/profile/OrderHistory/schema/application/json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "orders": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "_id": {},
          "orderDate": {
            "type": "string",
            "pattern": "^\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+([+-][0-2]\\d:[0-5]\\d|Z)$"
          },
          "orderStatus": {
            "type": "string",
            "enum": [
              "Processing",
              "Delivered",
              "Cancelled"
            ]
          },
          "orderItems": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "price": {
                  "type": "number",
                  "multipleOf": 0.01,
                  "minimum": 0.01
                },
                "productDescription": {
                  "type": "string"
                },
                "productName": {
                  "type": "string"
                },
                "quantity": {
                  "type": "number",
                  "multipleOf": 1,
                  "minimum": 1
                }
              },
              "required": [
                "price",
                "productDescription",
                "productName",
                "quantity"
              ]
            },
            "minItems": 1
          },
          "payment": {
            "type": "object",
            "properties": {
              "accountOwner": {
                "type": "string"
              },
              "bic": {
                "type": "string"
              },
              "iban": {
                "type": "string"
              }
            },
            "required": [
              "accountOwner",
              "bic",
              "iban"
            ]
          },
          "billingAddress": {
            "type": "object",
            "properties": {
              "city": {
                "type": "string"
              },
              "country": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "street": {
                "type": "string"
              },
              "zipCode": {
                "type": "string"
              }
            },
            "required": [
              "city",
              "country",
              "name",
              "street",
              "zipCode"
            ]
          },
          "shippingAddress": {
            "type": "object",
            "properties": {
              "city": {
                "type": "string"
              },
              "country": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "street": {
                "type": "string"
              },
              "zipCode": {
                "type": "string"
              }
            },
            "required": [
              "city",
              "country",
              "name",
              "street",
              "zipCode"
            ]
          },
          "cancellationReason": {
            "type": "string"
          }
        },
        "required": [
          "_id",
          "orderDate",
          "orderStatus",
          "orderItems",
          "payment",
          "billingAddress",
          "shippingAddress"
        ]
      }
    }
  },
  "required": [
    "orders"
  ]
}
Schema ID
https://example.hypercontract.org/profile/OrderHistory/schema/application/ld+json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "@id": {
      "type": "string",
      "$comment": "A unique identifier."
    },
    "orders": {
      "type": "array",
      "items": {
        "oneOf": [
          {
            "type": "string",
            "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/Order>."
          },
          {
            "type": "object",
            "properties": {
              "@id": {
                "type": "string",
                "$comment": "A unique identifier."
              },
              "orderDate": {
                "type": "string",
                "pattern": "^\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+([+-][0-2]\\d:[0-5]\\d|Z)$"
              },
              "orderStatus": {
                "type": "string",
                "enum": [
                  "Processing",
                  "Delivered",
                  "Cancelled"
                ]
              },
              "orderItems": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "price": {
                      "type": "number",
                      "multipleOf": 0.01,
                      "minimum": 0.01
                    },
                    "productDescription": {
                      "type": "string"
                    },
                    "productName": {
                      "type": "string"
                    },
                    "quantity": {
                      "type": "number",
                      "multipleOf": 1,
                      "minimum": 1
                    }
                  },
                  "required": [
                    "price",
                    "productDescription",
                    "productName",
                    "quantity"
                  ]
                },
                "minItems": 1
              },
              "payment": {
                "type": "object",
                "properties": {
                  "accountOwner": {
                    "type": "string"
                  },
                  "bic": {
                    "type": "string"
                  },
                  "iban": {
                    "type": "string"
                  }
                },
                "required": [
                  "accountOwner",
                  "bic",
                  "iban"
                ]
              },
              "billingAddress": {
                "type": "object",
                "properties": {
                  "city": {
                    "type": "string"
                  },
                  "country": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  },
                  "street": {
                    "type": "string"
                  },
                  "zipCode": {
                    "type": "string"
                  }
                },
                "required": [
                  "city",
                  "country",
                  "name",
                  "street",
                  "zipCode"
                ]
              },
              "shippingAddress": {
                "type": "object",
                "properties": {
                  "city": {
                    "type": "string"
                  },
                  "country": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  },
                  "street": {
                    "type": "string"
                  },
                  "zipCode": {
                    "type": "string"
                  }
                },
                "required": [
                  "city",
                  "country",
                  "name",
                  "street",
                  "zipCode"
                ]
              },
              "@context": {
                "type": [
                  "object",
                  "string"
                ]
              },
              "cancellationReason": {
                "type": "string"
              },
              "cancel": {
                "type": "string",
                "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/Order>."
              }
            },
            "required": [
              "@id",
              "orderDate",
              "orderStatus",
              "orderItems",
              "payment",
              "billingAddress",
              "shippingAddress"
            ]
          }
        ]
      }
    },
    "@context": {
      "type": [
        "object",
        "string"
      ]
    }
  },
  "required": [
    "@id",
    "orders"
  ]
}

# OrderItem

A Product and its quantity as it has been ordered. The Order Item contains a copy of all Product information at the time when the Order was placed.

Properties

price xsd:decimal
The price per item.
productDescription xsd:string
A description of the Product's features and qualities.
productName xsd:string
The name of the Product.
quantity xsd:integer
The number of items ordered or to be ordered.

Schemas

Schema ID
https://example.hypercontract.org/profile/OrderItem/schema/application/hal+json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "price": {
      "type": "number",
      "multipleOf": 0.01,
      "minimum": 0.01
    },
    "productDescription": {
      "type": "string"
    },
    "productName": {
      "type": "string"
    },
    "quantity": {
      "type": "number",
      "multipleOf": 1,
      "minimum": 1
    }
  },
  "required": [
    "price",
    "productDescription",
    "productName",
    "quantity"
  ]
}
Schema ID
https://example.hypercontract.org/profile/OrderItem/schema/application/json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "price": {
      "type": "number",
      "multipleOf": 0.01,
      "minimum": 0.01
    },
    "productDescription": {
      "type": "string"
    },
    "productName": {
      "type": "string"
    },
    "quantity": {
      "type": "number",
      "multipleOf": 1,
      "minimum": 1
    }
  },
  "required": [
    "price",
    "productDescription",
    "productName",
    "quantity"
  ]
}
Schema ID
https://example.hypercontract.org/profile/OrderItem/schema/application/ld+json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "price": {
      "type": "number",
      "multipleOf": 0.01,
      "minimum": 0.01
    },
    "productDescription": {
      "type": "string"
    },
    "productName": {
      "type": "string"
    },
    "quantity": {
      "type": "number",
      "multipleOf": 1,
      "minimum": 1
    }
  },
  "required": [
    "price",
    "productDescription",
    "productName",
    "quantity"
  ]
}

# Payment

The payment details that are used to pay for the Order. This is a copy of a Payment Option from the User Profile at the time when the Order was placed.

Properties

accountOwner xsd:string
The owner of a banking account.
bic xsd:string
The BIC of a banking account.
iban xsd:string
The IBAN of a banking account.

Schemas

Schema ID
https://example.hypercontract.org/profile/Payment/schema/application/hal+json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "accountOwner": {
      "type": "string"
    },
    "bic": {
      "type": "string"
    },
    "iban": {
      "type": "string"
    }
  },
  "required": [
    "accountOwner",
    "bic",
    "iban"
  ]
}
Schema ID
https://example.hypercontract.org/profile/Payment/schema/application/json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "accountOwner": {
      "type": "string"
    },
    "bic": {
      "type": "string"
    },
    "iban": {
      "type": "string"
    }
  },
  "required": [
    "accountOwner",
    "bic",
    "iban"
  ]
}
Schema ID
https://example.hypercontract.org/profile/Payment/schema/application/ld+json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "accountOwner": {
      "type": "string"
    },
    "bic": {
      "type": "string"
    },
    "iban": {
      "type": "string"
    }
  },
  "required": [
    "accountOwner",
    "bic",
    "iban"
  ]
}

# PaymentOption

Payment details that can be used for Payment when placing an Order. The Order will contain a copy of all payment details. Changes to a Payment Option do not affect Orders that have been previously placed with that Payment Option.

Properties

accountOwner xsd:string
The owner of a banking account.
bic xsd:string
The BIC of a banking account.
iban xsd:string
The IBAN of a banking account.

Schemas

Schema ID
https://example.hypercontract.org/profile/PaymentOption/schema/application/hal+json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "accountOwner": {
      "type": "string"
    },
    "bic": {
      "type": "string"
    },
    "iban": {
      "type": "string"
    },
    "_links": {
      "type": "object",
      "properties": {
        "self": {
          "type": "object",
          "properties": {
            "href": {
              "type": "string",
              "$comment": "A unique identifier."
            }
          },
          "required": [
            "href"
          ]
        }
      },
      "required": [
        "self"
      ]
    },
    "_embedded": {
      "type": "object",
      "properties": {}
    }
  },
  "required": [
    "accountOwner",
    "bic",
    "iban"
  ]
}
Schema ID
https://example.hypercontract.org/profile/PaymentOption/schema/application/json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "_id": {},
    "accountOwner": {
      "type": "string"
    },
    "bic": {
      "type": "string"
    },
    "iban": {
      "type": "string"
    }
  },
  "required": [
    "_id",
    "accountOwner",
    "bic",
    "iban"
  ]
}
Schema ID
https://example.hypercontract.org/profile/PaymentOption/schema/application/ld+json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "@id": {
      "type": "string",
      "$comment": "A unique identifier."
    },
    "accountOwner": {
      "type": "string"
    },
    "bic": {
      "type": "string"
    },
    "iban": {
      "type": "string"
    },
    "@context": {
      "type": [
        "object",
        "string"
      ]
    }
  },
  "required": [
    "@id",
    "accountOwner",
    "bic",
    "iban"
  ]
}

# Product

A Product that can be ordered.

Properties

price xsd:decimal
The price per item.
productDescription xsd:string
A description of the Product's features and qualities.
productName xsd:string
The name of the Product.

Links

image A picture of the Product.

Operations

addToShoppingCart ShoppingCart
Adds a Product as a new Shopping Cart Item to the Shopping Cart or increases the quantity of an existing Shopping Cart Item when the Product has already been added to the Shopping Cart.

Schemas

Schema ID
https://example.hypercontract.org/profile/Product/schema/application/hal+json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "price": {
      "type": "number",
      "multipleOf": 0.01,
      "minimum": 0.01
    },
    "productDescription": {
      "type": "string"
    },
    "productName": {
      "type": "string"
    },
    "_links": {
      "type": "object",
      "properties": {
        "self": {
          "type": "object",
          "properties": {
            "href": {
              "type": "string",
              "$comment": "A unique identifier."
            }
          },
          "required": [
            "href"
          ]
        },
        "https://example.hypercontract.org/profile/image": {
          "type": "object",
          "properties": {
            "href": {
              "type": "string",
              "$comment": "Value is a URI for an image."
            }
          },
          "required": [
            "href"
          ]
        },
        "https://example.hypercontract.org/profile/addToShoppingCart": {
          "type": "object",
          "properties": {
            "href": {
              "type": "string",
              "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/ShoppingCartItems>."
            }
          },
          "required": [
            "href"
          ]
        }
      },
      "required": [
        "self"
      ]
    },
    "_embedded": {
      "type": "object",
      "properties": {}
    }
  },
  "required": [
    "price",
    "productDescription",
    "productName"
  ]
}
Schema ID
https://example.hypercontract.org/profile/Product/schema/application/json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "_id": {},
    "image": {
      "type": "string",
      "$comment": "Value is a URI for an image."
    },
    "price": {
      "type": "number",
      "multipleOf": 0.01,
      "minimum": 0.01
    },
    "productDescription": {
      "type": "string"
    },
    "productName": {
      "type": "string"
    }
  },
  "required": [
    "_id",
    "image",
    "price",
    "productDescription",
    "productName"
  ]
}
Schema ID
https://example.hypercontract.org/profile/Product/schema/application/ld+json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "@id": {
      "type": "string",
      "$comment": "A unique identifier."
    },
    "image": {
      "type": "string",
      "$comment": "Value is a URI for an image."
    },
    "price": {
      "type": "number",
      "multipleOf": 0.01,
      "minimum": 0.01
    },
    "productDescription": {
      "type": "string"
    },
    "productName": {
      "type": "string"
    },
    "@context": {
      "type": [
        "object",
        "string"
      ]
    },
    "addToShoppingCart": {
      "type": "string",
      "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/ShoppingCartItems>."
    }
  },
  "required": [
    "@id",
    "image",
    "price",
    "productDescription",
    "productName"
  ]
}

# QuantityChange

All information necessary to change the quantity of a Shopping Cart Item.

Properties

quantity xsd:integer
The number of items ordered or to be ordered.

Schemas

Schema ID
https://example.hypercontract.org/profile/QuantityChange/schema/application/hal+json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "quantity": {
      "type": "number",
      "multipleOf": 1,
      "minimum": 1
    }
  },
  "required": [
    "quantity"
  ]
}
Schema ID
https://example.hypercontract.org/profile/QuantityChange/schema/application/json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "quantity": {
      "type": "number",
      "multipleOf": 1,
      "minimum": 1
    }
  },
  "required": [
    "quantity"
  ]
}
Schema ID
https://example.hypercontract.org/profile/QuantityChange/schema/application/ld+json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "quantity": {
      "type": "number",
      "multipleOf": 1,
      "minimum": 1
    }
  },
  "required": [
    "quantity"
  ]
}

# SearchQuery

Search criteria used to search the catalog for Products.

Properties

queryString xsd:string
A free-text search term that is used to search the catalog for Products. It is matched against the product name and the product description.

Schemas

Schema ID
https://example.hypercontract.org/profile/SearchQuery/schema/text/uri-list
Schema Type
application/td+xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="td-00.xslt"?>
<td xmlns="urn:ietf:rfc:9999"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="urn:ietf:rfc:9999 td-00.xsd"
    hreft="https://example.hypercontract.org/products{?queryString}">
    <variable name="queryString" concept-uri="https://example.hypercontract.org/profile/queryString">
        <restriction base="string"/>
        <documentation xml:lang="en">A free-text search term that is used to search the catalog for Products. It is matched against the product name and the product description.</documentation>
    </variable>
    <documentation xml:lang="en">Search criteria used to search the catalog for Products.</documentation>
</td>

# SearchResults

A list of Products matching a Search Query.

Properties

totalResults xsd:integer
The total number of results matching the Search Query.

Links

products Product[]
A reference to Products from the catalog.

Schemas

Schema ID
https://example.hypercontract.org/profile/SearchResults/schema/application/hal+json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "totalResults": {
      "type": "number",
      "multipleOf": 1,
      "minimum": 0
    },
    "_links": {
      "type": "object",
      "properties": {
        "self": {
          "type": "object",
          "properties": {
            "href": {
              "type": "string",
              "$comment": "A unique identifier."
            }
          },
          "required": [
            "href"
          ]
        }
      },
      "required": [
        "self"
      ]
    },
    "_embedded": {
      "type": "object",
      "properties": {
        "https://example.hypercontract.org/profile/products": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "price": {
                "type": "number",
                "multipleOf": 0.01,
                "minimum": 0.01
              },
              "productDescription": {
                "type": "string"
              },
              "productName": {
                "type": "string"
              },
              "_links": {
                "type": "object",
                "properties": {
                  "self": {
                    "type": "object",
                    "properties": {
                      "href": {
                        "type": "string",
                        "$comment": "A unique identifier."
                      }
                    },
                    "required": [
                      "href"
                    ]
                  },
                  "https://example.hypercontract.org/profile/image": {
                    "type": "object",
                    "properties": {
                      "href": {
                        "type": "string",
                        "$comment": "Value is a URI for an image."
                      }
                    },
                    "required": [
                      "href"
                    ]
                  },
                  "https://example.hypercontract.org/profile/addToShoppingCart": {
                    "type": "object",
                    "properties": {
                      "href": {
                        "type": "string",
                        "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/ShoppingCartItems>."
                      }
                    },
                    "required": [
                      "href"
                    ]
                  }
                },
                "required": [
                  "self"
                ]
              },
              "_embedded": {
                "type": "object",
                "properties": {}
              }
            },
            "required": [
              "price",
              "productDescription",
              "productName"
            ]
          }
        }
      }
    }
  },
  "required": [
    "totalResults"
  ]
}
Schema ID
https://example.hypercontract.org/profile/SearchResults/schema/application/json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "products": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "_id": {},
          "image": {
            "type": "string",
            "$comment": "Value is a URI for an image."
          },
          "price": {
            "type": "number",
            "multipleOf": 0.01,
            "minimum": 0.01
          },
          "productDescription": {
            "type": "string"
          },
          "productName": {
            "type": "string"
          }
        },
        "required": [
          "_id",
          "image",
          "price",
          "productDescription",
          "productName"
        ]
      }
    },
    "totalResults": {
      "type": "number",
      "multipleOf": 1,
      "minimum": 0
    }
  },
  "required": [
    "products",
    "totalResults"
  ]
}
Schema ID
https://example.hypercontract.org/profile/SearchResults/schema/application/ld+json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "@id": {
      "type": "string",
      "$comment": "A unique identifier."
    },
    "products": {
      "type": "array",
      "items": {
        "oneOf": [
          {
            "type": "string",
            "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/Product>."
          },
          {
            "type": "object",
            "properties": {
              "@id": {
                "type": "string",
                "$comment": "A unique identifier."
              },
              "image": {
                "type": "string",
                "$comment": "Value is a URI for an image."
              },
              "price": {
                "type": "number",
                "multipleOf": 0.01,
                "minimum": 0.01
              },
              "productDescription": {
                "type": "string"
              },
              "productName": {
                "type": "string"
              },
              "@context": {
                "type": [
                  "object",
                  "string"
                ]
              },
              "addToShoppingCart": {
                "type": "string",
                "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/ShoppingCartItems>."
              }
            },
            "required": [
              "@id",
              "image",
              "price",
              "productDescription",
              "productName"
            ]
          }
        ]
      }
    },
    "totalResults": {
      "type": "number",
      "multipleOf": 1,
      "minimum": 0
    },
    "@context": {
      "type": [
        "object",
        "string"
      ]
    }
  },
  "required": [
    "@id",
    "products",
    "totalResults"
  ]
}

# ShippingAddress

The postal address to which the invoice will be sent. This is a copy of an Address from the User Profile at the time when the Order was placed.

Properties

city xsd:string
The city of an Address.
country xsd:string
The name of the country of an Address.
name xsd:string
The first and last name of the addressee of an Address.
street xsd:string
The street name and house number of an Address.
zipCode xsd:string
The ZIP code of an Address. There are no restrictions on the ZIP code's format.

Schemas

Schema ID
https://example.hypercontract.org/profile/ShippingAddress/schema/application/hal+json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "city": {
      "type": "string"
    },
    "country": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "street": {
      "type": "string"
    },
    "zipCode": {
      "type": "string"
    }
  },
  "required": [
    "city",
    "country",
    "name",
    "street",
    "zipCode"
  ]
}
Schema ID
https://example.hypercontract.org/profile/ShippingAddress/schema/application/json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "city": {
      "type": "string"
    },
    "country": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "street": {
      "type": "string"
    },
    "zipCode": {
      "type": "string"
    }
  },
  "required": [
    "city",
    "country",
    "name",
    "street",
    "zipCode"
  ]
}
Schema ID
https://example.hypercontract.org/profile/ShippingAddress/schema/application/ld+json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "city": {
      "type": "string"
    },
    "country": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "street": {
      "type": "string"
    },
    "zipCode": {
      "type": "string"
    }
  },
  "required": [
    "city",
    "country",
    "name",
    "street",
    "zipCode"
  ]
}

# ShoppingCart

A list of Products that the user wants to order.

Properties

totalPrice xsd:decimal
The total price of all items in the Shopping Cart. It is calculated by summing up the item's prices multiplied with their respective quantities.

Links

items ShoppingCartItem[]
The Shopping Cart Items currently in the Shopping Cart.

Operations

placeOrder Order
Places a new Order based on the provided information. The Shopping Cart will be emptied after the Order has been successfully created.

Schemas

Schema ID
https://example.hypercontract.org/profile/ShoppingCart/schema/application/hal+json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "totalPrice": {
      "type": "number",
      "multipleOf": 0.01,
      "minimum": 0
    },
    "_links": {
      "type": "object",
      "properties": {
        "self": {
          "type": "object",
          "properties": {
            "href": {
              "type": "string",
              "$comment": "A unique identifier."
            }
          },
          "required": [
            "href"
          ]
        },
        "https://example.hypercontract.org/profile/placeOrder": {
          "type": "object",
          "properties": {
            "href": {
              "type": "string",
              "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/OrderHistory>."
            }
          },
          "required": [
            "href"
          ]
        }
      },
      "required": [
        "self"
      ]
    },
    "_embedded": {
      "type": "object",
      "properties": {
        "https://example.hypercontract.org/profile/items": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "price": {
                "type": "number",
                "multipleOf": 0.01,
                "minimum": 0.01
              },
              "productDescription": {
                "type": "string"
              },
              "productName": {
                "type": "string"
              },
              "quantity": {
                "type": "number",
                "multipleOf": 1,
                "minimum": 1
              },
              "_links": {
                "type": "object",
                "properties": {
                  "self": {
                    "type": "object",
                    "properties": {
                      "href": {
                        "type": "string",
                        "$comment": "A unique identifier."
                      }
                    },
                    "required": [
                      "href"
                    ]
                  },
                  "https://example.hypercontract.org/profile/changeQuantity": {
                    "type": "object",
                    "properties": {
                      "href": {
                        "type": "string",
                        "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/ShoppingCartItem>."
                      }
                    },
                    "required": [
                      "href"
                    ]
                  },
                  "https://example.hypercontract.org/profile/remove": {
                    "type": "object",
                    "properties": {
                      "href": {
                        "type": "string",
                        "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/ShoppingCartItem>."
                      }
                    },
                    "required": [
                      "href"
                    ]
                  },
                  "https://example.hypercontract.org/profile/product": {
                    "type": "object",
                    "properties": {
                      "href": {
                        "type": "string",
                        "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/Product>."
                      }
                    },
                    "required": [
                      "href"
                    ]
                  }
                },
                "required": [
                  "self"
                ]
              },
              "_embedded": {
                "type": "object",
                "properties": {}
              }
            },
            "required": [
              "price",
              "productDescription",
              "productName",
              "quantity"
            ]
          }
        }
      }
    }
  },
  "required": [
    "totalPrice"
  ]
}
Schema ID
https://example.hypercontract.org/profile/ShoppingCart/schema/application/json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "_id": {},
          "price": {
            "type": "number",
            "multipleOf": 0.01,
            "minimum": 0.01
          },
          "productDescription": {
            "type": "string"
          },
          "productName": {
            "type": "string"
          },
          "quantity": {
            "type": "number",
            "multipleOf": 1,
            "minimum": 1
          },
          "product": {
            "type": "string",
            "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/Product>."
          }
        },
        "required": [
          "_id",
          "price",
          "productDescription",
          "productName",
          "quantity",
          "product"
        ]
      }
    },
    "totalPrice": {
      "type": "number",
      "multipleOf": 0.01,
      "minimum": 0
    }
  },
  "required": [
    "items",
    "totalPrice"
  ]
}
Schema ID
https://example.hypercontract.org/profile/ShoppingCart/schema/application/ld+json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "@id": {
      "type": "string",
      "$comment": "A unique identifier."
    },
    "items": {
      "type": "array",
      "items": {
        "oneOf": [
          {
            "type": "string",
            "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/ShoppingCartItem>."
          },
          {
            "type": "object",
            "properties": {
              "@id": {
                "type": "string",
                "$comment": "A unique identifier."
              },
              "price": {
                "type": "number",
                "multipleOf": 0.01,
                "minimum": 0.01
              },
              "productDescription": {
                "type": "string"
              },
              "productName": {
                "type": "string"
              },
              "quantity": {
                "type": "number",
                "multipleOf": 1,
                "minimum": 1
              },
              "product": {
                "oneOf": [
                  {
                    "type": "string",
                    "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/Product>."
                  },
                  {
                    "type": "object",
                    "properties": {
                      "@id": {
                        "type": "string",
                        "$comment": "A unique identifier."
                      },
                      "image": {
                        "type": "string",
                        "$comment": "Value is a URI for an image."
                      },
                      "price": {
                        "type": "number",
                        "multipleOf": 0.01,
                        "minimum": 0.01
                      },
                      "productDescription": {
                        "type": "string"
                      },
                      "productName": {
                        "type": "string"
                      },
                      "@context": {
                        "type": [
                          "object",
                          "string"
                        ]
                      },
                      "addToShoppingCart": {
                        "type": "string",
                        "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/ShoppingCartItems>."
                      }
                    },
                    "required": [
                      "@id",
                      "image",
                      "price",
                      "productDescription",
                      "productName"
                    ]
                  }
                ]
              },
              "@context": {
                "type": [
                  "object",
                  "string"
                ]
              },
              "changeQuantity": {
                "type": "string",
                "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/ShoppingCartItem>."
              },
              "remove": {
                "type": "string",
                "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/ShoppingCartItem>."
              }
            },
            "required": [
              "@id",
              "price",
              "productDescription",
              "productName",
              "quantity",
              "product"
            ]
          }
        ]
      }
    },
    "totalPrice": {
      "type": "number",
      "multipleOf": 0.01,
      "minimum": 0
    },
    "@context": {
      "type": [
        "object",
        "string"
      ]
    },
    "placeOrder": {
      "type": "string",
      "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/OrderHistory>."
    }
  },
  "required": [
    "@id",
    "items",
    "totalPrice"
  ]
}

# ShoppingCartItem

A Product and the quantity the user wants to order. The Shopping Cart Item contains a copy of all Product information at the time when the Product was added to the Shopping Cart.

Properties

price xsd:decimal
The price per item.
productDescription xsd:string
A description of the Product's features and qualities.
productName xsd:string
The name of the Product.
quantity xsd:integer
The number of items ordered or to be ordered.

Links

product Product
A reference to a Product from the catalog.

Operations

changeQuantity ShoppingCart
Change the quantity of a Shopping Cart Item.
remove ShoppingCart
Removes a Shopping Cart Item from the Shopping Cart.

Schemas

Schema ID
https://example.hypercontract.org/profile/ShoppingCartItem/schema/application/hal+json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "price": {
      "type": "number",
      "multipleOf": 0.01,
      "minimum": 0.01
    },
    "productDescription": {
      "type": "string"
    },
    "productName": {
      "type": "string"
    },
    "quantity": {
      "type": "number",
      "multipleOf": 1,
      "minimum": 1
    },
    "_links": {
      "type": "object",
      "properties": {
        "self": {
          "type": "object",
          "properties": {
            "href": {
              "type": "string",
              "$comment": "A unique identifier."
            }
          },
          "required": [
            "href"
          ]
        },
        "https://example.hypercontract.org/profile/changeQuantity": {
          "type": "object",
          "properties": {
            "href": {
              "type": "string",
              "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/ShoppingCartItem>."
            }
          },
          "required": [
            "href"
          ]
        },
        "https://example.hypercontract.org/profile/remove": {
          "type": "object",
          "properties": {
            "href": {
              "type": "string",
              "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/ShoppingCartItem>."
            }
          },
          "required": [
            "href"
          ]
        },
        "https://example.hypercontract.org/profile/product": {
          "type": "object",
          "properties": {
            "href": {
              "type": "string",
              "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/Product>."
            }
          },
          "required": [
            "href"
          ]
        }
      },
      "required": [
        "self"
      ]
    },
    "_embedded": {
      "type": "object",
      "properties": {}
    }
  },
  "required": [
    "price",
    "productDescription",
    "productName",
    "quantity"
  ]
}
Schema ID
https://example.hypercontract.org/profile/ShoppingCartItem/schema/application/json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "_id": {},
    "price": {
      "type": "number",
      "multipleOf": 0.01,
      "minimum": 0.01
    },
    "productDescription": {
      "type": "string"
    },
    "productName": {
      "type": "string"
    },
    "quantity": {
      "type": "number",
      "multipleOf": 1,
      "minimum": 1
    },
    "product": {
      "type": "string",
      "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/Product>."
    }
  },
  "required": [
    "_id",
    "price",
    "productDescription",
    "productName",
    "quantity",
    "product"
  ]
}
Schema ID
https://example.hypercontract.org/profile/ShoppingCartItem/schema/application/ld+json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "@id": {
      "type": "string",
      "$comment": "A unique identifier."
    },
    "price": {
      "type": "number",
      "multipleOf": 0.01,
      "minimum": 0.01
    },
    "productDescription": {
      "type": "string"
    },
    "productName": {
      "type": "string"
    },
    "quantity": {
      "type": "number",
      "multipleOf": 1,
      "minimum": 1
    },
    "product": {
      "oneOf": [
        {
          "type": "string",
          "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/Product>."
        },
        {
          "type": "object",
          "properties": {
            "@id": {
              "type": "string",
              "$comment": "A unique identifier."
            },
            "image": {
              "type": "string",
              "$comment": "Value is a URI for an image."
            },
            "price": {
              "type": "number",
              "multipleOf": 0.01,
              "minimum": 0.01
            },
            "productDescription": {
              "type": "string"
            },
            "productName": {
              "type": "string"
            },
            "@context": {
              "type": [
                "object",
                "string"
              ]
            },
            "addToShoppingCart": {
              "type": "string",
              "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/ShoppingCartItems>."
            }
          },
          "required": [
            "@id",
            "image",
            "price",
            "productDescription",
            "productName"
          ]
        }
      ]
    },
    "@context": {
      "type": [
        "object",
        "string"
      ]
    },
    "changeQuantity": {
      "type": "string",
      "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/ShoppingCartItem>."
    },
    "remove": {
      "type": "string",
      "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/ShoppingCartItem>."
    }
  },
  "required": [
    "@id",
    "price",
    "productDescription",
    "productName",
    "quantity",
    "product"
  ]
}

# ShoppingCartItems

The list of Shopping Cart Items that have been added to the Shopping Cart

# UserProfile

Available Addresses and Payment Options of a user.

Links

addresses Address[]
A reference to all Addresses in a User Profile.
paymentOptions PaymentOption[]
A reference to all Payment Options in a User Profile.

Schemas

Schema ID
https://example.hypercontract.org/profile/UserProfile/schema/application/hal+json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "_links": {
      "type": "object",
      "properties": {
        "self": {
          "type": "object",
          "properties": {
            "href": {
              "type": "string",
              "$comment": "A unique identifier."
            }
          },
          "required": [
            "href"
          ]
        }
      },
      "required": [
        "self"
      ]
    },
    "_embedded": {
      "type": "object",
      "properties": {
        "https://example.hypercontract.org/profile/addresses": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "city": {
                "type": "string"
              },
              "country": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "street": {
                "type": "string"
              },
              "zipCode": {
                "type": "string"
              },
              "_links": {
                "type": "object",
                "properties": {
                  "self": {
                    "type": "object",
                    "properties": {
                      "href": {
                        "type": "string",
                        "$comment": "A unique identifier."
                      }
                    },
                    "required": [
                      "href"
                    ]
                  }
                },
                "required": [
                  "self"
                ]
              },
              "_embedded": {
                "type": "object",
                "properties": {}
              }
            },
            "required": [
              "city",
              "country",
              "name",
              "street",
              "zipCode"
            ]
          },
          "minItems": 1
        },
        "https://example.hypercontract.org/profile/paymentOptions": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "accountOwner": {
                "type": "string"
              },
              "bic": {
                "type": "string"
              },
              "iban": {
                "type": "string"
              },
              "_links": {
                "type": "object",
                "properties": {
                  "self": {
                    "type": "object",
                    "properties": {
                      "href": {
                        "type": "string",
                        "$comment": "A unique identifier."
                      }
                    },
                    "required": [
                      "href"
                    ]
                  }
                },
                "required": [
                  "self"
                ]
              },
              "_embedded": {
                "type": "object",
                "properties": {}
              }
            },
            "required": [
              "accountOwner",
              "bic",
              "iban"
            ]
          },
          "minItems": 1
        }
      }
    }
  },
  "required": []
}
Schema ID
https://example.hypercontract.org/profile/UserProfile/schema/application/json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "addresses": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "_id": {},
          "city": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "street": {
            "type": "string"
          },
          "zipCode": {
            "type": "string"
          }
        },
        "required": [
          "_id",
          "city",
          "country",
          "name",
          "street",
          "zipCode"
        ]
      },
      "minItems": 1
    },
    "paymentOptions": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "_id": {},
          "accountOwner": {
            "type": "string"
          },
          "bic": {
            "type": "string"
          },
          "iban": {
            "type": "string"
          }
        },
        "required": [
          "_id",
          "accountOwner",
          "bic",
          "iban"
        ]
      },
      "minItems": 1
    }
  },
  "required": [
    "addresses",
    "paymentOptions"
  ]
}
Schema ID
https://example.hypercontract.org/profile/UserProfile/schema/application/ld+json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "@id": {
      "type": "string",
      "$comment": "A unique identifier."
    },
    "addresses": {
      "type": "array",
      "items": {
        "oneOf": [
          {
            "type": "string",
            "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/Address>."
          },
          {
            "type": "object",
            "properties": {
              "@id": {
                "type": "string",
                "$comment": "A unique identifier."
              },
              "city": {
                "type": "string"
              },
              "country": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "street": {
                "type": "string"
              },
              "zipCode": {
                "type": "string"
              },
              "@context": {
                "type": [
                  "object",
                  "string"
                ]
              }
            },
            "required": [
              "@id",
              "city",
              "country",
              "name",
              "street",
              "zipCode"
            ]
          }
        ]
      },
      "minItems": 1
    },
    "paymentOptions": {
      "type": "array",
      "items": {
        "oneOf": [
          {
            "type": "string",
            "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/PaymentOption>."
          },
          {
            "type": "object",
            "properties": {
              "@id": {
                "type": "string",
                "$comment": "A unique identifier."
              },
              "accountOwner": {
                "type": "string"
              },
              "bic": {
                "type": "string"
              },
              "iban": {
                "type": "string"
              },
              "@context": {
                "type": [
                  "object",
                  "string"
                ]
              }
            },
            "required": [
              "@id",
              "accountOwner",
              "bic",
              "iban"
            ]
          }
        ]
      },
      "minItems": 1
    },
    "@context": {
      "type": [
        "object",
        "string"
      ]
    }
  },
  "required": [
    "@id",
    "addresses",
    "paymentOptions"
  ]
}

Properties

# accountOwner

The owner of a banking account.

Used by
Payment
PaymentOption
Value Type
xsd:string
Schema ID
https://example.hypercontract.org/profile/accountOwner/schema/application/hal+json
Schema Type
application/schema+json
{
  "type": "string"
}
Schema ID
https://example.hypercontract.org/profile/accountOwner/schema/application/json
Schema Type
application/schema+json
{
  "type": "string"
}
Schema ID
https://example.hypercontract.org/profile/accountOwner/schema/application/ld+json
Schema Type
application/schema+json
{
  "type": "string"
}

# bic

The BIC of a banking account.

Used by
Payment
PaymentOption
Value Type
xsd:string
Schema ID
https://example.hypercontract.org/profile/bic/schema/application/hal+json
Schema Type
application/schema+json
{
  "type": "string"
}
Schema ID
https://example.hypercontract.org/profile/bic/schema/application/json
Schema Type
application/schema+json
{
  "type": "string"
}
Schema ID
https://example.hypercontract.org/profile/bic/schema/application/ld+json
Schema Type
application/schema+json
{
  "type": "string"
}

# cancellationReason

A free-text reason for why the Order was or is being cancelled.

Used by
Order
OrderCancellation
Value Type
xsd:string
Schema ID
https://example.hypercontract.org/profile/cancellationReason/schema/application/hal+json
Schema Type
application/schema+json
{
  "type": "string"
}
Schema ID
https://example.hypercontract.org/profile/cancellationReason/schema/application/json
Schema Type
application/schema+json
{
  "type": "string"
}
Schema ID
https://example.hypercontract.org/profile/cancellationReason/schema/application/ld+json
Schema Type
application/schema+json
{
  "type": "string"
}

# city

The city of an Address.

Used by
Address
BillingAddress
ShippingAddress
Value Type
xsd:string
Schema ID
https://example.hypercontract.org/profile/city/schema/application/hal+json
Schema Type
application/schema+json
{
  "type": "string"
}
Schema ID
https://example.hypercontract.org/profile/city/schema/application/json
Schema Type
application/schema+json
{
  "type": "string"
}
Schema ID
https://example.hypercontract.org/profile/city/schema/application/ld+json
Schema Type
application/schema+json
{
  "type": "string"
}

# country

The name of the country of an Address.

Used by
Address
BillingAddress
ShippingAddress
Value Type
xsd:string
Schema ID
https://example.hypercontract.org/profile/country/schema/application/hal+json
Schema Type
application/schema+json
{
  "type": "string"
}
Schema ID
https://example.hypercontract.org/profile/country/schema/application/json
Schema Type
application/schema+json
{
  "type": "string"
}
Schema ID
https://example.hypercontract.org/profile/country/schema/application/ld+json
Schema Type
application/schema+json
{
  "type": "string"
}

# iban

The IBAN of a banking account.

Used by
Payment
PaymentOption
Value Type
xsd:string
Schema ID
https://example.hypercontract.org/profile/iban/schema/application/hal+json
Schema Type
application/schema+json
{
  "type": "string"
}
Schema ID
https://example.hypercontract.org/profile/iban/schema/application/json
Schema Type
application/schema+json
{
  "type": "string"
}
Schema ID
https://example.hypercontract.org/profile/iban/schema/application/ld+json
Schema Type
application/schema+json
{
  "type": "string"
}

# name

The first and last name of the addressee of an Address.

Used by
Address
BillingAddress
ShippingAddress
Value Type
xsd:string
Schema ID
https://example.hypercontract.org/profile/name/schema/application/hal+json
Schema Type
application/schema+json
{
  "type": "string"
}
Schema ID
https://example.hypercontract.org/profile/name/schema/application/json
Schema Type
application/schema+json
{
  "type": "string"
}
Schema ID
https://example.hypercontract.org/profile/name/schema/application/ld+json
Schema Type
application/schema+json
{
  "type": "string"
}

# orderDate

The date when the Order was placed.

Used by
Order
Value Type
xsd:date
Schema ID
https://example.hypercontract.org/profile/orderDate/schema/application/hal+json
Schema Type
application/schema+json
{
  "type": "string",
  "pattern": "^\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+([+-][0-2]\\d:[0-5]\\d|Z)$"
}
Schema ID
https://example.hypercontract.org/profile/orderDate/schema/application/json
Schema Type
application/schema+json
{
  "type": "string",
  "pattern": "^\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+([+-][0-2]\\d:[0-5]\\d|Z)$"
}
Schema ID
https://example.hypercontract.org/profile/orderDate/schema/application/ld+json
Schema Type
application/schema+json
{
  "type": "string",
  "pattern": "^\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+([+-][0-2]\\d:[0-5]\\d|Z)$"
}

# orderStatus

The status of the Order. Either "Processing", "Delivered" or "Cancelled".

Used by
Order
Value Type
xsd:string
Schema ID
https://example.hypercontract.org/profile/orderStatus/schema/application/hal+json
Schema Type
application/schema+json
{
  "type": "string",
  "enum": [
    "Processing",
    "Delivered",
    "Cancelled"
  ]
}
Schema ID
https://example.hypercontract.org/profile/orderStatus/schema/application/json
Schema Type
application/schema+json
{
  "type": "string",
  "enum": [
    "Processing",
    "Delivered",
    "Cancelled"
  ]
}
Schema ID
https://example.hypercontract.org/profile/orderStatus/schema/application/ld+json
Schema Type
application/schema+json
{
  "type": "string",
  "enum": [
    "Processing",
    "Delivered",
    "Cancelled"
  ]
}

# price

The price per item.

Used by
OrderItem
Product
ShoppingCartItem
Value Type
xsd:decimal
Schema ID
https://example.hypercontract.org/profile/price/schema/application/hal+json
Schema Type
application/schema+json
{
  "type": "number",
  "multipleOf": 0.01,
  "minimum": 0.01
}
Schema ID
https://example.hypercontract.org/profile/price/schema/application/json
Schema Type
application/schema+json
{
  "type": "number",
  "multipleOf": 0.01,
  "minimum": 0.01
}
Schema ID
https://example.hypercontract.org/profile/price/schema/application/ld+json
Schema Type
application/schema+json
{
  "type": "number",
  "multipleOf": 0.01,
  "minimum": 0.01
}

# productDescription

A description of the Product's features and qualities.

Used by
OrderItem
Product
ShoppingCartItem
Value Type
xsd:string
Schema ID
https://example.hypercontract.org/profile/productDescription/schema/application/hal+json
Schema Type
application/schema+json
{
  "type": "string"
}
Schema ID
https://example.hypercontract.org/profile/productDescription/schema/application/json
Schema Type
application/schema+json
{
  "type": "string"
}
Schema ID
https://example.hypercontract.org/profile/productDescription/schema/application/ld+json
Schema Type
application/schema+json
{
  "type": "string"
}

# productName

The name of the Product.

Used by
OrderItem
Product
ShoppingCartItem
Value Type
xsd:string
Schema ID
https://example.hypercontract.org/profile/productName/schema/application/hal+json
Schema Type
application/schema+json
{
  "type": "string"
}
Schema ID
https://example.hypercontract.org/profile/productName/schema/application/json
Schema Type
application/schema+json
{
  "type": "string"
}
Schema ID
https://example.hypercontract.org/profile/productName/schema/application/ld+json
Schema Type
application/schema+json
{
  "type": "string"
}

# quantity

The number of items ordered or to be ordered.

Used by
AdditionToShoppingCart
OrderItem
QuantityChange
ShoppingCartItem
Value Type
xsd:integer
Schema ID
https://example.hypercontract.org/profile/quantity/schema/application/hal+json
Schema Type
application/schema+json
{
  "type": "number",
  "multipleOf": 1,
  "minimum": 1
}
Schema ID
https://example.hypercontract.org/profile/quantity/schema/application/json
Schema Type
application/schema+json
{
  "type": "number",
  "multipleOf": 1,
  "minimum": 1
}
Schema ID
https://example.hypercontract.org/profile/quantity/schema/application/ld+json
Schema Type
application/schema+json
{
  "type": "number",
  "multipleOf": 1,
  "minimum": 1
}

# queryString

A free-text search term that is used to search the catalog for Products. It is matched against the product name and the product description.

Used by
SearchQuery
Value Type
xsd:string

# street

The street name and house number of an Address.

Used by
Address
BillingAddress
ShippingAddress
Value Type
xsd:string
Schema ID
https://example.hypercontract.org/profile/street/schema/application/hal+json
Schema Type
application/schema+json
{
  "type": "string"
}
Schema ID
https://example.hypercontract.org/profile/street/schema/application/json
Schema Type
application/schema+json
{
  "type": "string"
}
Schema ID
https://example.hypercontract.org/profile/street/schema/application/ld+json
Schema Type
application/schema+json
{
  "type": "string"
}

# totalPrice

The total price of all items in the Shopping Cart. It is calculated by summing up the item's prices multiplied with their respective quantities.

Used by
ShoppingCart
Value Type
xsd:decimal
Schema ID
https://example.hypercontract.org/profile/totalPrice/schema/application/hal+json
Schema Type
application/schema+json
{
  "type": "number",
  "multipleOf": 0.01,
  "minimum": 0
}
Schema ID
https://example.hypercontract.org/profile/totalPrice/schema/application/json
Schema Type
application/schema+json
{
  "type": "number",
  "multipleOf": 0.01,
  "minimum": 0
}
Schema ID
https://example.hypercontract.org/profile/totalPrice/schema/application/ld+json
Schema Type
application/schema+json
{
  "type": "number",
  "multipleOf": 0.01,
  "minimum": 0
}

# totalResults

The total number of results matching the Search Query.

Used by
SearchResults
Value Type
xsd:integer
Schema ID
https://example.hypercontract.org/profile/totalResults/schema/application/hal+json
Schema Type
application/schema+json
{
  "type": "number",
  "multipleOf": 1,
  "minimum": 0
}
Schema ID
https://example.hypercontract.org/profile/totalResults/schema/application/json
Schema Type
application/schema+json
{
  "type": "number",
  "multipleOf": 1,
  "minimum": 0
}
Schema ID
https://example.hypercontract.org/profile/totalResults/schema/application/ld+json
Schema Type
application/schema+json
{
  "type": "number",
  "multipleOf": 1,
  "minimum": 0
}

# zipCode

The ZIP code of an Address. There are no restrictions on the ZIP code's format.

Used by
Address
BillingAddress
ShippingAddress
Value Type
xsd:string
Schema ID
https://example.hypercontract.org/profile/zipCode/schema/application/hal+json
Schema Type
application/schema+json
{
  "type": "string"
}
Schema ID
https://example.hypercontract.org/profile/zipCode/schema/application/json
Schema Type
application/schema+json
{
  "type": "string"
}
Schema ID
https://example.hypercontract.org/profile/zipCode/schema/application/ld+json
Schema Type
application/schema+json
{
  "type": "string"
}

# billingAddress

A reference to the Billing Address of an Order. The name in the Billing Address does not have to be identical to the name of the account owner of the chosen Payment.

Used by
NewOrder
Order
Value Type
BillingAddress
Schema ID
https://example.hypercontract.org/profile/billingAddress/schema/application/hal+json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "city": {
      "type": "string"
    },
    "country": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "street": {
      "type": "string"
    },
    "zipCode": {
      "type": "string"
    }
  },
  "required": [
    "city",
    "country",
    "name",
    "street",
    "zipCode"
  ]
}
Schema ID
https://example.hypercontract.org/profile/billingAddress/schema/application/json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "city": {
      "type": "string"
    },
    "country": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "street": {
      "type": "string"
    },
    "zipCode": {
      "type": "string"
    }
  },
  "required": [
    "city",
    "country",
    "name",
    "street",
    "zipCode"
  ]
}
Schema ID
https://example.hypercontract.org/profile/billingAddress/schema/application/ld+json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "city": {
      "type": "string"
    },
    "country": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "street": {
      "type": "string"
    },
    "zipCode": {
      "type": "string"
    }
  },
  "required": [
    "city",
    "country",
    "name",
    "street",
    "zipCode"
  ]
}

# orderItems

The Order Items of an Order.

Used by
Order
Value Type
OrderItem[]
Schema ID
https://example.hypercontract.org/profile/orderItems/schema/application/hal+json
Schema Type
application/schema+json
{
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "price": {
        "type": "number",
        "multipleOf": 0.01,
        "minimum": 0.01
      },
      "productDescription": {
        "type": "string"
      },
      "productName": {
        "type": "string"
      },
      "quantity": {
        "type": "number",
        "multipleOf": 1,
        "minimum": 1
      }
    },
    "required": [
      "price",
      "productDescription",
      "productName",
      "quantity"
    ]
  },
  "minItems": 1
}
Schema ID
https://example.hypercontract.org/profile/orderItems/schema/application/json
Schema Type
application/schema+json
{
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "price": {
        "type": "number",
        "multipleOf": 0.01,
        "minimum": 0.01
      },
      "productDescription": {
        "type": "string"
      },
      "productName": {
        "type": "string"
      },
      "quantity": {
        "type": "number",
        "multipleOf": 1,
        "minimum": 1
      }
    },
    "required": [
      "price",
      "productDescription",
      "productName",
      "quantity"
    ]
  },
  "minItems": 1
}
Schema ID
https://example.hypercontract.org/profile/orderItems/schema/application/ld+json
Schema Type
application/schema+json
{
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "price": {
        "type": "number",
        "multipleOf": 0.01,
        "minimum": 0.01
      },
      "productDescription": {
        "type": "string"
      },
      "productName": {
        "type": "string"
      },
      "quantity": {
        "type": "number",
        "multipleOf": 1,
        "minimum": 1
      }
    },
    "required": [
      "price",
      "productDescription",
      "productName",
      "quantity"
    ]
  },
  "minItems": 1
}

# payment

A reference to the Payment of an Order. The name of the account owner does not have to be indentical to the name in the chosen Billing Address.

Used by
NewOrder
Order
Value Type
Payment
Schema ID
https://example.hypercontract.org/profile/payment/schema/application/hal+json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "accountOwner": {
      "type": "string"
    },
    "bic": {
      "type": "string"
    },
    "iban": {
      "type": "string"
    }
  },
  "required": [
    "accountOwner",
    "bic",
    "iban"
  ]
}
Schema ID
https://example.hypercontract.org/profile/payment/schema/application/json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "accountOwner": {
      "type": "string"
    },
    "bic": {
      "type": "string"
    },
    "iban": {
      "type": "string"
    }
  },
  "required": [
    "accountOwner",
    "bic",
    "iban"
  ]
}
Schema ID
https://example.hypercontract.org/profile/payment/schema/application/ld+json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "accountOwner": {
      "type": "string"
    },
    "bic": {
      "type": "string"
    },
    "iban": {
      "type": "string"
    }
  },
  "required": [
    "accountOwner",
    "bic",
    "iban"
  ]
}

# shippingAddress

A reference to the Shipping Address of an Order.

Used by
NewOrder
Order
Value Type
ShippingAddress
Schema ID
https://example.hypercontract.org/profile/shippingAddress/schema/application/hal+json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "city": {
      "type": "string"
    },
    "country": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "street": {
      "type": "string"
    },
    "zipCode": {
      "type": "string"
    }
  },
  "required": [
    "city",
    "country",
    "name",
    "street",
    "zipCode"
  ]
}
Schema ID
https://example.hypercontract.org/profile/shippingAddress/schema/application/json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "city": {
      "type": "string"
    },
    "country": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "street": {
      "type": "string"
    },
    "zipCode": {
      "type": "string"
    }
  },
  "required": [
    "city",
    "country",
    "name",
    "street",
    "zipCode"
  ]
}
Schema ID
https://example.hypercontract.org/profile/shippingAddress/schema/application/ld+json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "city": {
      "type": "string"
    },
    "country": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "street": {
      "type": "string"
    },
    "zipCode": {
      "type": "string"
    }
  },
  "required": [
    "city",
    "country",
    "name",
    "street",
    "zipCode"
  ]
}

# shoppingCartItems

A reference to Shopping Cart Items in the Shopping Cart.

Used by
NewOrder
Value Type
ShoppingCartItem[]
Schema ID
https://example.hypercontract.org/profile/shoppingCartItems/schema/application/hal+json
Schema Type
application/schema+json
{
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "price": {
        "type": "number",
        "multipleOf": 0.01,
        "minimum": 0.01
      },
      "productDescription": {
        "type": "string"
      },
      "productName": {
        "type": "string"
      },
      "quantity": {
        "type": "number",
        "multipleOf": 1,
        "minimum": 1
      },
      "_links": {
        "type": "object",
        "properties": {
          "self": {
            "type": "object",
            "properties": {
              "href": {
                "type": "string",
                "$comment": "A unique identifier."
              }
            },
            "required": [
              "href"
            ]
          },
          "https://example.hypercontract.org/profile/changeQuantity": {
            "type": "object",
            "properties": {
              "href": {
                "type": "string",
                "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/ShoppingCartItem>."
              }
            },
            "required": [
              "href"
            ]
          },
          "https://example.hypercontract.org/profile/remove": {
            "type": "object",
            "properties": {
              "href": {
                "type": "string",
                "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/ShoppingCartItem>."
              }
            },
            "required": [
              "href"
            ]
          },
          "https://example.hypercontract.org/profile/product": {
            "type": "object",
            "properties": {
              "href": {
                "type": "string",
                "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/Product>."
              }
            },
            "required": [
              "href"
            ]
          }
        },
        "required": [
          "self"
        ]
      },
      "_embedded": {
        "type": "object",
        "properties": {}
      }
    },
    "required": [
      "price",
      "productDescription",
      "productName",
      "quantity"
    ]
  },
  "minItems": 1
}
Schema ID
https://example.hypercontract.org/profile/shoppingCartItems/schema/application/json
Schema Type
application/schema+json
{
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "_id": {},
      "price": {
        "type": "number",
        "multipleOf": 0.01,
        "minimum": 0.01
      },
      "productDescription": {
        "type": "string"
      },
      "productName": {
        "type": "string"
      },
      "quantity": {
        "type": "number",
        "multipleOf": 1,
        "minimum": 1
      },
      "product": {
        "type": "string",
        "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/Product>."
      }
    },
    "required": [
      "_id",
      "price",
      "productDescription",
      "productName",
      "quantity",
      "product"
    ]
  },
  "minItems": 1
}
Schema ID
https://example.hypercontract.org/profile/shoppingCartItems/schema/application/ld+json
Schema Type
application/schema+json
{
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "@id": {
        "type": "string",
        "$comment": "A unique identifier."
      },
      "price": {
        "type": "number",
        "multipleOf": 0.01,
        "minimum": 0.01
      },
      "productDescription": {
        "type": "string"
      },
      "productName": {
        "type": "string"
      },
      "quantity": {
        "type": "number",
        "multipleOf": 1,
        "minimum": 1
      },
      "product": {
        "oneOf": [
          {
            "type": "string",
            "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/Product>."
          },
          {
            "type": "object",
            "properties": {
              "@id": {
                "type": "string",
                "$comment": "A unique identifier."
              },
              "image": {
                "type": "string",
                "$comment": "Value is a URI for an image."
              },
              "price": {
                "type": "number",
                "multipleOf": 0.01,
                "minimum": 0.01
              },
              "productDescription": {
                "type": "string"
              },
              "productName": {
                "type": "string"
              },
              "@context": {
                "type": [
                  "object",
                  "string"
                ]
              },
              "addToShoppingCart": {
                "type": "string",
                "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/ShoppingCartItems>."
              }
            },
            "required": [
              "@id",
              "image",
              "price",
              "productDescription",
              "productName"
            ]
          }
        ]
      },
      "@context": {
        "type": [
          "object",
          "string"
        ]
      },
      "changeQuantity": {
        "type": "string",
        "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/ShoppingCartItem>."
      },
      "remove": {
        "type": "string",
        "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/ShoppingCartItem>."
      }
    },
    "required": [
      "@id",
      "price",
      "productDescription",
      "productName",
      "quantity",
      "product"
    ]
  },
  "minItems": 1
}

Link Relation Types

# addresses

A reference to all Addresses in a User Profile.

Used by
UserProfile
Target Type
Address[]
Schema ID
https://example.hypercontract.org/profile/addresses/schema/application/hal+json
Schema Type
application/schema+json
{
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "city": {
        "type": "string"
      },
      "country": {
        "type": "string"
      },
      "name": {
        "type": "string"
      },
      "street": {
        "type": "string"
      },
      "zipCode": {
        "type": "string"
      },
      "_links": {
        "type": "object",
        "properties": {
          "self": {
            "type": "object",
            "properties": {
              "href": {
                "type": "string",
                "$comment": "A unique identifier."
              }
            },
            "required": [
              "href"
            ]
          }
        },
        "required": [
          "self"
        ]
      },
      "_embedded": {
        "type": "object",
        "properties": {}
      }
    },
    "required": [
      "city",
      "country",
      "name",
      "street",
      "zipCode"
    ]
  },
  "minItems": 1
}
Schema ID
https://example.hypercontract.org/profile/addresses/schema/application/json
Schema Type
application/schema+json
{
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "_id": {},
      "city": {
        "type": "string"
      },
      "country": {
        "type": "string"
      },
      "name": {
        "type": "string"
      },
      "street": {
        "type": "string"
      },
      "zipCode": {
        "type": "string"
      }
    },
    "required": [
      "_id",
      "city",
      "country",
      "name",
      "street",
      "zipCode"
    ]
  },
  "minItems": 1
}
Schema ID
https://example.hypercontract.org/profile/addresses/schema/application/ld+json
Schema Type
application/schema+json
{
  "type": "array",
  "items": {
    "oneOf": [
      {
        "type": "string",
        "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/Address>."
      },
      {
        "type": "object",
        "properties": {
          "@id": {
            "type": "string",
            "$comment": "A unique identifier."
          },
          "city": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "street": {
            "type": "string"
          },
          "zipCode": {
            "type": "string"
          },
          "@context": {
            "type": [
              "object",
              "string"
            ]
          }
        },
        "required": [
          "@id",
          "city",
          "country",
          "name",
          "street",
          "zipCode"
        ]
      }
    ]
  },
  "minItems": 1
}

# image

A picture of the Product.

Used by
Product
Target Type
Schema ID
https://example.hypercontract.org/profile/image/schema/application/hal+json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "href": {
      "type": "string",
      "$comment": "Value is a URI for an image."
    }
  },
  "required": [
    "href"
  ]
}
Schema ID
https://example.hypercontract.org/profile/image/schema/application/json
Schema Type
application/schema+json
{
  "type": "string",
  "$comment": "Value is a URI for an image."
}
Schema ID
https://example.hypercontract.org/profile/image/schema/application/ld+json
Schema Type
application/schema+json
{
  "type": "string",
  "$comment": "Value is a URI for an image."
}

# items

The Shopping Cart Items currently in the Shopping Cart.

Used by
ShoppingCart
Target Type
ShoppingCartItem[]
Schema ID
https://example.hypercontract.org/profile/items/schema/application/hal+json
Schema Type
application/schema+json
{
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "price": {
        "type": "number",
        "multipleOf": 0.01,
        "minimum": 0.01
      },
      "productDescription": {
        "type": "string"
      },
      "productName": {
        "type": "string"
      },
      "quantity": {
        "type": "number",
        "multipleOf": 1,
        "minimum": 1
      },
      "_links": {
        "type": "object",
        "properties": {
          "self": {
            "type": "object",
            "properties": {
              "href": {
                "type": "string",
                "$comment": "A unique identifier."
              }
            },
            "required": [
              "href"
            ]
          },
          "https://example.hypercontract.org/profile/changeQuantity": {
            "type": "object",
            "properties": {
              "href": {
                "type": "string",
                "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/ShoppingCartItem>."
              }
            },
            "required": [
              "href"
            ]
          },
          "https://example.hypercontract.org/profile/remove": {
            "type": "object",
            "properties": {
              "href": {
                "type": "string",
                "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/ShoppingCartItem>."
              }
            },
            "required": [
              "href"
            ]
          },
          "https://example.hypercontract.org/profile/product": {
            "type": "object",
            "properties": {
              "href": {
                "type": "string",
                "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/Product>."
              }
            },
            "required": [
              "href"
            ]
          }
        },
        "required": [
          "self"
        ]
      },
      "_embedded": {
        "type": "object",
        "properties": {}
      }
    },
    "required": [
      "price",
      "productDescription",
      "productName",
      "quantity"
    ]
  }
}
Schema ID
https://example.hypercontract.org/profile/items/schema/application/json
Schema Type
application/schema+json
{
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "_id": {},
      "price": {
        "type": "number",
        "multipleOf": 0.01,
        "minimum": 0.01
      },
      "productDescription": {
        "type": "string"
      },
      "productName": {
        "type": "string"
      },
      "quantity": {
        "type": "number",
        "multipleOf": 1,
        "minimum": 1
      },
      "product": {
        "type": "string",
        "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/Product>."
      }
    },
    "required": [
      "_id",
      "price",
      "productDescription",
      "productName",
      "quantity",
      "product"
    ]
  }
}
Schema ID
https://example.hypercontract.org/profile/items/schema/application/ld+json
Schema Type
application/schema+json
{
  "type": "array",
  "items": {
    "oneOf": [
      {
        "type": "string",
        "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/ShoppingCartItem>."
      },
      {
        "type": "object",
        "properties": {
          "@id": {
            "type": "string",
            "$comment": "A unique identifier."
          },
          "price": {
            "type": "number",
            "multipleOf": 0.01,
            "minimum": 0.01
          },
          "productDescription": {
            "type": "string"
          },
          "productName": {
            "type": "string"
          },
          "quantity": {
            "type": "number",
            "multipleOf": 1,
            "minimum": 1
          },
          "product": {
            "oneOf": [
              {
                "type": "string",
                "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/Product>."
              },
              {
                "type": "object",
                "properties": {
                  "@id": {
                    "type": "string",
                    "$comment": "A unique identifier."
                  },
                  "image": {
                    "type": "string",
                    "$comment": "Value is a URI for an image."
                  },
                  "price": {
                    "type": "number",
                    "multipleOf": 0.01,
                    "minimum": 0.01
                  },
                  "productDescription": {
                    "type": "string"
                  },
                  "productName": {
                    "type": "string"
                  },
                  "@context": {
                    "type": [
                      "object",
                      "string"
                    ]
                  },
                  "addToShoppingCart": {
                    "type": "string",
                    "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/ShoppingCartItems>."
                  }
                },
                "required": [
                  "@id",
                  "image",
                  "price",
                  "productDescription",
                  "productName"
                ]
              }
            ]
          },
          "@context": {
            "type": [
              "object",
              "string"
            ]
          },
          "changeQuantity": {
            "type": "string",
            "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/ShoppingCartItem>."
          },
          "remove": {
            "type": "string",
            "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/ShoppingCartItem>."
          }
        },
        "required": [
          "@id",
          "price",
          "productDescription",
          "productName",
          "quantity",
          "product"
        ]
      }
    ]
  }
}

# orderHistory

A link to the Order History.

Used by
ApiRoot
Target Type
OrderHistory
Schema ID
https://example.hypercontract.org/profile/orderHistory/schema/application/hal+json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "href": {
      "type": "string",
      "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/OrderHistory>."
    }
  },
  "required": [
    "href"
  ]
}
Schema ID
https://example.hypercontract.org/profile/orderHistory/schema/application/ld+json
Schema Type
application/schema+json
{
  "type": "string",
  "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/OrderHistory>."
}

# orders

A reference to Orders in the Order History.

Used by
OrderHistory
Target Type
Order[]
Schema ID
https://example.hypercontract.org/profile/orders/schema/application/hal+json
Schema Type
application/schema+json
{
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "orderDate": {
        "type": "string",
        "pattern": "^\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+([+-][0-2]\\d:[0-5]\\d|Z)$"
      },
      "orderStatus": {
        "type": "string",
        "enum": [
          "Processing",
          "Delivered",
          "Cancelled"
        ]
      },
      "orderItems": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "price": {
              "type": "number",
              "multipleOf": 0.01,
              "minimum": 0.01
            },
            "productDescription": {
              "type": "string"
            },
            "productName": {
              "type": "string"
            },
            "quantity": {
              "type": "number",
              "multipleOf": 1,
              "minimum": 1
            }
          },
          "required": [
            "price",
            "productDescription",
            "productName",
            "quantity"
          ]
        },
        "minItems": 1
      },
      "payment": {
        "type": "object",
        "properties": {
          "accountOwner": {
            "type": "string"
          },
          "bic": {
            "type": "string"
          },
          "iban": {
            "type": "string"
          }
        },
        "required": [
          "accountOwner",
          "bic",
          "iban"
        ]
      },
      "billingAddress": {
        "type": "object",
        "properties": {
          "city": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "street": {
            "type": "string"
          },
          "zipCode": {
            "type": "string"
          }
        },
        "required": [
          "city",
          "country",
          "name",
          "street",
          "zipCode"
        ]
      },
      "shippingAddress": {
        "type": "object",
        "properties": {
          "city": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "street": {
            "type": "string"
          },
          "zipCode": {
            "type": "string"
          }
        },
        "required": [
          "city",
          "country",
          "name",
          "street",
          "zipCode"
        ]
      },
      "cancellationReason": {
        "type": "string"
      },
      "_links": {
        "type": "object",
        "properties": {
          "self": {
            "type": "object",
            "properties": {
              "href": {
                "type": "string",
                "$comment": "A unique identifier."
              }
            },
            "required": [
              "href"
            ]
          },
          "https://example.hypercontract.org/profile/cancel": {
            "type": "object",
            "properties": {
              "href": {
                "type": "string",
                "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/Order>."
              }
            },
            "required": [
              "href"
            ]
          }
        },
        "required": [
          "self"
        ]
      },
      "_embedded": {
        "type": "object",
        "properties": {}
      }
    },
    "required": [
      "orderDate",
      "orderStatus",
      "orderItems",
      "payment",
      "billingAddress",
      "shippingAddress"
    ]
  }
}
Schema ID
https://example.hypercontract.org/profile/orders/schema/application/json
Schema Type
application/schema+json
{
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "_id": {},
      "orderDate": {
        "type": "string",
        "pattern": "^\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+([+-][0-2]\\d:[0-5]\\d|Z)$"
      },
      "orderStatus": {
        "type": "string",
        "enum": [
          "Processing",
          "Delivered",
          "Cancelled"
        ]
      },
      "orderItems": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "price": {
              "type": "number",
              "multipleOf": 0.01,
              "minimum": 0.01
            },
            "productDescription": {
              "type": "string"
            },
            "productName": {
              "type": "string"
            },
            "quantity": {
              "type": "number",
              "multipleOf": 1,
              "minimum": 1
            }
          },
          "required": [
            "price",
            "productDescription",
            "productName",
            "quantity"
          ]
        },
        "minItems": 1
      },
      "payment": {
        "type": "object",
        "properties": {
          "accountOwner": {
            "type": "string"
          },
          "bic": {
            "type": "string"
          },
          "iban": {
            "type": "string"
          }
        },
        "required": [
          "accountOwner",
          "bic",
          "iban"
        ]
      },
      "billingAddress": {
        "type": "object",
        "properties": {
          "city": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "street": {
            "type": "string"
          },
          "zipCode": {
            "type": "string"
          }
        },
        "required": [
          "city",
          "country",
          "name",
          "street",
          "zipCode"
        ]
      },
      "shippingAddress": {
        "type": "object",
        "properties": {
          "city": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "street": {
            "type": "string"
          },
          "zipCode": {
            "type": "string"
          }
        },
        "required": [
          "city",
          "country",
          "name",
          "street",
          "zipCode"
        ]
      },
      "cancellationReason": {
        "type": "string"
      }
    },
    "required": [
      "_id",
      "orderDate",
      "orderStatus",
      "orderItems",
      "payment",
      "billingAddress",
      "shippingAddress"
    ]
  }
}
Schema ID
https://example.hypercontract.org/profile/orders/schema/application/ld+json
Schema Type
application/schema+json
{
  "type": "array",
  "items": {
    "oneOf": [
      {
        "type": "string",
        "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/Order>."
      },
      {
        "type": "object",
        "properties": {
          "@id": {
            "type": "string",
            "$comment": "A unique identifier."
          },
          "orderDate": {
            "type": "string",
            "pattern": "^\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+([+-][0-2]\\d:[0-5]\\d|Z)$"
          },
          "orderStatus": {
            "type": "string",
            "enum": [
              "Processing",
              "Delivered",
              "Cancelled"
            ]
          },
          "orderItems": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "price": {
                  "type": "number",
                  "multipleOf": 0.01,
                  "minimum": 0.01
                },
                "productDescription": {
                  "type": "string"
                },
                "productName": {
                  "type": "string"
                },
                "quantity": {
                  "type": "number",
                  "multipleOf": 1,
                  "minimum": 1
                }
              },
              "required": [
                "price",
                "productDescription",
                "productName",
                "quantity"
              ]
            },
            "minItems": 1
          },
          "payment": {
            "type": "object",
            "properties": {
              "accountOwner": {
                "type": "string"
              },
              "bic": {
                "type": "string"
              },
              "iban": {
                "type": "string"
              }
            },
            "required": [
              "accountOwner",
              "bic",
              "iban"
            ]
          },
          "billingAddress": {
            "type": "object",
            "properties": {
              "city": {
                "type": "string"
              },
              "country": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "street": {
                "type": "string"
              },
              "zipCode": {
                "type": "string"
              }
            },
            "required": [
              "city",
              "country",
              "name",
              "street",
              "zipCode"
            ]
          },
          "shippingAddress": {
            "type": "object",
            "properties": {
              "city": {
                "type": "string"
              },
              "country": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "street": {
                "type": "string"
              },
              "zipCode": {
                "type": "string"
              }
            },
            "required": [
              "city",
              "country",
              "name",
              "street",
              "zipCode"
            ]
          },
          "@context": {
            "type": [
              "object",
              "string"
            ]
          },
          "cancellationReason": {
            "type": "string"
          },
          "cancel": {
            "type": "string",
            "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/Order>."
          }
        },
        "required": [
          "@id",
          "orderDate",
          "orderStatus",
          "orderItems",
          "payment",
          "billingAddress",
          "shippingAddress"
        ]
      }
    ]
  }
}

# paymentOptions

A reference to all Payment Options in a User Profile.

Used by
UserProfile
Target Type
PaymentOption[]
Schema ID
https://example.hypercontract.org/profile/paymentOptions/schema/application/hal+json
Schema Type
application/schema+json
{
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "accountOwner": {
        "type": "string"
      },
      "bic": {
        "type": "string"
      },
      "iban": {
        "type": "string"
      },
      "_links": {
        "type": "object",
        "properties": {
          "self": {
            "type": "object",
            "properties": {
              "href": {
                "type": "string",
                "$comment": "A unique identifier."
              }
            },
            "required": [
              "href"
            ]
          }
        },
        "required": [
          "self"
        ]
      },
      "_embedded": {
        "type": "object",
        "properties": {}
      }
    },
    "required": [
      "accountOwner",
      "bic",
      "iban"
    ]
  },
  "minItems": 1
}
Schema ID
https://example.hypercontract.org/profile/paymentOptions/schema/application/json
Schema Type
application/schema+json
{
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "_id": {},
      "accountOwner": {
        "type": "string"
      },
      "bic": {
        "type": "string"
      },
      "iban": {
        "type": "string"
      }
    },
    "required": [
      "_id",
      "accountOwner",
      "bic",
      "iban"
    ]
  },
  "minItems": 1
}
Schema ID
https://example.hypercontract.org/profile/paymentOptions/schema/application/ld+json
Schema Type
application/schema+json
{
  "type": "array",
  "items": {
    "oneOf": [
      {
        "type": "string",
        "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/PaymentOption>."
      },
      {
        "type": "object",
        "properties": {
          "@id": {
            "type": "string",
            "$comment": "A unique identifier."
          },
          "accountOwner": {
            "type": "string"
          },
          "bic": {
            "type": "string"
          },
          "iban": {
            "type": "string"
          },
          "@context": {
            "type": [
              "object",
              "string"
            ]
          }
        },
        "required": [
          "@id",
          "accountOwner",
          "bic",
          "iban"
        ]
      }
    ]
  },
  "minItems": 1
}

# product

A reference to a Product from the catalog.

Used by
AdditionToShoppingCart
ShoppingCartItem
Target Type
Product
Schema ID
https://example.hypercontract.org/profile/product/schema/application/hal+json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "href": {
      "type": "string",
      "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/Product>."
    }
  },
  "required": [
    "href"
  ]
}
Schema ID
https://example.hypercontract.org/profile/product/schema/application/json
Schema Type
application/schema+json
{
  "type": "string",
  "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/Product>."
}
Schema ID
https://example.hypercontract.org/profile/product/schema/application/ld+json
Schema Type
application/schema+json
{
  "oneOf": [
    {
      "type": "string",
      "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/Product>."
    },
    {
      "type": "object",
      "properties": {
        "@id": {
          "type": "string",
          "$comment": "A unique identifier."
        },
        "image": {
          "type": "string",
          "$comment": "Value is a URI for an image."
        },
        "price": {
          "type": "number",
          "multipleOf": 0.01,
          "minimum": 0.01
        },
        "productDescription": {
          "type": "string"
        },
        "productName": {
          "type": "string"
        },
        "@context": {
          "type": [
            "object",
            "string"
          ]
        },
        "addToShoppingCart": {
          "type": "string",
          "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/ShoppingCartItems>."
        }
      },
      "required": [
        "@id",
        "image",
        "price",
        "productDescription",
        "productName"
      ]
    }
  ]
}

# products

A reference to Products from the catalog.

Used by
SearchResults
Target Type
Product[]
Schema ID
https://example.hypercontract.org/profile/products/schema/application/hal+json
Schema Type
application/schema+json
{
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "price": {
        "type": "number",
        "multipleOf": 0.01,
        "minimum": 0.01
      },
      "productDescription": {
        "type": "string"
      },
      "productName": {
        "type": "string"
      },
      "_links": {
        "type": "object",
        "properties": {
          "self": {
            "type": "object",
            "properties": {
              "href": {
                "type": "string",
                "$comment": "A unique identifier."
              }
            },
            "required": [
              "href"
            ]
          },
          "https://example.hypercontract.org/profile/image": {
            "type": "object",
            "properties": {
              "href": {
                "type": "string",
                "$comment": "Value is a URI for an image."
              }
            },
            "required": [
              "href"
            ]
          },
          "https://example.hypercontract.org/profile/addToShoppingCart": {
            "type": "object",
            "properties": {
              "href": {
                "type": "string",
                "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/ShoppingCartItems>."
              }
            },
            "required": [
              "href"
            ]
          }
        },
        "required": [
          "self"
        ]
      },
      "_embedded": {
        "type": "object",
        "properties": {}
      }
    },
    "required": [
      "price",
      "productDescription",
      "productName"
    ]
  }
}
Schema ID
https://example.hypercontract.org/profile/products/schema/application/json
Schema Type
application/schema+json
{
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "_id": {},
      "image": {
        "type": "string",
        "$comment": "Value is a URI for an image."
      },
      "price": {
        "type": "number",
        "multipleOf": 0.01,
        "minimum": 0.01
      },
      "productDescription": {
        "type": "string"
      },
      "productName": {
        "type": "string"
      }
    },
    "required": [
      "_id",
      "image",
      "price",
      "productDescription",
      "productName"
    ]
  }
}
Schema ID
https://example.hypercontract.org/profile/products/schema/application/ld+json
Schema Type
application/schema+json
{
  "type": "array",
  "items": {
    "oneOf": [
      {
        "type": "string",
        "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/Product>."
      },
      {
        "type": "object",
        "properties": {
          "@id": {
            "type": "string",
            "$comment": "A unique identifier."
          },
          "image": {
            "type": "string",
            "$comment": "Value is a URI for an image."
          },
          "price": {
            "type": "number",
            "multipleOf": 0.01,
            "minimum": 0.01
          },
          "productDescription": {
            "type": "string"
          },
          "productName": {
            "type": "string"
          },
          "@context": {
            "type": [
              "object",
              "string"
            ]
          },
          "addToShoppingCart": {
            "type": "string",
            "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/ShoppingCartItems>."
          }
        },
        "required": [
          "@id",
          "image",
          "price",
          "productDescription",
          "productName"
        ]
      }
    ]
  }
}

# shoppingCart

A link to the Shopping Cart.

Used by
ApiRoot
Target Type
ShoppingCart
Schema ID
https://example.hypercontract.org/profile/shoppingCart/schema/application/hal+json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "href": {
      "type": "string",
      "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/ShoppingCart>."
    }
  },
  "required": [
    "href"
  ]
}
Schema ID
https://example.hypercontract.org/profile/shoppingCart/schema/application/ld+json
Schema Type
application/schema+json
{
  "type": "string",
  "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/ShoppingCart>."
}

# userProfile

A link to the UserProfile.

Used by
ApiRoot
Target Type
UserProfile
Schema ID
https://example.hypercontract.org/profile/userProfile/schema/application/hal+json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "href": {
      "type": "string",
      "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/UserProfile>."
    }
  },
  "required": [
    "href"
  ]
}
Schema ID
https://example.hypercontract.org/profile/userProfile/schema/application/ld+json
Schema Type
application/schema+json
{
  "type": "string",
  "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/UserProfile>."
}

Operations

# addToShoppingCart

Adds a Product as a new Shopping Cart Item to the Shopping Cart or increases the quantity of an existing Shopping Cart Item when the Product has already been added to the Shopping Cart.

Method
POST
Used by
Product
Target Type
ShoppingCartItems
Expected Query
none
Expected Body
AdditionToShoppingCart
Returned Type
ShoppingCart
Schema ID
https://example.hypercontract.org/profile/addToShoppingCart/schema/application/hal+json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "href": {
      "type": "string",
      "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/ShoppingCartItems>."
    }
  },
  "required": [
    "href"
  ]
}
Schema ID
https://example.hypercontract.org/profile/addToShoppingCart/schema/application/ld+json
Schema Type
application/schema+json
{
  "type": "string",
  "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/ShoppingCartItems>."
}

# cancel

Cancels the processing of an order. The status will be set to "Cancelled".

Precondition An Order can only be cancelled if the order status is still in "Processing".

Method
PATCH
Used by
Order
Target Type
Order
Expected Query
none
Expected Body
OrderCancellation
Returned Type
Order
Schema ID
https://example.hypercontract.org/profile/cancel/schema/application/hal+json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "href": {
      "type": "string",
      "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/Order>."
    }
  },
  "required": [
    "href"
  ]
}
Schema ID
https://example.hypercontract.org/profile/cancel/schema/application/ld+json
Schema Type
application/schema+json
{
  "type": "string",
  "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/Order>."
}

# changeQuantity

Change the quantity of a Shopping Cart Item.

Method
PATCH
Used by
ShoppingCartItem
Target Type
ShoppingCartItem
Expected Query
none
Expected Body
QuantityChange
Returned Type
ShoppingCart
Schema ID
https://example.hypercontract.org/profile/changeQuantity/schema/application/hal+json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "href": {
      "type": "string",
      "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/ShoppingCartItem>."
    }
  },
  "required": [
    "href"
  ]
}
Schema ID
https://example.hypercontract.org/profile/changeQuantity/schema/application/ld+json
Schema Type
application/schema+json
{
  "type": "string",
  "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/ShoppingCartItem>."
}

# placeOrder

Places a new Order based on the provided information. The Shopping Cart will be emptied after the Order has been successfully created.

Precondition An Order can only be placed if there is at least one Shopping Cart Item in the Shopping Cart.

Method
POST
Used by
ShoppingCart
Target Type
OrderHistory
Expected Query
none
Expected Body
NewOrder
Returned Type
Order
Schema ID
https://example.hypercontract.org/profile/placeOrder/schema/application/hal+json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "href": {
      "type": "string",
      "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/OrderHistory>."
    }
  },
  "required": [
    "href"
  ]
}
Schema ID
https://example.hypercontract.org/profile/placeOrder/schema/application/ld+json
Schema Type
application/schema+json
{
  "type": "string",
  "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/OrderHistory>."
}

# remove

Removes a Shopping Cart Item from the Shopping Cart.

Method
DELETE
Used by
ShoppingCartItem
Target Type
ShoppingCartItem
Expected Query
none
Expected Body
none
Returned Type
ShoppingCart
Schema ID
https://example.hypercontract.org/profile/remove/schema/application/hal+json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "href": {
      "type": "string",
      "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/ShoppingCartItem>."
    }
  },
  "required": [
    "href"
  ]
}
Schema ID
https://example.hypercontract.org/profile/remove/schema/application/ld+json
Schema Type
application/schema+json
{
  "type": "string",
  "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/ShoppingCartItem>."
}

# searchCatalog

Searches the catalog for Products matching a Search Query. When no Search Query is provided, all Products will be returned.

Method
GET
Used by
ApiRoot
Target Type
SearchResults
Expected Query
SearchQuery
Expected Body
none
Returned Type
SearchResults
Schema ID
https://example.hypercontract.org/profile/searchCatalog/schema/application/hal+json
Schema Type
application/schema+json
{
  "type": "object",
  "properties": {
    "href": {
      "type": "string",
      "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/SearchResults>."
    }
  },
  "required": [
    "href"
  ]
}
Schema ID
https://example.hypercontract.org/profile/searchCatalog/schema/application/ld+json
Schema Type
application/schema+json
{
  "type": "string",
  "$comment": "Value is a URI for an instance of type <https://example.hypercontract.org/profile/SearchResults>."
}