> ## Documentation Index
> Fetch the complete documentation index at: https://docs.switchyard.run/llms.txt
> Use this file to discover all available pages before exploring further.

# Update product

> Updates a product. Only allowed for products that are not yet approved.



## OpenAPI

````yaml api-reference/v1/openapi.yaml patch /v1/partner/products/{id}
openapi: 3.1.0
info:
  title: Goods API
  version: 1.0.0
  description: >-
    API for Goods grocery operations - scanner app, admin dashboard, and
    customer features
  contact:
    name: Goods Team
    url: https://goods.app
servers:
  - url: http://localhost:3000
    description: Local development
  - url: https://dev.api.switchyard.run
    description: Development
  - url: https://api.switchyard.run
    description: Production
security: []
tags:
  - name: v1
    description: API v1 - unified domain-based endpoints
  - name: Scanner
    description: Scanner app endpoints for drivers and pickers
  - name: Sweeps
    description: Sweep management - retail store pickup operations
  - name: RFC Picks
    description: Ready-for-checkout picking operations
  - name: Inventory
    description: Inventory management and barcode lookup
  - name: Admin
    description: Admin dashboard endpoints
  - name: Orders
    description: Order management
  - name: Products
    description: Product catalog management
  - name: Notifications
    description: Push, email, SMS, and Slack notification management
paths:
  /v1/partner/products/{id}:
    patch:
      tags:
        - Partner Products
      summary: Update product
      description: Updates a product. Only allowed for products that are not yet approved.
      parameters:
        - schema:
            type: string
            format: uuid
          required: true
          name: id
          in: path
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  minLength: 1
                brand:
                  type: string
                description:
                  type: string
                barcode:
                  type: string
                size:
                  type: string
                retail_price:
                  type: number
                  minimum: 0
                  exclusiveMinimum: true
                wholesale_price:
                  type: number
                  nullable: true
                  minimum: 0
                  exclusiveMinimum: true
                temperature_zone:
                  type: string
                  enum:
                    - ambient
                    - refrigerated
                    - frozen
                image_url:
                  type: string
                  format: uri
      responses:
        '200':
          description: Product updated
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  product:
                    type: object
                    properties:
                      id:
                        type: string
                        format: uuid
                      name:
                        type: string
                      brand:
                        type: string
                        nullable: true
                      description:
                        type: string
                        nullable: true
                      barcode:
                        type: string
                        nullable: true
                      size:
                        type: string
                        nullable: true
                      image_url:
                        type: string
                        nullable: true
                      retail_price:
                        type: number
                      temperature_zone:
                        type: string
                        enum:
                          - ambient
                          - refrigerated
                          - frozen
                      scraped_product_id:
                        type: string
                        nullable: true
                        format: uuid
                      sellable_product_id:
                        type: string
                        nullable: true
                        format: uuid
                      approval_status:
                        type: string
                        enum:
                          - pending
                          - approved
                          - rejected
                      rejection_reason:
                        type: string
                        nullable: true
                      commission_rate:
                        type: number
                        nullable: true
                      wholesale_price:
                        type: number
                        nullable: true
                      created_at:
                        type: string
                        format: date-time
                      updated_at:
                        type: string
                        format: date-time
                    required:
                      - id
                      - name
                      - brand
                      - description
                      - barcode
                      - size
                      - image_url
                      - retail_price
                      - temperature_zone
                      - scraped_product_id
                      - sellable_product_id
                      - approval_status
                      - rejection_reason
                      - commission_rate
                      - wholesale_price
                      - created_at
                      - updated_at
                required:
                  - success
                  - product
        '400':
          description: Cannot update approved product
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                  - error
        '403':
          description: Not authorized to update this product
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                  - error
        '404':
          description: Product not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                  - error
        '500':
          description: Server error
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                  - error

````