Method, medium, and system for providing customizable and flexible ordering interfaces

In some embodiments, a computer-implemented method for automatically choosing an ordering interface to be presented is provided. A computing system stores a first ordering rule definition and a second ordering rule definition. The first ordering rule definition includes at least one condition for disabling the first ordering rule definition. The computing system receives a request to present an ordering interface for a first order. In response to determining that the at least one condition for disabling the first ordering rule definition has not been met, an ordering interface is presented based on the first ordering rule definition. In response to determining that the at least one condition for disabling the first ordering rule definition has been met, an ordering interface is presented based on the second ordering rule definition.

BACKGROUND

While the generation of interfaces for Internet-based interactions is now commonplace, such interfaces are often relatively static. For example, many interfaces (such as ordering interfaces provided by retailers) are static, and a tedious process of reconfiguration must be performed in order to change ordering characteristics provided by the interface, including but not limited to delivery charges, the availability of limited-inventory products, and so on. Such interfaces cannot be reconfigured quickly to match rapidly changing conditions on which the interfaces should be based. What is desired are systems that allow for the rapid and automatic dynamic reconfiguration of interfaces responsive to changes in conditions.

SUMMARY

In some embodiments, a computer-implemented method for automatically choosing an ordering interface to be presented is provided. A computing system stores a first ordering rule definition and a second ordering rule definition. The first ordering rule definition includes at least one condition for disabling the first ordering rule definition. The computing system receives a request to present an ordering interface for a first order. In response to determining that the at least one condition for disabling the first ordering rule definition has not been met, an ordering interface is presented based on the first ordering rule definition. In response to determining that the at least one condition for disabling the first ordering rule definition has been met, an ordering interface is presented based on the second ordering rule definition.

In some embodiments, a non-transitory computer-readable storage medium is provided. The computer-readable storage medium has instructions stored thereon that, in response to execution by one or more processors of a computing system, cause the computing system to perform actions including storing a first ordering rule definition and a second ordering rule definition, where the first ordering rule definition includes at least one condition for disabling the first ordering rule definition; receiving a request to present an ordering interface for a first order; in response to determining that the at least one condition for disabling the first ordering rule definition has not been met, presenting an ordering interface based on the first ordering rule definition; and in response to determining that the at least one condition for disabling the first ordering rule definition has been met, presenting an ordering interface based on the second ordering rule definition.

In some embodiments, a computing device is provided. The computing device includes a processor and a non-transitory computer-readable medium. The computer-readable medium has instructions stored thereon that, in response to execution by the processor, cause the computing device to perform actions including storing a first ordering rule definition and a second ordering rule definition, where the first ordering rule definition includes at least one condition for disabling the first ordering rule definition; receiving a request to present an ordering interface for a first order; in response to determining that the at least one condition for disabling the first ordering rule definition has not been met, presenting an ordering interface based on the first ordering rule definition; and in response to determining that the at least one condition for disabling the first ordering rule definition has been met, presenting an ordering interface based on the second ordering rule definition.

DETAILED DESCRIPTION

Embodiments of the present disclosure provide systems and/or methods that reduce the configuration burden and allow for the dynamic generation of interfaces, including ordering interfaces for retailers. The zone configuration techniques described below provide technical improvements in the generation of ordering interfaces, at least in that ordering interfaces can be generated that more highly responsive to rules and changes in conditions than with previous ordering interface management techniques.

In some embodiments, an interface management computing system is provided that allows retailers to establish a plurality of zones (e.g., geographic areas) defining ordering rule definitions for orders associated with the zones (e.g., delivery charges, delivery window sizes, etc.). In some embodiments, multiple overlapping ordering rule definitions may be provided for a given zone, and a first ordering rule definition may be automatically disabled to fall-back to a second ordering rule definition when a condition is satisfied. This may allow the interface management computing system to change the behavior of the ordering interface in a manner that is highly responsive to changing conditions.

