Shoop Change Log

Shoop 4.0.0

Released on 2016-06-29 21:30 +0300.


  • Fix bug: Category model is missing MPTT ordering options
  • Add staff only behavior component
  • Add refund-related methods to Order
  • Add OrderLineType.REFUND enum type
  • Update order phone max length to 64 characters
  • Add cash payment method
  • Add rounding behavior component
  • Add contact group availability behavior component
  • Fix bug: Do not display decimal values in scientific notation
  • Fix bug: Taxes of child order lines are filled incorrectly
  • Fix bug: Order line parent lines are not linked
  • Add modified on for Order
  • Add modified by for Order and OrderSource
  • Add get_company_contact to shoop.core.models
  • Implement taxing of lines without tax class
  • Add new abstract method get_taxed_price to TaxModule
  • Add ShopProduct.is_visible
  • Add Order.can_edit
  • Update shipping status correctly in Order.create_shipment
  • Add OrderModifier for modifying orders with OrderSource
  • Add option use Order.create_shipment with unsaved Shipment
  • Add identifier for Shipment
  • Fix bug: Fix max length for service method names for Order
  • Make Order.create_payment also do status update for partially paid
  • Add get_total_unpaid_amount method to Order
  • Add is_canceled and can_set_canceled to Order
  • Fix bug: Convert Shipment weight to kilograms
  • Make create_shipment for order atomic
  • Add shipment_created signal
  • Add get_tracking_codes to shoop.core.models.Order
  • Add weight based pricing behavior component
  • Add total_gross_weight property for Source
  • Fix bug: Order line text is not set for package products
  • Add new Service API and implement shipping and payments with it
  • Remove BaseMethodModule based API (shoop.core.methods)
  • Add support for custom user model (AUTH_USER_MODEL)
  • Add management command to generate bought with relations
  • Add merchant_notes text-field to Contact
  • Add first_name and last_name fields to PersonContact
  • Add bought with relation to ProductCrossSellType
  • Set customer marketing permission while creating order
  • Disable delete for default contact groups
  • Allow storing price display options to contact groups
  • Add template tags for rendering prices with context specific price display options (pretax or with taxes, or hide prices totally)
  • Fix bug: OrderSource.tax_amount always returned zero price
  • Add contacts automatically to type specific default groups
  • OrderCreator no longer requires a request
  • Add order_creator_finished signal under order_creator
  • Move calculate_taxes_automatically from OrderSource to TaxModule
  • Add shop product validation for OrderSource
  • Add option to create payments with REST API
  • Add contact address for Shop
  • Add update_stock calls for SimpleSupplierModule
  • Rename CAMPAIGN in OrderLineType enum to DISCOUNT
  • Add OrderSourceModifierModule interface for modifying order source
  • Add DiscountModule interface for pricing
  • Simplify PricingContext and require shop and customer for it
  • Add get_price_info etc. functions to shoop.core.pricing
  • Add get_suppliable_products to shoop.core.models.Supplier
  • Add “codes” API to OrderSource and BaseBasket


  • Add Brazilian Portuguese translations (pt_BR)


  • Add refund creator to order admin
  • Add customer detail view to order creator
  • Define module-level permissions for all admin modules
  • Enable adding of permission groups from users admin
  • Add admin module for managing Django permission groups
  • Add get_required_permission to AdminModule
  • Add support for module-level permissions
  • Use Select2MultipleField for handling contact members
  • Add Select2MultipleField
  • Add account manager for contact
  • Add PersonContact choice widget
  • Add barcode filter to product list view
  • Show stock in order creator
  • Fix bug: Fix decimal precision issues on order creation
  • Enable order creation for contact from contact detail view
  • Fix bug: Refresh order lines when customer is changed during order creation
  • Add default is_active filter to Contact and User admins
  • Enable default values for ChoiceFilter
  • Enable contact activation/deactivation
  • Allow contact adding and removing for company
  • Show companies in person contact edit page
  • Add target option to SearchResult
  • Filter contacts with group in contact list view
  • Hide group members from contact group edit view
  • Remove support for select pickers
  • Enable multiselect dropdown with Select2
  • Enable adding log entries to orders
  • Enable order editing
  • Allow shipment creation form extensions
  • Add payment creation view to Order admin
  • Enable order cancelation in Order edit view
  • Hide invalid choices for package products
  • Fix bug: Fix convert to parent menu items in EditProductToolbar
  • Show tracking codes in order detail
  • Fix bug: Show package siblings for variation children
  • Fix bug: Detail page of contact with multiple groups fails on Python 3
  • Enable add/edit for weight based behavior component through service admin
  • Add admin_contact_group_form_part provider for ContactGroup admin
  • Redo shipping and payment method management
  • Add service provider management
  • Add package mode for products
  • Enable merchant notes editing for contacts
  • Add option to add extra form parts to Shop edit view
  • Enable delete for contact groups
  • Make all enabled shipping and payment methods available in order creator
  • Check product quantities in order creation
  • Add option to add action buttons to Order edit view


  • Enable upgrade, migrations and collectstatic from admin
    • Has a known problem in reloading application server.


  • Initialize checkout addresses from customer data
  • Logout users linked to inactive contact
  • Allow user to change password from account settings
  • Add login check for inactive contacts
  • Remove “Ordering for company” from checkout if logged in
  • Allow user to link company contact from account page
  • Log-in as company if user is a member of a company
  • Make get_product_cross_sells faster
  • Make get_best_selling_products faster
  • Make get_visible_products faster
  • Fix bug with multiple service checkout phases
  • Update UI for package products
  • Support also django-registration-redux 1.4
  • Enable description and logo for methods in checkout
  • Add admin view for monitoring customer carts
  • Remove get_method_validation_errors signal
  • Fix bug at get_visible_products filter when orderable_only is False
  • Set template price display options from the customer
  • Fix bug: BasketStorage.finalize() never called delete() correctly
  • Check product quantity already in basket while adding
  • Move order_creator_finished signal under core
  • Add “next” parameter support for registration
  • Process given coupon codes in basket
  • Add get_visible_products template helper


  • Add custom XThemeModelChoiceField to show admin URLs
  • Enhance default text plugin editor to remarkable markdown editor
  • Add support for global/multi-view placeholders
  • Add generic snippets plugin for doing simple integrations
  • Add a plugin for displaying category links on shop front
  • Add a linkable image plugin

