// flashmind-commerce / src / checkout / webpay.ts
import { Webpay } from '@transbank/sdk'
import { logger } from '../infra/observability'
export async function createCheckout(order: Order) {
const tx = await Webpay.create({
amount: order.total,
buyOrder: `ORD-${order.id}`,
returnUrl: env.CHECKOUT_CALLBACK
})
logger.info('checkout.created', { orderId: order.id })
return { url: tx.url, token: tx.token }
}
// → 200 OK · 42ms · sa-east-1
// orders.today = 47 · revenue = $2.480.500
export async function applyCoupon(code: string, cart: Cart) {
const coupon = await db.coupons.find(code)
if (antiAbuse.blocks(cart.email, cart.ip)) return null
return discount(cart, coupon)
}
// shipping / starken.ts
export async function quoteStarken(zone: Zone, kg: number) {
return starken.quote({ origin: 'RM-01', zone, kg })
}