assistance-engine/docs/developer.avapframework.com/rider_order_management.md

10 KiB

ws/orders.py/rider_order_management

Receives

All the parameters that the service receives must be indicated in the body of the request.

Accept

Permits a rider accept an entering order.

Pick Up

Marks the status of the delivery in the order.

Nearby

Marks the status of how close the rider is to the client.

Delivered

Marks a delivered order.

Deny

Denies the entering order.

Assign Order

Permits to assign a specific order to a rider.

Returns if user is RIDER profile:

Depending on the result of the operation, this service can return two different JSON:

{
         "status"
        :{' '}
        true
        ,
         "codtran"
        :{' '}
        "850c29598f8ceae89e7083d1547faa29"
        ,
         "result"
        :{' '}
        {
         "status"
        :{' '}
        "Completed"
        ,
         "delivery_time"
        :{' '}
        "13:12:55"
        ,
         "delivery_type"
        :{' '}
        "Shipment"
        ,
         "order_category_id"
        :{' '}
        "FL016"
        ,
         "delivery_distance"
        :{' '}
        6987
        ,
         "status_code"
        :{' '}
        1
        ,
         "order_products_codes"
        :{' '}
        
          "[\n {\n \"article_id\": 39002,\n \"custom\": []\n },\n
          {\n \"article_id\": 39002,\n \"custom\": []\n },\n {\n
          \"article_id\": 39002,\n \"custom\": []\n },\n {\n
          \"article_id\": 39002,\n \"custom\": []\n }\n]"
        
        ,
        {' '}
        "establishment_coordinates"
        :{' '}
        {
         "latitude"
        :{' '}
        40.630568688062624
        ,
         "longitude"
        :{' '}
        -3.585006931371174
         }
        ,
         "location_gps"
        :{' '}
        
          "{\n \"direction\": {\n \"street\": \"Calle Cádiz \",\n
          \"number\": \" 21\",\n \"city\": \"Fuente del Fresno\"\n },\n
          \"positioning\": {\n \"lat\": 40.5910124,\n \"lng\": -3.5886479\n
          }\n}"
        
        ,
         "delivery_price"
        :{' '}
        "1,90 €"
        ,
         "contact"
        :{' '}
        
          "{\n \"firstName\": \"Rafael\",\n \"lastName\": \"Surname1
          Surname2\",\n \"mail\": \"rafa32gr@gmail.com\",\n \"phone\":
          \"643340526\"\n}"
        
        ,
         "purchase_detail"
        :{' '}
        
          "Tortilla Soup\nTortilla Soup\nTortilla Soup\nTortilla Soup\n"
        
        ,
         "order_code"
        :{' '}
        101033
        ,
         "date"
        :{' '}
        "18/08/2021 05:17:56"
        ,
         "transaction_code"
        :{' '}
        "988569e4f38717f35e0fa5c256fe466b"
        ,
         "status_history"
        :{' '}
        [
         {
         "previous_status_code"
        :{' '}
        12
        ,
         "status_change_date"
        :{' '}
        "2021-08-18 12:17:57"
        ,
         "new_status"
        :{' '}
        "Sent to the restaurant"
        ,
         "new_status_code"
        :{' '}
        0
        ,
         "previous_status"
        :{' '}
        "New order"
         }
        ,
         {
         "previous_status_code"
        :{' '}
        0
        ,
         "status_change_date"
        :{' '}
        "2021-08-18 12:18:51"
        ,
         "new_status"
        :{' '}
        "Being picked up"
        ,
         "new_status_code"
        :{' '}
        11
        ,
         "previous_status"
        :{' '}
        "Sent to the restaurant"
         }
        ,
         {
         "previous_status_code"
        :{' '}
        11
        ,
         "status_change_date"
        :{' '}
        "2021-08-18 12:19:57"
        ,
         "new_status"
        :{' '}
        "Being sent"
        ,
         "new_status_code"
        :{' '}
        10
        ,
         "previous_status"
        :{' '}
        "Being picked up"
         }
        ,
         {
         "previous_status_code"
        :{' '}
        10
        ,
         "status_change_date"
        :{' '}
        "2021-08-18 12:20:37"
        ,
         "new_status"
        :{' '}
        "Completed"
        ,
         "new_status_code"
        :{' '}
        1
        ,
         "previous_status"
        :{' '}
        "Being sent"
         }
         ]
        ,
         "client_address"
        :{' '}
        
          "Fuente del Fresno\nCalle Cádiz Número 21\n643340526"
        
         }
        ,
         "elapsed"
        :{' '}
        0.12410902976989746
        
        }

