Jewelry Store Shipping Configuration
In this post, we’ll show how to set up flexible shipping rules to handle three categories of products: bracelets, necklaces, and rings, with additional logic for special items, combined shipping, ring discounts, insurance fees, and free shipping thresholds.
I run a jewelry store where I sell three categories of products—bracelets, necklaces, and rings. Shipping just bracelets costs $15, and just necklaces cost $10. If a customer orders both bracelets and necklaces together, I can ship them in the same package, but they require extra protection, so shipping is $30 if the total weight is under 6 kg, or $45 if it’s over. Rings, on the other hand, are small enough to fit inside other jewelry boxes, so to encourage purchases, I reduce the shipping cost by $5 for each ring ordered. However, there’s one special engagement ring that I don’t ship at all due to its value—it’s only available for in-store pickup. It’s so expensive that even Frodo wouldn’t dare carry this one to Mordor. Additionally, for all shipped orders, I add an insurance fee of 15% of the order value. For orders over $500 shipping is free. How do I piece all this together?
Here is our step-by-step shipping analysis:
- Bracelets alone cost $15, necklaces alone $10.
- Both bracelets and necklaces ship for $30 if weight ≤ 6 kg, else $45.
- Rings reduce shipping cost by $5 each (and can make shipping $0 if no other items).
- One special engagement ring cannot be shipped at all (in-store only).
- All shipped orders get an extra 15% insurance fee on order value, except when shipping is free for orders ≥ $500.
Edge Cases
1. Special engagement ring in cart cancels shipping.
2. Orders $500+ get free shipping.
3. Rings can reduce total shipping below $0, which is treated as $0.
4. Weight boundaries: 6 kg is the threshold for $30 vs. $45 shipping on bracelets+necklaces.
5. Insurance is 15% for all shipped orders (unless free shipping at $500+).
The JSON Configuration
Below is the final JSON you can paste into Flexible Shipping PRO:
{
"rules_table": {
"rules": [
{
"conditions": [
{
"condition_id": "product",
"operator": "any",
"product": [
"special_engagement_ring"
]
}
],
"cost_per_order": "0",
"additional_costs": [],
"special_action": "cancel"
},
{
"conditions": [
{
"condition_id": "value",
"operator": "is",
"min": "500",
"max": ""
}
],
"cost_per_order": "0",
"additional_costs": [],
"special_action": "stop"
},
{
"conditions": [
{
"condition_id": "product",
"operator": "any",
"product": [
"ring"
]
}
],
"cost_per_order": "0",
"additional_costs": [
{
"additional_cost": "-5",
"per_value": "1",
"based_on": "item"
}
],
"special_action": "none"
},
{
"conditions": [
{
"condition_id": "product",
"operator": "any",
"product": [
"bracelet"
]
}
],
"cost_per_order": "15",
"additional_costs": [],
"special_action": "none"
},
{
"conditions": [
{
"condition_id": "product",
"operator": "any",
"product": [
"necklace"
]
}
],
"cost_per_order": "10",
"additional_costs": [],
"special_action": "none"
},
{
"conditions": [
{
"condition_id": "product",
"operator": "all",
"product": [
"bracelet",
"necklace"
]
},
{
"condition_id": "weight",
"operator": "is",
"min": "0",
"max": "6"
}
],
"cost_per_order": "30",
"additional_costs": [],
"special_action": "none"
},
{
"conditions": [
{
"condition_id": "product",
"operator": "all",
"product": [
"bracelet",
"necklace"
]
},
{
"condition_id": "weight",
"operator": "is",
"min": "6.001",
"max": ""
}
],
"cost_per_order": "45",
"additional_costs": [],
"special_action": "none"
},
{
"conditions": [
{
"condition_id": "product",
"operator": "all",
"product": [
"bracelet",
"necklace"
]
}
],
"cost_per_order": "-25",
"additional_costs": [],
"special_action": "none"
},
{
"conditions": [
{
"condition_id": "none"
}
],
"cost_per_order": "0",
"additional_costs": [
{
"additional_cost": "0.15",
"per_value": "1",
"based_on": "value"
}
],
"special_action": "none"
}
]
}
}
To use this configuration, copy it and click “Paste” in the Flexible Shipping PRO rules table interface.
How the Rules Work for Common Cases
Case 1: Customer buys the special engagement ring. Rule #1 triggers “cancel,” shipping is not available.
Case 2: Customer’s order value exceeds $500. Rule #2 triggers, sets shipping cost to $0, and uses “stop,” so no insurance or ring discounts apply.
Case 3: Bracelets + Necklaces, under 6 kg, plus 1 ring. Rules #4, #5, #6 add up, #8 subtracts 25, #3 subtracts $5 for the ring. Then the final cost is $30 minus $5 (for one ring) = $25, plus 15% of order value.
Case 4: Rings only (2 rings), total under $500. Rule #3 subtracts $10 from a $0 base, shipping can’t go below $0, so shipping becomes $0. Then rule #9 adds 15% insurance.
Through this setup, you can cover all the requested shipping scenarios: one or more of each product category, special hidden ring, ring discounts, free shipping threshold, and the added insurance.