Skip to content

Grupos de Produtos

bling_erp_api.resources.product_groups.ProductGroupsResource

ProductGroupsResource(transport: Transport)

Bases: BaseResource

Resource for Bling product group endpoints.

Maps /grupos-produtos operations for listing, retrieving, creating, updating, and removing product groups. Canonical methods use pt-BR names aligned with the official API; English methods remain compatibility aliases.

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,
    nome: str | None = None,
    nome_pai: str | None = None,
) -> GruposProdutosGetResponse200

Obtém grupos de produtos paginados.

Endpoint: GET /grupos-produtos

Obtém grupos 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
nome str | None

O nome do grupo (Bling: nome, string, opcional)

None
nome_pai str | None

O nome do grupo pai (Bling: nomePai, string, opcional)

None

Returns:

Type Description
GruposProdutosGetResponse200

Bling API response. Response schemas: 200: GruposProdutosDadosDTO

Source code in src/bling_erp_api/resources/product_groups.py
def listar(
    self,
    *,
    pagina: int = 1,
    limite: int = 100,
    nome: str | None = None,
    nome_pai: str | None = None,
) -> GruposProdutosGetResponse200:
    """Obtém grupos de produtos paginados.

    Endpoint: GET /grupos-produtos

    Obtém grupos 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)
        nome: O nome do grupo (Bling: ``nome``, string, opcional)
        nome_pai: O nome do grupo pai (Bling: ``nomePai``, string, opcional)

    Returns:
        Bling API response. Response schemas: 200: GruposProdutosDadosDTO
    """
    params: QueryParams = {
        "pagina": pagina,
        "limite": limite,
        **_product_groups_list_params(nome=nome, nome_pai=nome_pai),
    }
    raw = self._get("/grupos-produtos", params=params)
    return self._validate_response(GruposProdutosGetResponse200, raw)

obter

obter(id_grupo_produto: int) -> GruposProdutosIdGrupoProdutoGetResponse200

Obtém um grupo de produtos.

Endpoint: GET /grupos-produtos/{idGrupoProduto}

Obtém um grupo de produtos pelo ID.

Parameters:

Name Type Description Default
id_grupo_produto int

ID do grupo de produto (Bling: idGrupoProduto, integer, obrigatório)

required

Returns:

Type Description
GruposProdutosIdGrupoProdutoGetResponse200

Bling API response. Response schemas: 200: GruposProdutosDadosDTO, GruposProdutosGrupoProdutoPaiDTO; 404: ErrorResponse

Source code in src/bling_erp_api/resources/product_groups.py
def obter(self, id_grupo_produto: int) -> GruposProdutosIdGrupoProdutoGetResponse200:
    """Obtém um grupo de produtos.

    Endpoint: GET /grupos-produtos/{idGrupoProduto}

    Obtém um grupo de produtos pelo ID.

    Args:
        id_grupo_produto: ID do grupo de produto (Bling: ``idGrupoProduto``, integer, obrigatório)

    Returns:
        Bling API response. Response schemas: 200: GruposProdutosDadosDTO, GruposProdutosGrupoProdutoPaiDTO; 404: ErrorResponse
    """
    raw = self._get(f"/grupos-produtos/{id_grupo_produto}")
    return self._validate_response(GruposProdutosIdGrupoProdutoGetResponse200, raw)

criar

criar(dados: GruposProdutosPostRequest) -> GruposProdutosPostResponse201

Cria um grupo de produtos.

Endpoint: POST /grupos-produtos

Cria um grupo de produtos.

Parameters:

Name Type Description Default
dados GruposProdutosPostRequest

Dados do grupo de produtos. Request body schema: GruposProdutosPostRequest

required

Returns:

Type Description
GruposProdutosPostResponse201

Bling API response. Response schemas: 201: BasePostResponse; 400: ErrorResponse