Where:

  • status: Shows if the call has been successful (true) or not (false).
  • codtran: Operation result.
  • result: Data of the last order in course. status: Current status of the order. status_code : Code of the current status of the order. transaction_code : Code of the transaction. order_code: Code of the order. date: Date of the order. client_address: Direction of the client. establishment_coordinates : Coordinates of the establishment that provides the order. location_gps: Coordinates of the direction of the delivery place. delivery_time: Hour established for the delivery. delivery_type: Type of delivery (pick up/ sent) order_products_codes: List of code products and its options. purchase_detail: List of product names with its options. order_category_id: Identifier of the establishment that provides the order. contact: Client contact status_history: History of status changes in the order. new_status: New status. new_status_code: Code of the new status. previous_status: Previous status. previous_status_code: Previous status code. status_change_date: Hour and time of the status change. delivery_price: Price of the delivery delivery_distance: Distance between the client and the establishment.
  • status: Current status of the order.
  • status_code : Code of the current status of the order.
  • transaction_code : Code of the transaction.
  • order_code: Code of the order.
  • date: Date of the order.
  • client_address: Direction of the client.
  • establishment_coordinates : Coordinates of the establishment that provides the order.
  • location_gps: Coordinates of the direction of the delivery place.
  • delivery_time: Hour established for the delivery.
  • delivery_type: Type of delivery (pick up/ sent)
  • order_products_codes: List of code products and its options.
  • purchase_detail: List of product names with its options.
  • order_category_id: Identifier of the establishment that provides the order.
  • contact: Client contact
  • status_history: History of status changes in the order. new_status: New status. new_status_code: Code of the new status. previous_status: Previous status. previous_status_code: Previous status code. status_change_date: Hour and time of the status change.
  • new_status: New status.
  • new_status_code: Code of the new status.
  • previous_status: Previous status.
  • previous_status_code: Previous status code.
  • status_change_date: Hour and time of the status change.
  • delivery_price: Price of the delivery
  • delivery_distance: Distance between the client and the establishment.
  • elapsed: Operation execution time.

Answer JSON KO:

{
         "status"
        :{' '}
        false
        ,
         "level"
        : <string>
        ,
         "message"
        : <string>
        ,
         "error"
        : <string>
         }

Where:

  • status: Shows if the call has been successful (true) or not (false).
  • level: Error importance level.
  • message: Error message.
  • error: Sole error code.

Example requests:

Python - Requests:

import requests
        
        
        url ={' '}
        
          "http://34.121.95.179:80/ws/orders.py/last_order_summary?codigo_pais=ES&user_id=14&session_id=1387-REIfL6Z3FzpGRvc9PYdbFg==&start_date=2018-01-01&end_date=2022-07-07"
        
        
        
        payload=
        {
        }
        
        headers ={' '}
        {
         '101ObexApiKey'
        :{' '}
        'FsGwQeqT9TmGmQ2ytEImM6bDAMshRI55'
        
        }
        
        
        response = requests
        .request
        (
        "GET"
        , url
        , headers
        =headers
        , data
        =payload
        )
        
        
        print
        (response
        .text
        )

NodeJs - Request:

var request = require('request');
        
        var options = {
         'method': 'GET',
         'url':
        'http://34.121.95.179:80/ws/orders.py/last_order_summary?codigo_pais=ES&user_id=14&session_id=1387-REIfL6Z3FzpGRvc9PYdbFg==&start_date=2018-01-01&end_date=2022-07-07',
         'headers': {
         '101ObexApiKey': 'FsGwQeqT9TmGmQ2ytEImM6bDAMshRI55'
         }
        
        };
        
        request(options, function (error, response) {
         if (error) throw new Error(error);
         console.log(response.body);
        
        });

JavaScript - Fetch:

var myHeaders = new Headers();
        
        myHeaders.append("101ObexApiKey",
        "FsGwQeqT9TmGmQ2ytEImM6bDAMshRI55");
        
        
        var requestOptions = {
         method: 'GET',
         headers: myHeaders,
         redirect: 'follow'
        
        };
        
        
        fetch("http://34.121.95.179:80/ws/orders.py/last_order_summary?codigo_pais=ES&user_id=14&session_id=1387-REIfL6Z3FzpGRvc9PYdbFg==&start_date=2018-01-01&end_date=2022-07-07",
        requestOptions)
         .then(response => response.text())
         .then(result => console.log(result))
         .catch(error => console.log('error', error));

CURL:

curl --location --request GET{' '}
        
          'http://34.121.95.179:80/ws/orders.py/last_order_summary?codigo_pais=ES&user_id=14&session_id=1387-REIfL6Z3FzpGRvc9PYdbFg==&start_date=2018-01-01&end_date=2022-07-07'
        {' '}
        \
        
        --header{' '}
        
          '101ObexApiKey: FsGwQeqT9TmGmQ2ytEImM6bDAMshRI55'

Business logic:

The purpose of this service is to manage the assignments and statuses of a registered order.