To keep things clear, we’ll split the payment topic into multiple posts. In this first one, we’ll look at the theory using the following flowchart:
There are three main cases we need to handle
Payment abandonment - The user abandons the process while on the payment gateway
Payment cancellation - The user explicitly clicks the Cancel option on the gateway
Payment success - The user completes the payment successfully

Tested with: Django 5.2 Django-Oscar 4
- Django-Oscar - Setting up - Part 1
- Django-Oscar - Creating Products - Part 2
- Django-Oscar - Search Engine Whoosh - Part 2.5
- Django-Oscar - Frontend Customization - Part 3
- Django-Oscar - Paypal - Part 4
- Django Oscar - Paypal Credentials - Part 5
- Django-Oscar - Settings - Part 6
- Django-Oscar - Backend Customization - Part 7
- Django-Oscar - Shipping - Part 8
- Django-Oscar - WeightBased Shipping - Part 9
- Django-Oscar - Excluding Shipping Countries - Part 9.5
- Django-Oscar - Pick up in Store - Part 10
- Django-Oscar - Email Settings - Part 11
- Django-Oscar - Notify Store Owner - Part 12
- Django-Oscar - Create Product w/ code - Part 13
- Django-Oscar - Search Engine Solr - Part 14
- Django Oscar - Alternative Oscar Setup - Part 15
- Django Oscar - Alternative Paypal Setup - Part 16
- Django Oscar - Order Status - Part 17
- Django Oscar - Payment Gateway Theory - Part 18
- Django Oscar - Payment Gateway - Part 19
- Django Oscar - Stripe Integration - Part 20
- Django Oscar - PayPal Modern Integration - Part 21
- Django Oscar - Checkout Preview - Part 22
- Django Oscar - Digital Products (eBooks) - Part 23
- Django Oscar - Product Attributes - Part 24
- Django Oscar - Variants - Part 25
- Django Oscar - Customizing the Dashboard Bar - Part 26
- Django Oscar - Flatpages - Part 27
jaimedcsilva.com 