为Django Oscar评估集成

django-oscar-avalara的Python项目详细描述


这个包提供了AvalaraOscar之间的集成。阿瓦拉是 在美国提供准确的增值税计算的服务。

有用的文档:

状态:

https://secure.travis-ci.org/tangentlabs/django-oscar-avalara.png?branch=master

安装

从pypi安装:

$ pip install django-oscar-avalara

或github:

$ pip install git+https://github.com/tangentlabs/django-oscar-avalara.git

然后将'avalara'添加到INSTALLED_APPS

指定以下设置:

  • AVALARA_ACCOUNT_NUMBER
  • AVALARA_LICENSE_KEY
  • AVALARA_COMPANY_CODE

当你和阿瓦拉签约时,你应该得到这些细节。

不在生产环境中时,设置AVALARA_TEST_MODE = True以发出请求 到Avalara开发服务器。

此包使用命名记录器'avalara',因此通常用于 为此记录器定义处理程序。

用法

要将avalara集成到签出中,需要重写 签出视图类PaymentDetailsView

首先覆盖build_submission以对购物篮和配送征税 方法:

fromoscar.apps.checkoutimportviewsfromdjango.contribimportmessagesfromdjango.templateimportloaderimportavalaraclassPaymentDetailsView(views.PaymentDetailsView):...defbuild_submission(self,**kwargs):submission=super(PaymentDetailsView,self).build_submission(**kwargs)# Fetch and apply taxes to submission dicttry:avalara.apply_taxes_to_submission(submission)exceptavalara.InvalidAddress,e:msg=loader.render_to_string('avalara/messages/invalid_address.html',{'error':e.message})messages.error(self.request,msg,extra_tags="safe noicon")returnsubmission

在这里,我们将提交dict传递给apply_taxes_to_submission 会查到适当的税收,并将其应用到篮子和 传送方法实例。

我们还注意InvalidAddress异常,如果 Avalara找不到传递的送货地址的税务管辖区。

最后,重写handle_successful_order以将下订单提交给 阿瓦拉拉:

fromoscar.apps.checkoutimportviewsfromdjango.contribimportmessagesfromdjango.templateimportloaderimportavalaraclassPaymentDetailsView(views.PaymentDetailsView):...defhandle_successful_order(self,order):response=super(PaymentDetailsView,self).handle_successful_order(order)# Submit tax information to Avalaratry:avalara.submit(order)exceptException:# Tax can be re-submitted later so we swallow all possible# exceptions and log them.logger.error("Unable to submit tax information for order %s",order.number,exc_info=True)returnresponse

在这里,我们将order实例传递给submit,后者将提交税 向Avalara报告的信息。我们还捕获并记录任何异常 我们不希望订单放置显示错误屏幕。如果有问题 与Avalara交谈后,我们可以手动重新提交订单。

贡献

克隆repo,创建一个virtualenv并运行:

make install

安装所有依赖项。使用以下命令运行测试:

./runtests.py

有一个沙盒站点,您可以浏览并使用它来测试avalara 整合。使用:

make sandbox

并在以下时间后浏览:

cd sandbox
./manage.py runserver

请注意,您需要在一个私有的 integration.py模块。

更改日志

0.2.1

解决一些提交订单的问题。

0.2

支持oscar 1.0并解决缓存密钥问题。

0.1.1

补丁版本将支持限制为django-oscar>=0.6,<1.0

0.1

初始版本-支持django-oscar>=0.6

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java构造函数SimpleCommandBus()不可见   Java字符串和返回   java不能在类中使用上下文?   使用Java为SOAP定制DataHandler   java“访问被拒绝”在编译servlet时   java嵌入Jetty,在给定时间后终止请求   java如何使用预先指定的URL限制AWS S3 bucket中对象的上传大小?   java理解Azure文件存储:未知hostException   java将对象作为参数传递是否会产生与将其存储在字段中相同级别的耦合?   https告诉java客户端代码接受自签名证书   Java中的简单*权威DNS服务器*   Java解压缩字节数组错误数据检查   当我用SpringDoc和接口描述API规范时,java Spring控制器验证似乎不起作用   在Java中使用PHash(OpenCV)   Kotlin中的java简单继承示例   java Infinispan:ISPN004016:服务器不再位于群集中(127.0.0.1:11222),正在从池中删除   2行滑动菜单安卓本机JAVA   使用日期选择器时Android Studio中的java 4错误   java在<之间删除内容!和/>