Ghiduri practice
Conectează un comerciant și publică un catalog
Consimțământ în Monedo, produse selectate de comerciant și comenzi izolate per aplicație.
1. Obține accesul, nu parola comerciantului
Comerciantul acordă permisiuni aplicației din experiența Monedo. Aplicația ta nu cere credențialele lui Launch și nu folosește o integrare privată. Păstrează legătura dintre utilizatorul sau organizația locală și conexiunea Monedo. Activarea operațională, publicarea catalogului și eligibilitatea de plată sunt verificări distincte; nu deduce că toate sunt active din simpla existență a unei conexiuni.
2. Folosește contextul corect
Commerce folosește un merchant_id opac de forma mer_..., asociat aplicației. Acesta vine din conexiunea autorizată, inclusiv evenimentul merchant.connection.activated. Nu îl înlocui cu UUID-ul firmei Launch. În Payments, identificatorul de recipient are alt rol decât merchant_id. Fiscal păstrează în contractul curent business UUID pentru Monedo-Merchant-Id. Nu converti aceste identificatoare prin prefixe sau tăierea unui șir; păstrează asocierile autorizate explicit.
import { MonedoCommerce } from '@monedo/commerce';
const commerce = new MonedoCommerce({ apiKey: process.env.MONEDO_API_KEY });
const merchant = commerce.forMerchant(authorizedMerchantId);
const locations = await merchant.locations.list({ limit: 20 });
for await (const page of merchant.catalog.productPages({ location_id: locationId })) {
// Persist only in this application's merchant + location namespace.
await catalogStore.upsertPage(authorizedMerchantId, locationId, page.data);
}3. Respectă selecția și disponibilitatea
Afișează catalogul expus aplicației, nu întregul nomenclator intern al firmei. Păstrează locația, coordonatele și starea operațională împreună cu datele produselor. Refă datele afectate de evenimente și folosește catalog/changes pentru sincronizare incrementală. Nu șterge local toate produsele înainte de a fi parcurs complet paginarea; o pagină goală sau un request eșuat nu este un catalog complet.
4. Creează comenzi verificabile
Totalul afișat clientului trebuie comparat cu validarea serverului, nu tratat ca autoritate. La schimbarea prețului, indisponibilitate sau diferență de versiune cere reconfirmare. Plata și comanda sunt resurse corelate, dar separate: o comandă creată nu dovedește încasarea, iar o plată confirmată trebuie legată explicit de comanda corectă.
- Folosește o external_reference stabilă și idempotency pentru creare.
- Verifică existența și apartenența locației și produselor la comerciantul autorizat.
- Nu publica o comandă neplătită ca pregătită pentru producție atunci când fluxul cere plata în avans.
- La revocarea accesului, oprește sincronizarea și operațiile, tratează 403 și păstrează doar datele pe care ai dreptul să le reții.