Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
APPARATUS AND METHOD FOR MANAGING ITEM STORAGE IN WAREHOUSES
Document Type and Number:
WIPO Patent Application WO/2018/063089
Kind Code:
A1
Abstract:
An apparatus and a method for managing item storage in warehouses, the apparatus comprising a memory and a processor configured to execute a program in the memory to control the apparatus for receiving an instruction to store one or more items in a warehouse, receiving geographical location information of a collection point, determining from predefined geographical data a geographical area in which the collection point is located based on the geographical location information of the collection point, assigning one or more warehouses to store the one or more items based on warehouse availability data, the warehouse availability data indicating one or more warehouses with storage space in the geographical area and one or more warehouses with storage space in one or more neighboring geographical areas surrounding the geographical area; and scheduling delivery of the one or more items for storing in the assigned one or more warehouses.

Inventors:
WOON DA JUN (SG)
HOO FENG SHENG LARRY (SG)
Application Number:
PCT/SG2016/050485
Publication Date:
April 05, 2018
Filing Date:
September 30, 2016
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
UCR PLATFORM PTE LTD (SG)
International Classes:
G06Q10/08; G06Q50/28
Foreign References:
CN105550834A2016-05-04
US20120310786A12012-12-06
CN104616130A2015-05-13
JP2006176231A2006-07-06
US20160042312A12016-02-11
CN103581327A2014-02-12
EP2083550A12009-07-29
US20040176962A12004-09-09
Attorney, Agent or Firm:
CHANG, Jian Ming (SG)
Download PDF:
Claims:
Claims

1. An apparatus for managing item storage in warehouses, the apparatus comprising:

a memory; and

a processor configured to execute a program in the memory to control the apparatus for

receiving an instruction to store one or more items in a warehouse;

receiving geographical location Information of a collection point;

determining from predefined geographical data a geographical area in which the collection point is located based on the geographical location information of the collection point;

assigning one or more warehouses to store the one or more items based on warehouse availability data, the warehouse availability data indicating one or more warehouses with storage space in the geographical area and one or more warehouses with storage space in one or more neighboring geographical area surrounding the geographical area; and

scheduling delivery of the one or more items for storing in the assigned one or more warehouses,

wherein the predefined geographical data comprises data of a plurality of geographical areas comprising the geographical area, and data of the one or more neighboring geographical areas surrounding the geographical area.

2. The apparatus of claim 1 , wherein assigning the one or more warehouses to store the one or more items comprises:

determining from the warehouse availability data the nearest warehouse from the collection point with storage space for storing each of the one or more items, wherein if there are no warehouses with storage space located in the geographical area of the collection point, the apparatus determines from the warehouse availability data the nearest warehouse with storage space in the one or more neighboring geographical areas, and

if there are no warehouses with storage space located in the neighboring geographical areas of the collection point, the apparatus determines from the warehouse availability data the nearest warehouse with storage space in a plurality of geographical areas neighboring the neighboring geographical areas.

3. The apparatus of any one of the preceding claims, wherein the apparatus is controlled for receiving an instruction to add information of one or more warehouses of specified available space as part of the warehouse availability data,

wherein assigning the one or more warehouses to store the one or more items comprises:

if there are one or more warehouses with storage space having the same distance away from the collection point, determining from the warehouse availability data the warehouse to store the one or more items based on time duration from the addition of the information of the one or more warehouses as part of the warehouse availability data. 4. The apparatus of any one of the preceding claims, wherein a geographical area of the plurality of geographical areas is divided into one or more sectors, the collection point resides in one of the one or more sectors, and wherein assigning the one or more warehouses to store the one or more items comprises determining from the warehouse availability data the nearest warehouse from the collection point in the one or more sectors of the geographical area that is divided into the one or more sectors before determining the nearest warehouse from the collection point in the one or more neighboring geographical areas.

5. The apparatus of any one of the preceding claims, wherein the apparatus is controlled for receiving dimensions of the one or more items to be stored; and

determining, based on the warehouse availability data and the received dimensions, one or more warehouses capable of storing the one or more items to be stored. The apparatus of any one of the preceding claims, wherein the instruction to store one or more items in one or more warehouses indicates a plurality of items to be stored, and assigning the one or more warehouses to store the one or more items comprises distributing the plurality of items for storing separately in the more than one assigned warehouses.

7. The apparatus of any one of the preceding claims, wherein each of the one or more items has a unique tracking number, the unique tracking number being associated with a warehouse tracking number issued to the warehouse for storing the item.

8. The apparatus of any one of the preceding claims, wherein assigning the one or more warehouses to store the one or more items comprises:

determining from the warehouse availability data the nearest warehouse from the collection point capable of storing all the one or more items to be stored.

9. The apparatus of any one of the preceding claims, wherein the apparatus is controlled for receiving an instruction to retrieve the one or more items stored in the one or more assigned warehouses; and

receiving geographical location information of a delivery point.

10. The apparatus of claim 9, wherein the apparatus is controlled for sending an alert if the instruction contains the delivery point of the retrieved one or more items that is more than a predetermined distance away from the one or more assigned warehouses.

11. The apparatus of any one of the preceding claims, wherein scheduling delivery of the one or more items to be stored or to be retrieved Is determined based on delivery schedule data, the delivery schedule data comprises

a plurality of time slots that are available and unavailable for delivery; wherein the apparatus is controlled for

receiving selection of one or more time slots available for delivery of the one or more Items.

12. The apparatus of claim 11 , wherein the apparatus is controlled for receiving selection of one or more time slots unavailable for delivery of the one or more items as a prioritised request for the one or more items to be delivered in the one or more time slots unavailable for delivery.

13. The apparatus of claims 11 or 12, wherein the delivery schedule data comprises:

one or more delivery crews available for delivery in each time slot; and

one or more assigned jobs to each of a plurality of delivery crews in each time slot, wherein each assigned job comprises:

geographical location information of an assigned collection point or an assigned delivery point; and

information of storage space available in a delivery vehicle to be operated by each crew after the assigned job.

14. The apparatus of any one of claims 11 to 13, wherein the apparatus is controlled for

adding a first new job to the delivery schedule data associated with one delivery crew available for delivery in a first time slot of the plurality of time slots available for delivery, wherein the first new job is generated based on a first identified location and the first identified location is the collection point received by the apparatus or the delivery point received by the apparatus.

15. The apparatus of claim 14, wherein the apparatus is controlled for

adding a second new job to the delivery schedule data associated with one delivery crew available for delivery in a second time slot of the plurality of time slots available for delivery, wherein the second new job is generated based on a second identified location and the second identified location is a location of the one of more warehouses assigned by the apparatus to store the one or more items.

16. The apparatus of any one of claims 11 to 15, wherein the apparatus is controlled for

inserting a new Job to the delivery schedule data associated with one delivery crew available for delivery in one time slot; and

determining an order of insertion of the new Job into the delivery schedule data based on information of storage space available in a delivery vehicle to be operated by the delivery crew before or after an existing assigned Job in the delivery schedule data.

17. The apparatus of any one of claims 11 to 16,

wherein the apparatus is controlled for

inserting a new Job to the delivery schedule data associated with one delivery crew available for delivery in one time slot, and

determining an order of insertion of the new job into the delivery schedule data such that a job for delivery of one or more items is inserted after a job for collection of the one or more items.

18. The apparatus of any one of claims 11 to 17,

wherein the delivery schedule data comprises a first assigned job followed by a second assigned job,

wherein the apparatus is controlled for

inserting a new job to the delivery schedule data associated with one delivery crew available for delivery in one time slot, and

determining an order of insertion of the new Job into the delivery schedule data based on geographical information of the first assigned job and geographical location information of a collection point or a delivery point of the new Job.

19. The apparatus of any one of claim 18, wherein if the geographical area of the geographical information of the first assigned job matches the geographical area of the geographical information of the collection point or the delivery point of the new job, the new job is inserted after the first assigned job.

20. The apparatus of claim 18 or 19, wherein if the geographical area of the geographical information of the first assigned job does not match the geographical area of the geographical information of the collection point or the delivery point of the new job, the apparatus is controlled for

inserting the new job after the first assigned job if the geographical area of the new job is between the geographical area of the first assigned job and the geographical area of the second assigned job.

21. The apparatus of claim 20, wherein the geographical area of the new job is determined to be between the geographical area of the first assigned job and the geographical area of the second assigned job by

checking, beginning from the geographical area of the first assigned job and in a direction of travel towards the geographical area of the second assigned job, whether neighboring geographical areas of the geographical area of the first assigned job matches the geographical area of the geographical information of the collection point or the delivery point of the new job.

22. The apparatus of any one of the preceding claims 14 to 21 , wherein the apparatus is

configured for scheduling the new job based on whether the instruction received from the apparatus is for storing the one or more items or for retrieving the one or more stored items.

23. The apparatus of claim 22, wherein when delivery of the one or more items to be stored is scheduled, geographical location information of the one or more assigned warehouse for storing the one or more items is set as the assigned delivery point of the new job.

24. The apparatus of claim 22 or 23, wherein when delivery of the one or more items to be retrieved is scheduled, geographical location information of the one or more assigned warehouse storing the one or more item is set as the assigned collection point of the new job.

25. The apparatus of any one of the preceding claims, wherein each of the one or more items has a unique tracking number, the unique tracking number is associated with a Near Field Communications (NFC) identifier, and the NFC identifier is physically tagged to each of the one or more items to be stored.

26. The apparatus of any one of the preceding claims, wherein the apparatus is controlled for communicating with a mobile device configured to modify the warehouse availability data to adjust storage space availability for a warehouse.

27. The apparatus of any one of the preceding claims, wherein the apparatus is controlled for communicating with a mobile device configured to modify the warehouse availability data to add a new warehouse with specified available storage space.

28. The apparatus of any one of claims 11 to 27, wherein the apparatus is controlled for communicating with a mobile device configured to update item tracking data accessible to the apparatus, wherein the item tracking data comprises information of at least one step in a predetermined workflow beginning from collection of the one or more items to be stored from the assigned collection point and ending at delivery of the one or more items to be stored to the assigned delivery point.

29. The apparatus of any one of the preceding claims, wherein the apparatus is controlled for receiving a specified duration for the one or more items to be stored in a warehouse;

determining if the specified duration for storing of the one or more items has expired, and

generating an electronic form of acceptance for extending the duration for storing of the one or more items if the specified duration has expired.

30. The apparatus of claim 29, wherein a value in the electronic form of acceptance Is

calculated based on a time duration after the specified duration for the one or more items to be stored in a warehouse.

31. The apparatus of any one the preceding claims, wherein the apparatus is controlled for receiving a list of recipients for collecting one or more items stored in an assigned warehouse; and

alerting each recipient in the list by sending a message electronically to collect the one or more items from a predetermined location in a specified time frame.

32. The apparatus of claim 31 , wherein the apparatus is controlled for

alerting and sending information of the list of recipients to a user account owner associated with the assigned warehouse by sending one or more message electronically for preparation of the one or more items for collection by the recipients.

33. The apparatus of any one the preceding claims, wherein the apparatus is controlled for sorting the one or more items to be stored or retrieved based on location of the assigned one or more warehouses.

34. A method for managing item storage in warehouses, the method comprising:

receiving an instruction to store one or more items in a warehouse; receiving geographical location information of a collection point;

determining from predefined geographical data a geographical area in which the collection point is located based on the geographical location information of the collection point, wherein the predefined geographical data comprises data of a plurality of geographical areas comprising the geographical area, and data of the one or more neighboring geographical areas surrounding the geographical area;

assigning one or more warehouses to store the one or more items based on warehouse availability data, the warehouse availability data indicating one or more warehouses with storage space in the geographical area and one or more warehouses with storage space in one or more neighboring geographical areas surrounding the geographical area; and

scheduling delivery of the one or more items for storing in the assigned one or more warehouses.

Description:
Apparatus and Method for Managing Item Storage in Warehouses

Field

The present invention relates to an apparatus and a method for managing item storage in warehouses. More particularly, the present invention relates to an apparatus configured to facilitate warehouse service transactions, which comprises a matching process to find a warehouse to store one or more items and a delivery optimization process to schedule delivery of the one or more items to be stored in the warehouse. Background

Owners and operators of commercial warehouse spaces ("Store Owners") may now and then have unused storage capacity, but they have difficulty finding and coordinating storage with parties that have goods they wish to store ("Goods Owners"). Furthermore, it is difficult for the Store Owners to maximize the utilized capacity of the warehouses especially when goods move in and out of warehouses frequently. It is also difficult for the Goods Owners to find warehouse capacity that meets the needs of the Goods Owners while minimizing the logistics arrangements, expenses, etc.

On the other hand, the Store Owners may occasionally face sudden increase in the demand of warehouse spaces (e.g. during peak periods, for example Christmas, Lunar New Year) but the existing warehouses known to them have no extra capacity or there is lack of manpower to handle new orders for storage. In such a case, the Store owners may decline the orders or decide to find new warehouse spaces. This is problematic in that the process of finding new warehouse spaces (temporary or leased) can be burdensome and time consuming. Furthermore, each storage facility increases overhead costs. Thus, there may be a need for the Store Owners to utilize the warehouse capacity of other Store Owners too.

In United States Patent Publication No. 2016/0042312, there is provided a system and method that facilitate commercial warehouse storage and services transactions by receiving listings of commercial warehouse spaces available for storage and services, receiving a search request for space in which goods can be stored, receiving a request to store the goods in a requested space associated with a requested listing from the listing; providing the request to a storer associated with the requested space; receiving approval from the storer to store the goods in the requested space; and coordinating transportation of the goods to the requested space and materials handling. However, in such an arrangement, the service requester (which can be the Store Owners or the Goods Owners) needs to be engaged in the selection of the warehouse spaces from the listing of available warehouses spaces, which can be time-consuming. Furthermore, it may also be difficult for the service requester to find a particular listing to cater to a large quantity of goods or bulky items.

Summary

The invention is defined in the independent claims. Some optional features of the invention are defined in the dependent claims.

According to an aspect of an example of the present disclosure, there is provided an apparatus for managing item storage in warehouses, the apparatus comprising a memory and a processor configured to execute a program in the memory to control the apparatus for: receiving an instruction from a user to store one or more items in a warehouse; receiving geographical location information of a collection point from the user; determining from predefined geographical data a geographical area in which the collection point is located based on the location information of the collection point; assigning the warehouse to store the one or more items based on warehouse availability data, the warehouse availability data indicating one or more warehouses with storage space in the geographical area and one or more warehouses with storage space in one or more neighboring geographical areas surrounding the geographical area; and scheduling delivery of the one or more items to store in the one or more assigned warehouses, wherein the predefined geographical data comprises data of a plurality of geographical areas comprising the geographical area and the one or more neighboring geographical areas surrounding the geographical area. According to an aspect of an example of the present disclosure, there is provided a method for managing item storage in warehouses, the method comprising: receiving an instruction to store one or more items in a warehouse; receiving geographical location information of a collection point; determining from predefined geographical data a geographical area in which the collection point is located based on the geographical location information of the collection point, wherein the predefined geographical data comprises data of a plurality of geographical areas comprising the geographical area, and data of the one or more neighboring geographical areas surrounding the geographical area; assigning one or more warehouses to store the one or more items based on warehouse availability data, the warehouse availability data indicating one or more warehouses with storage space in the geographical area and one or more warehouses with storage space in one or more neighboring geographical areas surrounding the geographical area; and scheduling delivery of the one or more items for storing in the assigned one or more warehouses.

