def test_zero_charge_with_shipping_discount(self): offer = factories.create_offer(benefit=Benefit.objects.create( type=Benefit.SHIPPING_FIXED_PRICE, value=1), ) basket = factories.create_basket() Applicator().apply_offers(basket, [offer]) # Similar to test_zero_charge_discount(), # but now test how the repository deals with it. method = Repository().apply_shipping_offer(basket, self.standard, offer) self.assertEqual(D('0.00'), method.discount(basket))
def get_redirect_url(self, ): try: basket = Basket.objects.get( pk=self.checkout_session.get_submitted_basket_id()) except Basket.DoesNotExist: print("basket problem") return reverse_lazy('checkout:preview') shipping_address = self.get_shipping_address(basket) billing_address = self.get_billing_address( shipping_address=shipping_address) basket.strategy = Selector().strategy(self.request) Applicator().apply(basket, self.request.user, request=self.request) order_number = self.checkout_session.get_order_number() shipping_address = self.get_shipping_address(basket) shipping_method = self.get_shipping_method(basket, shipping_address) shipping_charge = shipping_method.calculate(basket) billing_address = self.get_billing_address(shipping_address) order_total = self.get_order_totals(basket, shipping_charge=shipping_charge) order_kwargs = {} # make sure payment was actually paid try: data_query = \ Payment.objects.get(factor_number=order_number, status=1, amount=float(order_total.incl_tax)) except Payment.DoesNotExist: print("query problem") # if payment was not going in correct way it will return to checkoutperview data_query = None self.restore_frozen_basket() return reverse_lazy('checkout:preview') user = self.request.user if not user.is_authenticated: order_kwargs[ 'guest_email'] = self.checkout_session.get_guest_email() self.handle_order_placement(order_number, user, basket, shipping_address, shipping_method, shipping_charge, billing_address, order_total, **order_kwargs) # source_type, is_created = models.SourceType.objects.get_or_create( # name='AsanPardakht') # source = source_type.sources.model( # source_type=source_type, # amount_allocated=19500, # ) # self.add_payment_source(source) # self.add_payment_event('AsanPardakht', 19500) return reverse_lazy('checkout:thank-you')
def test_consumed_by_application(self, filled_basket, single_offer): basket = filled_basket Applicator().apply(basket) assert len(basket.offer_applications.offer_discounts) == 1 assert [x.consumer.consumed() for x in basket.all_lines()] == [1, 0]
def add_product(self): self.basket.add_product(self.product) self.basket.strategy = Selector().strategy() Applicator().apply(self.basket)
def add_product(self): self.basket.add_product(self.product) self.basket.strategy = Selector().strategy() Applicator().apply(self.basket) self.assertBasketUpsellMessagesAreNotNone()