/ / Gotówka użytkownika przy dostawie w django-oscar - python, django, e-commerce, django-oscar

Gotówka użytkownika przy dostawie w django-oscar - python, django, e-commerce, django-oscar

Pracuję w projekcie e-sklepu z wykorzystaniem django-oscar i próbuję dodać obsługę COD. Używam django-oscar-cash-on-delivery.

Zrobiłem to kroki, możesz zobaczyć moją konfigurację:

THIRD_PARTY_APPS = [
"jet.dashboard",
"jet",

"axes",
"cashondelivery",
"django_extensions",
"oscarapi",
"paypal",
"payu",
"rest_framework",
"robots",
"widget_tweaks",
"webpack_loader",
]

I stworzył aplikację o nazwie apps i ładowane poprawnie:

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"
]
)

W appsfolder i utworzyłem apps.py plik z tym kodem wewnątrz:

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()

Ale nie mogę zrozumieć, dlaczego Oscar nie pokazuje mi szablonu kasy z metodą płatności gotówką.

To jest mój folder struktury: wprowadź opis obrazu tutaj

Czy ktoś może mi w tym pomóc?

Odpowiedzi:

2 dla odpowiedzi № 1

Istnieją dwa sposoby integracji gotówki przy odbiorze django-oscar projekt:

  1. Zastąp kasę aplikacji:
    W takim przypadku konieczne jest zastąpienie szablonów płatności, ponieważ domyślnie Oscar nie możesz dostać cashondelivery przynajmniej szablony kas payment_details. Najpierw trzeba zastąpić ten plik szablonu i po utworzeniu aplikacji dodać do niego app.py plik, w którym zastępujesz aplikację kasy jako cashondelivery dokumentacja mówi.

    wprowadź opis obrazu tutaj

  2. Utwórz niestandardową aplikację do przeglądania i kasowania:
    Możesz zobaczyć w django-oscar-paypal pakiet integracyjny przykład piaskownicy do integracji paypal z Oscar. Możesz zobaczyć w tym pakiecie, że używają aplikacji kasowej do zastąpienia aplikacji kasowej; w tej aplikacji zastępują view.py plik i app.view plik; nadpisać szablony i zastąpić app.py plik.

Więc możemy zrobić to samo dla django-oscar-cash-on-delivery, więc:
za. Utwórz nową aplikację o nazwie checkout w środku apps wniosek, jeśli chcesz, lub ktoś taki jak ty. Ta aplikacja będzie zawierać tylko widoki i plik aplikacji.wprowadź opis obrazu tutaj

b. W pliku widoków umieścimy plik cash-on-delivery widoki plik, teraz jest w folderze Sanbox.

do. W pliku aplikacji wewnątrz kasy deklarujemy aplikację kasową:

from oscar.apps.checkout import app
from .views import PaymentDetailsView

class CheckoutApplication(app.CheckoutApplication):
payment_details_view = PaymentDetailsView

application = CheckoutApplication()

re. Na koniec deklarujemy naszą aplikację kasową jako domyślną aplikację kasową dokumentacja mówi.
mi. Zapewniliśmy, że aplikacja zastępuje domyślną aplikację do pobrania w ustawieniach:

INSTALLED_APPS = + get_core_apps(
[
"apps.checkout",
"apps.shipping"
]
)

Możesz teraz płacić gotówką przy odbiorze w swoim projekcie Oscar.
Zalecamy użycie drugiej metody, ponieważ możesz użyć więcej niż jednej metody płatności.

PD:
W nowej wersji głównej przenieśliśmy views.py plik w folderze piaskownicy, więc pierwsza opcja nie będzie już działać, ale jeśli chcesz ją odzyskać, powiedz nam, proszę!