Classic Gray Theme

  • Add Shoop Wishlist addon support for logged in users
  • Hide product order section when prices are hidden
  • Hide cart when prices are hidden
  • Show tracking codes in order detail
  • Remove ProductCrossSellType.COMPUTED from cross-sells plugin
  • Update cross-sells plugin to use ProductCrossSellType.BOUGHT_WITH
  • Render prices with the new price rendering template tags
  • Show error messages while adding products to basket
  • Add “next” parameter to register links
  • Add Coupon use possibility to basket page
  • Add option to only show orderable products to highlights plugin
  • Add Xtheme plugin to display social media links on shop front

Simple Supplier

  • Add admin modules for updating stock
  • Add support for stock counts and values

Order Printouts

  • Add app for creating PDF printouts of orders
    • Currently supports printing of Order confirmation and Delivery slips


  • Add campaigns app with following features:
    • Campaigns management
    • Coupon management
    • Contact group sales ranges

Customer Group Pricing

  • Rename Simple Pricing to Customer Group Pricing
  • Fix pricing for AnonymousContact

Discount Pricing

  • Removed

Simple CMS

  • Add option to list children on page
  • Add possibility to set parent on page

Default Tax

  • Filter tax rules by postal codes to gain better performance
  • Add minimum and maximum postal code values to TaxRule


  • Add guide app that integrates help documentation into admin search


  • Rename UnitedDecimal to UnittedDecimal
  • Add a way to find out min and max values from pattern
  • Reword doc/provides.rst

Shoop 3.0.0

Released on 2016-01-21 11:15 +0200.


  • Document Shoop tax system
  • API and documentation clean-up
  • Remove AddressManager
  • Split address into mutable and immutable address
  • Add Product.get_public_media helper function
  • Ensure TranslatabelShoopModel.__str__ doesn’t return lazy objects
  • Deny price unit changes of in-use Shop
  • Assign created customers to CustomerTaxGroups on creation
  • Fix couple tax related terms
  • Remove PriceTaxContext
  • Add PricingContextable interface and fix related docstrings
  • Remove Priceful.total_price
  • Add dynamic configuration API: shoop.configuration
  • Fix tax calculations and implement override groups
  • Add autoexpiring versioned cache API: shoop.core.cache
  • Enable email login and password recovery with username


  • Add translations for Finnish, Chinese and Japanese
  • Add translation extraction tools (shoop_makemessages)
  • Mark more messages for translation in templates
  • Enable JavaScript translations


  • Bump bootstrap-datetimepicker version to 2.3.8
  • Show Shoop version number in Admin
  • Fix order list sorting and filtering by total price
  • Fix CMS page list sorting by title
  • JavaScript compilation fixes: Turn our ES6 to ES5 with Babel
  • Fix URL encoding in redirect_to_login
  • Add view for creating orders from the Admin
  • Enable markdown editor for product and category description
  • Fix SKU and name initialization when creating a product by search
  • Add new template macros
  • Refactor templates to use template macros
  • Admin form styling and UX updates


  • Set default country in checkout address forms
  • Fix SHOOP_FRONT_INSTALL_ERROR_HANDLERS setting being not respected
  • Change password recover error message


  • Make Xtheme plugins translatable
  • Allow addons to inject resources
  • Editor improvements
  • Fix a crash when trying to revert unsaved configuration

Classic Gray Theme

  • Basket: Hide line base price when it’s not positive
  • Show product media at order history and product detail pages
  • Add language changer to navigation
  • Add possibility for other future brand colors
  • Add carousel styles for Bootstrap carousel
  • Unvendor fonts
  • Show maintenance mode for super user
  • Fix logo text line height
  • Add new placeholders
  • Footer CMS Pages field are no longer required
  • Update label for footer links to avoid confusion

