Skip to main content

A Tutor plugin for Open edX Ecommerce

Project description

This is a plugin for Tutor that integrates the Ecommerce application in an Open edX platform.

E-ducation

This plugin was developed and open sourced to the community thanks to the generous support of E-ducation. Thank you!

Installation

This plugin requires tutor>=3.6.0 and the Discovery plugin tutor-discovery. Also, you should have installed tutor from source, and not from a pre-compiled binary.

pip install tutor-ecommerce

Then, to enable this plugin, run:

tutor plugins enable ecommerce

Services will have to be re-configured and restarted, so you are probably better off just running quickstart again:

tutor local quickstart

Note that this plugins is compatible with Kubernetes integration, so if deploying to a Kubernetes cluster, run instead:

tutor k8s quickstart

Operations

Creating a user

The ecommerce user interface will be available at http://ecommerce.localhost for a local instance, and at ECOMMERCE_HOST (by default: http(s)://ecommerce.<yours lms host>) in production. In order to run commands from the UI, a user with admin rights must be created:

tutor local run ecommerce ./manage.py createsuperuser

Local development

For developing locally, it is necessary to configure the ecommerce service to be served from localhost:

tutor config save --set ECOMMERCE_HOST=ecommerce.localhost

Configuration

  • ECOMMERCE_HOST (default: "ecommerce.{{ LMS_HOST }}")
  • ECOMMERCE_PAYMENT_PROCESSORS (default: {cybersource: {...}, paypal: {...}} See below for details.)
  • ECOMMERCE_ENABLED_PAYMENT_PROCESSORS: (default: ["cybersource", "paypal"])
  • ECOMMERCE_ENABLED_CLIENT_SIDE_PAYMENT_PROCESSORS (default: ["cybersource"])
  • ECOMMERCE_EXTRA_PAYMENT_PROCESSOR_CLASSES (default: [])
  • ECOMMERCE_MYSQL_PASSWORD: "{{ 8|random_string }}")
  • ECOMMERCE_SECRET_KEY (default: "{{ 20|random_string }}")
  • ECOMMERCE_OAUTH2_SECRET (default: "{{ 8|random_string }}")
  • ECOMMERCE_API_KEY (default: "{{ 20|random_string }}")
  • ECOMMERCE_DOCKER_IMAGE (default: "overhangio/openedx-ecommerce:{{ TUTOR_VERSION }}")
  • ECOMMERCE_WORKER_DOCKER_IMAGE (default: "overhangio/openedx-ecommerce-worker:{{ TUTOR_VERSION }}")
  • ECOMMERCE_MYSQL_DATABASE (default: "ecommerce")
  • ECOMMERCE_MYSQL_USERNAME (default: "ecommerce")
  • ECOMMERCE_MYSQL_USERNAME (default: "ecommerce")
  • ECOMMERCE_OAUTH2_KEY (default: "ecommerce")
  • ECOMMERCE_API_TIMEOUT (default: 5)
  • ECOMMERCE_WORKER_JWT_ISSUER (default: "ecommerce_worker")
  • ECOMMERCE_EXTRA_PIP_REQUIREMENTS (default: [])

You will need to modify the ECOMMERCE_PAYMENT_PROCESSORS parameter to configure your payment providers credentials. By default, it is equal to:

cybersource:
  access_key: SET-ME-PLEASE
  cancel_page_url: /checkout/cancel-checkout/
  merchant_id: SET-ME-PLEASE
  payment_page_url: https://testsecureacceptance.cybersource.com/pay
  profile_id: SET-ME-PLEASE
  receipt_page_url: /checkout/receipt/
  secret_key: SET-ME-PLEASE
  send_level_2_3_details: true
  soap_api_url: https://ics2wstest.ic3.com/commerce/1.x/transactionProcessor/CyberSourceTransaction_1.140.wsdl
  sop_access_key: SET-ME-PLEASE
  sop_payment_page_url: https://testsecureacceptance.cybersource.com/silent/pay
  sop_profile_id: SET-ME-PLEASE
  sop_secret_key: SET-ME-PLEASE
  transaction_key: SET-ME-PLEASE
paypal:
  cancel_url: /checkout/cancel-checkout/
  client_id: SET-ME-PLEASE
  client_secret: SET-ME-PLEASE
  error_url: /checkout/error/
  mode: sandbox
  receipt_url: /checkout/receipt/

We suggest you modify this configuration, save it to ecommerce-config.yml and then load it with:

tutor config save --set "ECOMMERCE_PAYMENT_PROCESSORS=$(cat ecommerce-config.yml)"

Image customisation

Ecommerce implementations vary a lot from one country to another. If all you need are the Paypal, Cybersource and Stripe payment processors, then it should not be necessary to customize the tutor-ecommerce docker image, which contains the vanilla Ecommerce platform. However, if you need to run a fork of Ecommerce, or install extra requirements, then you should re-build the docker image. To do so, first set the appropriate settings:

tutor config save \
  --set 'ECOMMERCE_ENABLED_PAYMENT_PROCESSORS=["myprocessor"]' \
  --set 'ECOMMERCE_ENABLED_CLIENT_SIDE_PAYMENT_PROCESSORS=["myprocessor"]' \
  --set 'ECOMMERCE_EXTRA_PAYMENT_PROCESSOR_CLASSES=["myextension.payment.MyProcessor"]' \
  --set 'ECOMMERCE_EXTRA_PIP_REQUIREMENTS=["git+https://github.com/myusername/myplugin"]'

Then, build the image, pointing to your fork if necessary:

tutor images build ecommerce \
  -a ECOMMERCE_REPOSITORY=https://github.com/myusername/ecommerce \
  -a ECOMMERCE_VERSION=my/tag

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for tutor-ecommerce, version 0.1.3
Filename, size File type Python version Upload date Hashes
Filename, size tutor-ecommerce-0.1.3.tar.gz (9.1 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page