Manage Orders#

Tags: site operator

Warning

This service is deprecated and was last tagged for the Redwood release. We are not fixing bugs or developing new features for it. For updates, follow along on the DEPR ticket

EdX has created a framework that manages order placement and fulfillment for digital products. Most of the products that edX supports involve modifications to enrollments.

The edX framework allows modules that fulfill enrollment-related products to interact with the edX Enrollment API, which is a part of the LMS. This process can be either synchronous or asynchronous.

Place an Order#

To place an order, you need the following information.

  • Order number

  • User

  • Basket

  • Shipping method

  • Shipping charge

  • Billing address

  • Order total

To place an order, use the handle_order_placement() method that EdxOrderPlacementMixin provides. If you modify this code, make sure that the code collects payment before it creates order objects.

Fulfill Orders#

To fulfill orders, emit a post_checkout signal. An internal fulfillment API then delegates fulfillment of individual order items to the appropriate fulfillment modules.

About Fulfillment Modules#

The E-Commerce base fulfillment module has the following interface.

fulfill_product(product)

revoke_line(line)

Every ProductType has a corresponding module that extends this interface and fulfills order items of that particular ProductType. To fulfill an order, the system gives each fulfillment module configured in settings (_oscar.py) an opportunity to fulfill order lines.

  • The fulfill_product method fulfills the order. For example, fulfill_product might enroll a learner in a course or upgrade the learner to a verified certificate).

  • The revoke_line method revokes a specific order line. For example, revoke_line might unenroll learners from courses or downgrade a learner from a verified seat.

Recover from a Fulfillment Error#

If a fulfillment operation fails, the E-Commerce service assigns the order a status indicating the reason for the failure. If you have enabled asynchronous order fulfillment, the service tries again to fulfill the order. You can also manually retry fulfillment of a failed order from the Oscar order dashboard.

Maintenance Chart

Review Date

Working Group Reviewer

Release

Test situation

2025-03-09

Sarina Canelake

Sumac

Fail - this component is deprecated