Back to Woocommerce

Product shipping classes

docs/apis/rest-api/v2/product-shipping-classes.mdx

10.9.0-dev15.8 KB
Original Source

import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem';

Product shipping classes

The product shipping class API allows you to create, view, update, and delete individual, or a batch, of shipping classes.

Product shipping class properties

AttributeTypeDescription
idintegerUnique identifier for the resource. READ-ONLY
namestringShipping class name. MANDATORY
slugstringAn alphanumeric identifier for the resource unique to its type.
descriptionstringHTML description of the resource.
countintegerNumber of published products for the resource. READ-ONLY

Create a shipping class

This API helps you to create a new product shipping class.

http
POST /wp-json/wc/v2/products/shipping_classes

Example of how to create a product shipping class:

<Tabs> <TabItem value="curl" label="cURL">
shell
curl -X POST https://example.com/wp-json/wc/v2/products/shipping_classes \
	-u consumer_key:consumer_secret \
	-H "Content-Type: application/json" \
	-d '{
  "name": "Priority"
}'
</TabItem> <TabItem value="js" label="JavaScript">
javascript
const data = {
  name: "Priority"
};

WooCommerce.post("products/shipping_classes", data)
  .then((response) => {
    console.log(response.data);
  })
  .catch((error) => {
    console.log(error.response.data);
  });
</TabItem> <TabItem value="php" label="PHP">
php
<?php
$data = [
    'name' => 'Priority'
];

print_r($woocommerce->post('products/shipping_classes', $data));
?>
</TabItem> <TabItem value="python" label="Python">
python
data = {
    "name": "Priority"
}

print(wcapi.post("products/shipping_classes", data).json())
</TabItem> <TabItem value="ruby" label="Ruby">
ruby
data = {
  name: "Priority"
}

woocommerce.post("products/shipping_classes", data).parsed_response
</TabItem> <TabItem value="response" label="JSON Response">
json
{
  "id": 32,
  "name": "Priority",
  "slug": "priority",
  "description": "",
  "count": 0,
  "_links": {
    "self": [
      {
        "href": "https://example.com/wp-json/wc/v2/products/shipping_classes/32"
      }
    ],
    "collection": [
      {
        "href": "https://example.com/wp-json/wc/v2/products/shipping_classes"
      }
    ]
  }
}
</TabItem> </Tabs>

Retrieve a shipping class

This API lets you retrieve a product shipping class by ID.

http
GET /wp-json/wc/v2/products/shipping_classes/<id>
<Tabs> <TabItem value="curl" label="cURL">
shell
curl https://example.com/wp-json/wc/v2/products/shipping_classes/32 \
	-u consumer_key:consumer_secret
</TabItem> <TabItem value="js" label="JavaScript">
javascript
WooCommerce.get("products/shipping_classes/32")
  .then((response) => {
    console.log(response.data);
  })
  .catch((error) => {
    console.log(error.response.data);
  });
</TabItem> <TabItem value="php" label="PHP">
php
<?php print_r($woocommerce->get('products/shipping_classes/32')); ?>
</TabItem> <TabItem value="python" label="Python">
python
print(wcapi.get("products/shipping_classes/32").json())
</TabItem> <TabItem value="ruby" label="Ruby">
ruby
woocommerce.get("products/shipping_classes/32").parsed_response
</TabItem> <TabItem value="response" label="JSON Response">
json
{
  "id": 32,
  "name": "Priority",
  "slug": "priority",
  "description": "",
  "count": 0,
  "_links": {
    "self": [
      {
        "href": "https://example.com/wp-json/wc/v2/products/shipping_classes/32"
      }
    ],
    "collection": [
      {
        "href": "https://example.com/wp-json/wc/v2/products/shipping_classes"
      }
    ]
  }
}
</TabItem> </Tabs>

List all shipping classes

This API lets you retrieve all product shipping classes.

http
GET /wp-json/wc/v2/products/shipping_classes
<Tabs> <TabItem value="curl" label="cURL">
shell
curl https://example.com/wp-json/wc/v2/products/shipping_classes \
	-u consumer_key:consumer_secret
</TabItem> <TabItem value="js" label="JavaScript">
javascript
WooCommerce.get("products/shipping_classes")
  .then((response) => {
    console.log(response.data);
  })
  .catch((error) => {
    console.log(error.response.data);
  });
