U.S. patent application number 17/657824 was filed with the patent office on 2022-08-18 for configuring a computer system based on a purchase order.
The applicant listed for this patent is Palantir Technologies Inc.. Invention is credited to Daniel Berkowitz, Mohammad Bukhari, Yiwei Gao, Joseph Makowski, Cody Moore, Roman Myers, Jerry Sung, Drew Tuck.
Application Number | 20220261878 17/657824 |
Document ID | / |
Family ID | 1000006304054 |
Filed Date | 2022-08-18 |
United States Patent
Application |
20220261878 |
Kind Code |
A1 |
Myers; Roman ; et
al. |
August 18, 2022 |
CONFIGURING A COMPUTER SYSTEM BASED ON A PURCHASE ORDER
Abstract
Machine receives a notification that an order for a new item is
being placed via an order form. Notification comprises an
indication of a type of item being ordered. Order form comprises
fields. Fields comprise type of item, item identifier, supplier
identifier, price, payment method, and delivery location. Machine
selects, based on the type of item being ordered, a first supplier
bid from supplier bids stored in a bid data repository. Each
supplier bid stored in the bid data repository comprises the item
identifier, the supplier identifier, the price, and an expiration
date. The item identifier of the first supplier bid corresponds to
the type of item being ordered. Machine prepopulates, based on the
first supplier bid, one or more fields of the order form. Machine
submits the order based on the order form. Machine updates an
inventory management data repository based on the delivery location
and the item identifier.
Inventors: |
Myers; Roman; (San
Francisco, CA) ; Gao; Yiwei; (Palo Alto, CA) ;
Bukhari; Mohammad; (Washington, DC) ; Sung;
Jerry; (Palo Alto, CA) ; Tuck; Drew; (Palo
Alto, CA) ; Moore; Cody; (Menlo Park, CA) ;
Berkowitz; Daniel; (NewYork, NY) ; Makowski;
Joseph; (Palo Alto, CA) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
Palantir Technologies Inc. |
Palo Alto |
CA |
US |
|
|
Family ID: |
1000006304054 |
Appl. No.: |
17/657824 |
Filed: |
April 4, 2022 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
16723216 |
Dec 20, 2019 |
11321767 |
|
|
17657824 |
|
|
|
|
62882655 |
Aug 5, 2019 |
|
|
|
Current U.S.
Class: |
1/1 |
Current CPC
Class: |
G06Q 30/0611 20130101;
G06Q 10/087 20130101; G06Q 10/0832 20130101; G06Q 30/08 20130101;
G06Q 30/0637 20130101 |
International
Class: |
G06Q 30/06 20060101
G06Q030/06; G06Q 30/08 20060101 G06Q030/08; G06Q 10/08 20060101
G06Q010/08 |
Claims
1. (canceled)
2. A system comprising: processing hardware of a server; and a
memory storing instructions which, when executed by the processing
hardware, cause the processing hardware to perform operations
comprising: receiving, via a graphical user interface presented at
a client computing device, an input representing that a first item
residing within an inventory management data repository is to be
combined with a second item residing within the inventory
management data repository; generating a data object that comprises
a first data substructure for the first item and a second data
substructure for the second item; and creating, in the inventory
management data repository, a combined item that comprises the
first data substructure for the first item and the second data
substructure for the second item.
3. The system of claim 2, wherein the graphical user interface
comprises a first region for specifying the first item and the
second item, the first region overlaying a second region displaying
a catalog of items.
4. The system of claim 2, the operations further comprising:
receiving, at the processing hardware, a search request for a given
item type from the inventory management data repository, wherein
the given item type is associated with the first item, and wherein
the given item type is not associated with the combined item; and
providing neither the first item nor the combined item as a search
result to the search request based on the first item having been
combined with the second item into the combined item.
5. The system of claim 2, wherein the combined item corresponds
with a supplier bid.
6. The system of claim 5, the operations further comprising:
determining that an expiration date associated with the supplier
bid has passed; and removing, from the inventory management data
repository, the supplier bid.
7. The system of claim 2, the operations further comprising:
removing, from the inventory management data repository, the first
item and the second item in response to the input representing that
the first item residing within the inventory management data
repository is to be combined with the second item residing within
the inventory management data repository.
8. The system of claim 2, wherein the server is directly connected
to the bid data repository via a first data connection, wherein the
server is directly connected to the inventory management data
repository via a second data connection, wherein the server is
connected to the client computing device via an external network,
and wherein the first data connection and the second data
connection do not pass through the external network.
9. A non-transitory machine-readable medium storing instructions
which, when executed by a machine, cause the machine to perform
operations comprising: receiving, via a graphical user interface
presented at a client computing device, an input representing that
a first item residing within an inventory management data
repository is to be combined with a second item residing within the
inventory management data repository; generating a data object that
comprises a first data substructure for the first item and a second
data substructure for the second item; and creating, in the
inventory management data repository, a combined item that
comprises the first data substructure for the first item and the
second data substructure for the second item.
10. The non-transitory machine-readable medium of claim 9, wherein
the graphical user interface comprises a first region for
specifying the first item and the second item, the first region
overlaying a second region displaying a catalog of items.
11. The non-transitory machine-readable medium of claim 9, the
operations further comprising: receiving, at the processing
hardware, a search request for a given item type from the inventory
management data repository, wherein the given item type is
associated with the first item, and wherein the given item type is
not associated with the combined item; and providing neither the
first item nor the combined item as a search result to the search
request based on the first item having been combined with the
second item into the combined item.
12. The non-transitory machine-readable medium of claim 9, wherein
the combined item corresponds with a supplier bid.
13. The non-transitory machine-readable medium of claim 12, the
operations further comprising: determining that an expiration date
associated with the supplier bid has passed; and removing, from the
inventory management data repository, the supplier bid.
14. The non-transitory machine-readable medium of claim 9, the
operations further comprising: removing, from the inventory
management data repository, the first item and the second item in
response to the input representing that the first item residing
within the inventory management data repository is to be combined
with the second item residing within the inventory management data
repository.
15. The non-transitory machine-readable medium of claim 9, wherein
the server is directly connected to the bid data repository via a
first data connection, wherein the server is directly connected to
the inventory management data repository via a second data
connection, wherein the server is connected to the client computing
device via an external network, and wherein the first data
connection and the second data connection do not pass through the
external network.
16. A method comprising: receiving, via a graphical user interface
presented at a client computing device, an input representing that
a first item residing within an inventory management data
repository is to be combined with a second item residing within the
inventory management data repository; generating a data object that
comprises a first data substructure for the first item and a second
data substructure for the second item; and creating, in the
inventory management data repository, a combined item that
comprises the first data substructure for the first item and the
second data substructure for the second item.
17. The method of claim 16, wherein the graphical user interface
comprises a first region for specifying the first item and the
second item, the first region overlaying a second region displaying
a catalog of items.
18. The method of claim 16, further comprising: receiving, at the
processing hardware, a search request for a given item type from
the inventory management data repository, wherein the given item
type is associated with the first item, and wherein the given item
type is not associated with the combined item; and providing
neither the first item nor the combined item as a search result to
the search request based on the first item having been combined
with the second item into the combined item.
19. The method of claim 16, wherein the combined item corresponds
with a supplier bid.
20. The method of claim 19, further comprising: determining that an
expiration date associated with the supplier bid has passed; and
removing, from the inventory management data repository, the
supplier bid.
21. The method of claim 16, further comprising: removing, from the
inventory management data repository, the first item and the second
item in response to the input representing that the first item
residing within the inventory management data repository is to be
combined with the second item residing within the inventory
management data repository.
Description
PRIORITY CLAIM
[0001] This application is a continuation of U.S. patent
application Ser. No. 16/723,216, filed on Dec. 20, 2019, which
claims priority to U.S. Provisional Patent Application No.
62/882,655, filed on Aug. 5, 2019, entitled "CONFIGURING A COMPUTER
SYSTEM BASED ON A PURCHASE ORDER," the entire content of which are
incorporated herein by reference.
TECHNICAL FIELD
[0002] The subject matter disclosed herein relates to configuration
of a computer system. In particular, example embodiments may relate
to configuring a computer system based on a purchase order.
BACKGROUND
[0003] A large organization, such as a department store chain, a
natural resource excavator, a government department with multiple
geographic locations, a wealthy family with multiple homes, and the
like, may have to manage a large amount of inventory items. The
inventory items are typically ordered for suppliers in response to
bids by the suppliers, combined with one another, moved from one
geographic location to another, and the like. Techniques for
keeping track of all of the inventory items may be desirable.
BRIEF DESCRIPTION OF THE DRAWINGS
[0004] Various ones of the appended drawings merely illustrate
example embodiments of the present inventive subject matter and
cannot be considered as limiting its scope.
[0005] FIG. 1 is a block diagram of an example system in which
configuring a computer system based on a purchase order may be
implemented, according to some embodiments.
[0006] FIG. 2 is a flow chart illustrating an example method for
configuring a computer system based on a purchase order, according
to some embodiments.
[0007] FIGS. 3A-3R illustrate example graphical user interfaces for
configuring a computer system based on a purchase order, according
to some embodiments.
[0008] FIG. 4 is a block diagram illustrating components of a
machine able to read and execute instructions from a
machine-readable medium that cause the machine to perform any one
or more of the methodologies discussed herein, according to some
embodiments.
SUMMARY
[0009] The present disclosure generally relates to machines that
configure a computer system based on a purchase order, including
computerized variants of such special-purpose machines and
improvements to such variants, and to the technologies by which
such special-purpose machines become improved compared to other
special-purpose machines that provide technology for configuring a
computer system based on a purchase order. In particular, the
present disclosure addresses systems and methods for configuring a
computer system based on a purchase order.
[0010] According to some aspects, a method includes: receiving a
notification that an order for a new item is being placed via an
order form at a client computing device, wherein the notification
comprises at least an indication of a type of item being ordered,
wherein the order form comprises a plurality of fields, wherein the
plurality of fields comprise at least the type of item, an item
identifier, a supplier identifier, a price, a payment method, and a
delivery location; selecting, based on the type of item being
ordered, a first supplier bid from a plurality of supplier bids
stored in a bid data repository, wherein each supplier bid stored
in the bid data repository comprises at least the item identifier,
the supplier identifier, the price, and an expiration date, wherein
the item identifier of the first supplier bid corresponds to the
type of item being ordered; prepopulating, based on the first
supplier bid, one or more fields of the order form at the client
computing device; submitting the order based on the order form; and
updating, upon determining that a delivery for the order has been
completed, an inventory management data repository based on at
least the delivery location and the item identifier.
[0011] Other aspects include a machine-readable medium storing
instructions to perform the above method and a system including
processing hardware and memory, the processing hardware to perform
the above method.
DETAILED DESCRIPTION
[0012] Reference will now be made in detail to specific example
embodiments for carrying out the disclosed subject matter. Examples
of these specific embodiments are illustrated in the accompanying
drawings, and specific details are set forth in the following
description in order to provide a thorough understanding of the
subject matter. It will be understood that these examples are not
intended to limit the scope of the claims to the illustrated
embodiments. On the contrary, they are intended to cover such
alternatives, modifications, and equivalents as may be included
within the scope of the disclosure. Examples merely typify possible
variations. Unless explicitly stated otherwise, components and
functions are optional and may be combined or subdivided, and
operations may vary in sequence or be combined or subdivided. In
the following description, for purposes of explanation, numerous
specific details are set forth to provide a thorough understanding
of example embodiments. It will be evident to one skilled in the
art, however, that the present subject matter may be practiced
without these specific details.
[0013] FIG. 1 is a block diagram of an example system 100 in which
configuring a computer system based on a purchase order may be
implemented, according to some embodiments. As shown, the system
100 includes a client computing device 110, a server 120, a bid
data repository 130, and an inventory management data repository
140 connected to a network 150. The network 150 may include one or
more of the internet, an intranet, a local area network, a wide
area network, a virtual private network (VPN), and the like. While
a single one of each of the client computing device 110, the server
120, the bid data repository 130, and the inventory management data
repository 140 is illustrated, the technology may be implemented
with either a single or multiple ones of the client computing
device 110, the server 120, the bid data repository 130, and the
inventory management data repository 140. In some cases, a single
machine performs the functions of two or more of the client
computing device 110, the server 120, the bid data repository 130,
and the inventory management data repository 140.
[0014] The client computing device 110 may include one or more of a
laptop computer, a desktop computer, a mobile phone, a tablet
computer, a smart watch, a digital music player, a smart
television, and the like. The client computing device 110 is
configured to display a graphical user interface (GUI), such as the
GUIs shown in FIGS. 3A-3R, to a user and to receive input, via the
GUI and/or an input device (e.g., touch screen, keyboard, mouse,
and the like) from the user.
[0015] The server includes processing hardware and memory. The
server 120 receives input, via the network 150, from one or more
client computing devices 110. The server accesses data from the bid
data repository 130 and the inventory management data repository
140. The server 120 manipulates the accessed data, stores the
results of the manipulation in the bid data repository 130 and the
inventory management data repository 140. The server 120 provides
an output to the client computing device 110 for display thereat.
More details of examples of the function of the server 120, and its
interoperation with the bid data repository 130 and the inventory
management data repository 140 are discussed in conjunction with
FIG. 2.
[0016] The bid data repository 130 may be implemented as a database
or any other data storage unit. Similarly, the inventory management
data repository 140 may be implemented as a database or any other
data storage unit. In some cases, a single data storage unit
functions as both the bid data repository 130 and the inventory
management data repository 140.
[0017] As shown, the server 120 communicates with the bid data
repository 130 and the inventory management data repository 140 via
the network 150. However, in some embodiments, the server may have
a direct non-network connection to the bid data repository 130
and/or the inventory management data repository 140. The direct
non-network connection may be a wired or wireless connection.
[0018] In some embodiments, the server 120 is directly connected to
the bid data repository 130 via a first data connection. The server
120 is directly connected to the inventory management data
repository 140 via a second data connection. The server is
connected to the client computing device 110 via the network 150.
The first data connection and the second data connection do not
pass through the network 150.
[0019] According to some aspects, the server 120 receives supplier
bids offering to sell items to an organization associated with the
client computing device 110. The organization may be, for example,
an employer of a user of the client computing device 110. Each bid
includes an item identifier, a price (e.g. per unit), and an
expiration date. The bids are stored in the bid data repository 130
until their expiration dates. Upon reaching its expiration date, a
given bid may be removed (e.g., by the server 120) from the bid
data repository 130. In some cases, a given bid might not be
removed from the bid data repository 130 upon reaching its
expiration date, as suppliers might still honor bids for procuring
goods with stable prices after the expiration date has passed. The
server 120 receives a notification that an order for a new item (or
multiple new items) is being placed via an order form at the client
computing device 110. The notification includes at least an
indication of a type of item being ordered. The order form includes
multiple fields. The fields include at least the type of item, the
item identifier, the supplier identifier, the price, a payment
method, and a delivery location.
[0020] The server 120 selects a first supplier bid for the order.
The item identifier of the first supplier bid corresponds to the
type of item. If there are multiple bids where the item identifier
corresponds to the type of item, other criteria, such as the price
per unit or the delivery time, may be used to select the first
supplier bid. The server 120 prepopulates, based on the first
supplier bid, one or more fields of the order form at the client
computing device 110. The user of the client computing device 110
fills out the order form at the client computing device 110. The
server 120 submits the order based on the completed order form.
When the delivery for the order is completed, the server 120 may
update the inventory management data repository 140 based on at
least the delivery location and the item identifier.
[0021] FIG. 2 is a flow chart illustrating an example method 200
for configuring a computer system based on a purchase order,
according to some embodiments. The method 200 may be implemented at
the server 120.
[0022] Prior to (or simultaneously with) implementing the method
200, the server 120 receives a plurality of supplier bids. The
server 120 stores the plurality of supplier bids in the bid data
repository 130.
[0023] At operation 210, the server 120 receives a notification
that an order for a new item is being placed via an order form at
the client computing device 110. The notification comprises at
least an indication of a type of item being ordered. The order form
comprises a plurality of fields. The plurality of fields comprise
at least the type of item, an item identifier, a supplier
identifier, a price, a payment method, and a delivery location.
[0024] At operation 220, the server 120 selects, based on the type
of item being ordered, a first supplier bid from a plurality of
supplier bids stored in the bid data repository 130. Each supplier
bid stored in the bid data repository 130 comprises at least the
item identifier, the supplier identifier, the price, and an
expiration date. The item identifier of the first supplier bid
corresponds to the type of item being ordered. In some cases, the
bid data repository 130 is ensured to have currently valid bids. If
a bid in the bid data repository 130 reaches or is past its
expiration date, the bid is removed from the data repository
130.
[0025] At operation 230, the server 120 prepopulates, based on the
first supplier bid, one or more fields of the order form at the
client computing device 110. The prepopulated fields may include at
least one of the item identifier, the supplier identifier, and/or
the price. The user of the client computing device 110 may approve
the prepopulated fields and fill out additional fields that were
not prepopulated. The additional fields may include, for example,
the payment method and/or the delivery location. Alternatively, the
user may edit one or more of the prepopulated fields.
[0026] At operation 240, the server 120 submits the order based on
the order form. For example, the server 120 may email or fax the
order form to the supplier. Alternatively, the supplier may
provide, to the server 120, a mechanism for automatically
submitting orders, and the server 120 may submit the order
according to the mechanism. The mechanism may be identified from a
selectable link in the order form or metadata of the order form.
The metadata may reside in a header of the order form.
[0027] At operation 250, the server 120 updates, upon determining
that a delivery for the order has been completed, the inventory
management data repository 140 based on at least the delivery
location and the item identifier.
[0028] In some cases, the server 120 receives an indication that a
first item residing at the delivery location is to be combined with
a second item residing at the delivery location. For example, a
desktop computer tower may be combined with a monitor to create a
work station (that includes both the desktop computer tower and the
monitor). In response, the first item and the second item may be
removed from the inventory management data repository 140. The
server creates, in the inventory management data repository 140, a
combined item (e.g. work station with ID #123) that includes both
the first item (e.g. monitor with ID #456) and the second item
(e.g. desktop computer tower with ID #789).
[0029] The server 120 may receive a search request for a given item
type (e.g. monitor) from the inventory management data repository
140, where the given item type is associated with the first item
and is not associated with the combined item. The server 120
provides neither the first item (e.g. monitor with ID #456) nor the
combined item (e.g. work station with ID #123) as a search result
based on the first item having been combined with the second item
into the combined item.
[0030] FIGS. 3A-3R illustrate example graphical user interfaces for
configuring a computer system based on a purchase order, according
to some embodiments. The graphical user interfaces of FIGS. 3A-3R
may be presented at the client computing device 110 based on its
interaction with the server 120 and/or to support its interaction
with the server 120.
[0031] FIG. 3A illustrates an example create new hardware request.
FIG. 3B illustrates an example interface for creating a new
location. FIG. 3C illustrates an example GUI representing an
inventory item, called "ABC Server" that includes the components:
"ABC RAM," "ABC CPU," and "ABC Storage." In FIG. 3C, the "ABC
Server" is a member of a list of inventory items. FIG. 3D
illustrates an example hardware request. FIG. 3E illustrates an
example GUI representing an inventory item, called "ABC Server"
that includes the components: "ABC RAM," "ABC CPU," and "ABC
Storage." FIG. 3F illustrates an example augmenting interface. FIG.
3G illustrates an example receive hardware request shipment. FIG.
3H illustrates an example create hardware request shipment. FIG. 3I
illustrates a first example inventory for a location. FIG. 3J
illustrates a second example inventory for a location. FIG. 3K
illustrates an example catalog. FIG. 3L illustrates an example
create new server specification. FIG. 3M illustrates an example
receive vendor quote request. FIG. 3N illustrates an example
interface for creating a line item. FIG. 3O illustrates example
purchase orders. FIG. 3P illustrates example vendor quotes. FIG. 3Q
illustrates an example inventory for a location. FIG. 3R
illustrates an example purchase order.
[0032] FIG. 4 is a block diagram illustrating components of a
machine 400, according to some example embodiments, able to read
instructions from a machine-readable medium (e.g., a
machine-readable storage medium) and perform any one or more of the
methodologies discussed herein. The machine 400 may correspond to
one or more of the administrator client device 110, the application
client device 120, the administrator server 130, and the
application server 140. Specifically, FIG. 4 shows a diagrammatic
representation of the machine 400 in the example form of a system,
within which instructions 402 (e.g., software, a program, an
application, an applet, an app, a driver, or other executable code)
for causing the machine 400 to perform any one or more of the
methodologies discussed herein may be executed. For example, the
instructions 402 include executable code that causes the machine
400 to execute the methods 200 or 300. In this way, these
instructions transform the general, non-programmed machine into a
particular machine programmed to carry out the described and
illustrated functions in the manner described herein. The machine
400 may operate as a standalone device or may be coupled (e.g.,
networked) to other machines.
[0033] By way of non-limiting example, the machine 400 may comprise
or correspond to a television, a computer (e.g., a server computer,
a client computer, a personal computer (PC), a tablet computer, a
laptop computer, or a netbook), a set-top box (STB), a personal
digital assistant (PDA), an entertainment media system (e.g., an
audio/video receiver), a cellular telephone, a smart phone, a
mobile device, a wearable device (e.g., a smart watch), a portable
media player, or any machine capable of outputting audio signals
and capable of executing the instructions 402, sequentially or
otherwise, that specify actions to be taken by machine 400.
Further, while only a single machine 400 is illustrated, the term
"machine" shall also be taken to include a collection of machines
400 that individually or jointly execute the instructions 402 to
perform any one or more of the methodologies discussed herein.
[0034] The machine 400 may include processors 404, memory 406,
storage unit 408 and I/O components 410, which may be configured to
communicate with each other such as via a bus 412. In an example
embodiment, the processors 404 (e.g., a central processing unit
(CPU), a reduced instruction set computing (RISC) processor, a
complex instruction set computing (CISC) processor, a graphics
processing unit (GPU), a digital signal processor (DSP), an
application specific integrated circuit (ASIC), a radio-frequency
integrated circuit (RFIC), another processor, or any suitable
combination thereof) may include, for example, processor 414 and
processor 416 that may execute instructions 402. The term
"processor" is intended to include multi-core processors that may
comprise two or more independent processors (sometimes referred to
as "cores") that may execute instructions contemporaneously.
Although FIG. 4 shows multiple processors, the machine 400 may
include a single processor with a single core, a single processor
with multiple cores (e.g., a multi-core process), multiple
processors with a single core, multiple processors with multiples
cores, or any combination thereof.
[0035] The memory 406 (e.g., a main memory or other memory storage)
and the storage unit 408 are both accessible to the processors 404
such as via the bus 412. The memory 406 and the storage unit 408
store the instructions 402 embodying any one or more of the
methodologies or functions described herein. The instructions 402
may also reside, completely or partially, within the memory 406,
within the storage unit 408, within at least one of the processors
404 (e.g., within the processor's cache memory), or any suitable
combination thereof, during execution thereof by the machine 400.
Accordingly, the memory 406, the storage unit 408, and the memory
of processors 404 are examples of machine-readable media.
[0036] As used herein, "machine-readable medium" means a device
able to store instructions and data temporarily or permanently and
may include, but is not be limited to, random-access memory (RAM),
read-only memory (ROM), buffer memory, flash memory, optical media,
magnetic media, cache memory, other types of storage (e.g.,
erasable programmable read-only memory (EEPROM)), or any suitable
combination thereof. The term "machine-readable medium" should be
taken to include a single medium or multiple media (e.g., a
centralized or distributed database, or associated caches and
servers) able to store instructions 402. The term "machine-readable
medium" shall also be taken to include any medium, or combination
of multiple media, that is capable of storing instructions (e.g.,
instructions 402) for execution by a machine (e.g., machine 400),
such that the instructions, when executed by one or more processors
of the machine 400 (e.g., processors 404), cause the machine 400 to
perform any one or more of the methodologies described herein
(e.g., methods 200 and 400). Accordingly, a "machine-readable
medium" refers to a single storage apparatus or device, as well as
"cloud-based" storage systems or storage networks that include
multiple storage apparatus or devices. The term "machine-readable
medium" excludes signals per se.
[0037] Furthermore, the "machine-readable medium" is non-transitory
in that it does not embody a propagating signal. However, labeling
the tangible machine-readable medium as "non-transitory" should not
be construed to mean that the medium is incapable of movement--the
medium should be considered as being transportable from one
real-world location to another. Additionally, since the
machine-readable medium is tangible, the medium may be considered
to be a machine-readable device.
[0038] The I/O components 410 may include a wide variety of
components to receive input, provide output, produce output,
transmit information, exchange information, capture measurements,
and so on. The specific I/O components 410 that are included in a
particular machine will depend on the type of machine. For example,
portable machines such as mobile phones will likely include a touch
input device or other such input mechanisms, while a headless
server machine will likely not include such a touch input device.
It will be appreciated that the I/O components 410 may include many
other components that are not specifically shown in FIG. 4. The I/O
components 410 are grouped according to functionality merely for
simplifying the following discussion and the grouping is in no way
limiting. In various example embodiments, the I/O components 410
may include input components 418 and output components 420. The
input components 418 may include alphanumeric input components
(e.g., a keyboard, a touch screen configured to receive
alphanumeric input, a photo-optical keyboard, or other alphanumeric
input components), point based input components (e.g., a mouse, a
touchpad, a trackball, a joystick, a motion sensor, or other
pointing instrument), tactile input components (e.g., a physical
button, a touch screen that provides location and/or force of
touches or touch gestures, or other tactile input components),
audio input components, and the like. The output components 420 may
include visual components (e.g., a display such as a plasma display
panel (PDP), a light emitting diode (LED) display, a liquid crystal
display (LCD), a projector, or a cathode ray tube (CRT)), acoustic
components (e.g., speakers), haptic components (e.g., a vibratory
motor, resistance mechanisms), other signal generators, and so
forth.
[0039] Communication may be implemented using a wide variety of
technologies. The I/O components 410 may include communication
components 422 operable to couple the machine 400 to a network 424
or devices 426 via coupling 428 and coupling 430, respectively. For
example, the communication components 422 may include a network
interface component or other suitable device to interface with the
network 424. In further examples, communication components 422 may
include wired communication components, wireless communication
components, cellular communication components, near field
communication (NFC) components, Bluetooth.RTM. components (e.g.,
Bluetooth.RTM. Low Energy), Wi-Fi.RTM. components, and other
communication components to provide communication via other
modalities. The devices 426 may be another machine or any of a wide
variety of peripheral devices (e.g., a peripheral device coupled
via a Universal Serial Bus (USB)).
NUMBERED EXAMPLES
[0040] Certain embodiments are described herein as numbered
examples 1, 2, 3, etc. These numbered examples are provided as
examples only and do not limit the technology disclosed herein.
[0041] Example 1 is a system comprising: processing hardware of a
server; and a memory storing instructions which, when executed by
the processing hardware, cause the processing hardware to perform
operations comprising: receiving a notification that an order for a
new item is being placed via an order form at a client computing
device, wherein the notification comprises at least an indication
of a type of item being ordered, wherein the order form comprises a
plurality of fields, wherein the plurality of fields comprise at
least the type of item, an item identifier, a supplier identifier,
a price, a payment method, and a delivery location; selecting,
based on the type of item being ordered, a first supplier bid from
a plurality of supplier bids stored in a bid data repository,
wherein each supplier bid stored in the bid data repository
comprises at least the item identifier, the supplier identifier,
the price, and an expiration date, wherein the item identifier of
the first supplier bid corresponds to the type of item being
ordered; prepopulating, based on the first supplier bid, one or
more fields of the order form at the client computing device;
submitting the order based on the order form; and updating, upon
determining that a delivery for the order has been completed, an
inventory management data repository based on at least the delivery
location and the item identifier.
[0042] In Example 2, the subject matter of Example 1 includes, the
operations further comprising: receiving the plurality of supplier
bids; and storing, in the bid data repository, the plurality of
supplier bids.
[0043] In Example 3, the subject matter of Examples 1-2 includes,
the operations further comprising: receiving input representing
that a first item residing at the delivery location is to be
combined with a second item residing at the delivery location;
removing, from the inventory management data repository, the first
item and the second item in response to the input; creating, in the
inventory management data repository, a combined item that
comprises both the first item and the second item, wherein a data
structure for the combined item comprises a data substructure for
the first item and a data substructure for the second item.
[0044] In Example 4, the subject matter of Example 3 includes, the
operations further comprising: receiving, at the processing
hardware, a search request for a given item type from the inventory
management data repository, wherein the given item type is
associated with the first item, and wherein the given item type is
not associated with the combined item; and providing neither the
first item nor the combined item as a search result to the search
request based on the first item having been combined with the
second item into the combined item.
[0045] In Example 5, the subject matter of Examples 1-4 includes,
the operations further comprising: determining that an expiration
date for a given bid has passed; and removing, from the bid data
repository, the given bid.
[0046] In Example 6, the subject matter of Examples 1-5 includes,
wherein prepopulating, based on the first supplier bid, the one or
more fields of the order form at the client computing device
comprises prepopulating at least one of the item identifier, the
supplier identifier, and the price, the operations further
comprising: receiving, from the client computing device, an
indication of approval of the prepopulated fields; and receiving,
from the client computing device, a value input for at least one
field that was not prepopulated.
[0047] In Example 7, the subject matter of Example 6 includes,
wherein the at least one field that was not prepopulated comprises
the payment method or the delivery location.
[0048] In Example 8, the subject matter of Examples 1-7 includes,
wherein the server is directly connected to the bid data repository
via a first data connection, wherein the server is directly
connected to the inventory management data repository via a second
data connection, wherein the server is connected to the client
computing device via an external network, and wherein the first
data connection and the second data connection do not pass through
the external network.
[0049] Example 9 is a non-transitory machine-readable medium
storing instructions which, when executed by a machine, cause the
machine to perform operations comprising: receiving a notification
that an order for a new item is being placed via an order form at a
client computing device, wherein the notification comprises at
least an indication of a type of item being ordered, wherein the
order form comprises a plurality of fields, wherein the plurality
of fields comprise at least the type of item, an item identifier, a
supplier identifier, a price, a payment method, and a delivery
location; selecting, based on the type of item being ordered, a
first supplier bid from a plurality of supplier bids stored in a
bid data repository, wherein each supplier bid stored in the bid
data repository comprises at least the item identifier, the
supplier identifier, the price, and an expiration date, wherein the
item identifier of the first supplier bid corresponds to the type
of item being ordered; prepopulating, based on the first supplier
bid, one or more fields of the order form at the client computing
device; submitting the order based on the order form; and updating,
upon determining that a delivery for the order has been completed,
an inventory management data repository based on at least the
delivery location and the item identifier.
[0050] In Example 10, the subject matter of Example 9 includes, the
operations further comprising: receiving the plurality of supplier
bids; and storing, in the bid data repository, the plurality of
supplier bids.
[0051] In Example 11, the subject matter of Examples 9-10 includes,
the operations further comprising: receiving input representing
that a first item residing at the delivery location is to be
combined with a second item residing at the delivery location;
removing, from the inventory management data repository, the first
item and the second item in response to the input; creating, in the
inventory management data repository, a combined item that
comprises both the first item and the second item, wherein a data
structure for the combined item comprises a data substructure for
the first item and a data substructure for the second item.
[0052] In Example 12, the subject matter of Example 11 includes,
the operations further comprising: receiving a search request for a
given item type from the inventory management data repository,
wherein the given item type is associated with the first item, and
wherein the given item type is not associated with the combined
item; and providing neither the first item nor the combined item as
a search result to the search request based on the first item
having been combined with the second item into the combined
item.
[0053] In Example 13, the subject matter of Examples 9-12 includes,
the operations further comprising: determining that an expiration
date for a given bid has passed; and removing, from the bid data
repository, the given bid.
[0054] In Example 14, the subject matter of Examples 9-13 includes,
wherein prepopulating, based on the first supplier bid, the one or
more fields of the order form at the client computing device
comprises prepopulating at least one of the item identifier, the
supplier identifier, and the price, the operations further
comprising: receiving, from the client computing device, an
indication of approval of the prepopulated fields; and receiving,
from the client computing device, a value input for at least one
field that was not prepopulated.
[0055] In Example 15, the subject matter of Example 14 includes,
wherein the at least one field that was not prepopulated comprises
the payment method or the delivery location.
[0056] In Example 16, the subject matter of Examples 9-15 includes,
wherein the server is directly connected to the bid data repository
via a first data connection, wherein the server is directly
connected to the inventory management data repository via a second
data connection, wherein the server is connected to the client
computing device via an external network, and wherein the first
data connection and the second data connection do not pass through
the external network.
[0057] Example 17 is a method comprising: receiving a notification
that an order for a new item is being placed via an order form at a
client computing device, wherein the notification comprises at
least an indication of a type of item being ordered, wherein the
order form comprises a plurality of fields, wherein the plurality
of fields comprise at least the type of item, an item identifier, a
supplier identifier, a price, a payment method, and a delivery
location; selecting, based on the type of item being ordered, a
first supplier bid from a plurality of supplier bids stored in a
bid data repository, wherein each supplier bid stored in the bid
data repository comprises at least the item identifier, the
supplier identifier, the price, and an expiration date, wherein the
item identifier of the first supplier bid corresponds to the type
of item being ordered; prepopulating, based on the first supplier
bid, one or more fields of the order form at the client computing
device; submitting the order based on the order form; and updating,
upon determining that a delivery for the order has been completed,
an inventory management data repository based on at least the
delivery location and the item identifier.
[0058] In Example 18, the subject matter of Example 17 includes,
receiving the plurality of supplier bids; and storing, in the bid
data repository, the plurality of supplier bids.
[0059] In Example 19, the subject matter of Examples 17-18
includes, receiving input representing that a first item residing
at the delivery location is to be combined with a second item
residing at the delivery location; removing, from the inventory
management data repository, the first item and the second item in
response to the input; creating, in the inventory management data
repository, a combined item that comprises both the first item and
the second item, wherein a data structure for the combined item
comprises a data substructure for the first item and a data
substructure for the second item.
[0060] In Example 20, the subject matter of Example 19 includes,
receiving a search request for a given item type from the inventory
management data repository, wherein the given item type is
associated with the first item, and wherein the given item type is
not associated with the combined item; and providing neither the
first item nor the combined item as a search result to the search
request based on the first item having been combined with the
second item into the combined item.
[0061] Example 21 is at least one machine-readable medium including
instructions that, when executed by processing circuitry, cause the
processing circuitry to perform operations to implement of any of
Examples 1-20.
[0062] Example 22 is an apparatus comprising means to implement of
any of Examples 1-20.
[0063] Example 23 is a system to implement of any of Examples
1-20.
[0064] Example 24 is a method to implement of any of Examples
1-20.
Electronic Apparatus and System
[0065] Example embodiments may be implemented in digital electronic
circuitry, or in computer hardware, firmware, or software, or in
combinations of them. Example embodiments may be implemented using
a computer program product, for example, a computer program
tangibly embodied in an information carrier, for example, in a
machine-readable medium for execution by, or to control the
operation of, data processing apparatus, for example, a
programmable processor, a computer, or multiple computers.
[0066] A computer program can be written in any form of programming
language, including compiled or interpreted languages, and it can
be deployed in any form, including as a standalone program or as a
module, subroutine, or other unit suitable for use in a computing
environment. A computer program can be deployed to be executed on
one computer or on multiple computers at one site, or distributed
across multiple sites and interconnected by a communication
network.
[0067] In example embodiments, operations may be performed by one
or more programmable processors executing a computer program to
perform functions by operating on input data and generating output.
Method operations can also be performed by, and apparatus of
example embodiments may be implemented as, special purpose logic
circuitry (e.g., an FPGA or an ASIC).
[0068] The computing system can include clients and servers. A
client and server are generally remote from each other and
typically interact through a communication network. The
relationship of client and server arises by virtue of computer
programs running on the respective computers and having a
client-server relationship to each other. In embodiments deploying
a programmable computing system, it will be appreciated that both
hardware and software architectures merit consideration.
Specifically, it will be appreciated that the choice of whether to
implement certain functionality in permanently configured hardware
(e.g., an ASIC), in temporarily configured hardware (e.g., a
combination of software and a programmable processor), or in a
combination of permanently and temporarily configured hardware may
be a design choice. Below are set out hardware (e.g., machine) and
software architectures that may be deployed, in various example
embodiments.
Language
[0069] Although the embodiments of the present invention have been
described with reference to specific example embodiments, it will
be evident that various modifications and changes may be made to
these embodiments without departing from the broader scope of the
inventive subject matter. Accordingly, the specification and
drawings are to be regarded in an illustrative rather than a
restrictive sense. The accompanying drawings that form a part
hereof show by way of illustration, and not of limitation, specific
embodiments in which the subject matter may be practiced. The
embodiments illustrated are described in sufficient detail to
enable those skilled in the art to practice the teachings disclosed
herein. Other embodiments may be used and derived therefrom, such
that structural and logical substitutions and changes may be made
without departing from the scope of this disclosure. This Detailed
Description, therefore, is not to be taken in a limiting sense, and
the scope of various embodiments is defined only by the appended
claims, along with the full range of equivalents to which such
claims are entitled.
[0070] Such embodiments of the inventive subject matter may be
referred to herein, individually and/or collectively, by the term
"invention" merely for convenience and without intending to
voluntarily limit the scope of this application to any single
invention or inventive concept if more than one is in fact
disclosed. Thus, although specific embodiments have been
illustrated and described herein, it should be appreciated that any
arrangement calculated to achieve the same purpose may be
substituted for the specific embodiments shown. This disclosure is
intended to cover any and all adaptations or variations of various
embodiments. Combinations of the above embodiments, and other
embodiments not specifically described herein, will be apparent, to
those of skill in the art, upon reviewing the above
description.
[0071] All publications, patents, and patent documents referred to
in this document are incorporated by reference herein in their
entirety, as though individually incorporated by reference. In the
event of inconsistent usages between this document and those
documents so incorporated by reference, the usage in the
incorporated references should be considered supplementary to that
of this document; for irreconcilable inconsistencies, the usage in
this document controls.
[0072] In this document, the terms "a" or "an" are used, as is
common in patent documents, to include one or more than one,
independent of any other instances or usages of "at least one" or
"one or more." In this document, the term "or" is used to refer to
a nonexclusive or, such that "A or B" includes "A but not B," "B
but not A," and "A and B," unless otherwise indicated. In the
appended claims, the terms "including" and "in which" are used as
the plain-English equivalents of the respective terms "comprising"
and "wherein." Also, in the following claims, the terms "including"
and "comprising" are open-ended; that is, a system, device,
article, or process that includes elements in addition to those
listed after such a term in a claim are still deemed to fall within
the scope of that claim.
* * * * *