| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 | 
							- ================
 - eCommerce domain
 - ================
 - 
 - When building an e-commerce site, there are several components whose
 - implementation is strongly domain-specific.  That is, every site will have
 - different requirements for how such a component should operate.  As such, these components
 - cannot easily be modelled using a generic system - no configurable system will be able
 - to accurately capture all the domain-specific behaviour required.  
 - 
 - The design philosophy of oscar is to not make a decision for you here, but to
 - provide the environment where any domain logic can be implemented, no matter
 - how complex.  This is achieved through the use of subclassable objects that can 
 - be tailored to your domain. 
 - 
 - This document lists the components which will require implementation according to the
 - domain:
 - 
 - Taxonomy
 - --------
 - How are products organised within the site?  A common pattern is to have a single 
 - "category tree" where each product belongs to one category which sits within a tree structure
 - of other categories?
 - 
 - However, there are lots of other options such as having several separate taxonomy trees (eg split by
 - brand, by theme, by product type).
 - 
 - * Can a product belong to more than one category?
 - * Can a category sit in more than one place within the tree?  (eg a "children's fiction" category
 -   might sit beneath "children's books" and "fiction").
 - 
 - Payment flow
 - ------------
 - * Will the customer be debited at point of checkout, or when the items are dispatched?
 - * If charging after checkout, when are shipping charges collected?  
 - * What happens if an order is cancelled after partial payment?
 - 
 - Payment sources
 - ---------------
 - How are customers going to pay for orders?  
 - 
 - Will it be a simple, single-payment source solution such as paying by bankcard or using 
 - Google checkout?  Or something more complicated such as allowing payment to be split across
 - multiple payment sources such as a bankcard and a giftcard?
 - 
 - More commonly, multiple payment sources can be used - such as:
 - 
 - * Bankcard
 - * Google checkout
 - * PayPal
 - * Business account
 - * Managed budget
 - * No upfront payment but send invoices later
 - * Giftcard
 - 
 - The checkout app within django-oscar is suitable flexible that all of these methods (and in 
 - any combination) is supported.  However, you will need to implement the logic for your domain
 - by subclassing the relevant view/util classes. 
 - 
 - Domain logic is often required to: 
 - 
 - * Determine which sources are available to an order;
 - * Determine if payment can be split across sources and in which combinations;
 - * Determine the order in which to take payment
 - 
 - Stock logic
 - -----------
 - * Does the site support pre-orders (ordering before the product is available to be shipped) or
 -   back-orders (ordering when the product does not have stock)?  
 - 
 - Availability
 - ------------
 - * Based on the stock information from a fulfilment partner, what messaging should be 
 -   displayed on the site?  Further, should
 - 
 - Shipping
 - --------
 - Every client has a different requirement for shipping charges.  At its core, shipping charges
 - normall depend on the following:
 - 
 - * Items in basket
 - * Shipping method chosen (e.g., standard or courier delivery)
 - * Dispatch method chosen (e.g., ship together or ship separately)
 - * Shipping address (e.g., which country it is in)
 - * Basket vouchers (e.g., a voucher which gives free delivery)
 - 
 - Common questions:
 - 
 - * Are items shipping together as one batch, or separately?
 - 
 - Checkout
 - --------
 - 
 - 
 
 
  |