Ordoro Purchase Order API

The Purchase Order API from Ordoro — 12 operation(s) for purchase order.

OpenAPI Specification

ordoro-purchase-order-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Ordoro API Documentation Address Purchase Order API
  description: "# Introduction\n\nThe Ordoro API can be used to access data or integrate to add functionality to Ordoro. The Ordoro API uses the application/json Content-Type. The Ordoro API documentation is in beta. [See our forum](https://forums.ordoro.com) for questions or comments to help us improve the docs or request features.\n#### Note: Any routes with a /v3 designation will not allow for trailing slashes while all other routes and endpoints will require a trailing slash.\n\n# Authentication\n\nThe Ordoro API uses [Basic HTTP Authentication](http://en.wikipedia.org/wiki/Basic_access_authentication). Please create API keys via Settings->Account Settings->API Keys in app and use those for basic auth in your API requests.\n\n# Additional Resources\n\nFor a look at some code examples on how to use the API check out our github repo https://github.com/ordoro/api-examples.\n\n# API Responses\n\nMost of our endpoints return either a list of objects or a single object instance. They share similar response shapes.\n\n## List endpoints\n\nList endpoints respond with the following parameters:\n\n| Name           | Type                     | Description |\n|----------------|--------------------------|-------------|\n| `count`        | int                      | The total number of objects returned by a query ( **not** necessarily the number of objects included in a response). |\n| `limit`        | int                      | The maximum number of objects returned per request. Defaults to 10. Maximum is 100. You can set this as a URL parameter. |\n| `offset`       | int                      | The number of objects being offset in the response. May be altered as a URL Parameter. |\n| `<model name>` | array | An array of objects. The name of the model should be singular. For example, the /v3/order endpoint will have an `order` parameter, as opposed to `orders`.|\n\nHere is an example response for the `/v3/order` list endpoint.\n\n```\n{\n    \"count\": 2,\n    \"limit\": 10,\n    \"offset\" 0,\n    \"order\": [\n        {\n            // an order object\n        },\n        {\n            // another order object\n        }\n    ]\n}\n```\n\n## Instance endpoints\n\nInstance endpoints return a single instance of a serialized model. `/v3/order/{order_number}` is an example of an instance endpoint.\n\n# Error Handling\n\nError responses contain the following parameters:\n\n| Name            | Type             | Description                                                          |\n|-----------------|------------------|----------------------------------------------------------------------|\n| `error_message` | string           | Some human-readable error message.                                   |\n| `param`         | string or `null` | The name of the corresponding parameter, or null for general errors. |\n\n# Rate Limiting\n\nAPI requests will be limited to 500 requests per minute. Any requests over this threshold will respond with a 429 status code."
  contact: {}
  version: '1.0'
servers:
- url: https://api.ordoro.com/
  variables: {}
tags:
- name: Purchase Order
  description: ''
