Skip to content

Lotes

bling_erp_api.resources.product_batches.ProductBatchesResource

ProductBatchesResource(transport: Transport)

Bases: BaseResource

Resource para lotes de produtos do Bling.

Mapeia os endpoints /produtos/lotes e endpoints relacionados de controle de lotes para listagem, consulta, salvamento e operações de situação. Métodos canônicos em pt-BR; aliases em inglês disponíveis para compatibilidade.

Source code in src/bling_erp_api/resources/base.py
def __init__(self, transport: Transport) -> None:
    """Create a resource bound to a transport."""
    self._transport = transport

listar

listar(
    *,
    pagina: int = 1,
    limite: int = 100,
    ids_produtos: Sequence[int],
    ids_lotes: Sequence[int] | None = None,
    ids_depositos: Sequence[int] | None = None,
    codigos_lotes: Sequence[str] | None = None,
    status: str | None = None,
    data_validade_inicial: DateFilter | None = None,
    data_validade_final: DateFilter | None = None,
    data_fabricacao_inicial: DateFilter | None = None,
    data_fabricacao_final: DateFilter | None = None,
    data_criacao_inicial: DateFilter | None = None,
    data_criacao_final: DateFilter | None = None,
) -> ProdutosLotesGetResponse200

Obtém lotes de produtos.

Endpoint: GET /produtos/lotes

Obtém lotes de produtos paginados.

Parameters:

Name Type Description Default
pagina int

N° da página da listagem (Bling: pagina, integer, opcional)

1
limite int

Quantidade de registros que devem ser exibidos por página (Bling: limite, integer, opcional)

100
ids_produtos Sequence[int]

IDs dos produtos (Bling: idsProdutos[], array, obrigatório)

required
ids_lotes Sequence[int] | None

IDs dos lotes (Bling: idsLotes[], array, opcional)

None
ids_depositos Sequence[int] | None

IDs dos depósitos (Bling: idsDepositos[], array, opcional)

None
codigos_lotes Sequence[str] | None

Códigos dos lotes (Bling: codigosLotes[], array, opcional)

None
status str | None

Status do lote (Bling: status, string, opcional)

None
data_validade_inicial DateFilter | None

Data de validade inicial (Bling: dataValidadeInicial, string, opcional)

None
data_validade_final DateFilter | None

Data de validade final (Bling: dataValidadeFinal, string, opcional)

None
data_fabricacao_inicial DateFilter | None

Data de fabricação inicial (Bling: dataFabricacaoInicial, string, opcional)

None
data_fabricacao_final DateFilter | None

Data de fabricação final (Bling: dataFabricacaoFinal, string, opcional)

None
data_criacao_inicial DateFilter | None

Data de inclusão inicial (Bling: dataCriacaoInicial, string, opcional)

None
data_criacao_final DateFilter | None

Data de inclusão final (Bling: dataCriacaoFinal, string, opcional)

None

Returns:

Type Description
ProdutosLotesGetResponse200

Bling API response. Response schemas: 200: LotesDTO; 400: ErrorResponse

