Abstract:
The invention relates to systems and methods for creating a pricing model to be used when ordering printed materials online. In particular, the invention automatically creates a pricing spreadsheet when orderable printed product type information is configured. Thereafter, a user can edit the spreadsheet to create a modified pricing spreadsheet to meet more specific and/or complex needs.

Description:
CROSS REFERENCE TO RELATED APPLICATION 
       [0001]    Reference is made to commonly-assigned copending U.S. patent application Ser. No. ______ (attorney docket 93478), filed ______ , entitled A METHOD AND APPARATUS FOR PROCESSING A PRINT ORDER, by Kauffman, the disclosure of which is incorporated herein. 
     
    
     FIELD OF THE INVENTION 
       [0002]    This invention relates to calculating prices for online print orders, and in particular to calculating those prices using electronic spreadsheets. 
       BACKGROUND OF THE INVENTION 
       [0003]    Pricing models are known in the art to facilitate calculation of a price for items to be produced. Pricing models for non-trivial production processes typically involve the use of pricing parameters which, when input can be used to produce a price estimate. Parametric formulas based on the pricing parameters and on pricing factors, such as labor rates, material costs, opportunity costs, margins and the like, have been used to quickly produce a price estimate. 
         [0004]    Ordering printed material can involve complex pricing calculations. This occurs because the number of combinations of pricing parameters and factors can be very large. Pricing parameters can be derived from information specified by a print buyer, such as printing intent and content. Pricing parameters can also be derived from information related to the printing firm&#39;s operation, such as resource availability, existing orders, and externally determined costs as examples. 
         [0005]    Historically, pricing of printed material was performed manually by a customer service representative (CSR) based on business rules, information derived from a print buyer&#39;s order and a CSR&#39;s knowledge. Some printing firms and printing system vendors have developed systems to automate price calculations. For example, published US patent application No. 2003/0187808, entitled “Electronic Cost Estimator for Processing of Paper Products”, teaches creating a server based system that calculates costs and markups for a product type based on input received from a print buyer in view of predefined cost/markup information and predefined formulas or algorithms. However, in a system like this, significant time and/or expertise can be required to adapt to changing requirements for pricing (e.g. new product types, new pricing factors). 
         [0006]    Some conventional printing systems offer pricing models that have some customization capabilities available to an end user. For example, a price formula can be configured by a user selecting a formula from a predefined set and associating parameters (e.g. pricing parameters and/or pricing factors) with the formula. However, these systems may not have sufficient flexibility to accommodate a full range of pricing models required by a printing firm. 
         [0007]    Some conventional systems teach the use of spreadsheets as a means for producing flexible pricing models. For example, published US patent application No. 2005/0257132, entitled “End user customizable computer spreadsheet application based expert system” teaches an expert system that unifies a series of end-user created spreadsheets to account for various product types and production plan/resource options. However, in these systems the onus is on a user to create spreadsheets to support new or modified orderable product types. Further, the system of U.S. patent application No. 2005/0257132 can involve a degree of complexity (e.g. several spreadsheet components embodying production plans and resources) that is not always required. 
       SUMMARY OF THE INVENTION 
       [0008]    The present invention provides for an electronic print ordering system with the capability to automatically create a first pricing spreadsheet based on information configured by the system for an orderable printed product type. Thereafter, any print orders received for that product type can be automatically priced based on supplying inputs, including at least pricing parameters derived from the print order, to the pricing spreadsheet. 
         [0009]    According to an embodiment of the invention, a first pricing spreadsheet can be automatically created when a product type is configured. A set of pricing parameters can be selected from a set of printing parameters for the product type. Spreadsheet cells can be identified for the pricing parameters as well as one or more pricing factors associated with the product type and/or the pricing parameters. Finally at least one cell for a price can be identified whose value is calculated by a formula based on one or more of the pricing parameter and pricing factor cells. 
         [0010]    The automatically created first pricing spreadsheet may be adequate for many orderable product types. For product types having more complex pricing requirements, an end user can modify the first pricing spreadsheet according to specific business requirements. This can include modifying the spreadsheet on the user&#39;s client computer using a standard spreadsheet editor. This can include creating links to other sources of input such as other spreadsheets, databases or systems. This can also include creating more complex pricing formulas and pricing factors than those automatically created by the printing system. The first pricing spreadsheet at least provides a good starting point for a more complex pricing spreadsheet by providing a spreadsheet with an organizational structure that is compatible with inputs supplied from the automated electronic print ordering system. 
         [0011]    According to an embodiment of the invention, printing parameters can be configured with value restrictions (e.g. a list of allowable values for a printing parameter) and these value restrictions can be incorporated into the first spreadsheet to further improve the capability and flexibility of the spreadsheet. For example, pricing factor cells can be automatically identified for allowable values for a printing parameter. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0012]      FIG. 1  is a system block diagram of a printing system according to an embodiment of the invention; 
           [0013]      FIGS. 2A-2B  are illustrations of exemplary user interfaces for configuring an orderable printed product type according to an embodiment of the invention; 
           [0014]      FIG. 3  is an illustration of an exemplary user interface for ordering printed material based on a printed product type according to an embodiment of the invention; 
           [0015]      FIG. 4A  is an illustration of an exemplary pricing spreadsheet version created automatically for an orderable printed product type according to an embodiment of the invention; and 
           [0016]      FIG. 4B  is an illustration of an exemplary modified pricing spreadsheet version according to an embodiment of the invention. 
       
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
       [0017]      FIG. 1  is a system block diagram of a printing system  100  according to an embodiment of the invention. Printing system  100  can be provided, at least in part, by a printing firm to allow a print buyer to procure printed material from the printing firm by submitting an electronic print order  112  from a client computer  101 . The print buyer creates an electronic print order  112  by supplying order input  110  including, for example, information about printing intent and printing content. The print buyer can receive order information  111  including, for example, information about orderable product types, prompts, previews, price estimates and progress information. System  100  can be configured to support a variety of printed product types such as business cards, forms, flyers and the like. 
         [0018]    For a given product type, the printing firm can configure information including a number of printing intent parameters whose values are to be supplied by a print buyer. A printing intent parameter can be configured to allow a print buyer to pick from a number of predefined values or can allow the print buyer to supply free-form information (e.g. quantity). Certain parameters (e.g. printing colors) can be configured to be optional and/or have corresponding default values (e.g. CMYK). Optional parameters and their default values may or may not be presented to the user depending on product type configuration. 
         [0019]    System  100  also includes equipment at the printing firm&#39;s site, including at least one each of a server computer  102 , a client computer  103 , and a database  104 . Multiple occurrences of a piece of equipment can be configured to share processing load or provide continued operation in the event of equipment failure. Equipment of system  100  can be configured to communicate via various means including dedicated connections, network communication services, and wireless communication links as examples. 
         [0020]    Server computer  102  provides an environment to operate printing portal  105 , printing controller  106 , and server spreadsheet function  107 . Printing portal  105  can include one or more specialized applications to enable a print buyer to communicate about print orders  112  being processed by system  100 . Printing portal  105  submits print order  112  to printing controller  106  and receives print order status  113  which can be communicated back to the print buyer. Printing controller  106  can include one or more specialized applications to provide printing workflow (e.g. prepress operations and printing device management). Other print production software applications (not shown) for supporting other aspects of print production (e.g. finishing, billing, delivery) can also operate on server computer  102  or other computers in communication with server computer  102 . 
         [0021]    Client computers  101  and  103  can be of similar or different types. Client computer  101  provides an environment to operate a web browser or a specialized application, for example, for communicating with server computer  102  about print orders  112 . Client computer  103  provides an environment to operate a web browser or specialized application, for example, for communicating operational information  114  with server  102 . Operational information  114  can include, for example, information related to the configuration of and/or the operation of system  100 . 
         [0022]    Server spreadsheet function  107  can work in conjunction with printing portal  105  to create a first pricing spreadsheet  120 A as part of the creation of product type information  115 . Server spreadsheet function  107  can be designed to perform typical spreadsheet functions such as create, edit, view, external data access, and calculations under the control of printing portal  105  or another application. Server spreadsheet function  107  is exemplified by the product “SpreadsheetGear for .NET”, supplied by SpreadsheetGear LLC of Lenexa Kans. In particular, server spreadsheet function  107 , under the control of printing portal  105 , can produce and store first pricing spreadsheet  120 A in database  104  for a specific product type when that product type is first configured. Modifications to other product type information  115  that affect pricing (e.g. modifying printing intent parameters) can include modifications to first pricing spreadsheet  120 A or creation of a new pricing spreadsheet  120 B from first pricing spreadsheet  120 A or another version derived from first pricing spreadsheet  120 A. 
         [0023]    First pricing spreadsheet  120 A can be, for example, a basic pricing spreadsheet with at least one formula for calculating at least one price (e.g. the final price). Alternatively, multiple formulas can exist that, for example, calculate prices for each component of the order. A formula can be based on pricing parameters, with values that tend to vary according to the print order, and pricing factors, with values that tend not to vary according to the print order. For example, pricing parameters can include parameters selected from the printing intent parameters specified by the print buyer in a print order. As another example, pricing parameters can include parameters derived from printing content (e.g. number of spot colors). Pricing factors, for example, can include base and/or incremental cost factors (e.g. minimum price per order, incremental cost per-page or per-unit produced). 
         [0024]    Selecting pricing parameters from printing intent or other parameters can occur automatically based on input from a user. For example, all printing intent parameters can be selected as pricing parameters, even if they are not all used. As another example, when a user configures a printing intent parameter independent of a product type, a flag can be configured to determine whether it is automatically included as a pricing parameter. As another alternative, a user, configuring printing intent parameters for a product type, can identify which intent parameters should be automatically included as pricing parameters. Similarly, pricing parameters derived from other sources (e.g. content, external sources) can be automatically selected based on predefined information. 
         [0025]    Client spreadsheet editor  108  enables a printing firm user to modify an existing version of a pricing spreadsheet (e.g. first pricing spreadsheet  120 A). Modifications can include, for example, supplying values for pricing factors defined by the previous version or adding other information into the previous version. Modifications can also include, for example, modifying pricing formulas to include additional pricing factors and/or additional pricing parameters (e.g. based on production characteristics internal to the printing firm). Modifications can also include, for example, providing access (e.g. copy or link) to external sources (e.g. files, databases, and systems) of information to be used in calculating a price. Client spreadsheet editor  108  is exemplified by the product Microsoft® Excel®. Allowing a printing firm user to utilize a familiar spreadsheet editor simplifies the user&#39;s task of creating an appropriate pricing model while providing virtually unlimited flexibility for the pricing model. 
         [0026]    In one alternate embodiment, printing portal  105  can provide information about selected pricing parameters and/or pricing factors as information to be adapted for use in a spreadsheet. For example, a file can be produced by printing portal  105  including information related to the configuration of the orderable printed product type. The file can be easily imported, if suitably formatted, into pricing spreadsheet  120 A by client spreadsheet editor  108 . This can be preferable, for example, if a pricing spreadsheet template exists which needs adaptation based on information to be derived from print order  112 . The file could be, for example, a spreadsheet file with only pricing parameter and/or pricing factor information included. Alternatively, the file could be a text file, XML file or other type of file. 
         [0027]    Various means can be employed to capture versions of a spreadsheet. For clarity, the remainder of the document will assume that each modification, for a product type, generates a new instance of modified pricing spreadsheet  120 B. Whether spreadsheet  120 A is modified by client spreadsheet editor  108  or server spreadsheet editor  107 , modified spreadsheet  120 B can be stored in database  104  or other storage facility accessible by computers  102  and  103 . Server spreadsheet editor  107  may modify spreadsheet  120 A, for example, if a user reconfigures printing intent parameters in product type information  115 . 
         [0028]      FIGS. 2A-2B  are illustrations of exemplary user interfaces for configuring an orderable printed product type according to one embodiment of the invention.  FIG. 2A  illustrates an exemplary interactive web-browser-based product type configuration display  200 . Display  200  can be intended for use by a printing firm administrator to create and/or modify orderable printed product types. Display  200  depicts product type value  201  corresponding to an exemplary “Test Flyer” product type being configured. Product type value  201  was identified when editing General Properties tab  202 . 
         [0029]    Display  200  also includes printing options tab  203  including a list of available printing intent parameter names  204  that can be chosen from the left side of tab  203 . On the right side of tab  203  a set of parameter names  204 A- 204 G have already been added for the product type. Default printing intent parameter values  205 A- 205 G are depicted adjacent the chosen parameter names  204 A- 204 G. For example, default value  205 G, (“Next Week”) has been configured for parameter name  204 G (“Flyer Due Date”). Printing intent parameter edit controls  206  are also depicted in tab  203  to enable a user to edit a printing intent parameter. 
         [0030]    Pricing model tab  207  can present a view of pricing spreadsheet  120 A. Tab  207  can, for example, facilitate review of spreadsheet  120  and/or enable launching of client spreadsheet editor  108 . 
         [0031]      FIG. 2B  illustrates an exemplary interactive web-browser-based parameter edit display  210  for editing information associated with printing intent parameter name  204 E. Display  210  includes information about parameter name  204 E and restricting its possible values. For example, data type field  211  illustrates that parameter name  204 E can only include certain values. Parameter value restrictions  212 , in this example, includes a list of allowed values  213 A- 213 D. For other data types (e.g. numeric) different value restrictions  212  can be defined (e.g. minimum values, value ranges, and significant figures). Value restrictions  212  can be advantageously used in first pricing spreadsheet  120 A as a determinant for pricing factors, as described and illustrated below. 
         [0032]      FIG. 3  is an illustration of an exemplary user interface for ordering printed material based on a printed product type according to one embodiment of the invention.  FIG. 3  depicts an exemplary interactive web-browser-based print order display  300 . Display  300  can be used by a print buyer to provide order input  10  and display order information  111  as described with reference to  FIG. 1 . Display  300  can include information that changes as ordering steps are completed. As shown, display  300  includes information for a first step corresponding to choosing a product type and specifying related information. 
         [0033]    Display  300  depicts that the print buyer has already provided both printing intent and printing content for the print order. In particular product type value  201  indicates intent to order the “Test Flyer” product type. Page preview image  302  depicts a thumbnail image of the image representing “Test Flyer” product type. After uploading content, preview image  302  can be replaced with a thumbnail of the printing content identified by the print buyer. In this example, the printing content includes a single page flyer provided as an Adobe® PDF file. The print buyer has also identified printing intent values  303 C- 303 E for printing intent parameter names  204 C- 204 E (e.g. no change in default printing intent value  205 G (“Next Week”)). Additionally, other print order value  304  is displayed, corresponding to a submitted page count parameter, which has been automatically determined by printing portal  105  by examining the printing content. Price estimate  305  is also depicted in display  300  and can be automatically calculated when values  303 C- 303 E,  304 , and other values, that may not be included in display  300 , are changed. Alternatively, price estimate  305  can be updated by pressing recalculate button  306 . 
         [0034]    Price estimate  305  can be calculated based on first pricing spreadsheet  120 A currently associated with the “Test Flyer” product type. Printing portal  105 , for example, can provide server spreadsheet function  107  with values  303 C- 303 E,  304  and other values (e.g. production process values) as inputs to be inserted into appropriate elements of first pricing spreadsheet  120 A as discussed below. Server spreadsheet function  107  then executes instructions to perform spreadsheet formula calculations and provides the result to printing portal  105 . Portal  105  then displays price estimate  305  based on the result provided by server spreadsheet function  107 . 
         [0035]      FIG. 4A  is an illustration of an exemplary first pricing spreadsheet version  120 A, created automatically for the “Test Flyer” product type according to one embodiment of the invention. Spreadsheet version  120 A includes three blocks  401 - 403 . Each block  401 - 403  includes cells demarcated by borders  404 , illustrated as dotted lines and exemplified by row border  404 A and column border  404 B. Cells in block  401  include, for example, general information for a “Test Flyer” order, such as final price, customer information, and discounts. Cells in block  402  include, for example, information about option pricing parameters for a “Test Flyer” order. Cells in block  403  include, for example, information about option pricing factors for a “Test Flyer” order. 
         [0036]    Prices  410 A- 410 F are depicted as cells with a dark background, exemplified by final price  410 A in block  401 . Prices can be associated with formulas, either as part of the spreadsheet cell definition or separately in association with a cell identifier. In first spreadsheet  120 A, final price  410 A is equated with total price  410 F which in turn is a summation of total order price  410 D and discounts  410 E. Total order price  410 D is calculated from (base and option) pricing parameters  420 A,  420 B,  420 C and pricing factors, for example,  430 A- 430 B. Discounts  410 E, for example, can be supplied manually when configuring the “Test Flyer” product type, calculated based on the other information from first spreadsheet  120 A (e.g. units ordered  420 A) or from externally accessible information (e.g. per-customer discount database). Appendix A (located at the end of this specification) includes computer readable information for an exemplary pricing spreadsheet  120 A editable by Microsoft® Excel® which details exemplary formulas for each price  410 . 
         [0037]    Pricing parameters  420 A- 420 C are depicted as cells with a white background and a two-line border, exemplified by units ordered  420 A in block  401 . Pricing parameters  420 A- 420 C include values derived from print order  112 . For example, the value for pricing parameter  420 A is derived from printing intent value  303 B, both of which are associated with the parameter name  204 B having the value “Quantity”. Similarly, the value for the pricing parameter  420 C is derived from printing intent value  303 E, both similarly associated with parameter name  204 E having the value “Flyer Colors”. Other pricing parameters  420 A- 420 C can have their values derived from printing content. For example, the value for pricing parameter  420 B is derived from other print order value  304  corresponding to the number of pages printed per unit. 
         [0038]    Pricing factors  430 A- 430 O are depicted as cells with a light colored background, exemplified by base price per unit  430 A. Spreadsheet  120 A includes several factor categories to provide a nominal level of flexibility. These categories include: per-unit, per-page, and per-order. Block  403 , for example, provides for specification of pricing factors for each factor category. However, as illustrated in block  403 , pricing factors  430 A- 430 O have only been specified in one of each category for associated options identified in block  402 . For example, per-unit pricing factors  430 F- 430 I have been created for “Flyer Colors” parameter name  204 E while per-order pricing factors  430 J- 430 O have been created for “Quantity” parameter name  204 B. It is understood that other pricing factor categories could be defined which could apply to these or other pricing parameters. 
         [0039]    As a more detailed example of the use of per-unit pricing factor category, pricing factors  430 F- 430 I have been created in association with allowable values  213 A- 213 D, respectively. They are associated by sharing rows. Allowable values  213 A- 213 D are in turn associated with parameter name  204 E having the value of “Flyer Colors” (sharing rows) and pricing parameter  420 C (sharing column). In first pricing spreadsheet  120 A, for example, these associations allow the value derived for pricing parameter  420 C to affect price  410 G, corresponding to the per-unit price for the “Flyer Colors” option specified by the print buyer. Price  410 G is automatically calculated, by a formula for example, to be one of pricing factors  430 F- 430 I based on which of allowable values  213 A- 213 D is derived for pricing parameter  420 C. 
         [0040]    Values for pricing factors  430 A- 430 O can be predefined in association with parameter names  204 , for example, and obtained by printing portal  105  when automatically creating first pricing spreadsheet  120 A. As another alternative, printing portal  105  can prompt a user to supply pricing factors  430 A- 430 O when configuring a product type. Or, as another alternative, a hybrid approach of allowing a user to override predefined pricing factors  430 A- 430 O when configuring a product type. Ultimately, a printing firm user may prefer to modify initially determined pricing factors  430 A- 430 O using spreadsheet editor  108  with the context of the other pricing information presented in a more convenient fashion. 
         [0041]      FIG. 4B  is an illustration of a modified pricing spreadsheet  120 B according to one embodiment of the invention. Modified pricing spreadsheet  120 B has been edited by a printing firm user with spreadsheet editor  108  to add values for pricing factors  430 A and  430 B. Other edits could have been made, for example, including addition, deletion or modification of prices, formulas, pricing parameters, pricing factors and associations with external data. 
         [0042]      FIG. 4B  also illustrates the effect of printing portal  105  using information from print order  112  to calculate prices  410 A- 410 F. For example, pricing parameters  420 A and  420 C have been determined from printing intent values  303 B (e.g. quantity of “50”) and  303 E (e.g. “4 Color” option), respectively. Server spreadsheet function  107 , under control of printing portal  105 , accessed modified pricing spreadsheet  120 B to supply values  420 A- 420 C and obtain value from price  410 A as a result of applying the formulas associated with prices  410 A- 410 F. Server spreadsheet function  107  does not need to save a separate modified spreadsheet version  120 B as depicted. Rather, spreadsheet version  120 B can be maintained with default values (e.g. null values) for pricing parameters  420 A- 420 C and create temporary copies of spreadsheet which include input values for pricing parameters  420 A- 420 C and calculated values for prices  410 A- 410 F. 
         [0043]    However, in some embodiments, it may be desirable for printing portal  105  or server spreadsheet function  107  to save copies for historical reference and/or subsequent pricing adjustments based on the actual production activities. For example, a printing firm may allow a print buyer to make modifications to an order after order submission. Keeping the pricing spreadsheet may simplify the calculation of adjustments based on the modifications. 
         [0044]    Embodiments of the present invention may comprise any medium which carries a set of computer-readable signals comprising instructions which, when executed by a computer processor, cause the computer processor to execute a method of the invention. Embodiments may be in any of a wide variety of forms. Embodiments may comprise, for example, physical media such as magnetic storage media including floppy diskettes, hard disk drives, optical data storage media including CD ROMs, DVDs, electronic data storage media including ROMs, flash RAM, or the like or transmission-type media such as digital or analog communication links. The instructions may optionally be compressed and/or encrypted on the medium. 
         [0045]    The invention has been described in detail with particular reference to certain preferred embodiments thereof, but it will be understood that variations and modifications can be effected within the spirit and scope of the invention.