UNPKG

softseti-sale-calculator-library

Version:

Sales calculation engine by Softseti

113 lines (92 loc) 2.04 kB
# Sale Calculator Strategy Calculate complex sales totals with taxes, discounts, and wholesale pricing. ## Versioning and Publishing (For Maintainers) To release a new version of the library: Bump the version in package.json: # Patch (1.0.X) npm version patch # Minor (1.X.0) npm version minor # Major (X.0.0) npm version major # Publish to npm: npm publish ## Install ```bash npm install softseti-sale-calculator-library # Install the library npm install softseti-sale-calculator-library # Update to the latest version npm update softseti-sale-calculator-library ``` Basic Usage javascript ```bash const { init, calcTotal } = require('softseti-sale-calculator-library'); // 1. Setup your products init({ products: { 101: { original_public_price: 20000, // $200.00 MXN quantity: 1 } }, taxes: { vat: { rate: 16, general: true } } }); // 2. Create a sale const myOrder = { receipt_type_key: 'invoice', dwSaleProducts: [{ product_id: 101, quantity: 5 }] }; // 3. Get total const total = calcTotal(myOrder); console.log(`Total: $${total / 100}`); // $1000 * 1.16 = $1160.00 ``` Key Features Bulk Pricing ```bash init({ wholesale_levels: { 101: [{ quantity_min: 10, quantity_max: 20, price: 15000 // $150.00 per unit for 10-20 units }] } }); ``` Apply Discounts javascript ```bash const saleWithDeal = { ...myOrder, dwSaleDeals: [{ amount: 5000 }] // $50.00 discount }; calcTotal(saleWithDeal); // Applies discount proportionally ``` Custom Prices javascript ```bash dwSaleProducts: [{ product_id: 101, quantity: 2, custom_price: 18000 // Override price to $180.00 }] ``` Error Handling javascript ```bash try { calcTotal({ invalid: 'data' }); } catch (error) { console.error('Failed:', error.message); // Example error: "Invalid sale structure - Missing dwSaleProducts" }} ``` Version: 1.0.2 License: MIT © Softseti