(Examples of the apparatus and a method for facilitating orders and delivery of items to be stored in a warehouse will now be described with reference to the accompanying figures in which:

Fig. 1 is a block diagram illustrating how an apparatus according to an example of the present disclosure communicates with an end user device and/or a crew device.

Fig. 2 is flow chart illustrating how a Goods Owner can place an order with an apparatus of the present disclosure for storing one or more items and how a Store Owner can update the availability of stores with an apparatus of the present disclosure.

Fig. 3A is a schematic diagram of different user groups of an apparatus of the present disclosure. Fig. 3B is a schematic diagram illustrating how an order is placed with an apparatus of the present disclosure.

Fig. 4A is a schematic diagram of an overall work flow of how an apparatus of the present disclosure manages item storage in warehouses.

Fig. 4B is a schematic diagram of how an item to be stored in the warehouse may be tracked. Fig. 5 is an example of how a country or a state may be subdivided into different geographical areas and neighboring geographical areas according to an example of the present disclosure.

Fig. 6 is an example of how a country or a state may be subdivided into different geographical areas and neighboring geographical areas according to an example of the present disclosure.

Fig. 7A is an example of how an item to be stored may be associated with one or more stores of an assigned warehouse and a delivery order according to an example of the present disclosure.

Fig. 7B is an example of how an item can be assigned to one or more stores according to an example of the present disclosure.

Fig. 7C is an example of a look up table for associating an item to one or more assigned stores stored in a database of the apparatus of the present disclosure.

Fig. 8A is a work flow of an apparatus of the present disclosure after an order is received.

Fig. 8B is flow chart illustrating a first example of a smart matching process executed by an apparatus of the present disclosure after an order to store one or more items is received.

Fig. 9 is flow chart illustrating a second example of a smart matching process executed by an apparatus of the present disclosure after an order to store one or more items is received.

Fig. 10 is a work flow illustrating how an item is stored in an assigned warehouse according to an example of the present disclosure.

Fig. 11 is a work flow illustrating how a previously stored item is retrieved from an assigned warehouse according to an example of the present disclosure. Fig. 12A is an example of how an item may be assigned or re-assigned to one or more stores according to an example of the present disclosure.

Fig. 12B to D illustrate an example of how a look up table is updated if an item is re-assigned to one or more stores according to an example of the present disclosure.

Fig. 13 is a workflow illustrating how a crew member tags (associates) an item to a store according to an example of the present disclosure.

Fig.14 is an overview illustrating how an order for storing or retrieving one or more items may involve a plurality of assigned warehouses according to an example of the present disclosure.

Fig. 15 is a flow chart illustrating how available dates and available slots for selection may be determined according to an example of the present disclosure.

Fig.16 is a flow chart on how a new job (Delivery Order, DO) is generated when an order is received according to an example of the present disclosure.

Fig.17 is a flow chart on how a new job (Delivery Order, DO) is generated when an order is received according to an example of the present disclosure.

Fig. 18 is a flow chart on how new delivery jobs are inserted into delivery schedule data for optimization (i.e. smart delivery) according to an example of the present disclosure.

Fig.19 is an example illustrating how new delivery jobs are inserted into delivery schedule data according to an example of the present disclosure.

Fig. 20 is an example illustrating how the new delivery jobs are inserted into delivery schedule data for optimization according to an example of the present disclosure.

Fig. 21 is an example illustrating how the new delivery jobs are inserted into delivery schedule data for optimization according to an example of the present disclosure.

Fig. 22A is a work flow of how one or more items are being collected for storing in one or more assigned warehouses according to an example of the present disclosure.

Fig. 22B is a work flow of how one or more stored items are being retrieved from one or more assigned warehouses according to an example of the present disclosure.

Fig. 23 is an example showing how an apparatus of the present disclosure communicates with a mobile device to update item tracking data when an order is placed for storing one or more items.

Fig. 24 is an example showing how an apparatus of the present disclosure communicates with a mobile device to update item tracking data when an order is placed for retrieving one or more items..

Fig. 25 is a workflow on how one more items may be stored in an assigned warehouse and arranged for collection by end users according to an example of the present disclosure.

In view of the problems stated in the Background section above, a need therefore arises for an apparatus and a method for managing items in warehouses which overcomes at least one of the aforementioned deficiencies in the prior art. Specifically, a need arises for an apparatus accessible to Store Owners and Goods Owners which eliminates the requirement to have the Goods Owners find and match their needs with the available warehouse capacity of Store Owners on their own and/or have the Store Owners putting in extra effort to coordinate manpower and the transportation of the goods to or from a warehouse space at times of higher storage demand.

Implementation of the techniques and examples disclosed herein may be particularly advantageous by providing an apparatus and a method for managing item storage in warehouses. In general, the apparatus assigns, on behalf of the Goods Owner, one or more warehouses with storage space to store one or more items based on warehouse availability data. The apparatus may also, on behalf of the Store Owner, facilitate un-utilised space in their warehouse to be used by others (e.g. goods owners) to store their items. As used herein, "Goods Owner" is a user with one or more items that needs to be stored in a warehouse and "Store Owner" is a user with one or more empty stores for storing one or more items.

As used herein, the term "item" may be considered as a pallet containing a plurality of objects or a single object for storage (e.g. a carton, a table, a chair). "Store" in the present disclosure refers to a holding area of a predetermined size in a warehouse for storing one or more items. It should be appreciated that in actual implementation, a warehouse space is not limited to a commercial warehouse space, but it can be a holding space that is sufficient to store the one or more Kerns, for example, a residential place, a garage, etc. Racks can also be set up on behalf of the store owners to build more store space (vertically) for storing more items.

The term "end user device" may be considered to be a computing device or a mobile device that can provide for connectivity to the internet. Thus, an end user device can be a Personal Computer (PC), laptop, netbook, mobile phone, smart phone, tabled PC and other equivalent devices any of these can be used to access the internet for. Typically, an end user device uses Local Area Network (LAN), router, Wireless Local Area Network (WLAN), Digital Subscriber Line (DSL), cable, 2nd to 5th Generation Telecommunication networks and the like for data communication required to register themselves as users of the apparatus for managing item storage in warehouses and/or sending requests to the apparatus to either indicate that there is one or more items to be stored (or collected) or to indicate that there are stores available for storing one or more items. The end user may comprise a client application for allowing a user to communicate with the apparatus at the end user device. Alternatively, the end user can simply type the hyperlink of a website in a web browser to arrive at a graphical user interface configured for communicating with the apparatus.

"Crew device" in the present disclosure refers to a mobile device that can provide for connectivity to the internet to communicate with the apparatus. It can be a mobile phone, a smart phone, tablet computer, and other equivalent hand-held devices which can be used as well. Typically, a crew device uses Wireless Local Area Network (WLAN), 2nd to 5th Generation Telecommunication networks and the like for data communication with the apparatus. The crew device may comprise a client application for allowing a crew member to update the status of the item to be stored at the warehouse and/or check the details of the collection jobs being assigned to the crew member.

A data communication system 100 according to an exemplary example of the present disclosure between an apparatus 102 for managing item storage in warehouses with an end user device 104 owned by a Goods Owner or a Store Owner and a crew device 106 owned by a crew member is illustrated in Figure 1.

The apparatus 102 may be a computing device and comprises a number of individual components including, but not limited to, processing unit 116, a memory 118 (e.g. a volatile memory such as a Random Access Memory (RAM) for the loading of executable instructions 120, the executable instructions defining the functionality the apparatus 102 carries out under control of the processing unit 116. The apparatus 102 also comprises a network module 125 allowing the apparatus to communicate over the communications network 108 (for example the internet). User interface 124 is provided for user interaction and may comprise, for example, conventional computing peripheral devices such as display monitors, computer keyboards and the like. The apparatus 102 may also comprise a database 126. It should also be appreciated that the database 126 may not be local to the server apparatus 102. The database 126 may be a cloud database.

The processing unit 116 is connected to input/output devices such as a computer mouse, keyboard/keypad, a display, headphones or microphones, a video camera and the like (not illustrated in Figure) via Input/Output (I/O) interfaces 122. The components of the processing unit 116 typically communicate via an interconnected bus (not illustrated in Figure 1) and in a manner known to the person skilled in the relevant art.

The processing unit 116 may be connected to the network 108, for instance, the Internet, via a suitable transceiver device (i.e. a network interface) or a suitable wireless transceiver, to enable access to e.g. the Internet or other network systems such as a wired Local Area Network (LAN) or Wide Area Network (WAN). The processing unit 116 of the apparatus 102 may also be connected to one or more external wireless communication enabled user device 104 and crew device 106 through the respective communication links 110, 112, 114 via the suitable wireless transceiver device e.g. a WiFi transceiver, Bluetooth module, Mobile telecommunication transceiver suitable for Global System for Mobile Communication (GSM), 3G, 3.5G, 4G telecommunication systems, or the like. The end user device 104 and/or crew device 106 can be a computing or mobile device, for example, smart phones, tablet devices, and other handheld devices. The one or more user devices 104 and one or more crew devices 106 may be able to communicate through other communications network, such as, wired network, mobile telecommunication networks, but these are omitted from Figure 1 for the sake of clarity. Instead of the system architecture described above for the computing or mobile device 102, the crew device 106 and/or the apparatus 102 may be a computing or mobile device having the system architecture of the end user device 104.

The end user device 104 may comprise a number of individual components including, but not limited to, microprocessor 128 (or processor), a memory 130 (e.g. a volatile memory such as a RAM) for the loading of executable instructions 132, the executable instructions defining the functionality the end user device 104 carries out under control of the microprocessor 128. The end user device 104 also comprises a network module (not illustrated in Figure) allowing the end user device 104 to communicate over the communications network 108. User interface 136 is provided for user interaction and control that may be in the form of a touch panel display and presence of a keypad as is prevalent in many smart phone and other handheld devices. The end user device 104 may also comprise a database (not illustrated in Figure), which may not be local to the end user device 104 but a cloud database. The end user device 104 may include a number of other Input/Output (I/O) interfaces 134 as well but they may be for connection with headphones or microphones, Subscriber identity module (SIM) card, flash memory card, USB based device, and the like, which are more for mobile device usage.

The software and one or more computer programs may include, for example, the client applications and may further include one or more software applications for e.g. instant messaging platform, audio/video playback, internet accessibility, operating the end user device 104 and crew device 106 (i.e. operating system), network security, file accessibility, database management, which are applications typically equipped on a desktop or portable (mobile) device. The software and one or more computer programs may be supplied to the user of the end user device 104 or the crew device 106 encoded on a data storage medium such as a CD-ROM, on a flash memory carrier or a Hard Disk Drive, and are to be read using a corresponding data storage medium drive for instance, a data storage device (not illustrated in Figure 1). Such application programs may also be downloaded from the network 108. The application programs are read and controlled in its execution by the processing unit 116 or microprocessor 128. Intermediate storage of program data may be accomplished using RAM 120 or 130.

Furthermore, one or more of the steps of the computer programs or software may be performed in parallel rather than sequentially. One or more of the computer programs may be stored on any machine or computer readable medium that may be non-transitory in nature. The computer readable medium may include storage devices such as magnetic or optical disks, memory chips, or other storage devices suitable for interfacing with a general purpose computer or mobile device. The machine or computer readable medium may also include a hard-wired medium such as exemplified in the Internet system, or wireless medium such as exemplified in the Wireless LAN (WLAN) system. The computer program when loaded and executed on such a general- purpose computer effectively results in an apparatus that implements the steps of the computing methods in examples herein described.

Figure 2 is a block diagram illustrating a block diagram of the apparatus 102 interacting with a user for managing item storage in warehouses. A user launches an application stored therein in his end user device 104 or enters the website through a browser window in a step 202 to communicate with the apparatus.

If the user has previously registered with apparatus, he is required to log in at a step 204. When the user logs in on his end user device 104 with his username and password in a step 206 for the first time on the device 104, a new salt may be randomly generated for each password for enhanced security. In a typical setting, the salt and the password are concatenated and processed with a cryptographic hash function, and the resulting output (but not the original password) is stored with the salt in a database 126 accessible by the apparatus 102. Hashing allows for later authentication while protecting the plaintext password in the event that the authentication data store is compromised.

It should be appreciated that the salt may be device specific and/or limited to a predetermined session (e.g. 30 days). For instance, if a user logs in with his password and username on device A, the salt issued may be used for a period of 30 days on the same device as long as the user has not logged out. In simpler terms, when the user logs in at a new user device B or has previously logged out at the same device A or that the time limit for the issued salt has expired, a new salt may be issued and the database 126 will be updated accordingly with the new resulting output.

For more enhanced security, random token generation may be introduced. In one arrangement, once the apparatus 102 has determined that the username and password matches with the database 126, the apparatus 102 authorises the user and issues a software token to the registered user. The issued token maybe stored in the database 126 and linked to his user account. Subsequent actions initiated by the user will require a token, and the apparatus 102 will compare the token that was issued and the token entered by the user through Input/Output (I/O) interface 122 (e.g. keyboard). If the tokens are matched, the apparatus 102 authorises the user with the initiated action. This process is similar to the well known One Time Password (OTP) authentication.

Based on the customer identification, the apparatus 102 is configured to identify the user group of the user in a step 208 through a look up table stored in the database 126 accessible by the apparatus 102. There may be a plurality of user groups 300 defined by the apparatus and each user group may be assigned different access rights to communicate with the apparatus 102. Referring to an example illustrated by Figure 3A, there may be four user groups: Admin 302, Crew Member 304, Store Owner 306 and Goods Owner 308. As used in the present disclosure, Admin 302, Crew Member 304, Store Owner 306 and Goods Owner 308 may refer to a user account created in the apparatus 102 or a human that owns/registered the user account. Administrative personnel 302 may be granted full access to all communication with the apparatus 102. A crew member 304 may be able to view and update statuses of items and stores for his assigned jobs. A Store Owner 306 may be able to update the number of stores in his warehouses) and may be able to view and track statuses of Kerns that are currently stored at his stores. A Goods Owner 308 may be able to issue an instruction to the apparatus to store his one or more items (or retrieve the one or more goods that were previously stored; step 216 of Figure 2). The Goods Owners 308 may also be allowed to view and track all instructions issued to the apparatus. In one configuration, the store owner 306 may also be configured as a goods owner 308.

Referring back to Figure 2 and with reference to Figure 3A, a user may initiate registration with the apparatus 102 at step 230 if login is not applicable at step 204. When the user registers with the apparatus 102 at step 232, he or she is required to fill in the required details, for instance the name, email address, usemame, password, credit card details for payment, and also indicate what type of user he wishes to be registered as. At step 234, the apparatus retrieves the user details, determines the user group of the user and updates the database 126 with the retrieved details at step 236. A verification email may be sent to the registrant at step 238 and upon successful verification, predetermined access rights will be assigned to the registered user in a step 242. If verification is determined at step 240 to be unsuccessful, no access rights will be assigned to the registrant in a step 244 and the registrant may be prompted with an error message. It should be appreciated that a registrant may only register as goods owner 308 and/or store owner 306 through the application stored therein in his end user device 104 or over a website accessible to the goods owner 308 and the store owner 306. Other user groups, Admin 302 and Crew Member 304, are created over at the back end (at the request of the owner of the apparatus 102).

The apparatus 102 may be controlled for communicating with a mobile device (e.g. end user device 104, crew device 106) configured to modify the warehouse availability data to adjust storage space availability for a warehouse. The apparatus may also be controlled for communicating with a mobile device configured to modify the warehouse availability data to add a new warehouse with specified available storage space.

In one example, if the apparatus 102 identifies the user as a store owner 306 at a step 210, the apparatus 102 allows the store owner 306 to communicate with the apparatus 102 via his user device 104 to update the details of his warehouse, which have available stores (storage space) for storing one or more items at a step 214. The apparatus 102 updates warehouse availability data in the database 126 at a step 218, wherein the warehouse availability data indicates one or more warehouses with storage space in a geographical area and one or more warehouses with storage space in one or more neighboring geographical areas surrounding the geographical area. The warehouse availability data may be in the form of a look up table, as shown below:

Table 1 : Look up table illustrating warehouse availability data

For instance, and referring to Table 1, Bob may communicate with the apparatus 102 through his user device 104 (e.g. via the application stored therein or via a website) to add a new warehouse with specified available storage space. In one example, Bob may indicate that he has a new warehouse B in District 1 , Sector 2 with 5 stores available. Bob may also communicate with the apparatus 102 through his user device 104 (e.g. via the application stored therein or via a website) to adjust storage space availability for a warehouse. In one example, Bob may indicate that the warehouse A in District 1, Sector 1 only has 5 available stores (from a previous record of 10) available till 31 Dec 2016 because of upcoming order constraints.

In another example, if the apparatus 102 identifies the user as a goods owner 308 at a step 212, the apparatus allows the goods owner 308 to place an order (i.e. issuing an instruction to the apparatus). An instruction to store one or more items in one or more warehouse or an instruction to retrieve one or more items that were previously stored in one or more assigned warehouses may be sent to the apparatus 102 by the user device 104 of the goods owner. If the apparatus determines at a step 216 that an order is placed, the apparatus initiates a smart matching process at a step 220 and/or a smart delivery process at a step 222. Smart matching is only executed by the apparatus if an instruction to store one or more items is received. Otherwise, the apparatus may display the status of the identified registered user at a step 224 on a screen. In such an instance, the apparatus may retrieve data of the identified customer from the database for display, for example, pending collection/delivery jobs and its corresponding status, outstanding bills, or current occupancy rate of the stores.

Placing Order

The process of placing order (step 216 of Figure 2) will be now further elaborated with reference to Figure 3B. In general, the apparatus 102 is controlled by executing a program 120 stored in the memory 118 of the apparatus 102 for receiving an instruction [Place Order (PO)] to store one or more items in one or more warehouse (assigned by the apparatus) or an instruction to retrieve the one or more items stored in one or more assigned warehouses. The apparatus 102 is also controlled for receiving a selection of one or more time slots available for fulfilling the order.

In one arrangement, the apparatus may be controlled for determining at a step 350 (corresponding to step 216 of Figure 2) if a goods owner 308 intends to place an order. At a step 352, the apparatus 102 receives an order (an instruction) from the goods owner 308, wherein the order indicates whether it is an "in-order" for storing one or more items or an "out order" for retrieving one or more items previously stored. Different details are required between storing of new items ("in order") and retrieval of stored items ("out order"). If the apparatus 102 determines at a step 354 that the goods owner 308 wishes to store items, the apparatus 102 requests information required for the transaction from the goods owner 308. The information required for the transaction may be the address of a collection (or loading) point (i.e. a geographical location where one or more items or goods are collected), date and time (e.g. AM/PM/Morning/Afternoon/Evening) for collection of one or more items to be stored in a warehouse, warehouse requirement (e.g. fire hazard, air-conditioned, refrigerated, chilled), type of package, and/or how long the one or more items should be stored etc. In one arrangement, the apparatus 102 may be configured for a goods owner 308 to select from a calendar showing the available dates and the available time slots for collection and/or delivery. Details for determining the available dates and available slots for fulfilling the orders would be elaborated later. The goods owner 308 is also required to add item to be stored individually to the packing list along with the dimensions and content declarations of the one or more items at a step 358. At a step 360, the apparatus 102 is configured for prompting the user to pay for the order made by means of known payment modes such as visa, paypal, nets and the like. In another arrangement, the apparatus 102 may issue an invoice to the goods owner 308 for settlement at a predetermined time at the step 360.

If the apparatus 102 determines at the step 354 that the goods owner 308 is placing an "out order" for retrieving items previously stored, the goods owner 308 is required to enter address of a delivery (or drop off, or unloading) point (i.e. a geographical location where one or more items or goods is delivered to) and preferred delivery date and time frame at a step 362. At a step 364, the goods owner 308 selects the one or more items that were previously stored to be retrieved and delivered to the delivery point. In another arrangement, the goods owner 308 may select from a drop-down list of transaction numbers of the "in-orders' previously performed (and not retrieved) by the goods owner 308. At a step 366, the apparatus 102 prompts the user to pay by means of visa, paypal, nets and other known payment modes. In another arrangement, the apparatus 102 may issue an invoice to the goods owner 308 for settlement at a predetermined time at the step 366.

Upon successful payment, an instruction to store a new list of items to be stored in a warehouse (i.e. places an "in order") or an instruction to retrieve a list of items that was previously stored (i.e. places an "out order") together with the relevant information is configured to be sent to the apparatus. It should be appreciated that the store owner 306 can also be configured as a goods owner 308 in the sense that the user has the right to place an "in-order" or an "out-order" with the apparatus 102.

A workflow involving a smart (warehouse) matching process for storing one or more items and retrieving the one or more items thereafter is illustrated in Figure 4A. Once a goods owner 308 has placed an "in order" at a step 402 using his end user device 104 and made payment for the order at a step 404, an instruction is issued to the apparatus 102 to store one or more Herns in a warehouse. The apparatus is configured to start the smart matching process at a step 406 to assign a warehouse to store the one or more items. Using the information retrieved from the "in order", the apparatus is configured to access a database (e.g. with reference to a look up table in a database) to check for availability of warehouses and the crew capacity to collect the items to be stored in order to display a list of dates and crew collection time shifts for the user to select to have the goods to be picked up at the collection point. Once one or more warehouses are assigned to store the one or more items (after the smart matching process), collection of the one or more items from the collection point can be arranged at a step 412 for storing at the one or more warehouses. The delivery is arranged and optimised by the apparatus 102 through a smart delivery process at a step 410 (to be discussed later). Delivery Orders) are then issued to a respective crew member at his crew device 106, for instance via communication link 114. Once the one more items are delivered and stored at the assigned warehoused) at steps 414 and 416, the work flow of storing items is completed. These stored items are retrieved when the goods owner 308 places an "out order" with the apparatus 102.

Once the user places an "out order" at a step 418 and payment has been received (or invoice has been issued) at a step 420, an instruction is issued to the apparatus 102 to retrieve the one or more items stored in one or more assigned warehouses. Similar to the work flow of storing items, collection of the one or more items from the one or more assigned warehouses can be arranged at a step 422 for delivery to a specified drop-off point in a step 424. This is also arranged by the apparatus 102 through a smart delivery process at a step 410 (to be discussed later). Once the one or more stored items are delivered to the drop-off point at steps 422 and 424, the work flow of retrieval of the one or more items is completed

In another configuration, the goods owner 308 may be able to place an "out-order" together with an "in-order". That is, the apparatus 102 may be configured to schedule collection one or more items from the collection point for storage at one or more assigned warehouses at a first scheduled date and time, and the apparatus 102 may be further configured to schedule retrieval of the one or more items stored at one or more assigned warehouses at a second scheduled date and time. In yet another configuration, the apparatus 102 may send a reminder to the goods owner 308 to place an 'out order" or extend the duration of the storage of the one or more items before the end of the time limit for storing the one or more items at the assigned warehouses.

Referring now to Figure 8A, once the apparatus 102 receives an order (i.e. instruction) from the goods owner 308 (or store owner 306) at a step 802, the apparatus 102 will determine if the instruction relates to an "in-order" (i.e. storing of items) or an "out-order" (i.e. retrieval of stored items) at a step 804. If it is an "in-order", the apparatus 102 will retrieve the list of goods to be stored at a step 806 and a unique tracking number will be assigned for each individual item at a step 808. A new order number for this "in-order" will be generated at a step 810 and subsequently used for the smart delivery process at a step 814. Smart matching will begin at a step 812 to assign a warehouse for storing the one or more items in the "in-order". If it is an "out-order", the apparatus will retrieve the list of items to be retrieved (and/or the assigned warehouse that stores these items from the data base) at step 816. A new order number for this "out-order" will be generated at a step 818 and subsequently used for the smart delivery process at a step 820. Smart Matching

Details of the smart matching process 850 are illustrated in Figure 8B. It should be appreciated that as illustrated in Figure 8A, the apparatus 102 only executes smart matching for "in-order" (i.e. storing of one or more items). In general, the apparatus 102 assigns a warehouse for storing an item based on geographical location information of a collection point received from the goods owner (see step 356 of Figure 3B) and warehouse availability data. The warehouse availability data indicates one or more warehouses with storage space in a geographical area and the one or more warehouses with storage space in one or more neighboring areas surrounding the geographical area. Figure 5 shows how a country (e.g. Singapore) or a state may be segmented into different geographical areas.

It should be appreciated that during smart matching, the apparatus 102 is controlled for assigning a warehouse for storing each individual item indicated in the list (step 806 of Figure 8A). For instance, if the apparatus 102 determines from an "in-order" that two items A (of standard size) and B (odd size) are to be collected from a collection point for storage, the apparatus will begin to assign a warehouse for Item A before assigning a warehouse for item B. It should be appreciated that the assigned warehouse for item 704 may or may not be the same as the assigned warehouse for item 706.

