/ / Contrassegno dell'utente alla consegna in django-oscar - python, django, e-commerce, django-oscar

Pagamento in contrassegno dell'utente in django-oscar - python, django, e-commerce, django-oscar

Sto lavorando nel progetto e-shop utilizzando django-oscar e sto provando ad aggiungere il supporto COD. Sto usando django-oscar-cash-on-delivery.

Ho fatto il passaggi, puoi vedere la mia configurazione:

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

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

E ha creato un'app chiamata apps e caricato correttamente:

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

In appscartella che ho creato un apps.py file con questo codice all'interno:

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

Ma non riesco a capire perché Oscar non mi mostri il modello di pagamento con il metodo di pagamento in contrassegno.

Questa è la mia cartella della struttura: inserisci la descrizione dell'immagine qui

Qualcuno mi può aiutare con questo?

risposte:

2 per risposta № 1

Esistono due modi per integrare il pagamento in contrassegno django-oscar progetto:

  1. Sostituisci applicazione di pagamento:
    In questo caso è necessario sostituire i modelli di checkout perché per impostazione predefinita Oscar don "t or can" t get the cashondelivery modelli di checkout, almeno payment_details. Quindi, prima devi sovrascrivere questi file modello e dopo creare un'app e al suo interno aggiungere un app.py file in cui si sovrascrive l'applicazione di pagamento come cashondelivery documentazione dice.

    inserisci la descrizione dell'immagine qui

  2. Crea una visualizzazione personalizzata e un'app di pagamento:
    Puoi vedere dentro django-oscar-paypal pacchetto di integrazione un esempio sandbox per l'integrazione paypal con Oscar. In questo pacchetto puoi vedere che usano un'app di pagamento per sostituire l'app di pagamento predefinita; all'interno di questa app hanno la precedenza view.py file e app.view file; sovrascrivere modelli e sovrascrivere app.py file.

Quindi, possiamo fare lo stesso per django-oscar-cash-on-delivery, così:
un. Crea una nuova applicazione chiamata checkout dentro il apps applicazione se vuoi, o qualcuno come te. Questa applicazione conterrà solo le viste e il file dell'applicazione.inserisci la descrizione dell'immagine qui

b. Nel file delle viste inseriremo il file cash-on-delivery visualizzazioni file, ora è nella cartella sanbox.

c. Nel file dell'app all'interno del checkout dichiariamo l'applicazione di pagamento:

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

class CheckoutApplication(app.CheckoutApplication):
payment_details_view = PaymentDetailsView

application = CheckoutApplication()

d. Infine, dichiariamo la nostra app di pagamento come app di pagamento predefinita come documentazione dice.
e. Abbiamo assicurato che l'applicazione sovrascriva l'applicazione di checkout predefinita, nelle impostazioni:

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

Ora puoi pagare con il metodo di pagamento in contrassegno nel tuo progetto Oscar.
Ti consigliamo di utilizzare il secondo metodo perché ti consente di utilizzare più di un metodo di pagamento.

PD:
Quale nuova versione principale abbiamo spostato views.py file nella cartella sandbox, quindi la prima opzione non funzionerà più. Ma, se vuoi che ritorni, dicci per favore!