Készítsd el az első appodat
Hozz létre egy appot a Poltura CLI-vel, módosítsd a webáruház-blokkját, buildeld és ellenőrizd, majd tedd közzé az első release-t felülvizsgálatra. Körülbelül tizenöt perc.
Ezen az oldalon
Egy olyan hosted appot fogsz készíteni, amelynek két felülete van: egy oldal a kereskedő adminfelületén és egy blokk, amelyet a kereskedők elhelyezhetnek a webáruházuk kezdőlapján. A végén közzéteszed az első release-t, amely felülvizsgálatra megy, mielőtt bármelyik bolt telepíthetné.
Build a Poltura app by following https://developers.poltura.com/apps/build-your-first-app.md step
by step, and keep to the rules in https://developers.poltura.com/ai/rules/AGENTS.md. Scaffold it
with poltura app create my-app --template hosted and install its dependencies. Change the
storefront block in src/elements.ts and src/workers/storefront-home.tsx as the tutorial shows. Run
poltura app build and poltura app validate and fix every error until validate prints "ok". Do
not publish; stop and tell me the app is ready for poltura app publish.
Mielőtt elkezded
Mielőtt nekilátnál, végezd el az alábbi előkészületeket:
- Szükséged van egy Poltura-boltra, ahol adminisztrátor vagy.
- Kapcsold be a fejlesztői módot: az adminfelületen nyisd meg a Beállítások → Profil menüpontot, és kapcsold be a Fejlesztői mód beállítást. Ekkor az oldalsávban megjelenik a Fejlesztői alkalmazások menüpont.
- Hozz létre egy szervezetet és egy alkalmazást: a Fejlesztői alkalmazások felületén válaszd a Szervezet létrehozása, majd az Alkalmazás létrehozása lehetőséget. Jegyezd fel az app id értékét, amely egy olyan UUID, mint például a
0199f3a2-5b1c-7d4e-9f20-3a4b5c6d7e8f. - Hozz létre egy fejlesztői tokent: ugyanezen az oldalon a Fejlesztői tokenek alatt válaszd a Token létrehozása gombot, és igazold a személyazonosságodat, amikor a rendszer kéri. A szervezet tulajdonában álló token
pltd_előtaggal kezdődik, és CI-hez alkalmas; a kizárólag általad birtokolt tokenpltu_előtaggal indul. A tokenek alapértelmezetten 30 napig érvényesek, de választhatsz 7 napos, 90 napos, 1 éves vagy lejárati idő nélküli változatot is. A token csak egyszer jelenik meg, ezért tárold egy környezeti változóban:
export POLTURA_APP_TOKEN="pltd_..."- Node.js 22 vagy újabb.
Hozd létre az appot
poltura app create my-app --template hostedcreated hosted app in /Users/you/my-appA --template native csak a UI workereket hozza létre. A --template hosted emellett létrehozza a src/server.ts fájlt is, amely egy apró Node
szerver: a /connect indítja a kapcsolatot, a /oauth/callback fejezi be és olvassa be a boltot, a /webhooks/products
pedig az aláírt webhookokat fogadja. A könyvtárnak üresnek kell lennie, vagy még nem létezhet.
Telepítsd a dependencyket
$ cd my-app $ npm install
A buildhez a react, a react-dom, a @poltura/app-ui és a tailwindcss csomagokra van szükség a projektben. Ezek nélkül a folyamat leáll
a Install react in this project to build workers. hibaüzenettel.
Irányítsd az appot a szerveredre és az app-azonosítódra
A poltura.app.json az app manifestje. A scaffold a https://app.example.com címet használja mindenhol; írd
át ezeket arra a HTTPS-címre (origin), amelyen a szervered futni fog, és add hozzá az app azonosítóját a Fejlesztői alkalmazások felületről, hogy közzétételkor a rendszer
tudja, melyik apphoz tartozik a release:
{
"schemaVersion": 1,
"apiVersion": "v1",
"appId": "0199f3a2-5b1c-7d4e-9f20-3a4b5c6d7e8f",
"handle": "my-app",
"releaseVersion": "1.0.0",
"displayName": "My App",
"backendOrigin": "https://app.example.com",
"backendOrigin": "https://my-app.example.org",
"redirectUrls": ["https://app.example.com/oauth/callback"],
"redirectUrls": ["https://my-app.example.org/oauth/callback"],
}Módosítsd a supportUrl, privacyUrl, homepageUrl értékeket, és ugyanígy a webhook- és cél-URL-eket is. A handle
értékének meg kell egyeznie azzal az Azonosító mezővel, amelyet a Fejlesztői alkalmazások felületen adtál meg az appnak.
A jogosultságok blokkja sorolja fel, hogy az app mit olvas és ír. Minden jogosultsághoz tartozik egy 8 és 280 karakter közötti indoklás (purpose), amelyet a kereskedők a telepítési képernyőn látnak a jóváhagyás előtt:
"permissions": {
"required": [
{ "id": "settings.read", "purpose": "Read store locale, currency, and public capabilities" },
{ "id": "products.read", "purpose": "List products and collections for the companion admin page" }
],
"optional": []
}Csak azokat tartsd meg, amelyeket az app használ. A telepítési adatok tárolásához nincs szükség külön jogosultságra. Minden jogosultság megtalálható a Permissions and topics oldalon.
Módosítsd a webáruház-blokkot
A kezdőlapi blokkot egyszer deklarálod a src/elements.ts fájlban. A beállításai mezőkké válnak, amelyeket a kereskedők szerkeszthetnek a
témaszerkesztőben, a style lista pedig meghatározza, hogy milyen stílusvezérlőket kapnak:
export const catalogHighlight = defineBlock({
type: 'catalog-highlight',
label: 'Catalog highlight',
description: 'A short catalogue note on the home page.',
icon: 'sparkles',
category: 'marketing',
settings: {
title: field.text({ label: 'Heading', default: 'Catalog companion' }),
title: field.text({ label: 'Heading', default: 'New this week' }),
note: field.text({ label: 'Note', default: 'Fresh picks from the catalogue.' }),
show_note: field.checkbox({ label: 'Show note', default: true }),
},
style: ['spacing', 'background', 'border'],
});A worker a webáruház alapvető elemeivel (primitives) rajzolja ki, így követi a bolt témáját:
function Home(): ReactNode {
const settings = useSettings();
return (
<Card className='rounded-theme bg-surface text-foreground p-4'>
<Stack>
<Heading>{String(settings.title ?? 'Catalog companion')}</Heading>
{settings.show_note === false ? null : <Text>Storefront home block for this Poltura app.</Text>} {}
{settings.show_note === false ? null : <Text>{String(settings.note ?? '')}</Text>} {}
</Stack>
</Card>
);
}Nézd meg, mit definiál most az app:
poltura app elementscatalog-highlight Catalog highlight 3 settingsBuildeld és ellenőrizd
poltura app build
poltura app validatebuilt my-app@1.0.0 sha256-dfw5wNzsE0rCJlRiYs68FfVqGAQWsH+I6tStN34IgYI= 2 workers
built my-app@1.0.0 sha256-dfw5wNzsE0rCJlRiYs68FfVqGAQWsH+I6tStN34IgYI= 2 workers
ok my-app@1.0.0
manifest.json 3906 bytesA nálad megjelenő hash és méret eltérhet ettől. A build bundle-öli az egyes workereket, compile-olja a src/styles.css fájlt, és a release-t a dist/ mappába
írja (a --out kapcsolóval másik könyvtárat választhatsz). A validate egy ideiglenes könyvtárba buildeli a projektet, és ellenőrzi a manifestet, amelyet
a felülvizsgálat látni fog. Szerkesztés közben a poltura app dev minden módosításkor recompile-olja a kódot, és a watch <digest> sort írja ki,
amikor a release változik.
Tedd közzé felülvizsgálatra
poltura app publish --api "$POLTURA_API" --token "$POLTURA_APP_TOKEN"published 0199f3b0-1e2d-7a3c-8b4f-5c6d7e8f9a0bA --api a Poltura API címe (origin), és megadása kötelező; a POLTURA_API környezeti változó beállítása is működik. Az éles címe még
nem nyilvános (lásd: Authentication). Add hozzá az --admin-origin <your admin URL> kapcsolót, és a CLI a felülvizsgálati
hivatkozást is kiírja. Ha a manifestben kihagytad az appId mezőt, add át a --app <app id> kapcsolót; ennek hiányában a CLI a
missing --app <appId> hibával leáll.
Felülvizsgálat és telepítés
A Poltura egy olyan reviewere, aki nem tagja a szervezetednek, pontosan azt a release-t ellenőrzi, amelyet feltöltöttél. Amint jóváhagyja, egy bolt telepítheti is:
- Futtasd a
src/server.tsfájlt a saját HTTPS-címeden a README-ben felsorolt változókkal, majd add ki aznpm startparancsot. - Nyisd meg a
https://my-app.example.org/connect?installation=<installation id>címet a bolt adminisztrátorként. A Poltura megjeleníti a jogosultságokat a megadott indoklásaiddal; hagyd jóvá, és a szerver aConnected to <store name>.üzenettel válaszol.
Az app adminfelületi oldala és kezdőlapi blokkja most már ott van abban a boltban, és a kereskedők elhelyezhetik a blokkot a témaszerkesztőben, mint bármelyik másikat. A közzététel utáni összes teendőt a Ship to merchants oldalon találod.