Overview
The Delivery Zones API allows stores to configure their delivery coverage areas with customizable fees and timing for different locations. This system enables flexible delivery pricing and service area management.
Location: convex/stores/deliveryZones.ts
Get Store Delivery Zones
const zones = await convex.query(api.stores.deliveryZones.getStoreDeliveryZones, {
cityId: "ct123456789"
});
[
{
"_id": "dz123456789",
"storeId": "j123456789",
"city": "ct123456789",
"cityName": "Dubai",
"deliveryFee": 5.00,
"deliveryTime": 30,
"deliveryTimeUnit": "minutes",
"areas": [
{
"area": "ar123456789",
"areaName": "Marina",
"deliveryFee": 5.00,
"deliveryTime": 25,
"deliveryTimeUnit": "minutes"
},
{
"area": "ar987654321",
"areaName": "JBR",
"deliveryFee": 7.00,
"deliveryTime": 35,
"deliveryTimeUnit": "minutes"
}
]
}
]
Create Delivery Zone
Areas with custom fees and timing
const zone = await convex.mutation(api.stores.deliveryZones.createStoreDeliveryZone, {
city: "ct123456789",
deliveryFee: 5.00,
deliveryTime: 30,
deliveryTimeUnit: "minutes",
areas: [
{
area: "ar123456789",
deliveryFee: 5.00,
deliveryTime: 25,
deliveryTimeUnit: "minutes"
}
]
});
Update Delivery Zone
deliveryZoneId
Id<'storeDeliveryZones'>
required
Zone ID to update
await convex.mutation(api.stores.deliveryZones.updateStoreDeliveryZone, {
deliveryZoneId: "dz123456789",
city: "ct123456789",
deliveryFee: 6.00,
areas: [/* updated areas */]
});
Delete Delivery Zone
deliveryZoneId
Id<'storeDeliveryZones'>
required
Zone ID to delete
await convex.mutation(api.stores.deliveryZones.deleteStoreDeliveryZone, {
deliveryZoneId: "dz123456789"
});
Delivery zones determine where stores can deliver and at what cost. Configure these carefully to optimize delivery operations.