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

ecommerce_domain.rst 3.2KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. ================
  2. eCommerce domain
  3. ================
  4. When building an e-commerce site, there are several components whose
  5. implementation is strongly domain-specific. That is, every site will have
  6. different requirements for how such a component should operate. As such, these components
  7. cannot easily be modelled using a generic system - no configurable system will be able
  8. to accurately capture the domain-specific behaviour required.
  9. The design philosophy of oscar is to not make a decision for you here, but to
  10. provide the environment where any domain logic can be implemented, no matter
  11. how complex.
  12. This document lists the components which will require implementation according to the
  13. domain:
  14. Taxonomy
  15. --------
  16. How are products organised within the site? A common pattern is to have a single
  17. "category tree" where each product belongs to one category which sits within a tree structure
  18. of other categories?
  19. However, there are lots of other options such as having several separate taxonomy trees (eg split by
  20. brand, by theme, by product type).
  21. * Can a product belong to more than one category?
  22. * Can a category sit in more than one place within the tree? (eg a "children's fiction" category
  23. might sit beneath "children's books" and "fiction").
  24. Payment flow
  25. ------------
  26. * Will the customer be debited at point of checkout, or when the items are dispatched?
  27. * If charging after checkout, when are shipping charges collected?
  28. * What happens if an order is cancelled after partial payment?
  29. Payment sources
  30. ---------------
  31. How are customers going to pay for orders?
  32. Will it be a simple, single-payment source solution such as paying by bankcard or using
  33. Google checkout? Or something more complicated such as allowing payment to be split across
  34. multiple payment sources such as a bankcard and a giftcard?
  35. More commonly, multiple payment sources can be used - such as:
  36. * Bankcard
  37. * Google checkout
  38. * PayPal
  39. * Business account
  40. * Managed budget
  41. * No upfront payment but send invoices later
  42. * Giftcard
  43. The checkout app within django-oscar is suitable flexible that all of these methods (and in
  44. any combination) is supported. However, you will need to implement the logic for your domain
  45. by subclassing the relevant view/util classes.
  46. Domain logic is often required to:
  47. * Determine which sources are available to an order;
  48. * Determine if payment can be split across sources and in which combinations;
  49. * Determine the order in which to take payment
  50. Stock logic
  51. -----------
  52. * Does the site support pre-orders (ordering before the product is available to be shipped) or
  53. back-orders (ordering when the product does not have stock)?
  54. Availability
  55. ------------
  56. * Based on the stock information from a fulfilment partner, what messaging should be
  57. displayed on the site? Further, should
  58. Shipping
  59. --------
  60. Every client has a different requirement for shipping charges. At its core, shipping charges
  61. normall depend on the following:
  62. * Items in basket
  63. * Shipping method chosen (e.g., standard or courier delivery)
  64. * Dispatch method chosen (e.g., ship together or ship separately)
  65. * Shipping address (e.g., which country it is in)
  66. * Basket vouchers (e.g., a voucher which gives free delivery)
  67. Common questions:
  68. * Are items shipping together as one batch, or separately?
  69. Checkout
  70. --------