django-oscar 中的用户货到付款
User cash on delivery in django-oscar
我正在使用 django-oscar
从事电子商店项目,我正在尝试添加 COD 支持。我正在使用 django-oscar-cash-on-delivery
.
我做了steps,你可以看到我的配置:
THIRD_PARTY_APPS = [
'jet.dashboard',
'jet',
'axes',
'cashondelivery',
'django_extensions',
'oscarapi',
'paypal',
'payu',
'rest_framework',
'robots',
'widget_tweaks',
'webpack_loader',
]
并创建了一个名为 apps
的应用并正确加载:
INSTALLED_APPS = THIRD_PARTY_APPS + PROJECT_APPS + [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.flatpages',
] + get_core_apps(
[
'apps.shipping'
]
)
在 apps
文件夹中,我创建了一个 apps.py
文件,其中包含以下代码:
from oscar.app import Shop
# from apps.checkout.app import application as checkout_app
from cashondelivery.app import application as checkout_app
class ApplicationShop(Shop):
checkout_app = checkout_app
application = ApplicationShop()
但是我不明白为什么 Oscar 不给我看货到付款方式的结账模板。
这是我的结构文件夹:
谁能帮我解决这个问题?
django-oscar
项目集成货到付款有两种方式:
覆盖结帐应用程序:
在这种情况下,有必要覆盖结帐模板,因为默认情况下 Oscar
不会或无法获得 cashondelivery
结帐模板,至少 payment_details
。因此,首先您需要覆盖这些模板文件,然后在创建应用程序并在其中添加一个 app.py
文件,您可以在其中覆盖结帐应用程序,如 cashondelivery
documentation 所说。
创建自定义视图和结帐应用程序:
您可以在 django-oscar-paypal
集成包中看到将 paypal
与 Oscar
集成的沙箱示例。
您可以在此包中看到他们使用结帐应用程序来替换默认的结帐应用程序;在此应用程序中,它们会覆盖 view.py
文件和 app.view
文件;覆盖模板并覆盖 app.py
文件。
所以,我们可以对 django-oscar-cash-on-delivery
做同样的事情,所以:
一种。如果需要,可以在 apps
应用程序中创建一个名为 checkout
的新应用程序,或者像您这样的应用程序。此应用程序仅包含视图和应用程序文件。
b。在视图文件中,我们将放置 cash-on-delivery
views 文件,现在它位于 sanbox 文件夹中。
c。在结帐内的应用程序文件中,我们声明结帐应用程序:
from oscar.apps.checkout import app
from .views import PaymentDetailsView
class CheckoutApplication(app.CheckoutApplication):
payment_details_view = PaymentDetailsView
application = CheckoutApplication()
d。最后,我们声明我们的结账应用程序为默认结账应用程序,如 documentation 所说。
e.我们已确保应用程序覆盖默认签出应用程序,在设置中:
INSTALLED_APPS = + get_core_apps(
[
'apps.checkout',
'apps.shipping'
]
)
您现在可以在您的奥斯卡项目中使用货到付款方式付款。
我们建议使用第二种方式,因为您可以使用多种付款方式。
PD:
在新的主版本中,我们已将 views.py
文件移动到沙箱文件夹中,因此,第一个选项将不再有效。但是,如果你想要它回来,请告诉我们!
我正在使用 django-oscar
从事电子商店项目,我正在尝试添加 COD 支持。我正在使用 django-oscar-cash-on-delivery
.
我做了steps,你可以看到我的配置:
THIRD_PARTY_APPS = [
'jet.dashboard',
'jet',
'axes',
'cashondelivery',
'django_extensions',
'oscarapi',
'paypal',
'payu',
'rest_framework',
'robots',
'widget_tweaks',
'webpack_loader',
]
并创建了一个名为 apps
的应用并正确加载:
INSTALLED_APPS = THIRD_PARTY_APPS + PROJECT_APPS + [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.flatpages',
] + get_core_apps(
[
'apps.shipping'
]
)
在 apps
文件夹中,我创建了一个 apps.py
文件,其中包含以下代码:
from oscar.app import Shop
# from apps.checkout.app import application as checkout_app
from cashondelivery.app import application as checkout_app
class ApplicationShop(Shop):
checkout_app = checkout_app
application = ApplicationShop()
但是我不明白为什么 Oscar 不给我看货到付款方式的结账模板。
这是我的结构文件夹:
谁能帮我解决这个问题?
django-oscar
项目集成货到付款有两种方式:
覆盖结帐应用程序:
在这种情况下,有必要覆盖结帐模板,因为默认情况下Oscar
不会或无法获得cashondelivery
结帐模板,至少payment_details
。因此,首先您需要覆盖这些模板文件,然后在创建应用程序并在其中添加一个app.py
文件,您可以在其中覆盖结帐应用程序,如cashondelivery
documentation 所说。创建自定义视图和结帐应用程序:
您可以在django-oscar-paypal
集成包中看到将paypal
与Oscar
集成的沙箱示例。 您可以在此包中看到他们使用结帐应用程序来替换默认的结帐应用程序;在此应用程序中,它们会覆盖view.py
文件和app.view
文件;覆盖模板并覆盖app.py
文件。
所以,我们可以对 django-oscar-cash-on-delivery
做同样的事情,所以:
一种。如果需要,可以在 apps
应用程序中创建一个名为 checkout
的新应用程序,或者像您这样的应用程序。此应用程序仅包含视图和应用程序文件。
b。在视图文件中,我们将放置 cash-on-delivery
views 文件,现在它位于 sanbox 文件夹中。
c。在结帐内的应用程序文件中,我们声明结帐应用程序:
from oscar.apps.checkout import app
from .views import PaymentDetailsView
class CheckoutApplication(app.CheckoutApplication):
payment_details_view = PaymentDetailsView
application = CheckoutApplication()
d。最后,我们声明我们的结账应用程序为默认结账应用程序,如 documentation 所说。
e.我们已确保应用程序覆盖默认签出应用程序,在设置中:
INSTALLED_APPS = + get_core_apps(
[
'apps.checkout',
'apps.shipping'
]
)
您现在可以在您的奥斯卡项目中使用货到付款方式付款。
我们建议使用第二种方式,因为您可以使用多种付款方式。
PD:
在新的主版本中,我们已将 views.py
文件移动到沙箱文件夹中,因此,第一个选项将不再有效。但是,如果你想要它回来,请告诉我们!