1.2.7 • Published 2 months ago
@oasis-catalog/branding-price v1.2.7
Модуль для расчёта стоимости и сроков нанесения OASIS
Возможности:
- подсчёт базовой, РРЦ, дилерской цены нанесения
- учёт бесплатного нанесения и доплат
- вычисление сроков отгрузки заказа
- нахождение даты с чётом выходных и праздников
Использование
Для использования необходимо получить коэффициенты для выбранных товаров. Для получения коэффициентов необходимо сделать GET-запрос одним из способов:
https://api.oasiscatalog.com/v4/branding/coef/1-000070661?key=key...
https://api.oasiscatalog.com/v4/branding/coef?id=1-000070661,1-000070662,1-000070663&key=key...
https://api.oasiscatalog.com/v4/branding/coef?id[]=1-000070661&id[]=1-000070662&id[]=1-000070663&key=key...
Далее формируем связки необходимых товаров и нанесений:
import {calculateBrandingPrice} from '@oasis-catalog/branding-price';
let coef = await fetch('https://api.oasiscatalog.com/v4/coef?id=1-000070661,1-000070662&key=key...');
coef = await coef.json();
let items = [
{
"productId": "1-000070661",
"quantity": 10,
"branding": [0],
},
{
"productId": "1-000070662",
"quantity": 10,
"branding": [0],
},
];
let branding = [
{
"placeId": "000010375",
"typeId": "1-000027163",
"width": 100,
"height": 100
},
];
console.log(calculateBrandingPrice({coef, items, branding}));
/*
[
{
"main": {
"qty": 20,
"price": {
"base": { "setup": 6300, "total": 12600, "one": 4.2 },
"client": { "setup": 11500, "total": 22960, "one": 7.64 },
"dealer": { "setup": 6300, "total": 12600, "one": 4.2 }
}
}
}
]
*/
Получение сроков
import {calculateShipmentDays} from '@oasis-catalog/branding-price';
// let coef = ..., items = [...], branding = [...]
console.log(calculateShipmentDays({coef, items, branding}));
/*
[
{ "main": 4 },
{ "main": 4 }
]
*/
Получение даты по срокам в рабочих днях
Для вычисления конкретных дат надо запросить список выходных дней GET-запросом:
https://api.oasiscatalog.com/v4/holidays?key=key...
import {findWorkday} from '@oasis-catalog/branding-price';
let holidays = await fetch('https://api.oasiscatalog.com/v4/holidays?key=key...');
holidays = await holidays.json();
console.log(findWorkday('2023-03-24', 1, holidays)); // 2023-03-27