paths:
  /product/{sku}/buy/{supplier_id}/:
    post:
      tags:
      - Purchase Order
      summary: Create a Purchase Order by SKU and Supplier ID
      description: Order More of a product. This will create or update an existing Purchase Order
      operationId: ProductBuyBySkuAndSupplierId_POST
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/post_buy_more'
      parameters:
      - $ref: '#/components/parameters/skuPath'
      - $ref: '#/components/parameters/supplierPath'
      responses:
        '200':
          description: ''
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/purchase_order'
        '201':
          description: ''
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/purchase_order'
      deprecated: false
  /purchase_order/:
    get:
      tags:
      - Purchase Order
      summary: List Purchase Orders
      description: ''
      operationId: PurchaseOrder_GET
      parameters:
      - $ref: '#/components/parameters/offsetParam'
      - $ref: '#/components/parameters/limitParam'
      - $ref: '#/components/parameters/searchParam'
      - name: sort
        in: query
        description: ''
        style: form
        explode: true
        schema:
          $ref: '#/components/schemas/PurchaseOrderSort'
      - name: status
        in: query
        description: ''
        style: form
        explode: true
        schema:
          $ref: '#/components/schemas/PurchaseOrderStatus'
      - name: sku
        in: query
        description: ''
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: start_date
        in: query
        description: ''
        style: form
        explode: true
        schema:
          type: string
      - name: end_date
        in: query
        description: ''
        style: form
        explode: true
        schema:
          type: string
      - name: tag
        in: query
        description: 'Filter by tag name. Can be repeated for multiple tags.


          Note: Cannot be included if `untagged` is also passed.

          '
        style: form
        schema:
          type: array
          items:
            type: string
      - name: tag_filter_by
        in: query
        description: 'Tag filtering logic:

          * `or` [default] return purchase orders that contain any of the supplied tags

          * `and` returns purchase orders containing ALL of the supplied tags

          * `only` returns purchase orders containing ONLY the supplied tags

          '
        style: form
        explode: true
        schema:
          type: string
      - name: exclude_tags
        description: 'Note: Cannot be included if `untagged` is also passed.

          '
        type: array
        schema:
          type: array
          items:
            type: string
        in: query
        required: false
      - name: untagged
        in: query
        description: 'Filter untagged purchase orders


          Note: Cannot be included if `tags` or `exclude_tags` are also passed.

          '
        style: form
        explode: true
        schema:
          type: boolean
      - name: updated_after
        in: query
        description: ''
        style: form
        explode: true
        schema:
          type: string
      - name: updated_before
        in: query
        description: ''
        style: form
        explode: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/purchase_order_list'
      deprecated: false
    post:
      tags:
      - Purchase Order
      summary: Create a Purchase Order
      description: ''
      operationId: PurchaseOrder_POST
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/post_purchase_order'
      responses:
        '201':
          description: ''
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/purchase_order'
      deprecated: false
  /purchase_order/counts/:
    get:
      tags:
      - Purchase Order
      summary: Get Purchase Order Counts
      description: ''
      operationId: PurchaseOrderCounts_GET
      parameters: []
      responses:
        '200':
          description: ''
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/purchase_order_counts'
      deprecated: false
  /purchase_order/{po_id}/:
    delete:
      tags:
      - Purchase Order
      summary: Delete a Purchase Order by ID
      description: Cancel a purchase order.
      operationId: PurchaseOrderByPoId_DELETE
      parameters:
      - $ref: '#/components/parameters/poidPath'
      responses:
        '200':
          description: ''
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/purchase_order'
      deprecated: false
    get:
      tags:
      - Purchase Order
      summary: Get a Purchase Order by ID
      description: ''
      operationId: PurchaseOrderByPoId_GET
      parameters:
      - $ref: '#/components/parameters/poidPath'
      - $ref: '#/components/parameters/offsetParam'
      - $ref: '#/components/parameters/limitParam'
      - $ref: '#/components/parameters/searchParam'
      - name: sort
        in: query
        description: ''
        style: form
        explode: true
        schema:
          $ref: '#/components/schemas/PurchaseOrderSort'
      - name: status
        in: query
        description: ''
        style: form
        explode: true
        schema:
          $ref: '#/components/schemas/PurchaseOrderStatus'
      - name: sku
        in: query
        description: ''
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: start_date
        in: query
        description: ''
        style: form
        explode: true
        schema:
          type: string
      - name: end_date
        in: query
        description: ''
        style: form
        explode: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/purchase_order'
      deprecated: false
    put:
      tags:
      - Purchase Order
      summary: Update a Purchase Order by ID
      description: ''
      operationId: PurchaseOrderByPoId_PUT
      parameters:
      - $ref: '#/components/parameters/poidPath'
      responses:
        '200':
          description: ''
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/purchase_order'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/put_purchase_order'
      deprecated: false
  /purchase_order/{po_id}/comment/:
    post:
      tags:
      - Purchase Order
      summary: Create a Purchase Order Comment by PO ID
      description: ''
      operationId: PurchaseOrderCommentByPoId_POST
      parameters:
      - $ref: '#/components/parameters/poidPath'
      responses:
        '200':
          description: ''
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/comment'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/post_comment'
      deprecated: false
    get:
      summary: Retrieve Comments
      operationId: PurchaseOrderCommentByPoId_GET
      description: ''
      tags:
      - Purchase Order
      parameters:
      - $ref: '#/components/parameters/poidPath'
      responses:
        '200':
          description: OK
          content:
            application/json:
              example:
                limit: 10
                offset: 0
                count: 1
                comment:
                - user: user@ordoro.com
                  date: '2026-03-05T21:10:26.911724+00:00'
                  text: This is a very important comment
              schema:
                $ref: '#/components/schemas/comment'
  /purchase_order/{po_id}/create_goods_receipt/:
    post:
      tags:
      - Purchase Order
      summary: Create a Purchase Order Goods Receipt by PO ID
      description: ''
      operationId: PurchaseOrderCreateGoodsReceiptByPoId_POST
      parameters:
      - $ref: '#/components/parameters/poidPath'
      responses:
        '201':
          description: ''
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/purchase_order'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/post_purchase_order_goods_receipt'
      deprecated: false
  /purchase_order/{po_id}/line/:
    post:
      tags:
      - Purchase Order
      summary: Create a Purchase Order Line by PO ID
      description: ''
      operationId: PurchaseOrderLineByPoId_POST
      parameters:
      - $ref: '#/components/parameters/poidPath'
      responses:
        '200':
          description: ''
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/purchase_order'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/post_purchase_order_item'
      deprecated: false
  /purchase_order/{po_id}/line/{po_item_id}/:
    delete:
      tags:
      - Purchase Order
      summary: Delete a Purchase Order Line by PO ID and PO Line ID
      description: ''
      operationId: PurchaseOrderLineByPoIdAndPoItemId_DELETE
      parameters:
      - $ref: '#/components/parameters/poidPath'
      - name: po_item_id
        in: path
        description: ''
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: ''
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/purchase_order'
      deprecated: false
    put:
      tags:
      - Purchase Order
      summary: Update a Purchase Order Line by PO ID and PO Line ID
      description: ''
      operationId: PurchaseOrderLineByPoIdAndPoItemId_PUT
      parameters:
      - $ref: '#/components/parameters/poidPath'
      - name: po_item_id
        in: path
        description: ''
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: ''
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/purchase_order'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/put_purchase_order_item'
      deprecated: false
  /purchase_order/{po_id}/send/:
    get:
      tags:
      - Purchase Order
      summary: Preview a Purchase Order
      description: ''
      operationId: PurchaseOrderSendByPoId_GET
      parameters:
      - $ref: '#/components/parameters/poidPath'
      responses:
        '200':
          description: ''
          headers: {}
      deprecated: false
    post:
      tags:
      - Purchase Order
      summary: Send a Purchase Order to the Supplier
      description: ''
      operationId: PurchaseOrderSendByPoId_POST
      parameters:
      - $ref: '#/components/parameters/poidPath'
      responses:
        '200':
          description: ''
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/purchase_order'
      deprecated: false
  /purchase_order/tag/:
    post:
      tags:
      - Purchase Order
      summary: Create a Purchase Order Tag
      description: ''
      operationId: PurchaseOrderTags_POST
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/post_v3_tag'
      responses:
        '201':
          description: ''
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v3_tag'
    get:
      tags:
      - Purchase Order
      summary: Get Purchase Order Tags
      description: ''
      operationId: PurchaseOrderTags_GET
      parameters: []
      responses:
        '200':
          description: ''
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v3_tag_list'
      deprecated: false
  /purchase_order/tag/{name}/:
    get:
      tags:
      - Purchase Order
      summary: Get Purchase Order Tag by Name
      description: ''
      operationId: PurchaseOrderTag_GET
      parameters: []
      responses:
        '200':
          description: ''
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v3_tag'
      deprecated: false
    put:
      tags:
      - Purchase Order
      summary: Update a Purchase Order Tag by Name
      description: ''
      operationId: PurchaseOrderTags_PUT
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/put_v3_tag'
      responses:
        '200':
          description: ''
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v3_tag'
    delete:
      tags:
      - Purchase Order
      summary: Delete a Purchase Order Tag by Name
      description: ''
      operationId: PurchaseOrderTags_DELETE
      parameters: []
      responses:
        '200':
          description: response OK
  /purchase_order/{po_id}/tag/{tag_name}/:
    post:
      tags:
      - Purchase Order
      summary: Apply a Purchase Order Tag to Purchase Order
      description: ''
      operationId: PurchaseOrderTagPO_POST
      parameters: []
      responses:
        '200':
          description: ''
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/purchase_order'
    delete:
      tags:
      - Purchase Order
      summary: Remove a Purchase Order Tag from a Purchase Order
      description: ''
      operationId: PurchaseOrderTagPO_DELETE
      parameters: []
      responses:
        '200':
          description: ''
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/purchase_order'
components:
  schemas:
    put_purchase_order_item:
      title: Update a Purchase Order Item
      type: object
      additionalProperties: false
      properties:
        quantity:
          type: integer
        unit_price:
          type: number
        discount_amount:
          type: number
    supplier_shipping_method_map:
      title: Supplier shipping method map
      type: object
      additionalProperties: false
      properties:
        active:
          description: Toggle to enable use of this shipping method map
          type: boolean
        created:
          description: The date this was created
          type: string
        id:
          description: internal reference identifier for the supplier shipping method map
          type: integer
        requested_shipping_method:
          default: ''
          description: User defined requested shipping method on an Order to be mapped to a determinate shipping method
          anyOf:
          - type: string
          - type: 'null'
        mapped_shipping_method:
          description: 'FBA defined shipping methods will only be one of the following: [''Expedited'', ''Priority'', ''Standard'']. All others can be freeform to suit the supplier'
          type: string
        mapped_shipping_account:
          anyOf:
          - type: string
          - type: 'null'
        mapped_shipping_carrier:
          anyOf:
          - type: string
          - type: 'null'
        supplier_id:
          description: Integer indicating the supplier for which this mapping is tied.
          type: integer
        updated:
          description: The latest updated date
          type: string
      required:
      - active
      - created
      - id
      - requested_shipping_method
      - mapped_shipping_method
      - mapped_shipping_account
      - mapped_shipping_carrier
      - supplier_id
      - updated
    v3_tag:
      title: V3 Tag Schema
      type: object
      properties:
        id:
          type: integer
        name:
          type: string
        color:
          type: string
      required:
      - id
      - name
      - color
    goods_receipt:
      title: Goods Receipt Schema
      type: object
      additionalProperties: false
      properties:
        status:
          type: string
        po_id:
          type: string
        po_status:
          type: string
        goods_receipt_id:
          type: string
        created:
          type: string
          format: date-time
        updated:
          type: string
          format: date-time
        received:
          type: string
          format: date-time
        _link:
          type: string
        items:
          type: array
          items:
            type: object
            properties:
              id:
                type: integer
              po_item_id:
                type: string
              quantity:
                type: integer
              _link:
                type: string
              product:
                $ref: '#/components/schemas/product_base'
        comments:
          type: array
          items:
            $ref: '#/components/schemas/comment'
    purchase_order_list:
      title: Purchase Order List Response schema
      type: object
      properties:
        limit:
          type: integer
          example: 1
        offset:
          type: integer
          example: 0
        count:
          type: integer
          example: 46
        purchase_order:
          type: array
          items:
            $ref: '#/components/schemas/purchase_order'
    post_purchase_order:
      title: Buy More Products Request Schema
      type: object
      additionalProperties: false
      properties:
        supplier_id:
          type: integer
        warehouse_id:
          type: integer
        po_id:
          type: string
        shipping_method:
          type: string
        payment_method:
          type: string
        instructions:
          type: string
        estimated_delivery_date:
          type: string
        shipping_amount:
          type: number
        tax_amount:
          type: number
        discount_amount:
          type: number
        items:
          type: array
          items:
            type: object
            $ref: '#/components/schemas/purchase_order_item'
      required:
      - supplier_id
    address:
      title: Address Schema
      type: object
      additionalProperties: false
      properties:
        id:
          type: integer
        name:
          example: Jimmy McGill
          anyOf:
          - type: string
          - type: 'null'
        company:
          example: Hamlin, Hamlin & McGill
          anyOf:
          - type: string
          - type: 'null'
        street1:
          example: 100 Constitution Ave
          anyOf:
          - type: string
          - type: 'null'
        street2:
          anyOf:
          - type: string
          - type: 'null'
        city:
          example: Albuquerque
          anyOf:
          - type: string
          - type: 'null'
        state:
          example: NM
          anyOf:
          - type: string
          - type: 'null'
        zip:
          example: '87109'
          anyOf:
          - type: string
          - type: 'null'
        country:
          example: US
          anyOf:
          - type: string
          - type: 'null'
        email:
          example: slippin-jimmy@saul-good.man
          anyOf:
          - type: string
          - type: 'null'
        phone:
          example: 555-867-5309
          anyOf:
          - type: string
          - type: 'null'
        fax:
          anyOf:
          - type: string
          - type: 'null'
        cart_address_id:
          anyOf:
          - type: string
          - type: 'null'
        revision_locked_fields:
          type: array
        validation:
          title: Validation status of an Address
          properties:
            status:
              type: string
              enum:
              - unvalidated
              - validated
              - warning
              - error
            suggested:
              type: array
              items:
                title: Suggested Address
                type: object
                additionalProperties: false
                properties:
                  is_commercial:
                    default: false
                    anyOf:
                    - type: boolean
                    - type: 'null'
                  street1:
                    type: string
                  street2:
                    anyOf:
                    - type: string
                    - type: 'null'
                  city:
                    type: string
                  state:
                    type: string
                  zip:
                    type: string
                  country_code:
                    anyOf:
                    - type: string
                    - type: 'null'
                required:
                - city
                - state
                - zip
                - street1
            additional_text:
              anyOf:
              - type: string
              - type: 'null'
          required:
          - status
          - additional_text
          - suggested
          additionalProperties: false
          anyOf:
          - type: object
          - type: 'null'
      required:
      - name
      - company
      - street1
      - street2
      - city
      - state
      - zip
      - country
      - email
      - phone
    post_purchase_order_item:
      title: Create a Purchase Order Item
      type: object
      additionalProperties: false
      properties:
        sku:
          type: string
        quantity:
          type: integer
        unit_price:
          type: number
        discount_amount:
          type: number
      required:
      - sku
    v3_tag_list:
      title: Tag List Schema
      type: object
      properties:
        count:
          type: integer
        tag:
          type: array
          items:
            $ref: '#/components/schemas/v3_tag'
        limit:
          type: integer
          default: 10
        offset:
          type: integer
          default: 0
      required:
      - count
      - tag
      - limit
      - offset
    post_purchase_order_goods_receipt:
      title: Create Purchase Order Goods Receipt
      additionalProperties: false
      type: object
      properties:
        goods_receipt_id:
          type: string
    PurchaseOrderStatus:
      title: purchase_order_status
      enum:
      - unsent
      - sent
      - partial
      - received
      - cancelled
      - all
      type: string
    warehouse:
      title: Warehouse Schema
      additionalProperties: false
      type: object
      properties:
        _link:
          type: string
        id:
          type: integer
        address:
          $ref: '#/components/schemas/address'
        cart:
          anyOf:
          - type: string
          - type: 'null'
        is_configured_for_shipping:
          type: boolean
        is_default_location:
          type: boolean
      required:
      - id
      - address
      - cart
      - is_configured_for_shipping
      - is_default_location
    purchase_order_item:
      title: Purchase Order Item Schema
      type: object
      additionalProperties: false
      properties:
        sku:
          type: string
        quantity:
          type: integer
        unit_price:
          type: number
        discount_amount:
          type: number
      required:
      - sku
      - quantity
    post_v3_tag:
      title: Create a Tag
      type: object
      additionalProperties: false
      properties:
        name:
          type: string
        color:
          type: string
      required:
      - name
      - color
    post_buy_more:
      title: Buy More Products Request Schema
      type: object
      additionalProperties: false
      properties:
        warehouse:
          type: integer
        quantity:
          type: integer
        unit_price:
          type: number
        discount_amount:
          type: number
        po_id:
          type: string
      required:
      - warehouse
      - quantity
    put_v3_tag:
      title: Update a Tag
      type: object
      additionalProperties: false
      properties:
        name:
          type: string
        color:
          type: string
    purchase_order_counts:
      title: Purchase Order Counts Response Schema
      additionalProperties: false
      type: object
      properties:
        all:
          type: integer
        unsent:
          type: integer
        sent:
          type: integer
        partial:
          type: integer
        received:
          type: integer
        cancelled:
          type: integer
      required:
      - all
      - unsent
      - sent
      - partial
      - received
      - cancelled
    comment:
      title: Comment Schema
      type: object
      additionalProperties: false
      properties:
        user:
          type: string
        date:
          type: string
          format: date-time
        text:
          type: string
    product_base:
      title: Product Schema
      type: object
      additionalProperties: false
      properties:
        type:
          type: string
          example: Tangible
        cost:
          type: number
          example: 4.95
        id:
          type: integer
          example: 19551105
        company_id:
          type: integer
          example: 1985
        name:
          type: string
          example: Flux Capacitor
        sku:
          type: string
          example: outa-time
        taxable:
          type: string
        weight:
          type: number
          example: 1.21
        length:
          type: integer
          example: 12
        width:
          type: integer
          example: 4
        height:
          type: integer
          example: 8
        price:
          type: number
          example: 19.55
        customer_text:
          anyOf:
          - type: string
          - type: 'null'
        internal_notes:
          example: Be sure to include the complimentary almanac
          anyOf:
          - type: string
          - type: 'null'
        total_on_hand:
          type: number
        category:
          type: string
          example: misc-timetravel
        is_kit_parent:
          type: boolean
          example: false
        archive_date:
          format: date-time
          anyOf:
          - type: string
          - type: 'null'
        hs_code:
          anyOf:
          - type: string
          - type: 'null'
        country_of_origin:
          example: US
          anyOf:
          - type: string
          - type: 'null'
        customs_description:
          anyOf:
          - type: string
          - type: 'null'
        created:
          type: string
          format: date-time
          example: '2015-10-26T15:44:17.993588-06:00'
        updated:
          type: string
          format: date-time
          example: '2020-01-01T17:54:05.158248-06:00'
        upc:
          example: '847509005811'
          anyOf:
          - type: string
          - type: 'null'
        asin:
          example: B07WXJHZ1L
          anyOf:
          - type: string
          - type: 'null'
        image_url:
          anyOf:
          - type: string
          - type: 'null'
        default_image_id:
          anyOf:
          - type: string
          - type: 'null'
        _link:
          anyOf:
          - type: string
          - type: 'null'
        tags:
          type: array
          items:
            $ref: '#/components/schemas/v3_tag'
        total_committed:
          type: number
        total_available:
          type: number
        total_allocated:
          type: number
        total_unallocated:
          type: number
        po_total_committed:
          type: number
        fulfillment_type:
          enum:
          - in_house
          - dropshippable

# --- truncated at 32 KB (38 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/ordoro/refs/heads/main/openapi/ordoro-purchase-order-api-openapi.yml