A website for ordering printed circuit boards, via a direct API connection to the PCBWeb tool. This site will use the Stripe API for payment processing.
We need to have customer viewable pages for the ordering and checkout process.
The customer should be able to see details about their orders. We do not expect at this time to provide real-time status of the orders, only that they have been ordered and the details about which design, the shipping info, which board house it was ordered from, the cost and any other details that are available at the time the order is placed.
For each board house we need to have the ability for someone to enter the board ordering and construction options (board material, board colors, maximum number of layers, minimum drill sizes, and so on). We cannot know all of the types of options available so this page should be flexible. Some of this information will be used for design rule checking in the PCBWeb tool, and some of it will be used for displaying ordering options.
The API will do the following:
We have a design for these that was created by Nic Perner. See the PCBWeb Sierra Checkout mockups at https://www.dropbox.com/sh/6j7p2eb65o1dtgz/NE2HufPIns
We have not yet determined if the design options will be changeable at checkout time. It seems likely that we may restrict these changes to the tool only. But the user might appreciate the flexibility to change these options on the website too. These changes may drive a price change.
The order history will show a list of the orders for the customer. The customer may also see the details for an order. The customer will not be able to make any changes in the order history page.
Each design option will typically have a name, a list of possible values, and optionally a price associated with each of the values. This price may be an absolute amount or a percent based on.
Each design rule should have a name and a minimum or maximum value, or a checkbox for design rules that are allowed/not allowed types of checks. Keith Ackermann will provide the list of supported design rules.
Initially we will have two options:
Percentage of order cost - we keep some percent of the order cost.
Percent over order cost - we add a percentage amount over the cost of the board.
Here is a design for the API portion of the site that was done by a contractor. Do not feel that you must conform to this design. However, the sequence diagram is pretty accurate. The Spooler object in the sequence diagram is no longer used. So any interactions with this object in the diagram should be ignored. Also, the gerber files will be uploaded as part of the POST api/OrderBoard call. So any subsequent tests for if the gerber is “complete” should be ignored.
https://gingkoapp.com/pcbweb-board-orders
Some of the API calls and web pages listed in the sequence diagram in the link above are not correct. Here is the current list of API calls and web pages that should be coded on this site:
API calls
POST api/QuoteBoard
POST api/OrderBoard
Web pages
checkout/order#
payment/order#
order/order#
Our first board house will be Sierra Circuits. You can access their APIs and documentation on this URL.
apistaging.protoexpress.com
LOGIN ID: sierra-pcbweb-admin
Password: 3102518
We have some PHP code that was written by a contractor for this project. It is incomplete, but it does work for the api/QuoteBoard call. The remainder of the code may be of limited help. We also have some html/css/javascript that was written to implement Nic’s design for the checkout and payment pages. This may be useful even though it contains a small amount of embedded PHP.