Referring now to Figure 8B, the apparatus 102 is configured for determining from predefined geographical data (e.g. data of a pre-sectorized map such as those in Figures 5 and 6) a geographical area (i.e. district) of the collection point based on the geographical location information (e.g. zip code, postal code) received by the apparatus 102 at step 852. For instance, postal codes in Singapore consists of six digits, wherein a postal sector is represented by the first two numbers of the postal code and the remaining four numbers define the delivery point within the sector. A plurality of postal sectors may be allocated to a district for broader categorization (as a first stage of apportionment). An example of predetermined geographical data (of the country or state shown in Figures 5 and 6) in the form of a look-up table is shown in Table 2 below:

It should be appreciated that although the apparatus 102 may be configured to determine all the geographical areas surrounding the neighboring geographical areas, the apparatus may also be controlled for determining the geographical areas that are not previously checked (i.e. excluding NO and N1). In one example, for instance to determine the geographical areas neighboring the neighboring geographical areas of district 22, i.e. districts 5, 21, 23, 24, the geographical areas surrounding these districts are first determined and the districts which have been previously checked for warehouse availability are not checked again. That is, when the apparatus 102 is controlled for determining if there are any warehouse with storage spaces in a plurality of geographical areas (i.e. n2) neighboring the one or more neighboring geographical areas (i.e. n1 ), only the districts (in bold and underlined in the column "N2" that have not been checked by the apparatus 102 are thus checked for warehouse availability. For instance, the geographical areas surrounding the neighboring geographical area 5 are districts 3, 4, 10, 21, 22, but districts 21 and 22 have been checked (during the nO and n1), thus only districts 3, 4 and 10 will be checked.

If the geographical area of the collection point is determined to further comprise a plurality of sectors at a step 854, the apparatus 102 is configured to select one sector from a plurality of sectors of the determined geographical area of the collection point at a step 856 and check if there are any warehouses registered by any store owner 306 in that sector at a step 858. In one arrangement, the apparatus 102 may be configured for selecting a sector which is nearest to the collection point (which can be the sector the collection point resides in). If the apparatus 102 determines from the warehouse availability data that there are one or more warehouses registered by any store owner 306 in that sector at the step 858, the apparatus 102 selects a warehouse from the one or more warehouses at a step 860. In one arrangement, the apparatus 102 is configured to select a warehouse which is nearest to the collection point at the step 860. In other arrangements, the apparatus 102 may be configured to select a warehouse according to alphabetical order of the one or more warehouses, according to the registration time of a store owner 306 of the one or more warehouses (i.e. time duration from the addition of a warehouse as part of the warehouse availability date), or according to number of empty stores the one or more warehouses has, and etc. If there are one or more warehouses with storage space having same distance away from the collection point, the apparatus 102 may be controlled for determining from the warehouse availability data a warehouse to store the item based on time duration from the addition of information of the one or more warehouses as part of the warehouse availability data. That is, loyalty of a store owner 306 may be a deciding factor when assigning a warehouse to store one or more items in an order.

If the apparatus 102 determines that if there are no warehouses registered by any store owner 306 in that sector at the step 858 and if the district comprises a plurality of sectors, the apparatus 102 may be configured to select the next sector of the determined geographical area of the collection point and repeat steps 856 to 862. For instance, referring to Figure 5 and Table 2, if the collection point is in sector 01 of geographical area 1, the apparatus 102 may be configured to select any of the other sectors 02, 03, 04, 05, 06 of geographical area 1.

If the apparatus 102 determines that that all sectors of the predetermined geographical area has been checked for suitable warehouses (e.g. fire hazard, air-conditioned, refrigerated, chilled) with storage space to store the one or more items, or if that the predetermined geographical area does not comprise a plurality of sectors, the apparatus 102 may be configured to select a geographical area or sector neighboring the determined geographical area of the collection point (i.e. direct neighboring geographical area, n1) in step 870, wherein the direct neighboring geographical area or sector (n1) is first determined from the predefined geographical data in a step 870. Steps 852 to 862 are then repeated. In one arrangement, the apparatus 102 selects the direct neighboring geographical area or sector which is nearest to the collection point. If all direct neighboring geographical areas or sectors are checked at step 872 and no suitable warehouses (e.g. fire hazard, air-conditioned, refrigerated, chilled) with storage space can be found, the apparatus 102 may be configured for selecting an indirect neighboring geographical area or sector from a plurality of indirect geographical areas (n2) neighboring the direct neighboring geographical area or sector (n1 ), wherein the plurality of indirect geographical areas or sector (n2) is determined from the predefined geographical data. It should be appreciated that the geographical areas in n2 are further away from the collection point than geographical areas in n1. For instance, referring to Figures 5 and 6, if the collection point is in district 1, the apparatus 102 will determine if there are any warehouses registered by any store owner 306 in geographical area 1, followed by any of the direct neighboring geographical areas 6, 7, and 15, followed by any of the indirect neighboring graphical areas 2, 3, 8, 9, 14, and 16 and so on. Likewise, if the collection point is in district 22 (as indicated by line A-A' in Figure 5), the apparatus 102 will determine if there are any warehouses registered by any store owner 306 in geographical area 22, followed by any of the direct neighboring geographical areas 5, 21 , 23 and 24 (n1 , e.g. areas as indicated between lines A-A' and as indicated by B-B' in Figure 5), followed by any of the indirect neighboring graphical areas 3, 4, 10, 11, 25, and 26 (n2, e.g. areas as indicated between lines B-B' and C-C in Figure 5) and so on.

If the apparatus 102 determines (from the warehouse availability data) that the selected warehouse from the one or more warehouses at the step 860 in the selected sector or selected geographical area (if the geographical area does not have a plurality of sectors) at the step 856, the apparatus 102 checks if the selected warehouse has any storage space for the item to be stored at the step 862. If the apparatus determines at the step 862 that the selected warehouse has storage space for the item to be stored (Yes), the selected warehouse will then be assigned for storing the one or more items to be stored at a step 864. It should be appreciated that the apparatus 102 may also be configured to assign one or more unoccupied store(s) (a store may refer to a storage space in a warehouse) to each of the one or more items that are to be stored in the assigned warehouse at the step 864. In a simple example, the apparatus may be controlled for arranging a first item in the one or more items listed in a sequence placed by the goods owner 308 to be stored in an assigned first store, and/or for arranging a second item in the one or more items listed in the sequence to be stored in an assigned second store and/or for arranging a third item (that requires the storage space of two stores) in the one or more Herns listed in the sequence to be stored in an assigned third store and an assigned fourth store, and so on. If the apparatus 102 determines that the selected warehouse does not have storage space for the item to be stored (No) at the step 862, the apparatus 102 is configured to repeat the steps 856 to 862.

In another arrangement, if the apparatus 102 determines that the selected geographical area (i.e. district) does not comprise a plurality of sectors, the apparatus 102 may simply determine (from the warehouse availability data) if there are one or more warehouses registered by any store owner 306 in that geographical area at the step 856. If there are no warehouses with storages space in the selected geographical area, the apparatus 102 is configured to repeat steps 870 to 880. Districts further from the collection point (at progressing distance) are also searched for suitable warehouse with storage space at a step 880. In one example, if there are no suitable warehouses (e.g. fire hazard, air-conditioned, refrigerated, chilled) with storage space in indirect neighboring districts n2, the apparatus may be configured for checking for warehouses in geographical areas surrounding the indirect neighboring geographical area (n3). For instance, referring to Figure 5, geographical areas between line C-C' 506 and D-D' 508 (n3) may be searched first before geographical areas between line D-D' 508 and E-E' 510 (n4).

The apparatus 102 is also controlled for checking if all the items in the "in-order" have been assigned warehouse to store the one or more items at a step 866. If so (i.e. "yes"), the process is completed in a step 868. However, if there are one or more items to be stored that has not been assigned a warehouse for storage, (i.e. "no" at the step 866), the process 850 repeats for the next item.

Optionally, the apparatus 102 may be controlled for sending an alert if the assigned warehouse is more than a predetermined distance from the collection point (of an "in order") or if the assigned warehouse is more than a predetermined distance from the specified delivery point (of an "out order"). In one example, if the apparatus 102 assigns a warehouse which is more than 100km away (which is too far) from the collection point, an email may be sent to a service crew for further verification. In one arrangement, the apparatus 102 may be controlled for receiving an instruction to replace the assigned warehouse of the one or more items with a specified warehouse specified by a service crew. Optionally, the apparatus 102 may also be controlled for sending a separate notification to the goods owner that a service crew will be contacting him about the order he placed.

As discussed above, the goods owner may indicate multiple items of standard size (e.g. standard pallet size) while placing an "in-order" for storing one or more items. Alternatively, if an item (e.g. 706 of Figure 7B) does not fall under the standard dimensions, the goods owner may indicate the dimension of an item while placing order. The apparatus 102 may be controlled for calculating the number of store spaces (ST) required to store the item. For instance, if the goods owner may indicate that an item to be stored is 1200mm by 2000mm by 1400mm, and if the predetermined store space is 1200mm by 1200mm by 150mm, the apparatus can calculate the number of storage space required to store the item using the following formulae:

Thus, depending on the dimension of an item to be stored, the item may take up more than one unit of holding areas (e.g. item 706 taking up stores 726, 728). In such case, the apparatus 102 will need to know if there are suitable warehouse (depending on the warehouse requirement indicated by the goods owner, e.g. fire hazard, air-conditioned, refrigerated, chilled with storage space) with such capacity in the step 862. A goods owner places an "in-order" for 4 items, 3 pallets of goods (standard store size) and one odd-sized item determined to occupy three store spaces. That is, the items require a total of six store spaces. (Total space required: 1+1+1+3=6)

If warehouse A and B each have 5 store spaces, wherein warehouse A is nearest to the collection point followed by warehouse B (assuming both warehouses are in the same sector), implementation of the smart matching processing will give the below results:

Find nearest store for item 1 (standard size) => Warehouse A

Find nearest store for item 2 (standard size) => Warehouse A

Find nearest store for item 3 (odd size) => Warehouse A

Find nearest store for item 4 (standard size) => Warehouse B

As shown in this example, the one or more items of an "in-order" (i.e. items 1 - 4) for storage are arranged to be stored in warehouses A and B. Thus, subsequently if the goods owner would to retrieve all items 1-4 (by placing an "out-order") and have these items delivered to a specified drop-off point, the retrieval of items 1-4 will have to be collected from several warehouses. Thus, it should be appreciated that the apparatus 102 may be configured to issue or generate at least two delivery orders (DO) for an "in-order" and/or an "out-order 1 . Details of generating delivery orders will be elaborated later.

In another arrangement, while "placing an out order" for retrieving one or more stored items, the goods owner may retrieve some of the one or more items specified in an earlier "in- order * or retrieve one or more items across multiple "in-orders". For instance, in example 1, the goods owner may place a first "out-order" for items 1 and 2 to be delivered to one specified dropoff point and place a second "out-order" for items 3 and 4 and/or two items in another "in-order" to be delivered to another specified drop-off point. It should be appreciated that in a preferred arrangement, there is only one specified collection point for each "in-order" for storing one or more items and there is only one specified delivery point for each "out-order" for retrieving one or more items.

Referring back to the work flow of Figure 4A, the skilled person would understand that for the fulfillment of an "in order" (i.e. for storing one or more items), collection of the items has to be done before dropping them off at one or more assigned warehouses; whereas for the fulfillment of an "out order" (i.e. have stored items to be retrieved), collection of the stored items from the one or more assigned warehouses has to be done before dropping them off at one or more specified drop off points. In short, the apparatus 102 is configured to arrange collection and drop off according to the below rules:

.wherein n is the generated order number for an "in order" or an "out order" (step 810 and 818 of Figure 8A), and i is the nth drop-off for storing or retrieving all the items in the "in order" or an "out order * respectively, C symbolizes collection of the one or more items and D symbolizes delivery (or drop off) of the one or more items. Figure 14 illustrates two examples on a map 1400 showing how orders may be fulfilled. A first example 1402 demonstrates how an "in-order" may be done. In this first example, there is a Job for collection of items in district 22 (of Table 2), and subsequently the items to be stored are arranged to be delivered to a plurality of assigned warehouses (in districts 23, 20, 12 of Table 2) for storage. The second example 1404 demonstrates how an "out-order" may be done. In the second example, there is a job for delivery of items to district 19, wherein the items are collected from a plurality of assigned warehouses (in districts 17, 16, 18) storing these items.

Likewise, in the first example as discussed above, where the apparatus 102 receives an instruction to store a plurality of items in one or more warehouses, and distributes the plurality of items for storing separately in the more than one assigned warehouses, four delivery orders are generated, i.e. (assuming the generated order number is

1234).

Referring to Figure 9, the apparatus 102 may be configured for executing smart matching in another arrangement 900. Similar to Figure 8B, the apparatus 102 assigns a warehouse to store each of the one or more items based on warehouse availability data. But in this arrangement, the apparatus 102 may be controlled for calculating the total storage spaces required to store one or more items in an "in-order" at a step 902 before the apparatus 102 assigns a warehouse with such storage spaces to store all of the items. The apparatus 102 identifies from predefined geographical data the geographical area (can be a sector of a geographical area or a geographical area) of the collection point based on the location information of the collection point retrieved from the "in-order" at a step 904. At a step 906, the apparatus 102 identifies from warehouse availability data a list of warehouse with storage space to house all the Herns in the geographical area. The apparatus 102 determines if such a list exists at a step 908. If such a list exists at the step 908, the apparatus 102 is configured to identify the nearest warehouse with storage space at a step 910 and assign the same warehouse to each of the one or more items at a step 912. It should be appreciated that the apparatus 102 may also be configured to assign one or more unoccupied store(s) (a store may refer to a storage space in a warehouse) to each of the one or more items that are to be stored in the assigned warehouse at the step 912. But if such a list does not exist, and if the determined geographical area of the collection point comprises a plurality of sectors ("Yes" at a step 916), the apparatus 102 may be configured to identify a list of available warehouse in a nearest sector of the district at a step 918 and repeat steps 908 to 912. If all sectors in the determined geographical area are checked ("No" at the step 916) and there are more warehouses in the database ("Yes" at a step 920), the apparatus 102 is configured to identify the nearest sector neighboring the determined geographical area of the collection point at a step 922 (or direct neighboring geographical area if the determined geographical area does not comprises one or more sectors) and repeat the steps 906 to 912. But if the apparatus 102 determines that there are no other warehouses with the total storage space required to store all the items, the apparatus 102 may inform a service crew (e.g. pop-up message or email) at a step 924 that there are no more warehouses. In another example, if the apparatus 102 determines that there are no other warehouses with the total storage space required to store all the items, the apparatus 102 may be configured to use an alternative smart matching algorithm (for instance the algorithm as explained in Figure SB.)

It should be appreciated that in another arrangement, the apparatus 102 may also be configured to calculate the total storage space required to store a portion of the one or more items. For instance, if there are six items to be stored in warehouse^), the apparatus 102 may be configured to calculate the total space required for storing any three items of the six items and the total space required for storing the remaining three items.

A goods owner places an "in-order" for 4 items, 3 pallets of goods (standard store size) and one odd-sized item determined to occupy three store spaces. That is, the items require a total of six store spaces. (Total space required: 1 +1 +1 +3=6)

If warehouse A and B each have 5 store areas, wherein warehouse A is nearer to the collection point than warehouse B (assuming both warehouses A and B are in the same sector), and warehouse C has 10 store spaces but is further than warehouse B (warehouse B may be in a different sector), implementation of the smart matching processing according to an example (i.e. Figure 9) wherein a nearest warehouse with sufficient store space to house all items is preferred, the below following results will be obtained:

Find nearest store for item 1 (standard size) => Warehouse C

Find nearest store for item 2 (standard size) => Warehouse C

Find nearest store for item 3 (odd size) => Warehouse C

Find nearest store for item 4 (standard size) => Warehouse C

It should be appreciated that a plurality of store spaces may be located at different parts of the warehouse, and thus the store spaces may not be adjoining to one another (cf . ST 4 and ST 5 in Figure 7B). For instance, referring to Figures 7B and 7C, there may be an item 704 [corresponding to Near Field Communication (NFC) identifier 710] and having a unique tracking number 704) occupying a store space ST 1t and another item 706 (corresponding to NFC identifier 712 and having a unique tracking number 706) occupying store spaces ST 4 and ST S (corresponding to NFC identifiers 718 and 719). In a case where the apparatus 102 is configured to arrange (by smart matching) for a third item (which require three store spaces) to be stored in the assigned warehouse 714, It should be easily understood that a crew member may need to rearrange item 706 to occupy the store spaces ST 2 and ST 3 in order for the third Item to occupy the store spaces ST 4 , ST s and ST 8 . It may be that the crew member is required to affix new tags to an empty store, or overwrite the data associated with the tag of the store space In order to reflect the database of the apparatus 102 correctly (for use during the smart delivery). For instance, and referring again to the example of Figures 7B and 7C, the crew member needs to affix new tags to store spaces ST 2 and ST 3 , and update the database such that the new assigned store numbers ST 2 and ST 3 are associated with the tracking number of item 2 (TR 2 ), which are also associated with new NFC tag identifiers f24d356 and f25d357 (not shown in figure).

In yet another example, the apparatus 102 may be configured to assign a warehouse to store an item that requires more than a predetermined number of store spaces such that no rearrangement of other items stored in the assigned warehouse is required. This can be achieved by monitoring the status of previous store tags (e.g. 718 and 719 of Figure 7B) so that the apparatus 102 is aware that a warehouse currently has adjoining spaces for such an item.

$tf>art PeKvery

Details of the smart delivery process to be executed by the process of the apparatus 102 are illustrated in Figures 15-18. As illustrated in Figures 4A and Figures 8A, the apparatus will execute smart delivery when an order (regardless whether the order is an "in order" for storing one or more items or an "out order" for retrieving one or more stored items). In general, the apparatus 102 assigns a delivery job based on delivery schedule data, wherein the delivery schedule data comprises a plurality of time slots that are available and unavailable for delivery. The delivery schedule data may further comprise one or more delivery crews that are available for more delivery jobs on a scheduled time slot and one or more assigned jobs of the one or more delivery crews at that scheduled time slot. As used herein, a delivery job and/or an assigned job may be considered as a job for collection of one or more items to be stored (Sc), a job for delivering the one of items to be stored to one or more assigned warehouses (Sd), a job for collection of the one or more items to be retrieved from the one or more assigned warehouses (Rc), or a job for delivering of items to be retrieved (Rd).That is, both "in-order" and "out-order" placed by a goods owner 308 will result in generation of new delivery jobs to be added into the delivery schedule data.

Smart delivery has to be understood with the following information. As discussed in smart matching, the one or more items to be stored may be arranged to be stored in one or more assigned warehouses. The apparatus is controlled for executing smart delivery after smart matching. In another arrangement, a first apparatus is controlled for executing smart matching, while a second apparatus is controlled for smart matching, wherein the first and second apparatus access a common database. For each order, there will be at least one collection (or loading) point and at least one delivery (or unloading) point. In a preferred arrangement, the apparatus 102 may be configured to receive one collection point when placing an order for storing one or more items in one or more warehouses, while the apparatus 102 may be further configured to receive one delivery point when placing an order for retrieving one or more stored items in one or more assigned warehouses. Thus, the apparatus is controlled to generate at least one Sc (Storing - Collection) job and at least one Sd (Storing - Delivery) job for an "in-order", wherein Sc is for collecting one or more items to be stored from a collection point specified by the goods owner 308 and Sd is for delivering the one or more collected items for storing in one or more assigned warehouses. Likewise, the apparatus is controlled to generate at least one Rc (Retrieving - Collection) job and at least one Rd (Retrieving - Delivery) job for an "out-order", wherein Rc is for retrieving one or more items previously stored in the one or more assigned warehouse and Rd is for delivering the one or more previously stored items to a delivery point specified by the goods owner 308. Each delivery crew typically operates one delivery vehicle.

GenerattQfl a , rqsfl tjflivety job,