Source code in src/bling_erp_api/resources/product_batches.py
def listar(  # noqa: PLR0913
    self,
    *,
    pagina: int = 1,
    limite: int = 100,
    ids_produtos: Sequence[int],
    ids_lotes: Sequence[int] | None = None,
    ids_depositos: Sequence[int] | None = None,
    codigos_lotes: Sequence[str] | None = None,
    status: str | None = None,
    data_validade_inicial: DateFilter | None = None,
    data_validade_final: DateFilter | None = None,
    data_fabricacao_inicial: DateFilter | None = None,
    data_fabricacao_final: DateFilter | None = None,
    data_criacao_inicial: DateFilter | None = None,
    data_criacao_final: DateFilter | None = None,
) -> ProdutosLotesGetResponse200:
    """Obtém lotes de produtos.

    Endpoint: GET /produtos/lotes

    Obtém lotes de produtos paginados.

    Args:
        pagina: N° da página da listagem (Bling: ``pagina``, integer, opcional)
        limite: Quantidade de registros que devem ser exibidos por página (Bling: ``limite``, integer, opcional)
        ids_produtos: IDs dos produtos (Bling: ``idsProdutos[]``, array, obrigatório)
        ids_lotes: IDs dos lotes (Bling: ``idsLotes[]``, array, opcional)
        ids_depositos: IDs dos depósitos (Bling: ``idsDepositos[]``, array, opcional)
        codigos_lotes: Códigos dos lotes (Bling: ``codigosLotes[]``, array, opcional)
        status: Status do lote (Bling: ``status``, string, opcional)
        data_validade_inicial: Data de validade inicial (Bling: ``dataValidadeInicial``, string, opcional)
        data_validade_final: Data de validade final (Bling: ``dataValidadeFinal``, string, opcional)
        data_fabricacao_inicial: Data de fabricação inicial (Bling: ``dataFabricacaoInicial``, string, opcional)
        data_fabricacao_final: Data de fabricação final (Bling: ``dataFabricacaoFinal``, string, opcional)
        data_criacao_inicial: Data de inclusão inicial (Bling: ``dataCriacaoInicial``, string, opcional)
        data_criacao_final: Data de inclusão final (Bling: ``dataCriacaoFinal``, string, opcional)

    Returns:
        Bling API response. Response schemas: 200: LotesDTO; 400: ErrorResponse
    """
    raw = self._get(
        "/produtos/lotes",
        params=_batch_list_params(
            pagina=pagina,
            limite=limite,
            ids_produtos=ids_produtos,
            ids_lotes=ids_lotes,
            ids_depositos=ids_depositos,
            codigos_lotes=codigos_lotes,
            status=status,
            data_validade_inicial=data_validade_inicial,
            data_validade_final=data_validade_final,
            data_fabricacao_inicial=data_fabricacao_inicial,
            data_fabricacao_final=data_fabricacao_final,
            data_criacao_inicial=data_criacao_inicial,
            data_criacao_final=data_criacao_final,
        ),
    )
    return self._validate_response(ProdutosLotesGetResponse200, raw)

obter

obter(id_lote: int) -> ProdutosLotesIdLoteGetResponse200

Obtém um lote de um produto.

Endpoint: GET /produtos/lotes/{idLote}

Obtém um lote de um produto pelo ID.

Parameters:

Name Type Description Default
id_lote int

ID do lote (Bling: idLote, integer, obrigatório)

required

Returns:

Type Description
ProdutosLotesIdLoteGetResponse200

Bling API response. Response schemas: 200: LotesDTO; 404: ErrorResponse

Source code in src/bling_erp_api/resources/product_batches.py
def obter(self, id_lote: int) -> ProdutosLotesIdLoteGetResponse200:
    """Obtém um lote de um produto.

    Endpoint: GET /produtos/lotes/{idLote}

    Obtém um lote de um produto pelo ID.

    Args:
        id_lote: ID do lote (Bling: ``idLote``, integer, obrigatório)

    Returns:
        Bling API response. Response schemas: 200: LotesDTO; 404: ErrorResponse
    """
    raw = self._get(f"/produtos/lotes/{id_lote}")
    return self._validate_response(ProdutosLotesIdLoteGetResponse200, raw)

alterar

alterar(id_lote: int, dados: LotePutRequestDTO) -> JsonObject

Altera um lote de um produto.

Endpoint: PUT /produtos/lotes/{idLote}

Altera um lote de um produto pelo ID.

Parameters:

Name Type Description Default
id_lote int

ID do lote (Bling: idLote, integer, obrigatório)

required
dados LotePutRequestDTO

Dados do lote para atualização (Bling: LotePutRequestDTO, obrigatório)

required

Request body schema: LotePutRequestDTO

Returns:

Type Description
JsonObject

Bling API response. Response schemas: 400: ErrorResponse; 404: ErrorResponse

Source code in src/bling_erp_api/resources/product_batches.py
def alterar(self, id_lote: int, dados: LotePutRequestDTO) -> JsonObject:
    """Altera um lote de um produto.

    Endpoint: PUT /produtos/lotes/{idLote}

    Altera um lote de um produto pelo ID.

    Args:
        id_lote: ID do lote (Bling: ``idLote``, integer, obrigatório)
        dados: Dados do lote para atualização (Bling: ``LotePutRequestDTO``, obrigatório)

    Request body schema: LotePutRequestDTO

    Returns:
        Bling API response. Response schemas: 400: ErrorResponse; 404: ErrorResponse
    """
    return self._put(f"/produtos/lotes/{id_lote}", json=to_json_object(dados))