/sdk-ifood-python

SDK de integração IFood em python

Primary LanguagePythonMIT LicenseMIT

SDK PYTHON

SDK de integração IFood em python

Quer contribuir ? Envie seu PR 😎

Introdução

Para que você possa realizar os testes crie sua conta de desenvolvedor no novo portal do desenvolvedor do IFood

Clique aqui para acessar o portal do Dev do IFood

Documentação

As funções são bem intuitivas, basta dar uma breve olhada na documentação da API do IFood e solicitar o desejado no SDK

Clique aqui para acessar a documentação da API

Instalação

Instale a dependência via gerenciador pip

pip install sdk-ifood

Exemplo prático

from ifood.exception import IfoodException
from ifood.model import Order
from ifood.service import IfoodService

try:
    ifood_service = IfoodService(
        client_id='seu client_id',
        client_secret='seu client_secret',
        grant_type='client_credentials'
    )

    # print(ifood_service.credentials.token)

    # Cada módulo deles são separados no serviço:
    """
      - financial
      - merchant
      - order
      - catalog
    """
    # Buscando os eventos de pedido da sua loja
    event_list = ifood_service.order.get_events_polling()

    for event in event_list:
        # Se o evento for igual a PLACED realize sua regra de negócio
        if event.full_code == 'PLACED':
            # Realize o request dos detalhes, pois se não o IFood não aceitará seu request de confirmação
            order: Order = ifood_service.order.get_order_details(event.order_id)

            # print(order)

            ifood_service.order.post_order_confirm(event.order_id)

        # Realizando o ack do evento
        ifood_service.order.post_events_ack(event)
except IfoodException as ifoodException:
    print(ifoodException.__str__())

Caso deseje utilizar os serviços dos módulos avulsos:

from ifood.service import AuthenticationService, OrderService
from ifood.model import Token, Order

# Create a token instance
credentials = AuthenticationService(client_id='seu client_id', client_secret='seu client_secret')
credentials.execute()
print(credentials.token)

# Módulo pedido
order_service = OrderService(credentials.token)
order: Order = order_service.get_order_details('id do pedido')

Em breve mais módulos e correções...