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
Faker is a Python package that generates fake data for you.

Faker is a Python package that generates fake data for you. Whether you need to bootstrap your database, create good-looking XML documents, fill-in yo

Daniele Faraglia 15.2k Jan 01, 2023
Basic implementation of Razorpay payment gateway 💳 with Django

Razorpay Payment Integration in Django 💥 In this project Razorpay payment gateway 💳 is integrated with Django by breaking down the whole process int

ScaleReal 12 Dec 12, 2022
Hello world written in Django.

Learning Django 💡 create a virtual environment create python -m venv ./venv. this virtualenv file will be excluded by .gitignore activate the virtual

Dipak giri 4 Nov 26, 2021
Django Advance DumpData

Django Advance Dumpdata Django Manage Command like dumpdata but with have more feature to Output the contents of the database from given fields of a m

EhsanSafir 7 Jul 25, 2022
Django Simple Spam Blocker is blocking spam by regular expression.

Django Simple Spam Blocker is blocking spam by regular expression.

Masahiko Okada 23 Nov 29, 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 Dec 30, 2022
A pickled object field for Django

django-picklefield About django-picklefield provides an implementation of a pickled object field. Such fields can contain any picklable objects. The i

Gintautas Miliauskas 167 Oct 18, 2022
Automated image processing for Django. Currently v4.0

ImageKit is a Django app for processing images. Need a thumbnail? A black-and-white version of a user-uploaded image? ImageKit will make them for you.

Matthew Dapena-Tretter 2.1k Dec 17, 2022
Djang Referral System

Djang Referral System About | Features | Technologies | Requirements | Starting | License | Author 🎯 About I created django referral system and I wan

Alex Kotov 5 Oct 25, 2022
Drf-stripe-subscription - An out-of-box Django REST framework solution for payment and subscription management using Stripe

Drf-stripe-subscription - An out-of-box Django REST framework solution for payment and subscription management using Stripe

Oscar Y Chen 68 Jan 07, 2023
Utilities to make function-based views cleaner, more efficient, and better tasting.

django-fbv Utilities to make Django function-based views cleaner, more efficient, and better tasting. 💥 📖 Complete documentation: https://django-fbv

Adam Hill 49 Dec 30, 2022
A UUIDField for Django

django-uuidfield Provides a UUIDField for your Django models. Installation Install it with pip (or easy_install): pip install django-uuidfield Usage

David Cramer 265 Nov 30, 2022
Automatically upgrade your Django projects.

django-upgrade Automatically upgrade your Django projects. Installation Use pip: python -m pip install django-upgrade Python 3.8 to 3.10 supported. Or

Adam Johnson 525 Dec 29, 2022
A starter template for building a backend with Django and django-rest-framework using docker with PostgreSQL as the primary DB.

Django-Rest-Template! This is a basic starter template for a backend project with Django as the server and PostgreSQL as the database. About the templ

Akshat Sharma 11 Dec 06, 2022
A django model and form field for normalised phone numbers using python-phonenumbers

django-phonenumber-field A Django library which interfaces with python-phonenumbers to validate, pretty print and convert phone numbers. python-phonen

Stefan Foulis 1.3k Dec 31, 2022
https://django-storages.readthedocs.io/

Installation Installing from PyPI is as easy as doing: pip install django-storages If you'd prefer to install from source (maybe there is a bugfix in

Josh Schneier 2.3k Jan 06, 2023
Improved Django model inheritance with automatic downcasting

Polymorphic Models for Django Django-polymorphic simplifies using inherited models in Django projects. When a query is made at the base model, the inh

1.4k Jan 03, 2023
Realtime data read and write without page refresh using Ajax in Django.

Realtime read-write with AJAX Hey,this is the basic implementation type of ajax realtime read write from the database. where you can insert or view re

Mehedi Hasan 3 Dec 13, 2022
Django application and library for importing and exporting data with admin integration.

django-import-export django-import-export is a Django application and library for importing and exporting data with included admin integration. Featur

2.6k Dec 26, 2022
Django GUID attaches a unique correlation ID/request ID to all your log outputs for every request.

Django GUID Now with ASGI support! Django GUID attaches a unique correlation ID/request ID to all your log outputs for every request. In other words,

snok 300 Dec 29, 2022