JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 69
  • Score
    100M100P100Q83475F
  • License MIT

Pariette Platform SDK - CMS, E-Commerce & SaaS entegrasyonu

Package Exports

  • @pariette/sdk

Readme

@pariette/sdk

Pariette platformu icin resmi Node.js / Browser SDK. CMS, E-Commerce ve SaaS entegrasyonu icin tek paket.

Kurulum

npm install @pariette/sdk

Hizli Baslangic

import { Pariette } from '@pariette/sdk'

const pariette = new Pariette({
  mode: 'production',       // 'production' veya 'test'
  token: 'YOUR_ENV_TOKEN',  // Environment token
  locale: 'tr'              // Opsiyonel
})

Not: API URL'leri sabittir ve degistirilemez:

  • Production: live.pariette.com/api
  • Test: dev.pariette.com/api

Kimlik Dogrulama (Auth)

// Giris yap - token otomatik set edilir
const { access_token, user } = await pariette.auth.login({
  email: 'user@example.com',
  password: 'password123'
})

// Mevcut kullanici bilgisi
const me = await pariette.auth.me()

// Token'i manuel set et (ornegin localStorage'dan)
pariette.setAuthToken('your-jwt-token')

// Cikis yap
await pariette.auth.logout()

Canvas (CMS)

// Tum sayfalari listele
const pages = await pariette.canvas.list({ page: 1, per_page: 10 })

// Tek sayfa getir
const page = await pariette.canvas.getPublic('about-us')

// Query parametreleri ile getir (ornegin: tip filtresi)
const category = await pariette.canvas.getPublic('otel', {
  type: 'productCategory'
})

// Yeni sayfa olustur
await pariette.canvas.create({
  title: 'Blog Yazisi',
  type: 'blog',
  status: 1,
  contents: [{
    locale: 'tr',
    title: 'Blog Yazisi',
    body: '<p>Icerik buraya...</p>'
  }]
})

// Sayfa guncelle
await pariette.canvas.update('about-us', {
  title: 'Hakkimizda - Guncellendi'
})

// Sayfa sil
await pariette.canvas.delete(123)

Koleksiyonlar & Kategoriler (Collections)

Sayfa tipi category, productCategory veya collection oldugunda, o sayfanin id'si ile iliskili icerikler cekilir.

// 1. Kategori bilgisini al
const category = await pariette.collections.getCategory('haberler')

// 2. O kategoriye ait icerikleri cek
const news = await pariette.collections.getItems(category.data.id, {
  type: 'news',
  status: 1,
  paginate: 10,
  page: 1
})

// Urun kategorisi icin
const prodCategory = await pariette.collections.getCategory('bebek-arabalari', 'productCategory')
const products = await pariette.collections.getProducts(prodCategory.data.id, {
  paginate: 20,
  orderBy: 'id',
  sort: 'desc'
})

// One cikan urunler
const featured = await pariette.collections.getFeaturedProducts(prodCategory.data.id, {
  paginate: 10
})

// Tum kategorileri listele
const categories = await pariette.collections.listCategories({ limit: 100 })
const productCategories = await pariette.collections.listProductCategories({
  limit: 100,
  orderBy: 'order',
  sort: 'asc'
})

// Tarih filtreli koleksiyon
const filtered = await pariette.collections.getItems(categoryId, {
  type: 'news',
  start: '2026-01-01',
  end: '2026-03-31',
  paginate: 20
})

Urunler (Products)

// Urun listesi - admin (filtreli)
const products = await pariette.products.list({
  page: 1,
  search: 'bebek arabasi',
  min_price: 100,
  max_price: 5000
})

// Urun listesi - public (misafir kullanicilar icin)
const publicProducts = await pariette.products.listPublic({
  paginate: 20,
  orderBy: 'id',
  sort: 'desc'
})

// Urun detayi
const product = await pariette.products.get('bebek-arabasi-deluxe')

// Urun olustur
await pariette.products.create({
  title: 'Bebek Arabasi Deluxe',
  price: 2999.90,
  currency: 'TRY',
  sku: 'BA-DLX-001',
  status: 1
})

// Varyant ekle
await pariette.products.setVariants(productId, [
  { title: 'Kirmizi', sku: 'BA-DLX-RED', price: 2999.90 },
  { title: 'Mavi', sku: 'BA-DLX-BLU', price: 2999.90 }
])

// Fiyat set et (coklu para birimi)
await pariette.products.setPrices(productId, [
  { currency: 'TRY', price: 2999.90 },
  { currency: 'EUR', price: 89.90 }
])

// Toplu urun olustur
await pariette.products.bulkCreate([product1, product2, product3])

Siparisler (Orders)

// Siparis listesi
const orders = await pariette.orders.list({ page: 1, status: 'pending' })

// Siparis detayi
const order = await pariette.orders.get(orderId)

// Durum guncelle
await pariette.orders.updateStatus(orderId, {
  status: 'shipped',
  note: 'Kargo gonderildi'
})

// Kargo olustur
await pariette.orders.createShipment(orderId, {
  carrier: 'Yurtici Kargo',
  tracking_number: 'YK123456789'
})

