Delivery App


How would you use CanCan features to build a delivery app like DoorDash ?

To build an app like that you would need the following features:

  • The ability to have delivery agents apply to deliver on your app

  • The ability to have delivery agents list delivery offers on your app

  • The ability for clients to request for deliveries on your app

  • The ability for delivery agents to apply for delivery requests on your app

  • The ability to see delivery agents' position on a map

  • The ability to take a percentage off of every delivery

  • The ability to rate and/or review delivery agents/clients

Becoming a delivery agent on your app

To become a delivery agent on your app, agents will partner with your channel and then list their profiles as products on their partner walls directly on your channel. You can read more about doing that on the page below:


Listing products

This part depends on how you want your channel to work. You can require the delivery agent to create a product for each shop they are willing to deliver for or you can have them create a profile product of themselves.

In the latter case, the users will have to chat with them on Paychat after the booking to establish the logistics of where to go, what product to buy and where to bring it.

You can read more about creating products on the page below

Listing Products/Services

Once a product is created, you can add it to a partner wall which you can read about on the page below:


Booking a delivery agent on your app

To book a delivery agent on your app, users first find the delivery agent that's the best fit for them on your channel's main page under the Items > partners tab like in the image below and then click on it to go to its product's page.

From the product page, they can book the delivery agent directly, through the stake market or using a valuepool. You can find guides for each one of those cases on the pages below:

Buying Products/ServicesBuying Through The Stake MarketBuying Through Valuepools/DAOs

Once they've booked (purchased a ticket to) the delivery agent, he/she will contact them to establish the logistics

Requesting for delivery agents & Accepting requests

Another way to book a delivery agent is to create a stake on your channel under the Contracts' tab

The request will be created as a stake and listed under the Contracts > Stakes tab like in the image above. This way potential delivery agents can browse the latest requests in their areas and apply to the ones that are the best fit for them.

You can read more about applying to stakes and accepting stakes' applications on the page below:

Call For Tenders

Delivery agent will be able to filter the requests based on area using the Country, City and Product tag buttons at the upper right of the page like in the image above.

Viewing delivery agents current position on a map

Once a delivery agent and a client have been put in contact, the delivery agent can share his/her current position, through the PayChat app, with the client like in the image below:

Sharing revenue with delivery agents

When listing their products/profiles on their partner walls, delivery agents will specify the percentage they are willing to give you off of each delivery they get through your channel. In the image below, the user entered 10 in the referrer fee field meaning he/she will be giving you 10% for each delivery.

We can also see that the minimum fee allowed by the channel is 0%. You can change this parameter by following the guide on the page below under the Updating The Minimum Partnership Fee section


You can read more about listing profiles (products) on a partner's channel on the page above under the Adding Items To Your Partner Wall section

Rating and/or reviewing delivery agents/clients on your app

To rate a delivery agent, click on the delivery agent's product/profile to go to its product page and enter your rating and review. You can read more about how to do that on the page below:


In case you are a delivery agent, you can also rate a client by voting up/down his/her channel. You can read about how to do that on the page below:


Last updated