Skip to main content

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

cityId
Id<'cities'>
Optional city filter
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

city
Id<'cities'>
required
City ID
deliveryFee
number
Default delivery fee
areas
Array<object>
required
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.