FIG.1is a schematic illustration of a non-limiting example embodiment of a system according to various aspects of the present disclosure. As shown, the system100includes an interface management computing system102, one or more retailer systems104, and a plurality of end-user computing devices106a-106c.

The retailer systems104may be any suitable type of computing device or collections of computing devices operated by retailers for communicating with the interface management computing system102. Typically, a retailer system104may include one or more laptop computing devices, desktop computing devices, tablet computing devices, or mobile computing devices, though in some embodiments, the retailer system104may include other types of computing devices, including but not limited to special-purpose computing devices manufactured to interact with the interface management computing system102and/or computing devices of a cloud computing system.

In some embodiments, a retailer system104may include a client computing device that connects to the interface management computing system102in order to interact with a configuration interface provided by the interface management computing system102. In some embodiments, the interface management computing system102may also provide functionality for recording orders, processing payments, and/or managing fulfillment of orders, and such functionality may be accessed by retailers through a retailer system104. In some embodiments, the retailer system104may provide functionality for processing payments, recording orders, managing fulfillment of orders, and/or any other functionality for processing orders received through an ordering interface generated by the interface management computing system102.

The end-user computing devices106a-106cmay be any suitable type of computing device operated by an end user for communicating with the interface management computing system102. Typically, the end-user computing devices106a-106cmay be desktop computing devices, laptop computing devices, tablet computing devices, or mobile computing devices having client software (including but not limited to web browser software or custom app software) that allows the end-user computing devices106a-106cto present an ordering interface generated by the interface management computing system102for interaction by an end-user. Each end-user may then use the ordering interface to create orders with the retailers operating the retailer systems104using the ordering rules as described in further detail below. Though three end-user computing devices106a-106care illustrated inFIG.1, one will recognize that any number of end-user computing devices of any combination of types may be present in the system100.

In some embodiments, communication between the interface management computing system102and the end-user computing devices106a-106c, as well as communication between the interface management computing system102and the retailer systems104, may use any suitable communication technique, including but not limited to one or more wired communication technologies (including but not limited to Ethernet, FireWire, and USB), one or more wireless communication technologies (including but not limited to Wi-Fi, WiMAX, Bluetooth, 2G, 3G, 4G, 5G, and LTE), and/or combinations thereof. Typically, communication between the components of the system100may take place over the Internet, though private networks may be used instead of or in addition to communication over the Internet.

FIG.2is a block diagram that illustrates aspects of a non-limiting example embodiment of an interface management computing system according to various aspects of the present disclosure. The illustrated interface management computing system102may be implemented by any computing device or collection of computing devices, including but not limited to a desktop computing device, a laptop computing device, a mobile computing device, a server computing device, a computing device of a cloud computing system, and/or combinations thereof. The interface management computing system102is configured to provide a configuration interface to one or more retailer systems104to allow the configuration of ordering rule definitions, and to provide ordering interfaces based on the ordering rule definitions to one or more end-user computing devices106a-106c.

As shown, the interface management computing system102includes one or more processors202, one or more communication interfaces204, an order data store208, a zone data store212, and a computer-readable medium206.

In some embodiments, the processors202may include any suitable type of general-purpose computer processor. In some embodiments, the processors202may include one or more special-purpose computer processors or AI accelerators optimized for specific computing tasks, including but not limited to graphical processing units (GPUs), vision processing units (VPTs), and tensor processing units (TPUs).

In some embodiments, the communication interfaces204include one or more hardware and or software interfaces suitable for providing communication links between components. The communication interfaces204may support one or more wired communication technologies (including but not limited to Ethernet, FireWire, and USB), one or more wireless communication technologies (including but not limited to Wi-Fi, WiMAX, Bluetooth, 2G, 3G, 4G, 5G, and LTE), and/or combinations thereof.

As shown, the computer-readable medium206has stored thereon logic that, in response to execution by the one or more processors202, cause the interface management computing system102to provide a zone definition engine210, and an interface presentation engine214.

