Hoppa till innehåll

Integrera handel i min app

Starta kassaflöden och begränsa premiumfunktioner direkt från din appkod.

När du har anslutit Stripe och skapat en produkt kan din app ta emot betalningar. I en app byggd med Proyecta sker det från webbläsaren mot det publika handels-API:et — det finns ingen backend för dig att sätta upp, och ingen hemlig nyckel inblandad.

Butikskataloger är innehåll. Om dina produkter är en innehållsbaserad säljbar samling (se Produkter & funktioner) läser du katalogen och renderar priser via Content API:et — produktdatan finns där. Du startar fortfarande kassaflödet på samma sätt och skickar med variant_id för den kopplade Commerce-produkten.

import * as platform from '@/lib/platformClient.ts';
import { useEntitlement } from '@/hooks/useEntitlement.ts';

commerceCheckout skapar en Stripe-hostad kassasession och returnerar en URL som du skickar köparen till. Du skapar ingen kund först — plattformen registrerar en utifrån själva kassaflödet:

const { url } = await platform.commerceCheckout({
lineItems: [{ variantId: 'var_pro_monthly', quantity: 1 }],
successUrl: 'https://myapp.com/welcome',
cancelUrl: 'https://myapp.com/pricing',
customerEmail: shopperEmail, // optional — prefills Stripe checkout
});
window.location.href = url;

Flera rader stöds. För prenumerationer är quantity antal platser. Om köparen skrev in en kupongkod skickar du med den — servern validerar den och beräknar rabatten utifrån dina commerce-data, aldrig utifrån ett belopp som webbläsaren skickar.

const { hasAccess, isLoading } = useEntitlement('pro_features');
if (isLoading) return <Spinner />;
if (!hasAccess) return <UpgradePrompt />;
return <ProOnlyThing />;

Nyckeln är funktionens slug (t.ex. pro_features), inte funktionsobjektets id. Kontrollen sker på servern och är knuten till den inloggade sessionen, så den kan inte förfalskas från webbläsaren. Se Produkter & funktioner för modellen med rättigheter.

  • "Build a /pricing page that shows my products and starts a checkout when a button is clicked."
  • "Gate the /pro route so only customers with pro_features access can see it."
  • "Add a cart with a coupon code field and a Checkout button."