</TabItem> <TabItem value="php" label="PHP">
php
<?php print_r($woocommerce->get('products/shipping_classes')); ?>
</TabItem> <TabItem value="python" label="Python">
python
print(wcapi.get("products/shipping_classes").json())
</TabItem> <TabItem value="ruby" label="Ruby">
ruby
woocommerce.get("products/shipping_classes").parsed_response
</TabItem> <TabItem value="response" label="JSON Response">
json
[
  {
    "id": 33,
    "name": "Express",
    "slug": "express",
    "description": "",
    "count": 0,
    "_links": {
      "self": [
        {
          "href": "https://example.com/wp-json/wc/v2/products/shipping_classes/33"
        }
      ],
      "collection": [
        {
          "href": "https://example.com/wp-json/wc/v2/products/shipping_classes"
        }
      ]
    }
  },
  {
    "id": 32,
    "name": "Priority",
    "slug": "priority",
    "description": "",
    "count": 0,
    "_links": {
      "self": [
        {
          "href": "https://example.com/wp-json/wc/v2/products/shipping_classes/32"
        }
      ],
      "collection": [
        {
          "href": "https://example.com/wp-json/wc/v2/products/shipping_classes"
        }
      ]
    }
  }
]
</TabItem> </Tabs>

Available parameters

ParameterTypeDescription
contextstringScope under which the request is made; determines fields present in response. Options: view and edit. Default is view.
pageintegerCurrent page of the collection. Default is 1.
per_pageintegerMaximum number of items to be returned in result set. Default is 10.
searchstringLimit results to those matching a string.
excludearrayEnsure result set excludes specific ids.
includearrayLimit result set to specific ids.
offsetintegerOffset the result set by a specific number of items.
orderstringOrder sort attribute ascending or descending. Options: asc and desc. Default is asc.
orderbystringSort collection by resource attribute. Options: id, include, name, slug, term_group, description and count. Default is name.
hide_emptybooleanWhether to hide resources not assigned to any products. Default is false.
productintegerLimit result set to resources assigned to a specific product.
slugstringLimit result set to resources with a specific slug.

Update a shipping class

This API lets you make changes to a product shipping class.

http
PUT /wp-json/wc/v2/products/shipping_classes/<id>
<Tabs> <TabItem value="curl" label="cURL">
shell
curl -X PUT https://example.com/wp-json/wc/v2/products/shipping_classes/32 \
	-u consumer_key:consumer_secret \
	-H "Content-Type: application/json" \
	-d '{
  "description": "Priority mail."
}'
</TabItem> <TabItem value="js" label="JavaScript">
javascript
const data = {
  description: "Priority mail."
};

WooCommerce.put("products/shipping_classes/32", data)
  .then((response) => {
    console.log(response.data);
  })
  .catch((error) => {
    console.log(error.response.data);
  });
</TabItem> <TabItem value="php" label="PHP">
php
<?php
$data = [
    'description' => 'Priority mail.'
];

print_r($woocommerce->put('products/shipping_classes/32', $data));
?>
</TabItem> <TabItem value="python" label="Python">
python
data = {
    "description": "Priority mail."
}

print(wcapi.put("products/shipping_classes/32", data).json())
</TabItem> <TabItem value="ruby" label="Ruby">
ruby
data = {
  description: "Priority mail."
}

woocommerce.put("products/shipping_classes/32", data).parsed_response
</TabItem> <TabItem value="response" label="JSON Response">
json
{
  "id": 32,
  "name": "Priority",
  "slug": "priority",
  "description": "Priority mail.",
  "count": 0,
  "_links": {
    "self": [
      {
        "href": "https://example.com/wp-json/wc/v2/products/shipping_classes/32"
      }
    ],
    "collection": [
      {
        "href": "https://example.com/wp-json/wc/v2/products/shipping_classes"
      }
    ]
  }
}
</TabItem> </Tabs>

Delete a shipping class

This API helps you delete a product shipping class.

http
DELETE /wp-json/wc/v2/products/shipping_classes/<id>
<Tabs> <TabItem value="curl" label="cURL">
shell
curl -X DELETE https://example.com/wp-json/wc/v2/products/shipping_classes/32?force=true \
	-u consumer_key:consumer_secret
</TabItem> <TabItem value="js" label="JavaScript">
javascript
WooCommerce.delete("products/shipping_classes/32", {
  force: true
})
  .then((response) => {
    console.log(response.data);
  })
  .catch((error) => {
    console.log(error.response.data);
  });
</TabItem> <TabItem value="php" label="PHP">
php
<?php print_r($woocommerce->delete('products/shipping_classes/32', ['force' => true])); ?>
</TabItem> <TabItem value="python" label="Python">
python
print(wcapi.delete("products/shipping_classes/32", params={"force": True}).json())
</TabItem> <TabItem value="ruby" label="Ruby">
ruby
woocommerce.delete("products/shipping_classes/32", force: true).parsed_response
</TabItem> <TabItem value="response" label="JSON Response">
json
{
  "id": 32,
  "name": "Priority",
  "slug": "priority",
  "description": "Priority mail.",
  "count": 0,
  "_links": {
    "self": [
      {
        "href": "https://example.com/wp-json/wc/v2/products/shipping_classes/32"
      }
    ],
    "collection": [
      {
        "href": "https://example.com/wp-json/wc/v2/products/shipping_classes"
      }
    ]
  }
}
</TabItem> </Tabs>

