Skip to main content

SendCloud Shipping Provider Integration for django-shop

Project description

SendCloud Shipping Provider Integration for django-SHOP

This integrates the SendCloud API for django-SHOP version 1.0 and above.

Installation

for django-SHOP version 1.0 and later:

pip install djangoshop-sendcloud<1.1

Preparation

At SendCloud create an account.

In your personal account settings, click on Settings. There:

  • Add a Sender Address.
  • In Financial > Direct Debit add your recurring payment settings. There your bank account is charged with € 0.01, but this may take a few hours or even one day until everything is checked.
  • In Selected Shop select SendCloud API with a name of your choice. There, extract the Public Key and the Secret Key (see below).

Configuration

In settings.py of the merchant's project:

Add 'shop_sendcloud' to INSTALLED_APPS.

Add 'shop_sendcloud.modifiers.SendcloudShippingModifier' to the list of SHOP_CART_MODIFIERS.

Add 'shop_sendcloud.shipping.OrderWorkflowMixin' to the list of SHOP_ORDER_WORKFLOWS.

If you run django-SHOP with partial delivery, replace the OrderItemSerializer with the one provided: SHOP_ORDER_ITEM_SERIALIZER = 'shop_sendcloud.serializers.OrderItemSerializer' and change the workflow to:

SHOP_ORDER_WORKFLOWS = [
    ...
    'shop_sendcloud.workflows.CommonOrderWorkflowMixin',
    'shop.shipping.workflows.PartialDeliveryWorkflowMixin',
]

Otherwise, without partial delivery, change the workflow to:

SHOP_ORDER_WORKFLOWS = [
    ...
    'shop_sendcloud.workflows.SingularOrderWorkflowMixin',
    'shop.shipping.workflows.CommissionGoodsWorkflowMixin',
]

Add the Public Key and the Secret Key as provided by SendCloud (see above):

SHOP_SENDCLOUD = {
  'API_KEY': '<public-key-as-provided-by-SendCloud>',
  'API_SECRET': '<secret-key-as-provided-by-SendCloud>',
}

Since SendClouds sets the Shipping ID for us, we disable that field in the backend, using SHOP_MANUAL_SHIPPING_ID = False.

SendCloud requires a specific address model, therefore ensure that you "materialize" the one provided with djangoshop-sendcloud and not the defaults from shop/models/defaults/address.

Initialization

Create two additional database tables as required by djangoshop-sendcloud:

python manange.py migrate djangoshop_sendcloud

Finally, load all possible shipping options into your shop:

python manange.py sendcloud_import

remember to run this job on a regular basis, say once a week, to update shipping prices.

Usage

When django-SHOP renders the form Shipping Method inside the checkout view, additional options will be available. For each carrier configured in the SendCloud backend, an extra radio button appears. Whatever the customer selects, will be stored inside django-SHOP's OrderModel.

In the Django Admin backend, only after fulfilling the order, a new button apprears named PRINT SHIPPING LABEL. Clicking on that button fetches a PDF document from the SendCloud API and forwards it to the Django Admin interface, from where it can be printed out.

Changes

1.0

  • Initial working release.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

djangoshop-sendcloud-1.0.tar.gz (11.1 kB view details)

Uploaded Source

File details

Details for the file djangoshop-sendcloud-1.0.tar.gz.

File metadata

  • Download URL: djangoshop-sendcloud-1.0.tar.gz
  • Upload date:
  • Size: 11.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.6

File hashes

Hashes for djangoshop-sendcloud-1.0.tar.gz
Algorithm Hash digest
SHA256 2cd34a270ae3a891c6263e6fd94a3bae9222ed27242febcb6333a77b59d6cb0d
MD5 7484fae20c161b01ac1002c410045fe8
BLAKE2b-256 2f1d014ea5ac241efdf46bc6bd5bce48eed978e706540b3d61c44383b37ab210

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page