...
- order.processing.EventHandler is responsible for fulfillment via the "handle_shipping_event()" function.
- For all our digital product types, "handle_shipping_event()" will need to be extended to handle fulfillment.
- Each ProductType will require unique fulfillment actions, such as Enrollments requiring the Enrollment API.
- Each ProductType must have a unique fulfillment strategy defined in a new fulfillment.py module.
- We can use Order Status via order.abstract_models.AbstractOrder to have statuses for failed fulfillment.
Quick Notes
- Create a ProductType Definition (stories exist)
- Fulfillment API
- Wired into EventHandler
- Takes an Order
- Fulfills associated products
- Updates Order status
- Define order status
- state machine
- Update the Marketing Site to call into the new endpoint
- Course Mode table with SKUs for checking whether to use the new or old order workflows (short term)
- Login and Registration Pages
- Third Party Enrollment
- Bypassing Payment (via RESTful API work)