Assigning customer to zones or routes


Did anyone had the need of assigning customer to zones?

We have a use case where the customers need to be assigned to a Zone, and each Zone is assigned to some salesmans which visits the customers.

Did somebody had a similar need?


In Venezuela and Panama (I suppose in other countries too) it is a very common model.

Some time ago we had to develop two simple modules, Vendedores (Salesman) and Sales Zone for a client. Sales zone had a many2one relationship with customers (parties) and many2many with salesman.


What is the goal?
Who owns the products in those zones?
How are those zones refill?

The goal is to be able to distinguish which salesman/agent was to contact the customer. Normally this is used for sales that should be done on a fixed frequency. For example a bar, that the salesman goes every week to ask which goods it requests for the next week.

I do not understand.

It can be set manually but it can also be set by geographic patterns. For example all the customers on the north of the city, the south one’s, etc.

I think there was a misunderstanding. I thought that as you spoke about “assigning a customer to a zones”, it was a storage location. But it seems it is more about regrouping parties by geographical location. So I guess trytond-gis could be used to store the coordinate and use distance computation to determine which group it belongs.

Yes it’s about grouping parties by geogrpahical location but I think we should allow the user to manually assign a party to some specific locations and tryton-gis should be an extra dependency to compute the default value.

Also we should allow to be able to search all the packed shipments of a zone so we can upload them into a truck that will responsible of delivering to the customers.

For me, you are using geographic coordinates or you are using something else like zip code.

Usually the zip code is used for that because it is its main purpose.

Yes, the zip code can also be used to determine on which zone belongs the party.

The main need is to create a table to add a friendly name to a list of postalcodes or “gis-distances”. Then we can use this friendly name on the relevant places (like shipments or sales)