Painel produto

2 funções do TermoPortal para painel produto.

// npm install termo_core --save-exact
import * as portal from "termo_core/portal";
// ou: import { portal } from "termo_core";
FunçãoRotaO que faz
buscar_paginador_painel_produtoGET /painel_produtoUma página da lista de Produtos do painel, por cursor
buscar_informacoes_paginador_painel_produtoGET /painel_produto/paginadorTotal e páginas da lista de Produtos do painel

buscar_paginador_painel_produto

GET/painel_produto Exige credencial

Uma página da lista de Produtos do painel, por cursor

Só colaborador interno (mesma regra da leitura de produto_conflito_sincronizacao). Lê a tabela produto inteira de um cache em memória (descartado a cada gravação em produto ou em conflito de sincronização, e recarregado do banco no máximo a cada 10 minutos), em ordem alfabética do nome (sem diferença de maiúscula; empate pelo id), e devolve só o array das 50 linhas da página. A paginação é por cursor: a primeira página vai sem cursor, e a seguinte manda em cursor o id da última linha recebida. busca (sem acento e sem maiúscula) procura o texto no nome ou no SKU. ultima_sincronizacao (data ISO, AAAA-MM-DD ou data e hora com fuso) é o início da última sincronização do painel: produto criado depois dela vem com estado novo e produto da API sincronizado depois dela, mudou; com conflito de sincronização pendente, conflito; senão, em-dia. Total e páginas vêm de GET /painel_produto/paginador, com a mesma busca.

function buscar_paginador_painel_produto(
  credencial_de_acesso: CredencialDeAcesso,
  parametros: ParametrosDeBuscarPaginadorPainelProduto = {},
  opcoes_da_chamada?: OpcoesDaChamada,
): Promise<Array<tipos.PainelProdutoLinha>>
Exemplo
import { CredencialDeAcesso } from "termo_core";
import { buscar_paginador_painel_produto } from "termo_core/portal";

const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await buscar_paginador_painel_produto(credencial_de_acesso, { busca: "..." });

Argumentos

Nome

Tipo

Retorno: Promise<Array<tipos.PainelProdutoLinha>> · Rust: Result<Vec<tipos::PainelProdutoLinha>, ErroAoChamarServico>

buscar_informacoes_paginador_painel_produto

GET/painel_produto/paginador Exige credencial

Total e páginas da lista de Produtos do painel

Só colaborador interno (mesma regra da leitura de produto_conflito_sincronizacao). Recebe os mesmos parâmetros de GET /painel_produto (cursor e ultima_sincronizacao não mudam a conta) e devolve total (produtos com a busca), paginas (total dividido por tamanho, arredondado para cima, no mínimo 1) e tamanho (sempre 50).

function buscar_informacoes_paginador_painel_produto(
  credencial_de_acesso: CredencialDeAcesso,
  parametros: ParametrosDeBuscarInformacoesPaginadorPainelProduto = {},
  opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.PainelProdutoPaginador>
Exemplo
import { CredencialDeAcesso } from "termo_core";
import { buscar_informacoes_paginador_painel_produto } from "termo_core/portal";

const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await buscar_informacoes_paginador_painel_produto(credencial_de_acesso, { busca: "..." });

Argumentos

Nome

Tipo

Retorno: Promise<tipos.PainelProdutoPaginador> · Rust: Result<tipos::PainelProdutoPaginador, ErroAoChamarServico> · veja PainelProdutoPaginador.

Tipos

Tipos usados pelas funções desta página. O nome é o mesmo nos dois pacotes.

PainelProdutoLinha

import type { PainelProdutoLinha } from "termo_core/portal";

export interface PainelProdutoLinha {
  chave: string;
  codigo: string;
  configurado: boolean;
  cor: string;
  estado: string;
  estoque?: number | null;
  id: string;
  imagem?: string | null;
  na_vitrine: boolean;
  nome: string;
  origem: string;
  preco: number;
  sincronizado_em?: string | null;
  skus: Array<string>;
  tem_imagem: boolean;
  tipo: string;
}

PainelProdutoPaginador

import type { PainelProdutoPaginador } from "termo_core/portal";

export interface PainelProdutoPaginador {
  paginas: number;
  tamanho: number;
  total: number;
}

Nesta página