action envoice_product_api_update { label: "Update an existing product" provider: envoice method: POST path: "/api/product/update" encoding: form input: { type: "object" properties: { AfterPaymentDescription: { type: "string" description: "After payment description" } Attachments: { type: "array" description: "List of product attachments" items: { type: "object" properties: { Id: { type: "integer" format: "int32" description: "Product attachment id" } Link: { type: "string" description: "Link to the file" } ObfuscatedFileName: { type: "string" description: "Hashed file name to avoid url wildguessing" } OriginalFileName: { type: "string" description: "Name of the file" } Size: { type: "integer" format: "int64" description: "File size number in bytes" } Type: { type: "string" description: "Type of the link (Attached or external)" enum: ["External", "Uploaded"] } } } } ButtonCallToAction: { type: "string" description: "Default button call to action \nEx: Buy now, subscribe, ..." } Coupons: { type: "array" description: "List of product coupons" items: { type: "object" properties: { Code: { type: "string" description: "Coupon to apply in order to get the discount" } DiscountAmount: { type: "number" format: "double" description: "Discount amount" } DiscountPercentage: { type: "number" format: "double" description: "Discount percentage" } Id: { type: "integer" format: "int32" description: "Product coupon id" } ValidUntil: { type: "string" format: "date-time" description: "Coupon expiration date" } } } } CurrencyId: { type: "integer" format: "int32" description: "Foreign key Currency" } Description: { type: "string" description: "Product description" } Discounts: { type: "array" description: "List of product discounts" items: { type: "object" properties: { DiscountAmount: { type: "number" format: "double" description: "Discount amount" } DiscountPercentage: { type: "number" format: "double" description: "Discount percentage" } Id: { type: "integer" format: "int32" description: "Product discount id" } Name: { type: "string" description: "Name" } ValidFrom: { type: "string" format: "date-time" description: "Discount start date" } ValidTo: { type: "string" format: "date-time" description: "Discount expiration date" } } } } Id: { type: "integer" format: "int32" description: "Product id" } IsFeatured: { type: "boolean" description: "Indicate that the product is set as featured" } Items: { type: "array" description: "List of product items" items: { type: "object" properties: { Cost: { type: "number" format: "double" description: "Work item cost" } Description: { type: "string" description: "General description" } Id: { type: "integer" format: "int32" description: "Product item id" } MinimumQuantity: { type: "number" format: "double" description: "Minimum required quantity in order to buy a work item" } ReferenceId: { type: "string" description: "Product SKU" } SubTotalAmount: { type: "number" format: "double" description: "Subtotal amount of product" } TaxAmount: { type: "number" format: "double" description: "Tax amount" } TaxId: { type: "integer" format: "int32" description: "Foreign key Tax id" } TaxPercentage: { type: "number" format: "double" description: "Tax percentage" } TotalAmount: { type: "number" format: "double" description: "Total amount of product" } WorkTypeId: { type: "integer" format: "int32" description: "Foreign key work type id" } } } } Name: { type: "string" description: "Product alias" } PaymentGateways: { type: "array" description: "List of enabled payment gateways for this product" items: { type: "object" properties: { Name: { type: "string" description: "Payment gateway name" } } } } ShippingAmount: { type: "number" format: "double" description: "Cost for shipping the product" } ShippingDescription: { type: "string" description: "Client instructions for shipping" } Status: { type: "string" description: "Product availability status" enum: ["Active", "NotAvailable", "Inactive"] } WhatHappensNextDescription: { type: "string" description: "What happens next description" } "x-auth-key": { type: "string" } "x-auth-secret": { type: "string" } } required: ["x-auth-key", "x-auth-secret"] additionalProperties: false } output: { type: "object" additionalProperties: true } }