Source code in src/bling_erp_api/resources/product_groups.py
def criar(self, dados: GruposProdutosPostRequest) -> GruposProdutosPostResponse201:
    """Cria um grupo de produtos.

    Endpoint: POST /grupos-produtos

    Cria um grupo de produtos.

    Args:
        dados: Dados do grupo de produtos. Request body schema: GruposProdutosPostRequest

    Returns:
        Bling API response. Response schemas: 201: BasePostResponse; 400: ErrorResponse
    """
    raw = self._post("/grupos-produtos", json=to_json_object(dados))
    return self._validate_response(GruposProdutosPostResponse201, raw)

alterar

alterar(
    id_grupo_produto: int, dados: GruposProdutosIdGrupoProdutoPutRequest
) -> JsonObject

Altera um grupo de produtos.

Endpoint: PUT /grupos-produtos/{idGrupoProduto}

Altera um grupo de produtos pelo ID.

Parameters:

Name Type Description Default
id_grupo_produto int

ID do grupo de produto (Bling: idGrupoProduto, integer, obrigatório)

required
dados GruposProdutosIdGrupoProdutoPutRequest

Dados do grupo de produtos. Request body schema: GruposProdutosIdGrupoProdutoPutRequest

required

Returns:

Type Description
JsonObject

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

Source code in src/bling_erp_api/resources/product_groups.py
def alterar(
    self, id_grupo_produto: int, dados: GruposProdutosIdGrupoProdutoPutRequest
) -> JsonObject:
    """Altera um grupo de produtos.

    Endpoint: PUT /grupos-produtos/{idGrupoProduto}

    Altera um grupo de produtos pelo ID.

    Args:
        id_grupo_produto: ID do grupo de produto (Bling: ``idGrupoProduto``, integer, obrigatório)
        dados: Dados do grupo de produtos. Request body schema: GruposProdutosIdGrupoProdutoPutRequest

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

remover

remover(id_grupo_produto: int) -> JsonObject

Remove um grupo de produtos.

Endpoint: DELETE /grupos-produtos/{idGrupoProduto}

Remove um grupo de produtos pelo ID.

Parameters:

Name Type Description Default
id_grupo_produto int

ID do grupo de produto (Bling: idGrupoProduto, integer, obrigatório)

required

Returns:

Type Description
JsonObject

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

Source code in src/bling_erp_api/resources/product_groups.py
def remover(self, id_grupo_produto: int) -> JsonObject:
    """Remove um grupo de produtos.

    Endpoint: DELETE /grupos-produtos/{idGrupoProduto}

    Remove um grupo de produtos pelo ID.

    Args:
        id_grupo_produto: ID do grupo de produto (Bling: ``idGrupoProduto``, integer, obrigatório)

    Returns:
        Bling API response. Response schemas: 400: ErrorResponse; 404: ErrorResponse
    """
    return self._delete(f"/grupos-produtos/{id_grupo_produto}")

remover_varios

remover_varios(
    ids_grupos_produtos: list[int],
) -> GruposProdutosDeleteResponse200

Remove múltiplos grupos de produtos.

Endpoint: DELETE /grupos-produtos

Remove múltiplos grupos de produtos pelos IDs.

Parameters:

Name Type Description Default
ids_grupos_produtos list[int]

IDs dos grupos de produtos (Bling: idsGruposProdutos[], array, obrigatório)

required

Returns:

Type Description
GruposProdutosDeleteResponse200

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

Source code in src/bling_erp_api/resources/product_groups.py
def remover_varios(self, ids_grupos_produtos: list[int]) -> GruposProdutosDeleteResponse200:
    """Remove múltiplos grupos de produtos.

    Endpoint: DELETE /grupos-produtos

    Remove múltiplos grupos de produtos pelos IDs.

    Args:
        ids_grupos_produtos: IDs dos grupos de produtos (Bling: ``idsGruposProdutos[]``, array, obrigatório)

    Returns:
        Bling API response. Response schemas: 200: ErrorResponse; 400: ErrorResponse
    """
    raw = self._delete(
        "/grupos-produtos",
        params={"idsGruposProdutos[]": ids_grupos_produtos},
    )
    return self._validate_response(GruposProdutosDeleteResponse200, raw)