/ / Usuário em dinheiro na entrega em django-oscar - python, django, e-commerce, django-oscar

Usuário em dinheiro na entrega em django-oscar - python, django, e-commerce, django-oscar

Eu estou trabalhando em projeto e-shop usando django-oscar e eu tentando adicionar suporte a COD. Estou a usar django-oscar-cash-on-delivery.

Eu fiz o passos, você pode ver minha configuração:

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

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

E criei um aplicativo chamado apps e carregado corretamente:

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

Dentro appspasta eu criei um apps.py arquivo com este código dentro:

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

Mas eu não consigo entender porque Oscar não me mostra o modelo de pagamento com dinheiro no método de entrega.

Esta é a minha pasta de estrutura: insira a descrição da imagem aqui

Alguém pode me ajudar com isso?

Respostas:

2 para resposta № 1

Existem duas maneiras de integrar caixa na entrega em django-oscar projeto:

  1. Substituir aplicativo de check-out:
    Neste caso, é necessário substituir modelos de checkout, porque por padrão Oscar não pode ou não conseguir cashondelivery modelos de checkout, pelo menos payment_details. Então, primeiro você precisa substituir esses arquivos de modelo e depois criar um aplicativo e dentro dele adicionar um app.py arquivo onde você substituir o aplicativo de check-out como cashondelivery documentação diz.

    insira a descrição da imagem aqui

  2. Crie um aplicativo de visualização e pagamento personalizado:
    Você pode ver em django-oscar-paypal pacote de integração um exemplo de sandbox para integrar paypal com Oscar. Você pode ver neste pacote que eles usam um aplicativo de checkout para substituir o aplicativo de checkout defaul; dentro deste aplicativo eles substituem view.py arquivo e app.view Arquivo; substituir modelos e anular app.py Arquivo.

Então, podemos fazer o mesmo para django-oscar-cash-on-delivery, assim:
uma. Crie um novo aplicativo chamado checkout dentro de apps aplicação, se você quiser, ou alguns como você. Este aplicativo somente conterá as visualizações e o arquivo do aplicativo.insira a descrição da imagem aqui

b. No arquivo de vistas, vamos colocar o cash-on-delivery visualizações arquivo, agora está na pasta sanbox.

c. No arquivo do aplicativo dentro do check-out, declaramos o aplicativo de check-out:

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

class CheckoutApplication(app.CheckoutApplication):
payment_details_view = PaymentDetailsView

application = CheckoutApplication()

d. Por fim, declaramos nosso aplicativo de check-out como o aplicativo de checkout padrão documentação diz.
e. Nós garantimos que o aplicativo substitua o aplicativo de check-out padrão, nas configurações:

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

Agora você pode pagar com dinheiro no método de entrega em seu projeto do Oscar.
Recomendamos usar a segunda maneira, porque você pode usar mais de um método para pagamento.

PD:
Que a nova versão master movemos o views.py arquivo na pasta sandbox, assim, a primeira opção não funciona mais. Mas, se você quiser voltar, diga-nos por favor!