Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. ==============================================
  2. Building an e-commerce site: the key questions
  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
  7. components cannot easily be modelled using a generic system - no configurable
  8. system will be able to accurately capture all the domain-specific behaviour
  9. required.
  10. The design philosophy of Oscar is to not make a decision for you here, but to
  11. provide the environment where any domain logic can be implemented, no matter how
  12. complex.
  13. This document lists the components which will require implementation according
  14. to the domain at hand. These are the key questions to answer when building your
  15. application. Much of Oscar's documentation is in the form of "recipes" that
  16. explain how to solve the questions listed here. Each question links to the
  17. relevant recipes.
  18. Catalogue
  19. =========
  20. What are your product types?
  21. ----------------------------
  22. Are you selling books, DVDs, clothing, downloads or fruit and veg? You will
  23. need to capture the attributes of your product types within your models. Oscar
  24. divides products into 'product classes' which each have their own set of
  25. attributes.
  26. * :doc:`recipes/how_to_model_your_catalogue`
  27. * :doc:`recipes/importing_a_catalogue`
  28. How is your catalogue organised?
  29. --------------------------------
  30. How are products organised within the site? A common pattern is to have a
  31. single category tree where each product belongs to one category which sits
  32. within a tree structure of other categories. However, there are lots of other
  33. options such as having several separate taxonomy trees (eg split by brand, by
  34. theme, by product type). Other questions to consider:
  35. * Can a product belong to more than one category?
  36. * Can a category sit in more than one place within the tree? (eg a "children's fiction" category
  37. might sit beneath "children's books" and "fiction").
  38. * :doc:`recipes/how_to_customise_an_app`
  39. * :doc:`recipes/how_to_customise_models`
  40. * :doc:`recipes/how_to_override_a_core_class`
  41. How are products managed?
  42. -------------------------
  43. Is the catalogue managed by a admin using a dashboard, or though an automated
  44. process, such as processing feeds from a fulfillment system? Where are your
  45. product images going to be served from?
  46. * :doc:`recipes/how_to_disable_an_app`
  47. Pricing, stock and availability
  48. ===============================
  49. How is tax calculated?
  50. ----------------------
  51. What availability messages are shown to customers?
  52. --------------------------------------------------
  53. Based on the stock information from a fulfilment partner, what messaging should be
  54. displayed on the site?
  55. * :doc:`recipes/how_to_configure_stock_messaging`
  56. Do you allow pre- and back-orders
  57. ---------------------------------
  58. An pre-order is where you allow a product to be bought before it has been
  59. published, while a back-order is where you allow a product to be bought that is
  60. currently out of stock.
  61. Shipping
  62. ========
  63. How are shipping charges calculated?
  64. ------------------------------------
  65. There are lots of options and variations here. Shipping methods and their
  66. associated charges can take a variety of forms, including:
  67. * A charge based on the weight of the basket
  68. * Charging a pre-order and pre-item charge
  69. * Having free shipping for orders above a given threshold
  70. Recipes:
  71. * :doc:`recipes/how_to_configure_shipping`
  72. Which shipping methods are available?
  73. -------------------------------------
  74. There's often also an issue of which shipping methods are available, as
  75. this can depend on:
  76. * The shipping address (eg overseas orders have higher charges)
  77. * The contents of the basket (eg free shipping for downloadable products)
  78. * Who the user is (eg sales reps get free shipping)
  79. Oscar provides classes for free shipping, fixed charge shipping, pre-order and
  80. per-product item charges and weight-based charges. It is provides a mechanism
  81. for determing which shipping methods are available to the user.
  82. Recipes:
  83. * :doc:`recipes/how_to_configure_shipping`
  84. Payment
  85. =======
  86. How are customers going to pay for orders?
  87. ------------------------------------------
  88. Often a shop will have a single mechanism for taking payment, such
  89. as integrating with a payment gateway or using PayPal. However more
  90. complicated projects will allow users to combine several different payment
  91. sources such as bankcards, business accounts and giftcards.
  92. Possible payment sources include:
  93. * Bankcard
  94. * Google checkout
  95. * PayPal
  96. * Business account
  97. * Managed budget
  98. * Giftcard
  99. * No upfront payment but send invoices later
  100. The checkout app within django-oscar is suitable flexible that all of these
  101. methods (and in any combination) is supported. However, you will need to
  102. implement the logic for your domain by subclassing the relevant view/util
  103. classes.
  104. Domain logic is often required to:
  105. * Determine which payment methods are available to an order;
  106. * Determine if payment can be split across sources and in which combinations;
  107. * Determine the order in which to take payment
  108. * Determine how to handle failing payments (this can get complicated when using
  109. multiple payment sources to pay for an order).
  110. * :doc:`recipes/how_to_configure_shipping`
  111. When will payment be taken?
  112. ---------------------------
  113. A common pattern is to 'pre-auth' a bankcard at the point of checkout then
  114. 'settle' for the appropriate amouts when the items actually ship. However,
  115. sometimes payment is taken up front. Often you won't have a choice due to
  116. limitations of the payment partner you need to integrate with.
  117. * Will the customer be debited at point of checkout, or when the items are dispatched?
  118. * If charging after checkout, when are shipping charges collected?
  119. * What happens if an order is cancelled after partial payment?