You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

39 lines
1.7 KiB
Plaintext

== Important ==
Organize server API by "page"
Inventory
Decrement immediately upon order placement (or even addtocart), not shipment
In placeorder, check that all items are still in stock, because maybe customer added to his cart a few months ago, during which time the item was sold-out
Don't present customers with out-of-stock items, or label them as out-of-stock
On addtocart or updatequantity, check that quantity is in stock
Never delete
Set all items to 'deleted=false'
Set any new items to 'deleted=false'
In itemsbyfilter, only return items where 'deleted=false'
In FrameAdmin, make 'delete' column into switch
Split into frames and sunglasses
'Enter' in either login textbox triggers attemptlogin
Search bar
'Clearance' tab
Each item needs a 'clearance' property
'Place order' makes an invoice and sends email to user; maybe a "My Account" page with orders
Implement routes, for back-button
Progress bar for image upload
Hash passwords (implement in already-existing 'hash' function)
Elavon Requirements
Return/Refund Policy
Privacy Policy
Delivery Methods and Timing described
== Nice for the Future ==
Make multi-lingual. Multi-currency?
Lens Chart
Create item entries in DB
Load all Lens entries, so UI is smooth (it doesn't have to download the new price every time a small change is made)
Implement the entire menu hierarchy as per the spreadsheet
Go through 'TODO's in code comments
Get price info for lenses, equipment, and accessories; get brand/model info on accessories; get AR/transition options for blue bocker and glass
== Notes ==
To renew certbot SSL certificate (prepend `--dry-run` before `certonly` to test):
sudo certbot certonly --webroot -w /home/brian/piazza-website/public/ -d piazzaoptical.com