Django Oscar在兑换过期凭证时自动清空购物篮

时间:2019-05-19 11:48:14

标签: django django-oscar

当客户在购物车中的某项商品上使用了凭证时,该凭证在结帐过程中或在购物车本身内过期。在结帐过程中,单击public static void main(String[] args) throws IOException { final String url = "https://www.tokopedia.com/berkahcell2/promo-termurah-vr-virtual-reality-box-v-2-0-remote-bluetooth-gamepad/review?src=topads"; try (final WebClient webClient = new WebClient(BrowserVersion.FIREFOX_60)) { webClient.getOptions().setThrowExceptionOnScriptError(false); HtmlPage page = webClient.getPage(url); webClient.waitForBackgroundJavaScript(40_000); System.out.println(page.asXml()); List<DomNode> date = page.getByXPath("//div[@class='list-box-comment']"); System.out.println(date.size()); for(int i = 0 ; i < date.size();i++){ System.out.println(date.get(i).asText()); } } } 时,购物车会自动清空,并向客户发送此错误place order,这是在You need to add some items to your basket to checkout期间发生的。

有人可以帮助我了解Django-Oscar的哪一部分可以以这种极端的方式修改购物车。我最初的想法是,购物车被清空了,因为某些奥斯卡组成部分正在尝试删除凭证,同时也正在删除购物车中的物品。但是在进行更多检查后,我发现凭证已成功删除,但购物车商品仅可能在check_basket_is_not_empty method内部删除了。

我没有PaymentDetailsView的代码。几天前,我以Django开发人员的身份开始了这项工作,但后来陷入了这个庞大的django-oscar代码库中,我完全不熟悉。我不允许在线发布任何代码。我不知道该怎么办,也不想被解雇。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:3)

我仍然不知道是什么引起了这个错误,但是我想出了这个解决方案。当您单击“下订单”时,将触发seq 2 1 5类,并且处理所有数据的第一个函数是PaymentDetailsView。因此,在其中,您可以手动检查submit中的凭证,并手动删除该凭证。

request