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 (Q4 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 (Q1 2022)

  • 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
django-reversion is an extension to the Django web framework that provides version control for model instances.

django-reversion django-reversion is an extension to the Django web framework that provides version control for model instances. Requirements Python 3

Dave Hall 2.8k Jan 02, 2023
A small Django app to easily broadcast an announcement across a website.

django-site-broadcasts The site broadcast application allows users to define short messages and announcements that should be displayed across a site.

Ben Lopatin 12 Jan 21, 2020
scaffold django rest apis like a champion 🚀

dr_scaffold Scaffold django rest apis like a champion ⚡ . said no one before Overview This library will help you to scaffold full Restful API Resource

Abdenasser Elidrissi 133 Jan 05, 2023
User Authentication In Django/Ajax/Jquery

User Authentication In Django/Ajax/Jquery Demo: Authentication System Using Django/Ajax/Jquery Demo: Authentication System Using Django Overview The D

Suman Raj Khanal 10 Mar 26, 2022
DRF_commands is a Django package that helps you to create django rest framework endpoints faster using manage.py.

DRF_commands is a Django package that helps you to create django rest framework endpoints faster using manage.py.

Mokrani Yacine 2 Sep 28, 2022
TinyApp - A Python (Django) Full Stack Application for shortening URLs

TinyApp A Python (Django) Full Stack Application for shortening URLs. How to sta

Li Deng 1 Jan 23, 2022
Django-powered application about blockchain (bitcoin)

Django-powered application about blockchain (bitcoin)

Igor Izvekov 0 Jun 23, 2022
Simple API written in Python using FastAPI to store and retrieve Books and Authors.

Simple API made with Python FastAPI WIP: Deploy in AWS with Terraform Simple API written in Python using FastAPI to store and retrieve Books and Autho

Caio Delgado 9 Oct 26, 2022
Simple Login Logout System using Django, JavaScript and ajax.

Djanog-UserAuthenticationSystem Technology Use #version Python 3.9.5 Django 3.2.7 JavaScript --- Ajax Validation --- Login and Logout Functionality, A

Bhaskar Mahor 3 Mar 26, 2022
A Django app to initialize Sentry client for your Django applications

Dj_sentry This Django application intialize Sentry SDK to your Django application. How to install You can install this packaging by using: pip install

Gandi 1 Dec 09, 2021
A Django backed for PostgreSQL using Psycopg 3

A Django backend for PostgreSQL using Psycopg 2 The backend passes the entire Django test suite, but it needs a few modifications to Django and to i

Daniele Varrazzo 42 Dec 16, 2022
A slick ORM cache with automatic granular event-driven invalidation.

Cacheops A slick app that supports automatic or manual queryset caching and automatic granular event-driven invalidation. It uses redis as backend for

Alexander Schepanovski 1.7k Jan 03, 2023
Django web apps for managing schedules.

skdue Description Skdue is a web application that makes your life easier by helping you manage your schedule. With the ability which allows you to cre

Patkamon_Awai 1 Jun 30, 2022
Utilities for implementing a modified pre-order traversal tree in django.

django-mptt Utilities for implementing Modified Preorder Tree Traversal with your Django Models and working with trees of Model instances. Project hom

2.7k Jan 01, 2023
A CTF leaderboard for the submission of flags during a CTF challenge. Built using Django.

🚩 CTF Leaderboard The goal of this project is to provide a simple web page to allow the participants of an CTF to enter their found flags. Also the l

Maurice Bauer 2 Jan 17, 2022
With Django Hijack, admins can log in and work on behalf of other users without having to know their credentials.

Django Hijack With Django Hijack, admins can log in and work on behalf of other users without having to know their credentials. Docs 3.x docs are avai

1.2k Jan 05, 2023
Django Girls Tutorial Workshop

Django Girls Tutorial Workshop A log of activities during the workshop. this is an H2 git remote add origin https://github.com/ahuimanu/django_girls_t

Jeffry Babb 1 Oct 27, 2021
Django Phyton Web Apps template themes

Django Phyton Web Apps template themes Free download source code project for build a modern website using django phyton web apps. Documentation instal

Mesin Kasir 4 Dec 15, 2022
django-compat-lint

django_compat_lint -- check Django compatibility of your code Django's API stability policy is nice, but there are still things that change from one v

James Bennett 40 Sep 30, 2021
Django CRUD REST API Generator

Django CRUD REST API Generator This is a simple tool that generates a Django REST API with the given models. Specs: Authentication, DRF generic views,

Mehmet Alp Sümer 57 Nov 24, 2022