Git Product home page Git Product logo

tutor-ecommerce's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

tutor-ecommerce's Issues

Error when running tutor local launch after plugin enabled

I am setting up using tutor, version 16.1.7
with last two releases(16.0.1 & 16.0.2) of tutor-ecommerce, I encountered error when running tutor local launch
it shows:

Running init task in ecommerce
Error: Missing configuration value: 'tuple object' has no attribute 'name'

and the script exits and the site will show server error after login

ENTERPRISE_SERVICE_URL is incorrect

I have noticed that on the Coupon pages in the Course Admin Tool, the Enterprise Customers drop down box does not load data from the LMS.

Log entries show that the ecommerce plugin is trying to make API calls to localhost:8000, instead of the proper LMS address. By default, ENTERPRISE_SERVICE_URL = 'http://localhost:8000/enterprise/'
(https://github.com/edx/ecommerce/blob/master/ecommerce/settings/base.py)

Overriding both ENTERPRISE_SERVICE_URL and ENTERPRISE_API_URL in tutor.py is necessary to get this to work. I first tried to override only ENTERPRISE_SERVICE_URL, but since ENTERPRISE_API_URL exists in production.py and evaluates its value based off the baked in base.py value, it needs to be reset.

Note, for the enterprise API to work the ENABLE_ENTERPRISE_INTEGRATION feature flag must be set to true in the LMS.

ERROR 11 [django.security.DisallowedHost]

I think i can tweak my deployment to get past this, but more generally, it looks like ALLOWED_HOSTS in ecommerce is not automatically being set.

The complete log error is:
ERROR 11 [django.security.DisallowedHost] /openedx/venv/lib/python3.8/site-packages/django/core/handlers/exception.py:99 - Invalid HTTP_HOST header: 'store.mooc.moocweb.com'. You may n eed to add 'store.mooc.moocweb.com' to ALLOWED_HOSTS.

Missing documentation to switch Cybersource from Sandbox to Production

Documentation is missing a very important config value to switch Cybersource from sandbox to production.

The config key is the following: flex_run_environment
For Sandbox this is as default set to 'cybersource.environment.sandbox', and to switch to production this has to be changed set in the config to 'cybersource.environment.production'

I tested this since I am about to push my website to production and just got approved by Cybersource to use a live account, but it kept not working because this is not specified in the docs which was odd for me in the first place.

So I propose we change this:

cybersource:
    merchant_id: SET-ME-PLEASE 
    flex_shared_secret_key_id: SET-ME-PLEASE
    flex_shared_secret_key: SET-ME-PLEASE
    soap_api_url: https://ics2wstest.ic3.com/commerce/1.x/transactionProcessor/CyberSourceTransaction_1.140.wsdl
    transaction_key: SET-ME-PLEASE
paypal:
    cancel_checkout_path: /checkout/cancel-checkout/
    client_id: SET-ME-PLEASE
    client_secret: SET-ME-PLEASE
    error_url: /checkout/error/
    mode: sandbox
    receipt_url: /checkout/receipt/

To this:

cybersource:
    merchant_id: SET-ME-PLEASE 
    flex_shared_secret_key_id: SET-ME-PLEASE
    flex_shared_secret_key: SET-ME-PLEASE
    soap_api_url: https://ics2wstest.ic3.com/commerce/1.x/transactionProcessor/CyberSourceTransaction_1.140.wsdl
    transaction_key: SET-ME-PLEASE
    flex_run_environment: [set as 'cybersource.environment.sandbox' as default, change to 'cybersource.environment.production' for use in production]
paypal:
    cancel_checkout_path: /checkout/cancel-checkout/
    client_id: SET-ME-PLEASE
    client_secret: SET-ME-PLEASE
    error_url: /checkout/error/
    mode: sandbox
    receipt_url: /checkout/receipt/```

openedx/ecommerce-job: django.db.utils.IntegrityError: (1062, "Duplicate entry '1' for key 'default_site_id'")

The ecommerce job does not take upgrades into consideration. In my case the ecommerce database comes from a native installation of Lilac and contains considerable transaction data that i definitely do not want to have to attempt to migrate table-by-table given the complexity of the oscar db.

openedx/ecommerce-job raises the following error:

Traceback (most recent call last):     
   File "./manage.py", line 11, in <module>       
     execute_from_command_line(sys.argv)
   File "/openedx/venv/lib/python3.8/site-packages/django/core/management/__init__.py", line 419, in execute_from_command_line    
     utility.execute()        
   File "/openedx/venv/lib/python3.8/site-packages/django/core/management/__init__.py", line 413, in execute  
     self.fetch_command(subcommand).run_from_argv(self.argv)
   File "/openedx/venv/lib/python3.8/site-packages/django/core/management/base.py", line 354, in run_from_argv
     self.execute(*args, **cmd_options) 
   File "/openedx/venv/lib/python3.8/site-packages/django/core/management/base.py", line 398, in execute      
     output = self.handle(*args, **options)       
   File "/openedx/ecommerce/ecommerce/core/management/commands/create_or_update_site.py", line 206, in handle 
     partner.save() 
   File "/openedx/venv/lib/python3.8/site-packages/django/db/models/base.py", line 739, in save     
     self.save_base(using=using, force_insert=force_insert, 
   File "/openedx/venv/lib/python3.8/site-packages/django/db/models/base.py", line 776, in save_base
     updated = self._save_table(        
   File "/openedx/venv/lib/python3.8/site-packages/django/db/models/base.py", line 858, in _save_table        
     updated = self._do_update(base_qs, using, pk_val, values, update_fields,   
   File "/openedx/venv/lib/python3.8/site-packages/django/db/models/base.py", line 912, in _do_update         
     return filtered._update(values) > 0
   File "/openedx/venv/lib/python3.8/site-packages/django/db/models/query.py", line 802, in _update 
     return query.get_compiler(self.db).execute_sql(CURSOR) 
   File "/openedx/venv/lib/python3.8/site-packages/django/db/models/sql/compiler.py", line 1559, in execute_sql         
     cursor = super().execute_sql(result_type)    
   File "/openedx/venv/lib/python3.8/site-packages/django/db/models/sql/compiler.py", line 1175, in execute_sql         
     cursor.execute(sql, params)        
   File "/openedx/venv/lib/python3.8/site-packages/django/db/backends/utils.py", line 66, in execute
     return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)  
   File "/openedx/venv/lib/python3.8/site-packages/django/db/backends/utils.py", line 75, in _execute_with_wrappers     
     return executor(sql, params, many, context)  
   File "/openedx/venv/lib/python3.8/site-packages/django/db/backends/utils.py", line 84, in _execute         
     return self.cursor.execute(sql, params)      
   File "/openedx/venv/lib/python3.8/site-packages/django/db/utils.py", line 90, in __exit__        
     raise dj_exc_value.with_traceback(traceback) from exc_value      
   File "/openedx/venv/lib/python3.8/site-packages/django/db/backends/utils.py", line 84, in _execute         
     return self.cursor.execute(sql, params)      
   File "/openedx/venv/lib/python3.8/site-packages/django/db/backends/mysql/base.py", line 73, in execute     
     return self.cursor.execute(query, args)      
   File "/openedx/venv/lib/python3.8/site-packages/MySQLdb/cursors.py", line 209, in execute        
     res = self._query(query) 
   File "/openedx/venv/lib/python3.8/site-packages/MySQLdb/cursors.py", line 315, in _query         
     db.query(q)         
     db.query(q)    
   File "/openedx/venv/lib/python3.8/site-packages/MySQLdb/connections.py", line 239, in query      
     _mysql.connection.query(self, query)         
 django.db.utils.IntegrityError: (1062, "Duplicate entry '1' for key 'default_site_id'")

Some problems encountered during my deployment.

Hi @regisb !When I deploy this plugin, there are some things I want to discuss with you.

  1. About the ecommerce payment processors setting,the plugin has been done very well.But it still need a init-hook.If u create a new ecommerce payment processors like alipay.The new value of waffle switch about this processor should be created and actived(ecommerce document).I found the command is :
 ./manage.py waffle_switch     payment_processor_active_alipay on

2.When I changed the default ecommerce repo to ours for building image,it got an error on this step:

RUN python manage.py compress --force

It printed:
image
But after i modified the assets.py

# from .base import *
from .production import *

Then this step is executed smoothly.
But:

RUN echo "{}" > /openedx/config.yml
ENV ECOMMERCE_CFG /openedx/config.yml

should be executed before the action of RUN make theme_static
3. There's some configuration should be set in tutor.py

SCAR_DEFAULT_CURRENCY = 'CNY'
CURRENCY_SYMBOL = '¥'

These configurations are generic but not required.
Do u have any suggestion of these configurations where to patch?
4. The reason of this PR as same as that.

tutor-ecommerce codebase Python 3.12 upgrade

  • Ensure tutor-ecommerce codebase is compatible with Python 3.12
  • Update Python to 3.12 in Dockerfile for nightly and ensure the image builds as expected. The changes would be merged to nightly. This task would rely on upgrade of ecommerce to Python 3.12

See overhangio/tutor#1004 for the context.

openedx/ecommerce and openedx/ecommerce-worker Python 3.12 upgrade

As mentioned on https://discuss.openedx.org/t/these-idas-will-not-be-upgraded-to-python-3-11-by-redwood/12755, ecommerce and ecommerce-worker are not prioritized for Python 3.11/3.12 upgrades and are free for community to pick them up. Since these are important repositories and their upgrades are blocking tutor-ecommerce upgrade (#68), Edly can take a dig at upgrading them. A note that these upgrade will be backwards compatible with 3.8.

  • Ensure openedx/ecommerce codebase has CI checks against 3.11 and 3.12
  • Ensure openedx/ecommerce-worker codebase has CI checks against 3.11 and 3.12
  • Fix openedx/ecommerce CI build issues by performing code upgrades
  • Fix openedx/ecommerce-worker CI build issues by performing code upgrades

Upstream issues

E-Commerce Course Admin page threw datatable/ajax errors

After installing the latest Tutor and enabling the discovery/e-commerce plugins, I navigated to E-Commerce Course Admin page (https://ecommerce.<LMS_ROOT>/courses/), and the "Courses" and "Coupons" tabs would randomly throw an error message about “DataTables warning: table id=courseTable - Ajax error." Inspecting the network requests in the browser’s devtools revealed that it was the API call to “/api/v2/courses?format=datatables…” that was returning 502 Bad Gateway error.

There were entries like this in the ecommerce log:

invalid request block size: 5104 (max 4096)...skip
ecommerce_1         | [uwsgi-http key: ecommerce.<lms_root> client_addr: 172.18.0.15 client_port: 21151] hr_instance_read(): Connection reset by peer [plugins/http/http.c line 647]

Then nginx log reported that “upstream prematurely closed connection while reading response header from upstream”.

It seems that we need to increase the buffer size for uwsgi, according to this: https://stackoverflow.com/questions/15878176/uwsgi-invalid-request-block-size. For Tutor it would mean adding "--buff:er-size=8196" to the following command in Dockerfile:

CMD uwsgi \
    --static-map /static=/openedx/staticfiles/ \
    --static-map /media=/openedx/media/ \
    --http 0.0.0.0:8000 \
    --thunder-lock \
    --single-interpreter \
    --enable-threads \
    --processes=${UWSGI_WORKERS:-2} \
    **--buffer-size=8196 \**
    --wsgi-file ${SERVICE_VARIANT}/wsgi.py

The related discussions are captured here: https://discuss.overhang.io/t/e-commerce-course-admin-page-threw-datatable-ajax-errors/1216/4

Error in Payment page

Hello

I followed this https://overhang.io/tutor/plugin/ecommerce page to setup with cybersource sandbox keys
in the payment page, Its showing error HTTP 400 for http://ecommerce.local.edly.io/bff/payment/v0/capture-context/

and tutor local logs Ecommerce shows these message:

tutor_local-ecommerce-1  | CyberSource.rest.ApiException: (400)
tutor_local-ecommerce-1  | Reason: 
tutor_local-ecommerce-1  | HTTP response headers: HTTPHeaderDict({'Strict-Transport-Security': 'max-age=31536000', 'Cache-Control': 'no-cache, no-store, must-revalidate', 'Pragma': 'no-cache', 'Expires': '-1', 'X-Download-Options': 'noopen', 'Digest': 'SHA-256=kcJGmEfpVx1KkQUJj3YNlGPU7vyl8tMwhbRLy67MM+c=', 'Content-Type': 'application/json;charset=UTF-8', 'Content-Length': '323', 'Date': 'Fri, 26 Jan 2024 07:20:49 GMT', 'X-Cnection': 'close', 'Connection': 'keep-alive', 'v-c-correlation-id': '59951d89-02d7-45cf-b347-407dfa607dc0'})
tutor_local-ecommerce-1  | HTTP response body: {"responseStatus":{"status":400,"reason":"VALIDATION_ERROR","message":"One or more validation errors occurred","correlationId":null,"details":[{"location":"targetOrigin","message":"Target Origin[0] cannot use http protocol unless the host is localhost"}],"_embedded":{}},"_links":{"self":null,"documentation":[],"next":[]}}

would you have idea how to fix this?
is it able to run a test environment in development (local.edly.io) mode? or it just need to be a production server?

server error message when I want to enter ecommerce

server error message when I want to enter ecommerce
it doesn't load in oscar dashboard before I tried it but after update it doesn't work I get the following message could you please guide me on what could be the problem I am new using openedx

Captura de Pantalla 2021-12-09 a la(s) 11 37 06 a  m

Issue running ecommerce in development mode

Bug description

With the introduction of the ecommerce mfe, the development command:

tutor dev runserver ecommerce

Now starts the ecommerce mfe and without starting the e-commerce service.

Solution
Change

"MFE_APP": {
   "name": "ecommerce",
   "repository": "https://github.com/edx/frontend-app-ecommerce",
   "port": 1996,
},

to

"MFE_APP": {
    "name": "ecommercemfe",
    "repository": "https://github.com/edx/frontend-app-ecommerce",
    "port": 1996,
},

@overhangio/tutor-developers what do you think?

init failed when contact email contains white spaces

image

Why my contact email contains white spaces?
In Django you can set an email to [email protected] or "My LMS <[email protected]>", the second format will use "My LMS" as the sender name instead of no-reply or [email protected].

Where is the function?
The init file is here
https://github.com/overhangio/tutor-ecommerce/blob/master/tutorecommerce/templates/ecommerce/tasks/ecommerce/init
It's run with tutor local launch

Solution
If this is an issue I think the solution is:
Change

  --from-email={{ CONTACT_EMAIL }} \
  --payment-support-email={{ CONTACT_EMAIL }} \

To (with double quotes)

  --from-email="{{ CONTACT_EMAIL }}" \
  --payment-support-email="{{ CONTACT_EMAIL }}" \

ps: I've tried to set CONTACT_EMAIL="My LMS [email protected]" but when I ran tutor config save double quotes were removed.

Ecommerce v0.1.13 showing "Server Error"

Bug description
A message "Server Error" is showing on the ecommerce site at ecommerce.mydomain.com . That same error is also showing at ecommerce.mydomain.com/accounts/profile/

I am able to login into the ecommerce site but the urls mentioned above are showing an error so no information is being displayed.

tutor local logs lms --tail=100 on ecommerce.mydomain.com/accounts/profile/ is showing:

ecommerce_1 | File "/openedx/venv/local/lib/python2.7/site-packages/django/template/base.py", line 199, in _render
ecommerce_1 | return self.nodelist.render(context)
ecommerce_1 | File "/openedx/venv/local/lib/python2.7/site-packages/django/template/base.py", line 990, in render
ecommerce_1 | bit = node.render_annotated(context)
ecommerce_1 | File "/openedx/venv/local/lib/python2.7/site-packages/django/template/base.py", line 957, in render_annotated
ecommerce_1 | return self.render(context)
ecommerce_1 | File "/openedx/venv/local/lib/python2.7/site-packages/django/template/loader_tags.py", line 177, in render
ecommerce_1 | return compiled_parent._render(context)
ecommerce_1 | File "/openedx/venv/local/lib/python2.7/site-packages/django/template/base.py", line 199, in _render
ecommerce_1 | return self.nodelist.render(context)
ecommerce_1 | File "/openedx/venv/local/lib/python2.7/site-packages/django/template/base.py", line 990, in render
ecommerce_1 | bit = node.render_annotated(context)
ecommerce_1 | File "/openedx/venv/local/lib/python2.7/site-packages/django/template/base.py", line 957, in render_annotated
ecommerce_1 | return self.render(context)
ecommerce_1 | File "/openedx/venv/local/lib/python2.7/site-packages/django/template/loader_tags.py", line 177, in render
ecommerce_1 | return compiled_parent._render(context)
ecommerce_1 | File "/openedx/venv/local/lib/python2.7/site-packages/django/template/base.py", line 199, in _render
ecommerce_1 | return self.nodelist.render(context)
ecommerce_1 | File "/openedx/venv/local/lib/python2.7/site-packages/django/template/base.py", line 990, in render
ecommerce_1 | bit = node.render_annotated(context)
ecommerce_1 | File "/openedx/venv/local/lib/python2.7/site-packages/django/template/base.py", line 957, in render_annotated
ecommerce_1 | return self.render(context)
ecommerce_1 | File "/openedx/venv/local/lib/python2.7/site-packages/django/template/loader_tags.py", line 72, in render
ecommerce_1 | result = block.nodelist.render(context)
ecommerce_1 | File "/openedx/venv/local/lib/python2.7/site-packages/django/template/base.py", line 990, in render
ecommerce_1 | bit = node.render_annotated(context)
ecommerce_1 | File "/openedx/venv/local/lib/python2.7/site-packages/django/template/base.py", line 957, in render_annotated
ecommerce_1 | return self.render(context)
ecommerce_1 | File "/openedx/venv/local/lib/python2.7/site-packages/django/template/loader_tags.py", line 72, in render
ecommerce_1 | result = block.nodelist.render(context)
ecommerce_1 | File "/openedx/venv/local/lib/python2.7/site-packages/django/template/base.py", line 990, in render
ecommerce_1 | bit = node.render_annotated(context)
ecommerce_1 | File "/openedx/venv/local/lib/python2.7/site-packages/django/template/base.py", line 957, in render_annotated
ecommerce_1 | return self.render(context)
ecommerce_1 | File "/openedx/venv/local/lib/python2.7/site-packages/django/template/loader_tags.py", line 216, in render
ecommerce_1 | return template.render(context)
ecommerce_1 | File "/openedx/venv/local/lib/python2.7/site-packages/django/template/base.py", line 209, in render
ecommerce_1 | return self._render(context)
ecommerce_1 | File "/openedx/venv/local/lib/python2.7/site-packages/django/template/base.py", line 199, in _render
ecommerce_1 | return self.nodelist.render(context)
ecommerce_1 | File "/openedx/venv/local/lib/python2.7/site-packages/django/template/base.py", line 990, in render
ecommerce_1 | bit = node.render_annotated(context)
ecommerce_1 | File "/openedx/venv/local/lib/python2.7/site-packages/django/template/base.py", line 957, in render_annotated
ecommerce_1 | return self.render(context)
ecommerce_1 | File "/openedx/venv/local/lib/python2.7/site-packages/django/template/loader_tags.py", line 63, in render
ecommerce_1 | result = self.nodelist.render(context)
ecommerce_1 | File "/openedx/venv/local/lib/python2.7/site-packages/django/template/base.py", line 990, in render
ecommerce_1 | bit = node.render_annotated(context)
ecommerce_1 | File "/openedx/venv/local/lib/python2.7/site-packages/django/template/base.py", line 957, in render_annotated
ecommerce_1 | return self.render(context)
ecommerce_1 | File "/openedx/venv/local/lib/python2.7/site-packages/django/template/defaulttags.py", line 458, in render
ecommerce_1 | url = reverse(view_name, args=args, kwargs=kwargs, current_app=current_app)
ecommerce_1 | File "/openedx/venv/local/lib/python2.7/site-packages/django/urls/base.py", line 87, in reverse
ecommerce_1 | raise NoReverseMatch("%s is not a registered namespace" % key)
ecommerce_1 | NoReverseMatch: u'catalogue' is not a registered namespace

tutor local logs --tail=100 ecommerce on ecommerce.mydomain.com is showing

ecommerce_1 | bit = node.render_annotated(context)
ecommerce_1 | File "/openedx/venv/local/lib/python2.7/site-packages/django/template/base.py", line 957, in render_annotated
ecommerce_1 | return self.render(context)
ecommerce_1 | File "/openedx/venv/local/lib/python2.7/site-packages/django/template/loader_tags.py", line 177, in render
ecommerce_1 | return compiled_parent._render(context)
ecommerce_1 | File "/openedx/venv/local/lib/python2.7/site-packages/django/template/base.py", line 199, in _render
ecommerce_1 | return self.nodelist.render(context)
ecommerce_1 | File "/openedx/venv/local/lib/python2.7/site-packages/django/template/base.py", line 990, in render
ecommerce_1 | bit = node.render_annotated(context)
ecommerce_1 | File "/openedx/venv/local/lib/python2.7/site-packages/django/template/base.py", line 957, in render_annotated
ecommerce_1 | return self.render(context)
ecommerce_1 | File "/openedx/venv/local/lib/python2.7/site-packages/django/template/loader_tags.py", line 177, in render
ecommerce_1 | return compiled_parent._render(context)
ecommerce_1 | File "/openedx/venv/local/lib/python2.7/site-packages/django/template/base.py", line 199, in _render
ecommerce_1 | return self.nodelist.render(context)
ecommerce_1 | File "/openedx/venv/local/lib/python2.7/site-packages/django/template/base.py", line 990, in render
ecommerce_1 | bit = node.render_annotated(context)
ecommerce_1 | File "/openedx/venv/local/lib/python2.7/site-packages/django/template/base.py", line 957, in render_annotated
ecommerce_1 | return self.render(context)
ecommerce_1 | File "/openedx/venv/local/lib/python2.7/site-packages/django/template/loader_tags.py", line 72, in render
ecommerce_1 | result = block.nodelist.render(context)
ecommerce_1 | File "/openedx/venv/local/lib/python2.7/site-packages/django/template/base.py", line 990, in render
ecommerce_1 | bit = node.render_annotated(context)
ecommerce_1 | File "/openedx/venv/local/lib/python2.7/site-packages/django/template/base.py", line 957, in render_annotated
ecommerce_1 | return self.render(context)
ecommerce_1 | File "/openedx/venv/local/lib/python2.7/site-packages/django/template/loader_tags.py", line 72, in render
ecommerce_1 | result = block.nodelist.render(context)
ecommerce_1 | File "/openedx/venv/local/lib/python2.7/site-packages/django/template/base.py", line 990, in render
ecommerce_1 | bit = node.render_annotated(context)
ecommerce_1 | File "/openedx/venv/local/lib/python2.7/site-packages/django/template/base.py", line 957, in render_annotated
ecommerce_1 | return self.render(context)
ecommerce_1 | File "/openedx/venv/local/lib/python2.7/site-packages/django/template/loader_tags.py", line 216, in render
ecommerce_1 | return template.render(context)
ecommerce_1 | File "/openedx/venv/local/lib/python2.7/site-packages/django/template/base.py", line 209, in render
ecommerce_1 | return self._render(context)
ecommerce_1 | File "/openedx/venv/local/lib/python2.7/site-packages/django/template/base.py", line 199, in _render
ecommerce_1 | return self.nodelist.render(context)
ecommerce_1 | File "/openedx/venv/local/lib/python2.7/site-packages/django/template/base.py", line 990, in render
ecommerce_1 | bit = node.render_annotated(context)
ecommerce_1 | File "/openedx/venv/local/lib/python2.7/site-packages/django/template/base.py", line 957, in render_annotated
ecommerce_1 | return self.render(context)
ecommerce_1 | File "/openedx/venv/local/lib/python2.7/site-packages/django/template/loader_tags.py", line 63, in render
ecommerce_1 | result = self.nodelist.render(context)
ecommerce_1 | File "/openedx/venv/local/lib/python2.7/site-packages/django/template/base.py", line 990, in render
ecommerce_1 | bit = node.render_annotated(context)
ecommerce_1 | File "/openedx/venv/local/lib/python2.7/site-packages/django/template/base.py", line 957, in render_annotated
ecommerce_1 | return self.render(context)
ecommerce_1 | File "/openedx/venv/local/lib/python2.7/site-packages/django/template/defaulttags.py", line 458, in render
ecommerce_1 | url = reverse(view_name, args=args, kwargs=kwargs, current_app=current_app)
ecommerce_1 | File "/openedx/venv/local/lib/python2.7/site-packages/django/urls/base.py", line 87, in reverse
ecommerce_1 | raise NoReverseMatch("%s is not a registered namespace" % key)
ecommerce_1 | NoReverseMatch: u'catalogue' is not a registered namespace
ecommerce_1 | 2020-05-24 16:52:49,011 WARNING 147 [django.request] /openedx/venv/local/lib/python2.7/site-packages/django/core/handlers/base.py:152 - Not Found: /
ecommerce_1 | 2020-05-24 16:52:49,011 WARNING 147 [django.request] /openedx/venv/local/lib/python2.7/site-packages/django/core/handlers/base.py:152 - Not Found: /
ecommerce_1 | 2020-05-24 16:52:49,011 WARNING 147 [django.request] /openedx/venv/local/lib/python2.7/site-packages/django/core/handlers/base.py:152 - Not Found: /

How to reproduce
I followed all the steps in the documentation to enable the ecommerce plugin

tutor plugins enable discovery ecommerce
tutor config save
tutor local quickstart

Environment
Ubuntu 18.04 and the Tutor version v3.12.5

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.