As used herein, “computer-readable medium” refers to a removable or nonremovable device that implements any technology capable of storing information in a volatile or non-volatile manner to be read by a processor of a computing device, including but not limited to: a hard drive; a flash memory; a solid state drive; random-access memory (RAM); read-only memory (ROM); a CD-ROM, a DVD, or other disk storage; a magnetic cassette; a magnetic tape; and a magnetic disk storage.

In some embodiments, the zone definition engine210is configured to provide a configuration interface through which retailer systems104can manage definitions of zones and ordering rule definitions stored within the zone data store212. In some embodiments, the interface presentation engine214is configured to use the information stored in the zone data store212to dynamically generate ordering interfaces to be presented by end-user computing devices106a-106c, and to receive and store order information in the order data store208. Further description of the configuration of each of these components is provided below.

As used herein, “engine” refers to logic embodied in hardware or software instructions, which can be written in one or more programming languages, including but not limited to C, C++, C#, COBOL, JAVA™, PHP, Perl, HTML, CSS, JavaScript, VBScript, ASPX, Go, and Python. An engine may be compiled into executable programs or written in interpreted programming languages. Software engines may be callable from other engines or from themselves. Generally, the engines described herein refer to logical modules that can be merged with other engines, or can be divided into sub-engines. The engines can be implemented by logic stored in any type of computer-readable medium or computer storage device and be stored on and executed by one or more general purpose computers, thus creating a special purpose computer configured to provide the engine or the functionality thereof. The engines can be implemented by logic programmed into an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or another hardware device.

As used herein, “data store” refers to any suitable device configured to store data for access by a computing device. One example of a data store is a highly reliable, high-speed relational database management system (DBMS) executing on one or more computing devices and accessible over a high-speed network. Another example of a data store is a key-value store. However, any other suitable storage technique and/or device capable of quickly and reliably providing the stored data in response to queries may be used, and the computing device may be accessible locally instead of over a network, or may be provided as a cloud-based service. A data store may also include data stored in an organized manner on a computer-readable storage medium, such as a hard disk drive, a flash memory, RAM, ROM, or any other type of computer-readable storage medium. One of ordinary skill in the art will recognize that separate data stores described herein may be combined into a single data store, and/or a single data store described herein may be separated into multiple data stores, without departing from the scope of the present disclosure.

FIG.3is a flowchart that illustrates a non-limiting example embodiment of a method of configuring a set of ordering rule definitions according to various aspects of the present disclosure. In the method300, the interface management computing system102receives information defining one or more ordering rule definitions, and stores the one or more ordering rule definitions for subsequent creation of ordering interfaces based thereon.

At block302, a zone definition engine210of an interface management computing system102receives a command to create an ordering rule definition. In some embodiments, the zone definition engine210may present a configuration interface, and may receive the command to create the ordering rule definition via the actuation of an interface element of the configuration interface.

FIG.4is an illustration of a non-limiting example embodiment of a configuration interface generated by the zone definition engine210according to various aspects of the present disclosure. In the configuration interface402, a header404indicates that the configuration interface402allows a user to configure delivery zones that are defined within the interface management computing system102. The configuration interface402also includes an indication of a first ordering rule definition406a, a second ordering rule definition406b, a third ordering rule definition406c, and a fourth ordering rule definition406d, and provides options to edit or delete each of these ordering rule definitions. An add interface element408is also provided, and actuation of the add interface element408may cause the command to create the ordering rule definition to be created as described in block302.