// Iade
await pariette.orders.refund(orderId, {
  amount: 500,
  reason: 'Musteri iade talebi'
})

// Zaman cizelgesi
const timeline = await pariette.orders.timeline(orderId)

Sepet (Basket)

// Sepete urun ekle
await pariette.basket.addOrCreateItem({
  product_id: 123,
  quantity: 2
})

// Sepet detayi
const cart = await pariette.basket.get(basketId)

// Miktar guncelle
await pariette.basket.updateItem(basketId, itemId, { quantity: 3 })

// Odeme yap
await pariette.basket.checkout(basketId, {
  billing_address: { ... },
  payment_method: 'credit_card',
  payment_data: { ... }
})

Dosya Yonetimi (Storage)

// Tek resim yukle
const image = await pariette.storage.uploadImage(file, (progress) => {
  console.log(`Yukleniyor: ${progress}%`)
})

// Toplu resim yukle (max 10 dosya, her biri max 5MB)
const images = await pariette.storage.uploadImages(files, {
  convert: 'webp',          // WebP'ye donustur
  quality: 85,               // Kalite (0-100)
  canvas_id: 123,            // Otomatik canvas'a bagla
  product_id: 456            // Otomatik urune bagla
}, (progress) => {
  console.log(`Yukleniyor: ${progress}%`)
})

// Galeri olustur
await pariette.storage.galleries.create({ title: 'Urun Resimleri' })
await pariette.storage.galleries.addImage({
  gallery_id: 1,
  image_id: image.data.id
})

Abonelik & Faturalama

// Fiyat hesapla
const pricing = await pariette.subscriptions.calculatePricing({
  product_id: 'pro-plan',
  plan: 'monthly',
  billing_profile_id: 1
})

// Abone ol
await pariette.subscriptions.subscribe({
  product_id: 'pro-plan',
  plan: 'monthly',
  billing_profile_id: 1,
  card: {
    number: '4111111111111111',
    exp_month: '12',
    exp_year: '2027',
    cvc: '123',
    holder_name: 'Ahmet Yilmaz'
  }
})

// Fatura profili olustur
await pariette.subscriptions.billingProfiles.create({
  type: 'corporate',
  name: 'Bebiletto A.S.',
  tax_id: '1234567890',
  tax_office: 'Kadikoy',
  address: 'Ornek Mah. Test Cad. No:1',
  city: 'Istanbul',
  postal_code: '34000',
  country: 'TR'
})

Stok Yonetimi (Inventory)

// Stok listesi
const stock = await pariette.inventory.list('TOKEN')

// Stok ayarla
await pariette.inventory.adjust('TOKEN', warehouseId, productId, {
  quantity: 50,
  type: 'set',
  reason: 'Sayim sonucu'
})

// Dusuk stok uyarilari
const lowStock = await pariette.inventory.lowStock('TOKEN')

// Stok transferi olustur
await pariette.inventory.transfers.create('TOKEN', {
  from_warehouse_id: 1,
  to_warehouse_id: 2,
  items: [{ product_id: 123, quantity: 10 }]
})
// Menu listesi
const menus = await pariette.navigation.list()

// Menu olustur
await pariette.navigation.create({ title: 'Ana Menu' })

// Link ekle
await pariette.navigation.links.create({
  navigation_id: 1,
  title: 'Anasayfa',
  url: '/',
  order: 1
})

// Linkleri yeniden sirala
await pariette.navigation.links.reorder([
  { id: 1, order: 0 },
  { id: 2, order: 1 },
  { id: 3, order: 2 }
])

Hata Yonetimi

import { ParietteError } from '@pariette/sdk'

try {
  await pariette.products.create({ title: '' })
} catch (error) {
  if (error instanceof ParietteError) {
    console.log(error.code)     // 422
    console.log(error.message)  // "Validation failed"
    console.log(error.errors)   // { title: ["Title is required"] }
  }
}

Konfigürasyon

const pariette = new Pariette({
  mode: 'production',  // 'production' | 'test' (zorunlu)
  token: 'ENV_TOKEN',  // Environment token (zorunlu)
  locale: 'tr',        // Dil (opsiyonel)
  timeout: 30000       // Timeout ms (opsiyonel, varsayilan: 30000)
})

// Runtime'da degistir
pariette.setLocale('en')
pariette.setAuthToken('jwt-token')

Moduller

Modul Erisim Aciklama
Auth pariette.auth Kimlik dogrulama, kayit, 2FA
Canvas pariette.canvas CMS sayfa yonetimi
Collections pariette.collections Kategori & koleksiyon sistemi
Products pariette.products Urun CRUD, varyant, fiyat
Orders pariette.orders Siparis yonetimi, kargo, iade
Environments pariette.environments Ortam bilgisi, istatistikler
Subscriptions pariette.subscriptions Abonelik, faturalama
Inventory pariette.inventory Stok yonetimi, transfer
Storage pariette.storage Dosya/resim yukleme, galeri
Basket pariette.basket Sepet islemleri
Navigation pariette.navigation Menu yonetimi
Attributes pariette.attributes Ozellik & lookup yonetimi
Users pariette.users Adres yonetimi
Notifications pariette.notifications Email, SMS, push bildirim

Lisans

MIT