Aller au contenu

Lista o que um space Loja mostra, em produtos, planos e adicionais

GET/api/storefront/spaces/{spaceId}/products

Auth
Public
Clé d’API:
store:read
X-CommunityId
X-CommunityId Envoyez le X-CommunityId de la communauté où l’opération a lieu.
Les descriptions des endpoints viennent directement de la spécification de l’API et sont en portugais pour l’instant. L’interface autour est traduite.

Devolve o que o space `storefront` mostra a quem pergunta. Segue as mesmas regras de acesso do space (public / members / plan / private com concessões, seção e space em AND): quem não pode abrir o space recebe 403, com o mesmo `data` do `GET /api/spaces/{id}` (`reason`, `actions` e, com cadeado, `lockReason` e `space`). Só itens `ACTIVE` e não excluídos da comunidade do header; nunca traz custo de provedor. `allowedPaymentMethods` vem como array. `soldOut` indica estoque esgotado sem revelar a quantidade. A resposta vem em três grupos. `products`: só `ONE_TIME` e `INSTALLMENT` sem pré-requisito; um produto avulso listado aqui pode ser comprado em `POST /api/checkout` por quem enxerga este space, mesmo com `directLinkEnabled` desligado. `plans`: cada plano uma vez, `{ id, name, slug, description, fromPrice, currency, options[] }`, com `fromPrice` o menor preço entre as opções à venda e `options` as opções de cobrança (mesmos campos de produto, mais `optionKey` e `savingsPercentage`, o "Economize X%" com a mesma regra de `GET /api/checkout/subscription-groups`, contado sobre todas as opções à venda do plano). Nunca traz plano `link_only`, inativo, excluído ou sem opção à venda, nem opção de cobrança solta. Para quem administra a Loja, cada plano traz também `visibility`. O plano leva ao fluxo do plano (`/pricing/<slug>`). Desde 2026-10-30, cada plano traz `unlocks`: os spaces que assinar o plano (qualquer opção de cobrança dele) abre, `{ id, title, icon, module, slug }`: liberados ao plano, a uma opção dele ou a uma seção inteira (aí contam os spaces da seção que não pedem liberação própria), e que um membro sem o plano não abre. Só os que quem lê enxerga no menu (aberto ou com cadeado; para o visitante deslogado, o menu público), na ordem do menu (seção, posição). Nunca space oculto, só da administração, excluído ou de outra comunidade. Lista vazia quando nada aparece. `addOns`: cada adicional com `availability` calculada para quem pergunta: `owned` (já tem; `subscriptionId` é a assinatura do adicional), `add` (o plano que a pessoa assina, ativo ou em teste, aceita o adicional; `subscriptionId` é essa assinatura, para `POST /api/subscriptions/{id}/add-ons`), `upgrade` (tem plano, mas outro: troca de plano para um de `plans`) ou `subscribe` (sem plano, ou visitante: assinar um de `plans`). `plans` lista `{ id, name, slug }` dos planos que aceitam o adicional, só os públicos ou o que a pessoa assina. Um adicional que não teria plano para indicar não aparece, exceto para quem administra. Cada adicional traz `prerequisiteGroupIds`. `notices` só vem para quem administra (`canManageSpace`): `optionsDropped` (`count` opções de cobrança fora de plano deixaram de aparecer) e `planLinkOnly` (`planId`, `planName`: plano escolhido que está Somente com link), cada um com `message` traduzida. Em `all`, todo avulso, plano público e adicional ativo da comunidade; em `selected`, só os escolhidos, na ordem escolhida. Uma opção de cobrança escolhida antes da fase 3 aparece como o plano dela.

Paramètres

NomEmplacementTypeDescription
spaceIdobligatoirepathstring (uuid)

En-têtes

NomTypeDescription
X-CommunityIdfacultatifstring (uuid)ID da comunidade em que a operação acontece. Obrigatório na maioria dos endpoints com escopo de comunidade.

Réponses

StatutDescription
200Operação realizada com sucesso.
400Requisição inválida — falha de validação.
403Autenticado, mas sem permissão para esta operação.
404Recurso não encontrado.
500Erro interno do servidor.

Exemple curl

curl -X GET "https://api.memberfy.net/api/storefront/spaces/<spaceId>/products" \
  -H "X-CommunityId: $COMMUNITY_ID"