Returning toFIG.3, at block304, the zone definition engine210receives one or more area designators to be associated with the ordering rule definition. The one or more area designators indicate a geographical area for which the ordering rule definition is to be applied. Any suitable type of area designator may be used. For example (and as illustrated inFIG.4andFIG.5A—FIG.5D), in some embodiments zip codes may be used as an area designator. As shown, the first ordering rule definition406aand the second ordering rule definition406bare associated with three zip codes (98117,98107, and98103), the third ordering rule definition406cis associated with three different zip codes (98199,98119, and98109), and the fourth ordering rule definition406dis associated with two more zip codes (98121,98101). The area designators for a given ordering rule definition may define a contiguous geographical area, or may define two or more non-contiguous geographical areas to be covered by the ordering rule definition. As shown inFIG.4, more than one ordering rule definition may apply to a given geographical area, as will be discussed in further detail below.

FIG.5Ais an illustration of a non-limiting example embodiment of an configuration interface for updating the first ordering rule definition406aaccording to various aspects of the present disclosure. As shown, the first ordering rule configuration interface534includes a header502that indicates the first ordering rule configuration interface534is for updating the first ordering rule definition406a. The first ordering rule configuration interface534also includes a first area designator504a, a second area designator504b, and a third area designator504c. To add an area designator as described in block304, a user may actuate an add area interface element506and the first ordering rule configuration interface534may present an interface element that allows the user to provide a new area designator. The first ordering rule configuration interface534also provides interface elements that allow the user to remove one or more of the first area designators504a-504c.FIG.5B,FIG.5C, andFIG.5Dinclude similar elements that allow management of the area designators associated with the ordering rule definition.

ThoughFIG.4andFIG.5A—FIG.5Dillustrate the use of zip codes, in some embodiments, other types of area designators may be used, including but not limited to area codes, geofences defined by latitude/longitude or what3words coordinates, governmental boundaries (e.g., city, county, state, or national boundaries), street addresses, and geographic points combined with distances or travel times from the geographic points. In some embodiments, some ordering rule definitions may use one type of area designator, while other ordering rule definitions may use another type of area designator. In some embodiments, a single ordering rule definition may be associated with more than one type of area designator.

Further, thoughFIG.4andFIG.5A—FIG.5Dillustrate explicit zip codes as area designators, in some embodiments wildcard characters may be used to specify patterns to be used as area designators. For example, instead of explicitly listing every zip code, a wildcard such as a star character (“*”) may be used to specify groups of zip codes (e.g., “98*” would match any zip code starting with the characters “98” and having zero or more characters thereafter). A zero-or-more-characters wildcard such as “*” is a non-limiting example of a wildcard character. In some embodiments, a different character may be used for the zero-or-more-characters wildcard. In some embodiments, other types of wildcard, including a one-or-more-characters wildcard (e.g., “+”), a single-character wildcard (e.g., “_”), a range-of-characters wildcard (e.g., “[0-9]”), or combinations thereof may be used. In some embodiments, a more sophisticated matching pattern, such as a regular expression, may be used to specify an area designator.

Returning toFIG.3, at block306, the zone definition engine210receives one or more ordering characteristics to be associated with the ordering rule definition. Ordering characteristics may be any type of information that defines how an order will be processed by a retailer system104. Some non-limiting examples of ordering characteristics include an amount of a delivery charge, a wait time for delivery or pickup of an order, a window size (e.g., a precision with which the retailer system104will provide a delivery time), a minimum order value, a pre-order cutoff length (e.g., a time after which pre-orders will no longer be accepted), and one or more special products made available by the ordering rule definition.

The first ordering rule configuration interface534ofFIG.5Aillustrates a delivery charge interface element508, a window size interface element510, a minimum order interface element512, and a special products interface element514. The delivery charge interface element508indicates an ordering characteristic that provides a $5 delivery charge. The window size interface element510indicates an ordering characteristic that provides a 30-minute window for delivery times (e.g., “your order will be delivered between 8:00 PM and 8:30 PM”). The minimum order interface element512indicates an ordering characteristic that provides a minimum order value. The special products interface element514indicates that there are no special products associated with this ordering rule definition. By interacting with any of the delivery charge interface element508, window size interface element510, minimum order interface element512, or special products interface element514, a user may change any of these ordering characteristics, thereby providing the ordering characteristics to the zone definition engine210as described in block306.

