Uma instância, quatro chamadas, um track e algumas peças soltas. Os tipos vêm do contrato OpenAPI e nunca são escritos à mão: se o contrato muda, o pacote muda com ele.

createStorefront(options): Storefront

A instância:
resolveItemId, getCatalogItemByExternalId (com os seus try…), cartId e track.checkoutStarted ainda não estão na versão publicada no npm (0.1.0). Até a próxima, resolva o id com GET /v1/catalog/items/by-external/{external_id} e mande cart_id e checkout_started pela API.

As opções

Só as duas primeiras são obrigatórias.
string
obrigatório
A chave spk_… que você copia do admin. Por que ela pode ser pública: Chaves e segurança.
string
obrigatório
A conexão da sua loja (cn_…). É validada contra a loja da chave.
string | (() => string | null | undefined)
O id que a sua loja dá ao carrinho. Mande-o sempre que houver carrinho: é a única coisa que liga a venda à recomendação quando o pedido entra. Uma função é o normal, porque o carrinho ganha seu id com o primeiro produto e ele é lido em cada chamada.
string
padrão:"https://api.crossup.ai/salespilot"
O endpoint da API. Em produção, https://salespilot.crossup.ai.
typeof fetch
Um fetch próprio, para testes ou para um runtime sem fetch global.
boolean
padrão:"true"
true o guarda em localStorage e cookie, espelhados. false o deixa na memória: continua viajando, mas cada carregamento é um visitante novo. Use sem consentimento.
VisitorStorage
Um storage próprio. Ganha de persistVisitor.
Domínio do cookie (.minhaloja.com): o mesmo visitante em todos os subdomínios.
(() => Visitor | undefined) | false
Um visitante próprio, para quem já o resolveu (um servidor). false não manda visitante em nenhuma requisição.
(error: unknown) => void
É chamado quando o visitante não pôde ser resolvido e a requisição saiu sem ele. Nunca é chamado com um erro da API.
(() => ClientContext | undefined) | false
O contexto do navegador (página, referrer, UTM, idioma, tela). Por padrão é lido em cada requisição; false não o manda; uma função o substitui. Nunca interrompe a requisição.
(error: unknown) => void
Cada sinal que não pôde ser montado, que o servidor rejeitou, que foi descartado por um 4xx ou que caiu da fila cheia. Nunca é chamado por uma nova tentativa.
(result, signal) => void
Cada resposta do servidor a um sinal: accepted, duplicate ou rejected.
SignalOptions
Como os sinais são agrupados e reenviados: flushIntervalMs (2000), maxQueueSize (200), maxBackoffMs (60000), storage. Ver Reportar sinais.

Tipos

Erros

Visitante e storage

Sinais