Spree Commerce Wishlists / Wished Items API

The Wishlists / Wished Items API from Spree Commerce — 5 operation(s) for wishlists / wished items.

OpenAPI Specification

spree-wishlists-wished-items-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Admin Account / Address Wishlists / Wished Items API
  contact:
    name: Spree Commerce
    url: https://spreecommerce.org
    email: hello@spreecommerce.org
  description: "Spree Admin API v3 - Administrative API for managing products, orders, and store settings.\n\n## Authentication\n\nThe Admin API requires a secret API key passed in the `x-spree-api-key` header.\nSecret API keys can be generated in the Spree admin dashboard.\n\n## Response Format\n\nAll responses are JSON. List endpoints return paginated responses with `data` and `meta` keys.\nSingle resource endpoints return a flat JSON object.\n\n## Resource IDs\n\nEvery resource is identified by an opaque string ID (e.g. `prod_86Rf07xd4z`,\n`variant_k5nR8xLq`, `or_UkLWZg9DAJ`). Use these IDs everywhere — URL paths,\nrequest bodies, and Ransack filters all accept them directly.\n\n## Error Handling\n\nErrors return a consistent format:\n```json\n{\n  \"error\": {\n    \"code\": \"validation_error\",\n    \"message\": \"Validation failed\",\n    \"details\": { \"name\": [\"can't be blank\"] }\n  }\n}\n```\n"
  version: v3
servers:
- url: http://{defaultHost}
  variables:
    defaultHost:
      default: localhost:3000
