E-Commerce Platform

Overview
https://travis-ci.org/shuup/shuup.svg?branch=master https://coveralls.io/repos/github/shuup/shuup/badge.svg?branch=master PyPI Known Vulnerabilities

Shuup

Shuup is an Open Source E-Commerce Platform based on Django and Python.

https://shuup.com/

Copyright

Copyright (c) 2012-2021 by Shuup Commerce Inc. <[email protected]>

Shuup is International Registered Trademark & Property of Shuup Commerce Inc., Business ID: BC1126729, Business Address: 1500 West Georgia Suite 1300, Vancouver, BC, V6G-2Z6, Canada.

CLA

Contributor License Agreement is required for any contribution to this project. Agreement is signed as a part of pull request process. See the CLA.rst file distributed with Shuup.

License

Shuup is published under Open Software License version 3.0 (OSL-3.0). See the LICENSE file distributed with Shuup.

Some external libraries and contributions bundled with Shuup may be published under other compatible licenses. For these, please refer to VENDOR-LICENSES.md file in the source code tree or the licenses included within each package.

Chat

We have a Gitter chat room for Shuup. Come chat with us! Join chat

Docker quick start

Fastest way to get Shuup up and running is to use Docker.

  1. Run:

    docker-compose up
  2. Open localhost:8000/sa in a browser, log in with username: admin password: admin

Full Shuup installation guide

See Getting Started.

For simple project example see our Django-project template.

Getting Started with Shuup development

See Getting Started with Shuup Development.

Contributing to Shuup

Interested in contributing to Shuup? Please see our Contribution Guide.

Documentation

Shuup documentation is available online at Read the Docs.

Documentation is built with Sphinx.

Issue the following commands to build the documentation:

pip install -r requirements-doc.txt
cd doc && make html

To update the API documentation rst files, e.g. after adding new modules, use command:

./generate_apidoc.py

Roadmap

v3 (early 2021)

  • Initial Django 3.x support
  • Latest Jinja support
  • Deprecate theme folders under Shuup front which are used to override individual macros in macro folders. This does not work well with latest Jinja and adds extra complexity.

v4 (mid 2021)

  • Move Shuup front, xtheme and theming features to own addons. This so that projects not ready for updating theme or front can still get latest Shuup.
  • Introduce new default theme and overhaul templates structure to be more simple (likely Bootstrap 5 will be used).
  • Bump admin Bootstrap version to match with the new front
  • Move various other not essential apps in this repository to addons for better version management.

Additional Material

Admin Preview

