A modular, high performance, headless e-commerce platform built with Python, GraphQL, Django, and ReactJS.

Overview

Saleor Commerce - A GraphQL-first platform for perfectionists

Saleor Commerce

Customer-centric e-commerce on a modern stack
A headless, GraphQL-first e-commerce platform delivering ultra-fast, dynamic, personalized shopping experiences. Beautiful online stores, anywhere, on any device.

Join our active, engaged community:
Website | Blog | Twitter | Gitter | Spectrum

Table of Contents

What makes Saleor special?

Saleor is a rapidly-growing open source e-commerce platform that has served high-volume companies from branches like publishing and apparel since 2012. Based on Python and Django, the latest major update introduces a modular front end powered by a GraphQL API and written with React and TypeScript.

Features

  • PWA: End users can shop offline for better sales and shopping experiences
  • GraphQL API: Access all data from any web or mobile client using the latest technology
  • Headless commerce: Build mobile apps, customize storefronts and externalize processes
  • UX and UI: Designed for a user experience that rivals even the top commercial platforms
  • Dashboard: Administrators have total control of users, processes, and products
  • Orders: A comprehensive system for orders, dispatch, and refunds
  • Cart: Advanced payment and tax options, with full control over discounts and promotions
  • Payments: Flexible API architecture allows integration of any payment method. It comes with Braintree support out of the box.
  • Geo-adaptive: Automatic localized pricing. Over 20 local languages. Localized checkout experience by country.
  • SEO: Packed with features that get stores to a wider audience
  • Cloud: Optimized for deployments using Docker
  • Analytics: Server-side Google Analytics to report e-commerce metrics without affecting privacy

Saleor is free and always will be. Help us outโ€ฆ If you love free stuff and great software, give us a star! ๐ŸŒŸ

Saleor Storefront - React-based PWA e-commerce storefront Saleor Dashboard - Modern UI for managing your e-commerce

Installation

Saleor requires Python 3.8, Node.js 10.0+, PostgreSQL and OS-specific dependency tools.

See the Saleor docs for step-by-step installation and deployment instructions.

Note: The master branch is the development version of Saleor and it may be unstable. To use the latest stable version, download it from the Releases page or switch to a release tag.

The current stable version is 2.11 and you should use this version for all three components:

Documentation

Saleor documentation is available here: docs.saleor.io

To contribute, please see the mirumee/saleor-docs repository.

Saleor Platform

The easiest way to run all components of Saleor (API, storefront and dashboard) together on your local machine is to use the saleor-platform project. Go to that repository for instructions on how to use it.

View saleor-platform

Storefront

For PWA, single-page storefront go to the saleor-storefront repository.

View storefront demo

Dashboard

For dashboard go to the saleor-dashboard repository.

View dashboard demo

Demo

Want to see Saleor in action?

View Storefront | View Dashboard (admin area)

Or launch the demo on a free Heroku instance.

Deploy

Login credentials: [email protected]/admin

Contributing

We love your contributions and do our best to provide you with mentorship and support. If you are looking for an issue to tackle, take a look at issues labeled Help Wanted.

If nothing grabs your attention, check our roadmap or come up with your feature. Just drop us a line or open an issue and weโ€™ll work out how to handle it.

Get more details in our Contributing Guide.

Legacy views

If you're interested in using the old version of Saleor, go the legacy-views repository. It contains the 2.9.0 release, which includes Django-based views and HTML templates of Storefront 1.0 and Dashboard 1.0. Note: this version of Saleor is no longer officially maintained.

Your feedback

Do you use Saleor as an e-commerce platform? Fill out this short survey and help us grow. It will take just a minute, but mean a lot!

Take a survey

License

Disclaimer: Everything you see here is open and free to use as long as you comply with the license. There are no hidden charges. We promise to do our best to fix bugs and improve the code.

Some situations do call for extra code; we can cover exotic use cases or build you a custom e-commerce appliance.

Crafted with โค๏ธ by Mirumee Software

[email protected]