tags:
- name: Wishlists / Wished Items
paths:
  /api/v2/storefront/wishlists/{token}/add_item:
    parameters:
    - schema:
        type: string
      name: token
      in: path
      required: true
    post:
      summary: Add Item to Wishlist
      description: 'The Add Item to Wishlist endpoint adds a variant to an existing wishlist by creating a new `wished_item`. A wished item in a wishlist is comparable to a line item in a cart.


        Each wished item references a single variant, holds the desired quantity and returns price information determined by the variant price in current currency, and desired quantity.'
      operationId: add-item-to-wishlist
      parameters:
      - $ref: '#/components/parameters/Token'
      requestBody:
        required: true
        content:
          application/vnd.api+json:
            schema:
              type: object
              properties:
                variant_id:
                  type: string
                  description: The variant ID that is to be added to the wishlist.
                quantity:
                  type: number
                  description: Set a quantity greater than 0, or omit the quantity param if your wishlist does not support quantities.
              required:
              - variant_id
            examples:
              Add a variant:
                value:
                  variant_id: '149'
                  quantity: 3
        description: 'Passing a quantity value is optional for those wishlist systems that do not support quantities. In this scenario, the returned quantity value will always be `1`, allowing the add-to-cart and pricing to reflect the single representation of the wished item accurately.


          If the wishlist system you are building allows for setting quantity, add the quantity attribute to the request body with an integer value greater than zero.'
      responses:
        '200':
          $ref: '#/components/responses/WishedItem'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '422':
          $ref: '#/components/responses/422UnprocessableEntity'
      security:
      - bearerAuth: []
      tags:
      - Wishlists / Wished Items
  /api/v2/storefront/wishlists/{token}/add_items:
    post:
      summary: Add Items to Wishlist
      description: 'The Add Items to Wishlist endpoint adds variants to an existing wishlist by creating a new `wished_item` objects. A wished item in a wishlist is comparable to a line item in a cart.


        Each wished item references a single variant, holds the desired quantity and returns price information determined by the variant price in current currency, and desired quantity.'
      operationId: add-items-to-wishlist
      parameters:
      - $ref: '#/components/parameters/Token'
      requestBody:
        required: true
        content:
          application/vnd.api+json:
            schema:
              type: object
              properties:
                wished_items:
                  type: array
                  items:
                    type: object
                    properties:
                      variant_id:
                        type: string
                        example: '1'
                        description: The variant ID that is to be added to the wishlist.
                      quantity:
                        type: number
                        example: 10
                        description: Set a quantity greater than 0, or omit the quantity param if your wishlist does not support quantities. If omitted, quantity will be set to 1.
                    required:
                    - variant_id
            examples:
              Add a variant:
                value:
                  wished_items:
                  - variant_id: '1'
                    quantity: 10
                  - variant_id: '2'
                    quantity: 5
        description: 'Passing a quantity value is optional for those wishlist systems that do not support quantities. In this scenario, the returned quantity value will always be `1`, allowing the add-to-cart and pricing to reflect the single representation of the wished item accurately.


          If the wishlist system you are building allows for setting quantity, add the quantity attribute to the request body with an integer value greater than zero.'
      responses:
        '200':
          $ref: '#/components/responses/Wishlist'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '422':
          $ref: '#/components/responses/422UnprocessableEntity'
      security:
      - bearerAuth: []
      tags:
      - Wishlists / Wished Items
  /api/v2/storefront/wishlists/{token}/set_item_quantity/{item_id}:
    patch:
      description: This endpoint sets the wished item quantity.
      summary: Set Wished Item Quantity
      operationId: update-wished-variant-quantity
      parameters:
      - $ref: '#/components/parameters/Token'
      - $ref: '#/components/parameters/ItemId'
      requestBody:
        required: true
        content:
          application/vnd.api+json:
            schema:
              type: object
              properties:
                quantity:
                  type: number
                  description: Set the quantity value to an integer greater than 0
              required:
              - quantity
            examples:
              Add a variant:
                value:
                  quantity: 7
        description: ''
      responses:
        '200':
          $ref: '#/components/responses/WishedItem'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '422':
          $ref: '#/components/responses/422UnprocessableEntity'
      security:
      - bearerAuth: []
      tags:
      - Wishlists / Wished Items
  /api/v2/storefront/wishlists/{token}/remove_item/{item_id}:
    parameters:
    - schema:
        type: string
      name: token
      in: path
      required: true
    - schema:
        type: string
      name: item_id
      in: path
      required: true
    delete:
      description: Removes a wished item from a wishlist.
      summary: Delete Item from Wishlist
      operationId: delete-wished-variant-from-wishlist
      parameters:
      - $ref: '#/components/parameters/Token'
      - $ref: '#/components/parameters/ItemId'
      responses:
        '200':
          $ref: '#/components/responses/WishedItem'
        '403':
          $ref: '#/components/responses/403Forbidden'
      security:
      - bearerAuth: []
      tags:
      - Wishlists / Wished Items
  /api/v2/storefront/wishlists/{token}/remove_items:
    delete:
      description: Removes wished items from a wishlist.
      summary: Delete Items from Wishlist
      operationId: delete-wished-variants-from-wishlist
      parameters:
      - $ref: '#/components/parameters/Token'
      requestBody:
        required: true
        content:
          application/vnd.api+json:
            schema:
              type: object
              properties:
                wished_items_ids:
                  type: array
                  items:
                    type: string
                    example: '1'
                    description: The Wished Item ID that is to be removed from wishlist.
            examples:
              Remove wished items:
                value:
                  wished_items_ids:
                  - '1'
                  - '2'
      responses:
        '200':
          $ref: '#/components/responses/Wishlist'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '422':
          $ref: '#/components/responses/422UnprocessableEntity'
      security:
      - bearerAuth: []
      tags:
      - Wishlists / Wished Items
