Requiply
TypeScript SDK

Доступність і ціни

Перевіряйте доступність на дати та розраховуйте типізовану вартість оренди.

Усі три методи працюють із публічним ключем, тож вітрина може викликати їх просто з браузера.

Сценарії доступності та розрахунку ціни з публічним ключем не показують і не приймають товарів суборенди від постачальників. Якщо в організації ввімкнено функцію суборенди, а вашій інтеграції потрібні ці товари, використовуйте секретний ключ на довіреному сервері.

availability.calendar()

availability.calendar(
  input: AvailabilityCalendarInput,
  options?: RequiplyRequestOptions,
): Promise<AvailabilityCalendarResponse>

Обовʼязкові: startDate і endDate як звичайні дати (YYYY-MM-DD), щонайбільше за 366 днів одна від одної. Значення з часом перетворюється на дату в UTC, що може зсунути його на день. Необовʼязковий groupIds обмежує календар до 200 товарів.

const { days } = await requiply.availability.calendar({
  startDate: '2026-07-01',
  endDate: '2026-07-07',
  groupIds: [cameraKitId],
});

Кожен день містить групу, загальну кількість, заброньовану кількість і availabilityStatus, який може бути null.

availability.items()

availability.items(
  input: AvailabilityItemsInput,
  options?: RequiplyRequestOptions,
): Promise<AvailabilityItemsResponse>

Обовʼязкові: startDate і endDate; endDate не може бути раніше за startDate. Дата й час без зсуву читаються в часовому поясі організації. Необовʼязкові: search, limit (від 1 до 100, за замовчуванням 25), cursor.

const page = await requiply.availability.items({
  startDate: '2026-07-01T10:00:00',
  endDate: '2026-07-03T18:00:00',
  search: 'camera',
  limit: 25,
});

const nextCursor = page.nextCursor;

Відповідь має ту саму форму елемента інвентарю, що й inventory.list(). Додатково вона повертає nextCursor: string | null. Вона перелічує лише товари, у яких хоча б одна одиниця вільна на весь період. Тут categoryId завжди null. Коли потрібні категорії, використовуйте inventory.list() з тими самими датами.

pricing.quote()

pricing.quote(
  input: PricingQuoteInput,
  options?: RequiplyRequestOptions,
): Promise<PricingQuoteResponse>

Обовʼязкові: startDate, endDate, items. Кожен елемент потребує groupId (id товару) і quantity. items може бути порожнім, коли ви надсилаєте bundles. Необовʼязкові:

ПолеЩо воно робить
bundlesКомплекти для бронювання у вигляді { bundleId, quantity }, де quantity задається в цілих наборах, із bundles.list(). Їхні компоненти додаються до елементів. Починаючи з 0.2.1; потребує функції «Комплекти» в організації.
servicesДодаткові послуги за serviceId із services.list().
clientIdЗастосовує відсоткову знижку цього клієнта. Призначено для серверних інтеграцій, які вже знають клієнта.
adjustmentКоригування вартості бронювання. Лише із секретним ключем.
saleLinesТовари, продані разом із бронюванням. Див. Продажі та товари на продаж. Публічний ключ може надсилати їх, лише поки організація продає клієнтам.
const quote = await requiply.pricing.quote({
  startDate: '2026-07-01T10:00:00',
  endDate: '2026-07-03T18:00:00',
  items: [{ groupId: cameraKitId, quantity: 2 }],
  services: [{ serviceId: deliveryServiceId }],
});

console.log(quote.currency, quote.total);

Дата й час без зсуву читаються в часовому поясі організації, як і для bookings.create(). Розрахунок ціни виконується точно так само, як для бронювання, тож показаний вами total дорівнюватиме сумі бронювання.

Відповідь розрахунку ціни

ПолеЩо містить
itemsSubtotal, servicesSubtotalТовари оренди та послуги до будь-якої знижки чи коригування.
discountableSubtotalЧастина, до якої застосовується знижка клієнта. Послуги з excludedFromDiscount до неї не входять.
bundleDiscountAmount, lineBundlesСкільки економлять комплекти (уже враховано в total; 0 без комплектів) і по одному рядку на комплект із його quantity, discountPercent, grossTotal, discountAmount, а також components на набір. lineItems містять обʼєднані кількості одиниць у комплектах і окремих одиниць. Починаючи з 0.2.1.
discountPercentage, discountAmountЗнижка клієнта і сума, яку вона знімає, після знижки за комплект.
adjustment, adjustmentAmountКоригування вартості бронювання, з яким розраховано ціну, або null, а також його грошовий вплив зі знаком (0 для units, бо такий тип змінює оплачуваний період).
saleSubtotal, lineSaleItemsТовари, продані разом із бронюванням, коли ви передаєте saleLines. Знижки та коригування до них ніколи не застосовуються. Див. Продажі та товари на продаж.
totalВартість бронювання разом із товарами на продаж.
lineItems, lineServicesПо одному рядку на товар чи послугу з проміжною сумою. unitCount є кількістю оплачуваних днів, годин чи місяців.
Copyright © 2026