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]

Comments
  • Multi-vendor support

    Multi-vendor support

    Hello , I am very happy to say you that, saleor is very good option for small stores. but i want some more features like multi vendor, multi sellers in single site. multiple sellers can sell the products in one site, As amazon, ebay. Please try to develop these features in simple way, and easily anyone can understand.

    Thank you..

    opened by iamsushanth 68
  • 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.

    stale 
    opened by raybesiga 52
  • 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 40
  • 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
  • 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.) ubuntu@ip-172-31-17-237:~/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
  • 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 stale 
    opened by Jisanbd 33
  • [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 asennoussi 28
  • Lock checkoutComplete, create order from adyen notification

    Lock checkoutComplete, create order from adyen notification

    • refactor checkoutComplete mutation
    • extract whole checkoutComplete logic to separate file
    • use checkout_complete logic to create order from Adyen notification
    • apply lock for handling the adyen notifciation and mutation checkoutComplete
    opened by korycins 26
  • npm run build-assets don't work

    npm run build-assets don't work

    npm run build-assets

    missing script: build-assets did you mean;

    build-schema build-mails

    and when i typing python manage.py runserver only show me

    http://127.0.0.1:8000/graphql/

    what happen?

    opened by valentinc94 26
  • Add new graphql `@stream` and `@defer` support to the saleor graphql server

    Add new graphql `@stream` and `@defer` support to the saleor graphql server

    What I'm trying to achieve

    Split up big queries like the ones for a product overview page with 100 items into many smaller sub queries that load data async.

    Describe a proposed solution

    Add new graphql @stream and @defer support to the saleor graphql server

    Other solutions I've tried and won't work

    Split up into individual queries would work but would increase the amount of work on the client tremendously.

    opened by tilman 0
  • Fix incorrect payment captured amount for Adyen

    Fix incorrect payment captured amount for Adyen

    I want to merge this change because it solves the issue described here: https://github.com/saleor/saleor/issues/11649

    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 korycins 1
  • Bug: Adyen - incorrect balance of the payment

    Bug: Adyen - incorrect balance of the payment

    What are you trying to achieve?

    Order with two payments, where only one is active can show incorrect value as an outstanding balance. Order creation can cause an exception that products are out of stock. Because of this, we can have a payment fully paid, but without an order. Saleor will immediately refund the funds, but if Saleor receive the authorization notification for not active payment it will create a new transaction for it, and increase the payment.captured_amount

    Steps to reproduce the problem

    Reproducing is hard without touching the code.

    • Saleor needs to capture the funds for the checkout
    • it needs to raise an exception that the products are out of stock, and we cant create the order.
    • The out of stock exception will trigger the refund.
    • The notification from Adyen, about authorization, should not increase the amount of payment.captured_amount
    • After receiving Authorize + refund notification, the payment.capture_amount should be 0

    What did you expect to happen?

    Payment.captured_amount should be 0

    Logs

    No response

    Environment

    Saleor version: 3.1.38 OS and version: โ€ฆ

    bug triage 
    opened by korycins 0
  • Fix Adyen authorize notification handler that raises unhandled exception

    Fix Adyen authorize notification handler that raises unhandled exception

    I want to merge this change because it fixes an authorize-handler that was crashing when Saleor tried to create the order but it failed after processing the payment due to missing stock. Currently, we assume that we shouldn't try to create the order if we already stored the transaction with the same pspReference as the one from the notification.

    It covers https://github.com/saleor/saleor/issues/11644

    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 korycins 2
  • Option to complete custom form upon choosing a product

    Option to complete custom form upon choosing a product

    What I'm trying to achieve

    I want to allow a customer to provide inputs to the digital product they select, fields which conditionally cause next fields to show/hide, allow file upload, file download based on options.

    Describe a proposed solution

    Order should contain bundles of inputs, per customized product (downloadable). So that potentially an asset created, based on corresponding inputs, can be sent back to the user in fulfillment of the order.

    Other solutions I've tried and won't work

    It is potentially possible to extend using a plugin. If so I will attempt and link here. Otherwise can't think of any other option.

    Screenshots or mockups

    Demo of similar feature in shopify https://www.variantoptionproductoption.com/collections/examples/products/custom-jersey

    opened by dnk8n 0
  • Prepare for moving orderSettings to Channel

    Prepare for moving orderSettings to Channel

    Preparation to merge https://github.com/saleor/saleor/pull/11417

    Issue: https://github.com/saleor/saleor/issues/11337

    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 kadewu 1
Releases(3.9.12)
  • 3.9.12(Jan 5, 2023)

  • 3.9.11(Jan 4, 2023)

  • 3.9.9(Jan 2, 2023)

    What's Changed

    • Add missing DB index for account private metadata by @tomaszszymanski129 in https://github.com/saleor/saleor/pull/11583
    • Bump pillow to 9.4.0 by @NyanKiyoshi in https://github.com/saleor/saleor/pull/11620

    Full Changelog: https://github.com/saleor/saleor/compare/3.9.8...3.9.9

    Source code(tar.gz)
    Source code(zip)
  • 3.8.23(Jan 2, 2023)

    What's Changed

    • Add missing DB index for account private metadata by @tomaszszymanski129 in https://github.com/saleor/saleor/pull/11582
    • Bump pillow to 9.4.0 by @NyanKiyoshi in https://github.com/saleor/saleor/pull/11619

    Full Changelog: https://github.com/saleor/saleor/compare/3.8.22...3.8.23

    Source code(tar.gz)
    Source code(zip)
  • 3.7.52(Jan 2, 2023)

    What's Changed

    • Add missing DB index for account private metadata by @tomaszszymanski129 in https://github.com/saleor/saleor/pull/11581
    • Bump pillow to 9.4.0 by @NyanKiyoshi in https://github.com/saleor/saleor/pull/11618

    Full Changelog: https://github.com/saleor/saleor/compare/3.7.51...3.7.52

    Source code(tar.gz)
    Source code(zip)
  • 3.6.46(Jan 2, 2023)

    What's Changed

    • Add missing DB index for account private metadata by @tomaszszymanski129 in https://github.com/saleor/saleor/pull/11580
    • Bump pillow to 9.4.0 by @NyanKiyoshi in https://github.com/saleor/saleor/pull/11617

    Full Changelog: https://github.com/saleor/saleor/compare/3.6.45...3.6.46

    Source code(tar.gz)
    Source code(zip)
  • 3.5.48(Jan 2, 2023)

    What's Changed

    • Add missing DB index for account private metadata by @tomaszszymanski129 in https://github.com/saleor/saleor/pull/11579
    • Bump pillow to 9.4.0 by @NyanKiyoshi in https://github.com/saleor/saleor/pull/11616

    Full Changelog: https://github.com/saleor/saleor/compare/3.5.47...3.5.48

    Source code(tar.gz)
    Source code(zip)
  • 3.4.45(Jan 2, 2023)

    What's Changed

    • Add missing DB index for account private metadata by @tomaszszymanski129 in https://github.com/saleor/saleor/pull/11578
    • Bump pillow to 9.4.0 by @NyanKiyoshi in https://github.com/saleor/saleor/pull/11615

    Full Changelog: https://github.com/saleor/saleor/compare/3.4.44...3.4.45

    Source code(tar.gz)
    Source code(zip)
  • 3.3.45(Jan 2, 2023)

    What's Changed

    • Add missing DB index for account private metadata by @tomaszszymanski129 in https://github.com/saleor/saleor/pull/11577
    • Bump pillow to 9.4.0 by @NyanKiyoshi in https://github.com/saleor/saleor/pull/11614

    Full Changelog: https://github.com/saleor/saleor/compare/3.3.44...3.3.45

    Source code(tar.gz)
    Source code(zip)
  • 3.2.31(Jan 2, 2023)

    What's Changed

    • Add missing DB index for account private metadata by @tomaszszymanski129 in https://github.com/saleor/saleor/pull/11576
    • Bump pillow to 9.4.0 by @NyanKiyoshi in https://github.com/saleor/saleor/pull/11613

    Full Changelog: https://github.com/saleor/saleor/compare/3.2.30...3.2.31

    Source code(tar.gz)
    Source code(zip)
  • 3.1.41(Jan 2, 2023)

    What's Changed

    • Bump pillow to 9.4.0 by @NyanKiyoshi in https://github.com/saleor/saleor/pull/11612

    Full Changelog: https://github.com/saleor/saleor/compare/3.1.40...3.1.41

    Source code(tar.gz)
    Source code(zip)
  • 3.9.8(Dec 30, 2022)

  • 3.8.22(Dec 30, 2022)

  • 3.7.51(Dec 30, 2022)

  • 3.6.45(Dec 30, 2022)

  • 3.5.47(Dec 30, 2022)

    Use replicas to fetch discount info (https://github.com/saleor/saleor/pull/11599) by @fowczarek Fix Avalara calculation on digital orders (https://github.com/saleor/saleor/pull/11593) by @fowczarek

    Source code(tar.gz)
    Source code(zip)
  • 3.4.44(Dec 30, 2022)

    Use replicas to fetch discount info (https://github.com/saleor/saleor/pull/11600) by @fowczarek Fix Avalara calculation on digital orders (https://github.com/saleor/saleor/pull/11591) by @fowczarek

    Source code(tar.gz)
    Source code(zip)
  • 3.3.44(Dec 30, 2022)

    Use replicas to fetch discount info (https://github.com/saleor/saleor/pull/11601 ) by @fowczarek Fix Avalara calculation on digital orders (https://github.com/saleor/saleor/pull/11590) by @fowczarek

    Source code(tar.gz)
    Source code(zip)
  • 3.2.30(Dec 30, 2022)

  • 3.1.40(Dec 30, 2022)

  • 3.1.39(Dec 28, 2022)

  • 3.9.7(Dec 21, 2022)

  • 3.9.6(Dec 21, 2022)

    • Fix double avatax requests for created order (#11535) (1e764f49cb)
    • Add ability to set a custom Celery queue for async webhook (#11526) (095a755e98)
    • Fix invalid default values for decimal fields (#11486) (01013dcb19)
    Source code(tar.gz)
    Source code(zip)
  • 3.8.21(Dec 21, 2022)

  • 3.8.20(Dec 21, 2022)

    • Fix double avatax requests for created order (#11536) (2e383ea267)
    • Add ability to set a custom Celery queue for async webhook (#11525) (90b51fce60)
    • Fix invalid default values for decimal fields (#11485) (fdd5f73dd3)
    Source code(tar.gz)
    Source code(zip)
  • 3.7.50(Dec 21, 2022)

  • 3.6.44(Dec 21, 2022)

    • Fix double avatax requests for created order (#11538) (4831d9e773)
    • Add ability to set a custom Celery queue for async webhook (#11523) (873cd5086d)
    Source code(tar.gz)
    Source code(zip)
  • 3.5.46(Dec 21, 2022)

    • Fix double avatax requests for created order (#11539) (ce3a4b60d8)
    • Add ability to set a custom Celery queue for async webhook (#11522) (463a40c681)
    Source code(tar.gz)
    Source code(zip)
  • 3.4.43(Dec 21, 2022)

  • 3.3.43(Dec 21, 2022)

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 28 Dec 21, 2022
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 295 Oct 16, 2022
๐Ÿฐ 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 190 Jan 3, 2023
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 394 Jan 7, 2023
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 63 Dec 29, 2022
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.8k Dec 28, 2022
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 847 Jan 7, 2023
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 13.8k Jan 1, 2023
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 2.1k Dec 24, 2022
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 220 Sep 18, 2022
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.6k Dec 29, 2022
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 535 Jan 8, 2023
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.4k Dec 31, 2022
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 7 Apr 26, 2022
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
Django CMS Project for quicksetup with minimal installation process.

Django CMS Project for quicksetup with minimal installation process.

Dipankar Chowdhury 3 Mar 24, 2022
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 2k Dec 29, 2022