Cliente API

Tienda

Lee la configuración y metadatos de la tienda con client.store.get — moneda, zona horaria, dominio y más.

client.store le da a tu plugin acceso a la configuración de la tienda del comerciante. Esta es típicamente la primera llamada que hace un plugin después de la instalación para entender la configuración regional, moneda y dominio de la tienda.

Permisos Requeridos

OperaciónPermiso requerido
getread:store

Mapeo HTTP

MétodoVerbo HTTPRuta
get()GET/store

Métodos

get

Obtiene la configuración y metadatos de la tienda.

const store = await client.store.get();

console.log(store.name);      // "Mi Tienda de Moda"
console.log(store.domain);    // "mi-tienda-de-moda.com"
console.log(store.currency);  // "DOP"
console.log(store.timezone);  // "America/Santo_Domingo"
console.log(store.locale);    // "es-DO"

Casos de Uso Comunes

Formatear precios con la moneda correcta

const store = await client.store.get();
const { data: products } = await client.products.list({ page: 1, per_page: 10 });

const formatter = new Intl.NumberFormat(store.locale, {
  style: "currency",
  currency: store.currency,
});

products.forEach((product) => {
  console.log(`${product.name}: ${formatter.format(product.price)}`);
});

Detectar la configuración regional para contenido traducido

const store = await client.store.get();

// Load the correct translation file based on the store's locale
const translations = await loadTranslations(store.locale);

Construir configuraciones específicas de la tienda

const store = await client.store.get();

// Store details in your plugin's own database,
// keyed by store domain for multi-tenant isolation
await db.storeConfigs.upsert({
  where: { domain: store.domain },
  update: { currency: store.currency, timezone: store.timezone },
  create: {
    domain: store.domain,
    name: store.name,
    currency: store.currency,
    timezone: store.timezone,
  },
});

Manejo de Errores

import { AuthorizationError } from "@whatalo/plugin-sdk";

try {
  const store = await client.store.get();
} catch (error) {
  if (error instanceof AuthorizationError) {
    // Plugin does not have read:store scope
    console.log(`Missing scope: ${error.requiredScope}`);
  } else {
    throw error;
  }
}

Consulta Errores y Límites de Tasa para la referencia completa de clases de error.

On this page