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

# odoo-sales

> Odoo Sales

**Server path:** `/odoo-sales` | **Type:** Application | **PCID required:** Yes

## Tools

| Tool                                                                        | Description                  |
| --------------------------------------------------------------------------- | ---------------------------- |
| [`odoo_sales_create_product`](#odoo_sales_create_product)                   | Create a product             |
| [`odoo_sales_create_sale_order`](#odoo_sales_create_sale_order)             | Create a sales order         |
| [`odoo_sales_read_products`](#odoo_sales_read_products)                     | Read products by ID          |
| [`odoo_sales_read_sale_orders`](#odoo_sales_read_sale_orders)               | Read sales orders by ID      |
| [`odoo_sales_search_read_products`](#odoo_sales_search_read_products)       | Search and read products     |
| [`odoo_sales_search_read_sale_orders`](#odoo_sales_search_read_sale_orders) | Search and read sales orders |
| [`odoo_sales_write_product`](#odoo_sales_write_product)                     | Update a product             |
| [`odoo_sales_write_sale_order`](#odoo_sales_write_sale_order)               | Update a sales order         |

***

## odoo\_sales\_create\_product

Create a product

**Parameters:**

| Parameter | Type   | Required | Default | Description                      |
| --------- | ------ | -------- | ------- | -------------------------------- |
| `values`  | object | Yes      | —       | Field values for the new product |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "values": {
        "type": "object",
        "description": "Field values for the new product",
        "properties": {
          "name": {
            "type": "string",
            "description": "Product name"
          },
          "list_price": {
            "type": "number",
            "description": "Sales price"
          },
          "standard_price": {
            "type": "number",
            "description": "Cost price"
          },
          "type": {
            "type": "string",
            "description": "Product type: consu (consumable), service, or product (storable)",
            "enum": [
              "consu",
              "service",
              "product"
            ]
          },
          "categ_id": {
            "type": "integer",
            "description": "Product category ID"
          },
          "default_code": {
            "type": "string",
            "description": "Internal reference/SKU"
          },
          "barcode": {
            "type": "string",
            "description": "The barcode value"
          },
          "description": {
            "type": "string",
            "description": "Product description"
          },
          "description_sale": {
            "type": "string",
            "description": "Sales description (shown on quotations)"
          },
          "sale_ok": {
            "type": "boolean",
            "description": "Can be sold"
          },
          "purchase_ok": {
            "type": "boolean",
            "description": "Can be purchased"
          },
          "active": {
            "type": "boolean",
            "description": "Active status"
          },
          "uom_id": {
            "type": "integer",
            "description": "Unit of measure ID"
          }
        },
        "required": [
          "name"
        ]
      }
    },
    "required": [
      "PCID",
      "values"
    ]
  }
  ```
</Expandable>

***

## odoo\_sales\_create\_sale\_order

Create a sales order

**Parameters:**

| Parameter | Type   | Required | Default | Description                          |
| --------- | ------ | -------- | ------- | ------------------------------------ |
| `values`  | object | Yes      | —       | Field values for the new sales order |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "values": {
        "type": "object",
        "description": "Field values for the new sales order",
        "properties": {
          "partner_id": {
            "type": "integer",
            "description": "Customer ID (required)"
          },
          "date_order": {
            "type": "string",
            "description": "Order date (YYYY-MM-DD format)"
          },
          "validity_date": {
            "type": "string",
            "description": "Expiration date (YYYY-MM-DD)"
          },
          "pricelist_id": {
            "type": "integer",
            "description": "Pricelist ID"
          },
          "payment_term_id": {
            "type": "integer",
            "description": "Payment terms ID"
          },
          "user_id": {
            "type": "integer",
            "description": "Salesperson user ID"
          },
          "team_id": {
            "type": "integer",
            "description": "Sales team ID"
          },
          "note": {
            "type": "string",
            "description": "Terms and conditions"
          },
          "client_order_ref": {
            "type": "string",
            "description": "Customer reference"
          },
          "order_line": {
            "type": "array",
            "items": {
              "type": "array"
            },
            "description": "Order lines as array of [0, 0, {values}] tuples for creating new lines"
          }
        },
        "required": [
          "partner_id"
        ]
      }
    },
    "required": [
      "PCID",
      "values"
    ]
  }
  ```
</Expandable>

***

## odoo\_sales\_read\_products

Read products by ID

**Parameters:**

| Parameter | Type       | Required | Default | Description                                                                                                |
| --------- | ---------- | -------- | ------- | ---------------------------------------------------------------------------------------------------------- |
| `fields`  | string\[]  | No       | —       | List of field names to return. If empty or omitted, returns all fields. Example: \['name','email','phone'] |
| `ids`     | integer\[] | Yes      | —       | Array of record IDs to read, update, or delete                                                             |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "fields": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "List of field names to return. If empty or omitted, returns all fields. Example: ['name','email','phone']"
      },
      "ids": {
        "type": "array",
        "items": {
          "type": "integer"
        },
        "description": "Array of record IDs to read, update, or delete"
      }
    },
    "required": [
      "PCID",
      "ids"
    ]
  }
  ```
</Expandable>

***

## odoo\_sales\_read\_sale\_orders

Read sales orders by ID

**Parameters:**

| Parameter | Type       | Required | Default | Description                                                                                                |
| --------- | ---------- | -------- | ------- | ---------------------------------------------------------------------------------------------------------- |
| `fields`  | string\[]  | No       | —       | List of field names to return. If empty or omitted, returns all fields. Example: \['name','email','phone'] |
| `ids`     | integer\[] | Yes      | —       | Array of record IDs to read, update, or delete                                                             |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "fields": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "List of field names to return. If empty or omitted, returns all fields. Example: ['name','email','phone']"
      },
      "ids": {
        "type": "array",
        "items": {
          "type": "integer"
        },
        "description": "Array of record IDs to read, update, or delete"
      }
    },
    "required": [
      "PCID",
      "ids"
    ]
  }
  ```
</Expandable>

***

## odoo\_sales\_search\_read\_products

Search and read products

**Parameters:**

| Parameter | Type      | Required | Default | Description                                                                                                                                                                                                                                                                                                                         |
| --------- | --------- | -------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `domain`  | any\[]    | No       | —       | Odoo domain filter. Array of conditions where each condition is \[field, operator, value]. Operators: =, !=, >, >=, \<, \<=, like, ilike, in, not in, child\_of, parent\_of. Logical operators '&' (AND, default), '\|' (OR), '!' (NOT) can prefix conditions. Example: \[\['is\_company','=',true],\['country\_id.code','=','US']] |
| `fields`  | string\[] | No       | —       | List of field names to return. If empty or omitted, returns all fields. Example: \['name','email','phone']                                                                                                                                                                                                                          |
| `limit`   | integer   | No       | —       | Maximum number of records to return. Default is 80.                                                                                                                                                                                                                                                                                 |
| `offset`  | integer   | No       | —       | Number of records to skip for pagination. Default is 0.                                                                                                                                                                                                                                                                             |
| `order`   | string    | No       | —       | Sort order. Format: 'field\_name asc' or 'field\_name desc'. Multiple fields: 'name asc, id desc'.                                                                                                                                                                                                                                  |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "domain": {
        "type": "array",
        "description": "Odoo domain filter. Array of conditions where each condition is [field, operator, value]. Operators: =, !=, >, >=, <, <=, like, ilike, in, not in, child_of, parent_of. Logical operators '&' (AND, default), '|' (OR), '!' (NOT) can prefix conditions. Example: [['is_company','=',true],['country_id.code','=','US']]"
      },
      "fields": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "List of field names to return. If empty or omitted, returns all fields. Example: ['name','email','phone']"
      },
      "limit": {
        "type": "integer",
        "description": "Maximum number of records to return. Default is 80."
      },
      "offset": {
        "type": "integer",
        "description": "Number of records to skip for pagination. Default is 0."
      },
      "order": {
        "type": "string",
        "description": "Sort order. Format: 'field_name asc' or 'field_name desc'. Multiple fields: 'name asc, id desc'."
      }
    },
    "required": [
      "PCID"
    ]
  }
  ```
</Expandable>

***

## odoo\_sales\_search\_read\_sale\_orders

Search and read sales orders

**Parameters:**

| Parameter | Type      | Required | Default | Description                                                                                                                                                                                                                                                                                                                         |
| --------- | --------- | -------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `domain`  | any\[]    | No       | —       | Odoo domain filter. Array of conditions where each condition is \[field, operator, value]. Operators: =, !=, >, >=, \<, \<=, like, ilike, in, not in, child\_of, parent\_of. Logical operators '&' (AND, default), '\|' (OR), '!' (NOT) can prefix conditions. Example: \[\['is\_company','=',true],\['country\_id.code','=','US']] |
| `fields`  | string\[] | No       | —       | List of field names to return. If empty or omitted, returns all fields. Example: \['name','email','phone']                                                                                                                                                                                                                          |
| `limit`   | integer   | No       | —       | Maximum number of records to return. Default is 80.                                                                                                                                                                                                                                                                                 |
| `offset`  | integer   | No       | —       | Number of records to skip for pagination. Default is 0.                                                                                                                                                                                                                                                                             |
| `order`   | string    | No       | —       | Sort order. Format: 'field\_name asc' or 'field\_name desc'. Multiple fields: 'name asc, id desc'.                                                                                                                                                                                                                                  |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "domain": {
        "type": "array",
        "description": "Odoo domain filter. Array of conditions where each condition is [field, operator, value]. Operators: =, !=, >, >=, <, <=, like, ilike, in, not in, child_of, parent_of. Logical operators '&' (AND, default), '|' (OR), '!' (NOT) can prefix conditions. Example: [['is_company','=',true],['country_id.code','=','US']]"
      },
      "fields": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "List of field names to return. If empty or omitted, returns all fields. Example: ['name','email','phone']"
      },
      "limit": {
        "type": "integer",
        "description": "Maximum number of records to return. Default is 80."
      },
      "offset": {
        "type": "integer",
        "description": "Number of records to skip for pagination. Default is 0."
      },
      "order": {
        "type": "string",
        "description": "Sort order. Format: 'field_name asc' or 'field_name desc'. Multiple fields: 'name asc, id desc'."
      }
    },
    "required": [
      "PCID"
    ]
  }
  ```
