# Update a Wholesale Variation

This API allows you to update a wholesale variation

{% tabs %}
{% tab title="Request" %}

| Method | Endpoint                                                                 |
| ------ | ------------------------------------------------------------------------ |
| PUT    | /wp-json/wholesale/v1/products/{variable\_id}/variations/{variation\_id} |

| Path parameters | Required | Type | Description       |
| --------------- | -------- | ---- | ----------------- |
| variable\_id    | yes      | int  | The variable ID.  |
| variation\_id   | yes      | int  | The variation ID. |

| Body Parameters                              | Required | Type  | Description                                                      |
| -------------------------------------------- | -------- | ----- | ---------------------------------------------------------------- |
| wholesale\_price                             | yes      | array | Wholesale prices for each wholesale role.                        |
| wholesale\_visibility\_filter                | no       | array | The wholesale role keys that allowed to see the product.         |
| wholesale\_minimum\_order\_quantity          | no       | array | The "Wholesale Minimum Order Quantity" for each role             |
| wholesale\_order\_quantity\_step             | no       | array | The "Wholesale Order Quantity Step" for each                     |
| wholesale\_quantity\_discount\_rule\_mapping | no       | array | The rules for "Product Quantity Based Wholesale Pricing" option. |

####

#### Extra Properties for wholesale\_quantity\_discount\_rule\_mapping

<table><thead><tr><th>Properties</th><th width="194.33333333333331">Type</th><th>Description</th></tr></thead><tbody><tr><td>wholesale_role</td><td>String</td><td>The wholesale role key</td></tr><tr><td>start_qty</td><td>Number</td><td>The min quantity of the quantity range in order to trigger the wholesale discount.</td></tr><tr><td>end_qty</td><td>Number</td><td>The max quantity of the quantity range in order to trigger the wholesale discount.</td></tr><tr><td>price_type</td><td>String</td><td>Either percent-price or fixed-price</td></tr><tr><td>wholesale_price</td><td>Number</td><td>The wholesale price/discount.</td></tr></tbody></table>
{% endtab %}

{% tab title="Request Example" %}

#### Postman

```javascript
PUT: /wp-json/wholesale/v1/products/{variable_id}/variations/{variation_id}

{
    "regular_price": "29.00",
    "attributes": [
        {
            "id": 1,
            "name": "Color",
            "option": "Red"
        }
    ],
    "wholesale_price": {
        "wholesale_customer": "12",
        "sample_role": "3"
    },
    "wholesale_visibility_filter": "wholesale_customer",
    "wholesale_minimum_order_quantity": {
        "wholesale_customer": "2",
        "sample_role": "3"
    },
    "wholesale_order_quantity_step": {
        "wholesale_customer": "6",
        "sample_role": "7"
    },
    "wholesale_quantity_discount_rule_mapping": [
        {
            "wholesale_role": "wholesale_customer",
            "start_qty": "11",
            "end_qty": "20",
            "price_type": "percent-price",
            "wholesale_price": "20"
        }
    ]
}
```

{% endtab %}

{% tab title="Response Example" %}

#### Status: 200 OK

Updating a wholesale product

```
PUT: /wp-json/wholesale/v1/products/{variable_id}/variations/{variation_id}

JSON Body:
{
    "regular_price": "29.00",
    "attributes": [
        {
            "id": 1,
            "name": "Color",
            "option": "Red"
        }
    ],
    "wholesale_price": {
        "wholesale_customer": "12",
        "sample_role": "3"
    },
    "wholesale_visibility_filter": "wholesale_customer",
    "wholesale_minimum_order_quantity": {
        "wholesale_customer": "2",
        "sample_role": "3"
    },
    "wholesale_order_quantity_step": {
        "wholesale_customer": "6",
        "sample_role": "7"
    },
    "wholesale_quantity_discount_rule_mapping": [
        {
            "wholesale_role": "wholesale_customer",
            "start_qty": "11",
            "end_qty": "20",
            "price_type": "percent-price",
            "wholesale_price": "20"
        }
    ]
}

Response:
{
    "id": 7082,
    "date_created": "2021-10-21T03:54:57",
    "date_created_gmt": "2021-10-21T03:54:57",
    "date_modified": "2021-10-21T04:07:11",
    "date_modified_gmt": "2021-10-21T04:07:11",
    "description": "",
    "permalink": "https://example.com/product/variable-test/?attribute_pa_color=red",
    "sku": "",
    "price": "29.00",
    "regular_price": "29.00",
    "sale_price": "",
    "date_on_sale_from": null,
    "date_on_sale_from_gmt": null,
    "date_on_sale_to": null,
    "date_on_sale_to_gmt": null,
    "on_sale": false,
    "status": "publish",
    "purchasable": true,
    "virtual": false,
    "downloadable": false,
    "downloads": [],
    "download_limit": -1,
    "download_expiry": -1,
    "tax_status": "taxable",
    "tax_class": "",
    "manage_stock": false,
    "stock_quantity": null,
    "stock_status": "instock",
    "backorders": "no",
    "backorders_allowed": false,
    "backordered": false,
    "low_stock_amount": null,
    "weight": "",
    "dimensions": {
        "length": "",
        "width": "",
        "height": ""
    },
    "shipping_class": "",
    "shipping_class_id": 0,
    "image": null,
    "attributes": [
        {
            "id": 1,
            "name": "Color",
            "option": "Red"
        }
    ],
    "menu_order": 0,
    "wholesale_data": {
        "wholesale_price": {
            "wholesale_customer": "12"
        },
        "wholesale_minimum_order_quantity": {
            "wholesale_customer": "2"
        },
        "wholesale_order_quantity_step": {
            "wholesale_customer": "6"
        },
        "wwpp_product_wholesale_visibility_filter": [
            "wholesale_customer"
        ],
        "wwpp_enable_quantity_discount_rule": "yes",
        "wwpp_quantity_discount_rule_mapping": {
            "desc": "Quantity based discounts available based on how many items are in your cart.",
            "mapping": [
                {
                    "wholesale_role": "WholesaleBronze",
                    "start_qty": "22",
                    "end_qty": "33",
                    "wholesale_discount": "12"
                },
                {
                    "wholesale_role": "wholesale_customer",
                    "start_qty": "22",
                    "end_qty": "33",
                    "wholesale_discount": "7"
                }
            ]
        }
    }
}
```

####

#### Status: 400 Bad Request

The wholesale role key and wholesale price are invalid.

```javascript
GET: /wp-json/wholesale/v1/products/{variation_id}/variations/{variation_id}?wholesale_role=invalid_role

JSON Body:
{
    "regular_price": "19.00",
    "attributes": [
        {
            "id": 1,
            "name": "Color",
            "option": "Black"
        }
    ],
    "wholesale_price": {
        "wholesale_role_key_invalid": "wholesale_price_invalid"
    }
}

Response:
{
    "code": "wholesale_rest_variation_cannot_create",
    "message": "Unable to create. Invalid wholesale price.",
    "data": {
        "status": 400,
        "invalid_roles": [
            "wholesale_role_key_invalid"
        ],
        "invalid_wholesale_price": {
            "wholesale_role_key_invalid": "wholesale_price_invalid"
        }
    }
}
```

{% endtab %}
{% endtabs %}