Available parameters

ParameterTypeDescription
forcestringRequired to be true, as resource does not support trashing.

Batch update shipping classes

This API helps you to batch create, update and delete multiple product shipping classes.

:::note Note: By default it's limited to up to 100 objects to be created, updated or deleted. :::

http
POST /wp-json/wc/v2/products/shipping_classes/batch
<Tabs> <TabItem value="curl" label="cURL">
shell
curl -X POST https://example.com/wp-json/wc/v2/products/shipping_classes/batch \
	-u consumer_key:consumer_secret \
	-H "Content-Type: application/json" \
	-d '{
  "create": [
    {
      "name": "Small items"
    },
    {
      "name": "Large items"
    }
  ],
  "update": [
    {
      "id": 33,
      "description": "Express shipping"
    }
  ],
  "delete": [
    32
  ]
}'
</TabItem> <TabItem value="js" label="JavaScript">
javascript
const data = {
  create: [
    {
      name: "Small items"
    },
    {
      name: "Large items"
    }
  ],
  update: [
    {
      id: 33,
      description: "Express shipping"
    }
  ],
  delete: [
    32
  ]
};

WooCommerce.post("products/shipping_classes/batch", data)
  .then((response) => {
    console.log(response.data);
  })
  .catch((error) => {
    console.log(error.response.data);
  });
</TabItem> <TabItem value="php" label="PHP">
php
<?php
$data = [
    'create' => [
        [
            'name' => 'Small items'
        ],
        [
            'name' => 'Large items'
        ]
    ],
    'update' => [
        [
            'id' => 33,
            'description' => 'Express shipping'
        ]
    ],
    'delete' => [
        32
    ]
];

print_r($woocommerce->post('products/shipping_classes/batch', $data));
?>
</TabItem> <TabItem value="python" label="Python">
python
data = {
    "create": [
        {
            "name": "Small items"
        },
        {
            "name": "Large items"
        }
    ],
    "update": [
        {
            "id": 33,
            "description": "Express shipping"
        }
    ],
    "delete": [
        32
    ]
}

print(wcapi.post("products/shipping_classes/batch", data).json())
</TabItem> <TabItem value="ruby" label="Ruby">
ruby
data = {
  create: [
    {
      name: "Small items"
    },
    {
      name: "Large items"
    }
  ],
  update: [
    {
      id: 33,
      description: "Express shipping"
    }
  ],
  delete: [
    32
  ]
}

woocommerce.post("products/shipping_classes/batch", data).parsed_response
</TabItem> <TabItem value="response" label="JSON Response">
json
{
  "create": [
    {
      "id": 34,
      "name": "Small items",
      "slug": "small-items",
      "description": "",
      "count": 0,
      "_links": {
        "self": [
          {
            "href": "https://example.com/wp-json/wc/v2/products/shipping_classes/34"
          }
        ],
        "collection": [
          {
            "href": "https://example.com/wp-json/wc/v2/products/shipping_classes"
          }
        ]
      }
    },
    {
      "id": 35,
      "name": "Large items",
      "slug": "large-items",
      "description": "",
      "count": 0,
      "_links": {
        "self": [
          {
            "href": "https://example.com/wp-json/wc/v2/products/shipping_classes/35"
          }
        ],
        "collection": [
          {
            "href": "https://example.com/wp-json/wc/v2/products/shipping_classes"
          }
        ]
      }
    }
  ],
  "update": [
    {
      "id": 33,
      "name": "Express",
      "slug": "express",
      "description": "Express shipping",
      "count": 0,
      "_links": {
        "self": [
          {
            "href": "https://example.com/wp-json/wc/v2/products/shipping_classes/33"
          }
        ],
        "collection": [
          {
            "href": "https://example.com/wp-json/wc/v2/products/shipping_classes"
          }
        ]
      }
    }
  ],
  "delete": [
    {
      "id": 32,
      "name": "Priority",
      "slug": "priority",
      "description": "",
      "count": 0,
      "_links": {
        "self": [
          {
            "href": "https://example.com/wp-json/wc/v2/products/shipping_classes/32"
          }
        ],
        "collection": [
          {
            "href": "https://example.com/wp-json/wc/v2/products/shipping_classes"
          }
        ]
      }
    }
  ]
}
</TabItem> </Tabs>