extensions / Commerce extension
POST
/api/projects/{project_id}/sales/shipment-rulesCreate Shipment Rule
Creates a shipment rate rule for a project.
GETPOST
Authentication
- Requirement
- Required
- Credential type
- Bearer API key
- Scopes
- Not specified
Permissions
- Requests are scoped to the target project_id. API-key requests must use a key with an active connection to that project.
Headers
| Name | Required | Type | Details |
|---|---|---|---|
Authorization | Yes | Not specified | Description: Bearer credential used to authenticate the request. |
Path Parameters
| Name | Required | Type | Details |
|---|---|---|---|
project_id | Yes | Not specified | Description: Target project identifier. |
Query Parameters
Request Body
Schema: UpsertShipmentRuleRequest
| Field | Required | Type | Details |
|---|---|---|---|
name | No | string | Description: Display name. |
description | No | string | Description: Long-form description text. |
is_active | No | boolean | Description: Boolean flag. |
priority | No | integer | Description: Integer value. |
discard_subsequent | No | boolean | Description: Boolean flag. |
shipping_carriers | No | JSON | Description: JSON object. |
shipping_methods | No | JSON | Description: JSON object. |
ignore_free_shipping_promo | No | boolean | Description: Boolean flag. |
calculation_type | No | string | Description: Text value. |
base_rate | No | rust_decimal::Decimal | Description: Value used by this operation. |
fixed_rate_per_product | No | rust_decimal::Decimal | Description: Value used by this operation. |
rate_per_unit_weight | No | rust_decimal::Decimal | Description: Value used by this operation. |
percentage_per_product | No | rust_decimal::Decimal | Description: Value used by this operation. |
handling_percentage | No | rust_decimal::Decimal | Description: Value used by this operation. |
rate_change_min | No | rust_decimal::Decimal | Description: Value used by this operation. |
rate_change_max | No | rust_decimal::Decimal | Description: Value used by this operation. |
total_rate_min | No | rust_decimal::Decimal | Description: Value used by this operation. |
total_rate_max | No | rust_decimal::Decimal | Description: Value used by this operation. |
conditions | No | JSON | Description: JSON object. |
apply_to | No | string | Description: Text value. |
admin_area_only | No | boolean | Description: Boolean flag. |
customer_roles | No | JSON | Description: JSON object. |
days_of_week | No | JSON | Description: JSON object. |
time_from | No | chrono::NaiveTime | Description: Value used by this operation. |
time_to | No | chrono::NaiveTime | Description: Value used by this operation. |
apply_with_coupon_codes | No | JSON | Description: JSON object. |
apply_with_cart_rules | No | JSON | Description: JSON object. |
do_not_apply_with_coupon_codes | No | JSON | Description: JSON object. |
do_not_apply_with_cart_rules | No | JSON | Description: JSON object. |
Response Body
Example 201 response
json
{
"id": 1,
"project_id": 1,
"name": "Example",
"description": "string",
"is_active": "string",
"priority": "string",
"discard_subsequent": "string",
"shipping_carriers": [],
"shipping_methods": [],
"ignore_free_shipping_promo": "string",
"calculation_type": "string",
"base_rate": "string",
"fixed_rate_per_product": "string",
"rate_per_unit_weight": "string",
"percentage_per_product": "string",
"handling_percentage": "string",
"rate_change_min": "string",
"rate_change_max": "string",
"total_rate_min": "string",
"total_rate_max": "string",
"conditions": [],
"apply_to": "string",
"admin_area_only": "string",
"customer_roles": [],
"days_of_week": "string",
"time_from": "string",
"time_to": "string",
"apply_with_coupon_codes": [],
"apply_with_cart_rules": [],
"do_not_apply_with_coupon_codes": [],
"do_not_apply_with_cart_rules": [],
"created_at": "2026-01-01T00:00:00Z",
"updated_at": "2026-01-01T00:00:00Z"
}Errors
500 internal_server_errorAvailability
- Available in
- v0.1.0
- Available since
- v0.1.0
- Implementation
- Available
- Deprecation
- Not specified
- Rate limits
- Not specified

