We need a shopping cart program that can run on a shared hosting domain.
That means it must be written in either perl or php.
Because we offer a very very limited set of products, we do not need any
list view or product detail view. We will make these by hand with html.
We do need the following functionality:
We to be able to maintain/add products in the database. A product must have
the following fields:
1. Name (CharField)
2. Description (CharField)
3. color (CharField)
4. Price - dollar
5. Price - euro
We need to offer the following shipping options:
1. Tracked worldwide
2. Untracked worldwide
3. Tracked Europe
4. Untracked Europe
For each shipping option we should be able to set the price,
but the price varies based on weight, eg.
0 - 10 kilo -> 100 euro
10 - 30 kilo -> 100o euro
The shipping price should be calculated from the items in the basket, because
they all have a weight. We should ablle to add weight ranges in the database.
The Shipping options can be hardcoded, only the 4 mentioned above exist.
If the shipping price can not be calculated, the order should be created,
with status 'new' but the customer should be notified we will get back to him
via email, to discuss payment.
We need the following payment options:
1. paypal, we will email the invoice to the customer, so no direct paypal
checkout should be implemented.
2. bitcoin, we want to support bitcoin as direct checkout.
Customer must be able to provide full shipping details.
For each order a confirmation email should be sent to the customer, and also
an email to an internal email address, so we can send the paypal invoice or
do the shipping.
We should be able to view orders in some kind of backend interface.
We should also be able to change order status, the statusses that exist are:
1. new (for when no shipping price could be calculated)
2. pending payment (for paypal orders)
We have no opinion about bitcoin, maybe order can be set to payed, or maybe
we should manually verify that the payment was complete.
The html+css should be implemented with bootstrap and should be as simple as
possible. No options not discussed in the above description should be visible
in the frontend. We don;t care about how the admin interface looks.