FIG.5Billustrates how these ordering characteristics may be changed in different zones. While the delivery charge, window size, and minimum order inFIG.5Awere #5, 30 minutes, and $20, respectively,FIG.5Bindicates a delivery charge of $10.00, a window size of 90 minutes, and a minimum order value of $50. These changes in ordering characteristics between zones may be provided by the retailers for any reason. As a non-limiting example, the differences betweenFIG.5AandFIG.5Bmay reflect a greater difficulty in completing deliveries to areas included in Zone2but not in Zone1.FIG.5CandFIG.5Dalso show additional examples of different ordering characteristics. In particular,FIG.5Dillustrates the addition of a special product in the special products interface element514, meaning that for ordering interfaces generated using the ordering rule definition managed by the fourth ordering rule configuration interface540, the indicated special product is made available.

Returning toFIG.3, at block308, the zone definition engine210receives one or more conditions for disabling the ordering rule definition. By including one or more conditions for disabling a given ordering rule definition, the interface management computing system102is able to dynamically change the ordering interfaces on-the-fly in response to changes in the conditions, and is also able to provide simple configuration interfaces for configuring the conditions. Any suitable condition may be provided to disable a given ordering rule definition, including but not limited to a start and/or end time and a total number of orders to be accepted using the ordering rule definition. The first ordering rule configuration interface534and the second ordering rule configuration interface536illustrated inFIG.5AandFIG.5B, respectively, do not include any conditions. As such, these ordering rule definitions may act as default ordering rule definitions for their associated geographical areas, in that they will always be active. InFIG.5C, the third ordering rule configuration interface538includes two conditions: a first condition type interface element522and a first condition value interface element518indicate that the associated ordering rule definition should be disabled before the date and time listed in the first condition value interface element518, and a second condition type interface element524and second condition value interface element520indicate that the associated ordering rule definition should be disabled after the date and time listed in the second condition value interface element520. An add condition interface element516allows a user to add additional conditions.

The start date/time and end date/time illustrated as conditions in the third ordering rule configuration interface538will have the effect of allowing the associated ordering rule definition—which provides for free delivery by virtue of the value in the delivery charge interface element508—to be active between the start date/time and the end date/time. Though the third ordering rule configuration interface538illustrates the first condition value interface element518and second condition value interface element520as including date/time values, this example should not be seen as limiting. For example, in some embodiments, a day of the week instead of a set date (e.g., “Sunday” instead of “Sunday, June 6”) may be used to establish a recurring condition. Though not illustrated, in some embodiments, an additional ordering characteristic may be an amount of lead time for an order. As such, the third ordering rule configuration interface538indicates conditions for “Free Monday Delivery” that only allow the ordering rule definition to be active on a Sunday between 12:01 AM and 5:00 PM, based on a lead time for an order (not illustrated) that indicates an order must be placed the previous day.

The fourth ordering rule configuration interface540illustrated inFIG.5Dis similar to the third ordering rule configuration interface538illustrated inFIG.5Cin that it also includes conditions. In fact, the fourth ordering rule configuration interface540includes a start date/time in a first condition type interface element530and first condition value interface element526that match the start date/time provided in the third ordering rule configuration interface538. However, instead of providing an end date/time, the second condition type interface element532indicates a “total orders” condition type, and the second condition value interface element528indicates a value of “500.” For the “total orders” condition, the interface management computing system102monitors a number of orders placed for the product indicated in the special products interface element514. Once the number of orders placed reaches the value in the second condition value interface element528, the condition will cause the associated ordering rule definition to be disabled.

Returning toFIG.3, at block310, the zone definition engine210stores the ordering rule definition with the area designators, the ordering characteristics, and optionally the conditions, in a zone data store212of the interface management computing system102. The conditions are optionally stored because in some embodiments (such as the ordering rule definitions illustrated inFIG.5AandFIG.5B), there may not be any conditions associated with a given ordering rule definition.

