# Zoho Commerce Integration via LowCodeAPI

**Last Updated**: February 11, 2026

## Overview

E-commerce platform

The Zoho Commerce API provides access to:

- **E-commerce** - Related functionality

## Base Endpoint

```
https://api.lowcodeapi.com/zohocommerce/
```

**Important**: Always include the provider name in the URL path after `api.lowcodeapi.com/`

## Authentication

LowCodeAPI handles authentication automatically. You only need to:

1. **Sign up** at [Zoho Commerce](https://www.zoho.com/commerce)
2. **Get your credentials** from [credential page](https://accounts.zoho.com/developerconsole)
3. **Connect your account** in LowCodeAPI dashboard
4. **Use your `api_token`** in all requests

The `api_token` is your LowCodeAPI authentication token. LowCodeAPI will automatically:
- Fetch your provider credentials (API keys, OAuth tokens, etc.)
- Apply them to each request
- Handle token refresh for OAuth providers

**Auth Type**: OAUTH2.0

## URL Format (Important)

LowCodeAPI supports **two URL formats** for endpoints with path parameters. **Always try New Format first**, and only fall back to Old Format if it doesn't work.

### New Format (Priority) - Dynamic Path Parameters

- **Path parameters stay in the URL path** - Do NOT convert to query parameters
- **Provider name is always in the URL path** after `api.lowcodeapi.com/`
- Pattern: `https://api.lowcodeapi.com/{provider}/{path_with_params}?api_token={api_token}`

**Example**:
```bash
# New Format - Path parameter stays in the URL path
https://api.lowcodeapi.com/zohocommerce/resource/{RESOURCE_ID}?api_token=YOUR_API_TOKEN
```

### Old Format (Fallback) - Sanitized Path + Query Parameters

- **Path parameters become query parameters**
- **Provider name is always in the URL path**
- Pattern: `https://api.lowcodeapi.com/{provider}/{sanitized_path}?{path_params}&api_token={api_token}`

**Example**:
```bash
# Old Format - Path parameter becomes a query parameter
https://api.lowcodeapi.com/zohocommerce/resource/id?id=RESOURCE_ID&api_token=YOUR_API_TOKEN
```

### Decision Flow for AI Agents

1. Always use **New Format first** - Keep path parameters in the URL path
2. If you get a 404 or error, try **Old Format** with sanitized path
3. Log which format worked for future requests to this provider

## API Categories

- **Account Dashboard** - 3 endpoints
- **Address Book** - 5 endpoints
- **Cart** - 3 endpoints
- **Categories** - 9 endpoints
- **Checkout** - 5 endpoints
- **Coupons** - 5 endpoints
- **Import Products** - 3 endpoints
- **Inventory** - 1 endpoints
- **Listing** - 4 endpoints
- **My Orders** - 3 endpoints
- **Payments** - 3 endpoints
- **Portal** - 3 endpoints
- **Products** - 9 endpoints
- **Sales Orders** - 5 endpoints
- **Sales Return** - 3 endpoints
- **Shipment Orders** - 3 endpoints
- **Taxes** - 6 endpoints
- **Variants** - 5 endpoints

## Common Endpoints

### Category: Account Dashboard

#### Get User Profile

**Method**: `GET` | **LowCodeAPI Path**: `/portaluser/userProfile`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/portaluser/userProfile?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/portaluser/userprofile?api_token={api_token}
```

**Description**: Get User Profile

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X GET "https://api.lowcodeapi.com/zohocommerce/portaluser/userProfile?api_token=YOUR_API_TOKEN"
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Get User Profile](https://www.zoho.com/commerce/api/get-user-profile.html)

---

#### Edit User Profile

**Method**: `POST` | **LowCodeAPI Path**: `/portaluser/userProfile`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/portaluser/userProfile?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/portaluser/userprofile?api_token={api_token}
```

**Description**: Edit User Profile

**Request Body**:
```json
{
  "contact_person_list": "<object>",
  "email": "<string>",
  "token": "<string>",
  "user_info": "<array>"
}
```

**Request Body Fields**:

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `contact_person_list` | object | Yes | Contains user contact_person_id |
| `email` | string | Yes | Email ID of the user |
| `token` | string | Yes | User's token |
| `user_info` | array | Yes | User_info contains the edited profile details of the user |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X POST "https://api.lowcodeapi.com/zohocommerce/portaluser/userProfile?api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key": "value"}'
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Edit User Profile](https://www.zoho.com/commerce/api/edit-user-profile.html)

---

#### Change Password

**Method**: `POST` | **LowCodeAPI Path**: `/portaluser/changePassword`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/portaluser/changePassword?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/portaluser/changepassword?api_token={api_token}
```

**Description**: Change Password

**Request Body**:
```json
{
  "confirm_password": "<string>",
  "current_password": "<string>",
  "new_password": "<string>",
  "token": "<string>"
}
```

**Request Body Fields**:

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `confirm_password` | string | Yes | Confirmation password of the newly entered password |
| `current_password` | string | Yes | Current password of the user's account |
| `new_password` | string | Yes | New password that needs to be updated |
| `token` | string | Yes | User's token |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X POST "https://api.lowcodeapi.com/zohocommerce/portaluser/changePassword?api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key": "value"}'
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Change Password](https://www.zoho.com/commerce/api/change-password.html)

---

### Category: Address Book

#### Get Address Book

**Method**: `GET` | **LowCodeAPI Path**: `/portaluser/address`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/portaluser/address?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/portaluser/address?api_token={api_token}
```

**Description**: Get Address Book

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X GET "https://api.lowcodeapi.com/zohocommerce/portaluser/address?api_token=YOUR_API_TOKEN"
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Get Address Book](https://www.zoho.com/commerce/api/get-address-book.html)

---

#### Create Address Book

**Method**: `POST` | **LowCodeAPI Path**: `/portaluser/address`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/portaluser/address?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/portaluser/address?api_token={api_token}
```

**Description**: Create Address Book

**Request Body**:
```json
{
  "address_details": "<object>",
  "zuid": "<string>"
}
```

**Request Body Fields**:

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `address_details` | object | Yes | Contains JSON of user address detail that needed to be updated |
| `zuid` | string | Yes | User ID of the user |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X POST "https://api.lowcodeapi.com/zohocommerce/portaluser/address?api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key": "value"}'
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Create Address Book](https://www.zoho.com/commerce/api/create-address-book.html)

---

#### Mark Address as Default

**Method**: `POST` | **LowCodeAPI Path**: `/portaluser/address/{address_id}/default`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/portaluser/address/{address_id}/default?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/portaluser/address/address_id/default?address_id={address_id}&api_token={api_token}
```

**Description**: Mark Address as Default

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `address_id` | string | Yes | Address ID in the mapped shipping address detail of the user |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X POST "https://api.lowcodeapi.com/zohocommerce/portaluser/address/{address_id}/default?api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key": "value"}'
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Mark Address as Default](https://www.zoho.com/commerce/api/mark-address-as-default.html)

---

#### Delete Address Book

**Method**: `DELETE` | **LowCodeAPI Path**: `/portaluser/address/{address_id}`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/portaluser/address/{address_id}?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/portaluser/address/address_id?address_id={address_id}&api_token={api_token}
```

**Description**: Delete Address Book

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `address_id` | string | Yes | Address ID in the mapped shipping address detail of the user |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X DELETE "https://api.lowcodeapi.com/zohocommerce/portaluser/address/{address_id}?api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key": "value"}'
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Delete Address Book](https://www.zoho.com/commerce/api/delete-address-book.html)

---

#### Update Address Book

**Method**: `POST` | **LowCodeAPI Path**: `/portaluser/address/{address_id}`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/portaluser/address/{address_id}?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/portaluser/address/address_id?address_id={address_id}&api_token={api_token}
```

**Description**: Update Address Book

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `address_id` | string | Yes | Address ID in the mapped shipping address detail of the user |

**Request Body**:
```json
{
  "address_details": "<object>",
  "zuid": "<string>"
}
```

**Request Body Fields**:

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `address_details` | object | Yes | Contains JSON of user address detail that needed to be updated |
| `zuid` | string | Yes | User ID of the user |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X POST "https://api.lowcodeapi.com/zohocommerce/portaluser/address/{address_id}?api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key": "value"}'
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Update Address Book](https://www.zoho.com/commerce/api/update-address-book.html)

---

### Category: Cart

#### Add to Cart

**Method**: `POST` | **LowCodeAPI Path**: `/storefront/api/v1/cart`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/storefront/api/v1/cart?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/storefront/api/v1/cart?api_token={api_token}
```

**Description**: Add to Cart

**Request Body**:
```json
{
  "cart_id": "<string>",
  "product_variant_id": "<string>",
  "quantity": "<number>"
}
```

**Request Body Fields**:

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `cart_id` | string | Yes | The identifier of the cart. It is created by default, if there is no cart ID. |
| `custom_field_id` | number | No | Unique identifier of the custom field. |
| `custom_fields` | array | No | Contains the custom field values for the product. |
| `data_type` | string | No | The data type of the custom field. |
| `label` | string | No | The label value of the custom field. |
| `product_variant_id` | string | Yes | The item to be added in cart. |
| `quantity` | number | Yes | Quantity of the item to be added in cart. |
| `value` | string | No | The value of the custom field. |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X POST "https://api.lowcodeapi.com/zohocommerce/storefront/api/v1/cart?api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key": "value"}'
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Add to Cart](https://www.zoho.com/commerce/api/add-to-cart.html)

---

#### Delete from Cart

**Method**: `DELETE` | **LowCodeAPI Path**: `/storefront/api/v1/cart`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/storefront/api/v1/cart?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/storefront/api/v1/cart?cart_id={cart_id}&product_variant_id={product_variant_id}&api_token={api_token}
```

**Description**: Delete from Cart

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `cart_id` | string | No | The identifier of the cart |
| `product_variant_id` | string | Yes | The item to be deleted from cart |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X DELETE "https://api.lowcodeapi.com/zohocommerce/storefront/api/v1/cart?api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key": "value"}'
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Delete from Cart](https://www.zoho.com/commerce/api/delete-from-cart.html)

---

#### Update a Cart

**Method**: `PUT` | **LowCodeAPI Path**: `/storefront/api/v1/cart`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/storefront/api/v1/cart?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/storefront/api/v1/cart?api_token={api_token}
```

**Description**: Update a Cart

**Request Body**:
```json
{
  "cart_id": "<string>",
  "product_variant_id": "<string>",
  "quantity": "<number>"
}
```

**Request Body Fields**:

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `cart_id` | string | Yes | The identifier of the cart to be updated |
| `product_variant_id` | string | Yes | The item to be updated in cart |
| `quantity` | number | Yes | Quantity of the item to be updated in cart |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X PUT "https://api.lowcodeapi.com/zohocommerce/storefront/api/v1/cart?api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key": "value"}'
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Update a Cart](https://www.zoho.com/commerce/api/update-cart.html)

---

### Category: Categories

#### List All Categories

**Method**: `GET` | **LowCodeAPI Path**: `/store/api/v1/categories`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/categories?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/categories?page={page}&per_page={per_page}&api_token={api_token}
```

**Description**: List All Categories

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | number | No | Page number |
| `per_page` | number | No | Number of percentage taxable |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X GET "https://api.lowcodeapi.com/zohocommerce/store/api/v1/categories?page=VALUE&per_page=VALUE&api_token=YOUR_API_TOKEN"
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [List All Categories](https://www.zoho.com/commerce/api/list-all-categories.html)

---

#### Create a Category

**Method**: `POST` | **LowCodeAPI Path**: `/store/api/v1/categories`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/categories?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/categories?api_token={api_token}
```

**Description**: Create a Category

**Request Body**:
```json
{
  "name": "<string>",
  "url": "<string>"
}
```

**Request Body Fields**:

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `description` | string | No | Description about the category |
| `name` | string | Yes | Name of the category |
| `parent_category_id` | number | No | Parent ID of the category (Empty will be considered as ROOT) |
| `seo_description` | string | No | Description about the category to be used in SEO |
| `seo_keyword` | string | No | Keywords related to category that can be used for SEO (Multiple keywords can be specified by separating them with commas) |
| `seo_title` | string | No | Title of the category to be used in SEO |
| `show_in_menu` | boolean | No | Specify whether the category should be shown as a menu item in published site or not |
| `url` | string | Yes | URL of the category. The value should be unique [URL can contain only letters (upper and lower cases), numbers, hyphen(-) and underscore(_)] |
| `visibility` | boolean | No | Visibility of the category in published site |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X POST "https://api.lowcodeapi.com/zohocommerce/store/api/v1/categories?api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key": "value"}'
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Create a Category](https://www.zoho.com/commerce/api/create-a-category.html)

---

#### Retrieve a Category

**Method**: `GET` | **LowCodeAPI Path**: `/store/api/v1/categories/editpage`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/categories/editpage?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/categories/editpage?category_id={category_id}&api_token={api_token}
```

**Description**: Retrieve a Category

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `category_id` | number | Yes | Category id for which category detail is required |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X GET "https://api.lowcodeapi.com/zohocommerce/store/api/v1/categories/editpage?category_id=VALUE&api_token=YOUR_API_TOKEN"
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Retrieve a Category](https://www.zoho.com/commerce/api/retrieve-a-category.html)

---

#### Update a Category

**Method**: `PUT` | **LowCodeAPI Path**: `/store/api/v1/categories`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/categories?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/categories?api_token={api_token}
```

**Description**: Update a Category

**Request Body**:
```json
{
  "key": "value"
}
```

**Request Body Fields**:

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `description` | string | No | Description about the category |
| `name` | string | No | Name of the category |
| `parent_category_id` | number | No | Parent ID of the category (Empty will be considered as ROOT) |
| `seo_description` | string | No | Description about the category to be used in SEO |
| `seo_keyword` | string | No | Keywords related to category that can be used for SEO (Multiple keywords can be specified by separating them with commas) |
| `seo_title` | string | No | Title of the category to be used in SEO |
| `show_in_menu` | boolean | No | Specify whether the category should be shown as a menu item in published site or not |
| `url` | string | No | URL of the category. The value should be unique [URL can contain only letters (upper and lower cases), numbers, hyphen(-), and underscore(_)] |
| `visibility` | boolean | No | Visibility of the category in published site |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X PUT "https://api.lowcodeapi.com/zohocommerce/store/api/v1/categories?api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key": "value"}'
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Update a Category](https://www.zoho.com/commerce/api/update-category.html)

---

#### Delete a Category

**Method**: `DELETE` | **LowCodeAPI Path**: `/store/api/v1/categories`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/categories?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/categories?delete_sub_categories={delete_sub_categories}&api_token={api_token}
```

**Description**: Delete a Category

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `delete_sub_categories` | boolean | No | The value should be true when you're deleting the parent category. If the category has no child the param can be neglected |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X DELETE "https://api.lowcodeapi.com/zohocommerce/store/api/v1/categories?api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key": "value"}'
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Delete a Category](https://www.zoho.com/commerce/api/delete-category.html)

---

#### Re-order Categories

**Method**: `POST` | **LowCodeAPI Path**: `/store/api/v1/categories/siblingorder`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/categories/siblingorder?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/categories/siblingorder?api_token={api_token}
```

**Description**: Re-order Categories

**Request Body**:
```json
{
  "categories": "<object>"
}
```

**Request Body Fields**:

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `categories` | object | Yes | Array of category IDs in their respective sibling order |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X POST "https://api.lowcodeapi.com/zohocommerce/store/api/v1/categories/siblingorder?api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key": "value"}'
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Re-order Categories](https://www.zoho.com/commerce/api/reorder-categories.html)

---

#### Add Category Image

**Method**: `POST` | **LowCodeAPI Path**: `/store/api/v1/categories/images`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/categories/images?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/categories/images?api_token={api_token}
```

**Description**: Add Category Image

**Request Body**:
```json
{
  "image": "<file>"
}
```

**Request Body Fields**:

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `alter_text` | string | No |  Alternate text for the image |
| `image` | file | Yes | Binary of the image |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X POST "https://api.lowcodeapi.com/zohocommerce/store/api/v1/categories/images?api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key": "value"}'
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Add Category Image](https://www.zoho.com/commerce/api/add-category-image.html)

---

#### Edit Category Image

**Method**: `PUT` | **LowCodeAPI Path**: `/store/api/v1/categories/images`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/categories/images?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/categories/images?alter_text={alter_text}&name={name}&api_token={api_token}
```

**Description**: Edit Category Image

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `alter_text` | string | No |  Alternate text for the category's image (shouldn't contain any html characters like <>) |
| `name` | string | No | Name of the category's image (shouldn't contain any html characters like <>) |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X PUT "https://api.lowcodeapi.com/zohocommerce/store/api/v1/categories/images?api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key": "value"}'
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Edit Category Image](https://www.zoho.com/commerce/api/edit-category-image.html)

---

#### Delete Category Image

**Method**: `DELETE` | **LowCodeAPI Path**: `/store/api/v1/categories/documents`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/categories/documents?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/categories/documents?api_token={api_token}
```

**Description**: Delete Category Image

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X DELETE "https://api.lowcodeapi.com/zohocommerce/store/api/v1/categories/documents?api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key": "value"}'
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Delete Category Image](https://www.zoho.com/commerce/api/delete-category-image.html)

---

### Category: Checkout

#### Get Checkout

**Method**: `GET` | **LowCodeAPI Path**: `/storefront/api/v1/checkout`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/storefront/api/v1/checkout?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/storefront/api/v1/checkout?checkout_id={checkout_id}&api_token={api_token}
```

**Description**: Get Checkout

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `checkout_id` | string | Yes | Unique ID generated by the server for the checkout. This is used as an identifier |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X GET "https://api.lowcodeapi.com/zohocommerce/storefront/api/v1/checkout?checkout_id=VALUE&api_token=YOUR_API_TOKEN"
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Get Checkout](https://www.zoho.com/commerce/api/get-checkout.html)

---

#### Add Address

**Method**: `POST` | **LowCodeAPI Path**: `/storefront/api/v1/checkout/address`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/storefront/api/v1/checkout/address?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/storefront/api/v1/checkout/address?checkout_id={checkout_id}&api_token={api_token}
```

**Description**: Add Address

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `checkout_id` | string | Yes | Unique ID generated by the server for the checkout. This is used as an identifier |

**Request Body**:
```json
{
  "billing_address": "<string>",
  "shipping_address": "<object>"
}
```

**Request Body Fields**:

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `billing_address` | string | Yes | Billing address of the customer (contains the same fields as above) |
| `country` | string | No | Country of the customer's shipping/billing address |
| `email_address` | string | No | Email Id of the customer's shipping/billing address |
| `first_name` | string | No | First name of the customer's shipping/billing |
| `last_name` | string | No | Last name of the customer's shipping/billing |
| `postal_code` | string | No | ZIP Code of the customer's shipping/billing address |
| `same_billing_address` | boolean | No | Checks whether the billing address is the same as shipping address |
| `shipping_address` | object | Yes | The address to which the goods must be delivered |
| `state` | string | No | State of the customer's shipping/billing address |
| `telephone` | string | No | Phone number of the customer's shipping/billing address |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X POST "https://api.lowcodeapi.com/zohocommerce/storefront/api/v1/checkout/address?api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key": "value"}'
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Add Address](https://www.zoho.com/commerce/api/add-address.html)

---

#### Add Shipping Method

**Method**: `POST` | **LowCodeAPI Path**: `/storefront/api/v1/checkout/shipping-methods`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/storefront/api/v1/checkout/shipping-methods?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/storefront/api/v1/checkout/shipping-methods?checkout_id={checkout_id}&api_token={api_token}
```

**Description**: Add Shipping Method

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `checkout_id` | string | Yes | Unique ID generated by the server for the checkout. This is used as an identifier |

**Request Body**:
```json
{
  "shipping": "<string>"
}
```

**Request Body Fields**:

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `shipping` | string | Yes | The id of the shipping method to be added for the checkout |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X POST "https://api.lowcodeapi.com/zohocommerce/storefront/api/v1/checkout/shipping-methods?api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key": "value"}'
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Add Shipping Method](https://www.zoho.com/commerce/api/add-shipping-method.html)

---

#### Place an Order

**Method**: `POST` | **LowCodeAPI Path**: `/storefront/api/v1/checkout/process-offline-payment`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/storefront/api/v1/checkout/process-offline-payment?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/storefront/api/v1/checkout/process-offline-payment?api_token={api_token}
```

**Description**: Place an Order

**Request Body**:
```json
{
  "checkout_id": "<string>",
  "payment_mode": "<string>"
}
```

**Request Body Fields**:

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `checkout_id` | string | Yes | Unique ID generated by the server for the checkout. This is used as identifier |
| `payment_mode` | string | Yes | Allowed value: cash_on_delivery |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X POST "https://api.lowcodeapi.com/zohocommerce/storefront/api/v1/checkout/process-offline-payment?api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key": "value"}'
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Place an Order](https://www.zoho.com/commerce/api/place-order.html)

---

#### Add or Remove Coupons

**Method**: `POST` | **LowCodeAPI Path**: `/storefront/api/v1/checkout/applycoupon`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/storefront/api/v1/checkout/applycoupon?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/storefront/api/v1/checkout/applycoupon?api_token={api_token}
```

**Description**: Add or Remove Coupons

**Request Body**:
```json
{
  "checkout_id": "<string>",
  "coupon_code": "<string>"
}
```

**Request Body Fields**:

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `checkout_id` | string | Yes | Unique ID generated by the server for the checkout. This is used as identifier |
| `coupon_code` | string | Yes | The coupon code to be applied. To remove the coupon you need to change the data type to empty string |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X POST "https://api.lowcodeapi.com/zohocommerce/storefront/api/v1/checkout/applycoupon?api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key": "value"}'
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Add or Remove Coupons](https://www.zoho.com/commerce/api/checkout-coupons.html)

---

### Category: Coupons

#### List Coupons

**Method**: `GET` | **LowCodeAPI Path**: `/store/api/v1/coupons`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/coupons?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/coupons?api_token={api_token}
```

**Description**: List Coupons

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X GET "https://api.lowcodeapi.com/zohocommerce/store/api/v1/coupons?api_token=YOUR_API_TOKEN"
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [List Coupons](https://www.zoho.com/commerce/api/list-coupons.html)

---

#### Get Coupon

**Method**: `GET` | **LowCodeAPI Path**: `/store/api/v1/coupons/{coupon_id}`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/coupons/{coupon_id}?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/coupons/coupon_id?coupon_id={coupon_id}&api_token={api_token}
```

**Description**: Get Coupon

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `coupon_id` | string | Yes | Coupon Id |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X GET "https://api.lowcodeapi.com/zohocommerce/store/api/v1/coupons/{coupon_id}?api_token=YOUR_API_TOKEN"
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Get Coupon](https://www.zoho.com/commerce/api/get-coupon.html)

---

#### Create Coupon

**Method**: `POST` | **LowCodeAPI Path**: `/store/api/v1/coupons`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/coupons?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/coupons?api_token={api_token}
```

**Description**: Create Coupon

**Request Body**:
```json
{
  "activation_time": "<boolean>",
  "coupon_code": "<string>",
  "coupon_name": "<string>",
  "discount_type": "<string>",
  "discount_value": "<string>",
  "max_redemption_count": "<number>",
  "max_redemption_count_per_user": "<number>",
  "minimum_order_value": "<string>"
}
```

**Request Body Fields**:

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `activation_time` | boolean | Yes | If true, guest users cannot apply this coupon |
| `coupon_code` | string | Yes | Code for the coupon |
| `coupon_name` | string | Yes | Name of the coupon |
| `discount_type` | string | Yes | Type of coupon, either 'Flat' or 'Percentage' |
| `discount_value` | string | Yes | Value of the coupon |
| `eligible_customers` | object | No | Coupon applicable for the mentioned customers |
| `eligible_products` | object | No | Coupon applicable for the mentioned products |
| `eligible_shipping_zones` | object | No | Coupon applicable for the mentioned shipping zones |
| `max_redemption_count` | number | Yes | Coupon limit for store |
| `max_redemption_count_per_user` | number | Yes | Coupon limit per customer |
| `minimum_order_value` | string | Yes | Order total must be greater than this amount in order to apply this coupon |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X POST "https://api.lowcodeapi.com/zohocommerce/store/api/v1/coupons?api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key": "value"}'
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Create Coupon](https://www.zoho.com/commerce/api/create-coupon.html)

---

#### Update Coupon

**Method**: `PUT` | **LowCodeAPI Path**: `/store/api/v1/coupons/{coupon_id}`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/coupons/{coupon_id}?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/coupons/coupon_id?coupon_id={coupon_id}&api_token={api_token}
```

**Description**: Update Coupon

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `coupon_id` | string | Yes | Coupon Id |

**Request Body**:
```json
{
  "activation_time": "<string>",
  "coupon_code": "<string>",
  "coupon_name": "<string>",
  "discount_type": "<string>",
  "discount_value": "<string>",
  "expiry_time": "<string>",
  "max_redemption_count": "<number>",
  "max_redemption_count_per_user": "<number>",
  "minimum_order_value": "<string>"
}
```

**Request Body Fields**:

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `activation_time` | string | Yes | Time of coupon activation |
| `coupon_code` | string | Yes | Code for the coupon |
| `coupon_name` | string | Yes | Name of the coupon |
| `discount_type` | string | Yes | Type of coupon, either 'Flat' or 'Percentage' |
| `discount_value` | string | Yes | Value of the coupon |
| `eligible_customers` | object | No | Coupon applicable for the mentioned customers |
| `eligible_products` | object | No | Coupon applicable for the mentioned products |
| `eligible_shipping_zones` | object | No | Coupon applicable for the mentioned shipping zones |
| `expiry_time` | string | Yes | Expiry time for coupon |
| `max_redemption_count` | number | Yes | Coupon limit for store |
| `max_redemption_count_per_user` | number | Yes | Coupon limit per customer |
| `minimum_order_value` | string | Yes | Order total must be greater than this amount in order to apply this coupon |
| `restrict_for_guest_user` | boolean | No | If true, guest user cannot apply this coupon |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X PUT "https://api.lowcodeapi.com/zohocommerce/store/api/v1/coupons/{coupon_id}?api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key": "value"}'
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Update Coupon](https://www.zoho.com/commerce/api/update-coupon.html)

---

#### Delete Coupon

**Method**: `DELETE` | **LowCodeAPI Path**: `/store/api/v1/coupons/{coupon_id}`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/coupons/{coupon_id}?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/coupons/coupon_id?coupon_id={coupon_id}&api_token={api_token}
```

**Description**: Delete Coupon

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `coupon_id` | string | Yes | Coupon Id |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X DELETE "https://api.lowcodeapi.com/zohocommerce/store/api/v1/coupons/{coupon_id}?api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key": "value"}'
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Delete Coupon](https://www.zoho.com/commerce/api/delete-coupon.html)

---

### Category: Import Products

#### Upload Import File

**Method**: `POST` | **LowCodeAPI Path**: `/store/api/v1/import/uploadfile`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/import/uploadfile?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/import/uploadfile?api_token={api_token}
```

**Description**: Upload Import File

**Request Body**:
```json
{
  "charencoding": "<string>",
  "delimiter": "<string>",
  "duplicate_handling": "<string>",
  "entity": "<string>",
  "importfile": "<file>"
}
```

**Request Body Fields**:

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `charencoding` | string | Yes | Give character encoding used in the file. Possible values are UTF-8, UTF-16 |
| `delimiter` | string | Yes | Give delimiter used in the file. Possible values are ',' and ';' |
| `duplicate_handling` | string | Yes | Give value that defines how to handle duplicate records. Only possible value is 'overwrite' |
| `entity` | string | Yes | Give entity type of the import. Only possible value is 'itemgroup' |
| `importfile` | file | Yes | Give file that needs to be imported |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X POST "https://api.lowcodeapi.com/zohocommerce/store/api/v1/import/uploadfile?api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key": "value"}'
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Upload Import File](https://www.zoho.com/commerce/api/import-products-step-1.html)

---

#### Preview Imported File

**Method**: `PUT` | **LowCodeAPI Path**: `/store/api/v1/import/preview`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/import/preview?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/import/preview?api_token={api_token}
```

**Description**: Preview Imported File

**Request Body**:
```json
{
  "csv_column": "<string>",
  "entity_column": "<string>",
  "entity_columns": "<array>"
}
```

**Request Body Fields**:

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `csv_column` | string | Yes | Give csv column name |
| `entity_column` | string | Yes | Give corresponding entity column name for mapping |
| `entity_columns` | array | Yes | Give array of all entity and csv column mapping (Use entity_columns array response format from the step 1) |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X PUT "https://api.lowcodeapi.com/zohocommerce/store/api/v1/import/preview?api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key": "value"}'
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Preview Imported File](https://www.zoho.com/commerce/api/import-products-step-2.html)

---

#### Import Products

**Method**: `PUT` | **LowCodeAPI Path**: `/store/api/v1/import`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/import?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/import?api_token={api_token}
```

**Description**: Import Products

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X PUT "https://api.lowcodeapi.com/zohocommerce/store/api/v1/import?api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key": "value"}'
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Import Products](https://www.zoho.com/commerce/api/import-products-step-3.html)

---

### Category: Inventory

#### Manage Stock

**Method**: `POST` | **LowCodeAPI Path**: `/store/api/v1/inventoryadjustments`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/inventoryadjustments?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/inventoryadjustments?api_token={api_token}
```

**Description**: Manage Stock

**Request Body**:
```json
{
  "adjustment_type": "<string>",
  "item_id": "<number>",
  "line_items": "<array>",
  "quantity_adjusted": "<string>",
  "reason": "<string>"
}
```

**Request Body Fields**:

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `adjustment_type` | string | Yes | Adjustment type should be 'quantity' |
| `item_id` | number | Yes | Give variant_id of the product that needs to be adjusted |
| `line_items` | array | Yes | Give a list of all the items along with adjustment quantity |
| `quantity_adjusted` | string | Yes | The adjusted quantity of the line item |
| `reason` | string | Yes | Reason for stock adjustment |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X POST "https://api.lowcodeapi.com/zohocommerce/store/api/v1/inventoryadjustments?api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key": "value"}'
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Manage Stock](https://www.zoho.com/commerce/api/manage-stock.html)

---

### Category: Listing

#### Get Product

**Method**: `GET` | **LowCodeAPI Path**: `/storefront/api/v1/products/{product_id}`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/storefront/api/v1/products/{product_id}?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/storefront/api/v1/products/product_id?product_id={product_id}&api_token={api_token}
```

**Description**: Get Product

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `product_id` | string | Yes | Unique ID generated by the server for the product. This is used as identifier |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X GET "https://api.lowcodeapi.com/zohocommerce/storefront/api/v1/products/{product_id}?api_token=YOUR_API_TOKEN"
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Get Product](https://www.zoho.com/commerce/api/get-product.html)

---

#### Get Category

**Method**: `GET` | **LowCodeAPI Path**: `/storefront/api/v1/categories/{category_id}`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/storefront/api/v1/categories/{category_id}?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/storefront/api/v1/categories/category_id?category_id={category_id}&api_token={api_token}
```

**Description**: Get Category

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `category_id` | string | Yes | Unique ID generated by the server for the category. This is used as identifier |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X GET "https://api.lowcodeapi.com/zohocommerce/storefront/api/v1/categories/{category_id}?api_token=YOUR_API_TOKEN"
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Get Category](https://www.zoho.com/commerce/api/get-category.html)

---

#### Get Collection

**Method**: `GET` | **LowCodeAPI Path**: `/storefront/api/v1/collections/{collection_id}`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/storefront/api/v1/collections/{collection_id}?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/storefront/api/v1/collections/collection_id?collection_id={collection_id}&api_token={api_token}
```

**Description**: Get Collection

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `collection_id` | string | Yes | Unique ID generated by the server for the collection. This is used as identifier |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X GET "https://api.lowcodeapi.com/zohocommerce/storefront/api/v1/collections/{collection_id}?api_token=YOUR_API_TOKEN"
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Get Collection](https://www.zoho.com/commerce/api/get-collection.html)

---

#### Search Product

**Method**: `GET` | **LowCodeAPI Path**: `/storefront/api/v1/search-products`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/storefront/api/v1/search-products?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/storefront/api/v1/search-products?q={q}&api_token={api_token}
```

**Description**: Search Product

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `q` | string | Yes | The query string to be searched for in the store |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X GET "https://api.lowcodeapi.com/zohocommerce/storefront/api/v1/search-products?q=VALUE&api_token=YOUR_API_TOKEN"
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Search Product](https://www.zoho.com/commerce/api/search-product.html)

---

### Category: My Orders

#### Get User Orders

**Method**: `GET` | **LowCodeAPI Path**: `/portaluser/orders`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/portaluser/orders?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/portaluser/orders?filterDate={filterDate}&api_token={api_token}
```

**Description**: Get User Orders

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `filterDate` | string | No | Represents the number of months for which the orders need to be displayed |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X GET "https://api.lowcodeapi.com/zohocommerce/portaluser/orders?filterDate=VALUE&api_token=YOUR_API_TOKEN"
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Get User Orders](https://www.zoho.com/commerce/api/get-user-orders.html)

---

#### Get Order Details

**Method**: `GET` | **LowCodeAPI Path**: `/portaluser/orders/{order_id}`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/portaluser/orders/{order_id}?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/portaluser/orders/order_id?order_id={order_id}&api_token={api_token}
```

**Description**: Get Order Details

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `order_id` | string | Yes | order_id of an order |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X GET "https://api.lowcodeapi.com/zohocommerce/portaluser/orders/{order_id}?api_token=YOUR_API_TOKEN"
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Get Order Details](https://www.zoho.com/commerce/api/get-order-details.html)

---

#### Cancel Order

**Method**: `POST` | **LowCodeAPI Path**: `/portaluser/orders/returns`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/portaluser/orders/returns?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/portaluser/orders/returns?api_token={api_token}
```

**Description**: Cancel Order

**Request Body**:
```json
{
  "line_items": "<array>",
  "reason": "<string>",
  "salesorder_id": "<string>"
}
```

**Request Body Fields**:

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `line_items` | array | Yes | List of line items to be returned |
| `reason` | string | Yes | Reason for returning an item |
| `salesorder_id` | string | Yes | Order ID of line items |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X POST "https://api.lowcodeapi.com/zohocommerce/portaluser/orders/returns?api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key": "value"}'
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Cancel Order](https://www.zoho.com/commerce/api/cancel-order.html)

---

### Category: Payments

#### Mark as Paid

**Method**: `POST` | **LowCodeAPI Path**: `/store/api/v1/salesorders/{salesorders_id}/payments`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/salesorders/{salesorders_id}/payments?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/salesorders/salesorders_id/payments?salesorders_id={salesorders_id}&api_token={api_token}
```

**Description**: Mark as Paid

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `salesorders_id` | string | Yes | Salesorder Id |

**Request Body**:
```json
{
  "amount": "<number>",
  "date": "<string>",
  "payment_mode": "<string>",
  "reference_number": "<string>"
}
```

**Request Body Fields**:

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `amount` | number | Yes | Amount paid in the respective payment |
| `date` | string | Yes | Date on which payment is made. Date Format [yyyy-mm-dd] |
| `description` | string | No | Description about the payment |
| `payment_mode` | string | Yes | Mode through which payment is made. This can be check, cash, credit card, bank transfer, bank remittance, auto transaction, or others. Maximum length = 100 |
| `reference_number` | string | Yes | Reference number generated for the payment. A string of your choice can also be used as the reference number. Maximum length of the reference number = 100 |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X POST "https://api.lowcodeapi.com/zohocommerce/store/api/v1/salesorders/{salesorders_id}/payments?api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key": "value"}'
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Mark as Paid](https://www.zoho.com/commerce/api/mark-as-paid.html)

---

#### Update Payment

**Method**: `PUT` | **LowCodeAPI Path**: `/store/api/v1/salesorders/{order_id}/payments/{payment_id}`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/salesorders/{order_id}/payments/{payment_id}?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/salesorders/order_id/payments/payment_id?order_id={order_id}&payment_id={payment_id}&api_token={api_token}
```

**Description**: Update Payment

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `order_id` | string | Yes | Order Id |
| `payment_id` | string | Yes | Payment Id |

**Request Body**:
```json
{
  "amount": "<number>",
  "date": "<string>",
  "payment_mode": "<string>",
  "reference_number": "<string>"
}
```

**Request Body Fields**:

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `amount` | number | Yes | Amount paid in the respective payment |
| `date` | string | Yes | Date on which payment is made. Date Format [yyyy-mm-dd] |
| `description` | string | No | Description about the payment |
| `payment_mode` | string | Yes | Mode through which payment is made. This can be check, cash, credit card, bank transfer, bank remittance, auto transaction, or others. Maximum length = 100 |
| `reference_number` | string | Yes | Reference number generated for the payment. A string of your choice can also be used as the reference number. Maximum length of the reference number = 100 |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X PUT "https://api.lowcodeapi.com/zohocommerce/store/api/v1/salesorders/{order_id}/payments/{payment_id}?api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key": "value"}'
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Update Payment](https://www.zoho.com/commerce/api/update-payment.html)

---

#### Refund Payment

**Method**: `POST` | **LowCodeAPI Path**: `/store/api/v1/salesorders/{salesorder_id}/refund`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/salesorders/{salesorder_id}/refund?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/salesorders/salesorder_id/refund?salesorder_id={salesorder_id}&api_token={api_token}
```

**Description**: Refund Payment

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `salesorder_id` | string | Yes | Salesorder Id |

**Request Body**:
```json
{
  "amount": "<number>"
}
```

**Request Body Fields**:

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `amount` | number | Yes | Amount to be refunded |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X POST "https://api.lowcodeapi.com/zohocommerce/store/api/v1/salesorders/{salesorder_id}/refund?api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key": "value"}'
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Refund Payment](https://www.zoho.com/commerce/api/refund-payment.html)

---

### Category: Portal

#### Get Signup Fields

**Method**: `GET` | **LowCodeAPI Path**: `/portaluser/signupfields`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/portaluser/signupfields?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/portaluser/signupfields?api_token={api_token}
```

**Description**: Get Signup Fields

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X GET "https://api.lowcodeapi.com/zohocommerce/portaluser/signupfields?api_token=YOUR_API_TOKEN"
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Get Signup Fields](https://www.zoho.com/commerce/api/get-signup-fields.html)

---

#### Signout

**Method**: `GET` | **LowCodeAPI Path**: `/signout`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/signout?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/signout?api_token={api_token}
```

**Description**: Signout

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X GET "https://api.lowcodeapi.com/zohocommerce/signout?api_token=YOUR_API_TOKEN"
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Signout](https://www.zoho.com/commerce/api/signout.html)

---

#### Get Current User

**Method**: `GET` | **LowCodeAPI Path**: `/portaluser/getCurrentPortalUser`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/portaluser/getCurrentPortalUser?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/portaluser/getcurrentportaluser?api_token={api_token}
```

**Description**: Get Current User

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X GET "https://api.lowcodeapi.com/zohocommerce/portaluser/getCurrentPortalUser?api_token=YOUR_API_TOKEN"
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Get Current User](https://www.zoho.com/commerce/api/get-current-user.html)

---

### Category: Products

#### List All Products

**Method**: `GET` | **LowCodeAPI Path**: `/store/api/v1/products`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/products?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/products?filter_by={filter_by}&page_start_from={page_start_from}&per_page={per_page}&sort_column={sort_column}&sort_order={sort_order}&api_token={api_token}
```

**Description**: List All Products

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `filter_by` | string | No | Allowed Values : Status.All, Status.Active, Status.Inactive, ItemType.All, ItemType.Inventory, ItemType.NonInventory |
| `page_start_from` | number | No | Allowed Values : 1 to n |
| `per_page` | number | No | Allowed Values : 10,25,50,100,200 |
| `sort_column` | string | No | Allowed Values : name, created_time, last_modified_time, min_rate, max_rate |
| `sort_order` | string | No | Allowed Values : A ,D |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X GET "https://api.lowcodeapi.com/zohocommerce/store/api/v1/products?filter_by=VALUE&page_start_from=VALUE&per_page=VALUE&sort_column=VALUE&sort_order=VALUE&api_token=YOUR_API_TOKEN"
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [List All Products](https://www.zoho.com/commerce/api/list-all-products.html)

---

#### Create a Product with Variant

**Method**: `POST` | **LowCodeAPI Path**: `/store/api/v1/products`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/products?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/products?api_token={api_token}
```

**Description**: Create a Product with Variant

**Request Body**:
```json
{
  "name": "<string>",
  "url": "<string>",
  "variants": "<array>"
}
```

**Request Body Fields**:

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `attribute_name1` | string | No | Give attribute name for the product |
| `attribute_name2` | string | No | Give attribute name for the product |
| `attribute_name3` | string | No | Give attribute name for the product |
| `attribute_option_data1` | string | No | Give color code for the correspoding attributes. This field is only needed when you give attribute_type as colour.For Eg: If attribute_type2 is Colour then give corresponding color code value in attribute_option_data2 |
| `attribute_option_data2` | string | No | Give color code for the correspoding attributes. This field is only needed when you give attribute_type as colour.For Eg: If attribute_type2 is Colour then give corresponding color code value in attribute_option_data2 |
| `attribute_option_data3` | string | No | Give color code for the correspoding attributes. This field is only needed when you give attribute_type as colour.For Eg: If attribute_type2 is Colour then give corresponding color code value in attribute_option_data2 |
| `attribute_option_name1` | string | No | Give attribute values for the corresponding attributes. For Eg: If attribute_name1 is SIZE then give attribute_option_name1 (eg: large,medium,..etc) with the corresponding values |
| `attribute_option_name2` | string | No | Give attribute values for the corresponding attributes. For Eg: If attribute_name1 is SIZE then give attribute_option_name1 (eg: large,medium,..etc) with the corresponding values |
| `attribute_option_name3` | string | No | Give attribute values for the corresponding attributes. For Eg: If attribute_name1 is SIZE then give attribute_option_name1 (eg: large,medium,..etc) with the corresponding values |
| `attribute_type1` | string | No | Two possible values are Text (default value) or Color |
| `attribute_type2` | string | No | Two possible values are Text (default value) or Color |
| `attribute_type3` | string | No | Two possible values are Text (default value) or Color |
| `avatax_tax_code` | string | No | Give Avalara tax code for the variant. For US Only |
| `brand` | string | No | Give the brand name for the product |
| `category_id` | number | No | Give the unique category_id to map the category |
| `custom_fields` | array | No | Give set of customfield_id and value for the variant |
| `customfield_id` | number | No | Give unique cusomfield id to denote the label |
| `ean` | string | No | Give EAN for the variant |
| `height` | string | No | Give the package height |
| `hsn_or_sac` | string | No | Give HSN or SAC for the variant. For India Only |
| `initial_stock` | string | No | This field is MANDATORY if you pass variant_type as 'inventory' |
| `is_featured` | boolean | No | Enable this if product is on sale |
| `is_returnable` | boolean | No | Enable this if product can be returned by the customers |
| `isbn` | string | No | Give ISBN for the variant |
| `label_rate` | string | No | Give retail price of the variant |
| `length` | string | No | Give the package length |
| `name` | string | Yes | Name of the product |
| `package_details` | array | No | Give package details such as weight, width, height and length. This is used to calcuate shipping charges at the time of checkout |
| `part_number` | string | No | Give MPN for the variant |
| `product_description` | string | No | Detailed description of the product |
| `product_short_description` | string | No | Concise description of the product |
| `rate` | string | No | Give selling price of the variant |
| `reorder_level` | string | No | Low stock limit for the variant below which will trigger an email remainder |
| `seo_description` | string | No | Give SEO description for the product |
| `seo_keyword` | string | No | Give SEO keywords for the product |
| `seo_title` | string | No | Give title for SEO |
| `show_in_storefront` | boolean | No | When enabled, this shows the product in store |
| `sku` | string | No | Give SKU for the variant |
| `specification_id` | number | No | Give unique specification id that denotes the label |
| `specification_value_id` | number | No | Denotes the value for the particular label |
| `specifications` | array | No | Give set of specification_id and specification_value_id |
| `specificationset_id` | number | No | Give unique specification set ID to give specification details for the product |
| `tags` | array | No | Give the list of tags for the product |
| `upc` | string | No | Give UPC for the variant |
| `url` | string | Yes | URL of the product |
| `value` | string | No | Give corresponding values for the label |
| `variant_type` | string | No | Give variant_type as 'inventory' |
| `variants` | array | Yes | Give list of all the variants for the product |
| `weight` | string | No | Give the package weight |
| `width` | string | No | Give the package width |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X POST "https://api.lowcodeapi.com/zohocommerce/store/api/v1/products?api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key": "value"}'
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Create a Product with Variant](https://www.zoho.com/commerce/api/create-a-product-with-variant.html)

---

#### Product Details

**Method**: `GET` | **LowCodeAPI Path**: `/store/api/v1/products/editpage`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/products/editpage?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/products/editpage?product_id={product_id}&api_token={api_token}
```

**Description**: Product Details

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `product_id` | string | Yes | Give unique product id to get the details |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X GET "https://api.lowcodeapi.com/zohocommerce/store/api/v1/products/editpage?product_id=VALUE&api_token=YOUR_API_TOKEN"
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Product Details](https://www.zoho.com/commerce/api/product-details.html)

---

#### Update a Product

**Method**: `PUT` | **LowCodeAPI Path**: `/store/api/v1/products`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/products?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/products?api_token={api_token}
```

**Description**: Update a Product

**Request Body**:
```json
{
  "key": "value"
}
```

**Request Body Fields**:

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `attribute_name1` | string | No | Give attribute name for the product. You can add a maximum of 3 attributes |
| `attribute_name2` | string | No | Give attribute name for the product. You can add a maximum of 3 attributes |
| `attribute_name3` | string | No | Give attribute name for the product. You can add a maximum of 3 attributes |
| `attribute_option_data1` | string | No | Give color code for the corresponding attributes. This field is only needed when you give attribute_type as Colour. For example, if attribute_type2 is Colour then give the corresponding color code value in attribute_option_data2 |
| `attribute_option_data2` | string | No | Give color code for the corresponding attributes. This field is only needed when you give attribute_type as Colour. For example, if attribute_type2 is Colour then give the corresponding color code value in attribute_option_data2 |
| `attribute_option_data3` | string | No | Give color code for the corresponding attributes. This field is only needed when you give attribute_type as Colour. For example, if attribute_type3 is Colour then give the corresponding color code value in attribute_option_data3 |
| `attribute_option_name1` | string | No | Give attribute values for the corresponding attributes. For example, if attribute_name1 is SIZE then give attribute_option_name1 (e.g., large, medium, etc.) with the corresponding values |
| `attribute_option_name2` | string | No | Give attribute values for the corresponding attributes. For example, if attribute_name2 is SIZE then give attribute_option_name2 (e.g., large, medium, etc.) with the corresponding values |
| `attribute_option_name3` | string | No | Give attribute values for the corresponding attributes. For example, if attribute_name3 is SIZE then give attribute_option_name3 (e.g., large, medium, etc.) with the corresponding values |
| `attribute_type1` | string | No | Give attribute type corresponding to the attribute name given. Two possible values are Text (default value) or Colour |
| `attribute_type2` | string | No | Give attribute type corresponding to the attribute name given. Two possible values are Text (default value) or Colour |
| `attribute_type3` | string | No | Give attribute type corresponding to the attribute name given. Two possible values are Text (default value) or Colour |
| `avatax_tax_code` | string | No | Give Avalara tax code for the variant. For US only |
| `brand` | string | No | Give the brand name for the product |
| `category_id` | number | No | Give the unique category_id to map the category |
| `custom_fields` | array | No | Give a set of custom_field values for the variant |
| `customfield_id` | number | No | Give a unique custom field id to denote the label |
| `document_ids` | array | No | Give a set of document_id of the images to map with variants |
| `ean` | string | No | Give EAN for the variant |
| `height` | string | No | Give the package height |
| `hsn_or_sac` | string | No | Give HSN or SAC for the variant. For India only |
| `initial_stock` | string | No | Give the stock count for the variant. This field is MANDATORY if you pass variant_type as 'inventory' |
| `is_featured` | boolean | No | Enable this if the product is on sale |
| `is_returnable` | boolean | No | Enable this if the product can be returned by the customers |
| `isbn` | string | No | Give ISBN for the variant |
| `label_rate` | string | No | Give the retail price of the variant |
| `length` | string | No | Give the package length |
| `name` | string | No | Name of the product |
| `package_details` | array | No | Give package details such as weight, width, height, and length. This is used to calculate shipping charges at the time of checkout |
| `page_layout_id` | number | No | Give a unique page layout id corresponding to custom field details pertaining to a specific product |
| `part_number` | string | No | Give MPN for the variant |
| `product_description` | string | No | Detailed description of the product |
| `product_short_description` | string | No | Concise description of the product |
| `rate` | string | No | Give the selling price of the variant |
| `reorder_level` | string | No | Low stock limit for the variant below which will trigger an email reminder |
| `seo_description` | string | No | Give SEO description for the product |
| `seo_keyword` | string | No | Give SEO keywords for the product |
| `seo_title` | string | No | Give title for SEO |
| `show_in_storefront` | boolean | No | When enabled, this shows the product in store |
| `sku` | string | No | Give SKU for the variant |
| `specification_id` | number | No | Give a unique specification id that denotes the label |
| `specification_value_id` | number | No | Give a unique specification value id that denotes the value for the particular label |
| `specifications` | array | No | Give a set of specification_id and specification_value_id |
| `specificationset_id` | number | No | Give a unique specification set ID to give specification details for the product |
| `tags` | array | No | Give the list of tags for the product |
| `upc` | string | No | Give UPC for the variant |
| `url` | string | No | URL of the product |
| `value` | string | No | Give corresponding values for the label |
| `variant_type` | string | No | Give variant_type as 'inventory' to track inventory stock for the product |
| `variants` | array | No | Give a list of all the variants for the product |
| `weight` | string | No | Give the package weight |
| `width` | string | No | Give the package width |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X PUT "https://api.lowcodeapi.com/zohocommerce/store/api/v1/products?api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key": "value"}'
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Update a Product](https://www.zoho.com/commerce/api/update-a-product.html)

---

#### Delete a List of Products

**Method**: `DELETE` | **LowCodeAPI Path**: `/store/api/v1/products`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/products?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/products?is_deletedInfoNeeded={is_deletedInfoNeeded}&product_ids={product_ids}&api_token={api_token}
```

**Description**: Delete a List of Products

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `is_deletedInfoNeeded` | string | No | To get the detail of the product |
| `product_ids` | string | Yes | Give list of product_ids with comma separated |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X DELETE "https://api.lowcodeapi.com/zohocommerce/store/api/v1/products?api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key": "value"}'
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Delete a List of Products](https://www.zoho.com/commerce/api/delete-a-list-of-products.html)

---

#### Add Product Images

**Method**: `POST` | **LowCodeAPI Path**: `/store/api/v1/products/images`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/products/images?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/products/images?api_token={api_token}
```

**Description**: Add Product Images

**Request Body**:
```json
{
  "image": "<file>"
}
```

**Request Body Fields**:

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `image` | file | Yes | Binary of the image |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X POST "https://api.lowcodeapi.com/zohocommerce/store/api/v1/products/images?api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key": "value"}'
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Add Product Images](https://www.zoho.com/commerce/api/add-product-images.html)

---

#### Re-order Product Images

**Method**: `POST` | **LowCodeAPI Path**: `/store/api/v1/products/images/reorder`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/products/images/reorder?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/products/images/reorder?api_token={api_token}
```

**Description**: Re-order Product Images

**Request Body**:
```json
{
  "document_id": "<string>",
  "documents": "<array>",
  "order": "<number>"
}
```

**Request Body Fields**:

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `document_id` | string | Yes | Give document_id of the image obtained from product data |
| `documents` | array | Yes | Give set of document_id and order to reorder the images |
| `order` | number | Yes | Give the order number of the particular image |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X POST "https://api.lowcodeapi.com/zohocommerce/store/api/v1/products/images/reorder?api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key": "value"}'
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Re-order Product Images](https://www.zoho.com/commerce/api/reorder-product-images.html)

---

#### Delete Product Image

**Method**: `DELETE` | **LowCodeAPI Path**: `/store/api/v1/products/documents`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/products/documents?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/products/documents?api_token={api_token}
```

**Description**: Delete Product Image

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X DELETE "https://api.lowcodeapi.com/zohocommerce/store/api/v1/products/documents?api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key": "value"}'
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Delete Product Image](https://www.zoho.com/commerce/api/delete-product-image.html)

---

#### Export Products

**Method**: `GET` | **LowCodeAPI Path**: `/store/api/v1/export`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/export?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/export?accept={accept}&entity={entity}&export_limit={export_limit}&export_start_id={export_start_id}&export_start_index={export_start_index}&from_date={from_date}&to_date={to_date}&api_token={api_token}
```

**Description**: Export Products

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `accept` | string | Yes | Give format for the export file. Possible values are csv/xls |
| `entity` | string | Yes | Give entity type of the export. Only possible value is 'itemgroup' |
| `export_limit` | string | No | Give export limit. Should be less than 25,000 |
| `export_start_id` | string | No | Entity that have IDs greater to this start id will be fetched with limit |
| `export_start_index` | string | No | Offset row number: this will start exporting from nth row of export entity |
| `from_date` | string | No | Give from date for the export. Format: yyyy-mm-dd |
| `to_date` | string | No | Give to_date for the export. Format: yyyy-mm-dd |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X GET "https://api.lowcodeapi.com/zohocommerce/store/api/v1/export?accept=VALUE&entity=VALUE&export_limit=VALUE&export_start_id=VALUE&export_start_index=VALUE&from_date=VALUE&to_date=VALUE&api_token=YOUR_API_TOKEN"
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Export Products](https://www.zoho.com/commerce/api/export-products.html)

---

### Category: Sales Orders

#### List All Sales Orders

**Method**: `GET` | **LowCodeAPI Path**: `/store/api/v1/salesorders`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/salesorders?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/salesorders?filter_by={filter_by}&page={page}&per_page={per_page}&sort_column={sort_column}&sort_order={sort_order}&api_token={api_token}
```

**Description**: List All Sales Orders

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `filter_by` | string | No | Status filter. Options: All, Draft, Confirmed, ToBePacked, ToBeShipped, Shipped, ToBeInvoiced, Closed, Void |
| `page` | number | No | Page number. Should be a positive integer |
| `per_page` | number | No | Items per page. Options: 10, 25, 50, 100, 200 |
| `sort_column` | string | No | Column to sort by. Options: customer_name, salesorder_number, date, shipment_date, total, bcy_total, created_time, last_modified_time |
| `sort_order` | string | No | Sort order. Options: A (ascending), D (descending) |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X GET "https://api.lowcodeapi.com/zohocommerce/store/api/v1/salesorders?filter_by=VALUE&page=VALUE&per_page=VALUE&sort_column=VALUE&sort_order=VALUE&api_token=YOUR_API_TOKEN"
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [List All Sales Orders](https://www.zoho.com/commerce/api/list-all-sales-orders.html)

---

#### Retrieve a Sales Order

**Method**: `GET` | **LowCodeAPI Path**: `/store/api/v1/salesorders/{order_id}`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/salesorders/{order_id}?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/salesorders/order_id?order_id={order_id}&api_token={api_token}
```

**Description**: Retrieve a Sales Order

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `order_id` | string | Yes | Order Id |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X GET "https://api.lowcodeapi.com/zohocommerce/store/api/v1/salesorders/{order_id}?api_token=YOUR_API_TOKEN"
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Retrieve a Sales Order](https://www.zoho.com/commerce/api/retrieve-sales-order.html)

---

#### Update Status

**Method**: `POST` | **LowCodeAPI Path**: `/store/api/v1/salesorders/{salesorder_id}/status/{status}`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/salesorders/{salesorder_id}/status/{status}?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/salesorders/salesorder_id/status/status?salesorder_id={salesorder_id}&status={status}&api_token={api_token}
```

**Description**: Update Status

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `salesorder_id` | string | Yes | Salesorder Id |
| `status` | string | Yes | Satus |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X POST "https://api.lowcodeapi.com/zohocommerce/store/api/v1/salesorders/{salesorder_id}/status/{status}?api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key": "value"}'
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Update Status](https://www.zoho.com/commerce/api/update-status.html)

---

#### Add Comments

**Method**: `POST` | **LowCodeAPI Path**: `/store/api/v1/salesorders/{salesorder_id}/comments`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/salesorders/{salesorder_id}/comments?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/salesorders/salesorder_id/comments?salesorder_id={salesorder_id}&api_token={api_token}
```

**Description**: Add Comments

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `salesorder_id` | string | Yes | Salesorder Id |

**Request Body**:
```json
{
  "description": "<string>",
  "transaction_type": "<string>"
}
```

**Request Body Fields**:

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `description` | string | Yes | The comment to be added |
| `mail_to_customer` | boolean | No | Boolean to determine whether it has to be mailed to the customer |
| `show_comment_to_client` | boolean | No | Boolean to determine whether the comment needs to be shown to client |
| `transaction_type` | string | Yes | Allowed values: salesorder, customer_payment, shipment_order, contact, none |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X POST "https://api.lowcodeapi.com/zohocommerce/store/api/v1/salesorders/{salesorder_id}/comments?api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key": "value"}'
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Add Comments](https://www.zoho.com/commerce/api/add-comments.html)

---

#### Update Address

**Method**: `PUT` | **LowCodeAPI Path**: `/store/api/v1/salesorders/{order_id}/address/{address_type}`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/salesorders/{order_id}/address/{address_type}?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/salesorders/order_id/address/address_type?address_type={address_type}&order_id={order_id}&api_token={api_token}
```

**Description**: Update Address

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `address_type` | string | Yes | Address Type |
| `order_id` | string | Yes | Order Id |

**Request Body**:
```json
{
  "address": "<string>",
  "attention": "<string>",
  "city": "<string>",
  "country": "<string>",
  "phone": "<string>",
  "state": "<string>",
  "zip": "<string>"
}
```

**Request Body Fields**:

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `address` | string | Yes | Name of the street of the customer's billing address |
| `attention` | string | Yes | Name of the person, whose attention is required |
| `city` | string | Yes | Name of the city of the customer's billing address |
| `country` | string | Yes | Name of the country of the customer's billing address |
| `fax` | string | No | Fax number of the customer's billing address |
| `phone` | string | Yes | Phone number of the customer |
| `state` | string | Yes | Name of the state of the customer's billing address |
| `zip` | string | Yes | ZIP code of the customer's billing address |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X PUT "https://api.lowcodeapi.com/zohocommerce/store/api/v1/salesorders/{order_id}/address/{address_type}?api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key": "value"}'
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Update Address](https://www.zoho.com/commerce/api/update-address.html)

---

### Category: Sales Return

#### Create a Sales Return

**Method**: `POST` | **LowCodeAPI Path**: `/store/api/v1/salesreturns`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/salesreturns?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/salesreturns?salesorder_id={salesorder_id}&api_token={api_token}
```

**Description**: Create a Sales Return

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `salesorder_id` | number | No | Unique ID generated by the server for the sales order. This is used as identifier. |

**Request Body**:
```json
{
  "line_items": "<array>",
  "quantity": "<number>",
  "salesorder_item_id": "<number>"
}
```

**Request Body Fields**:

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `line_items` | array | Yes | List of items in a package. Each line item contains salesorder_item_id, item_id, and quantity |
| `quantity` | number | Yes | Quantity of the item to be returned |
| `salesorder_item_id` | number | Yes | Unique ID generated by the server for each line item. This is used as an identifier |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X POST "https://api.lowcodeapi.com/zohocommerce/store/api/v1/salesreturns?api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key": "value"}'
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Create a Sales Return](https://www.zoho.com/commerce/api/create-a-sales-order.html)

---

#### Change Status

**Method**: `POST` | **LowCodeAPI Path**: `/store/api/v1/salesreturns/{salesreturn_id}/status/{salesreturn_status}`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/salesreturns/{salesreturn_id}/status/{salesreturn_status}?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/salesreturns/salesreturn_id/status/salesreturn_status?salesreturn_id={salesreturn_id}&salesreturn_status={salesreturn_status}&api_token={api_token}
```

**Description**: Change Status

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `salesreturn_id` | number | Yes | Unique ID generated by the server for the sales return. This is used as identifier |
| `salesreturn_status` | string | Yes | The current status of the sales return |

**Request Body**:
```json
{
  "key": "value"
}
```

**Request Body Fields**:

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `line_items` | array | No | List of items in a package. Each line item contains salesorder_item_id, item_id, and quantity |
| `refund_status` | string | No | The current status of the refund |
| `shipped_status` | string | No | The current status of the package |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X POST "https://api.lowcodeapi.com/zohocommerce/store/api/v1/salesreturns/{salesreturn_id}/status/{salesreturn_status}?api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key": "value"}'
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Change Status](https://www.zoho.com/commerce/api/change-status.html)

---

#### Refund a Sales Return

**Method**: `POST` | **LowCodeAPI Path**: `/store/api/v1/salesreturn/{salesreturn_id}/refund`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/salesreturn/{salesreturn_id}/refund?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/salesreturn/salesreturn_id/refund?salesreturn_id={salesreturn_id}&api_token={api_token}
```

**Description**: Refund a Sales Return

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `salesreturn_id` | number | Yes | Unique ID generated by the server for the sales return. This is used as identifier |

**Request Body**:
```json
{
  "amount": "<number>",
  "line_items": "<array>"
}
```

**Request Body Fields**:

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `amount` | number | Yes | Amount to be refunded |
| `is_returned_to_stock` | boolean | No | Add product to stock. Allowed values are true and false. |
| `line_items` | array | Yes | List of items in a package. Each line item contains salesorder_item_id, item_id, and quantity |
| `quantity` | number | No | Quantity of the item to be returned |
| `salesreturn_item_id` | number | No | Unique ID generated by the server for the sales return. This is used as identifier |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X POST "https://api.lowcodeapi.com/zohocommerce/store/api/v1/salesreturn/{salesreturn_id}/refund?api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key": "value"}'
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Refund a Sales Return](https://www.zoho.com/commerce/api/refund-sales-return.html)

---

### Category: Shipment Orders

#### Mark as Delivered

**Method**: `POST` | **LowCodeAPI Path**: `/{endpoint}/store/api/v1/salesorders/{order_id}/shipmentorders/delivered`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/{endpoint}/store/api/v1/salesorders/{order_id}/shipmentorders/delivered?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/salesorders/order_id/shipmentorders/delivered?order_id={order_id}&api_token={api_token}
```

**Description**: Mark as Delivered

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `order_id` | string | Yes | Order Id |

**Request Body**:
```json
{
  "delivery_date": "<string>"
}
```

**Request Body Fields**:

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `delivery_date` | string | Yes | Date of delivery of the product |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X POST "https://api.lowcodeapi.com/zohocommerce/{endpoint}/store/api/v1/salesorders/{order_id}/shipmentorders/delivered?api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key": "value"}'
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Mark as Delivered](https://www.zoho.com/commerce/api/mark-as-delivered.html)

---

#### Mark as Shipped

**Method**: `POST` | **LowCodeAPI Path**: `/store/api/v1/salesorders/{order_id}/shipmentorders/shipped`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/salesorders/{order_id}/shipmentorders/shipped?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/salesorders/order_id/shipmentorders/shipped?order_id={order_id}&api_token={api_token}
```

**Description**: Mark as Shipped

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `order_id` | string | Yes | Order Id |

**Request Body**:
```json
{
  "carrier": "<string>",
  "shipment_date": "<string>",
  "tracking_number": "<string>"
}
```

**Request Body Fields**:

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `carrier` | string | Yes | Carrier used for shipment |
| `service` | string | No | Type of service selected for shipment |
| `shipment_date` | string | Yes | Shipment date of the sales order |
| `tracking_number` | string | Yes | Tracking number of shipment |
| `tracking_url` | string | No | The tracking URL of the shipment |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X POST "https://api.lowcodeapi.com/zohocommerce/store/api/v1/salesorders/{order_id}/shipmentorders/shipped?api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key": "value"}'
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Mark as Shipped](https://www.zoho.com/commerce/api/mark-as-shipped.html)

---

#### Update a Shipment Order

**Method**: `PUT` | **LowCodeAPI Path**: `/store/api/v1/salesorders/{salesorder_id}/shipmentorders`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/salesorders/{salesorder_id}/shipmentorders?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/salesorders/salesorder_id/shipmentorders?salesorder_id={salesorder_id}&api_token={api_token}
```

**Description**: Update a Shipment Order

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `salesorder_id` | string | Yes | Salesorder Id |

**Request Body**:
```json
{
  "carrier": "<string>",
  "salesorder_id": "<string>",
  "shipment_date": "<string>",
  "tracking_number": "<string>"
}
```

**Request Body Fields**:

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `carrier` | string | Yes | Carrier used for shipment |
| `salesorder_id` | string | Yes | Unique ID generated by the server for the sales order. This is used as identifier |
| `service` | string | No | Type of service selected for shipment |
| `shipment_date` | string | Yes | Shipment date of the sales order |
| `tracking_number` | string | Yes | Tracking number of shipment |
| `tracking_url` | string | No | The tracking URL of the shipment |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X PUT "https://api.lowcodeapi.com/zohocommerce/store/api/v1/salesorders/{salesorder_id}/shipmentorders?api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key": "value"}'
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Update a Shipment Order](https://www.zoho.com/commerce/api/update-shipment-order.html)

---

### Category: Taxes

#### Create a Tax

**Method**: `POST` | **LowCodeAPI Path**: `/store/api/v1/settings/taxrules`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/settings/taxrules?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/settings/taxrules?api_token={api_token}
```

**Description**: Create a Tax

**Request Body**:
```json
{
  "country_code": "<string>",
  "tax_name": "<string>",
  "tax_percentage": "<number>",
  "tax_type": "<string>"
}
```

**Request Body Fields**:

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `country_code` | string | Yes | Two-letter country code to which the tax belongs |
| `tax_name` | string | Yes | Name of the tax to be created |
| `tax_percentage` | number | Yes | Number of percentage taxable |
| `tax_specific_type` | string | No | Type of tax For Indian Edition. Allowed values: IGST, SGST, NIL, CESS. |
| `tax_type` | string | Yes | Type to determine whether it is a simple or compound tax. Allowed values: tax and compound_tax |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X POST "https://api.lowcodeapi.com/zohocommerce/store/api/v1/settings/taxrules?api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key": "value"}'
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Create a Tax](https://www.zoho.com/commerce/api/create-tax.html)

---

#### Update a Tax

**Method**: `PUT` | **LowCodeAPI Path**: `/store/api/v1/settings/taxrules/{tax_id}`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/settings/taxrules/{tax_id}?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/settings/taxrules/tax_id?tax_id={tax_id}&api_token={api_token}
```

**Description**: Update a Tax

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `tax_id` | string | Yes | Tax Id |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X PUT "https://api.lowcodeapi.com/zohocommerce/store/api/v1/settings/taxrules/{tax_id}?api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key": "value"}'
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Update a Tax](https://www.zoho.com/commerce/api/update-tax.html)

---

#### Delete a Tax

**Method**: `DELETE` | **LowCodeAPI Path**: `/store/api/v1/settings/taxrules/{tax_id}`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/settings/taxrules/{tax_id}?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/settings/taxrules/tax_id?tax_id={tax_id}&api_token={api_token}
```

**Description**: Delete a Tax

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `tax_id` | string | Yes | Tax Id |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X DELETE "https://api.lowcodeapi.com/zohocommerce/store/api/v1/settings/taxrules/{tax_id}?api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key": "value"}'
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Delete a Tax](https://www.zoho.com/commerce/api/delete-tax.html)

---

#### List Taxes

**Method**: `GET` | **LowCodeAPI Path**: `/store/api/v1/settings/taxrules`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/settings/taxrules?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/settings/taxrules?api_token={api_token}
```

**Description**: List Taxes

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X GET "https://api.lowcodeapi.com/zohocommerce/store/api/v1/settings/taxrules?api_token=YOUR_API_TOKEN"
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [List Taxes](https://www.zoho.com/commerce/api/list-taxes.html)

---

#### Update Tax Preferences

**Method**: `PUT` | **LowCodeAPI Path**: `/store/api/v1/settings/taxpreferences`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/settings/taxpreferences?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/settings/taxpreferences?api_token={api_token}
```

**Description**: Update Tax Preferences

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X PUT "https://api.lowcodeapi.com/zohocommerce/store/api/v1/settings/taxpreferences?api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key": "value"}'
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Update Tax Preferences](https://www.zoho.com/commerce/api/update-tax-preferences.html)

---

#### Get Tax Preferences

**Method**: `GET` | **LowCodeAPI Path**: `/store/api/v1/settings/taxpreferences`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/settings/taxpreferences?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/settings/taxpreferences?api_token={api_token}
```

**Description**: Get Tax Preferences

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X GET "https://api.lowcodeapi.com/zohocommerce/store/api/v1/settings/taxpreferences?api_token=YOUR_API_TOKEN"
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Get Tax Preferences](https://www.zoho.com/commerce/api/get-tax-preferences.html)

---

### Category: Variants

#### List All Variants

**Method**: `GET` | **LowCodeAPI Path**: `/store/api/v1/variants`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/variants?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/variants?item_type={item_type}&page={page}&per_page={per_page}&sort_column={sort_column}&sort_order={sort_order}&status={status}&variant_ids={variant_ids}&api_token={api_token}
```

**Description**: List All Variants

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `item_type` | string | No | ItemType.Inventory, ItemType.NonInventory |
| `page` | number | No | 1 to n |
| `per_page` | number | No | 10, 25, 50, 100, 200 |
| `sort_column` | string | No | name, last_modified_time, actual_available_stock |
| `sort_order` | string | No | A, D |
| `status` | string | No | active, inactive |
| `variant_ids` | number | No | list of unique variant ids separated by comma to get specific variant details. Limit : 50 |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X GET "https://api.lowcodeapi.com/zohocommerce/store/api/v1/variants?item_type=VALUE&page=VALUE&per_page=VALUE&sort_column=VALUE&sort_order=VALUE&status=VALUE&variant_ids=VALUE&api_token=YOUR_API_TOKEN"
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [List All Variants](https://www.zoho.com/commerce/api/list-all-variants.html)

---

#### Create a Variant

**Method**: `POST` | **LowCodeAPI Path**: `/store/api/v1/variants`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/variants?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/variants?api_token={api_token}
```

**Description**: Create a Variant

**Request Body**:
```json
{
  "rate": "<string>"
}
```

**Request Body Fields**:

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `attribute_option_data1` | string | No | Give color code for the corresponding attributes. This field is only needed when you give attribute_type as Colour. For example, if attribute_type2 is Colour then give the corresponding color code value in attribute_option_data2 |
| `attribute_option_data2` | string | No | Give color code for the corresponding attributes. This field is only needed when you give attribute_type as Colour. For example, if attribute_type2 is Colour then give the corresponding color code value in attribute_option_data2 |
| `attribute_option_data3` | string | No | Give color code for the corresponding attributes. This field is only needed when you give attribute_type as Colour. For example, if attribute_type3 is Colour then give the corresponding color code value in attribute_option_data3 |
| `attribute_option_name1` | string | No | Give attribute values for the corresponding attributes. For example, if attribute_name1 is SIZE then give attribute_option_name1 (e.g., large, medium, etc.) with the corresponding values |
| `attribute_option_name2` | string | No | Give attribute values for the corresponding attributes. For example, if attribute_name2 is SIZE then give attribute_option_name2 (e.g., large, medium, etc.) with the corresponding values |
| `attribute_option_name3` | string | No | Give attribute values for the corresponding attributes. For example, if attribute_name3 is SIZE then give attribute_option_name3 (e.g., large, medium, etc.) with the corresponding values |
| `avatax_tax_code` | string | No | Give Avalara tax code for the variant. For US only |
| `custom_fields` | array | No | Give set of custom_field values for the variant |
| `customfield_id` | number | No | Give unique customfield id to denote the label |
| `document_ids` | array | No | Give set of document_id of the images to map with variants |
| `ean` | string | No | Give EAN for the variant |
| `height` | string | No | Give the package height |
| `hsn_or_sac` | string | No | Give HSN or SAC for the variant. For India only |
| `initial_stock` | string | No | Give stock count for the variant. This field is MANDATORY if you pass variant_type as 'inventory' |
| `isbn` | string | No | Give ISBN for the variant |
| `label_rate` | string | No | Give retail price of the variant |
| `length` | string | No | Give the package length |
| `package_details` | array | No | Give package details such as weight, width, height, and length. This is used to calculate shipping charges at the time of checkout |
| `part_number` | string | No | Give MPN for the variant |
| `product_id` | string | No | Give product id of the product to which variant needs to be added |
| `rate` | string | Yes | Give selling price of the variant |
| `reorder_level` | string | No | Low stock limit for the variant below which will trigger an email remainder |
| `sku` | string | No | Give SKU for the variant |
| `upc` | string | No | Give UPC for the variant |
| `value` | string | No | Give corresponding values for the label |
| `weight` | string | No | Give the package weight |
| `width` | string | No | Give the package width |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X POST "https://api.lowcodeapi.com/zohocommerce/store/api/v1/variants?api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key": "value"}'
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Create a Variant](https://www.zoho.com/commerce/api/create-a-variant.html)

---

#### Variant Details

**Method**: `GET` | **LowCodeAPI Path**: `/store/api/v1/variants/{variant_id}`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/variants/{variant_id}?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/variants/variant_id?variant_id={variant_id}&api_token={api_token}
```

**Description**: Variant Details

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `variant_id` | string | Yes | Variant Id |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X GET "https://api.lowcodeapi.com/zohocommerce/store/api/v1/variants/{variant_id}?api_token=YOUR_API_TOKEN"
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Variant Details](https://www.zoho.com/commerce/api/variant-details.html)

---

#### Update a Variant

**Method**: `PUT` | **LowCodeAPI Path**: `/store/api/v1/variants`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/variants?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/variants?api_token={api_token}
```

**Description**: Update a Variant

**Request Body**:
```json
{
  "key": "value"
}
```

**Request Body Fields**:

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `attribute_option_data1` | string | No | Give color code for the corresponding attributes. This field is only needed when you give attribute_type as Colour. For example, if attribute_type2 is Colour then give the corresponding color code value in attribute_option_data2 |
| `attribute_option_data2` | string | No | Give color code for the corresponding attributes. This field is only needed when you give attribute_type as Colour. For example, if attribute_type2 is Colour then give the corresponding color code value in attribute_option_data2 |
| `attribute_option_data3` | string | No | Give color code for the corresponding attributes. This field is only needed when you give attribute_type as Colour. For example, if attribute_type3 is Colour then give the corresponding color code value in attribute_option_data3 |
| `attribute_option_name1` | string | No | Give attribute values for the corresponding attributes. For example, if attribute_name1 is SIZE then give attribute_option_name1 (e.g., large, medium, etc.) with the corresponding values |
| `attribute_option_name2` | string | No | Give attribute values for the corresponding attributes. For example, if attribute_name2 is SIZE then give attribute_option_name2 (e.g., large, medium, etc.) with the corresponding values |
| `attribute_option_name3` | string | No | Give attribute values for the corresponding attributes. For example, if attribute_name3 is SIZE then give attribute_option_name3 (e.g., large, medium, etc.) with the corresponding values |
| `avatax_tax_code` | string | No | Give Avalara tax code for the variant. For US only |
| `custom_fields` | array | No | Give set of custom_field values for the variant |
| `customfield_id` | number | No | Give unique custom field id to denote the label |
| `document_ids` | array | No | Give set of document_id of the images to map with variants |
| `ean` | string | No | Give EAN for the variant |
| `height` | string | No | Give the package height |
| `hsn_or_sac` | string | No | Give HSN or SAC for the variant. For India only |
| `initial_stock` | string | No | Give stock count for the variant. This field is MANDATORY if you pass variant_type as 'inventory'  |
| `isbn` | string | No | Give ISBN for the variant |
| `label_rate` | string | No | Give retail price of the variant |
| `length` | string | No | Give the package length |
| `package_details` | array | No | Give package details such as weight, width, height, and length. This is used to calculate shipping charges at the time of checkout |
| `part_number` | string | No | Give MPN for the variant |
| `rate` | string | No | Give selling price of the variant |
| `reorder_level` | string | No | Low stock limit for the variant below which will trigger an email remainder |
| `sku` | string | No | Give SKU for the variant |
| `status` | string | No | Give status of the variant. Allowed values: active, inactive |
| `upc` | string | No | Give UPC for the variant |
| `value` | string | No | Give corresponding values for the label |
| `weight` | string | No | Give the package weight |
| `width` | string | No | Give the package width |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X PUT "https://api.lowcodeapi.com/zohocommerce/store/api/v1/variants?api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key": "value"}'
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Update a Variant](https://www.zoho.com/commerce/api/update-variant.html)

---

#### Delete a Variant

**Method**: `DELETE` | **LowCodeAPI Path**: `/store/api/v1/variants`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/variants?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohocommerce/store/api/v1/variants?api_token={api_token}
```

**Description**: Delete a Variant

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X DELETE "https://api.lowcodeapi.com/zohocommerce/store/api/v1/variants?api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key": "value"}'
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Delete a Variant](https://www.zoho.com/commerce/api/delete-variant.html)

---

## API Definition Endpoints

You can retrieve the complete OpenAPI specification for this provider using these endpoints:

**New Format (OpenAPI spec with dynamic path parameters):**
```bash
curl -X GET "https://backend.lowcodeapi.com/zohocommerce/openapi"
```

**Old Format (API definition with sanitized paths):**
```bash
curl -X GET "https://backend.lowcodeapi.com/zohocommerce/definition"
```

## Response Format

All responses from LowCodeAPI are wrapped in a `data` key:

```json
{
  "data": {
    // Actual response from provider API
  }
}
```

The `data` key contains the raw response from the provider's API.

## Complete Endpoint Reference

For a complete list of all 78 endpoints, refer to:
- **Official Provider Documentation**: https://www.zoho.com/commerce/api/introduction.html

## Usage Examples

### Example 1: Basic API Request (New Format)

Making a simple request to Zoho Commerce:

```bash
# Replace RESOURCE_ID with an actual resource ID from your Zoho Commerce account
curl -X GET "https://api.lowcodeapi.com/zohocommerce/resource/{RESOURCE_ID}?api_token=YOUR_API_TOKEN"
```

### Example 2: Request with Query Parameters (New Format)

Request with specific parameters:

```bash
# Include query parameters for filtering
curl -X GET "https://api.lowcodeapi.com/zohocommerce/resources?filter=value&api_token=YOUR_API_TOKEN"
```

## Error Handling

Standard HTTP status codes apply. All responses are wrapped in a `data` key:
```json
{
  "data": {
    // Actual response from provider
  }
}
```