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ón | Permiso requerido |
|---|---|
get | read:store |
Mapeo HTTP
| Método | Verbo HTTP | Ruta |
|---|---|---|
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.