components:
  schemas:
    Relation:
      type: object
      nullable: true
      properties:
        id:
          type: string
        type:
          type: string
      required:
      - id
      - type
      x-internal: false
      description: ''
    WishedItem:
      type: object
      x-internal: false
      properties:
        id:
          type: string
        type:
          type: string
          default: wished_item
        attributes:
          type: object
          properties:
            quantity:
              type: integer
            price:
              type: string
            total:
              type: string
            display_price:
              type: string
            display_total:
              type: string
        relationships:
          type: object
          properties:
            variant:
              type: object
              properties:
                data:
                  $ref: '#/components/schemas/Relation'
      required:
      - id
      - type
      - attributes
      - relationships
    Wishlist:
      description: ''
      type: object
      title: Wishlist
      x-internal: false
      properties:
        id:
          type: string
        type:
          type: string
          default: wishlist
        attributes:
          type: object
          properties:
            token:
              type: string
            name:
              type: string
            is_private:
              type: boolean
            is_default:
              type: boolean
            variant_included:
              type: boolean
              description: Returns `true` or `false` depending on the variant ID passed in through the `is_variant_included` query param.
        relationships:
          type: object
          properties:
            wished_items:
              type: object
              properties:
                data:
                  type: array
                  items:
                    allOf:
                    - $ref: '#/components/schemas/Relation'
      required:
      - id
      - type
      - attributes
      - relationships
    WishlistIncludes:
      x-internal: false
      title: Wishlist Includes
      allOf:
      - $ref: '#/components/schemas/WishedItem'
    Error:
      x-internal: false
      title: Error
      type: object
      properties:
        error:
          type: string
    Variant:
      title: Variant
      description: 'Variant records track the individual variants of a Product. Variants are of two types: master variants and normal variants.'
      x-examples: {}
      type: object
      x-internal: false
      properties:
        id:
          type: string
          example: '1'
        type:
          type: string
          default: variant
        attributes:
          type: object
          properties:
            sku:
              type: string
              example: SKU-1001
            price:
              type: string
              example: '15.99'
            currency:
              type: string
              example: USD
            display_price:
              type: string
              example: $15.99
            weight:
              type: string
              example: '10'
              nullable: true
            height:
              type: string
              example: '10'
              nullable: true
            width:
              type: string
              example: '10'
              nullable: true
            depth:
              type: string
              example: '10'
              nullable: true
            is_master:
              type: boolean
              description: Indicates if Variant is the master Variant
            options_text:
              type: string
              example: 'Size: small, Color: red'
            options:
              type: array
              items:
                type: object
                properties:
                  name:
                    type: string
                  value:
                    type: string
                  presentation:
                    type: string
            purchasable:
              type: boolean
              description: Indicates if Variant is in stock or backorderable
            in_stock:
              type: boolean
              description: Indicates if Variant is in stock
            backorderable:
              type: boolean
        relationships:
          type: object
          properties:
            product:
              type: object
              properties:
                data:
                  $ref: '#/components/schemas/Relation'
            images:
              type: object
              properties:
                data:
                  type: array
                  items:
                    $ref: '#/components/schemas/Relation'
            option_values:
              type: object
              properties:
                data:
                  type: array
                  items:
                    $ref: '#/components/schemas/Relation'
      required:
      - id
      - type
      - attributes
      - relationships
    WishedItemIncludes:
      x-internal: false
      title: Wished Item Includes
      allOf:
      - $ref: '#/components/schemas/Variant'
  responses:
    Wishlist:
      description: 200 Success - Returns the `wishlist` object.
      content:
        application/vnd.api+json:
          schema:
            type: object
            properties:
              data:
                $ref: '#/components/schemas/Wishlist'
              included:
                type: array
                items:
                  $ref: '#/components/schemas/WishlistIncludes'
            required:
            - data
          examples:
            Wishlist:
              value:
                data:
                  id: '28'
                  type: wishlist
                  attributes:
                    token: 1inBHcJnxBrVEMAZb9esRqZP
                    name: My Wishlist
                    is_private: false
                    is_default: true
                    variant_included: false
                  relationships:
                    wished_items:
                      data:
                      - id: '14'
                        type: wished_item
            Wishlist including Wished Items:
              value:
                data:
                  id: '28'
                  type: wishlist
                  attributes:
                    token: 1inBHcJnxBrVEMAZb9esRqZP
                    name: My Wishlist
                    is_private: false
                    is_default: true
                    variant_included: false
                  relationships:
                    wished_items:
                      data:
                      - id: '14'
                        type: wished_item
                included:
                - id: '14'
                  type: wished_item
                  attributes:
                    quantity: 7
                    price: '26.99'
                    total: '188.93'
                    display_price: $26.99
                    display_total: $188.93
                  relationships:
                    variant:
                      data:
                        id: '149'
                        type: variant
                    wishlist:
                      data:
                        id: '28'
                        type: wishlist
    403Forbidden:
      description: 403 Forbidden - You are not authorized to access this page.
      content:
        application/vnd.api+json:
          schema:
            properties:
              error:
                type: string
                example: You are not authorized to access this page.
                default: You are not authorized to access this page.
          examples:
            403 Example:
              value:
                error: You are not authorized to access this page.
    422UnprocessableEntity:
      description: 422 Unprocessable Entity
      content:
        application/vnd.api+json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            422 Example:
              value:
                error: Example is invalid
                errors:
                  example:
                  - Example is invalid
    WishedItem:
      description: 200 Success - Returns an array of `wished_item` objects.
      content:
        application/vnd.api+json:
          schema:
            type: object
            properties:
              data:
                $ref: '#/components/schemas/WishedItem'
              included:
                type: array
                items:
                  $ref: '#/components/schemas/WishedItemIncludes'
            required:
            - data
          examples:
            Wished Item:
              value:
                data:
                  id: '1'
                  type: wished_item
                  attributes:
                    quantity: 3
                    price: '55.99'
                    total: '167.97'
                    display_price: $55.99
                    display_total: $167.97
                  relationships:
                    variant:
                      data:
                        id: '149'
                        type: variant
            Wished Item including Variant:
              value:
                data:
                  id: '2'
                  type: wished_item
                  attributes:
                    quantity: 3
                    price: '52.99'
                    total: '158.97'
                    display_price: $52.99
                    display_total: $158.97
                  relationships:
                    variant:
                      data:
                        id: '150'
                        type: variant
                included:
                - id: '150'
                  type: variant
                  attributes:
                    sku: JacketsandCoats_wool-blendcoat_52.99_beige_xs
                    weight: '0.0'
                    height: null
                    width: null
                    depth: null
                    is_master: false
                    options_text: 'Color: beige, Size: XS'
                    options:
                    - name: Color
                      value: beige
                      presentation: Beige
                    - name: Size
                      value: XS
                      presentation: XS
                    purchasable: true
                    in_stock: true
                    backorderable: false
                    currency: USD
                    price: '52.99'
                    display_price: $52.99
                    compare_at_price: null
                    display_compare_at_price: null
                  relationships:
                    product:
                      data:
                        id: '34'
                        type: product
                    images:
                      data: []
                    option_values:
                      data:
                      - id: '10'
                        type: option_value
                      - id: '23'
                        type: option_value
  parameters:
    ItemId:
      name: item_id
      in: path
      required: true
      description: The wished item id
      schema:
        type: string
      example: '3'
    Token:
      name: token
      in: path
      required: true
      description: The token is a unique string used to identify the target resource.
      schema:
        type: string
      example: vmJtMiMozBdFtn1VkdJ8dYen
  securitySchemes:
    api_key:
      type: apiKey
      name: x-spree-api-key
      in: header
      description: Secret API key for admin access
    bearer_auth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: JWT token for admin user authentication
x-tagGroups:
- name: Authentication
  tags:
  - Authentication
- name: Products & Catalog
  tags:
  - Products
  - Variants
  - Option Types
  - Custom Fields
  - Channels
- name: Pricing
  tags:
  - Pricing
  - Markets
- name: Orders & Fulfillment
  tags:
  - Orders
  - Payments
  - Fulfillments
  - Refunds
- name: Customers
  tags:
  - Customers
  - Customer Groups
- name: Promotions & Gift Cards
  tags:
  - Promotions
  - Gift Cards
- name: Data
  tags:
  - Exports
- name: Configuration
  tags:
  - Settings
  - Stock Locations
  - Payment Methods
  - Staff
  - API Keys
  - Allowed Origins
  - Webhooks