193 lines
7.5 KiB
JavaScript
193 lines
7.5 KiB
JavaScript
const { Client, Databases, Query } = require('node-appwrite');
|
|
|
|
const client = new Client()
|
|
.setEndpoint('https://appwrite.almeira.com.co/v1')
|
|
.setProject('69b84df5003bd8957c5c')
|
|
.setKey('standard_cce3cdb866ea6433888d40cedd24dc45987372308fdc3dd0697de08648c0e5c7e04b02c3bcee271403fd656b00a5820f04c08b51631284a6e8a3582d8aed2aa33234f3c29cc777e9b162eb54810b789251b0d006a9a3b081ebc2da53b9baa94614b124b3508ad849fd9a4187cc6094f506d4b57f409b69d9562a74df594f3ec3');
|
|
|
|
const databases = new Databases(client);
|
|
const DB_ID = 'sneakers_multistore_db';
|
|
const COLL_ID = 'payment_methods';
|
|
|
|
const INITIAL_PAYMENT_METHODS = [
|
|
{
|
|
id: 'pay-bold-deposit-10k',
|
|
name: 'Separación con $10.000 COP + Saldo Contraentrega',
|
|
type: 'bold',
|
|
boldChannel: 'deposit',
|
|
badge: 'Bold 💳 PSE / Nequi / Tarjeta ($10.000)',
|
|
icon: 'ShieldCheck',
|
|
description: 'Asegura tu pedido pagando solo $10.000 COP de anticipo vía Bold (PSE, Nequi o Tarjetas). El saldo restante lo pagas en efectivo o transferencia cuando recibas el paquete en tu puerta.',
|
|
requiresDeposit: true,
|
|
depositAmount: 10000,
|
|
boldPaymentLink: 'https://checkout.bold.co/payment/LNK_AJPFKOPB0C',
|
|
boldQrUrl: 'https://storage.almeira.com.co/v1/storage/buckets/products-images/files/bold-qr-bre-b/view?project=6761c57300305a415ff6',
|
|
isActive: true,
|
|
},
|
|
{
|
|
id: 'pay-bold-pse',
|
|
name: 'PSE • Débito desde cualquier banco (vía Bold)',
|
|
type: 'bold',
|
|
boldChannel: 'pse',
|
|
badge: 'Bold 🏦 PSE Directo',
|
|
icon: 'Landmark',
|
|
description: 'Paga de forma inmediata con débito directo desde tu cuenta bancaria (Bancolombia, Davivienda, BBVA, Banco de Bogotá, Nequi, etc.) a través de la pasarela oficial Bold.',
|
|
requiresDeposit: false,
|
|
depositAmount: 0,
|
|
boldPaymentLink: 'https://checkout.bold.co/payment/LNK_AJPFKOPB0C',
|
|
isActive: true,
|
|
},
|
|
{
|
|
id: 'pay-bold-cards',
|
|
name: 'Tarjetas Débito y Crédito (Visa, Mastercard, Amex)',
|
|
type: 'bold',
|
|
boldChannel: 'card',
|
|
badge: 'Bold 💳 Tarjetas (Cuotas)',
|
|
icon: 'CreditCard',
|
|
description: 'Paga con tarjeta de crédito (hasta 36 cuotas) o débito con CVV de cualquier franquicia nacional o internacional mediante el checkout seguro de Bold.',
|
|
requiresDeposit: false,
|
|
depositAmount: 0,
|
|
boldPaymentLink: 'https://checkout.bold.co/payment/LNK_AJPFKOPB0C',
|
|
isActive: true,
|
|
},
|
|
{
|
|
id: 'pay-bold-nequi',
|
|
name: 'Nequi en Línea (Pasarela Bold)',
|
|
type: 'bold',
|
|
boldChannel: 'nequi',
|
|
badge: 'Bold 📱 Nequi en Línea',
|
|
icon: 'Smartphone',
|
|
description: 'Paga directamente desde tu app Nequi confirmando la notificación push o con tu clave dinámica a través de Bold.',
|
|
requiresDeposit: false,
|
|
depositAmount: 0,
|
|
boldPaymentLink: 'https://checkout.bold.co/payment/LNK_AJPFKOPB0C',
|
|
isActive: true,
|
|
},
|
|
{
|
|
id: 'pay-bold-bancolombia',
|
|
name: 'Botón Bancolombia (Transferencia Directa)',
|
|
type: 'bold',
|
|
boldChannel: 'bancolombia',
|
|
badge: 'Bold 🟡 Botón Bancolombia',
|
|
icon: 'Wallet',
|
|
description: 'Transfiere al instante desde tu app Bancolombia o A la Mano sin comisiones adicionales vía Bold.',
|
|
requiresDeposit: false,
|
|
depositAmount: 0,
|
|
boldPaymentLink: 'https://checkout.bold.co/payment/LNK_AJPFKOPB0C',
|
|
isActive: true,
|
|
},
|
|
{
|
|
id: 'pay-bold-bre-b',
|
|
name: 'Código QR Bre-B • Interoperabilidad Inmediata',
|
|
type: 'bold',
|
|
boldChannel: 'bre_b',
|
|
badge: 'Bold ⚡ QR Bre-B',
|
|
icon: 'QrCode',
|
|
description: 'Escanea el código QR oficial de Bold compatible con la red nacional Bre-B desde cualquier entidad financiera aliada para pago instantáneo.',
|
|
requiresDeposit: false,
|
|
depositAmount: 0,
|
|
boldQrUrl: 'https://storage.almeira.com.co/v1/storage/buckets/products-images/files/bold-qr-bre-b/view?project=6761c57300305a415ff6',
|
|
boldPaymentLink: 'https://checkout.bold.co/payment/LNK_AJPFKOPB0C',
|
|
isActive: true,
|
|
},
|
|
{
|
|
id: 'pay-bold-checkout',
|
|
name: 'Checkout Global Bold • Todos los Métodos Digitales',
|
|
type: 'bold',
|
|
boldChannel: 'all',
|
|
badge: 'Bold 🛡️ Todos los Métodos',
|
|
icon: 'Zap',
|
|
description: 'Accede al portal completo de Bold donde podrás escoger entre PSE, Tarjetas, Nequi, Botón Bancolombia o efectivo en puntos autorizados.',
|
|
requiresDeposit: false,
|
|
depositAmount: 0,
|
|
boldPaymentLink: 'https://checkout.bold.co/payment/LNK_AJPFKOPB0C',
|
|
isActive: true,
|
|
},
|
|
{
|
|
id: 'pay-cod-full',
|
|
name: 'Pago 100% Contraentrega en Efectivo',
|
|
type: 'contraentrega',
|
|
boldChannel: 'custom',
|
|
badge: '💵 Contraentrega Cali',
|
|
icon: 'Banknote',
|
|
description: 'Paga el valor total en efectivo al domiciliario al momento de recibir tu pedido. Disponible en Cali y cobertura local.',
|
|
requiresDeposit: false,
|
|
depositAmount: 0,
|
|
isActive: true,
|
|
},
|
|
{
|
|
id: 'pay-direct-nequi-daviplata',
|
|
name: 'Transferencia Directa Nequi / Daviplata',
|
|
type: 'transferencia',
|
|
boldChannel: 'custom',
|
|
badge: '📲 Transferencia Directa',
|
|
icon: 'Send',
|
|
description: 'Transfiere directamente a las cuentas oficiales de la tienda y envía tu comprobante para despacho prioritario.',
|
|
requiresDeposit: false,
|
|
depositAmount: 0,
|
|
accountInfo: 'Nequi / Daviplata: 316 745 5877 • Titular: Carlos Lasso',
|
|
isActive: true,
|
|
}
|
|
];
|
|
|
|
async function sync() {
|
|
console.log('[1] Obteniendo metodos existentes en Appwrite...');
|
|
const existing = await databases.listDocuments(DB_ID, COLL_ID, [Query.limit(100)]);
|
|
console.log(`Encontrados ${existing.documents.length} metodos existentes.`);
|
|
|
|
for (const doc of existing.documents) {
|
|
try {
|
|
await databases.deleteDocument(DB_ID, COLL_ID, doc.$id);
|
|
console.log(` - Eliminado: ${doc.$id}`);
|
|
} catch (e) {
|
|
console.warn(` - Error eliminando ${doc.$id}:`, e.message);
|
|
}
|
|
}
|
|
|
|
console.log('[2] Insertando metodos organizados por canales Bold...');
|
|
for (const m of INITIAL_PAYMENT_METHODS) {
|
|
const metaPayload = {
|
|
boldChannel: m.boldChannel,
|
|
badge: m.badge,
|
|
icon: m.icon,
|
|
info: m.accountInfo || ''
|
|
};
|
|
const payload = {
|
|
name: m.name,
|
|
type: m.type,
|
|
description: m.description,
|
|
requiresDeposit: m.requiresDeposit,
|
|
depositAmount: m.depositAmount,
|
|
accountInfo: JSON.stringify(metaPayload),
|
|
boldPaymentLink: m.boldPaymentLink || '',
|
|
boldQrUrl: m.boldQrUrl || '',
|
|
isActive: m.isActive
|
|
};
|
|
try {
|
|
await databases.createDocument(DB_ID, COLL_ID, m.id, payload);
|
|
console.log(` + Creado con exito: [${m.id}] ${m.name}`);
|
|
} catch (e) {
|
|
console.error(` x Error creando [${m.id}]:`, e.message);
|
|
}
|
|
}
|
|
|
|
console.log('\n[3] Verificando store_settings (modo produccion/pruebas)...');
|
|
const SETTINGS_COLL = 'store_settings';
|
|
const settingsList = await databases.listDocuments(DB_ID, SETTINGS_COLL, [Query.limit(5)]);
|
|
if (settingsList.documents.length > 0) {
|
|
const sDoc = settingsList.documents[0];
|
|
console.log(`Configuracion actual: ID=${sDoc.$id}, boldMerchantId=${sDoc.boldMerchantId}, boldPaymentLink=${sDoc.boldPaymentLink}`);
|
|
|
|
// Guardar boldEnvironment en boldMerchantId y API keys en boldApiKey
|
|
await databases.updateDocument(DB_ID, SETTINGS_COLL, sDoc.$id, {
|
|
boldMerchantId: 'production',
|
|
boldPaymentLink: 'https://checkout.bold.co/payment/LNK_AJPFKOPB0C'
|
|
});
|
|
console.log(' -> Actualizado store_settings con boldMerchantId: production y boldPaymentLink oficial.');
|
|
}
|
|
|
|
console.log('\n✅ SINCRONIZACION COMPLETADA EXITOSAMENTE!');
|
|
}
|
|
|
|
sync().catch(console.error);
|