put:
  tags:
    - Products
  summary: Update a product
  description: Updates an existing product on Digistore24
  operationId: updateProduct
  security:
    - ApiKeyAuth: []
  parameters:
    - name: product_id
      in: query
      required: true
      description: ID of the product to update
      schema:
        type: integer
  requestBody:
    required: true
    content:
      application/json:
        schema:
          type: object
          properties:
            name_intern:
              type: string
              maxLength: 63
              description: Internal product name
            name_de:
              type: string
              maxLength: 63
              description: German product name
            name_en:
              type: string
              maxLength: 63
              description: English product name
            name_es:
              type: string
              maxLength: 63
              description: Spanish product name
            description_de:
              type: string
              description: German product description (filtered HTML)
            description_en:
              type: string
              description: English product description (filtered HTML)
            description_es:
              type: string
              description: Spanish product description (filtered HTML)
            description_thankyou_page_de:
              type: string
              description: German thank you page description (filtered HTML)
            description_thankyou_page_en:
              type: string
              description: English thank you page description (filtered HTML)
            description_thankyou_page_es:
              type: string
              description: Spanish thank you page description (filtered HTML)
            optin_text_de:
              type: string
              description: German opt-in checkbox text
            optin_text_en:
              type: string
              description: English opt-in checkbox text
            optin_text_es:
              type: string
              description: Spanish opt-in checkbox text
            currency:
              type: string
              description: Currency code or comma-separated list (e.g., EUR, USD,EUR)
            salespage_url:
              type: string
              maxLength: 255
              description: Sales page URL
            upsell_salespage_url:
              type: string
              maxLength: 255
              description: Upsell sales page URL
            thankyou_url:
              type: string
              maxLength: 255
              description: Thank you page URL
            upsell_thankyou_page_url:
              type: string
              maxLength: 255
              description: Upsell thank you page URL
            upsell_freeflow_thankyou_url:
              type: string
              maxLength: 255
              description: Free upsell flow thank you page URL
            image_id:
              type: integer
              description: ID of product image
            image_url:
              type: string
              maxLength: 255
              description: Product image URL
            product_type_id:
              type: integer
              description: Product type ID (see getGlobalSettings product_types)
            product_group_id:
              type: integer
              description: Product group/folder ID
            orderform_id:
              type: integer
              description: Order form ID to use
            social_proof_id:
              type: integer
              description: Social proof bubble ID
            approval_status:
              type: string
              enum: [new, pending]
              description: Product approval status
            language:
              type: string
              description: Language code or comma-separated list (e.g., de, en,de)
            country:
              type: string
              description: Country code
            buyer_type:
              type: string
              enum: [consumer, business]
              description: consumer=prices include VAT, business=prices exclude VAT
            note:
              type: string
              description: Internal note
            stop_sales_at:
              type: string
              format: date-time
              description: Date and time to stop sales
            support_note_html:
              type: string
              description: Support note HTML (network access only)
            use_community:
              type: string
              enum: [Y, N]
              description: Y=use community, N=no community
            community_share:
              type: number
              format: float
              description: Community share rate in percent
            affiliate_commission:
              type: number
              format: float
              description: Affiliate commission rate in percent
            affiliate_commission_fix:
              type: number
              format: float
              description: Fixed affiliate commission amount
            affiliate_commission_cur:
              type: string
              maxLength: 3
              description: Currency for fixed affiliate commission
            is_affiliation_auto_accepted:
              type: string
              enum: [Y, N]
              description: Y=auto-accept affiliates, N=manual approval
            is_address_input_mandatory:
              type: string
              enum: [Y, N]
              description: Y=buyer must always enter address, N=only when required for delivery
            has_addr_salutation:
              type: string
              enum: [Y, N]
              description: Y=show salutation field, N=hide salutation
            is_vat_shown:
              type: string
              enum: [Y, N]
              description: Y=show VAT on order form, N=hide VAT
            add_order_data_to_thankyou_page_url:
              type: string
              enum: [Y, N]
              description: Y=add order data to thankyou URL, N=no order data added
            add_order_data_to_upsell_sales_page_url:
              type: string
              enum: [Y, N]
              description: Y=add order data to upsell sales page URL, N=no order data
            add_order_data_to_upsell_thankyou_page_url:
              type: string
              description: Policy for adding order data to upsell thank you page URL
            redirect_to_custom_upsell_thankyou_page:
              type: string
              description: Policy for redirecting to custom upsell thank you page
            encrypt_order_data_of_thankyou_page_url:
              type: string
              description: Encryption option for thank you page order data
            encrypt_order_data_of_upsell_thankyou_page_url:
              type: string
              description: Encryption option for upsell thank you page order data
            is_addon_thankyou_url_enabled:
              type: string
              enum: [Y, N]
              description: Y=enable addon thank you URL, N=disabled
            is_free_upsell_started:
              type: string
              enum: [Y, N]
              description: Y=free upsell started, N=not started
            is_free_upsell_enabled:
              type: string
              enum: [Y, N]
              description: Y=free upsell enabled, N=disabled
            is_free_upsell_stopped:
              type: string
              enum: [Y, N]
              description: Y=free upsell stopped, N=not stopped
            is_upsell_double_purchase_prevented:
              type: string
              enum: [Y, N]
              description: Y=prevent double upsell purchase, N=allow
            is_optin_checkbox_shown:
              type: string
              enum: [Y, N]
              description: Y=show opt-in checkbox, N=hide
            max_quantity:
              type: integer
              description: Maximum quantity that can be purchased
            default_quantity:
              type: integer
              description: Default quantity pre-selected on order form
            is_phone_no_input_shown:
              type: string
              enum: [Y, N]
              description: Y=show phone number input, N=hide
            is_phone_no_mandatory:
              type: string
              enum: [Y, N]
              description: Y=phone number required, N=optional
            is_title_input_shown:
              type: string
              enum: [Y, N]
              description: Y=show title input, N=hide
            is_name_shown_on_bank_statement:
              type: string
              enum: [Y, N]
              description: Y=show product name on bank statement, N=hide
            is_search_engine_allowed:
              type: string
              enum: [Y, N]
              description: Y=allow search engines, N=block
            do_ask_for_company_by_default:
              type: string
              enum: [Y, N]
              description: Y=ask for company by default, N=hide company field
            is_voucher_input_hidden:
              type: string
              enum: [Y, N]
              description: Y=hide voucher input, N=show voucher input
            pay_methods:
              type: string
              description: Comma-separated list of payment methods (e.g., paypal,creditcard)
            notify_payment_emails:
              type: string
              description: Comma-separated email addresses for payment notifications
            notify_refund_emails:
              type: string
              description: Comma-separated email addresses for refund notifications
            notify_chargeback_emails:
              type: string
              description: Comma-separated email addresses for chargeback notifications
            notify_missed_payment_emails:
              type: string
              description: Comma-separated email addresses for missed payment notifications
            notify_rebilling_start_stop_emails:
              type: string
              description: Comma-separated email addresses for rebilling start/stop notifications
            notify_rebilling_payment_emails:
              type: string
              description: Comma-separated email addresses for rebilling payment notifications
            notify_affiliate_emails:
              type: string
              description: Comma-separated email addresses for affiliate notifications
            notify_addons_for:
              type: string
              description: Notification policy for addons
            service_interval:
              type: string
              description: Service interval type
            service_date:
              type: string
              format: date
              description: Service date
            is_active:
              type: string
              enum: [Y, N]
              description: Y=product is active, N=product is inactive
  responses:
    '200':
      description: Product successfully updated
      content:
        application/json:
          schema:
            type: object
            properties:
              modified:
                type: string
                enum: [Y, N]
                description: Y=changes were made, N=no changes were made
    '403':
      description: Access denied - Full access required
    '404':
      description: Product not found
    '400':
      description: Invalid request parameters