Default Theme


  • Fix admin list view sorting


  • Add Transifex configuration for the tx command
  • Add verbose names to all model and form fields
  • Do unit testing from doctests too
  • Update Python package dependencies
  • Lock down JavaScript dependencies
  • Code style improvements
  • Add configuration for Travis CI
  • Include JS and CSS source maps to the Python package
  • Cleanup tax TODOs
  • Move apply_request_middleware to testing
  • Documentation: Tune Sphinx settings and ignore migrations in API docs
  • Fix Eslint complaints
  • Make sure that bower is ran non-interactively

Shoop 2.0.0

Released on 2015-10-05 16:45 +0300.


  • Add basic Manufacturer views
  • Basic Supplier management
  • Add image field for category
  • Fix issue with price not being saved
  • Optionally disable creating shops
  • Add “Product Media” tab to product editing
  • Tabify translated fields
  • Variation UI styles
  • Media Browser Rehaul
  • Add ImageChoiceWidget
  • Actually send data-filter to media browser from browse widgets
  • Admin form error indicators
  • Add keyboard shortcuts to megasearch
  • Show first language tab with errors
  • Update styles for admin form error indicators
  • Show errors more clearly
  • Make folder clicks work at media browser
  • Fix paths of generated source maps
  • Add styles for bootstrap input-group
  • Time interval attribute now renders as DecimalField
  • Notify: Add better error handling for “step edit”-popup
  • Better variation error handling
  • Fix issue where visibility errors caused an error
  • Update admin category view
  • Admin datetimepicker


  • Rework SimplePricing and pricing in general
  • Add non-ASCII support for supplier name
  • Fix checking of duplicate settings
  • Add new fields to shop core
  • Add DiscountPricingModule
  • Fix PriceInfo usage with non-one quantities
  • Fix shoop.core.migrations.0006
  • Tax clean-up and refactoring
  • Prevent Shop being deleted when image was deleted


  • An all-new dynamic theming system, Xtheme
  • Classic Gray: A new slick theme built on the Xtheme system
  • Add ordering for cross sells template helper
  • Fix get_root_categories performance
  • Maintenance mode
  • template_helpers: Fix get_pagination_variables
  • Ensure user is logged in after activating account
  • Customer URL now requires login
  • Add support for Complex variations
  • Add Default ErrorHandling
  • Fix issue with variation children being listed for admin user
  • Front: Fix issue with variation children visible in search results


  • Run ESLint on all the things!
  • Prunes, manifests
  • PEP8ify
  • Various fixes
  • Tests: Make test_user_detail_contact_seed not fail randomly
  • Miscellaneous tiny fixes
  • Fixes
  • Cms duplicate
  • Embetter patterns
  • Saner sanity tools
  • Workbench: Allow overriding couple settings from env

Shoop 1.2.0

Released on 2015-08-24 17:30 +0300.

  • Admin: Polyfill forms to ensure IE support
  • Fix uniqueness of some InternalIdentifierFields
    • Namely identifier field of Attribute, OrderStatus, ProductVariationVariable and ProductVariationVariableValue
  • Admin: Show payment details in order views
  • Coding Style: Clean-up and sort all imports
  • Fix usages of too-direct imports of models
  • Fix some unicode/bytes issues by adding “unicode_literals” imports
  • Admin layout fixes
    • Update telemetry admin layout and add translations tags
    • Change the attributes icon from product edit to the right one
    • Move attributes in product type edit to it’s own tab
    • Hide browser native horizontal scrollbar from main menu
  • Admin: Product image management
  • Admin: Product Variation management
  • Front: Add cross-sells to product detail page in default template
  • Admin: Fix menu scrolling
  • Upgrade Python and npm dependencies
  • Admin: Shop management
  • Front: Add link to admin panel in default template
  • Admin: Fix product attributes getting cleared unless they were edited
  • Admin: Product Sales Unit management
  • Admin: Add ProductChoiceWidget for selecting Products
  • Admin: Product cross-sell management
  • Admin: Styling: Add borders to bootstrap select
  • Admin: Fix showing details of a CompanyContact
  • Admin: Fix showing current addresses in contact details

Shoop 1.1.0

Released on 2015-07-03 12:30 +0300.

  • Improve “Getting Started with Shoop Development” documentation
  • Add a basic REST API for reading/writing products and reading orders
  • Use the database to store shopping baskets by default
  • Implement pluggable shopping basket storage backends
  • Implement basic contact group admin
  • Add telemetry (usage statistics) system
  • Add Dockerfile
  • Improve admin login flow
  • Document settings; make documentation builds available on ReadTheDocs
  • Make release packaging much more robust
  • Generate order keys in a secure manner
  • Trim admin search strings
  • Embetter admin order layouts
  • Create the Shop as active with shoop_init management command
  • Fix usages of Category.get_ancestors() in templates
  • Remove Stripe integration (shoop.stripe)
  • Core: Declare correct required_installed_apps in AppConfig
  • Fix handling of tuple-format required_installed_apps
  • Fix Money class to not read settings at instance creation
  • Fix management command shoop_show_settings for Python 3
  • Add Addon documentation (doc/addons.rst)

Shoop 1.0.0

Released on 2015-06-04 16:30 +0300.

  • The first Open Source version of Shoop.