Using Purchase Orders on the Web
Subscribe to our mailing list


      A lot of attention has been given to taking credit card orders on the Web. At the time of this writing (May, 1997), the technology needed to implement credit card orders on a Web site has gotten fairly straightforward and economical. But credit card orders are mainly for consumer purchases. What about business to business purchases? These are generally handled through purchase orders. And here's how that can be done.

A purchase order is an authorization by a company to spend money on a specified set of products. The purchase order may specify how much can be spent on the products, negotiated prices for the products, who in the buying company is authorized to make the actual purchase decisions and what the payment terms shall be. If a purchase order authorizes a number of transactions over time, one must keep track of how much has been spent to date and what remains in the purchase order account.

When a company accepts a sale through a purchase order it must check a purchase order database to identify the purchasing organization, the purchasing individual, the current level of the account (versus the amount of purchase) and special negotiated prices. To do this on a Web page means maintaining a database of this information on the Web server. And that's the trick: making such (moderately) sensitive information available to the script that processes an incoming order while keeping it secure from prying eyes.

The most reliable security measure that one can take in any situation is to risk as little information as possible. Perhaps all pricing for Web purchases can be uniform across all customers. If so, special pricing arrangements need not be stored on the Web site. Are current balances really necessary at transaction authorization time? If the items being sold are inexpensive enough, it may be sufficient to update the purchase order database after each transaction, not in real time. That way the Web database (the one vulnerable to attack) holds a list of customers with open purchase orders but not the remaining value for each purchase order. If a purchase order is open, the sale is authorized. The product is delivered. A process inside the company (on a secure database) records the transaction, subtracts the purchase amount from the purchase order balance. If the new balance is zero, the purchase order is then removed from the Web database.

Minimal information on the Web purchase order database is Customer, Purchase Order Number, and some authentication code. The important thing to note is that one need not identify what this information is, only that the customer can properly match it. Here's how it would work.

  1. Prior to coming to the Web site, the customer has opened a purchase order with the selling company. The selling company has added that purchase order to its database of open purchase orders.
  2. The customer selects items he wishes to buy. When ready he says he wants to check out, he is asked to fill out a form asking for his company, purchase order number and username and password.
  3. The information he enters is sent to the server.
  4. When the information arrives at the server it is encrypted.
  5. All information in the database is stored in encrypted form--using the same encryption algorithm as that used in the previous step. Now, the encrypted values the user entered are compared to the encrypted values in the database. If there is a match, the user's purchase is authorized. His company, purchase order number, username and password have all been verified without revealing to prying eyes on the Net what those values are.
Now some variations on the theme. First, when the user enters his purchase order information into a Web form and it is sent to the server, it should be encrypted in the ordinary way it would be (using the SSL protocol) between a secure server and browser. This prevents prying eyes from seeing the information as it crosses the Net. (Note that this encryption step is separate from the encryption mentioned above.)

Second, we can add business rules for negotiated pricing to the database. Customers and purchase order numbers could remain encrypted, only the rules for negotiated pricing would be available. Is there risk in this information? Not much. Just that some unspecified customers are able to negotiate different pricing arrangements. If the site offers special pricing per purchase order, clearly the customer must identify himself to the server before he starts shopping...so prices while shopping will reflect the special pricing negotiated with the PO.

Third, we can add the remaining balance for each purchase order to the database. The risk would be that, if stolen, a hacker would be able to sum these balances and see the total of all open purchase orders that apply to the products offered on the Web. Probably not a major security breach even in the unlikely event that someone was able to break into the database and steal its contents.

Purchase order authentication as described above can occur in real time as a customer places an order. If an information product is being ordered, download can begin immediately. Behind the scenes, a record of the transaction is sent from the Web site to accounting systems inside the company where the actual charges are settled against accounts and modifications to the purchase order database are made.

©1997, Harry Tennant & Associates

Ask Us

Have a question? Send us a note at askhta@htennant.com.

Home | Contact Us | Schools | Portfolio | Process | Ask Us | Mailing List | Resources | Bio