A flow chart wherein a new delivery job is created is shown in Figures 16 and 17. It should be appreciated that at the time an order is made, the delivery date and time slot provided to a goods owner for selection has to be available. In another arrangement, the apparatus is controlled for receiving selection of one or more time slots unavailable for delivery of the one or more items as a prioritised request for the one or more items to be delivered in the one or more time slots unavailable for delivery. For the sake of simplicity, creation of new delivery job for unavailable date and unavailable time slots is not discussed here. However, it should be appreciated that an alert message may be sent from the apparatus to the service crew to manually arrange a delivery crew for the attendance of a collection/delivery job. For instance, back up crew may be arranged for support or additional shifts by collection/delivery crew may be required. In another arrangement, the apparatus is controlled to check the availability of a plurality of back up crew.

For each order (regardless "in-order" or "out-order"), at least two delivery jobs will be generated by the apparatus, wherein one delivery job is for the collection of one or more items (Sc or Rc) from an identified starting location and the other delivery job is for the drop off (or unloading) of these items (Sd or Rd) to an identified destination.

In the case of "in order":

The apparatus 102 may be controlled (by executing a program stored in the memory of the apparatus 102) to generate a first job for collecting the one or more items to be stored from the specified collection point in the "in-order" and a second job for delivering (or unloading) these items to one or more assigned warehouses.

Figure 16 illustrates how a job for collecting the one or more items to be stored from the specified collection point is generated after a goods owner places an "in-order".

The apparatus 102 is controlled for selecting an order (can be in-order or out-order but in the present example, an "in-order") that a goods owner 308 has placed at a step 1602 and for sorting the one or more items in the selected order based on the location of an assigned warehouse for storing the one or more items, WH L oc (during smart matching) at a step 1603. In another arrangement, the one or more items in the selected order may be sorted based on the location of one or more assigned warehouse and/or the item size, and subsequently based on the geographical area of one or more assigned warehouse. In one example, all items to be stored in a warehouse A are collated together, all the items to be stored in a warehouse B are collated together, and all items to be stored in a warehouse C are collated together. Subsequently, the apparatus may be configured to sort by ranking and arranging all the one or more items in warehouse B higher than all the one or more items in warehouse A and rank all the one or more items in warehouse A higher than all the one or more items in warehouse B because warehouse C is closest to the specified collection point and warehouse B is furthest from the specified collection point.

