A tax module for Cartridge.
Project description
#cartridge_tax
An implementation of sales tax for [Cartridge](http://cartridge.jupo.org/).
A flat sales or value-added tax can be applied to in-state or all sales. Tax can optionally be applied to shipping costs.
For US-based sites, [TaxCloud.net](http://taxcloud.net/)'s tax lookup web service is optional.
## DISCLAIMER
This should work out-of-the-box for simple cases. However, your particular implementation
of Cartridge may require rewriting this or merging components into or out of other projects.
## Installation
Working in your project's [virtualenv](http://www.virtualenv.org/en/latest/index.html):
```
pip install cartridge-tax
```
or
```
git clone https://github.com/kenbolton/cartridge-tax.git
cd cartridge-tax
python setup.py install
```
Add `'cartridge_tax'` to your settings.INSTALLED_APPS before
`'cartridge.shop'`.
Set up your tax information in the admin configuration settings,
/admin/conf/setting/. Note the value you put in 'Shop State'. You will
need to inject a "choices" dict into
`cartridge.shop.forms.OrderForm['fields']['shipping_detail_state']`. The
values in that dict should match the style in 'Shop State'. See the
example below in `Custom OrderForm`.
### Billing/Shipping and Order Handlers
Add the following to your settings:
```
SHOP_HANDLER_BILLING_SHIPPING = \
"cartridge_tax.checkout.tax_billship_handler"
SHOP_HANDLER_ORDER = "cartridge_tax.checkout.tax_order_handler"
```
### Extra model fields
Below is an example of settings.EXTRA_MODEL_FIELDS. Be sure to add these
tuples to your own EXTRA_MODEL_FIELDS.
```
EXTRA_MODEL_FIELDS = (
(
"cartridge.shop.models.Product.tic",
"CharField",
(u"Taxability Information Code",),
{"max_length":"5", "blank": True, "default":"00000", },
),
(
"cartridge.shop.models.Order.tax_total",
"DecimalField",
(u"Tax Total",),
{"null": True, "blank": True, "max_digits": 10,
"decimal_places": 2},
),
(
"cartridge.shop.models.Order.tax_type",
"CharField",
(u"Tax Type",),
{"blank": True, "max_length": "20", "default":"Flat sales tax"},
),
)
```
### Custom OrderForm
An example for the US is at `cartridge_tax.forms.USOrderForm`. This
implementation uses the two-letter state abbreviation, so put e.g. NY as
the value of `TAX_SHOP_STATE` in /admin/conf/settings/. Add to
your `settings.py`:
`SHOP_CHECKOUT_FORM_CLASS = 'cartridge_tax.forms.USOrderForm'`
`USOrderForm` can be used as an example for developing `OrderForm`
subclasses for other tax jurisdictions.
## Registered Settings
* TAX_SHOP_ADDRESS
* TAX_SHOP_ADDRESS2
* TAX_SHOP_CITY
* TAX_SHOP_STATE
* TAX_SHOP_POSTCODE
* TAX_SHOP_POSTCODE_PLUS4
* TAX_OUT_OF_STATE
* TAX_FLAT_RATE
* TAX_SHIPPING_ADDRESS
* TAX_SHIPPING
* TAX_USE_TAXCLOUD
* TAX_USE_TAXCLOUD_AUTHORIZATION
* TAX_TAXCLOUD_API_ID
* TAX_TAXCLOUD_API_KEY
An implementation of sales tax for [Cartridge](http://cartridge.jupo.org/).
A flat sales or value-added tax can be applied to in-state or all sales. Tax can optionally be applied to shipping costs.
For US-based sites, [TaxCloud.net](http://taxcloud.net/)'s tax lookup web service is optional.
## DISCLAIMER
This should work out-of-the-box for simple cases. However, your particular implementation
of Cartridge may require rewriting this or merging components into or out of other projects.
## Installation
Working in your project's [virtualenv](http://www.virtualenv.org/en/latest/index.html):
```
pip install cartridge-tax
```
or
```
git clone https://github.com/kenbolton/cartridge-tax.git
cd cartridge-tax
python setup.py install
```
Add `'cartridge_tax'` to your settings.INSTALLED_APPS before
`'cartridge.shop'`.
Set up your tax information in the admin configuration settings,
/admin/conf/setting/. Note the value you put in 'Shop State'. You will
need to inject a "choices" dict into
`cartridge.shop.forms.OrderForm['fields']['shipping_detail_state']`. The
values in that dict should match the style in 'Shop State'. See the
example below in `Custom OrderForm`.
### Billing/Shipping and Order Handlers
Add the following to your settings:
```
SHOP_HANDLER_BILLING_SHIPPING = \
"cartridge_tax.checkout.tax_billship_handler"
SHOP_HANDLER_ORDER = "cartridge_tax.checkout.tax_order_handler"
```
### Extra model fields
Below is an example of settings.EXTRA_MODEL_FIELDS. Be sure to add these
tuples to your own EXTRA_MODEL_FIELDS.
```
EXTRA_MODEL_FIELDS = (
(
"cartridge.shop.models.Product.tic",
"CharField",
(u"Taxability Information Code",),
{"max_length":"5", "blank": True, "default":"00000", },
),
(
"cartridge.shop.models.Order.tax_total",
"DecimalField",
(u"Tax Total",),
{"null": True, "blank": True, "max_digits": 10,
"decimal_places": 2},
),
(
"cartridge.shop.models.Order.tax_type",
"CharField",
(u"Tax Type",),
{"blank": True, "max_length": "20", "default":"Flat sales tax"},
),
)
```
### Custom OrderForm
An example for the US is at `cartridge_tax.forms.USOrderForm`. This
implementation uses the two-letter state abbreviation, so put e.g. NY as
the value of `TAX_SHOP_STATE` in /admin/conf/settings/. Add to
your `settings.py`:
`SHOP_CHECKOUT_FORM_CLASS = 'cartridge_tax.forms.USOrderForm'`
`USOrderForm` can be used as an example for developing `OrderForm`
subclasses for other tax jurisdictions.
## Registered Settings
* TAX_SHOP_ADDRESS
* TAX_SHOP_ADDRESS2
* TAX_SHOP_CITY
* TAX_SHOP_STATE
* TAX_SHOP_POSTCODE
* TAX_SHOP_POSTCODE_PLUS4
* TAX_OUT_OF_STATE
* TAX_FLAT_RATE
* TAX_SHIPPING_ADDRESS
* TAX_SHIPPING
* TAX_USE_TAXCLOUD
* TAX_USE_TAXCLOUD_AUTHORIZATION
* TAX_TAXCLOUD_API_ID
* TAX_TAXCLOUD_API_KEY
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
cartridge-tax-0.0.1.tar.gz
(14.1 kB
view details)
File details
Details for the file cartridge-tax-0.0.1.tar.gz
.
File metadata
- Download URL: cartridge-tax-0.0.1.tar.gz
- Upload date:
- Size: 14.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5509ff5727300d1d0d30198da552b8c35fdaebada9780842a10d5b73a6ca1d51 |
|
MD5 | 757d460c1373a328696092290d3569ab |
|
BLAKE2b-256 | ca6af814a216571d1ca374e8ecd8748b960aadca3a59335309f9b43b9e813d69 |