doc/_static/admin_shop_product.png doc/_static/admin_order_detail.png
Comments
  • Rework `SimplePricing` and pricing in general

    Rework `SimplePricing` and pricing in general

    Add PriceInfo to simplify price handling Add prices_include_tax into Shop

    The idea behind this change is that ShopProduct determines the default price of the product. Templates should only use PriceInfo the pricing module offers thru Product. SimplePricing adds Customer Group Specific pricing on top of that.

    SimplePricing continues to return lowest possible price for ShopProduct

    NOTE: The changes in Product.get_base_price will cause backwards incompability.

    Refs SHOOP-514

    opened by Pikkupomo 34
  • Can't find manage.py file anywhere

    Can't find manage.py file anywhere

    Hi there, I've just installed shuup from pip and cloned the repo hence installed all requirements plus node modules too. But after I looked for the manage.py file but I can't find it. Did I miss something.

    question 
    opened by mdnur89 23
  • Refactor campaign effects (SHUUP-2824)

    Refactor campaign effects (SHUUP-2824)

    Campaigns gave the end results directly from campaign, this is not a good long term solution.

    Refactored campaigns so that effects can be created separately from campaigns itself.

    Refs SHUUP-2824

    opened by Pikkupomo 21
  • Core: option to create payments with REST API

    Core: option to create payments with REST API

    • Add create_payment detail route to OrderViewSet
    • Add custom PaymentSerializer with amount_value, currency, payment_identifier and description as fields.

    Refs SHOOP-2117 / SHOOP-1973

    opened by tulimaki 21
  • Xtheme editor

    Xtheme editor

    So here's an editor for #84 :)

    The editor UI is ugly, yes, but I assume @juhakujala will fix it all up...

    Ps.: There's a partially pluginified version of the current default theme available here: https://github.com/akx/shoop/tree/xtheme-test-theme

    enhancement 
    opened by akx 21
  • CORE Overwrite empty language fields with default value (SH-90)

    CORE Overwrite empty language fields with default value (SH-90)

    When a user completes a form that includes translatable fields (e.g. Product) and only fill out the default language portion (e.g. English) the form will fill out the other language fields with that of the english. This fix is meant to address limitations in django-parlers own fallback mechanism.

    This commit also includes a new management command shuup_fallback_language that will perform the same functionality on existing models. It's meant to be ran only once as a migration step.

    opened by hrayr-artunyan 20
  • Add basic reporting core to Shuup (SHUUP-2085)

    Add basic reporting core to Shuup (SHUUP-2085)

    Add Total Sales report Add Sales Report Add Sales per Hour report Move pdf tools from order printouts to shuup/utils Testing: Cache prices when creating order with product

    Refs SHUUP-2085

    opened by Pikkupomo 16
  • Tax clean-up and refactoring (SHOOP-975)

    Tax clean-up and refactoring (SHOOP-975)

    Main part of all this goes to refactoring everything to use Shop.create_price. That should prevent taxful/taxless price mismatches in a Shop.

    Prices and other money amounts are now passed as Money and Price objects in the code, which ensures some more type safety. Yeppee!

    TaxModule API was rethought through and got some changes.

    OrderSource, BaseBasket and StoredBasket now have the price unit (=currency+taxfullness) stored in them to avoid mixing units after a basket load.

    Calculation of taxes is made more explicit in OrderSource API.

    Made OrderLine, SourceLine and PriceInfo to use unified API for price fields (named Priceful). This should help when implementing template helpers for rendering prices taxful/taxless depending on user's/merchant's preference (Shop's taxfullness could differ from rendering taxfullnes as long as TaxModule may calculate taxes efficiently, which of course is not always true though.)

    There is some small fixes and refactorings included here and there for some things I found out while implementing this. Hope you don't mind.

    TODO:

    • Assigning customers to correct tax groups on creation (retail customers and company customers)
    • Implementing value-added taxes correctly (i.e. not just selecting the first tax, but actually adding them together)
    • The taxful/taxless price rendering stuff as said above.
    • Cleaning up the TODOs
    • Documentation of the whole system (for developers and for merchants)

    Good luck reviewing! Have fun!

    opened by suutari-ai 16
  • Admin: Add carts module for monitoring abandoned carts

    Admin: Add carts module for monitoring abandoned carts

    Add an admin carts module that allows merchants to monitor abanded user carts, total sales, date since last update, and other useful information.

    Refs SHOOP-2237

    opened by shawnadelic 15
  • Core changes for campaigns (SHOOP-2045)

    Core changes for campaigns (SHOOP-2045)

    This PR picks most of the code from PR #317, but some terminology is changed and tests added, documentation improved etc.

    See the commit messages and change log for details.

    opened by suutari-ai 15
  • Telemetry Sender

    Telemetry Sender

    Implements an opt-in-by-default telemetry sender.

    The receiving side is still missingcurrently in PR review, so this doesn't do much except slow down loading of the admin dashboard for a few seconds every 72 hours.

    opened by akx 15
  • Bump certifi from 2021.5.30 to 2022.12.7

    Bump certifi from 2021.5.30 to 2022.12.7

    Bumps certifi from 2021.5.30 to 2022.12.7.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies python 
    opened by dependabot[bot] 1
  • Bump pillow from 8.2.0 to 9.3.0

    Bump pillow from 8.2.0 to 9.3.0

    Bumps pillow from 8.2.0 to 9.3.0.

    Release notes

    Sourced from pillow's releases.

    9.3.0

    https://pillow.readthedocs.io/en/stable/releasenotes/9.3.0.html

    Changes

    ... (truncated)

    Changelog

    Sourced from pillow's changelog.

    9.3.0 (2022-10-29)

    • Limit SAMPLESPERPIXEL to avoid runtime DOS #6700 [wiredfool]

    • Initialize libtiff buffer when saving #6699 [radarhere]

    • Inline fname2char to fix memory leak #6329 [nulano]

    • Fix memory leaks related to text features #6330 [nulano]

    • Use double quotes for version check on old CPython on Windows #6695 [hugovk]

    • Remove backup implementation of Round for Windows platforms #6693 [cgohlke]

    • Fixed set_variation_by_name offset #6445 [radarhere]

    • Fix malloc in _imagingft.c:font_setvaraxes #6690 [cgohlke]

    • Release Python GIL when converting images using matrix operations #6418 [hmaarrfk]

    • Added ExifTags enums #6630 [radarhere]

    • Do not modify previous frame when calculating delta in PNG #6683 [radarhere]

    • Added support for reading BMP images with RLE4 compression #6674 [npjg, radarhere]

    • Decode JPEG compressed BLP1 data in original mode #6678 [radarhere]

    • Added GPS TIFF tag info #6661 [radarhere]

    • Added conversion between RGB/RGBA/RGBX and LAB #6647 [radarhere]

    • Do not attempt normalization if mode is already normal #6644 [radarhere]

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies python 
    opened by dependabot[bot] 1
  • Bump lxml from 4.6.3 to 4.9.1

    Bump lxml from 4.6.3 to 4.9.1

    Bumps lxml from 4.6.3 to 4.9.1.

    Changelog

    Sourced from lxml's changelog.

    4.9.1 (2022-07-01)

    Bugs fixed

    • A crash was resolved when using iterwalk() (or canonicalize()) after parsing certain incorrect input. Note that iterwalk() can crash on valid input parsed with the same parser after failing to parse the incorrect input.

    4.9.0 (2022-06-01)

    Bugs fixed

    • GH#341: The mixin inheritance order in lxml.html was corrected. Patch by xmo-odoo.

    Other changes

    • Built with Cython 0.29.30 to adapt to changes in Python 3.11 and 3.12.

    • Wheels include zlib 1.2.12, libxml2 2.9.14 and libxslt 1.1.35 (libxml2 2.9.12+ and libxslt 1.1.34 on Windows).

    • GH#343: Windows-AArch64 build support in Visual Studio. Patch by Steve Dower.

    4.8.0 (2022-02-17)

    Features added

    • GH#337: Path-like objects are now supported throughout the API instead of just strings. Patch by Henning Janssen.

    • The ElementMaker now supports QName values as tags, which always override the default namespace of the factory.

    Bugs fixed

    • GH#338: In lxml.objectify, the XSI float annotation "nan" and "inf" were spelled in lower case, whereas XML Schema datatypes define them as "NaN" and "INF" respectively.

    ... (truncated)

    Commits
    • d01872c Prevent parse failure in new test from leaking into later test runs.
    • d65e632 Prepare release of lxml 4.9.1.
    • 86368e9 Fix a crash when incorrect parser input occurs together with usages of iterwa...
    • 50c2764 Delete unused Travis CI config and reference in docs (GH-345)
    • 8f0bf2d Try to speed up the musllinux AArch64 build by splitting the different CPytho...
    • b9f7074 Remove debug print from test.
    • b224e0f Try to install 'xz' in wheel builds, if available, since it's now needed to e...
    • 897ebfa Update macOS deployment target version from 10.14 to 10.15 since 10.14 starts...
    • 853c9e9 Prepare release of 4.9.0.
    • d3f77e6 Add a test for https://bugs.launchpad.net/lxml/+bug/1965070 leaving out the a...
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies python 
    opened by dependabot[bot] 2
  • Bump django from 2.2.24 to 2.2.28

    Bump django from 2.2.24 to 2.2.28

    Bumps django from 2.2.24 to 2.2.28.

    Commits
    • 5c33000 [2.2.x] Bumped version for 2.2.28 release.
    • 29a6c98 [2.2.x] Fixed CVE-2022-28347 -- Protected QuerySet.explain(**options) against...
    • 2c09e68 [2.2.x] Fixed CVE-2022-28346 -- Protected QuerySet.annotate(), aggregate(), a...
    • 8352b98 [2.2.x] Added stub release notes for 2.2.28.
    • 2801f29 [2.2.x] Reverted "Fixed forms_tests.tests.test_renderers with Jinja 3.1.0+."
    • e03648f [2.2.x] Fixed forms_tests.tests.test_renderers with Jinja 3.1.0+.
    • 9d13d8c [2.2.x] Fixed typo in release notes.
    • 047ece3 [2.2.x] Added CVE-2022-22818 and CVE-2022-23833 to security archive.
    • 2427b2f [2.2.x] Post-release version bump.
    • e541f2d [2.2.x] Bumped version for 2.2.27 release.
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies python 
    opened by dependabot[bot] 2
Releases(v3.1.0)
  • v3.1.0(Aug 17, 2021)

    Changed

    • Pull translations from Transifex
    • BREAKING: Suppliers with no supplier modules cannot create shipments
    • Core: Category.get_hierarchy now ignores any None objects

    Fixed

    • Core: fix reindex migration to active the default language
    Source code(tar.gz)
    Source code(zip)
  • v2.14.3(Aug 17, 2021)

    Changed

    • Core: Category.get_hierarchy now ignores any None objects

    Fixed

    • Admin: Fix primary buttons, list buttons, and filter dropdowns to use css variables
    Source code(tar.gz)
    Source code(zip)
  • v3.0.0(Aug 16, 2021)

    Added

    • Core: allow saving encrypted configurations
    • Core: add new Catalog API to index and fetch products with annotated price and discounted price

    Fixed

    • Admin: do not break when it's not possible to create shipments
    • Admin: Fix primary buttons, list buttons, and filter dropdowns to use css variables
    • Discounts: show the exclude_selected_category field in admin

    Changed

    • Admin: Do not let users to set value with decimals while adjusting stock quantity if the sales unit doesn't permit.
    • Core: Block an attempt to delete a service provider that still has associated shipping or payment methods.
    • Core: consider an order fully shipped only when all out shipments are sent
    • Front: improve SEO by tuning description meta tag to product, category and CMS pages
    • Importer: index product after importing it
    • BREAKING: Core: Discounts are not cumulative anymore. The best discounted price returned by discount modules is considered.
    • BREAKING: Discounts: Remove coupon code, availability exception and exclude selected contact group from the Discount model. All the related feature were also removed.
    • BREAKING: Front: replaced the ProductListFormModifier.sort_products with a new method: ProductListFormModifier.sort_products_queryset and removed ProductListFormModifier.filter_products and ProductListFormModifier.filter_products and ProductListFormModifier.get_queryset.
    • Front: user the new Catalog API on every place that retrieve products from the database
    • Xtheme: user the new Catalog API on plugins that retrieve products
    • Core: Edit verbose name for ProductMedia.ordering to be more intuitive.
    Source code(tar.gz)
    Source code(zip)
  • v3.0.0b3(Aug 12, 2021)

  • v3.0.0b2(Aug 10, 2021)

  • v2.14.2(Aug 10, 2021)

  • v3.0.0b1(Aug 10, 2021)

  • v2.14.1(Aug 4, 2021)

    Fixed

    • Admin: add model attribute to BaseAdminObjectSelector
    • Admin: Title to use the shop's requst.shop.public_name value or Shuup as default
    Source code(tar.gz)
    Source code(zip)
  • v2.14.0(Aug 3, 2021)

    Added

    • Admin: add new provides admin_template_injector that allows injection snippet in admin templates

    Fixed

    • Admin: Uploaded shop logo and favicon is updated in admin and auth views

    Changed

    • Admin: Overhaul the model selector view in admin to accept generic searches through provides system.
    • Admin: Migrate primary, secondary, success, danger, and text color SCSS variables to CSS variables
    • Admin: Made active state side menu list icon share same color as text
    • Admin: Made the CSS variables stem from initialized Sass variables in Colors object
    • Xtheme: Add typography models
    Source code(tar.gz)
    Source code(zip)
  • v2.13.0(Jul 27, 2021)

    Changed

    • GDPR: allow provides to extend the user data serialization
    • Admin: remove the members field from the permission groups
    • Admin: add the groups field in user picotable list
    • Admin: improve the format of the user list for mobile devices

    Fixed

    • Core: Fix basket quantity for parent package products
    • Reports: prevent tables from overflowing to the right in pdf reports
    • Core: don't make attribute choices required fields
    • Front: enforce setting the current customer to the basket
    • Admin: fix crash when viewing an order with a shipment_method without a carrier defined

    Added

    • Tasks: trigger a notification event when a task is created
    • Admin: add warnings to the product page through provides
    • Core: add history for order status changes
    Source code(tar.gz)
    Source code(zip)
  • v2.12.0(Jul 15, 2021)

    Fixed

    • Front: SupplierProductListFilter to take all vendors from the category and all sub categories
    • Front: Fix the alert class when it is an error
    • Xtheme: only use the id attribute if the variable is a Product instance in Async Product Cross Sells plugin
    • Reports: do not catch generic Exception to prevent hiding other issues

    Changed

    • Core: reuse existing ProductVariationResult when a combination hash matches

    Added

    • Front: add timezone view to save the user's current timezone
    Source code(tar.gz)
    Source code(zip)
  • v2.11.0(Jul 7, 2021)

    Added

    • GDPR: create a snippet blocker to prevent injection when cookie is not consented
    • Xtheme: create xtheme_snippet_blocker provides to allow blocking a global script injection
    • Xtheme: add name a Snippet object
    • Reports: add CSV report writer

    Fixed

    • Front: fix so orders that are canceled can't be payed for
    • General: fix critical vulnerability on views that were returning not escaped content making it open to XSS attacks
    • Admin: fix code mirror destruction by node id

    Changed

    • Reports: clean malicius content from the HTML and CSV exporters
    • Reports: prevent formulas from being exported in excel writer
    • Tests: log errors into a log file
    • Admin: hide email template button based on permission
    • Reports: improve log when an importer fails
    Source code(tar.gz)
    Source code(zip)
  • v2.10.8(Jun 30, 2021)

  • v2.10.7(Jun 29, 2021)

  • v2.10.6(Jun 25, 2021)

    Fixed

    • Core: fix service components get cost
    • Utils: fix MultiLanguageModelForm so language dependent filed will only be required if the language is required
    Source code(tar.gz)
    Source code(zip)
  • v2.10.5(Jun 22, 2021)

  • v2.10.4(Jun 21, 2021)

  • v2.10.3(Jun 15, 2021)

  • v2.10.2(Jun 11, 2021)

  • v2.10.1(Jun 7, 2021)

  • v2.10.0(Jun 7, 2021)

    Removed

    • Admin: remove the provides to allow adding extra fields to the Attribute form

    Add

    • Core: Allow a supplier to have multiple modules
    • Core: add option to store tasks in the database to collect results

    Changed

    • General: pull translation strings from Transifex
    • Admin: filter products in list and edit views according to product kind listing name
    • Core: suppliers don't have default supplier modules anymore
    • Importers: enable importers to run asynchronously
    • Importers: change the admin views to show the list of import processes

    Fixed

    • Admin: fix picotable overflow issue
    • Notify: always overrride the current notification data with the new one
    Source code(tar.gz)
    Source code(zip)
  • v2.10.0b1(Jun 2, 2021)

  • v2.9.2(May 26, 2021)

    Fixed

    • General: replace hash() with sha1() as Python's hash() function doesn't have a stable result across processes
    • Core: use SHA-1 to hash cache keys as Python's hash() function doesn't have a stable result across processes

    Changed

    • Cache product orderability and prices using a list of user groups instead of per contact
    • Pull translation strings from Transifex
    Source code(tar.gz)
    Source code(zip)
  • 2.9.1(May 24, 2021)

  • v2.9.0(May 19, 2021)

    Added

    • Admin: add a method in AdminModule that allows returning help texts for permissions

    Fixed

    • Notify: add notify styles to the script editor iframe to fix email editor size
    • Importer: use more bites in order to detect csv dialect in importer
    • Admin: save the current user menu using the current language

    Changed

    • Pull DE translations from Transifex
    • Xtheme: allow async plugin to have orderable only flag set
    • Xtheme: use the current language as part of the plugins cache key
    Source code(tar.gz)
    Source code(zip)
  • v2.8.3(May 17, 2021)

    Fixed

    • Xtheme: use the context while generating the cache key
    • Xtheme: do not crash the whole site when a plugin fails to render
    • Admin: Force to parse reason as string before encoding the url
    Source code(tar.gz)
    Source code(zip)
  • v2.8.2(May 17, 2021)

    Fixed

    • Admin: force escape help texts which can contain " characters
    • Admin: show translation fields from all polymorphic models available
    • Xtheme: hash the cache key to prevent strings larger then 250 chars
    Source code(tar.gz)
    Source code(zip)
  • v2.8.1(May 17, 2021)

  • v2.8.0(May 11, 2021)

    Changed

    • General: make some plugins cacheable
    • Xtheme: add attribute on every plugin to indicate whether it can be cached or not

    Removed

    • Xtheme: removed the SHUUP_XTHEME_USE_PLACEHOLDER_CACHE setting and do not cache the entire placeholder content

    Fixed

    • Core: implement choice attribute getter and setter correctly
    • Admin: collect translation strings from Shepard Tour
    Source code(tar.gz)
    Source code(zip)
  • v2.7.3(May 11, 2021)

    Fixed

    • Admin: use correct translated label syntax for form fields
    • Front: Remove untranslated Error! prefix in alert messages
    • Campaigns: fix the translation string format

    Changed

    • General: use gettext_lazy to make sure translations work
    • Front: unify the Customer Information title across the dashboard
    • Front: bump bootstrap-select and use translated strings while initializing it
    Source code(tar.gz)
    Source code(zip)
Owner
Shuup
Open Source E-Commerce
Shuup
Portfolio and E-commerce site built on Python-Django and Stripe checkout

StripeMe Introduction Stripe Me is an e-commerce and portfolio website offering communication services, including web-development, graphic design and

3 Jul 05, 2022
A modular, high performance, headless e-commerce platform built with Python, GraphQL, Django, and React.

Saleor Commerce Customer-centric e-commerce on a modern stack A headless, GraphQL commerce platform delivering ultra-fast, dynamic, personalized shopp

Saleor Commerce 17.7k Jan 01, 2023
An eBay-like e-commerce auction site that will allow users to post auction listings, place bids on listings, comment on those listings, and add listings to a watchlist.

e-commerce-auction-site This repository is my solution to Commerce project of CS50’s Web Programming with Python and JavaScript course by Harvard. 🚀

3 Sep 03, 2022
Ecommerce for Mezzanine

Created by Stephen McDonald Overview Cartridge is a shopping cart application built using the Django framework. It is BSD licensed, and designed to pr

Stephen McDonald 680 Jan 03, 2023
Foreign exchange rates, Bitcoin price index and currency conversion using ratesapi.io

forex-python Forex Python is a Free Foreign exchange rates and currency conversion. Note: Install latest forex-python==1.1 to avoid RatesNotAvailableE

MicroPyramid 540 Jan 05, 2023
A web application to search for input products across several supermarkets' e-commerce to return price, detail of products running on Python.

Price Checker A web application to search for input products across several supermarkets' e-commerce to return price, detail of products. Requirements

3 Jun 28, 2022
PVE with tcaledger app for payments and simulation of payment requests

tcaledger PVE with tcaledger app for payments and simulation of payment requests. The purpose of this API is to empower users to accept cryptocurrenci

3 Jan 29, 2022
A Django app to accept payments from various payment processors via Pluggable backends.

Django-Merchant Django-Merchant is a django application that enables you to use multiple payment processors from a single API. Gateways Following gate

Agiliq 997 Dec 24, 2022
Python money class with optional CLDR-backed locale-aware formatting and an extensible currency exchange solution.

Python Money Money class with optional CLDR-backed locale-aware formatting and an extensible currency exchange solution. This is version 1.4.0-dev. De

Carlos Palol 214 Dec 22, 2022
Django_E-commerce - an open-source ecommerce platform built on the Django Web Framework.

Django E-commerce Django-ecommerce is an open-source ecommerce platform built on the Django Web Framework. Demo Homepage Cartpage Orderpage Features I

Biswajit Paloi 6 Nov 06, 2022
Domain-driven e-commerce for Django

Domain-driven e-commerce for Django Oscar is an e-commerce framework for Django designed for building domain-driven sites. It is structured such that

Oscar 5.6k Dec 30, 2022
imager is a modern ecommerce & social network platform that helps users to find the most matching products

imager is a modern ecommerce & social network platform that helps users to find the most matching products. Users can follow their favourite brands and to be aware of friends' actions. If you have se

Sardor 1 Jan 11, 2022
A Django e-commerce website

BRIKKHO.com E-commerce website created with Django Run It: Clone the project or download as zip: $ git clone https://github.com/FahadulShadhin/brikkho

Shadhin 1 Dec 17, 2021
Storefront - An E-commerce StoreFront Application Built With Python

An E-commerce StoreFront Application A very robust storefront project. This is a

Fachii Felix Zasha 1 Apr 04, 2022
Currency Conversion in Python

CurrencyConversion connect to an API to do currency conversions, save as json text or screen output exchangeratesAPI.py -h Exchange Rates via 'api.cur

soup-works 1 Jan 29, 2022
Re-write of floppshop e-commerce site

Floppshop V2 Python: 3.9.5 FastAPI: 0.68 Tortoise-orm: 0.17.8 pytest: 5.2 PostgreSQL: 13.4 Setup Srak jak nie wiesz jak Clone repository $ git clone

jakub-figat 3 Nov 30, 2022
Fully functional ecommerce website with user and guest checkout capabilities and Paypal payment integration.

ecommerce_website Fully functional ecommerce website with user and guest checkout capabilities and Paypal payment integration. pip install django pyth

2 Jan 05, 2022
An Unofficial Alipay API for Python

An Unofficial Alipay API for Python Overview An Unofficial Alipay API for Python, It Contain these API: Generate direct payment url Generate partner t

Eric Lo 321 Dec 24, 2022
A Django based shop system

django-SHOP Django-SHOP aims to be a the easy, fun and fast e-commerce counterpart to django-CMS. Here you can find the full documentation for django-

Awesto 2.9k Jan 02, 2023
E-Commerce Platform

Shuup Shuup is an Open Source E-Commerce Platform based on Django and Python. https://shuup.com/ Copyright Copyright (c) 2012-2021 by Shuup Commerce I

Shuup 2k Dec 30, 2022