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ção | Rota | O que faz |
|---|---|---|
buscar_paginador_painel_produto | GET /painel_produto | Uma página da lista de Produtos do painel, por cursor |
buscar_informacoes_paginador_painel_produto | GET /painel_produto/paginador | Total 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>>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>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;
}