softseti-sale-calculator-library
Version:
Sales calculation engine by Softseti
113 lines (92 loc) • 2.04 kB
Markdown
# 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