The apparatus 102 is controlled for selecting an item from a list of the sorted items at a step 1604. The apparatus is then controlled for retrieving the schedule delivery data relating to a specified date and a specific time slot in the "in-order" at steps 1606 and 1608. The apparatus 102 selects from a list of delivery crew, a delivery crew working during that specified date and specified time at a step 1610. In one example, the apparatus 102 may be configured for selecting a delivery crew with a smaller delivery vehicle first before selecting a delivery crew with a bigger delivery vehicle. The apparatus is configured to check if the selected delivery crew is under its maximum crew capacity (i.e. whether can handle more jobs) at a step 1612. (Explanation on how an apparatus 102 determines whether a crew is operating under its maximum crew capacity will be discussed later. If the apparatus determines that the selected crew is above its maximum crew capacity (i.e. not able to handle more jobs), the apparatus selects the next crew working during the specified date and specified time of the selected order.

If the apparatus 102 determines that the selected delivery crew is under maximum crew capacity (or able to handle more jobs), the apparatus 102 determines if a specified location (Order L oc) of an item in the list of sorted Items matches with the specified location of a previous item in the list of sorted items at a step 1614, wherein the identified location is a collection point specified by the goods owner 308 while placing an "in-order". It should be appreciated that for a first item in the list of the sorted items, there will not be a previous item (and thus the location of the selected item cannot be the same as the location of the previous item). Hence for the first item, the condition of step 1614 is "no" and the apparatus is controlled to determine if the selected delivery crew is under maximum crew capacity (or able to handle more jobs) at a step 1620.

For the first item in the list of the sorted items, it is appreciated that it has to be a "yes" at the step 1620 because it would have been previously determined at step 1612 to be a "yes". Hence, the apparatus is controlled for generating a new job at a step 1622.

The apparatus 102 then determines at a step 1624 if that item can fit into the empty delivery vehicle. If the first item can fit into the empty delivery vehicle, the new job for collection of the item is slotted into the delivery schedule data of the delivery crew at a step 1626. If the item cannot fit into the empty delivery vehicle, the apparatus 102 is controlled for determining if there are any other crew working during that specified date and specified time indicated in the selected order at a step 1636. For instance, if an empty delivery vehicle managed by the selected crew can store 6 items (of standard size), but the item itself requires a total space of 7 items (of standard size), the delivery vehicle will not be suitable for collecting the item. Hence, a delivery crew pre- assigned with or who owns a bigger delivery vehicle may be selected at step 1610. It should be appreciated that if the selected item (of the list of sorted items) cannot fit into the empty delivery vehicle, the new job generated at the step 1622 will be deleted. That is, the new job for the collection (or delivery) of that item will not be assigned to the particular delivery crew.

Thus, if the apparatus determines that there is other delivery crew working during that specified date and specified time indicated in the selected order, the apparatus 102 is controlled for selecting the next delivery crew to repeat steps 1610 and 1612. But if there is no other available crew working during that specified date and specified time indicated in the selected order, the apparatus 102 Is controlled for sending an alert to a service member at a step 1628. In another arrangement, the apparatus is controlled to check the availability of a plurality of back up crew.

The apparatus 102 then checks if all the items in the sorted list (sorting was done at step 1603) have been assigned a delivery job at a step 1632. That is, if the selected item at step 1604 is the last item in the sorted list the apparatus may be controlled to add corresponding drop off job(s) at a step 1634. Further elaboration on how corresponding drop off jobs will be discussed with reference to Figure 17. If there are one or more items in the "in" or "out" order that have not been assigned jobs, the apparatus 102 is controlled to select the next item in the order at step 1604 and repeat steps 1606 to1612. In a preferred arrangement, the apparatus 102 may be configured to select the same crew assigned to collect the earlier item(s) listed in the order first (e.g. by searching a reference number of an earlier new job associated with the selected order). Assuming there is more than one item in the order ("yes" In step 1632), the apparatus 102 determines at the step 1612 if the crew selected at step 1610 is under max capacity. Thus, if the first item of the list of sorted items does not occupy the storage space of the (empty) delivery vehicle managed by the crew assigned to handle the first item, the apparatus selects the same crew at step 1610. The apparatus 102 is controlled for checking if the specified location (Order LO c) of the currently selected item matches with the specified location of the previous item at step 1614. Since there is only one specified collection point in an "in-order in a preferred arrangement (i.e. "Yes" at step 1614), the apparatus 102 then checks if the empty delivery vehicle of the selected delivery crew can fit all the items that have been assigned to be collected by the selected delivery crew and the selected item (to be assigned) at a step 1616. Of course, the apparatus may also be configured to allow for a plurality of collection points placing an "in order". In such an arrangement, step 1614 will be pertinent to the generation of new delivery jobs to each of a plurality of the specified collection points.

If all the items that have been thus assigned and the item to be assigned can fit into the empty delivery vehicle at step 1616, the apparatus 102 slots the collection of the item to be assigned in the same job at step 1618. It should be appreciated that if all the items that have been thus assigned and the item to be assigned cannot fit into the empty delivery vehicle at step 1616, the apparatus 102 may be controlled for increasing the number of jobs (or cycles) the crew is to handle and for clearing a buffer for storing the specified location of the previous item. That is, it may be that the crew will be at its maximum crew capacity after a new Sc job has been assigned to the crew. The apparatus 102 also checks if the selected crew is still under maximum crew capacity at step 1620 if all the Kerns that have been thus assigned and the item to be assigned cannot fit into the empty delivery vehicle ("Yes" at step 1616).

In one example, if an empty delivery vehicle can store 6 items (of standard size), and the order is for collecting 5 items (of standard size), the apparatus 102 will assign all 5 items in the order to the same delivery crew for collection. In such a case, one delivery job for all 5 items (to be collected at a collection point) is issued. In another example, if an empty delivery vehicle can store 6 items (of standard size), and the order is for collecting 10 items (of standard size), and assuming if the selected delivery crew has no other assigned jobs in the specified time slot (i.e. when the apparatus is determining Kern 7 within the list of sorted items at step 1603, the selected crew is under maximum crew capacity at step 1620), the apparatus 102 will assign two new delivery jobs for the delivery crew, one for collecting six items and the other for collecting the remaining four items. It should be appreciated that the apparatus 102 may be configured to determine if the selected delivery crew will be unavailable for new delivery jobs after receiving a new or updated delivery job (Sc) for collecting the one or more items to be stored (at steps 1618 or 1626). The step of determination if the selected delivery crew will be unavailable is not illustrated in Figure 16 for the sake of simplicity. Once new storing - collection job(s) (Sc) has been issued for an "in order", the apparatus 102 is configured to generate the corresponding storing - delivery job(s) (i.e. Sd) at a step1634.

Exampje ft

Assume that an order (which has the generated order number 234) for storing 20 items (of standard size) for a specified time slot of a specified date is placed, and the apparatus 102 has identified only two delivery crews (A and B) available for such time slot

Crew A: Available for 1 more storing or retrieving job (of an in-order or out-order)

Crew B: Available for 2 more storing or retrieving job (of an in-order or out-order)

Assuming Crew A and Crew B have the same capacity (can store up to six items of standard size), following the flow chart of Figure 16, the apparatus 102 will assign

Items 1 -6: Crew A (S. C 234 ).

Items 7-12: Crew B (S.C Z 234 )

Items 13-18: Crew B (S.C| 34 )

Items 19-20: Send alert (Order has not been fulfilled)

It should be appreciated that once the delivery job S.Cf 34 is issued for items 7-12, the apparatus may be configured to update the schedule delivery data to reflect that crew B is available for 1 more storing or retrieving job. Likewise, once the delivery job S. C| 34 is issued for Herns 13-18, the apparatus may be configured to update the schedule delivery data to reflect that crew B is not available for any more jobs. In example 5, two delivery jobs for collection (S.C 2 234 and S.C| 34 ) have been issued for Crew B. It should be appreciated due to storage capacity of the delivery vehicle of crew B, Crew B has to make another trip to the collection point to collect items 13-18. In an alternative arrangement, the apparatus 102 may be configured to check the total number of vehicle storage space to fulfil the order and if there are more than one available delivery crew (or vehicles), the apparatus 102 assigns a delivery vehicle that has the storage capacity to handle all items listed in the order. It should also be appreciated that if there is another delivery crew C available for the specified time slot, the apparatus 102 would generate a new Sc job S.Ci 34 for delivery crew C to collect items 19-20 for storing in one or more warehouses. That is, four Sc jobs may be issued just for the collection of items 1 -20 in order to fulfil the order with order number 234.

Assume that a first order (which has the generated order number 123) for storing 5 items (of standard size) and an order (which has the generated order number 234) for storing 4 items (of standard size for a same specified time slot of a same specified date is placed, and Crew A is available for 2 more storing or retrieving jobs (of an in-order or out-order).

Assuming Crew A can store up to six items of standard size, following the flow chart of Figure 16 the apparatus will assign

First Order for 5 Hems: Crew A (S. Ci 23 ).

Second Order for 4 items: Crew A (SC 1 234 ).

In this example, two delivery jobs for collection have been issued for Crew A, wherein each delivery job for collection is for the fulfilment of an individual order. It should be appreciated when two delivery jobs for collection of the items in the first order and second order are issued to Crew A, the apparatus 102 may be configured to update the schedule delivery data to reflect that Crew A is unavailable for any more collection jobs. That is, whether a crew is available for any more collection jobs may be dependent on the number of orders fulfilled and/or the number of jobs that meets the full truck storage capacity (i.e. maximum order fulfillment capacity Cycles).

Sfcrina - Prep off or Storing delivery (Sd)

Once the storing - collection (Sc) jobs have been issued for an "in order", the apparatus 102 is configured to generate the corresponding storing-delivery (Sd) jobs at a step 1634 according to the location of the assigned warehouses (through smart matching) for storing the one or more items.

The apparatus 102 may be configured for retrieving the location of one or more assigned warehouse (saved in the database 126 of the apparatus 102 or a database accessible to the apparatus 102) that store the items in the "in-order" and for generating storing - drop-off jobs (Sd) based on the location information of the assigned warehouses. In general, once the one or more items to be stored are collected and loaded into the delivery vehicle, the apparatus 102 only needs to drop off the one or more collected items to the designated drop - off points, which in this case, are the locations of the one or more warehouses assigned to store the collected items.

Turning now to Figure 17, the apparatus 102 is controlled for selecting a first new storing- collection job assigned to the delivery crew at a step 1702, and selecting an item in that job at a step 1704. If the location of the assigned warehouse (WHoc) of that item does not match the location of the assigned warehouse of an earlier item, the apparatus 102 generates a new Sd job and slot into the delivery schedule data of the delivery crew. It should be appreciated that for a first item in a list of items in the new Sc job, there will not be a previous item (and thus the WHioc of the first item cannot be the same as WH te of a previous item). Hence, for the first item, the apparatus is controlled to generate a first Sd job and Insert into the delivery schedule data of the assigned delivery crew at a step 1710. At a step 1712, the apparatus 102 checks if the selected Item at step 1704 is the last item. If there are more items in the selected job, the apparatus 102 is controlled for selecting the next item in the list of items in the job at the step 1704. At the step 1706, if the location of the assigned warehouse (WH^) of the selected item (e.g. second Kern) matches the location of the assigned warehouse of an earlier item (e.g. first item), the apparatus 102 slots in the drop off of that item in the same job at a step 1708.

If the apparatus 102 determines that the selected Kern is the last item of the selected job at the step 1712, the apparatus 102 is controlled for determining if there are any more new jobs being assigned to the delivery crew at a step 1714. If there are more new jobs being assigned to the delivery crew, the apparatus 102 selects the next new job at the step 1702. If all the new Sc jobs have been allocated with the corresponding Sd jobs, the apparatus is controlled for optimising the order of the new Jobs in the delivery schedule data of the delivery crew at a step 1716.

It should be appreciated that since the items in an order ("in order" or "out order") have been sorted according the location of the assigned warehouse at step 1603 in Figure 16, the apparatus only need to determine if the location of the warehouse assigned to store that item matches with the location of the warehouse assigned to store a previous Kern (if there are more than one item in the order).

For illustration, the same scenarios of .Example 5 are used and represented in Table 3 below.

Table 3

As illustrated in the table 3 above, two Sd Jobs, Sd1 and Sd2, are issued for the first Sc Job.Scl, because items 1-6 have to be delivered to Warehouses A and B. Likewise, two Sd jobs, Sd3 and Sd4, are issued for the second Sc job and Sd5 and Sd6 are issued for the third Sc job, because Kerns 7-12 have to be delivered to Warehouses B and C, and that items 13-18 are delivered to warehouses C and D. Thus, in the above example, the apparatus 102 may generate a total of 9 delivery jobs (three Sc jobs and six Sd jobs). In one other arrangement, the apparatus 102 may be configured to determine all the items to be stored at each assigned warehouse, and if an empty vehicle is able to store all the items, only two delivery job (one Sc and one Sd job) are generated for the collection of the items to be stored at an assigned warehouse from the collection point. For instance, since five items are to be stored in Warehouse A, five items are to be stored in Warehouse B, five items are to be stored in Warehouse C and three items are to be stored in Warehouse D, and assuming the delivery vehicle can hold up to six Kerns (of standard size), the apparatus 102 may generate a total of 8 delivery jobs (four Sc jobs and four Sd jobs).

In another example, using the same scenarios of [Example 6, there is provided a first

Storing-collection job for Items 1-5. If Items 1-3 are to be stored at Warehouse A and Items 4 and 5 are to be stored at Warehouse B, two storing-delivery (Sd) jobs will be generated by the apparatus 102. Thus, in total, three delivery jobs are issued for the order for storing Kerns 1-5 in Warehouses A and B. There is also provided a second Storing-collection job for Items 1-4. If Items 1-4 are to be stored at Warehouse C, one storing-delivery (Sd) jobs will be generated by the apparatus 102. Thus, in total, two delivery jobs are issued for the order for storing items 1 -4 in Warehouses C.

In a case of "out order":

The apparatus 102 may be controlled (by executing a program stored in the memory of the apparatus 102) to generate a first job for delivering the one or more retrieved Kerns (that were stored) to the specified delivery point in the "out-order" and a second job for retrieving the items that were previously stored in one or more assigned warehouses.

Similar processes (as described in Figures 16 and 17) may apply for generating new delivery jobs for an out-order (i.e. an order for retrieving one or more items that are stored in one or more assigned warehouses to a specified delivery point in the "out-order". In a preferred arrangement, the apparatus 102 may be configured to generate a retrieval-delivery (Rd) job first before a retrieval-collection (Rc) job when one or more retrieved Kerns are to be delivered to a specified delivery point (indicated in the "out-order"). Advantageously, this may allow the Items to be collected from one or more assigned warehouse (as many as an empty delivery vehicle can store) before delivering to the specified delivery point. This may allow the delivery crew to make fewer trips to the specified delivery point in order to fulfil the order.

Steps for generation of new Sc jobs have been previously described in Figure 16. The same steps apply for generating new Rd job, and thus no further elaboration is necessary. However, it should be noted that at the step 1614, when the apparatus is controlled for determining whether an identified location (Order L oc) of an item selected at the step 1604 matches with the identified location of the previous item at the step 1614, the identified location is a delivery point specified by the goods owner 308 while placing an "out-order". In a preferred arrangement, there will be only one specified delivery point in an "out-order". Of course, the apparatus may also be configured to allow for a plurality of delivery points while placing an "out order". In such an arrangement, step 1614 will be pertinent to the generation of new delivery jobs to each of a plurality of the delivery points.

The apparatus 102 may be controlled to retrieve data of the stored items (to be retrieved) from item tracking data stored in the database 126 of the apparatus 102 or a database accessible by the apparatus 102 at the step 1603 to obtain the location of one or more assigned warehouse that are storing the items to be retrieved (WH^). Item tracking data may comprise information of at least a step in a predetermined workflow beginning from collection of the one or more items to be stored from the assigned collection point and ending at delivery of the one or more items to be stored to the assigned delivery point (e.g. the assigned warehouses). Item tracking data may also comprise information of at least a step in a predetermined workflow beginning from collection of the one or more items to be retrieved from the assigned collection point and ending at delivery of the one or more Items to be retrieved to the assigned delivery point.

Example 7

In one example, where an order (which has the generated order number 456) for retrieving 15 items (of standard size) at a specified time slot of a specified date is placed, and the apparatus 102 has identified only two delivery crews (A and B) available for such time slot (i.e. under maximum crew capacity at step 1612).

Crew A: Available for 2 more storing or retrieving job (of an in-order or out-order)

Crew B: Available for 1 more storing or retrieving job (of an in-order or out-order)

Assuming Crew A and Crew B have the same capacity (can store up to six items of standard size), following the flow chart of Figure 16, the apparatus 102 will assign

Once new retrieval - drop off job(s) (i.e. Rd) has been issued for all the items in an "out order" (i.e. "yes" at step 1632), the apparatus 102 is configured to generate the corresponding retrieval - collection job(s) (i.e. Rc) at the step 1634.

Retrieval- Collection (Rc)

Steps for generation of new Sd jobs have been previously described in Figure 17. The same steps apply for generating corresponding new Rc job, and thus no further elaboration is necessary. For illustration, the same scenarios of Example 7 are used and represented in Table 4 below.

Table 4

In an alternative arrangement, the apparatus 102 may be configured to generate Rc delivery jobs based on the location of the assigned warehouse associated with each individual Kern (instead of the specified delivery point in the order, Order LOC )- That is, and referring to Figure 16, at step 1614, the apparatus is configured (by executing a program stored in the memory of the apparatus 102) to check at the step 1614 if the selected item in the list of sorted items (sorted at step 1603) is stored at the same location as the previous item selected in the list of sorted items . In simpler terms, the apparatus may be configured to check if the location of the assigned warehouse (i.e. WH L oc, instead of Order L oc) of the selected item matches with the location of the assigned warehouse of the previous item at the step 1614. If the current item and the previous ltem(s) are stored in the same location, the current selected item is slotted into the same delivery job at a step 1618 when the current item and the previous item(s) can fit into an empty delivery vehicle (determined at a step 1616). Other steps of the flow chart of Figure 16 are applicable to Retrieval - Collection (Rc) in this alternative arrangement and have been previously described. Thus, no further elaboration is necessary. Instead, Retrieval - Collection (Rc) in this alternative arrangement is further illustrated with the below example.

Examples

A goods owner places an "out order" (with a generated number 234) for retrieving one or more items, wherein the order is for the retrieval of eight items (of standard size) to be delivered to a specified delivery point at a specified time slot of a specified date, and wherein items 1-4 are previously stored in Warehouse A and 5-8 items are previously stored in Warehouse B.

Assuming if there are two available delivery crews A and B for that specified time slot (i.e. under maximum crew capacity) and their delivery vehicles can hold a maximum of 6 items (of standard size), and each delivery crew has only one available slot, the apparatus 102 will select the first item of the sorted out-order at a step 1604 and select delivery crew A at a step 1610. Since it is the first item in the sorted list (sorted at step 1603) to be determined for generating a delivery job and the first item can fit into the empty delivery vehicle, the apparatus 102 is controlled to generate and slot in a new delivery job (R. C} 3 *) for collecting Item 1 at a step 1622 (after steps 1612 to 1614 and 1620 to 1626). The apparatus 102 will then check if there are any more items in the order at a step 1632. Since there are more Kerns, the apparatus 102 selects the second item of the sorted list and repeats steps 1604 to 1610. In one preferred arrangement, the same available crew for collecting the first order is selected at the step 1610. For instance, the apparatus 102 may be controlled to search an available delivery crew that has the same generated purchase order. Since Kerns 1 and 2 can be stored in the delivery vehicle of Crew A and item 2 is delivered to the same location as item 1 (after steps 1614 and 1616), the Kern is slotted into the same delivery job (R- C? 34 ). The process is repeated for items 3 and 4.

In this example 8, Kern 5 will arrive at the step 1614. Although Kerns 1-5 can fit into the empty delivery vehicle of Crew A (i.e. not more than 6), item 5 is stored in a different location as Kern 4 (i.e. Warehouse B cf. Warehouse A). Thus, a new delivery job (R- Cf 34 ) is generated for Crew A to collect item 5 from Warehouse B before delivering to the specified delivery point at the step 1622. Since Kerns 1-6 can fit into the empty delivery vehicle and item 6 is stored in the same warehouse as Kern 5, item 5 is slotted in for the delivery job (R- C| 34 ).

In this example, item 7 will arrive at the step 1616. At this step 1616, the apparatus 102 determines that Kern 1-7 cannot fit into the empty delivery vehicle. That is, the delivery vehicle of Crew A is at its maximum storage capacity. The apparatus 102 may then be controlled for increasing the number of jobs (or cycles) the crew is to handle and for clearing the buffer for storing the specified location of the previous item at the step 1620 (in order to allow a new job to be generated at step 1622).The apparatus 102 then determines at the step 1616 if the selected crew is still under maximum crew capacity. Since Crew A has only one available slot and has been assigned to fulfil items 1-6, the apparatus will determine that Crew A is at its maximum crew capacity. As such, the apparatus will determine if there are any other available crew working at the specified time slot and the specified date (of the order). It should be noted that at this point, a delivery job has not been assigned for Kern 7 and the apparatus 102 will update the schedule delivery data such that Crew A is unavailable for any jobs at the step 1630. As mentioned earlier, Crew B is assumed to be also available at the specified time slot. Thus, the apparatus 102 selects Crew B after the steps 1602 and 1604 and there is no previous job relating to this order generated for crew B. The apparatus 102 determines at the step 1624 if Kern 7 can fit into an empty delivery vehicle. A new delivery job (R- C| 34 ) for the retrieval of item 7 stored in Warehouse B is thus generated for Crew B. The apparatus 102 then determines at a step 1632 if there is another item in the sorted list, which has not been assigned a delivery job. Since Kern 8 has not been assigned a delivery job, the apparatus 102 will now be controlled to select Kern 8 at the step 1604 and select Crew B at the step 1610. Since Kerns 7 and 8 can fit into an empty delivery vehicle of Crew B, and item 8 is stored at the same location as item 7, item 8 will be slotted in the same delivery job (R- Cf 34 ) at a step 1618 (after steps 1614 and 1616).

In this example, once the retrieval - collection jobs have been issued for an "out order * , the apparatus 102 is controlled to generate the corresponding retrieval-delivery jobs Rd at the step 1634 according to the location of the specified delivery point indicated in the "out order" (see step 362 of Figure 3B). In such arrangement, the apparatus 102 may be configured to check If the location of the specified delivery point in the order (i.e. Order LO c, instead of WH L0C ) of the selected item matches with the location of specified delivery point of the previous item at step 1706.

It should be appreciated that the items may be delivered to the specified delivery point in one or more trips because of the limitation of the capacity of the delivery vehicle. Using the [Example 8 as discussed earlier, 3 Rc jobs (and 3 corresponding Rd) have been generated. Thus, assuming an empty delivery vehicle can hold a maximum of 6 items (of standard size), and referring to the Table 5 below, it is possible for a delivery crew (with two available slots) to choose at least the following:

(a) First, collect items 1 -6 (or items 1 -4, 7-8) from warehouse A and warehouse B respectively before delivering to specified delivery point. Next, collect items 7 and 8 (or 5 and 6) from warehouse B before delivering to specified delivery point.

(b) Second, collect items 1 -4 from warehouse A and deliver to specified delivery point. Collect items 5-8 from Warehouse B and deliver to specified delivery point.

Optionally, the apparatus 102 may be configured to consolidate Rd jobs if an empty delivery vehicle can store the items of another Rc job. For instance, since the empty delivery vehicle can hold a maximum of 6 items (of standard size), the apparatus may 102 consolidate R- Df 34 and R-fljf 34 ) as one Rd job. The apparatus 102 may also consolidate R- D? 34 and R-Df 34 ) as one Rd job. The apparatus may also consolidate R- Df 34 and R- flf 34 as one job and R- C| 34 and R- Cf 34 as one job, for instance if the delivery vehicle managed by crew B can store items 5-8. That is, the apparatus 102 may also be further configured to check other alternative options and select an option that require less trips made by the delivery crew.

It should be appreciated that once all the items in the order ("in order" or "out order') has been checked for assigning delivery job, the apparatus 102 may be configured for determining if any of the crew(s) that has been assigned with new delivery jobs has reached its maximum order fulfilment capacity(not illustrated in Figure). Should a crew that has been assigned with new jobs has reached its maximum order fulfillment capacity for the specified time slot, the apparatus 102 will update the delivery schedule data such that the selected crew is not available at the specified time slot. Maximum order fulfillment capacity may be defined as the maximum number of "in-order" and/or "out-order and/or the maximum number of delivery jobs that meets full truck storage capacity, whichever condition is met first. In another arrangement, maximum order fulfilment capacity may be defined in relation to number of cycles handled by a delivery crew. A cycle may be defined herein as a case where collected items from a location or a plurality of locations are to be delivered to one location specified by the goods owner 308 in an order (e.g. Rd) or a case where items are collected from one location specified by the goods owner 308 in an order are to be delivered to a location or a plurality of locations (e.g. Sc). That is, the apparatus 102 may be controlled to determine the number of times an identified location (collection point entered when placing an "in order" in step 356 of Figure 3B and/or delivery point entered when placing an "out order" in step 362 of Figure 3B) exists in the particular time slot of the delivery schedule data associated with the particular crew.

In general, , the apparatus 102 may be controlled for associating the Rc job (or Sc job) with the corresponding Rd job (or Sc job) and for inserting a job for delivery of one more items after a job for collection of the one or more items. That is, Sc or Rc are inserted before the corresponding Sd or Rd jobs. The apparatus 102 may also be controlled to optimise the delivery schedule for the new delivery jobs generated such that in one arrangement, the delivery schedule may be optimised based on the location of the earlier assigned jobs of the crew and the truck (delivery vehicle) capacity at the end of each job.

As discussed earlier, the apparatus 102 may be controlled to insert new job(s) for collection or delivery of items (to be stored or previously stored) into the delivery schedule of a delivery crew if the delivery crew is still available for more new job(s). Thus, there may be a need to optimize the delivery schedule of the delivery crew after new job(s) (e.g. Rc and Rd or Sc and Sd) is inserted. In one preferred arrangement, at least two new jobs are inserted into the delivery schedule for an order. In one configuration, the apparatus 102 may be controlled for associating the Rc job (or Sc job) with the corresponding Rd job (or Sc job). Delivery jobs for collection of items are prioritized over delivery jobs to one or more assigned warehouses or the specified delivery point. This Is because the items to be delivered will have to be collected from a specified collection point or one or more assigned warehouses. Thus, it may be preferred that the first inserted new delivery job is a collection job (i.e. Sc or Rc) .

Alternatively, the apparatus may be configured to separate the two delivery jobs across two shifts or across two days. In one example, items to be stored may be collected today but delivered to the assigned warehouse the next day.

Figure 18 is a flow chart illustrating how the delivery schedule data may be optimized by the apparatus 102. The delivery schedule may comprise a first assigned job (A1) followed by a second assigned job (A2). The apparatus 102 is controlled to identify a delivery crew which has new delivery jobs inserted to a particular shift of a particular date (steps 1802-1806). The apparatus 102 then selects a first new delivery job (Crtew) at a step 1808 and determines the geographical area (D1) of the collection point of the new delivery job (Cnew) at a step 1810. At a step 1812, the apparatus 102 is controlled to select an assigned job (A1) within a shift at a step 1812. Obviously, if there are no assigned jobs for the specified time slot, the apparatus 102 merely inserts it as the first assigned job (not illustrated in Figure). The apparatus 102 then determines the geographical area (D2) of the selected assigned job (A1). At a step 1816, the apparatus 102 is controlled to determine if the geographical area of Cnew (D1) matches with the geographical area of A1 (D2). If D1 and D2 is the same, the apparatus 102 is controlled to check remaining space of the delivery vehicle after the assigned job (A1) has been completed at a step 1826. If the remaining space of the delivery vehicle has room for the items in the inserted job, the apparatus 102 slots the new job (Cnew) after the assigned job (A1) at a step 1830. Alternatively, If D1 of Cnew matches D2 of A1 , and the space of the delivery vehicle (before the assigned job has been completed) has room for the items in the inserted job, the apparatus 102 may slot the new job (Cnew) before the assigned job (A1) at the step 1830. In another arrangement, if D1 of Cnew matches D2 of A1 and if that geographical area (i.e. D1 or D2) has a plurality of sectors, the apparatus may be controlled to determine the insertion of the new job based on a distance to the sector of Cnew and/or a distance to the sector of A1. In one example, if the sector of A1 is closer (than sector of Cnew) to a location where the delivery vehicle starts his journey to the next job, the apparatus inserts the new job (Cnew) after the assigned job (A1 ).

If the apparatus 102 determines that the geographical area of Cnew (i.e. D1) does not match with the geographical area of A1 (i.e. D2) at the step 1816, the apparatus 102 is controlled to check if there are at least two assigned jobs at the selected time slot (selected at the step 1808) in the delivery schedule data of the selected delivery crew at a step 1820. If D1 is not the same as D2 as determined in the step 1816, and if there is only one job at the selected time slot in the delivery schedule data of the selected delivery crew as determined in the step 1820, the apparatus is configured to insert the new job (Cnew) after the selected assigned job (A1) at the step 1830. It should be appreciated if there is only one job at the selected time slot in the delivery schedule data of the selected delivery crew, it will be meaningless to have the apparatus 102 determine if the geographical area of the new delivery job is in between two geographical areas of two consecutive assigned jobs (e.g. A1 and A2).

But if D1 is not the same as D2 at the step 1816, and if the apparatus 102 checked that there are two assigned jobs in the delivery schedule data at the step 1820, the apparatus 102 selects the next assigned Job (A2) at a step 1812 (assuming there are more assigned jobs at a step 1832). It should be appreciated that typically, if there is a first assigned job which is for collection (A1) of Hems, there is at least one other assigned job (i.e. A2) for delivery of the items collected in the first assigned job (A1) in the same time slot. In one other arrangement (not illustrated in Figure 18), the items may be collected at the specified time slot but delivered at another time slot/another date. At a step 1814, the apparatus 102 is once again controlled to determine the geographical area (D2) of the next assigned job (A2) and the step 1816 is repeated to check if the geographical area of the new delivery job Cnew is the same as the geographical area of the next assigned job (A2). If they are the same, steps 1826-1836 may be repeated. If it is determined at the step 1816 that the geographical area of the new delivery job, Cnew, is not the same as the geographical area of the next assigned job A2, the apparatus 102 is configured for retrieving the geographical area of the previous assigned job (DO) at a step 1822. At a step 1824, the apparatus 102 determines if the geographical area D1 of Cnew is between the geographical area DO of the previous assigned job (e.g. A1) and the geographical area D2 of the next assigned job (e.g. A2) at a step 1824.

If the apparatus 102 determines at step 1824 that the geographical area of the new job is between the geographical area of a first assigned job (e.g. Previous assigned job A1) and the geographical area of a second assigned job (e.g. A2), the apparatus 102 is controlled to check the remaining space of the delivery vehicle before the selected job (e.g. A2) is completed at a step 1840. In other words, the apparatus 102 is controlled for determining the remaining space of the delivery vehicle after the previous assigned job (A1 ) is completed at the step 1840. If the apparatus 102 determines that there is room in the delivery vehicle for the item(s) of the inserted job at a step 1842, the apparatus is controlled for Inserting the new job (Cnew) before the selected job (A2) at a step 1844.

Advantageously, the new job is inserted to optimize the delivery route when it is in the same geographical area of the selected assigned job or it is between the geographical areas of two assigned jobs (i.e. along a route to fulfill another delivery job).

However, if the apparatus 102 is not able to fulfill the above requirements (geographical area of a new job being the same geographical area as an assigned job or in between the geographical areas of two consecutive assigned jobs, and that the delivery vehicle has room to store the items of the new job) during the determination of an order of insertion of the new job into the delivery schedule data, and if there are no other assigned jobs for the apparatus 102 to check at a step 1832, the apparatus 102 slots the new job right at the end of all the previous assigned jobs at a step 1830.

Once the first new job is inserted, the apparatus 102 will repeat the flow chart 1800 if there are more new jobs to be inserted into the delivery schedule data at a step 1834. In one preferred arrangement, the apparatus is controlled for inserting a new job for collection and a new job for delivery into the delivery schedule data, wherein the new job for delivery is a corresponding job of the new job for collection. As mentioned earlier, in one preferred arrangement, at least two new jobs (e.g. Rc and Rd or Sc and Sd) are inserted for a delivery crew.

The apparatus may be controlled for determining an order of insertion of the new job into the delivery schedule data such that a job for delivery of one or more items is inserted after a job for collection of the one or more Hems. Thus, if the next new job is a delivery job (Rd or Sd), it has to be inserted after the items to be delivered have been collected (the corresponding Rc or Sc). Thus, if the new job is Rd or Sd, the apparatus 102 is configured such that the selection of the assigned job within the shift at the step 1810 to be an assigned job after its corresponding job Rc or Sc. In another configuration, the apparatus 102 is controlled to slot in new jobs after a job relating to unloading of items (i.e. Rd or Sd). This reduces computational effort as the condition for a delivery vehicle with more storage space will be higher. The workings of the flow chart would be better appreciated In the following examples.

In this example, as seen in Figure 19, the apparatus 102 determines from predefined geographical data (e.g. look up table stored in a database) the geographical area of an identified destination based on the geographical location information of the new delivery jobs 1902 and 1904. For instance, since Sc 1902 Indicates the Items are to be collected from Pasir Ris, the identified location is Pasir Ris and is residing in the geographical area 18. Likewise, since Sd 1904 indicates the items are to be delivered to Yishun, the identified location is Yishun and is residing in the geographical area 27. The apparatus 102 is also controlled to determine the geographical area of the previous assigned jobs in a list 1906 and the remaining available space in a delivery truck after each of the previous assigned job. Data illustrated by a look up Table 6 as shown below may be generated by a processor of the apparatus for computing purposes.

Table 6

With reference to Figures 18 and 19, the apparatus 102 is controlled to determine if the geographical area of the new delivery job 1902 (i.e. 18) matches with the geographical area of the first assigned job 1910 (i.e. 22) in the list of previous assigned jobs 1906 at the step 1816. Since the geographical areas are not the same (22≠ 18), the apparatus 102 compares the geographical area (i.e. 18) of the new delivery job 1902 with the geographical area (i.e. 21) of the second assigned job 1912 in the list of previous assigned jobs 1906 ("Yes" at step 1832). The apparatus 102 then checks at the step 1822 if the geographical area (i.e. 18) of the new delivery job 1902 is between the geographical area (i.e. 22) of the first assigned job 1910 and the geographical area (i.e. 21) of the second assigned job 1912. Now referring to Figure 5, the apparatus 102 is controlled to determine from the retrieved information that if a delivery vehicle in a district (or geographical area) 22 is in a direction of travel 512 moving towards district 21. In one arrangement, the apparatus may be controlled to determine if the geographical area of the new job is between the geographical area of the first assigned job and the geographical area of the second assigned job by checking, beginning from the geographical area of the first assigned job and in a direction of travel towards the geographical area of the second assigned job, whether neighboring geographical areas of the geographical area of the first assigned job matches the geographical area of the geographical information of the collection point or the delivery point of the new job. In this example, since the geographical area (i.e. 18) of the new delivery job 1902 is not a geographical area neighboring the geographical area (i.e. 22) of the first assigned job 1910, the apparatus 102 determines that the geographical area (i.e. 18) of the new delivery job 1902 is not between the geographical area (i.e. 22) of the first assigned job 1910 and the geographical area (i.e. 21) of the second assigned job 1912. In fact, the geographical area of the second assigned job (i.e. district 21) will be a (nearer) neighboring district to district 22 before the district 18.

Referring to table 6 above, the neighboring districts (n1) of the geographical area of the first assigned job 1910 are 5, 21, 23, 24, which does not include district 18. The apparatus 102 then compares again the new job 1902 with the third assigned job 1914 at the step 1814. Since the geographical area of assigned job 1914 and that of the new job 1902 is the same, the apparatus 102 checks if the delivery vehicle can store the items to be collected in the new job 1902 (requires 4 spaces). Referring to the table 6 above, the apparatus 102 is able to determine that the remaining truck space after job 1914 at the step 1830 is left with 6 spaces. As such, the apparatus 102 is able to conclude that the items in the new job 1902 can fit into the delivery vehicle after the assigned job 1914.

The apparatus 102 then selects the next new delivery job 1904 at the step 1808. The apparatus 102 is configured to select the assigned job 1916 (right after job 1902) at the step 1812. The job optimization process repeats from the step 1816. As indicated in Figure 19, the identified location of the new delivery job 1904 is in geographical area 27, which is not the same as that of jobs 1916 and 1918. Furthermore, the identified location of the new delivery job 1904 is not between the geographical areas of the jobs 1902 and 1916 and also not between the geographical areas of the jobs 1916 and 1918. Thus, it is inserted at the end of the all the jobs. To be clear, the determination of "between geographical areas of two jobs" has to be judged in light of a direction of travel of the delivery truck between the jobs.

The identified location of the job 1918, Yishun, is in district 27. Hence, based on the above table 5 and in view of Figure 6, district 27 is not between the geographical areas of the jobs 1902 and 1916 and also not between the geographical areas of the jobs 1916 and 1918. For instance, the geographical area of the job 1918 is identified to be in district 19, which is a geographical area neighboring (n1) the geographical area of the job 1916 (i.e.18). In contrast when viewed in a direction of travel 612 of Figure 6, the geographical area of the Job 1904 (i.e. 27) is in a much further neighboring district (n4).

Figure 20 illustrates another example for determining an order of a new delivery job in relation to previous delivery jobs (if any) in accordance with a job optimization process 1800 of Figure 18. Referring to Figure 20, a list 2006 illustrates a list of assigned jobs 2010-2018 associated with a particular driver in a particular shift, whereas a list 2008 illustrates a list of jobs associated with a particular driver in a particular shift after the job optimization process 1800. In this example, and referring to Figure 5, although the geographical area of a job 2002 is between the geographical area of the jobs 2012 and 2014 (n1<n2<n4), the delivery vehicle has no room for the items of the job 2002 because the delivery vehicle only has 2 space left (see table 7 below). Thus, the apparatus 102 continues with the job optimization process with the rest of the assigned slots. Since the identified location of the job 2002 is not in the direction of travel between Tampines Gob 2014) and Pasir Ris (job 2016), and not in the direction of travel between Tampines (job 2016) and Pasir Ris (job 2018), the apparatus 102 slots the new Rc job 2002 right at the end of all the previous assigned jobs (2010-2018) in the list 2006 at the step 1836.

It should also be noted that since the new Rd job (delivery) 2004 is associated with the new Rc job (collection) 2002 and there are no other assigned jobs after the new Rc job 2002, the apparatus 102 is controlled for inserting the corresponding new Rd job 2004 right after the Rc job 2002. That is, the items to be delivered in the new Rd job 2004 have to be collected first in the corresponding Rc job 2002.

Figure 21 illustrates another example for determining an order of a new delivery job in relation to previous delivery jobs (If any) in accordance with the job optimization process 1800 of Figure 18. This example differs from Figure 20 in that the delivery vehicle has space for the items to be collected in a job 2102. Furthermore, it is clear that the new job 2102 is inserted before an assigned job 2114 (step 1844 of Figure 18) and after an assigned job 2112 because it is convenient for the delivery crew to en-route to Ang Mo Kio from Clementi before en-routing to Tampines. It should be appreciated that from Figure 5, the identified destination of the job (Ang Mo Kio) is a closer neighboring district (in n2) of Clementi, as compared to the identified destination of job (Tampines) is a further neighboring district (n4) of Clementi.

As discussed earlier, if the new job to be selected at the step 1808 is a delivery job (i.e. Sd or Rd) corresponding to that newly-inserted Sc or Rc job, the apparatus is configured for selecting an assigned job listed after the newly-inserted Sc or Rc job (if any) at the step 1812, if the new job to be selected at the step 1808 is a delivery job (i.e. Sd or Rd) corresponding to that newly-inserted Sc or Rc job.

In this example, since new Sd job 2104 selected at the step 1808 is a delivery job that is corresponding to the inserted job 2102, the apparatus selects an assigned job 2114 (that is after the new Sc job 2102) at the step 1812. As such, the new job 2104 is inserted after the assigned job 2114 because the geographical area of the assigned job 2114 is the same as the geographical area of the new job 2104. As illustrated in Figure 19-21, it is clear that the apparatus 102 may be controlled for determining how the new delivery job is added as part of the delivery schedule data by considering the distance away from a previous delivery job and a direction of travel from a previous delivery job towards the next delivery job.

In an alternative arrangement (from Figures 19 to 21), the apparatus may be controlled to schedule one job in a time slot or date different from the specified time slot and date that a goods owner has indicated while placing an order with the apparatus. In one example, the apparatus may be controlled to schedule a job for collection of the one or more items (Sc or Rc) to be in a first time slot (I.e. AM) of a specified date and schedule a job for delivery of the one or more items (Sd or Rd) to be in a second time slot (i.e. PM) of a specified date. The first time slot may be the same as the second time slot. The second time slot may also be a time slot after the first time slot In another example, the apparatus may be controlled to schedule a job for collection of the one or more items as the last Job for a delivery crew on a particular day and schedule a job for delivery of the one or more items to be the following day. That is, the apparatus may be controlled for determining an order of insertion of the new job into the delivery schedule data such that a job for delivery of one or more items is inserted after a job for collection of the one or more items.

Updating of item Tracking Dat and Wsrehouse Availability Data

Referring now to Figures 7 A and 7B, a goods owner may indicate in an "in-order * 702 that there is a plurality of Kerns (e.g. 704, 706) for storing in one or more warehouses. The reference numerals of elements having similar features and functions in Fig. 7A are reused in Fig. 7B and Fig. 7C for convenience. Upon arrival at a collection point, each item (e.g. 704,706) of the "in order" may be allocated with a unique identifier (e.g. 710, 712) that can automate physical goods tracking. Identifiers (e.g. 710, 712, 717, 718 and 719) includes barcode, and/or tags [e.g. Radio Frequency Identifier (RFID), NFC tags] or the like can be associated with tracking numbers visible to the goods owner(s) and store owner(s) involved in the transaction. These identifiers (e.g. 710, 712) can be read by multiple tracking technologies, such as barcode reader, smart phones with barcode scanning apps for barcode embodiments or NFC-equipped devices for embodiments using NFC tag. It should be appreciated that NFC tags are labeled individually with a unique NFC tag identifier. Similarly, each warehouse (e.g. 714) can have a unique storehouse number 716. The warehouse may have indoor stores (e.g. 720, 722, 724, 726, 728, 730) or outdoor stores (not illustrated in Figure). In one arrangement, each indoor store (e.g. 720, 726, 728) can also have a unique store number (e.g. 717, 718, 719) whereas the outdoor store uses the unique storehouse number 716. A "store" described in the present disclosure refers to a storage space in the warehouse.

It should be appreciated that a barcode/NFC tag can be used to associate with different attributes mentioned above (item, warehouse, crew, store etc.). As shown in Table 8 below, an NFC identifier is allocated with different type field to indicate what attribute the identifier identifies.

These identifiers will allow the apparatus to track the status of the one or more items to be stored at each warehouse. In one arrangement, and referring to Figure 4B and Table 9 below, the status may be configured to have 6 different stages, and each stage may be associated with a different identifier. In general, the first three stages (450,452,454) relate to the storing of the one or more items, and the last three stages (456,458,460) relate to the retrieval of the one or more items being stored in the assigned warehouses.

a e

It should be appreciated that in another example, one or more items may be stored in a plurality of warehouses. Thus, several delivery orders (DO) may be issued for an "in-order", wherein each DO is for collection or delivery of the one or more items in an "in-order" 702 to be stored in one warehouse of the plurality of warehouses. As illustrated in Figure 7A, a first delivery order (not illustrated) is issued for the collection of items 704 and 706, a second delivery order 740 is issued to deliver item 704 to one warehouse for storage, and another delivery order 750 is issued to deliver item 706 to another warehouse. Alternatively, the apparatus may be controlled to generate two individual delivery orders for the collection of item 704 and delivery of item 704 to one warehouse respectively, and two more individual delivery orders for the collection of item 706 and delivery of item 706 to another warehouse. That is, the collection of items for delivery orders 740 and 750 may or may not be done collectively (not shown in figure). For the sake of simplicity, items 704 and 706 are delivered to the same assigned warehouse in the example illustrated by Figure 7B. That is, two separate delivery orders are generated, one directed for collection of items 704 and 706, and the other directed for delivery of Kerns 704 and 706.

Figure 10 illustrates how an item is tracked in an order for storing one or more items. Figure 11 illustrates how an item is tracked when an order for one or more items previously stored is placed. The reference numerals of elements having similar features and functions in Fig. 10 are reused in Fig. 11 for convenience. Details of the operation of the crew device to communicate with the apparatus 102 will be elaborated later.

Referring now to Figure 10 and with reference to Figures 1 and 4B, when an in-order is placed by a goods owner 308 (i.e. stage or step 1 , i.e. 450 of Figure 4B), a crew member will arrive at a collection point 1030 with pre-assigned NFC identifiers (or bar codes) to collect the one or more items. The crew member locates a relevant item 1016 and affix (or tag) a corresponding NFC identifier 1018 to the item 1016. Once the apparatus 102 receives a signal from the crew device 106 that the item 1016 has been tagged, the apparatus 102 is configured to update item tracking data stored in a database of the apparatus 102. The item tracking data may be configured to comprise a pre-defined stage or step of a workflow of how the item 1016 is being managed and a location of the item corresponding to an identifier of an assigned warehouse and/or an identifier of an assigned store in the assigned warehouse. The crew device 106 is also configured for editing a dimension of an odd-size item specified by the goods owner, if any. If the edited dimension of an odd-size item is different from what is being specified as normal size, the apparatus 102 may be configured to reassign a warehouse for storing the odd-size item and have the collection of the odd-size item scheduled on a different day and/or a different timing.

Once the item 1016 is loaded into a delivery lorry 1014, the crew member tags an NFC identifier 1010 of a delivery vehicle (in this case, a lorry) 1014, a signal from the crew device 106 is configured to be sent to the apparatus 102 to associate a tracking number 1018 (or NFC identifier) of the item 1016 with the delivery vehicle 1014. The apparatus 102 is then configured to update the status of the item 1016 (i.e. Kern tracking data) to the next stage or step (i.e. stage or step 2, i.e. 452 of Figure 4B).

Upon arrival at the assigned warehouse 1020 having an NFC identifier 1022, the crew member will tag the NFC identifier 1022 with his crew device 106. If the crew member cannot locate the NFC identifier, he may issue a new NFC identifier to the assigned warehouse (more details in Figure 13). The crew device 106 is configured to send a signal to the apparatus 102 and the apparatus is configured to associate that item 1016 of tracking number (or NFC identifier) 1018 to the assigned warehouse 1020 having an identifier 1022. If the item is assigned to an outdoor store (not illustrated) of the assigned warehouse 1020, the apparatus is configured to update the status of the item 1016 to the next stage or step (i.e. stage or step 3, i.e. 454 of Figure 4B). But if the item is assigned to an indoor store 1026 having an NFC identifier 1024, the crew member will tag the NFC identifier 1024 with his crew device 106. The crew device 106 then sends a signal to the apparatus 102 and the apparatus 102 will associate the item 1016 of tracking number (or NFC identifier) 1018 to the assigned store 1026 having an NFC identifier 1024. The apparatus 102 then updates status of the item 1016 to the next stage or step (i.e. stage or step 3, i.e. 454 of Figure 4B). It should be appreciated that the crew device 106 may also be configured to update the warehouse availability data (as explained with reference to Figure 7B and 7C).

A simplified work flow of how one or more items are being collected from a specified collection point to one or more assigned warehouses is shown in Figure 22A. At a step 2202, a delivery crew arrives at a collection point. Each item is located at a step 2204 and a physical NFC identifier is attached to each item to be collected at a step 2206. At a step 2208, the delivery crew scans the NFC identifier (tag) of the one or more items with his crew device to update item tracking data by sending an instruction to the apparatus 102 (e.g. item has been collected). At a step 2210, the delivery crew scans a NFC identifier affixed to a delivery vehicle managed by the delivery crew where an instruction will be sent to update item tracking data of the one or more items collected at the job. The one or more items are loaded into the delivery vehicle (which is a lorry in this case) before the delivery crew drives the vehicle to one of the one or more assigned warehouses at a step 2214. The one or more items to be stored in the one or more assigned warehouse is unloaded from the delivery vehicle at a step 2216. The delivery crew locates one or more assigned stores for each item at a step 2218 and stores it in the assigned store at a step 2219. If all the one or more items being collected at the collection point have not been delivered at a step 2220, the delivery crew drives to another assigned warehouse of the one or more assigned warehouses for storing one or more Kerns that have been collected at a step 2222. If all the items in order are collected, the work flow is completed at a step 2224.

Referring now to Figure 11, and with reference to Figures 1 and 4B, when an "out-order" is placed by a goods owner 308 (stage or step 4, i.e. 456 of Figure 4B), a crew member will arrive at an assigned warehouse 1020 having an identifier 1022. Based on the information of the delivery order (retrieved from the database of the apparatus 102), the crew member is tasked to locate a relevant item 1016 (with the corresponding NFC identifier 1018) to be retrieved. If the item 1016 was previously assigned to an indoor store 1026 having an NFC identifier 1024, the crew member can simply locate the location of the indoor store 1026. The apparatus 102 may also be configured for pictures (e.g. store layout, photo taken when item is stored at assigned store) to be displayed to the crew member. Once the crew member locates the item 1016 and tags the NFC identifier 1024 of the indoor store 1026 with his crew device 106, a signal is sent to the apparatus 102 to un- associate the item 1016 of tracking number (or NFC identifier) 1018 with the assigned store 1026 having an NFC identifier 1024.

Once the item 1016 is loaded into a delivery vehicle (in this case, a lorry) 1014, the crew member tags the NFC identifier 1010 of the delivery vehicle 1014, a signal from the crew device 106 is configured to be sent to the apparatus 102 to associate a tracking number 1018 (or NFC identifier) of the item 1016 to the delivery vehicle 1014. The apparatus 102 is then configured to update the status of the item 1016 (i.e. item tracking data) to the next stage or step (i.e. stage or step 5, i.e. 458 of Figure 4B).

Upon arrival at a specified drop off point 1102 indicated in the "out order", the crew member will tag the NFC identifier 1018 of the item 1016 with his crew device 106. The crew device 106 is configured to send a signal to the apparatus 102 and upon receipt of such signal the apparatus 102 is configured to un-associate the item 1016 with the tracking number (or NFC identifier) 1018. The apparatus 102 may also be configured to update the status of the item 1016 (i.e. item tracking data) to the final stage or step (i.e. stage or step 6, i.e. 460 of Figure 4B). It is to be appreciated that the apparatus 102 may also be configured to store the status of the item 1016 in the database for a predetermined time (even though the Item 1016 is no longer managed by the apparatus 102).

A simplified work flow of how one or more items are being collected from one or more assigned warehouses for delivery to a delivery point specified in an "out-order" is shown in Figure 22B. At a step 2232, a delivery crew arrives at one of the one or more assigned warehouses) that is storing the one or more items. The delivery crew locates one or more assigned stores for each item stored in the assigned warehouse (steps 2234 and 2236). The delivery crew scans the NFC identifier (tag) of the one or more items collected with his crew device to update item tracking data by sending an instruction to the apparatus 102 (not shown in Figure). Items are loaded into a delivery vehicle (in this case, a lorry) at a step 2240. if all items in order are collected, the delivery crew drives to a specified delivery point at a step 2248. The delivery crew scans an NFC identifier affixed to the delivery vehicle managed by the delivery crew. An instruction will then be sent to update item tracking data of the one or more items collected from the assigned warehouse. After the delivery crew arrives at the specified delivery point, the delivery crew unloads the one or more items previously stored in the one or more assigned warehouse at a step 2250. If there is an item in the order that has not being collected, the delivery crew drives to another assigned warehouse of the one or more assigned warehouses to collect the item at a step 2246 and steps 2232-2242 are repeated. If all the items in the out order are collected, the work flow is completed at a step 2252.

Locating identifiers of a store

Figure 13 illustrates a flow chart of a crew member locating an indoor store (storage space) in a warehouse to store an item and scanning the NFC identifier of the indoor store (or warehouse or lorry) thereafter to associate the item with the indoor store (step 1314) if the apparatus determines at a step 1318 that the scanned NFC identifier matches the record (of the assigned store) retrieved from the warehouse availability data stored in the database 126 accessible by the apparatus 102. If the apparatus determines at step 1318 that the scanned NFC identifier does not match the record of the assigned store for storing that item (being retrieved from the warehouse availability data, the apparatus may be configured to alert the crew member to attempt to find the store again at a step 1320. Of course, in the case where the crew member is unable to locate the store, it may be mean that the tag does not exist at step 1304. At a step 1302, the crew member locates the indoor store that was assigned to store one of the one or more items in an "in-order". If the physical NFC identifier (or barcode) does not exist on that store ("NO * at a step 1304) or that the NFC identifier is damaged or lost, the crew member may attach a new (and unique) physical NFC identifier to that store at a step 1306. When the crew member scans the new NFC identifier for association of the new NFC identifier with the assigned store, an instruction is sent to the apparatus 102 to associate the new NFC identifier currently affixed at that store with that store. The apparatus 102, in response to the instruction, will determine if that store has been previously tagged at a step 1308. If the store has been previously tagged, the apparatus 102 will be configured to display an alert message to the crew member that a previous NFC identifier has already been associated with that store and to request the crew member for further confirmation for data to be replaced at a step 1310. If the crew member confirms that the store is to be associated with a new NFC identifier, the apparatus 102 is configured to replace the old NFC identifier with the new NFC identifier at a step 1312. The warehouse availability data and/or item tracking data is to be updated at a step 1316. However, if the crew member indicates that the store is not to be associated with the new NFC identifier at the step 1310, the apparatus 102 takes no further action.

Updating of item Tracking Data and Ware house Availability Databy Crew Member

Figures 12A - 12D show how the warehouse availability data may be updated In two examples. In the first example, and referring to Figures 12A and 12B, four items 1202, 1206, 1210 and 1214 may be stored in the same assigned warehouse. Each of these four items has respective NFC identifiers 1204, 1208, 1212 and 1216. In one particular in-order, item 1202 is to be stored in a store 1220 having an identifier 1240 (i.e. f13d124), item 1206 is to be stored in stores 1226 and 1228 having respective identifiers 1246 (i.e. g213f1d) and 1250 (i.e. g214f1e), item 1210 is to be stored in a store 1222 having an identifier 1242 (afa412fs), and item 1214 ( f123d 12s) is to be stored in a store 1224 having an identifier 1244. It should be noted that even though all the items 1202, 1206, 1210 and 1214 have been retrieved (In an out order), the store identifiers 1240, 1242, 1244, 1246 and 1250 remained at the physical stores and will be associated with new items thereafter. For instance, and referring to Figure 12C, the store identifiers 1240, 1242, 1244, and 1246 may be associated with four respective items in a second "in order, where each Kern has a unique tracking number (i.e. NFC tag identifier).

In another example, if the NFC identifier of the specified location is damaged or lost, the crew member may affix a new NFC tag identifier to overwrite the warehouse availability data such that the new NFC tag is now associated with the specified location with his crew device 106 (as discussed in Figure 13) . In one example, if the NFC tag identifier g213f1d is damaged, the crew member may replace with a new NFC tag identifier Y23c313. The apparatus 102 may be configured to update warehouse availability data (e.g. represented in the form of look up tables as shown in Figures 12B-12D) such that the identifier 1246 is now associated with new NFC tag identifier (i.e. Y23c313). That is, row 2 of Figure 12C has been updated to row 2 of Figure 12D.

Figure 23 Illustrates how a crew member may log into his account at a crew device (e.g.

106 of Figure 1) using their unique usemame to communicate with the apparatus 102 through an application stored therein to update the status of one or more items to be stored in an assigned warehouse (item tracking data). It should be appreciated that the crew device 106 may be NFC enabled or be configured with barcode reading capabilities. The apparatus 102 may be configured to retrieve the delivery schedule data associated with the crew member for display on the crew device 106 based on his log in information.

A display window 2302 is configured to be displayed on a screen of the crew device 106 when the crew member launches an application stored in the memory of the crew device 106. The crew member is invited to log in by inputting his user identifier and password through a keyboard of the crew device 106. If log in is successful, a display window (or landing page) 2304 is configured to be displayed to the user In order for the user to select available options, a schedule button 2306 and a universal scan button 2308. The universal scan button 2308 is a scanning option which the crew member may select to scan any NFC tag identifier for more information, and the relevant details will be displayed for the crew member. In one example, the crew member may scan an item identifier of an item that is stored on the rack to know its details such as which tagged store or storage space is associated with the identifier of the item. This may be useful if there is another item occupying at an assigned store of an item to be stored.

If the user clicks on the button 2306, a daily delivery schedule 2310 for the crew member is displayed on the crew device 106. The daily delivery schedule 2310 comprises a sequence of delivery jobs to be completed in the day. The crew member may click on each of the delivery job (e.g. button 2312) for more details. The crew member may also be able to view the location of the delivery job (not illustrated), the type of delivery job (i.e. storing or retrieving as explained earlier) and the items to be collected on a screen 2314 if a link (not illustrated in Figure) is activated. If the crew member clicks on the Cancel button 2320, the application will return to the daily delivery schedule 2310. Optionally, there may be a "breadcrumb" graphical control element (not illustrated in Figure) on the top of each display window for use as a navigational aid in user interface.

In the example as shown in Figure 23, the details of delivery job #1 indicate that it is a storing job. In the graphical user interface 2314, there is a list of indicators, wherein each indicator is dedicated to an item (e.g. 2316 for item #1). Each indicator may be provided with two buttons 2324 and 2326. In another arrangement, the crew device may be controlled to display the two buttons with the item details when each individual indicator (e.g. 2316) is activated. The crew member arrives at the indicated collection point and after affixing an NFC identifier (or a barcode and the like) to an item, the crew member clicks on the button 2324 dedicated to the item displayed on the screen 2314 to assign (or tag) that NFC identifier to the item and add to item tracking data stored in the database of the apparatus 102 accordingly. The apparatus 102 may then be able to assign a unique tracking number for the item based on the information of the NFC identifier received. After the button 2324 is clicked, the crew member scans the NFC identifier affixed to the item and an instruction is sent from the crew device 106 to the apparatus 102 to add into the item tracking data for monitoring status of the delivery of the respective item. In one arrangement, if an NFC identifier has been assigned to an item, the background of the dedicated indicator 2316 may be configured to change to a specific color for visual indication to the crew member, for instance, green color. When a button 2326 is activated, the crew device 106 is controlled to display on the screen of the crew device 106 a graphical user interface 2322 for the crew member to view the details of the item. The crew member may also amend details of the item if he clicks on a field 2328. For instance, if the dimension of the item is different from what is specified as normal dimension, the crew member may be able to edit through this field 2328. If the button 2327 is clicked, the graphical user interface returns to display the previous graphical user interface 2314. It should be appreciated that if the details of the item are amended, upon clicking on the button 2327, the crew member may be prompted to confirm that the changes are to be saved. The apparatus 102 may also be configured to alert the crew member if the amended details of the item indicate that the assigned store or warehouse cannot contain the item.

If all the items at the graphical user interface 2314 have been assigned an individual identifier (all indicators turn "green", a "Accept" button 2318 will be enabled. If the crew member clicks on the accept button 2318, the application exits from the graphical user interface 2314. In a preferred arrangement, an acknowledgement window (not illustrated in Figure) is displayed to allow a goods owner to sign and the image of the digital signature is configured to be sent to the apparatus 102 for storing in the database 126. Thereafter, the crew member may be directed to a scanning page (not illustrated) for scanning an identifier of the lorry before moving off and preferably after the one or more items are loaded onto the lorry and for scanning an identifier of an assigned warehouse of the one or more items upon arrival at the assigned warehouse. It should be appreciated that the crew member is required to scan only the identifier of the lorry and the identifier of an assigned warehouse once for all the items. However, the apparatus 102 will be configured to update the item tracking data of the one or more items. The apparatus 102 may also be configured for determining if the identifier of the warehouse scanned by the crew member matches with what the identifier information of the assigned warehouse stored in the database 126.

The crew device 106 may be controlled to display a graphical user interface (GUI) window 2330 once an identifier of the warehouse is scanned, wherein an individual item indicator 2332 is displayed together with a corresponding assigned store indicator 2342. In one preferred arrangement, an item tracking identifier and a store identifier may be displayed on the respective indicators 2332 and 2342. Of course, the crew member may also log in with his details, views his daily schedule by clicking on button 2306 and select button 2312 to arrive at GUI window 2330. The apparatus may be configured to display GUI window 2330 (instead of GUI window 2314) by determining if the button 2318 has been clicked and if the identifier of the assigned warehouse has been scanned.

The crew member may click on button 2338 to view item details on a GUI window 2334. It should be noted that the details as shown in the field 2340 is configured to be not editable by the crew member. Although not illustrated in Figure 23, it should be appreciated that there is always a "back" button on each GUI window to return to a previous GUI window.

The crew member may activate a dedicated button (to an item) to scan the NFC identifier of an item and if it does not match the NFC identifier associated with the item (stored in the database), the apparatus 102 is configured to alert the crew member that the item that he has scanned is not the item he has selected. In one example, if the crew member clicks on button 2336 (dedicated to item 1 ) to scan an NFC identifier of an Kern unloaded from the lorry, for instance the NFC identifier of item 2), the apparatus will alert the user that that the details do not match (i.e. the item that he has scanned is not item 1).Thus, the crew member will have to locate the right item. Once the right item has been located and the NFC identifier has been verified to be correct, the apparatus 102 is configured to change the background color of the indicator 2332 to a specific color, for instance, green for a visual indication that the correct item has been located.

In another alternative arrangement, the application stored in the memory of the crew device may be configured such that there is only one verify button (instead of a dedicated button) for the one or more items in the GUI window 2334 for scanning an identifier of an item. If the apparatus determines that identifier of the item scanned matches with the identifier of any of items of the current delivery job, the apparatus 102 changes the background color of the corresponding indicator to a specific color, for instance, green for a visual indication that the item has been located. For example, if the crew member scans the identifier of item 2, the corresponding indicator (not illustrated in figure) will turn green.

As discussed earlier at step 864 of Figure 8B, the apparatus 102 is controlled for assigning a warehouse (and preferably a store) to store an item. A store may be defined as a portion of a rack for storing a portion of an item or in other words a storage space in the warehouse. Advantageously, this arrangement may allow for a more robust tracking of the one or more items and a more efficient way of assigning a warehouse and/or a store for storing the one or more items. For instance, the apparatus 102 may be configured to assign a store in the assigned warehouse with a higher load bearing capacity to handle an item that is heavier (e.g. a reinforced steel rack is chosen over a wooden rack).

In this preferred arrangement where the apparatus is controlled for assigning (through smart matching) a warehouse and one or more store(s) in the assigned warehouse for storing an item, the crew member clicks (or touches) the corresponding button 2346 to verify that the item indicated at 2332 is indeed to be stored at the assigned store.

Before the crew member stores an item in its assigned store, he needs to locate the store in the assigned warehouse. The crew member may click on the button 2348 to view the details of the store (e.g. a picture showing the corresponding identifier and/or location may be displayed, not illustrated in Figure). Once the crew member locates a store, he may activate a button 2346 for verifying that the corresponding Kern (i.e. the item indicated on the side of the button 2342) is to be stored at the assigned store.

The crew device 106 is controlled to send information relating to the identifier of a store (that he has scanned) to the apparatus 102 (after scanning and the button 2346 is clicked). Of course, if two assigned stores are required for storing an Kern, both identifiers of the assigned stores must be scanned. Upon receiving the information relating to the identifier of a store, the apparatus 102 is configured to determine first if there is an NFC identifier associated with the assigned store of that item. If the apparatus 102 determines that the assigned store of that item is not associated with any NFC identifier, the apparatus is controlled for associating the (new) NFC identifier that is scanned by the crew member (and received by the apparatus) with the assigned store. The warehouse availability data and item tracking data may be preferably updated after the crew member verifies that the NFC identifier should be associated with the item. The background of the indicator 2342 is then configured to change to a specific color e.g. green in order to serve as a visual indication to the crew member that the apparatus 102 has been successfully notified that the item has been stored. In one other arrangement, if each store is equipped with a sensor to detect presence of an item, the apparatus may be configured to change the background of the indicator 2342 based on the status of the sensor and the NFC identifier associated with the store.

If the apparatus 102 determines that the assigned store of that item has been associated with an NFC identifier, the apparatus 102 determines if the identifier obtained through the received information (after scanning) matches with the identifier of the previously assigned store (stored in the database). The apparatus 102 may then be controlled to send an instruction to the crew device 106 to change the background colour of an indicator 2342 as green if the crew member correctly identifies the assigned store. If the apparatus 102 determines that the identifier does not match with the identifier of a previously assigned store (stored in the database), the apparatus 102 is controlled to send an instruction to the crew device 106 to change the background colour of the indicator 2342 as red. In one preferred arrangement, the default background of the indicator 2342 may be set to red. Thus, the crew member will be prompted to re-assess the location of the store and check that the correct store (assigned for storing that item) is identified. For instance, if the apparatus 102 determines that store #1 is assigned to store item #1, and the identifier of store #2 is scanned after activating the button 2346, the apparatus may be controlled for prompting an alert to ask the crew member to locate the correct assigned store. The location and/or reference number of the assigned store may also be displayed to the crew member.

Thus, if the crew member cannot locate the identifier of the store or the previous identifier of the assigned store is faulty or an assigned store has been physically given an identifier (e.g. button 2332 is red), the crew member may physically affix a new NFC identifier (or tag) to the store in order to re-assign the new NFC identifier to the particular assigned store (e.g. store #1 for item #1) by clicking the button 2346. That is, the crew member scans (or reads) the new NFC identifier and click on a button 2346 to associate the new identifier with the assigned store by sending an instruction to the apparatus 102 (from the crew device 106). It should be appreciated that the NFC identifier that the crew member has scanned is a new NFC identifier if there Is no record of such NFC identifier in the database accessible by the apparatus 102. If the apparatus 102 determines a physical NFC identifier has been previously associated with the assigned store, the apparatus 102 is configured to send an instruction to the crew device 106 to alert the user (as discussed earlier in Figure 13). The apparatus 102 may be configured to overwrite the previous identifier that is associated with that item with the new NFC identifier and updates the warehouse availability data and/or item tracking data, if the crew member confirms the re-tagging process. The background of the indicator 2342 may then be controlled to change to a specific color e.g. green. But if the crew member does not affirm the re-tagging process, the background of the indicator 2342 may be set as red. It should be appreciated the indicators 2332 and 2342 may be configured as green once the item is verified (by the apparatus 102) to be stored in the assigned store(s) of the assigned warehouse.

If all the items have been stored, a button 2350 will be enabled for the user selection. Once the crew member clicks on the button 2350, a graphical user interface 2352 will be displayed on the crew device 106 to the crew member. The crew device 106 may also be controlled for retrieving from the apparatus 102 updated delivery schedule data so that a list of remaining delivery jobs is retrieved for display on a refreshed graphical user interface window 2354 on the crew device 106.

In another arrangement, the apparatus 102 may be controlled for allowing the crew member some flexibility to re-assign one or more store(s) for storing an item. For instance, if an item to be stored may require a storage space of three stores and in a case where the apparatus 102 has assigned three non-adjoining stores of an assigned warehouse to store that item (which may require some re-arrangment of the Kerns that are stored at other assigned stores by the crew member in order to accommodate the item), the apparatus 102 may be configured to allow the crew member to reassign three unoccupied adjoining stores to store that item.

In yet another arrangement, the apparatus 102 may be controlled for allowing the crew member to assign the store for an increased ease of operability by the crew member. That is, the apparatus 102 may be configured to assign a warehouse for storing the one or more items, but not configured to assign any particular store(s) in the assigned warehouse to store the one or more items. In such arrangement, the crew member scans the physical NFC identifier of a store with the crew device by clicking the button 2346 for association of that store with the item. It should be appreciated in such arrangement, the apparatus 102 may be controlled for receiving information of the NFC identifier that is scanned and for determining if such NFC identifier has been previously associated with another item. The apparatus 102 is then configured to update the item tracking data and warehouse availability data after such association of a store to the item.

The process in Figure 24 is similar to Figure 23, except that the example illustrates in Figure 24 is an example of the application of the crew device 106 being used while attending to retrieval of items previously stored in one or more assigned warehouses (i.e. "an out order"). The reference numerals of elements having similar features and functions in Fig. 23 are reused in Fig. 24 for convenience and are not discussed again. For instance, the crew device 106 is controlled to indicate through a graphical user interface 2314 and 2330 that it is for a retrieval job. As such, elaboration of details relating to the same are repeated.

The process in Figure 24 is more simplified as compared to the example illustrating a storing job as described with reference to Figure 23. It is clear that when a crew member clicks on a "view/edit details" button (e.g. 2326) provided on an indicator dedicated to an item (e.g. indicator 2316 for item #1) displayed on a screen 2314 that a user only needs to scan an identifier of an item (for verification that the correct item is retrieved by clicking the button 2324) in a retrieval job (i.e. retrieving job #1), the crew member cannot amend the details reflected in a field 2328 of a graphical use interface 2322. After the item has been collected from an assigned warehouse, an instruction may be sent from the crew device 106 to the apparatus 102 to indicate that the item has been collected and that the assigned store is available to store other items.

Similar to Figure 23, once all the items have been retrieved, the crew device 106 is controlled to enable a button2318 for the crew member to confirm one or more items have been collected. In one configuration, the crew device 106 may request for a crew member or a store owner to acknowledge (e.g. sign) that the one or more items have been collected from the assigned warehouse after the button 2318 is activated. The image of the digital signature may be sent to the apparatus 102 for storing in the database 126. It should be appreciated that user interfaces 2314 and 2330 may be configured to be identical (because the application of the crew device 106 calls a same function) if the apparatus determines that the job the crew member is viewing (or attending to) is a retrieval job. However, it should be clear that a graphical user interface 2330 is displayed for the crew member to acknowledge that the respective item has been delivered to a specified delivery point (indicated in the details of the delivery job) by scanning the identifier of an item and after clicking a dedication button for that item(e.g. 2336 for item #1).ln contrast, the graphical user interface 2314 is displayed for the crew member to acknowledge that the respective item has been collected from one or more assigned stores of an assigned warehouse by scanning the identifier of an item and after clicking a dedicated button for that item (e.g. 2324 for item #1).

The crew device 106 may be controlled to send information relating to the identifier of an item to the apparatus 102 when the crew member scans the identifier of the item and click a button 2324 (or a button 2336). The apparatus 102 may be controlled to determine if the identifier obtained through the received information matches with the identifier that was previously issued to the item (stored in a database) based on the information received by the apparatus 102. The apparatus 102 may be controlled to send an instruction to the crew device 106 to change a background color of an indicator 2316 (or an indicator 2332) as green if the result matches. If the apparatus 102 determines that the identifier scanned by the crew member does not match with the identifier of the previously assigned to the item (and stored in the database), the apparatus 102 is controlled to send an instruction to the crew device 106 to change the background color of the indicator 2316 (or the indicator 2332) as red and the crew member may also be prompted to check if an correct item is retrieved.

If all the items have been collected from the assigned warehouse or delivered to the specified delivery point, the respective button 2418 and 2350 will be enabled for user selection. Once the crew member clicks on the button 2350, an user interface 2352 will be displayed on the crew device 106 to indicate that job is completed. The crew device 106 may be controlled for retrieving from the apparatus 102 updated delivery schedule data so that a list of remaining delivery jobs is retrieved for display on a refreshed user interface window 2354 on the crew device 106.

ftetejfe!or determining the available dates and available slots for selection

With reference to Figure 15, before the apparatus 102 allows the goods owner 308 to select a time slot available for delivery, the apparatus 102 is configured to determine if there are any available time slots for delivery for a specific date at a step 1502. This is done based on delivery schedule data stored in the database 126 of the apparatus 102. The delivery schedule data may comprise a plurality of time slots that are available and unavailable for delivery. The delivery schedule data may comprise information relating to one or more delivery crews available for delivery in each time slot and one or more assigned jobs to a plurality of delivery crews in each time slot. The delivery schedule data may comprise a first assigned job followed by a second job The delivery schedule data may also comprise information relating to each assigned job of a particular crew, for instance, geographical location information of an assigned collection point and/or an assigned delivery point and information of storage space available in a delivery vehicle to be operated by each crew.

The apparatus 102 is controlled for selecting a particular shift from a plurality of time shifts at a step 1504, and for selecting a particular delivery crew from a plurality of delivery crews working for that particular time shift at a step 1506.

At a step 1508, the apparatus 102 is controlled for determining if the number of cycles the particular crew is working on is less than a predetermined value Cyclemufe.g. a value of 3).

No. of cycles = No. of specified collection point or delivery point in a slot

A cycle is defined herein as a case where collected items from a location or a plurality of locations are to be delivered to one location specified by the goods owner 308 in an order (e.g. Rd) or a case where items are collected from one location specified by the goods owner 308 in an order are to be delivered to a location or a plurality of locations (e.g. Sc). That is, the apparatus 102 may be controlled to determine the number of times an identified location (collection point entered when placing an "in order" in step 356 of Figure 3B and/or delivery point entered when placing an "out order" in step 362 of Figure 3B exists in the particular time slot of the delivery schedule data associated with the particular crew.

For instance, in a first example, if Cycl max is defined as 3, the particular delivery crew will not be available to take in any new orders after 3 orders ("in order" or "out order") have been assigned to the particular crew because each order will have a collection point or delivery point specified by the goods owner 308. .

In a second example, if a goods owner has placed many items in an order ("in-order" or "out-order"), and these items occupy a storage space that is more than a storage space of an empty delivery vehicle managed by the delivery crew, the apparatus 102 would have arranged for the items to be collected from the specified collection point or to be delivered to the specified delivery point by making several trips or arranging several delivery crews to attend to the order. For instance, if an empty delivery vehicle can hold at most 6 items (of standard size) and assuming a delivery crew is available (e.g. no of cycles =0) to handle an order for 11 Kerns to be collected for storage (in an "in-order"), the delivery crew will have to take two trips (to the specified collection point) to collect all the items. That means, if Cycle,™, is defined as 3, the delivery crew will only be available for another cycle (i.e. another order for collection or delivery of items that does not exceed the truck capacity or part of an order for collection or delivery of items that exceeds the truck capacity) after this order.

Advantageously, the above arrangement allows the apparatus 102 to identify the crew capacity of a delivery crew who is already assigned with a purchase order that involves handling a large quantity of items (that fills up the empty delivery vehicle) and thus does not insert additional delivery jobs to the delivery crew. It should be appreciated that a delivery crew may be attending to a lot of orders but the total items to be collected may be much lesser than a fully loaded delivery vehicle.

If the apparatus 102 determines at the step 1508 that the number of cycles the particular crew is attending has not exceeded Cycle™,, the apparatus 102 is controlled for indicating that the particular time slot is available for user selection during the placing of an order at a step 1510.

However, if the crew capacity of the particular delivery crew is determined to be at its maximum at the step 1508, i.e. number of cycles the particular crew is attending has exceeded Cyclemn,, the apparatus 102 is controlled to check if there are other delivery crews for that particular shift at a step 1512. Steps 1506 and 1508 are repeated if there are other delivery crews working for the particular shift. If none of the other crews are available for that particular shift, the apparatus 102 is controlled to indicate that the particular time slot is unavailable for user selection at a step 1514. Steps 1504 to 1508 are repeated for other shifts on the particular date (if "yes" at a step 1516). If all crews have been checked for all shifts for that particular date (if "no" at a step 1516), the apparatus is controlled to indicate that the particular date is unavailable at a step 1518.

Optionally, the apparatus may be controlled for receiving a user selection of one or more time slots unavailable for delivery of the one or more items as a prioritised request for the one or more items to be delivered in the one or more time slots unavailable for delivery. In one example, if a goods owner requires items to be collected or delivered at a specified date and/or time frame, but such specified date and/or time frame may be unavailable for selection (e.g. greyed out in the displayed calendar, or not shown in drop down list), he may click on a checkbox that indicates mandatory delivery requirement (which may incur a higher cost). For instance, the goods owner may indicate that one or more items must be collected or delivered by such a specified date and/or time frame. Upon receiving such a prioritised request, the apparatus 102 may schedule an assigned delivery job to a delivery crew for immediate action. The apparatus 102 may also be controlled to alert a service crew on such prioritised assigned delivery job (e.g. sms or email) so that additional manpower and/or delivery vehicle, if required, may be specially arranged.

In another arrangement, the apparatus 102 may be controlled for determining what type of orders) that delivery crew is handling and for determining an overhead time for fulfilling such orders). This is because the overhead time for fulfilling an "in-order" is much more than the overhead time for the fulfilling an "out-order". Storing may take more overhead time than retrieving because of the following steps required:

It should be appreciated if a delivery crew is handling three "in-orders" in a shift, and that the items in each "in-order * are to be stored at a plurality of assigned warehouses, it may be rather time consuming and thus the delivery crew may not be able to handle more new jobs within the shift. For the sake of discussion, in a worst-case scenario, if each "in order" has five items to be stored in five different assigned warehouses, the delivery crew would have to make six trips for each order and 18 trips to fulfil all three "in-orders". Thus, the apparatus 102 may be configured for determining the overhead time (e.g. through historical data) in order to set a value for Cyclemax.

Mv#ifl^ #%IW mow assigned wgrehw^S

Optionally, the apparatus 102 may be controlled for receiving a specified duration for the one or more items to be stored in one or more warehouses, determining if the specified duration for storing of the one or more items has expired, and generating a form of acceptance for extending the duration for storing of the one or more items if the specified duration has expired. In one example, the apparatus 102 receives an instruction to store one or more items in one or more warehouse, wherein the specified duration for storing the one or more items in one or more warehouses is one month. If one month has passed, the apparatus generates a form of acceptance (e.g. hyperlink, sms, email, electronic invoice, etc). This form of acceptance may be sent to the goods owner to remind him that that the specified duration for storing the one or more items has expired, and is invited to extend the specified duration (for example, by another week) or to place an "out order" to retrieve the one or more items. If the goods owner accepts the form of acceptance to extend the specified duration, a signal will be sent to the apparatus 102 to modify the specified duration for storing the one or more items. Alternatively, if the goods owner accepts the form of acceptance to place an "out order", an instruction to retrieve the one or more items stored in the one or more assigned warehouses will be sent to the apparatus 102. Optionally, payment for the extension of time may be deferred to the time of placing an "out order". If the goods owner does not accept the form of acceptance (or does not respond), the apparatus 102 may be configured to determine if a predetermined time duration (e.g. 1 week) after the specified duration for the one or more items to be stored in one or more warehouse has passed. A second form of acceptance may be generated by the apparatus 102 to the goods owner thereafter. A value (e.g. an amount to be paid by the goods owner and/or a suggested extension of time for storing the one or more items) in the form of acceptance may be calculated. In one example, if the specified duration has expired by three days, a form of acceptance may indicate an option to extend for one more week at USD30 or add USD10 to the total bill to the goods owner upon issuing an "out-order". In another example, if the specified duration has expired by ten days, a form of acceptance may indicate an option to extend by two weeks at USD50 or add USD25 to the total bill to the goods owner upon issuing an "out-order".

Collection of one or rnore stored items at an assigned warehouse by TOlfliBHlK?) $ frQ item(s)

Optionally, the apparatus 102 may be controlled for receiving a list of recipients having one or more items stored in an assigned warehouse, identification information of the list of recipients, and information of the one or more items stored in an assigned warehouse at a request of a user. In one example, a goods owner 308 may place an "in order" for one or more items to be stored in one (or a plurality of) assigned warehouse. The one or more items may be intended for one or more recipients, and the goods owner 308 may indicate that the one or more items are to be collected by the one or more recipients at the assigned warehouse (together with their identification information such as contact information, and/or a social security identifier, a bar code, a QR code) via an application stored in (or a website accessible by) his user device 104. For instance, a document in a predetermined format may be uploaded or the goods owner may input the details of the "in order" via a keyboard, touch pad or key pad. This may be done at the time of placing the "in order" or after the one or more items are stored in the one or more assigned warehouses.

In an example, the apparatus 102 is configured to send the list of recipients of the one or more items stored in the assigned warehouse and their identification information to the assigned warehouse. The apparatus 102 is also configured for alerting each of the one or more recipients in the list the geographical location information of the assigned warehouse based on the identification information. Advantageously, the recipient of the one or more items stored in the assigned warehouse is informed of the location of the assigned warehouse (e.g. via sms, email, etc), thus he or she can collect the one or more items directly from the assigned warehouse. The store owner of the assigned warehouse may assist in the collection of the one or more items by the one or more recipients. For instance, the store owner may unpack a sealed item for the recipient and have the recipient acknowledged via the application stored in his user device so that a signal can be sent to the apparatus 102 to indicate that the item has been collected by the recipient. Upon receipt of the signal, the warehouse availability data and the item tracking data may be modified. For instance, the assigned store(s) that is used to store the one or more items may be freed up for a next storage order, and the item tracking data may be updated to indicate that the item is collected by the recipient (e.g. stage 7). The apparatus 102 may also be configured for alerting the goods owner that the one of more items being stored in the assigned warehouse has been collected by the recipient (e.g. via sms, email, etc).

Figure 25 describes an example of how an apparatus can be controlled for informing recipients of items stored in an assigned warehouse.

A goods owner 308 places an order for one or more items 2530 to be stored in one or more smart collection points (SCP)at a step 2502. These smart collection points may be a warehouse, a residential or commercial venue and the like. However, in this example, the items to be stored would not be retrieved by the goods owner 308 (by placing an "out order"), but will be collected by one or more item recipients 2520 of the items 2530 to be stored in the smart collection point (SCP). In such an arrangement when the goods owner 308 places an order, and indicates that the items are to be collected by a third party (e.g. recipient 2520) at a step 2504, the goods owner inputs a list of products and end-user details (e.g. via a keyboard) of his end user device 104 at a step 2508. The goods owner enters address of collection and specifies a date and time that is available for collection at a step 2510. At a step 2512, the apparatus 102 is configured for prompting the goods owner to pay for the order made by means of known payment modes such as visa, paypal, nets and the like. In another arrangement, the apparatus 102 may issue an electronic invoice to the goods owner for settlement at a predetermined time at the step 2512.

The apparatus 102 may be controlled to receive a notification that payment is successful. An instruction is then sent to the apparatus 102 after a notification that payment is successful is received along with the details of the one or more item recipient 2520 of the item.

The one or more items 2530 are then collected and loaded into a delivery vehicle 2540 for delivery to the assigned warehouse (or SCP) 2550 (assigned by the apparatus 102 by executing the smart matching process and has been registered as a smart collection point with the apparatus 102) for storing at the assigned warehouse 2550.

The apparatus 102 may be configured to alert the store owner of the warehouse (e.g. via email or sms) at a step 2516. The apparatus 102 may be configured to generate matching order so that the store owner can access through his user account via his user device 104. Alternatively, information of the item recipients and items to be collected is sent electronically to the store owner so that the store owner can make preparation for the items to be collected at the warehouse. In one instance, the store owner may be required to unload and/or unpack the item stored in the warehouse.

Once the delivery crew sends an instruction (as explained in Figures 24) to the apparatus 102 to indicate that the one or more items are stored, the apparatus 102 may also be configured to alert the item recipients 2520 of the one or more items 2530 the location of the assigned warehouse 2550 to collect the items directly at the assigned warehouse at a specified date and time frame. The apparatus 102 may also be configured to send a notification to the goods owner when one or more items are collected by the one or more item recipients 2520.

In one preferred arrangement, the apparatus 102 may assign a warehouse (SCP) that is nearest to the location where the items are to be collected. In another arrangement, the apparatus may assign one or more warehouses that is convenient for the end user(s) 2520 to collect the one or more items (e.g. by considering the geographical location of the residential information retrieved based on the details of the item recipients). For instance, the apparatus 102 may be configured to assign a warehouse that is centralised to a group of recipients residing in one or more geographical areas. In such arrangement, the apparatus 102 may be configured to send the goods owner a generated packing list for delivery to each of the one or more assigned warehouses.

In this arrangement, store owners may indicate that they are willing to be a smart collection point (SCP) when they add their warehouses as part of the warehouse availability data. It should be appreciated that a SCP may be required to follow a stricter opening hours to allow item recipients 2520 to drop by to the warehouse (e.g. 2520) to collect the item(s) and that the storeowners may help to unpack the goods.

In summary, examples of the present disclosure may have the following features.

There is provided an apparatus (e.g.102) for managing item storage in warehouses, the apparatus comprising a memory (e.g. 118) and a processor (e.g.116) configured to execute a program (e.g. 120) in the memory to control the apparatus for receiving an instruction (e.g. 402 of Figure 4A) to store one or more items (e.g. 704 and 706 in Figures 7A and 7B, 1016 in Figures 10 and 11, 1202, 1206, 1210, 1214 in Figure 12A, 2530 in Figure 25) in a warehouse (e.g. 714 in Figure 7B, 1020 in Figure 10 and Figure 11, 2550 in Figure 25), receiving geographical location information of a collection point (e.g. 1030 in Figure 10), determining from predefined geographical data (e.g. table 2) a geographical area (e.g. area 22 demarcated by line 502 in Figure 5, area 17 demarcated by line 602 in Figure 6) in which the collection point is located based on the geographical location information of the collection point, assigning one or more warehouses (e.g. 220 in Figure 2, 406 in Figure 4A, 812 in Figure 8A, 864 in Figure 8B, 912 in Figure 9) to store each of the one or more items based on warehouse availability data, the warehouse availability data (e.g. table 1) indicating one or more warehouses with storage space in the geographical area and one or more warehouses with storage space in one or more neighboring geographical areas (e.g. n1) surrounding the geographical area, and scheduling delivery (e.g. 412 in Figure 4A) of the one or more Kerns for storing in the assigned one or more warehouses, wherein the predefined geographical data comprises data of a plurality of geographical areas comprising the geographical area, and data of the one or more neighboring geographical areas surrounding the geographical area.

The apparatus may assign the one or more warehouses to store each of the one or more items by determining from the warehouse availability data the nearest warehouse from the collection point with storage space for storing each of the one or more items. If there are no warehouses with storage space located in the geographical area of the collection point, the apparatus may determine from the warehouse availability data the nearest warehouse with storage space in the one or more neighboring geographical areas (e.g. 870 of Figure 8B). If there are no warehouses with storage space located in the neighboring geographical areas of the collection point, the apparatus may determine from the warehouse availability data the nearest warehouse with storage space in a plurality of geographical areas (e.g. n2) neighboring the neighboring geographical areas ( e.g. n1) (e.g. 874 of Figure 8B). In one example, and referring to Figure 5, if the collection point resides in a district (or geographical area, e.g. nO) 22, the neighboring geographical areas (e.g. n1) neighboring the geographical area 22 will be areas 5, 21, 23, 24 (demarcated between lines 502 and 504) and the geographical areas (e.g. n2) neighboring the neighboring geographical areas (e.g. n1) will be areas 3, 4, 10, 11, 26, 25 (demarcated between lines 504 and 506).

The apparatus may be controlled for receiving an instruction to add information of one or more warehouses of specified available space as part of the warehouse availability data. If there are one or more warehouses with storage space having the same distance away from the collection point, the apparatus may be controlled for determining from the warehouse availability data the warehouse to store the one or more items based on time duration from the addition of the information of the one or more warehouses as part of the warehouse availability data.

A geographical area of the plurality of geographical areas may be divided into one or more sectors. In one example, and referring to table 2, the geographical area 22 can be divided into sectors 60, 61, 62, 63, 64 (not shown in Figure 5). The collection point may reside in one of the one or more sectors. The apparatus may assigning the one or more warehouses to store each of the one or more items by determining from the warehouse availability data the nearest warehouse from the collection point in the one or more sectors of the geographical area that is divided into the one or more sectors before determining the nearest warehouse from the collection point in the one or more neighboring geographical areas.

The apparatus may be controlled for receiving dimensions of the one or more items to be stored and determining, based on the warehouse availability data and the received dimensions, one or more warehouses capable of storing the one or more items to be stored.

The instruction to store one or more items in one or more warehouses may indicate a plurality of items to be stored. The apparatus may assign the one or more warehouses to store the one or more items by distributing the plurality of items for storing separately in the more than one assigned warehouses.

Each of the one or more items has a unique tracking number. The unique tracking number may be associated with a unique warehouse tracking number (e.g.1022) issued to the warehouse (e.g.1022) for storing the item.

The apparatus may assign the one or more warehouses to store the one or more items by determining from the warehouse availability data the nearest warehouse from the collection point capable of storing all the one or more items to be stored.

The apparatus may be controlled for receiving an instruction (e.g. 418 of Figure 4A) to retrieve the one or more items stored in the one or more assigned warehouses (e.g. 714 in Figure 7B, 1020 in Figure 10 and Figure 11, 2550 in Figure 25), and receiving geographical location information of a delivery point (e.g. 1102 in Figure 11).

The apparatus may be controlled for sending an alert if the instruction contains the delivery point of the retrieved one or more items that is more than a predetermined distance away from the one or more assigned warehouses.

Scheduling delivery of the one or more items to be stored or to be retrieved (e.g. 412 or 422 respectively in Figure 4A) may be determined based on delivery schedule data. The delivery schedule data may comprise a plurality of time slots that are available and unavailable for delivery. The apparatus may be controlled for receiving selection of one or more time slots available for delivery of the one or more items.

The apparatus may be controlled for receiving selection of one or more time slots unavailable for delivery of the one or more items as a prioritised request for the one or more items to be delivered in the one or more time slots unavailable for delivery.

The delivery schedule data may comprise one or more delivery crews available for delivery in each time slot and one or more assigned jobs (e.g. 1910 to 1918 in Figure 19, 2010 to 2018 in Figure 20, 2110 to 2118 in Figure 21 ) to each of a plurality of delivery crews in each time slot. Each assigned job may comprise geographical location information of an assigned collection point or an assigned delivery point and information of storage space available in a delivery vehicle to be operated by each crew after the assigned job.

The apparatus may be controlled for adding a first new job (e.g. 1910 and1918 in Figure

19, 2010 and 2018 in Figure 20, 2110 and 2118 in Figure 21) to the delivery schedule data associated with one delivery crew available for delivery in a first time slot of the plurality of time slots available for delivery. The first new job may be generated based on a first identified location, and the first identified location may be the collection point (e.g. 1030 in Figure 10) received by the apparatus or the delivery point (e.g. 1102 in Figure 11 ) received by the apparatus.

The apparatus may be controlled for adding a second new job to the delivery schedule data associated with one delivery crew available for delivery in a second time slot of the plurality of time slots available for delivery. The second new job may be generated based on a second identified location and the second identified location is a location of the one of more warehouses (e.g. 714 in Figure 7B, 1020 in Figure 10 and Figure 11 , 2550 in Figure 25) assigned by the apparatus to store the one or more Kerns. In one configuration, the first time slot may be the same as the second time slot.

The apparatus may be controlled for inserting a new job to the delivery schedule data associated with one delivery crew available for delivery in one time slot, and determining an order of insertion of the new job into the delivery schedule data based on information of storage space available in a delivery vehicle to be operated by the delivery crew before or after an existing assigned job in the delivery schedule data.

The apparatus may be controlled for inserting a new job (e.g. 1902 and 1904 in Figure 19, 2002 and 2004 in Figure 20, 2102 and 2104 in Figure 21) to the delivery schedule data (e.g. 1906 in Figure 19, 2006 in Figure 20, 2106 in Figure 21) associated with one delivery crew available for delivery in one time slot, and determining an order of insertion of the new job into the delivery schedule data such that a job for delivery of one or more items (e.g. 1904 in Figure 19, 2004 in Figure 20, 2104 in Figure 21) is inserted after a job for collection of the one or more items e.g. 1902 in Figure 19, 2002 in Figure 20, 2102 in Figure 21).

The delivery schedule data may comprise a first assigned job (e.g. 1910 in Figure 19, 2010 in Figure 20, 2110 in Figure 21) followed by a second assigned job(e.g. 1912 in Figure 19, 2012 in Figure 20, 2112 in Figure 21). The apparatus may be controlled for inserting a new job to the delivery schedule data associated with one delivery crew available for delivery in one time slot, and determining an order of insertion of the new job into the delivery schedule data based on geographical information of the first assigned job and geographical location information of a collection point (e.g. 1030 in Figure 10) or a delivery point (e.g. 1102 in Figure 11 ) of the new job.

If the geographical area of the geographical information of the first assigned job matches the geographical area of the geographical information of the collection point or the delivery point of the new job (e.g. 1816 of Figure 18), the new job may be inserted after the first assigned job (e.g. 1830 of Figure 18).

If the geographical area of the geographical information of the first assigned job does not match the geographical area of the geographical information of the collection point and or the delivery point of the new job, the apparatus may be controlled for inserting the new job after the first assigned job if the geographical area of the new job is between the geographical area of the first assigned job and the geographical area of the second assigned job (1824 of Figure 18),.

The geographical area of the new job maybe determined to be between the geographical area of the first assigned job and the geographical area of the second assigned job by checking, beginning from the geographical area of the first assigned job and in a direction of travel (e.g. 512 in Figure 5, 612 in Figure 6) towards the geographical area of the second assigned job, whether neighboring geographical areas of the geographical area of the first assigned job matches the geographical area of the geographical information of the collection point and or the delivery point of the new job.

The apparatus may be configured for scheduling the new job based on whether the instruction received from the apparatus is for storing the one or more items or for retrieving the one or more stored items.

When delivery of the one or more items to be stored is scheduled, geographical location information of the one or more assigned warehouse for storing the one or more items may be set as the assigned delivery point of the new job.

When delivery of the one or more items to be retrieved is scheduled, geographical location information of the one or more assigned warehouse storing the one or more item may be set as the assigned collection point of the new job.

Each of the one or more items may have a unique tracking number (e.g. TR1, TR2, TR3, TR4 of Figures 7A to 7C). The unique tracking number may be associated with a Near Field Communications (NFC) identifier (e.g. 717, 718 and 719 of Figure 7B, 1204, 1208, 1212, 1216 of Figure 12A), and the NFC identifier may be physically tagged to each the one or more items to be stored.

The apparatus may be controlled for communicating with a mobile device (e.g. 104, 106 of Figure 1) configured to modify the warehouse availability data to adjust storage space availability for a warehouse.

The apparatus may be controlled for communicating with a mobile device configured to modify the warehouse availability data to add a new warehouse with specified available storage space.

The apparatus may be controlled for communicating with a mobile device (e.g. 104, 106 of Figure 1) configured to update item tracking data accessible to the apparatus. The item tracking data may comprise information of at least one step (e.g. 450-460 of Figure 4B) in a predetermined workflow beginning from collection of the one or more items to be stored from the assigned collection point and ending at delivery of the one or more items to be stored to the assigned delivery point.

The apparatus may be controlled for receiving a specified duration for the one or more items to be stored in a warehouse, determining if the specified duration for storing of the one or more items has expired, and generating an electronic form of acceptance (e.g. invoice, email, hyperlink) for extending the duration for storing of the one or more items if the specified duration has expired.

A value (e.g. cost, duration to extend) in the electronic form of acceptance may be calculated based on a time duration after the specified duration for the one or more items to be stored in a warehouse.

The apparatus may be controlled for receiving a list of recipients (e.g. 2520 of Figure 25) for collecting one or more items (e.g. 2530 of Figure 25) stored in an assigned warehouse (e.g. 2550 of Figure 25), and alerting each recipient in the list by sending a message electronically to collect the one or more items from a predetermined location in a specified time frame.

The apparatus may be controlled for alerting and sending information of the list of recipients to a user account owner associated with the assigned warehouse by sending one or more message electronically for preparation of the one or more items for collection by the recipients.

The apparatus may be controlled for sorting the one or more items to be stored or retrieved based on location of the assigned one or more warehouses (1603 of Figure 16).

A method for managing item storage in warehouses, the method may comprise: receiving an instruction to store one or more items in a warehouse (e.g. 402 of Figure 4A); receiving geographical location information of a collection point (e.g. 356 of Figure 3B); determining from predefined geographical data (e.g. table 2) a geographical area (e.g. hO) in which the collection point is located based on the geographical location information of the collection point (e.g. 852 of Figure 8B), wherein the predefined geographical data comprises data of a plurality of geographical areas comprising the geographical area, and data of the one or more neighboring geographical areas (e.g. n1) surrounding the geographical area; assigning one or more warehouses to store the one or more items based on warehouse availability data (e.g. 864 of Figure 8b, 912 of Figure 9), the warehouse availability data indicating one or more warehouses with storage space in the geographical area and one or more warehouses with storage space in one or more neighboring geographical areas surrounding the geographical area; and scheduling delivery of the one or more items for storing in the assigned one or more warehouses (e.g. 412 in Figure 4A).

Many modifications and other examples can be made to the apparatus and method for communication between the apparatus and a mobile device by those skilled in the art having the understanding of the above described disclosure together with the drawings. Therefore, it is to be understood that the apparatus and method for collection of one or more items to be stored in one or more warehouses and subsequently retrieving the one or more items stored in the one or more warehouses is not to be limited to the above description contained herein only, and that possible modifications are to be included in the claims of the disclosure.