mitodl / mitxonline

BSD 3-Clause "New" or "Revised" License
4 stars 2 forks source link

Courseruns need upgrade deadlines #792

Closed pdpinch closed 2 years ago

pdpinch commented 2 years ago

We can't allow users to pay for a course after the upgrade deadline set in open edX, because the enrollment will fail.

As a course team member, I want to set an upgrade deadline for instructor-paced courses, so that learners don't pay for courses that they cannot pass.

As a marketing team member, I want to know the upgrade deadline so I can motivate learners to pay for a course, "before time runs out"

Acceptance Criteria:

Out of scope from this ticket (Based on comments)

arslanashraf7 commented 2 years ago

A few questions/updates that I wanted to share/ask while working on this:

don't allow payments after the upgrade deadline has passed (because they are going to fail)

Is there any behavior specified for this on the frontend side, e.g. if a course run upgrade deadline has passed?

  1. (Not enrolled) Will we show enroll button? Should we allow free enrollments?
  2. (Enrolled) We should hide Get Certificate button from everywhere. (Course Details page, Dashboard page)
  3. If a user has multiple products and for some of them the Upgrade Deadline passed, should we not show those products on the cart or just remove them from the cart?

synchronize the upgrade deadline from open edX to the mitxonline application

I tried to look around MIcromasters and MITxPRO for the usage of Upgrade Deadline, MicroMasters has it, but I'm not sure if we are syncing upgrade deadline with edX there?

In xPRO we use course detail API to sync some course attributes with edX e.g, Name, Enrollment start/end, etc. https://github.com/mitodl/mitxpro/blob/master/courses/utils.py#L271-L275.

I suppose when we say Upgrade Deadline we are talking about the field we set while creating Verified Course Mode in edX ?

The thing is the Course Detail API from edX doesn't provide the Upgrade Deadline that we set for a Verified Course Mode. If we want to sync, we will need to use Course Mode Details API from edX along with course details so we sync Upgrade Deadline. However, We do have the Course end date in edX course detail API but I suppose we can't use that as the upgrade deadline.

@pdpinch FYI, Could you share your thoughts ?

pdpinch commented 2 years ago

(Not enrolled) Will we show enroll button? Should we allow free enrollments?

The enroll button should be controlled by the start and end enrollment dates on the course run. Yes, on mitxonline we allow free enrollments (unlike xPRO).

pdpinch commented 2 years ago

(Enrolled) We should hide Get Certificate button from everywhere. (Course Details page, Dashboard page)

Yes, this is the most important UI requirement for this issue.

If a user has multiple products and for some of them the Upgrade Deadline passed, should we not show those products on the cart or just remove them from the cart?

It's OK to show the product in the cart, but we should not allow the user to move ahead to cybersource. The most important thing is that we don't take payments for verified mode enrollments that are not available.

pdpinch commented 2 years ago

Regarding synchronizing the upgrade deadline, let's leave that for a separate issue. I can take care of it manually for now (which is what we do in micromasters).

arslanashraf7 commented 2 years ago

Regarding synchronizing the upgrade deadline, let's leave that for a separate issue. I can take care of it manually for now (which is what we do in micromasters).

Created a separate ticket for this https://github.com/mitodl/mitxonline/issues/842.

arslanashraf7 commented 2 years ago

Closed via #842