Print on demand (POD), sometimes referred to as publish on demand, is a printing technology and business process in which new copies of a document (e.g., a book, a magazine, a pamphlet, etc.) are printed after an order has been received. A print service provider (PSP) is a factory (e.g., businesses) that can process and fulfill POD orders. In one example, the PSP can receive a POD order, and print a document requested in the POD order. The PSP can include capabilities to print in color, bind printed documents, print in multiple languages, print on different types of paper, etc. Moreover, the PSP can ship a completed print job of a POD order to another entity (e.g., a customer).
The print order system 4 can include a memory 6 for storing machine readable instructions and a processing unit 8 for accessing the memory 6 and executing the machine readable instructions. The memory 6 could be implemented, for example, as volatile memory (e.g., random access memory) or nonvolatile memory (e.g., a hard drive, flash memory, etc.). The processing unit 8 can include a processing core.
In one example, the machine readable instructions can include a print order hub 10. The print order hub 10 can communicate with N number of print service providers (PSPs) 12 that can receive and fulfill print orders, wherein N is an integer greater than or equal to two. In some examples, the print order hub 10 can include functionality to operate as a receiver and director of a print job, based on efficient routing.
Each PSP 12 can include a print order client 14 that communicates with the print order hub 10 over the network 3. For purposes of simplification of explanation, only the print order client 14 included in PSP 1 of the PSPs 12 is shown and described herein, but it is to be understood that PSPs 2-N of the PSPs 12 can also include a print order client 14. Each PSP 12 can provide certain printing options, including but not limited to format, finishing, ink type, substrate, language, lead time, production capacity, value added services, etc. For instance, in one example, PSP 1 of the PSPs 12 can include capabilities of printing in color, multiple types of paper, multiple types of bindings, etc. The PSP 1 of the PSPs 12 can have costs associated with the different capabilities, as well as costs associated with fulfilling the print order within a specific timeframe. The costs can be reflected in a price charged by the PSP 1 of the PSPs 12 to fulfill the print order with certain specifications. PSP 1 of the PSPs 12 can provide the print order client 14 with a price table that reports these prices. The prices can reflect both the cost and an acceptable margin (e.g., profit margin) for preparing material for the print order.
Referring back to
Additionally, due to seasonal changes, the prices associated with preparing a specific job type in a specific timeframe and quantity can change with relative frequency. For instance, during a peak printing season, a given PSP 12 may be operating at nearly full capacity. In such times it may be desirable and/or necessary for the given PSP 12 to raise prices for specific job types provided within specific timeframes. Conversely, in non-peak seasons (e.g., “slow times”) it may be desirable and/or necessary for the given PSP 12 to lower prices to raise additional revenue. Additionally, the PSP may choose to raise or reduce the price of individual product based on a variety of factors. Accordingly, in some examples, in between times that a price table is updated (e.g., once a week or once a day) each PSP 12 (or some portion thereof) can provide a price update table to the print order client 14, which in turn can communicate the price update table to the print order hub 10. Upon receipt of a price update table from a given PSP 12, the print order hub 10 can store the price update table in the PSP record associated with the given PSP 12. In such a situation, a given PSP 12 can select a percentage of change of price for a given job type (e.g., quantum steps defined in a corresponding price table) based on the current and/or future expected production at the given PSP 12.
In other examples, the print order hub 10 can generate and/or modify the price update table for the given PSP 12. In this situation, the given PSP 12 can determine a production parameter based on an estimated production capacity and/or other per job type metric for the given PSP 12. The given PSP 12 can communicate the production parameter to the print order hub 10. In response, the print order hub 10 can select a percentage of change of price for a given job type based on the production parameter, data in a corresponding price table for the PSP (e.g., the price table stored in the PSP record associated the given PSP) and/or a factory status for the given PSP 12. In some examples, the print order hub 10 can receive a price per level of the production parameter from the given PSP that can facilitate the selecting of the percentage of change of price. Upon generation of the price update table for the given PSP 12, the print order hub 10 can store the price update table in the PSP record associated with the given PSP 12.
Additionally, as shown in
Referring back to
Referring back to
In some examples, the print order analyzer 24 can base the determination of the cost optimized solution on calculated shipping costs for shipping material prepared for the print order. The print order analyzer 24 can calculate the shipping costs, for example, based on the destination address in the print order and an address of each PSP 12. In one example, the shipping costs can be determined by examining a shipping lookup table that indexes shipping costs per pound and size with zip codes. The print order analyzer 24 can determine and/or estimate the weight of the package needed to ship the print order based on the number of pages per copy in the print order, the number of copies in the print order, the type of binding used in the print order, the quality of the paper for the print order, etc. Due to costs associated with shipping, (e.g., due to geographical distances weather patterns, etc.) in some situations, the costs for fulfilling the print order can change the PSP 12 that provides the lowest cost to fulfill the print order in a particular timeframe. For example, in a given situation it can be presumed that for a given job type a first PSP 12 can fulfill the print order for $0.03 per page within 48 hours, while a second PSP 12 can fulfill the print order for $0.04 per page within 48 hours. In the given situation, the print order analyzer 24 may determine that the second PSP 12 provides the lowest cost for fulfilling the print order if the print order analyzer 24 calculates that shipping costs from the first PSP 12 compared to the second PSP 12 exceed savings provided by the first PSP 12 (e.g., $0.01 per page).
In some examples, the calculation of the shipping costs can leverage relationships with the PSPs 12 and shippers. For example, the print order system 4 can track print orders provided to the PSPs 12. In some situations, a given PSP 12 may receive a discount (e.g., 10%) from a shipper if the given PSP 12 ships a certain number of units in a given day (e.g., a presorted zip code discount). In a situation where the number is 500 units, and a given PSP 12 already has other pending print orders for that would cause 400 units to be shipped in the given day, the print order analyzer 24 can apply the discount to the shipping costs if the fulfillment of the print order (or some portion thereof) would cause the given PSP 12 to meet or exceed the number of units needed for the discount. In this manner, print order analyzer 24 can further optimize the search for the cost optimized solution to fulfill the print order.
In yet other examples, the print order analyzer 24 may determine that employing multiple PSPs 12 to fulfill the print order provides the cost optimized solution. For instance, as illustrated and described with respect to
Upon determination of the cost optimized solution for a timeframe, the print order analyzer 24 can provide the client computer 18 with a total cost to fulfill the print order in the timeframe. The total cost can include the price charged for preparation of the material at the selected PSP 12 plus the cost of shipping the material to the destination identified in the print order. In some examples, the print order analyzer 24 can provide different total costs for different timeframes and quantity to the client computer 18. The user 20 can then elect to proceed with the print order, or to cancel the print order. If the user 20 elects to cancel the order, no further action is needed. However, the user 20 can employ the client computer 18 to submit a new print order with different specifications to determine if such a change in specifications would result in a change to the total cost for a given timeframe.
If the user 20 elects to proceed (e.g., execute) with the print order, the user 20 can employ the client computer 18 to provide the print order analyzer 10 with payment information. The payment information can include, for example, personal information of the user 20, a credit card number, a bank account number, etc. Upon receipt of the payment information and the document, the print order hub 10 can forward the document and the payment information to the print order client 14 of each selected PSP 12 in the cost optimized solution. Additionally, the print order hub 10 can provide data of the print order needed to fulfill the portion of the print order assigned to each selected PSP 12. Additionally or alternatively, in some examples, the print order analyzer 24 can employ the payment information to charge the user directly and an agreed payment can be provided to each selected PSP 12 at that time or a later time. In such a situation, the print order analyzer can forward payment (e.g., the agreed payment) to each selected PSP 12 in the cost optimized solution.
Upon receipt of the print order, the document and the payment information, each selected PSP 12 in the cost optimized solution can fulfill a portion of the print order. Fulfillment of the portion of the print order can include, but is not limited to, for example, translating, printing, binding and shipping material for the print order.
In some examples, information related to the total cost for fulfillment of the print order that is provided to the client computer 18 for the user 20 can exclude an identification of the each selected PSP 12 in the cost optimized solution. By excluding such information, the user 20 would be unable to and/or hindered from providing the print order directly to each PSP 12 and requesting a price quote for fulfilling the print order. Additionally or alternatively, certain information regarding each selected PSP 12 can be provided to the client computer 18 for the user 20. Such information can include a regional location or status (e.g. an environmental or “green” status) of each selected PSP 12. Such information may influence the user's 20 decision whether to proceed with the print order. Further, the price table and price update table for a given PSP 12 can be hidden by the print order hub 10 from the other PSPs 12. In this manner, the given PSP 12 is unable to and/or hindered from basing the price table and/or the price update table of the given PSP 12 on prices charged by other PSPs 12. Accordingly, “price wars” caused by a bidding of print orders and/or direct price comparison between PSPs 12 can be avoided. Avoidance of such price wars can increase the likelihood that operation of the PSPs 12 remains profitable.
The print order system 200 can be coupled to a network 206 (e.g., the Internet) via a network interface 208, which could be implemented as a network interface card. The memory 202 can include a print order hub 210 that can manage a print order.
The print order hub 210 can include a PSP record manager 212 that can receive and process a price table and a price update table from a plurality of PSPs. In one example, the PSP record manager 212 can receive a price table from each PSP relatively infrequently (e.g., about once a year). The price table could be implemented, for example, in a manner similar to the price table 50 illustrated in
Additionally, in some examples, the PSP record manager 212 can receive a price update table from each of the PSPs (or some portion thereof) relatively frequently (e.g., once a day, once a week, once a month, etc.). The price update table could be implemented, for example, in a manner similar to the price table 100 illustrated in
The print order hub 210 can include an on ramp 216 that receives a print order with a document to be printed in the print order. The on ramp 216 can provide the print order to a print order analyzer 218 of the print order hub 210. The print order analyzer 218 can evaluate the print order and retrieve a PSP record from the data storage 214 for each of the plurality of PSPs. Each PSP record can include, for example, a price table and a price update table for a given PSP. The print order hub 210 can parse the print order and each PSP record to determine a cost optimized solution for a timeframe.
The determination of the cost optimized solution by the print order analyzer 218 can be based, for example, on a comparison of an adjusted price per page charged for preparing a job of a particular type at each PSP. Additionally, the cost optimized solution can calculate shipping costs associated with the print order. Such shipping costs can include an estimate cost to ship material prepared for the print order to a destination identified in the print order. Moreover, in some situations, the cost optimized solution may call for multiple PSPs to fulfill different portions of the print order. Each PSP identified in the cost optimized solution can be referred to as a selected PSP.
Upon determination of the cost optimized solution, the print order analyzer 218 can calculate a total cost to implement the cost optimized solution. The total cost can be provided to a client computer via the network 206. In response, the print order analyzer 218 can receive a confirmation that a user of the client computer elects to proceed with the print order, such that the cost optimized solution is executed. The confirmation can include, for example, payment information from the user.
Upon receiving the payment information, the print order analyzer 218 can provide the cost optimized solution to an off ramp 220 of the print order hub 210. The off ramp 220 can provide data for executing the cost optimized solution to a print order client at each selected PSP. The data provided the print order client of a given selected PSP can include information needed by the given selected PSP to fulfill the portion print order assigned to the given PSP in the cost optimized solution. Such data can include, for example, the document associated with the print order, specifications for printing the document (e.g., paper quality and size, binding, number of copies, language, etc.). Additionally, the data can include a destination address to which material is to be shipped upon preparation of the portion of the print order assigned to the given PSP or other relevant information.
In view of the foregoing structural and functional features described above, example methods will be better appreciated with reference to
At 320, a price update table can be received from and/or generated for each of the plurality of PSPs (or some portion thereof). Each price update table can comprise a percentage of price change for preparing the plurality of different job types in the plurality of different timeframes. Each price update table could be implemented, for example in a manner similar to the price update table 100 illustrated in
At 330, a print order analyzer of the print order hub can receive a print order from a client computer. The print order can include, for example, specifications for preparing a document. The specifications can include, but are not limited to, paper type, and/or size, a number of copies to be printed, binding type, a shipping destination, etc. As one example, the print order can include the data 150 shown and described with respect to
At 340, a cost optimized solution for fulfilling the print order can be determined by the print order analyzer for a timeframe. The cost optimized solution can be based, for example, on an analysis of the print order, as well as a PSP record associated with each PSP. A given PSP record can include a price table, price update table associated with a given PSP or additional metrics. Additionally, the cost optimized solution can be based on a shipping cost calculated by the print order hub and/or additional requirements set by the client computer. Determination of the cost optimized solution includes a selection of a PSP to fulfill the print order. In some examples, more than one PSP can be selected to fulfill the print order. In such a situation, the cost optimized solution can assign different portions of the print order to different selected PSPs. At 350, a total cost for fulfilling the print order based on the optimized solution can be calculated and provided to the client computer.
At 360, a determination can be made as to whether to execute the print order. The determination can be based, for example, on a response to the total cost provided to the client computer. If the determination at 360 is negative (e.g., NO), in some examples, the method can return to 330. In other examples (not shown), the method can end. If the determination at 360 is positive (e.g., YES) the method 300 can proceed to 370.
At 370, the print order analyzer can receive payment information for a user of the client computer. At 380, the print order analyzer can provide each selected PSP data for fulfilling at least a portion of the print order. At 390, each selected PSP can fulfill its assigned portion of the print order. The fulfillment of the assigned portion of the print order can include, for example, preparation and shipment of material specified in the print order.
The system 600 can include a system bus 602, a processing unit 604, a system memory 606, memory devices 608 and 610, a communication interface 612 (e.g., a network interface), a communication link 614, a display 616 (e.g., a video screen), and an input device 618 (e.g., a keyboard and/or a mouse). The system bus 602 can be in communication with the processing unit 604 and the system memory 606. The additional memory devices 608 and 610, such as a hard disk drive, server, stand alone database, or other non-volatile memory, can also be in communication with the system bus 602. The system bus 602 operably interconnects the processing unit 604, the memory devices 606-610, the communication interface 612, the display 616, and the input device 618. In some examples, the system bus 602 also operably interconnects an additional port (not shown), such as a universal serial bus (USB) port.
The processing unit 604 can be a computing device and can include an application-specific integrated circuit (ASIC). The processing unit 604 executes a set of instructions to implement the operations of examples disclosed herein. The processing unit can include a processor core.
The additional memory devices 606, 608 and 610 can store data, programs, instructions, database queries in text or compiled form, and any other information that can be needed to operate a computer. The memories 606, 608 and 610 can be implemented as computer-readable media (integrated or removable) such as a memory card, disk drive, compact disk (CD), or server accessible over a network. In certain examples, the memories 606, 608 and 610 can comprise text, images, video, and/or audio.
Additionally, the memory devices 608 and 610 can serve as databases or data storage such as the data storage 214 illustrated in
In operation, the system 600 can be used to implement, for example, a client computer, a print order hub, and at least some components of PSPs that can fulfill a print order. Computer executable logic for implementing the system, such as the memory 10 of the print order system 4 illustrated in
Where the disclosure or claims recite “a,” “an,” “a first,” or “another” element, or the equivalent thereof, it should be interpreted to include one or more than one such element, neither requiring nor excluding two or more such elements. Furthermore, what have been described above are examples. It is, of course, not possible to describe every conceivable combination of components or methods, but one of ordinary skill in the art will recognize that many further combinations and permutations are possible. Accordingly, the invention is intended to embrace all such alterations, modifications, and variations that fall within the scope of this application, including the appended claims.