In some embodiments, the area designators may be converted to a normalized form before being stored in the zone data store212. For example, the area designators may be specified in the configuration interfaces as zip codes for ease of manipulation, but converted from zip codes to geographical regions defined by latitude/longitude coordinates and/or outlines for storage in the zone data store212in addition to or instead of the zip codes. This allows greater functionality, such as the ability to combine area designators provided in multiple different formats, and the ability to efficiently search area designators provided as zip codes (or other types of coded area designators) for locations specified as latitude/longitude.

The method300then proceeds to decision block312, where a determination is made regarding whether more ordering rule definitions are to be created. In some embodiments, this determination may be based on whether the zone definition engine210receives a subsequent command to create an additional ordering rule definition. If a further ordering rule definition is to be created, then the result of decision block312is YES, and the method300returns to block302to process the next command to create an ordering rule definition. Otherwise, if no further ordering rule definitions are to be created, then the result of decision block312is NO, and the method300proceeds to an end block and terminates.

Though the method300is illustrated as proceeding from a start block to an end block in a single operation path, one will recognize that in some embodiments, the actions of the method300may be repeated multiple times, and may be performed in parallel or in different orders than the illustrated order. In some embodiments, the method300may be executed a first time before any ordering interfaces have been generated, and may be executed again to update the ordering rule definitions that are being used by the interface management computing system102to generate ordering interfaces after having generated one or more ordering interfaces.

Further, though the method300describes the creation of a new ordering rule definition, in some embodiments, a similar method may be used to update an existing ordering rule definition. To update an existing ordering rule definition instead of creating a new ordering rule definition, the method300may receive an indication of an existing ordering rule definition to update at block302, and may receive some, but not all, of the information gathered in block304, block306, and block308if not all of the information is being updated. In some embodiments, the zone definition engine210may also accept commands from a user to delete existing ordering rule definitions, in which case the zone definition engine210may remove the indicated ordering rule definitions from the zone data store212.

FIG.6is a flowchart that illustrates a non-limiting example embodiment of a method of presenting an ordering interface based on a set of ordering rule definitions according to various aspects of the present disclosure. By using conditions of the ordering rule definitions to understand when to enable and disable various ordering rule definitions, the method600is capable of generating ordering interfaces in a way that is highly responsive to changes in the conditions.

From a start block, the method600proceeds to block602, where an interface presentation engine214of an interface management computing system102receives a request from an end-user computing device for an ordering interface to complete an order with a retailer system104. In some embodiments, a user of the end-user computing device may use a standard web browser or an app to connect to a service provided by the interface management computing system102(such as a web service or an application programming interface (API)) that provides either the ordering interface or information that allows the end-user computing device to generate the ordering interface.

