@lacspace/refund
Returns / RMA workflow and refund-calculation engine — partial refunds with correct tax apportionment, restocking fees, restock lists and a return state machine. Integer minor units, zero-dependency, isomorphic.
npm i @lacspace/refundUsage
import { createReturn, refundAmount, restockItems, transition } from "@lacspace/refund";
let rma = createReturn({ orderId: "ORD-1042", items: [
{ lineId: "l1", sku: "NP-1", qty: 1, unitPrice: 120000, taxRate: 0.13, reason: "size", restock: true },
] });
rma = transition(rma, "approved");
const money = refundAmount(rma.items, { restockingPct: 0.10 });
// { subtotal: 120000, tax: 15600, restockingFee: 12000, shipping: 0, total: 123600 }
const restock = restockItems(rma.items); // [{ sku: "NP-1", qty: 1 }] -> feed @lacspace/inventoryExports 9
createReturntransitionrefundAmountrestockItemsvalidateReturncanTransitionisTerminalRETURN_TRANSITIONSRefundErrorKeywords
More in Commerce & Ledger
Headless, framework-agnostic shopping-cart engine — pure, immutable & serializable. Add/merge lines, set quantities, compute tax/discount/shipping totals in integer minor units. Isomorphic (Node, edge, browser).
@lacspace/inventoryStock-tracking engine that prevents overselling — reserve, release, commit & restock over a plain { onHand, reserved } state. Immutable, bring-your-own-store, throws before it oversells. Isomorphic.
@lacspace/commissionCommission & payout calculation engine — flat, percentage and marginal-tiered rules with min/cap, plus exact proportional split with remainder distribution. Integer minor units, zero floats. Isomorphic.
@lacspace/settlementSettlement, netting & reconciliation for multi-party payouts — net signed ledger entries per account, reconcile expected vs actual, and list payable positive balances. Integer minor units, pure functions. Isomorphic.
@lacspace/couponDiscount & coupon engine — percent, fixed and free-shipping codes with validity windows, minimum-subtotal, discount caps and usage limits. Integer minor units, no float drift. Zero-dependency, isomorphic.
@lacspace/taxVAT & sales-tax done right — exact integer minor-unit arithmetic (no float cents bugs), add/extract tax, inclusive & exclusive prices, compound taxes, half-up/bankers rounding. Isomorphic.