Skip to main content

An e-commerce shopping cart and checkout for Plone, optimized for use in the US and Canada.

Features

Shopping Cart

Users can add items to their cart while browsing products on the website. They can then click the cart icon to view and adjust the contents of their shopping cart.

Pluggable Payment Processors

Currently available:

  • Stripe (Stripe Elements)

  • Authorize.net SIM (legacy)

  • Authorize.net Accept.js

Pluggable Shipping Providers

Currently available:

  • USPS

  • UPS (Python 2.x only)

Pluggable Sales Tax APIs

For calculating US state and local taxes. Currently available:

  • Washington state handler

  • Taxjar handler (a commercial service for automated sales tax calculation based on address)

  • NoTax handler for disabling sales tax calculation entirely

Purchasable Content Types

Types can be Dexterity or Archetypes. Make your own content type purchasable using a behavior or schema extender. (Note: Archetypes support in Python 2.x only)

Cart Stored in ZODB

Shopping cart data is stored in the ZODB rather than in sessions even for anonymous users. This makes it easier to deploy when running multiple Zope instances.

Form Integration

PloneFormGen integration provided by jazkarta.pfg.jazshop.

Easyform integration provided by jazkarta.easyformplugin.jazshop.

Compatible With

  • Plone 4.3

  • Plone 5.0.x, 5.1.x on Python 2.7

  • Plone 5.2.x on Python 2.7, 3.6, 3.7, 3.8

Translations

This product has been translated into

  • English (U.S.)

Installation

Install jazkarta.shop by adding it to your buildout:

[buildout]

...

eggs =
    jazkarta.shop

and then running:

bin/buildout

Integrating the Package with Your Content

Add the “Jazkarta Shop Product” jazkarta.shop.interfaces.IProduct Dexterity behavior to each content type that you wish to use with jazkarta.shop, either through the web or programmatically in your code.

To add the schema extender on Archetypes content types, programmatically implement the interface jazkarta.shop.interfaces.IATProduct on your content class or otherwise provide the interface on individual instances.

When creating instances of your content type, make sure to set the weight and unit price on each one. This is will appear under the “Shop” fieldset when adding/editing your object.

Minimal Configuration/Quickstart

Proceed to the “Jazkarta Shop Settings” to configure a payment processor, optional shipping method API keys, shipped from address details as well as a receipt email message.

Proceed to the “Jazkarta Shop Shipping Methods” to setup a shipping method. Destinations are grouped by shipping zones “Alaska, Canada, East, Hawaii, International, Midwest, US, West”

It is important to select at least one shipping zone for your shipping method(s) to show up once the shipping address has been entered during the checkout process.

Currently available zones can be seen in detail here:

WEST = {
    'AZ', 'CA', 'CO', 'ID', 'MT', 'NV', 'NM', 'OR', 'UT', 'WY', 'WA'
}

MIDWEST = {
    'AL', 'AR', 'IL', 'IN', 'IA', 'KS', 'KY', 'LA', 'MI', 'MN', 'MS',
    'MO', 'NE', 'ND', 'OH', 'OK', 'SD', 'TN', 'TX', 'WI',
}

EAST = {
    'CT', 'DE', 'FL', 'GA', 'ME', 'MD', 'MA', 'NH', 'NJ', 'NY', 'NC',
    'PA', 'RI', 'SC', 'VT', 'VA', 'WV'
}

Administration

Three control panels are provided.

Jazkarta Shop Settings

This control panel allows configuration of:

  • Which payment processor to use

  • Payment processor keys or login information for development and production use

  • Subject and introduction for receipt emails

  • Product categories

  • Minimum stock level

  • Shipped from name and address

  • Shipping handler keys or login information

  • Which tax handler to use

  • Optional Taxjar API token

  • Optional after-checkout callback URL

jazkarta.shop requires the environment variable JAZKARTA_SHOP_PRODUCTION to be set to True when it is running in production mode. eg:

[buildout]

...

parts +=
    client1

[client1]

...

environment-vars +=
    JAZKARTA_SHOP_PRODUCTION True

Jazkarta Shop Shipping Methods

Named shipping methods can be added and edited. Each shipping method specifies the geographical areas it is used for, the shipping fee calculation method, minimum and maximum weights, and optionally a minimum purchase amount.

If using UPS or USPS shipping methods, please make sure the revelevant API keys are added in the “Jazkarta Shop Settings” control panel.

Jazkarta Shop Orders

This control panel provides a table of order information such as date, items, shipping information and price. Orders can be filtered by date and exported to CSV.

Basic Notes on Use

For each content type that has the “Jazkarta Shop Product” behavior enabled, an “Add to Cart” button shown when viewing the content type. This allows the user to add an item to the cart. A clickable cart viewlet “My Cart” is used to display the shopping cart in the site header. It contains a “Checkout” link to the /review-cart view. /review-cart and /checkout views can be used to modify/update cart contents.

The basic use flow:

Click “Add to Cart” button -> Click “Checkout” in viewlet -> /review-cart -> /shipping -> /checkout -> Complete purchase

Events

Clicking on the “Add to Cart” button fires an item-added jquery event, which can optionally be used as a hook for custom js code to alert the user that the cart contents have changed.

Future Work

Promo Codes

Promotional codes for discounts can be defined and applied to a shopping cart. Currently a promo code widget is visible on the Shopping cart (review-cart) view, however this functionality is not complete.

Contribute

License

The project is licensed under the GPLv2.

Credits

Built by Jazkarta.

Authors

  • David Glick (initial author)

  • Carlos de la Guardia

  • Alec Mitchell

  • Witek

  • Fulvio Casali

  • Silvio Tomatis

  • Alessandro Ceglie

  • Jesse Snyder

Release files for jazkarta.shop 2.0.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for jazkarta.shop 2.0.6
File Size Uploaded
jazkarta_shop-2.0.6.tar.gz 100.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for jazkarta.shop 2.0.6
File Interpreter ABI Platform
jazkarta_shop-2.0.6-py3-none-any.whl Python 3 none any Details

Total release size: 234.5 kB

Release files / jazkarta_shop-2.0.6.tar.gz

Download URL jazkarta_shop-2.0.6.tar.gz
Size 100.6 kB
Tags Source
SHA-256 checksum
How to use checksums
1a48489787928dddebb765adcc01d1134912be0a7e11bd3a7e88054a2db0cbea
BLAKE2b-256 checksum
How to use checksums
1961489a4f4b667336bc9a0f2ff04be66360c195de8837e91b8cd40d99059363
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.8.18

Release files / jazkarta_shop-2.0.6-py3-none-any.whl

Download URL jazkarta_shop-2.0.6-py3-none-any.whl
Size 133.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9f0f9e43387e45aac7997ed687e8cd51e6da9e099002be3c7a12133e0bca1d56
BLAKE2b-256 checksum
How to use checksums
aee8c3fedcec560ab602fa973c5e4361bf81f6e72d3b692a316b2851b93de769
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.8.18

Release history Release notifications | RSS feed

This release

2.0.6 This release

2 release files

2.0.5

1 release file

2.0.4

1 release file

2.0.3

1 release file

2.0.2

1 release file

2.0.1

1 release file

2.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page