At block604, the interface presentation engine214determines a location associated with the order. In some embodiments, the interface presentation engine214may determine the location associated with the order by using location services provided by the end-user computing device to obtain a geolocation of the end-user computing device itself. In some embodiments, the interface presentation engine214may request that a user of the end-user computing device enter or select a location to be associated with the order (such as a delivery address, a pickup location (e.g., a brick-and-mortar retail location, locker, or other permanent physical pickup location), or a temporary pickup location (e.g., a pop-up retail location temporarily present at a brick-and-mortar retail location, or a scheduled location of a food truck or other mobile pickup location).

At block606, the interface presentation engine214retrieves one or more ordering rule definitions associated with the location from a zone data store212of the interface management computing system102. In some embodiments, the interface presentation engine214may retrieve each ordering rule definition that includes an area designator that matches the location associated with the order.

In some embodiments, the interface presentation engine214may translate the location into a format that matches formats in which the area designators are specified in the zone data store212. For example, if the area designators are specified as zip codes, the interface presentation engine214may determine a zip code associated with the location in order to search for ordering rule definitions that include the zip code in which the location is located. As another example, if the area designators are stored in the zone data store212in a normalized format, the interface presentation engine214may convert the location to the normalized format to be compared to the area designators (e.g., if the location is provided as a street address and the normalized form of the area designators is provided as a set of coordinates that define a geographic outline, the street address may be converted to a latitude/longitude value for comparison to the normalized form of the area designators).

The method600then proceeds to a for-loop defined between a for-loop start block608and a for-loop end block616, wherein each of the ordering rule definitions retrieved from the zone data store212are processed to determine if they should be disabled. From the for-loop start block608, the method600proceeds to block610, where the interface presentation engine214checks at least one condition associated with the ordering rule definition for disabling the ordering rule definition. For example, for a condition that includes a start time, the interface presentation engine214may check whether a current time is before the start time, thus indicating that the ordering rule definition should be disabled. As another example, for a condition that includes an end time, the interface presentation engine214may check whether a current time is after the end time, thus indicating that the ordering rule definition should be disabled. As yet another example, for a condition that includes a maximum number of orders, the interface presentation engine214may compare a previous number of orders processed using the ordering rule definition, and may find that the condition for disabling the ordering rule definition has been met if the previous number of orders is greater than the maximum number of orders. In some embodiments, the interface presentation engine214may check all of the conditions associated with the ordering rule definition to determine if any of the conditions indicate that the ordering rule definition should be disabled. In some embodiments, the interface presentation engine214may check conditions associated with the ordering rule definition to determine if any of the conditions indicate that the ordering rule definition should be disabled, and may stop checking further conditions associated with the ordering rule definition once a condition is found that indicates that the ordering rule definition should be disabled.

At decision block612, a determination is made based on whether a condition for disabling the ordering rule definition was met. If a condition for disabling the ordering rule definition was found to be met at block610, then the result of decision block612is YES, and the method600proceeds to block614, where the interface presentation engine214automatically disables the ordering rule definition, and then to for-loop end block616. Otherwise, if no conditions for disabling the ordering rule definition were found to be met at block610, then the result of decision block612is NO, and the method600proceeds directly to for-loop end block616.

At for-loop end block616, the interface presentation engine214determines whether any further ordering rule definitions remain to be processed. If so, then the method600returns to for-loop start block608to process the next ordering rule definition to determine whether it should be automatically disabled. Otherwise, if all of the ordering rule definitions have been processed, then the method600proceeds from for-loop end block616to block618.

At block618, the interface presentation engine214presents an ordering interface based on one or more of the ordering rule definitions that have not been disabled. In some embodiments, the ordering interface may include elements that are determined by the ordering characteristics specified in the ordering rule definitions that were not disabled. In some embodiments, the ordering interface may include a product page, a search result, a product listing, a shopping cart, a checkout page, and/or any other type of interface having elements determined by the ordering characteristics.

In some embodiments, the ordering rule definitions may be stored in the zone data store212with a rank order, such that the ordering interface presented by the interface presentation engine214is based on the highest ranked ordering rule definition that was retrieved at block606that was not disabled at block614. In some embodiments, the ordering interface may be based on a composition of multiple ordering rule definitions retrieved at block606that were not disabled at block614. For example, a first ordering rule definition may specify a minimum order value, and a second ordering rule definition may specify a delivery charge, and if neither ordering rule definition was disabled at block614the ordering interface presented by the interface presentation engine214may specify the minimum order value from the first ordering rule definition and the delivery charge from the second ordering rule definition.

In some embodiments, the user of the end-user computing device may be able to select an ordering rule definition to be applied for generating the ordering interface if multiple ordering rule definitions have conflicting ordering characteristics that cannot be composed. For example, if a first ordering rule definition specifies a delivery charge of $10 and a window size of 30 minutes, while a second ordering rule definition specifies a delivery charge of $1 and a window size of 120 minutes, a user may choose that the first ordering rule definition be applied if they prioritize the time of delivery over the value of the delivery charge, and may choose that the second ordering rule definition be applied if they prioritize the value of the delivery charge over the time of delivery.

At block620, the interface presentation engine214records an order submitted with the ordering interface in an order data store208of the interface management computing system102. In some embodiments, the interface presentation engine214may record an ordering rule definition associated with the order along with the order so that the ordering characteristics may be applied to the order properly. In some embodiments, the interface management computing system102may provide the order to a corresponding retailer system104to fulfill the order. In some embodiments, the interface management computing system102may itself take steps to help fulfill the order. In some embodiments, the interface presentation engine214may later consult orders stored in the order data store208to evaluate conditions in the ordering rule definitions, including but not limited to conditions that specify a maximum number of orders associated with a given ordering rule definition.

The method600then proceeds to an end block and terminates.

FIG.7is a block diagram that illustrates aspects of an exemplary computing device700appropriate for use as a computing device of the present disclosure. While multiple different types of computing devices were discussed above, the exemplary computing device700describes various elements that are common to many different types of computing devices. WhileFIG.7is described with reference to a computing device that is implemented as a device on a network, the description below is applicable to servers, personal computers, mobile phones, smart phones, tablet computers, embedded computing devices, and other devices that may be used to implement portions of embodiments of the present disclosure. Some embodiments of a computing device may be implemented in or may include an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or other customized device. Moreover, those of ordinary skill in the art and others will recognize that the computing device700may be any one of any number of currently available or yet to be developed devices.

In its most basic configuration, the computing device700includes at least one processor702and a system memory710connected by a communication bus708. Depending on the exact configuration and type of device, the system memory710may be volatile or nonvolatile memory, such as read only memory (“ROM”), random access memory (“RAM”), EEPROM, flash memory, or similar memory technology. Those of ordinary skill in the art and others will recognize that system memory710typically stores data and/or program modules that are immediately accessible to and/or currently being operated on by the processor702. In this regard, the processor702may serve as a computational center of the computing device700by supporting the execution of instructions.

As further illustrated inFIG.7, the computing device700may include a network interface706comprising one or more components for communicating with other devices over a network. Embodiments of the present disclosure may access basic services that utilize the network interface706to perform communications using common network protocols. The network interface706may also include a wireless network interface configured to communicate via one or more wireless communication protocols, such as Wi-Fi, 2G, 3G, LTE, WiMAX, Bluetooth, Bluetooth low energy, and/or the like. As will be appreciated by one of ordinary skill in the art, the network interface706illustrated inFIG.7may represent one or more wireless interfaces or physical communication interfaces described and illustrated above with respect to particular components of the computing device700.

In the exemplary embodiment depicted inFIG.7, the computing device700also includes a storage medium704. However, services may be accessed using a computing device that does not include means for persisting data to a local storage medium. Therefore, the storage medium704depicted inFIG.7is represented with a dashed line to indicate that the storage medium704is optional. In any event, the storage medium704may be volatile or nonvolatile, removable or nonremovable, implemented using any technology capable of storing information such as, but not limited to, a hard drive, solid state drive, CD ROM, DVD, or other disk storage, magnetic cassettes, magnetic tape, magnetic disk storage, and/or the like.

Suitable implementations of computing devices that include a processor702, system memory710, communication bus708, storage medium704, and network interface706are known and commercially available. For ease of illustration and because it is not important for an understanding of the claimed subject matter,FIG.7does not show some of the typical components of many computing devices. In this regard, the computing device700may include input devices, such as a keyboard, keypad, mouse, microphone, touch input device, touch screen, tablet, and/or the like. Such input devices may be coupled to the computing device700by wired or wireless connections including RF, infrared, serial, parallel, Bluetooth, Bluetooth low energy, USB, or other suitable connections protocols using wireless or physical connections. Similarly, the computing device700may also include output devices such as a display, speakers, printer, etc. Since these devices are well known in the art, they are not illustrated or described further herein.