PHP SDK for the Airmee API

1.0.0 2017-04-21 08:23 UTC

This package is not auto-updated.

Last update: 2021-02-26 02:11:55 UTC


[Everything in this file is subject to change as we evolve the SDK]

API documentation available at:

Basic flow of the integration process:


  • Main classes proposed for the Airmee SDK
  • Decide what is the most logical way to implement constructors for the objects (would a builder pattern be sufficient?)
street_and_number string, 
city string, 
zip_code string,
country string
  • Role: Standard representation of an address
  • Constraints: all fields not null / empty
length double,
width double,
height double,
weight double,
quantity integer,
price integer,
name string
  • Role: Standard representation of an item selected by a user while shopping online
  • Constraints:
    • length, width, heigh, weight, quantity not null and positive
    • name not null / empty
pickup_time_earliest bigint,
pickup_time_latest bigint,
dropoff_time_earliest bigint,
dropoff_time_latest bigint, 
pickup_schedule_formatted string, 
dropoff_schedule_formatted string
  • Role: Standard representation of the delivery intervals used by Airmee
  • Constraints:

    • pickup_time_earliest, pickup_time_latest, dropoff_time_earliest, dropoff_time_latest not null and positive
    • pickup_schedule_formatted, dropoff_schedule_formatted not null / empty
    • pickup_time_earliest < pickup_time_latest
    • dropoff_time_earliest < dropoff_time_latest
  • NOTE: The parameters should be immutable since they are served by the server. What's the best constructor pattern for this?

dropoff_address Address,
delivered_items Item[],


chosen_delivery_intervals DeliveryInterval,

dropoff_message_to_courier [optional],
dropoff_lat [optional],
dropoff_lon [optional]
  • Role: Standard representation of the delivery request used by Airmee
  • Constraints:
    • dropoff_address is not null and valid
    • delivered_items is not null, the array is not empty, and all the items inside are valid
    • ecomm_id, receiver_name not null / empty
    • receiver_phone_number(_country_code) valid -> maybe validate with
    • receiver_email is valid / not nul -> use regex validation
    • chosen_delivery_interval is valid / not null


  • Decide how to easily present these functions to the SDK consumers
  • Should we have one class that provides all the functions?
get_Delivery_Intervals_For_Zip_Code(zip_code string)
create_Delivery_Request(lots of params...)

Tests, Documentation and Versioning

  • What do we use for tests?
  • What documentation should we have? There are 2 types of documentations: facing the SDK consumers and facing the SDK devs
  • Semantic Versioning:
  • What to use for dependency management?