Issues
  • Fast pagination without OFFSET, skip counting rows unless requested

    Fast pagination without OFFSET, skip counting rows unless requested

    Proof of concept implementation that limits the cost of paginated connections unless totalCount is explicitly requested.

    โš ๏ธ WARNING

    • Not fully tested.
    • Not sure if it's used by all connection classes.
    • I likely don't have the time necessary to bring this into a mergeable state.

    Fixes #4652 Fixes #2377

    Pull Request Checklist

    1. [ ] Privileged views and APIs are guarded by proper permission checks.
    2. [ ] All visible strings are translated with proper context.
    3. [ ] All data-formatting is locale-aware (dates, numbers, and so on).
    4. [ ] Database queries are optimized and the number of queries is constant.
    5. [ ] Database migration files are up to date.
    6. [ ] The changes are tested.
    7. [ ] GraphQL schema and type definitions are up to date.
    8. [ ] Changes are mentioned in the changelog.
    performance 
    opened by patrys 63
  • Additional Cloud Deployment Options

    Additional Cloud Deployment Options

    Is it possible to add guides for deployment on alternative cloud services?

    I really like Heroku but I have an issue with how pricey it is to have SSL with a custom domain. Ideally, I would also like to host my Saleor instance on a different cloud provider, say Digital Ocean or Google Cloud Compute.

    Does anyone have a written guide for alternative cloud deployments?

    This is only a request. Thank you.

    documentation stale 
    opened by raybesiga 51
  • from prices import Price

    from prices import Price

    I am getting this error: ImportError cart: No module named prices

    I found the source of the error: from prices import Price

    this line is found on the following files: https://github.com/mirumee/saleor/blob/25adc3c8e840c81418833290a89e240baf7833e1/saleor/product/models/discounts.py https://github.com/mirumee/saleor/blob/fcf982842c2ad9f9795efe4b11d9dc3f9a251fba/saleor/product/models/variants.py https://github.com/mirumee/saleor/blob/214138810c1722f1b61e01c115eeecb362f93fb9/saleor/cart/init.py https://github.com/mirumee/saleor/blob/25adc3c8e840c81418833290a89e240baf7833e1/saleor/order/models.py

    and I see that I cannot find this module anywhere as I did do a search. This is preventing me from syncing to the DB and getting this running successfully.

    Let me know what is missing as I am still searching.

    opened by infinityalgorithms 41
  • migration failed due to importError

    migration failed due to importError

    Hi,

    I am trying to install saleor on my local machine. I followed the instructions carefully here http://saleor.readthedocs.io/en/latest/installation.html#installation. I even have a virtual environment as recommended by the Docs.

    However, I cannot seem to have it up and running. I am using python 2.7, Django 1.10, pip 9.0.1. The first time I ran a migration, I go this error

    ImportError: No module named dj_database_url. I proceeded to install it and other several modules that appeared as an import error when I tried to migrate but could not. I finally reached this module dj_cache_url but I get this error when i try to install it via pip

    Could not find a version that satisfies the requirement dj_cache_url (from versions: ) No matching distribution found for dj_cache_url

    Now I cannot pass the migration stage because this module has an issue. What could be the problem?

    opened by HawiCaesar 39
  • relation

    relation "account_user" does not exist

    I'm not sure why this error is thrown. I can't find any account_user relation.

    What I'm trying to achieve

    To install the master branch ...

    Steps to reproduce the problem

    as provided by the documentation

    (Please include a stack trace if this problem results in a crash.) [email protected]:~/saleor$ python3 manage.py migrate /usr/local/lib/python3.4/dist-packages/psycopg2/init.py:144: UserWarning: The psycopg2 wheel package will be renamed from release 2.8; in order to keep installing from binary please use "pip install psycopg2-binary" instead. For details see: <http://initd.org/psyc opg/docs/install.html#binary-install-from-pypi>. """) System check identified some issues:

    WARNINGS: saleor.W001: Session caching cannot work with locmem backend HINT: User sessions need to be globally shared, use a cache server like Redis. Operations to perform: Apply all migrations: auth, contenttypes, django_celery_results, django_prices_openexchangerates, impersonate, sessions, sites, soci al_django Running migrations: Applying impersonate.0001_initial...Traceback (most recent call last): File "/usr/local/lib/python3.4/dist-packages/django/db/backends/utils.py", line 85, in _execute return self.cursor.execute(sql, params) psycopg2.ProgrammingError: relation "account_user" does not exist

    The above exception was the direct cause of the following exception:

    Traceback (most recent call last): File "manage.py", line 10, in execute_from_command_line(sys.argv) File "/usr/local/lib/python3.4/dist-packages/django/core/management/init.py", line 371, in execute_from_command_line utility.execute() File "/usr/local/lib/python3.4/dist-packages/django/core/management/init.py", line 365, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/usr/local/lib/python3.4/dist-packages/django/core/management/base.py", line 288, in run_from_argv self.execute(*args, **cmd_options) File "/usr/local/lib/python3.4/dist-packages/django/core/management/base.py", line 335, in execute output = self.handle(*args, **options) File "/usr/local/lib/python3.4/dist-packages/django/core/management/commands/migrate.py", line 200, in handle fake_initial=fake_initial, File "/usr/local/lib/python3.4/dist-packages/django/db/migrations/executor.py", line 117, in migrate state = self._migrate_all_forwards(state, plan, full_plan, fake=fake, fake_initial=fake_initial) File "/usr/local/lib/python3.4/dist-packages/django/db/migrations/executor.py", line 147, in _migrate_all_forwards state = self.apply_migration(state, migration, fake=fake, fake_initial=fake_initial) File "/usr/local/lib/python3.4/dist-packages/django/db/migrations/executor.py", line 244, in apply_migration state = migration.apply(state, schema_editor) File "/usr/local/lib/python3.4/dist-packages/django/db/backends/base/schema.py", line 90, in exit self.execute(sql) File "/usr/local/lib/python3.4/dist-packages/django/db/backends/base/schema.py", line 117, in execute File "/usr/local/lib/python3.4/dist-packages/django/db/backends/base/schema.py", line 117, in execute cursor.execute(sql, params) File "/usr/local/lib/python3.4/dist-packages/django/db/backends/utils.py", line 100, in execute return super().execute(sql, params) File "/usr/local/lib/python3.4/dist-packages/django/db/backends/utils.py", line 68, in execute return self._execute_with_wrappers(sql, params, many=False, executor=self._execute) File "/usr/local/lib/python3.4/dist-packages/django/db/backends/utils.py", line 77, in _execute_with_wrappers return executor(sql, params, many, context) File "/usr/local/lib/python3.4/dist-packages/django/db/backends/utils.py", line 85, in _execute return self.cursor.execute(sql, params) File "/usr/local/lib/python3.4/dist-packages/django/db/utils.py", line 89, in exit raise dj_exc_value.with_traceback(traceback) from exc_value File "/usr/local/lib/python3.4/dist-packages/django/db/backends/utils.py", line 85, in _execute return self.cursor.execute(sql, params) django.db.utils.ProgrammingError: relation "account_user" does not exist

    opened by hassanzadeh 34
  • Draft: Avalara excise plugin

    Draft: Avalara excise plugin

    Add Avalara Avatax Excise (ATE) Plugin. ATE is an Avalara product that is effectively a wrapper around Avatax with some additional fields and logic.

    Interesting things

    • ATE REST API Docs
    • ATE architecturally is a wrapper about Avatax. However it uses none of the same conventions between ATE and Avatax REST API's even though many of the fields are the same. For example ATE uses CaseLikeThis. This makes it almost but never quite like Avatax.
    • ATE returns currency only on Tax Lines and not at the Transaction level. We assume the first line currency is the one to use.
    • Some day we could consider refactoring Avatax and possibly writing it's init file with classes so that Excise can better extend it. ATE would then only need to override a few functions.

    Limitations / work in progress

    • ATE ProductCode is being mapped to Saleor's SKU. However ATE ProductCode has a very small max character length of 10
    • Commit is not available yet due to limitations on ATE. A second PR will be submitted for this later once Avalara addresses this.
    • Public documentation coming soon (Shared our internal docs with you already)

    Using this plugin

    ATE is a very new and enterprise focused product. Our design philosophy was to avoid any of our specific client business logic. However in practice, ATE must be integrated for each client. There's a lot of set up that happens on the ATE side such as mapping API custom fields, setting up SKUs etc. This plugin is not plug and play. However any changes necessary should include only adding additional ATE features and working with an ATE contact to set up.

    Impact

    • [ ] New migrations
    • [ ] New/Updated API fields or mutations
    • [ ] Deprecated API fields or mutations
    • [ ] Removed API types, fields, or mutations
    • [ ] Documentation needs to be updated

    Pull Request Checklist

    • [ ] Privileged queries and mutations are guarded by proper permission checks
    • [ ] Database queries are optimized and the number of queries is constant
    • [ ] Database migration files are up to date
    • [ ] The changes are tested
    • [ ] GraphQL schema and type definitions are up to date
    • [ ] Changes are mentioned in the changelog
    opened by bufke 34
  • Deploying saleor aws beanstalk failed

    Deploying saleor aws beanstalk failed

    I've been trying for several days now to set up saleor under Amazon Web Services' Elastic Beanstalk. I am getting the following error most of the time:

    ERROR: Your requirements.txt is invalid. Snapshot your logs for details.

    Here's directory structure:

    โ”œโ”€โ”€ .ebextensions
    โ”‚   โ””โ”€โ”€ django.config
    โ”œโ”€โ”€ .elasticbeanstalk
    โ”‚   โ”œโ”€โ”€ config.yml
    โ”œโ”€โ”€ .git
    โ”œโ”€โ”€ .gitignore
    โ”œโ”€โ”€ manage.py
    โ”œโ”€โ”€ saleor
    โ”‚   โ”œโ”€โ”€ __init__.py
    โ”‚   โ”œโ”€โ”€ settings.py
    โ”‚   โ”œโ”€โ”€ urls.py
    โ”‚   โ””โ”€โ”€ wsgi.py
    โ””โ”€โ”€ requirements.txt
    

    Here is django.config file inside .ebextensions:

    option_settings:

    aws:elasticbeanstalk:container:python:
       WSGIPath: saleor/wsgi.py
    packages:
     yum:
       gcc: []
       python36-devel: []
       gcc-c++: []
       libffi-devel: []
       postgresql93-devel: []
    

    Error:

    -------------------------------------
    /var/log/eb-activity.log
    -------------------------------------
            File "/opt/python/run/venv/local/lib/python3.6/site-packages/setuptools/sandbox.py", line 47, in _execfile
              exec(code, globals, locals)
            File "/tmp/easy_install-q1ck81sr/cffi-1.11.5/setup.py", line 240, in <module>
            File "/usr/lib64/python3.6/distutils/core.py", line 163, in setup
              raise SystemExit("error: " + str(msg))
          SystemExit: error: command 'gcc' failed with exit status 1
    
          During handling of the above exception, another exception occurred:
    
          Traceback (most recent call last):
            File "/opt/python/run/venv/local/lib/python3.6/site-packages/setuptools/command/easy_install.py", line 1101, in run_setup
              run_setup(setup_script, args)
            File "/opt/python/run/venv/local/lib/python3.6/site-packages/setuptools/sandbox.py", line 251, in run_setup
              raise
            File "/usr/lib64/python3.6/contextlib.py", line 99, in __exit__
              self.gen.throw(type, value, traceback)
            File "/opt/python/run/venv/local/lib/python3.6/site-packages/setuptools/sandbox.py", line 198, in setup_context
              yield
            File "/usr/lib64/python3.6/contextlib.py", line 99, in __exit__
              self.gen.throw(type, value, traceback)
            File "/opt/python/run/venv/local/lib/python3.6/site-packages/setuptools/sandbox.py", line 169, in save_modules
              saved_exc.resume()
            File "/opt/python/run/venv/local/lib/python3.6/site-packages/setuptools/sandbox.py", line 144, in resume
              six.reraise(type, exc, self._tb)
            File "/opt/python/run/venv/local/lib/python3.6/site-packages/pkg_resources/_vendor/six.py", line 685, in reraise
              raise value.with_traceback(tb)
            File "/opt/python/run/venv/local/lib/python3.6/site-packages/setuptools/sandbox.py", line 157, in save_modules
              yield saved
            File "/opt/python/run/venv/local/lib/python3.6/site-packages/setuptools/sandbox.py", line 198, in setup_context
              yield
            File "/opt/python/run/venv/local/lib/python3.6/site-packages/setuptools/sandbox.py", line 248, in run_setup
              DirectorySandbox(setup_dir).run(runner)
            File "/opt/python/run/venv/local/lib/python3.6/site-packages/setuptools/sandbox.py", line 278, in run
              return func()
            File "/opt/python/run/venv/local/lib/python3.6/site-packages/setuptools/sandbox.py", line 246, in runner
              _execfile(setup_script, ns)
            File "/opt/python/run/venv/local/lib/python3.6/site-packages/setuptools/sandbox.py", line 47, in _execfile
              exec(code, globals, locals)
            File "/tmp/easy_install-q1ck81sr/cffi-1.11.5/setup.py", line 240, in <module>
            File "/usr/lib64/python3.6/distutils/core.py", line 163, in setup
              raise SystemExit("error: " + str(msg))
          SystemExit: error: command 'gcc' failed with exit status 1
    
          During handling of the above exception, another exception occurred:
    
          Traceback (most recent call last):
            File "<string>", line 1, in <module>
            File "/tmp/pip-build-y4onvdfc/cairocffi/setup.py", line 51, in <module>
              'test': ['pytest-runner', 'pytest-cov'],
            File "/usr/lib64/python3.6/distutils/core.py", line 108, in setup
              _setup_distribution = dist = klass(attrs)
            File "/opt/python/run/venv/local/lib/python3.6/site-packages/setuptools/dist.py", line 315, in __init__
              self.fetch_build_eggs(attrs['setup_requires'])
            File "/opt/python/run/venv/local/lib/python3.6/site-packages/setuptools/dist.py", line 361, in fetch_build_eggs
              replace_conflicting=True,
            File "/opt/python/run/venv/local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 850, in resolve
              dist = best[req.key] = env.best_match(req, ws, installer)
            File "/opt/python/run/venv/local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 1122, in best_match
              return self.obtain(req, installer)
            File "/opt/python/run/venv/local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 1134, in obtain
              return installer(requirement)
            File "/opt/python/run/venv/local/lib/python3.6/site-packages/setuptools/dist.py", line 429, in fetch_build_egg
              return cmd.easy_install(req)
            File "/opt/python/run/venv/local/lib/python3.6/site-packages/setuptools/command/easy_install.py", line 665, in easy_install
              return self.install_item(spec, dist.location, tmpdir, deps)
            File "/opt/python/run/venv/local/lib/python3.6/site-packages/setuptools/command/easy_install.py", line 695, in install_item
              dists = self.install_eggs(spec, download, tmpdir)
            File "/opt/python/run/venv/local/lib/python3.6/site-packages/setuptools/command/easy_install.py", line 876, in install_eggs
              return self.build_and_install(setup_script, setup_base)
            File "/opt/python/run/venv/local/lib/python3.6/site-packages/setuptools/command/easy_install.py", line 1115, in build_and_install
              self.run_setup(setup_script, setup_base, args)
            File "/opt/python/run/venv/local/lib/python3.6/site-packages/setuptools/command/easy_install.py", line 1103, in run_setup
              raise DistutilsError("Setup script exited with %s" % (v.args[0],))
          distutils.errors.DistutilsError: Setup script exited with error: command 'gcc' failed with exit status 1
    
    devops support stale 
    opened by Jisanbd 33
  • Email interface as plugin

    Email interface as plugin

    • Move whole email logic to the plugin interface
    • Add AdminEmailPlugin
    • Add UserEmailPlugin
    • Add SendGridEmail PLugin
    • Add webhook notify
    test deployment 3.0 approved-breaking-change 
    opened by korycins 32
  • [Docker] The SECRET_KEY setting must not be empty.

    [Docker] The SECRET_KEY setting must not be empty.

    What I'm trying to achieve

    Install and run Saleor on Docker in production

    Steps to reproduce the problem

    1. docker build -t mystorefront .
    2. docker run mystorefront:latest

    What I expected to happen

    Launch the store on port 8000

    Screenshots

    image

    System information Operating system: UBUNTU 18.04 Browser:

    General questions: What are the env variables that docker is using and how can I change them?

    opened by Sshuichi 28
  • Add category details to dashboard views

    Add category details to dashboard views

    Add category detail card to dashboard/category/list.html. Rename detail.html to form.html. Delete dashboard/category/modal/edit.html.

    I want to merge this change because... This PR adds similar design of Categories to the one from other views with lists. This PR fixes #1372

    screenshot from 2017-12-05 15-33-50 screenshot from 2017-12-05 15-33-56 screenshot from 2017-12-05 15-34-01 screenshot from 2017-12-05 15-34-06 screenshot from 2017-12-05 15-34-13 screenshot from 2017-12-05 15-34-23 screenshot from 2017-12-05 15-34-35 screenshot from 2017-12-05 15-34-43

    Pull Request Checklist

    (Please keep this section. It will make maintainer's life easier.)

    1. [x] Privileged views and APIs are guarded by proper permission checks.
    2. [x] All visible strings are translated with proper context.
    3. [x] All data-formatting is locale-aware (dates, numbers, and so on).
    4. [x] Database queries are optimized and the number of queries is constant.
    5. [x] The changes are tested.
    6. [x] The code is documented (docstrings, project documentation).
    7. [x] Python code quality checks pass: pycodestyle, pydocstyle, pylint.
    8. [x] JavaScript code quality checks pass: eslint.
    opened by koradon 26
  • Change delivery retry mutation flow

    Change delivery retry mutation flow

    I want to merge this change because event delivery retry mutation shouldn't call plugin function directly without plugin manager participation

    Impact

    • [ ] New migrations
    • [ ] New/Updated API fields or mutations
    • [ ] Deprecated API fields or mutations
    • [ ] Removed API types, fields, or mutations
    • [ ] Documentation needs to be updated

    Pull Request Checklist

    • [ ] Privileged queries and mutations are guarded by proper permission checks
    • [ ] Database queries are optimized and the number of queries is constant
    • [ ] Database migration files are up to date
    • [ ] The changes are tested
    • [ ] GraphQL schema and type definitions are up to date
    • [ ] Changes are mentioned in the changelog
    opened by jakubkuc 2
  • AWS Cognito Integration

    AWS Cognito Integration

    Hi ,

    We are a start-up in seed stage using Saleor open source. We are using AWS Cognito as our third party integration for customer auth.

    How can this pair up with Saleor ? Any references.

    Also can I be provided direction on extending functionality using plugins. Can we use Nodejs?

    opened by dvdthecoder 0
  • Add possibility to control a exclude shipping webhook timeout via env variable

    Add possibility to control a exclude shipping webhook timeout via env variable

    I want to merge this change because, it adds a temporary env to control a timeout of the sync webhook responsible for excluding shipping methods

    Impact

    • [ ] New migrations
    • [ ] New/Updated API fields or mutations
    • [ ] Deprecated API fields or mutations
    • [ ] Removed API types, fields, or mutations
    • [ ] Documentation needs to be updated

    Pull Request Checklist

    • [ ] Privileged queries and mutations are guarded by proper permission checks
    • [ ] Database queries are optimized and the number of queries is constant
    • [ ] Database migration files are up to date
    • [ ] The changes are tested
    • [ ] GraphQL schema and type definitions are up to date
    • [ ] Changes are mentioned in the changelog
    3.0 
    opened by korycins 0
  • Fix flaky `create_refund_data` test

    Fix flaky `create_refund_data` test

    I want to merge this change because...

    Impact

    • [ ] New migrations
    • [ ] New/Updated API fields or mutations
    • [ ] Deprecated API fields or mutations
    • [ ] Removed API types, fields, or mutations
    • [ ] Documentation needs to be updated

    Pull Request Checklist

    • [ ] Privileged queries and mutations are guarded by proper permission checks
    • [ ] Database queries are optimized and the number of queries is constant
    • [ ] Database migration files are up to date
    • [ ] The changes are tested
    • [ ] GraphQL schema and type definitions are up to date
    • [ ] Changes are mentioned in the changelog
    opened by mateuszgrzyb 2
  • Updates for NP after final code review

    Updates for NP after final code review

    I want to merge this change because...

    SALEOR-4969

    Impact

    • [ ] New migrations
    • [ ] New/Updated API fields or mutations
    • [ ] Deprecated API fields or mutations
    • [ ] Removed API types, fields, or mutations
    • [ ] Documentation needs to be updated

    Pull Request Checklist

    • [ ] Privileged queries and mutations are guarded by proper permission checks
    • [ ] Database queries are optimized and the number of queries is constant
    • [ ] Database migration files are up to date
    • [ ] The changes are tested
    • [ ] GraphQL schema and type definitions are up to date
    • [ ] Changes are mentioned in the changelog
    opened by mateuszgrzyb 6
  • price values validation for ShippingMethodChannelListingUpdate mutation

    price values validation for ShippingMethodChannelListingUpdate mutation

    I want to merge this change because ShippingMethodChannelListingUpdate mutation needed additional validation for decimal precision fields.

    Impact

    • [ ] New migrations
    • [ ] New/Updated API fields or mutations
    • [ ] Deprecated API fields or mutations
    • [ ] Removed API types, fields, or mutations
    • [ ] Documentation needs to be updated

    Pull Request Checklist

    • [ ] Privileged queries and mutations are guarded by proper permission checks
    • [ ] Database queries are optimized and the number of queries is constant
    • [ ] Database migration files are up to date
    • [ ] The changes are tested
    • [ ] GraphQL schema and type definitions are up to date
    • [ ] Changes are mentioned in the changelog
    opened by jakubkuc 3
  • Category name with all Chinese result in routing failed

    Category name with all Chinese result in routing failed

    What I'm trying to achieve

    I'm trying to add a new category with full Chinese name, for example "ๅŠ ๅทฅๅŒ…่ฃ…", and then I can query that category in graphql. But storefront, it become empty because of non-ascii characters, and the route become invalid, like /category//5

    Steps to reproduce the problem

    1. create a category naming "ๅŠ ๅทฅๅŒ…่ฃ…"
    2. add a new menu point to that category in dashboard-navigation
    3. refresh storefront page and goto that menu

    What I expected to happen

    Maybe setting and using slug by default if category name is full non-ascii characters is a good way.

    System information

    Saleor version: 2.11

    Operating system: Linux

    bug 
    opened by fxp 0
  • Webhook payloads

    Webhook payloads

    I want to merge this change because it changes way saleor handles webhooks. This is a 3.1 port. Original feature branch is under feature/webhook-payloads

    Clickup list: https://app.clickup.com/2549495/v/l/6-144350552-1

    Impact

    • [x] New migrations
    • [x] New/Updated API fields or mutations
    • [ ] Deprecated API fields or mutations
    • [ ] Removed API types, fields, or mutations
    • [ ] Documentation needs to be updated

    Pull Request Checklist

    • [ ] Privileged queries and mutations are guarded by proper permission checks
    • [ ] Database queries are optimized and the number of queries is constant
    • [ ] Database migration files are up to date
    • [ ] The changes are tested
    • [ ] GraphQL schema and type definitions are up to date
    • [ ] Changes are mentioned in the changelog
    feature branch 3.1 
    opened by jakubkuc 2
  • Compare partial payments with 3.1

    Compare partial payments with 3.1

    I want to merge this change because...

    Impact

    • [ ] New migrations
    • [ ] New/Updated API fields or mutations
    • [ ] Deprecated API fields or mutations
    • [ ] Removed API types, fields, or mutations
    • [ ] Documentation needs to be updated

    Pull Request Checklist

    • [ ] Privileged queries and mutations are guarded by proper permission checks
    • [ ] Database queries are optimized and the number of queries is constant
    • [ ] Database migration files are up to date
    • [ ] The changes are tested
    • [ ] GraphQL schema and type definitions are up to date
    • [ ] Changes are mentioned in the changelog
    opened by stnatic 2
  • Azure blob storage integration

    Azure blob storage integration

    What I'm trying to achieve

    Additional azure storage for serving static media files just like AWS s3 and gcp, it would be really helpful If this feature was there.

    Also I could have proposed solution myself but I am afraid of breaking things, may be if there was some docs on how to add remote storage for serving media or atleast how to customise backend explaing how everything is working would be really helpfull for contributing more

    Feature request 
    opened by d3vsh4 0
Releases(3.0.0-b.32)
  • 3.0.0-b.32(Nov 24, 2021)

    • Trigger staging deployment for tagged releases (#8649) (e0caf4354)
    • Add support for Net protections (#8640) (9c43c87c9)
    • Fix Avalara tax fetching from cache (#8647) (1ffaf4132)
    Source code(tar.gz)
    Source code(zip)
  • 3.0.0-b.31(Nov 24, 2021)

  • 3.0.0-b.30(Nov 22, 2021)

    • Exclude shipping methods for 3.0 (#8399) (efd7eedff)
    • Fix tests, after added changes in 3.0 branch (86aeba697)
    • Avatax - Use different tax code when amount is zero (075916518)
    • Implement POC of database read replicas (#8516) (a87ce9b41)
    • Avatax - Fix zero for subtotal (dd96df0a2)
    • Avatax - Add option to set shipping tax code (ac42f8194)
    • Improve message when the cursor in pagination is invalid (#8593) (b7eceac2a)
    Source code(tar.gz)
    Source code(zip)
  • 3.0.0-b.29(Nov 10, 2021)

    Deprecations

    • Metadata mutations updateMetadata and deleteMetadata were changed to operate on token instead of id when used with Checkout and Order types. Support for id as an identifier in the mutation is currently supported but will be dropped in the next version 3.1.0-a.14. Changed in https://github.com/saleor/saleor/pull/8542.

    Changelog

    • Add PaymentCheckBalance mutation by @L3str4nge in https://github.com/saleor/saleor/pull/8398
    • Drop distincts on product filters by @tomaszszymanski129 in https://github.com/saleor/saleor/pull/8378
    • Fix flaky test and get rid of warnings for 3.0 by @IKarbowiak in https://github.com/saleor/saleor/pull/8489
    • Change Dummy Credit Cards configuration to operate on 4 last digits by @CossackDex in https://github.com/saleor/saleor/pull/8494
    • Fix for refund payment if order_created raises an error by @L3str4nge in https://github.com/saleor/saleor/pull/8471
    • Add custom uvicorn worker with lifespan protocol disabled by @GrzegorzKowalik in https://github.com/saleor/saleor/pull/8517
    • Increase voucher code limit by @CossackDex in https://github.com/saleor/saleor/pull/8511
    • Add data loader invalidation for saleChannelListingUpdate mutation by @maarcingebala in https://github.com/saleor/saleor/pull/8499
    • Limit error fields number in email plugin activation by @L3str4nge in https://github.com/saleor/saleor/pull/8428
    • Fix refund payment when cannot create an order in Stripe by @L3str4nge in https://github.com/saleor/saleor/pull/8520
    • Change metadata mutations to use token for order and checkout as an identifier by @IKarbowiak in https://github.com/saleor/saleor/pull/8542
    • Backport "variants per sale" to 3.0 by @L3str4nge in https://github.com/saleor/saleor/pull/8419
    • Fix CheckoutLinesUpdate fails to remove lines unavailable for purchase. by @IKarbowiak in https://github.com/saleor/saleor/pull/8496
    • Missing quantization in webhooks by @maarcingebala in https://github.com/saleor/saleor/pull/8555
    Source code(tar.gz)
    Source code(zip)
  • 3.1.0-a.13(Nov 10, 2021)

    Deprecations

    • Metadata mutations updateMetadata and deleteMetadata were changed to operate on token instead of id when used with Checkout and Order types. Support for id as an identifier in the mutation is currently supported but will be dropped in the next version 3.1.0-a.14. Changed in https://github.com/saleor/saleor/pull/8426.
    • The checkoutLineDelete mutation is now deprecated in favor of checkoutLinesDelete, which supports deleting multiple lines at once. checkoutLineDelete will be dropped in Saleor 4.0. Changed in https://github.com/saleor/saleor/pull/8421

    Changelog

    • Added sorting, searching and filtering to Checkout by @iprlic in https://github.com/saleor/saleor/pull/8381
    • Fix flaky test and get rid of warnings by @IKarbowiak in https://github.com/saleor/saleor/pull/8458
    • Adyen check gift card balance mutation by @L3str4nge in https://github.com/saleor/saleor/pull/8472
    • Add sender_address field in raising error by @L3str4nge in https://github.com/saleor/saleor/pull/8455
    • Add checkoutLinesDelete mutation, deprecate checkoutLineDelete by @CossackDex in https://github.com/saleor/saleor/pull/8421
    • Assign user gift cards and orders when it is possible by @IKarbowiak in https://github.com/saleor/saleor/pull/8271
    • Fix for refund payment if order_created raises an error by @L3str4nge in https://github.com/saleor/saleor/pull/8491
    • Change Dummy Credit Cards plugin configuration to operate on 4 last digits by @CossackDex in https://github.com/saleor/saleor/pull/8498
    • Fix permissions for product types attribute assign by @Deni-Iconis in https://github.com/saleor/saleor/pull/8340
    • Add custom uvicorn worker with lifespan protocol disabled by @GrzegorzKowalik in https://github.com/saleor/saleor/pull/8509
    • Increase voucher code limit by @CossackDex in https://github.com/saleor/saleor/pull/8519
    • Add data loader invalidation for saleChannelListingUpdate mutation by @maarcingebala in https://github.com/saleor/saleor/pull/8522
    • Add click and collect and preorder order filters by @IKarbowiak in https://github.com/saleor/saleor/pull/8510
    • Limit error fields when SMTP backend raises an error by @L3str4nge in https://github.com/saleor/saleor/pull/8453
    • Change metadata mutations to use token for order and checkout as an identifier by @IKarbowiak in https://github.com/saleor/saleor/pull/8426
    • Add missing quantization in webhooks by @kuchichan in https://github.com/saleor/saleor/pull/8463
    • Fix CheckoutLinesUpdate fails to remove lines unavailable for purchase by @IKarbowiak in https://github.com/saleor/saleor/pull/8545
    • Add ID list for order filtering by @maarcingebala in https://github.com/saleor/saleor/pull/8554
    Source code(tar.gz)
    Source code(zip)
  • 3.0.0-b.28(Oct 26, 2021)

    Deprecations

    • The checkoutLineDelete mutation is now deprecated in favor of checkoutLinesDelete, which supports deleting multiple lines at once. checkoutLineDelete will be dropped in Saleor 4.0. Changed in #8343

    Changelog

    • GraphQL Federation batch loading by @rafalp in https://github.com/saleor/saleor/pull/8362
    • Add checkoutLinesDelete mutation, deprecate checkoutLineDelete by @CossackDex in https://github.com/saleor/saleor/pull/8343
    • Use default value for stateOrProvince when country_area not defined by @L3str4nge in https://github.com/saleor/saleor/pull/8352
    • Add http.url tag to GraphQL query spans by @tomaszszymanski129 in https://github.com/saleor/saleor/pull/8400
    • Fix invalid token error when using accountDelete after logging out by @IKarbowiak in https://github.com/saleor/saleor/pull/8414
    Source code(tar.gz)
    Source code(zip)
  • 3.1.0-a.12(Oct 26, 2021)

    Changelog

    • Add webhooks tracing by @tomaszszymanski129 in https://github.com/saleor/saleor/pull/8424
    • Optimize products filtering by attributes by @fowczarek in https://github.com/saleor/saleor/pull/8439
    • Return external shipping method as a delivery method by @bogdal in https://github.com/saleor/saleor/pull/8446
    • Fix unable to process the payment request by @L3str4nge in https://github.com/saleor/saleor/pull/8456
    Source code(tar.gz)
    Source code(zip)
  • 3.1.0-a.11(Oct 21, 2021)

  • 3.1.0-a.10(Oct 20, 2021)

    Changelog

    • Variant selection attributes by @kuchichan in https://github.com/saleor/saleor/pull/8235
    • Add support for filtering over customer metadata by @mstrumeck in https://github.com/saleor/saleor/pull/8401
    • Fix failing Vatlayer for Click and Collect by @IKarbowiak in https://github.com/saleor/saleor/pull/8396
    • Adds psp_reference to PaymentData by @cipriancaba in https://github.com/saleor/saleor/pull/8356
    • Load external shipping methods in CheckoutInfoByCheckoutTokenLoader by @bogdal in https://github.com/saleor/saleor/pull/8413

    New Contributors

    • @cipriancaba made their first contribution in https://github.com/saleor/saleor/pull/8356
    Source code(tar.gz)
    Source code(zip)
  • 3.1.0-a.9(Oct 14, 2021)

    Changelog

    • Proper login error handling for deactivated users by @jakubkuc in https://github.com/saleor/saleor/pull/8269
    • Fix error on adding free shipping voucher to draft order by @CossackDex in https://github.com/saleor/saleor/pull/8253
    • Refactor products filter product type by @CossackDex in https://github.com/saleor/saleor/pull/8275
    • Use attributes to define BasePlugin methods by @L3str4nge in https://github.com/saleor/saleor/pull/8281
    • Add email validation in plugins by @L3str4nge in https://github.com/saleor/saleor/pull/8280
    • Add collection_point_name field to order confirmation webhook by @kuchichan in https://github.com/saleor/saleor/pull/8268
    • Add missing order number field to email order payload by @L3str4nge in https://github.com/saleor/saleor/pull/8287
    • Refactor products filter category by @CossackDex in https://github.com/saleor/saleor/pull/8290
    • Add missing validation on token refresh mutation by @fowczarek in https://github.com/saleor/saleor/pull/8288
    • Improve collection filter performance by @CossackDex in https://github.com/saleor/saleor/pull/8295
    • Fix webhooks logging of excessive events by @tomaszszymanski129 in https://github.com/saleor/saleor/pull/8265
    • Update main branch name from master by @patrys in https://github.com/saleor/saleor/pull/8317
    • Publish main branch to GHCR instead of Docker Hub by @NyanKiyoshi in https://github.com/saleor/saleor/pull/8322
    • Fix raising payment error in payment confirm by @L3str4nge in https://github.com/saleor/saleor/pull/8333
    • Add gift card fulfillment line relation by @IKarbowiak in https://github.com/saleor/saleor/pull/8246
    • Issue with fulfilling products and allowStockToBeExceeded flag by @L3str4nge in https://github.com/saleor/saleor/pull/8345
    • Fix product variant channel list mutation declaration by @rafalp in https://github.com/saleor/saleor/pull/8355
    • Batch entites by type in federated queries by @rafalp in https://github.com/saleor/saleor/pull/8273
    • Fix None checkers for quantity available resolver by @Kwaidan00 in https://github.com/saleor/saleor/pull/8353
    • Reserve stock for checkout by @rafalp in https://github.com/saleor/saleor/pull/7589
    • Extend CheckoutRemovePromoCode mutation with promoCodeId field by @IKarbowiak in https://github.com/saleor/saleor/pull/8354
    • Fix invalid token error when using accountDelete after logging out by @IKarbowiak in https://github.com/saleor/saleor/pull/8359
    • Handle no stocks in approve order fulfillment by @L3str4nge in https://github.com/saleor/saleor/pull/8358
    • Allow using shipping methods from plugins by @bogdal in https://github.com/saleor/saleor/pull/7975
    Source code(tar.gz)
    Source code(zip)
  • 3.0.0-b.27(Oct 14, 2021)

    Changelog

    • Webhooks tracing by @tomaszszymanski129 in https://github.com/saleor/saleor/pull/8320
    • Optimize product filtering by attributes by @fowczarek in https://github.com/saleor/saleor/pull/8360
    Source code(tar.gz)
    Source code(zip)
  • 3.0.0-b.26(Oct 12, 2021)

    Changelog

    • Return GatewayResponse instead of raising an error by @L3str4nge in https://github.com/saleor/saleor/pull/8330
    • Revert optimization on product filtering by attribute by @tomaszszymanski129 in https://github.com/saleor/saleor/pull/8342
    • Treat allowStockToBeExceeded flag as force fulfillment when no stock by @L3str4nge in https://github.com/saleor/saleor/pull/8338
    Source code(tar.gz)
    Source code(zip)
  • 3.0.0-b.25(Oct 8, 2021)

    Changelog

    • Proper login error handling for deactivated users by @jakubkuc in https://github.com/saleor/saleor/pull/8250
    • Add email validation during plugin configuration save by @L3str4nge in https://github.com/saleor/saleor/pull/8272
    • Add order.number to the email order payload by @L3str4nge in https://github.com/saleor/saleor/pull/8229
    • Add missing validation on token refresh mutation by @fowczarek in https://github.com/saleor/saleor/pull/8294
    • Fix error on adding free shipping voucher to a draft order by @CossackDex in https://github.com/saleor/saleor/pull/8220
    • Improve CollectionFilter.search performance by @CossackDex in https://github.com/saleor/saleor/pull/8291
    • Improve CategoryFilter.search performance by @CossackDex in https://github.com/saleor/saleor/pull/8277
    • Improve ProductTypeFilter.search performance by @CossackDex in https://github.com/saleor/saleor/pull/8233
    • Use attributes to define BasePlugin methods by @L3str4nge in https://github.com/saleor/saleor/pull/8252
    • Fix webhooks logging of excessive events by @tomaszszymanski129 in https://github.com/saleor/saleor/pull/8266
    • Publish main branch to GHCR instead of Docker Hub by @NyanKiyoshi in https://github.com/saleor/saleor/pull/8331
    Source code(tar.gz)
    Source code(zip)
  • 3.1.0-a.8(Oct 1, 2021)

  • 3.0.0-b.24(Oct 1, 2021)

    Changelog

    • Make sentry settings configurable - #8243 by @tomaszszymanski129
    • Unify GraphQl span naming across tracers - #8241 by @tomaszszymanski129
    Source code(tar.gz)
    Source code(zip)
  • 3.1.0-a.7(Sep 30, 2021)

    Changelog

    • Make sale per variant - #8064 by @kuchichan
    • Add sales webhooks - #8157 by @kuchichan
    • Support empty SKUs for products variants - #7633 by @rafalp
    • Handle stock.quantity < 0 in deallocate stock and updating variant stocks - #8218 by @L3str4nge
    • Fix "Insufficient stock" error in checkoutLinesUpdate with 0 quantity - #8232 by @CossackDex
    • Query fingerprint in span info - #8203 by @tomaszszymanski129
    • Add giftCardCurrencies query - #8222 by @IKarbowiak
    • Mark X- headers as deprecated. Add headers without prefix - #8205 by @L3str4nge
    • Handle SameSite cookie attribute in JWT refresh token middleware - #8223 by @jakubkuc
    • Allow defining value for attribute value for all attribute types - #8210 by @IKarbowiak
    • Extend account register mutation to set first and last name - #8184 by @piotrgrundas
    • Improve draft orders webhooks - #8200 by @jakubkuc
    • Extend orderFulfill mutation by a new flag to allow stock exceeded - #8155 by @L3str4nge
    • Add ID list for order filtering - #8178 by @jakubkuc
    • Too many fields from payment object - #8225 by @L3str4nge
    • Do not create gift cards for waiting for approval orders - #8162 by @IKarbowiak
    • Unnecessary database lock in checkout complete mutation - #8182 by @fowczarek
    • Fix cursor in product search results - #8158 by @rafalp
    • Make Sentry settings configurable - #8245 by @tomaszszymanski129
    • Mute confusing PermissionDenied logs - #8208 by @mateuszgrzyb
    • Add kind to ProductTypes in populatedb_data.json - #8221 by @Deni-Iconis
    Source code(tar.gz)
    Source code(zip)
  • 3.0.0-b.23(Sep 29, 2021)

    Changelog

    • Query fingerprint in span info in 3.0 - #8228 by @tomaszszymanski129
    • Fix Insufficient stock error in checkoutLinesUpdate with 0 quantity - #8175 by @CossackDex
    Source code(tar.gz)
    Source code(zip)
  • 3.0.0-b.22(Sep 29, 2021)

    Changelog

    • Mark X- headers as deprecated. Add headers without prefix - #8179 by @L3str4nge
    • Too many fields from payment object are accessible for customer in ordertype - #8170 by @L3str4nge
    • handle SameSite cookie attribute in jwt refresh token middleware - #8209 by @jakubkuc
    • Fix cursor-based pagination in products search - #8211 by @rafalp
    • Mute confusing PermissionDenied logs - #8180 by @stnatic
    • Add ID list for order filtering - #8163 by @jakubkuc
    • Remove unnecessary database lock on discount during checkout complete mutation - #8174 by @fowczarek
    • Improve draft orders and orders webhooks - #8102 by @jakubkuc
    Source code(tar.gz)
    Source code(zip)
  • 3.0.0-b.21(Sep 23, 2021)

    Changelog

    • Add allow_stock_to_be_exceeded flag in OrderFulfill mutation - #8126 by @L3str4nge
    • Add order status verification to DraftOrderDelete mutation - #8111 by @jakubkuc
    • Fix account address update with anonymous user - #8142 by @tomaszszymanski129
    • Fix call handler with incorrect function arguments - #8098 by @korycins
    • Fix GraphQL federation compatibility for ChannelContext - #8107 by @rafalp
    • Fix missing transaction id in Braintree - #8110 by @fowczarek
    • Increase timeout for sync webhooks - #8139 by @L3str4nge
    • Change PluginsManager to call methods only on active plugins - #8105 by @L3str4nge
    • Capture user agent when tracing - #8093 by @patrys
    Source code(tar.gz)
    Source code(zip)
  • 3.1.0-a.6(Sep 22, 2021)

    Changelog

    • Introduce swatch attributes - #7261 by @IKarbowiak
    • Possibility to pass metadata in input of checkoutPaymentCreate - #8076 by @mateuszgrzyb
    • Deprecate setup_future_usage from checkoutComplete.paymentData input - will be removed in Saleor 4.0 - #7994 by @mateuszgrzyb
    • Deactivate gift cards when cancel order and block refund operations - #8067 by @IKarbowiak
    • Add order status verification to DraftOrderDelete mutation - #8138 by @jakubkuc
    • Fix shipping address issue in availableCollectionPoints resolver for checkout - #8143 by @kuchichan
    • Fix missing transaction id in Braintree - #8113 by @fowczarek
    • Fix GraphQL federation compatibility for ChannelContext - #7771 by @rafalp
    • Fix call handler with incorrect function arguments - #8099 by @korycins
    • Fix account address update with anonymous user - #8123 by @tomaszszymanski129
    • Increase timeout for sync webhooks - #8156 by @L3str4nge
    • Call PluginManager's action only for active plugins - #8109 by @L3str4nge
    • Capture user agent when tracing - #8094 by @patrys
    Source code(tar.gz)
    Source code(zip)
  • 3.1.0-a.5(Sep 14, 2021)

    • Gift cards MVP (#7827)
    • Fix passing replace flag to check_stock_quantity_bulk (#8091)
    • Fix bug with handling orders containing deleted variants (#8089)
    • Refactor fulfillments quantity fulfilled (#8062)
    • Fix Adyen do not assume that checkout exists for additional action (#8085)
    • All products shouldn't be visible for all staff users (#8022)
    • Fix inccorect handling of last response object (#8066)
    • Optimize _clean_product_attributes_filter_input (#8058)
    Source code(tar.gz)
    Source code(zip)
  • 3.0.0-b.20(Sep 14, 2021)

    • Fix passing replace flag to check_stock_quantity_bulk (#8083)
    • Fix bug with handling orders containing deleted variants (#8053)
    • Fix Adyen do not assume that checkout exists for additional action 3.0 (#8084)
    • Fix incorrect handling of last response object (#8065)
    • Optimize _clean_product_attributes_filter_input (#8078)
    Source code(tar.gz)
    Source code(zip)
  • 3.1.0-a.4(Sep 8, 2021)

  • 3.0.0-b.19(Sep 7, 2021)

    • Fix checking existing lines quantity (#7883) (c4dfe766e)
    • Refactor permission decorators (#8026) (8607d0913)
    • Fix attributes values filter performance issue (#7964) (53943578a)
    Source code(tar.gz)
    Source code(zip)
  • 3.1.0-a.3(Sep 6, 2021)

    • Fix checking existing lines quantity 3.1 (#8040) (61b423590)
    • Merge pull request #8036 from mirumee/bump-requirements (1e8381fb8)
    • Bump dependencies (6f0d00828)
    • Merge pull request #8033 from mirumee/SALEOR-4222/3.1/Adjust-result-of-AttributeValue-search (60cd8b2f0)
    • Fix performance issue (242976e34)
    • Merge pull request #8019 from mirumee/SALEOR-4338-fix-checkout-lines-update-with-0-quantity-in-3.1 (6ed1fb8a8)
    • Merge pull request #8021 from mirumee/fix-demo-example-query-31 (bd875bd64)
    • Merge pull request #8008 from mirumee/fix_incorrect_tax_calculation_for_avatax_and_jpy (2cc0bb0f9)
    • Fix the example query displayed in Playground (6c73a7cae)
    • Block CheckoutLinesUpdate for creating empty lines (be92d97a9)
    • Fix language codes (#8018) (fb1464eec)
    • Add workaround for incorrect tax calculation recieved from Avatax (30605e39c)
    • Fix CheckoutByTokenLoader for not exisiting tokens (#7983) (e832cac90)
    • SALEOR-4122: ExternalNotificationTrigger mutation (#7821) (9fefbc80c)
    • Fix fulfillments refund with waiting for approval state (#7938) (5cd79a0be)
    • Add possibility to attach user to checkout by App or staff user (#7754) (8b1190712)
    • Merge pull request #7979 from mirumee/fix-flaky-out-of-stock-test (2d0787afc)
    • Fix flaky test test_order_fulfill_with_out_of_stock_webhook (1314cd689)
    • Merge pull request #7970 from mirumee/dependabot/pip/django-graphiql-debug-toolbar-0.2.0 (63b65c914)
    • Merge pull request #7959 from mirumee/SALEOR-4295-reduce-number-of-spans-in-plugin-manager-in-3.1 (c0057f138)
    • Bump django-graphiql-debug-toolbar from 0.1.4 to 0.2.0 (a4afbfa45)
    • Merge pull request #7976 from mirumee/bump-requirements (e19474a93)
    • Bump dependencies (753969c3f)
    • Reduce number of spans generated by PluginManager (477f71781)
    • Merge pull request #7937 from mirumee/github-disciusions (d89366116)
    • Click and collect (#7673) (d9c6071cb)
    • Add github discussions (76fc9e847)
    • Change behavior of waiting for approval fulfillment cancellation (#7911) (c9c1cc096)
    • Merge pull request #7932 from mirumee/added-in-31-msg (e04d8fc23)
    • Add message about fields added in 3.1 (497cb116d)
    • Merge pull request #7925 from mirumee/SALEOR-4190/3.1/add-channel-default-country (5ce02ccd0)
    • Unify deprecation messages (#7908) (6042a8d96)
    • Product variant channel listing webhooks (stocks) (#7590) (6921f6552)
    • Add default country to channel (#7907) (f813a9fd3)
    • Add usage of new auth header for apps (#7920) (34c01912f)
    • Merge pull request #7905 from mirumee/dependabot/pip/braintree-4.12.0 (8b62d1f34)
    • Bump braintree from 4.11.0 to 4.12.0 (08b7f198e)
    • Merge pull request #7912 from mirumee/SALEOR-4221-Add-celery-beat-to-clear-empty-allocations-in-3.1 (f900529f7)
    • Configure delete empty allocations as periodic task (adf6b794a)
    • Merge pull request #7906 from mirumee/bump-requirements (7615bfc24)
    • Bump dependencies (68f96606c)
    Source code(tar.gz)
    Source code(zip)
  • 3.0.0-b.18(Sep 6, 2021)

  • 3.0.0-b.17(Sep 3, 2021)

  • 3.0.0-b.16(Sep 3, 2021)

    • Fix language codes (#8007) (#8015) (f8f56f44d)
    • Merge pull request #8004 from mirumee/fix_incorrect_tax_calculation_for_avatax_and_jpy_3_0 (71c9b0730)
    • Add workaround for incorrect tax calculation recieved from Avatax (54bab1f22)
    Source code(tar.gz)
    Source code(zip)
  • 3.0.0-b.13.1(Sep 2, 2021)

    • Fix language codes (#8007) (3f326b789)
    • Merge pull request #8006 from mirumee/fix_incorrect_tax_calculation_for_avatax_and_jpy_3_0_b13 (c6e5cb7cd)
    • Add workaround for incorrect tax calculation recieved from Avatax (cb0fbb91b)
    Source code(tar.gz)
    Source code(zip)
  • 3.0.0-b.15(Sep 2, 2021)

Owner
Mirumee Labs
High performance Python, React & React Native applications
Mirumee Labs
Django e-commerce website with Advanced Features and SEO Friendly

MyTechยฎ - Your Technology Django e-commerce website with Advanced Features and SEO Friendly Images and Prices are only used for Demo purpose and does

null 26 Nov 20, 2021
Ella is a CMS based on Python web framework Django with a main focus on high-traffic news websites and Internet magazines.

Ella CMS Ella is opensource CMS based on Django framework, designed for flexibility. It is composed from several modules: Ella core is the main module

null 294 Sep 24, 2020
๐Ÿฐ Bunnybook ๐Ÿฐ A tiny social network (for bunnies), built with FastAPI and React+RxJs.

?? Bunnybook ?? A tiny social network (for bunnies), built with FastAPI and React+RxJs. Click here for live demo! Included features: ?? chat ?? online

Pietro Bassi 108 Nov 22, 2021
Abilian Social Business Engine - an enterprise social networking / collaboration platform.

About Abilian SBE (Social Business Engine) is a platform for social business applications, and more specifically collaborative / enterprise 2.0 busine

Abilian open source projects 51 Nov 11, 2021
Oppia a free, online learning platform to make quality education accessible for all.

Oppia is an online learning tool that enables anyone to easily create and share interactive activities (called 'explorations'). These activities simulate a one-on-one conversation with a tutor, making it possible for students to learn by doing while getting feedback.

Oppia 4.3k Dec 1, 2021
Kotti is a high-level, Pythonic web application framework based on Pyramid and SQLAlchemy. It includes an extensible Content Management System called the Kotti CMS.

Kotti Kotti is a high-level, Pythonic web application framework based on Pyramid and SQLAlchemy. It includes an extensible Content Management System c

Kotti 371 Nov 19, 2021
An open source CMS, in python and integrable in Django

Python CMS based on the Django Framework

Titouan Bรฉnard 0 Sep 10, 2021
A Django-based CMS with a focus on extensibility and concise code

FeinCMS - An extensible Django-based CMS When was the last time, that a pre-built software package you wanted to use got many things right, but in the

FeinCMS 813 Nov 17, 2021
A Django content management system focused on flexibility and user experience

Wagtail is an open source content management system built on Django, with a strong community and commercial support. It's focused on user experience,

Wagtail 11.3k Nov 25, 2021
Simple yet powerful and really extendable application for managing a blog within your Django Web site.

Django Blog Zinnia Simple yet powerful and really extendable application for managing a blog within your Django Web site. Zinnia has been made for pub

Julien Fache 2k Nov 23, 2021
django blog - complete customization and ready to use with one click installer

django-blog-it Simple blog package developed with Django. Features: Dynamic blog articles Blog pages Contact us page (configurable) google analytics S

MicroPyramid 201 Nov 13, 2021
A full stack e-learning application, this is the backend using django restframework and docker.

DevsPrime API API Service backing client interfaces Technologies Python 3.9 : Base programming language for development Bash Scripting : Create conven

Nnabue Favour Chukwuemeka 1 Oct 21, 2021
CMS framework for Django

Created by Stephen McDonald Overview Mezzanine is a powerful, consistent, and flexible content management platform. Built using the Django framework,

Stephen McDonald 4.3k Nov 28, 2021
A Django blog app implemented in Wagtail

Puput Puput is a powerful and simple Django app to manage a blog. It uses the awesome Wagtail CMS as content management system. Puput is the catalan n

APSL 490 Nov 26, 2021
Open Source CRM based on Django

Django-CRM Django CRM is opensource CRM developed on django framework. It has all the basic features of CRM to start with. We welcome code contributio

MicroPyramid 1.2k Nov 25, 2021
Random tarot card generator + rudimentary Django CMS

TAROT JUICER This is a rudimentary Django-based CMS which dynamically presents tarot-related content placed onto unconventional but familiar contexts

Kyle Rafa Lazaro 6 Nov 19, 2021
An encylopedia that runs on Django as part of CS50w's coursework

Django Wiki As part of the CS50w course, this project aims to apply the use of Django together with HTML and CSS to replicate an encyclopedia. Require

Beckham 1 Oct 28, 2021
CMS Detection and Exploitation suite - Scan WordPress, Joomla, Drupal and over 180 other CMSs

What is a CMS? A content management system (CMS) manages the creation and modification of digital content. It typically supports multiple users in a c

null 5 Oct 8, 2021
wger Workout Manager is a free, open source web application that helps you manage your personal workouts, weight and diet plans and can also be used as a simple gym management utility.

wger (หˆvษ›ษกษ) Workout Manager is a free, open source web application that helps you manage your personal workouts, weight and diet plans and can also be used as a simple gym management utility.

wger Project 1.6k Nov 24, 2021