为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第三方库


热门话题
用setter将对象转换为java中的映射   java如何通过JQL直接找到多对多实体的交集?   java Android文本检查帮助   纸牌游戏中的java玩家顺序   java从活动A移动到活动B,再从活动B返回到活动A   java如何在GAE servlet中保存JSON文件以满足Android客户端的请求?   连接到本地主机上的SLiM服务器时发生java错误:8080   java是否可以使用setOnMarkerClickListener对for循环中创建的各种标记产生不同的结果?   检查数字是否为回文的java逻辑   java在两个独立的服务中是否存在数据同步模式?   java在组合框中选择ascendingorder时如何对元素列表进行排序   java如何在不更新旧表的情况下更新表中的字段并将其插入新表   javasos和return语句   java与示例安卓活动建立解析连接。错误:任务“:app:dexDebug”的执行失败   java Maven发布问题,带有代理授权的分叉部署过程,因为参数失败,需要407代理授权