@deliverart/sdk-js-sales-mode
v2.16.3
Published
Deliverart JavaScript SDK for Sales Modes Management
Readme
@deliverart/sdk-js-sales-mode
Sales mode management package for the DeliverArt JavaScript SDK.
Installation
npm install @deliverart/sdk-js-sales-mode @deliverart/sdk-js-coreExported Types
Core Types
SalesMode- Sales mode configurationSalesModeDetails- Extended sales mode with settings
Sales Mode Types
Sales modes represent different ways customers can order:
- Delivery
- Takeaway
- Dine-in
- Reservation
IRI Types
SalesModeIri- Sales mode IRI (/sales_modes/:id)
Available Requests
CreateSalesMode
import { CreateSalesMode } from '@deliverart/sdk-js-sales-mode';
const salesMode = await sdk.call(new CreateSalesMode({
name: 'Delivery',
pointOfSale: '/point_of_sales/123',
type: 'DELIVERY',
enabled: true,
settings: {
minOrderAmount: 1000, // 10 EUR in cents
deliveryRadius: 5000, // 5km in meters
estimatedDeliveryTime: 30 // minutes
}
}));Input Parameters:
name: string(required) - Sales mode namepointOfSale: string(required) - Point of sale IRItype: string(required) - Sales mode typeenabled: boolean(required) - Enable/disable sales modesettings?: object(optional) - Mode-specific settings
GetSalesModes
import { GetSalesModes } from '@deliverart/sdk-js-sales-mode';
const salesModes = await sdk.call(new GetSalesModes({
query: {
pointOfSale: '/point_of_sales/123',
enabled: true
}
}));Query Parameters:
pointOfSale?: string- Filter by point of saletype?: string- Filter by typeenabled?: boolean- Filter by enabled statuspage?: number- Page number
GetSalesModeDetails
import { GetSalesModeDetails } from '@deliverart/sdk-js-sales-mode';
const salesMode = await sdk.call(new GetSalesModeDetails('mode-123'));UpdateSalesMode
import { UpdateSalesMode } from '@deliverart/sdk-js-sales-mode';
const updated = await sdk.call(new UpdateSalesMode('mode-123', {
enabled: false,
settings: {
minOrderAmount: 1500
}
}));DeleteSalesMode
import { DeleteSalesMode } from '@deliverart/sdk-js-sales-mode';
await sdk.call(new DeleteSalesMode('mode-123'));Complete Usage Example
import { sdk } from './lib/sdk';
import {
CreateSalesMode,
GetSalesModes,
UpdateSalesMode
} from '@deliverart/sdk-js-sales-mode';
async function salesModeSetup() {
const posId = '/point_of_sales/123';
// Create delivery mode
const delivery = await sdk.call(new CreateSalesMode({
name: 'Delivery',
pointOfSale: posId,
type: 'DELIVERY',
enabled: true,
settings: {
minOrderAmount: 1000,
deliveryRadius: 5000,
estimatedDeliveryTime: 30,
deliveryFee: 300
}
}));
// Create takeaway mode
const takeaway = await sdk.call(new CreateSalesMode({
name: 'Takeaway',
pointOfSale: posId,
type: 'TAKEAWAY',
enabled: true,
settings: {
minOrderAmount: 500,
estimatedPreparationTime: 15
}
}));
// Get all active modes
const activeModes = await sdk.call(new GetSalesModes({
query: {
pointOfSale: posId,
enabled: true
}
}));
console.log(`Active sales modes: ${activeModes.data.length}`);
// Temporarily disable delivery
await sdk.call(new UpdateSalesMode(delivery.id, {
enabled: false
}));
}License
MIT
@deliverart/sdk-js-point-of-sale
Point of sale management package for the DeliverArt JavaScript SDK.
Installation
npm install @deliverart/sdk-js-point-of-sale @deliverart/sdk-js-coreExported Types
Core Types
PointOfSale- Point of sale informationPointOfSaleDetails- Extended POS with opening hours and settingsPointOfSaleUser- User assigned to point of saleOpeningTime- Opening hours configurationPointOfSaleTimeOverride- Special hours (holidays, events)
IRI Types
PointOfSaleIri- Point of sale IRI (/point_of_sales/:id)PointOfSaleUserIri- POS user IRI (/point_of_sale_users/:id)PointOfSaleTimeOverrideIri- Time override IRI (/point_of_sale_time_overrides/:id)
Available Requests
Point of Sale Management
CreatePointOfSale
import { CreatePointOfSale } from '@deliverart/sdk-js-point-of-sale';
const pos = await sdk.call(new CreatePointOfSale({
name: 'Main Restaurant',
company: '/companies/123',
address: {
street: 'Via Restaurant 1',
city: 'Milano',
postalCode: '20100',
country: 'IT',
location: {
latitude: 45.464664,
longitude: 9.188540
}
},
phoneNumber: '+39021234567',
email: '[email protected]',
openingTimes: [
{
dayOfWeek: 1, // Monday
openTime: '11:00',
closeTime: '23:00'
},
{
dayOfWeek: 2, // Tuesday
openTime: '11:00',
closeTime: '23:00'
}
],
enabled: true
}));Input Parameters:
name: string(required) - Point of sale namecompany: string(required) - Company IRIaddress: Address(required) - Location addressphoneNumber: string(required) - Contact phoneemail: string(required) - Contact emailopeningTimes: OpeningTime[](optional) - Weekly opening hoursenabled: boolean(optional) - Enable/disable POSsettings?: object(optional) - Additional settings
GetPointOfSales
import { GetPointOfSales } from '@deliverart/sdk-js-point-of-sale';
const pointOfSales = await sdk.call(new GetPointOfSales({
query: {
company: '/companies/123',
enabled: true,
'address.city': 'Milano',
page: 1
}
}));Query Parameters:
company?: string- Filter by companyenabled?: boolean- Filter by enabled statusaddress.city?: string- Filter by cityaddress.postalCode?: string- Filter by postal codepage?: number- Page number
GetPointOfSaleDetails
import { GetPointOfSaleDetails } from '@deliverart/sdk-js-point-of-sale';
const pos = await sdk.call(new GetPointOfSaleDetails('pos-123'));UpdatePointOfSale
import { UpdatePointOfSale } from '@deliverart/sdk-js-point-of-sale';
const updated = await sdk.call(new UpdatePointOfSale('pos-123', {
name: 'Updated Restaurant Name',
enabled: false
}));DeletePointOfSale
import { DeletePointOfSale } from '@deliverart/sdk-js-point-of-sale';
await sdk.call(new DeletePointOfSale('pos-123'));Point of Sale Users
CreatePointOfSaleUser
import { CreatePointOfSaleUser } from '@deliverart/sdk-js-point-of-sale';
const posUser = await sdk.call(new CreatePointOfSaleUser({
pointOfSale: '/point_of_sales/123',
user: '/users/456',
role: 'MANAGER'
}));Input Parameters:
pointOfSale: string(required) - Point of sale IRIuser: string(required) - User IRIrole: string(required) - Role (e.g., 'MANAGER', 'STAFF', 'DRIVER')
GetPointOfSaleUsers
import { GetPointOfSaleUsers } from '@deliverart/sdk-js-point-of-sale';
const users = await sdk.call(new GetPointOfSaleUsers({
query: {
pointOfSale: '/point_of_sales/123',
role: 'MANAGER'
}
}));Time Overrides (Special Hours)
CreatePointOfSaleTimeOverride
import { CreatePointOfSaleTimeOverride } from '@deliverart/sdk-js-point-of-sale';
const override = await sdk.call(new CreatePointOfSaleTimeOverride({
pointOfSale: '/point_of_sales/123',
date: '2024-12-25', // Christmas
openTime: null, // Closed
closeTime: null,
reason: 'Christmas Day - Closed'
}));Input Parameters:
pointOfSale: string(required) - Point of sale IRIdate: string(required) - Date (YYYY-MM-DD)openTime: string | null(required) - Opening time or null if closedcloseTime: string | null(required) - Closing time or null if closedreason?: string(optional) - Override reason
GetPointOfSaleTimeOverrides
import { GetPointOfSaleTimeOverrides } from '@deliverart/sdk-js-point-of-sale';
const overrides = await sdk.call(new GetPointOfSaleTimeOverrides({
query: {
pointOfSale: '/point_of_sales/123',
'date[after]': '2024-12-01',
'date[before]': '2024-12-31'
}
}));Complete Usage Example
import { sdk } from './lib/sdk';
import {
CreatePointOfSale,
CreatePointOfSaleUser,
CreatePointOfSaleTimeOverride,
UpdatePointOfSale
} from '@deliverart/sdk-js-point-of-sale';
async function setupPointOfSale() {
// Create point of sale
const pos = await sdk.call(new CreatePointOfSale({
name: 'Pizzeria da Mario',
company: '/companies/123',
address: {
street: 'Via Napoli 10',
city: 'Milano',
postalCode: '20100',
country: 'IT',
location: {
latitude: 45.464664,
longitude: 9.188540
}
},
phoneNumber: '+39021234567',
email: '[email protected]',
openingTimes: [
{ dayOfWeek: 1, openTime: '11:00', closeTime: '23:00' },
{ dayOfWeek: 2, openTime: '11:00', closeTime: '23:00' },
{ dayOfWeek: 3, openTime: '11:00', closeTime: '23:00' },
{ dayOfWeek: 4, openTime: '11:00', closeTime: '23:00' },
{ dayOfWeek: 5, openTime: '11:00', closeTime: '23:30' },
{ dayOfWeek: 6, openTime: '11:00', closeTime: '23:30' },
{ dayOfWeek: 0, openTime: '12:00', closeTime: '22:00' }
],
enabled: true
}));
// Assign manager
await sdk.call(new CreatePointOfSaleUser({
pointOfSale: `/point_of_sales/${pos.id}`,
user: '/users/456',
role: 'MANAGER'
}));
// Add holiday closure
await sdk.call(new CreatePointOfSaleTimeOverride({
pointOfSale: `/point_of_sales/${pos.id}`,
date: '2024-12-25',
openTime: null,
closeTime: null,
reason: 'Christmas Day'
}));
// Temporarily disable
await sdk.call(new UpdatePointOfSale(pos.id, {
enabled: false
}));
}License
MIT