</Expandable>

***

## odoo\_sales\_write\_product

Update a product

**Parameters:**

| Parameter | Type       | Required | Default | Description                                    |
| --------- | ---------- | -------- | ------- | ---------------------------------------------- |
| `ids`     | integer\[] | Yes      | —       | Array of record IDs to read, update, or delete |
| `values`  | object     | Yes      | —       | Field values to update                         |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "ids": {
        "type": "array",
        "items": {
          "type": "integer"
        },
        "description": "Array of record IDs to read, update, or delete"
      },
      "values": {
        "type": "object",
        "description": "Field values to update",
        "properties": {
          "name": {
            "type": "string",
            "description": "Product name"
          },
          "list_price": {
            "type": "number",
            "description": "Sales price"
          },
          "standard_price": {
            "type": "number",
            "description": "Cost price"
          },
          "default_code": {
            "type": "string",
            "description": "Internal reference/SKU"
          },
          "barcode": {
            "type": "string",
            "description": "The barcode value"
          },
          "description": {
            "type": "string",
            "description": "Product description"
          },
          "active": {
            "type": "boolean",
            "description": "Active status"
          }
        }
      }
    },
    "required": [
      "PCID",
      "ids",
      "values"
    ]
  }
  ```
</Expandable>

***

## odoo\_sales\_write\_sale\_order

Update a sales order

**Parameters:**

| Parameter | Type       | Required | Default | Description                                    |
| --------- | ---------- | -------- | ------- | ---------------------------------------------- |
| `ids`     | integer\[] | Yes      | —       | Array of record IDs to read, update, or delete |
| `values`  | object     | Yes      | —       | Field values to update                         |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "ids": {
        "type": "array",
        "items": {
          "type": "integer"
        },
        "description": "Array of record IDs to read, update, or delete"
      },
      "values": {
        "type": "object",
        "description": "Field values to update",
        "properties": {
          "partner_id": {
            "type": "integer",
            "description": "Customer ID"
          },
          "date_order": {
            "type": "string",
            "description": "Order date"
          },
          "validity_date": {
            "type": "string",
            "description": "Expiration date"
          },
          "note": {
            "type": "string",
            "description": "Terms and conditions"
          },
          "client_order_ref": {
            "type": "string",
            "description": "Customer reference"
          },
          "user_id": {
            "type": "integer",
            "description": "Salesperson user ID"
          }
        }
      }
    },
    "required": [
      "PCID",
      "ids",
      "values"
    ]
  }
  ```
</Expandable>
