@deliverart/sdk-js-menu

中文文档
3.0.1发布于 2026/11/11TypeScriptESM + CJS近 30 天下载 3919

Deliverart JavaScript SDK for Menu Management

原始使用文档
文档目录11 节
  1. Installation
  2. Features
  3. Usage
  4. Menu Versions
  5. Menu Items
  6. Menu Item Categories
  7. Menu Item Modifiers
  8. Menu Item Price Overrides
  9. License
  10. Search menu names
  11. Contextual VAT on price overrides

@deliverart/sdk-js-menu

Menu management package for the DeliverArt JavaScript SDK. Provides methods for managing menu versions, menu items, categories, modifiers, and price overrides.

Installation

npm install @deliverart/sdk-js-menu @deliverart/sdk-js-core
# or
pnpm add @deliverart/sdk-js-menu @deliverart/sdk-js-core
# or
yarn add @deliverart/sdk-js-menu @deliverart/sdk-js-core

Features

  • Menu Versions: Retrieve menu versions and their details
  • Menu Items: Full CRUD operations for menu items
  • Menu Item Categories: Manage menu item categories
  • Menu Item Modifiers: Retrieve menu item modifiers and their details
  • Menu Item Price Overrides: Manage price overrides for menu items

Usage

Menu Versions

Get Menu Versions

import { GetMenuVersions } from '@deliverart/sdk-js-menu'

const menuVersions = await client.call(new GetMenuVersions({
  query: {
    page: 1,
    itemsPerPage: 20,
  }
}))

Get Menu Version Details

import { GetMenuVersionDetails } from '@deliverart/sdk-js-menu'

const menuVersion = await client.call(new GetMenuVersionDetails('menu-version-id'))

MenuItemDto.compositions contains the menu item ids for removable base ingredients/components. When creating order removals, reference one of those ids in the writable order item removals array.

Menu Items

Get Menu Items

import { GetMenuItems } from '@deliverart/sdk-js-menu'

const menuItems = await client.call(new GetMenuItems({
  query: {
    page: 1,
    itemsPerPage: 20,
  }
}))

Get Menu Item Details

import { GetMenuItemDetails } from '@deliverart/sdk-js-menu'

const menuItem = await client.call(new GetMenuItemDetails('menu-item-id'))

Create Menu Item

import { CreateMenuItem } from '@deliverart/sdk-js-menu'

const newMenuItem = await client.call(new CreateMenuItem({
  name: [
    { locale: 'en', value: 'Margherita Pizza' },
    { locale: 'it', value: 'Pizza Margherita' }
  ],
  description: [
    { locale: 'en', value: 'Classic tomato and mozzarella' },
    { locale: 'it', value: 'Classica pomodoro e mozzarella' }
  ],
  price: 12.99,
  category: '/api/menu-item-categories/123',
  // ... other fields
}))

Update Menu Item

import { UpdateMenuItem } from '@deliverart/sdk-js-menu'

const updated = await client.call(new UpdateMenuItem('menu-item-id', {
  price: 13.99,
}))

Delete Menu Item

import { DeleteMenuItem } from '@deliverart/sdk-js-menu'

await client.call(new DeleteMenuItem('menu-item-id'))

Menu Item Categories

Get Menu Item Categories

import { GetMenuItemCategories } from '@deliverart/sdk-js-menu'

const categories = await client.call(new GetMenuItemCategories({
  query: {
    page: 1,
    itemsPerPage: 20,
  }
}))

Get Menu Item Category Details

import { GetMenuItemCategoryDetails } from '@deliverart/sdk-js-menu'

const category = await client.call(new GetMenuItemCategoryDetails('category-id'))

Create Menu Item Category

import { CreateMenuItemCategory } from '@deliverart/sdk-js-menu'

const newCategory = await client.call(new CreateMenuItemCategory({
  name: [
    { locale: 'en', text: 'Pizzas' },
    { locale: 'it', text: 'Pizze' }
  ],
  pointOfSale: '/point_of_sales/123e4567-e89b-12d3-a456-426614174000',
  // ... other fields
}))

Update Menu Item Category

import { UpdateMenuItemCategory } from '@deliverart/sdk-js-menu'

const updated = await client.call(new UpdateMenuItemCategory('category-id', {
  name: [
    { locale: 'en', value: 'Updated Category' }
  ]
}))

Delete Menu Item Category

import { DeleteMenuItemCategory } from '@deliverart/sdk-js-menu'

await client.call(new DeleteMenuItemCategory('category-id'))

Menu Item Modifiers

Get Menu Item Modifiers

import { GetMenuItemModifiers } from '@deliverart/sdk-js-menu'

const modifiers = await client.call(new GetMenuItemModifiers({
  query: {
    page: 1,
    itemsPerPage: 20,
  }
}))

Get Menu Item Modifier Details

import { GetMenuItemModifierDetails } from '@deliverart/sdk-js-menu'

const modifier = await client.call(new GetMenuItemModifierDetails('modifier-id'))

Menu Item Price Overrides

Manage price overrides for specific menu items, points of sale, or time periods.

import { 
  GetMenuItemPriceOverrides,
  GetMenuItemPriceOverrideDetails,
  CreateMenuItemPriceOverride,
  UpdateMenuItemPriceOverride,
  DeleteMenuItemPriceOverride
} from '@deliverart/sdk-js-menu'

// Get price overrides
const overrides = await client.call(new GetMenuItemPriceOverrides({
  query: {
    page: 1,
    itemsPerPage: 20,
  }
}))

// Create a price override
const override = await client.call(new CreateMenuItemPriceOverride({
  menuItem: '/api/menu-items/123',
  price: 15.99,
  pointOfSale: '/api/point-of-sales/456',
  // ... other fields
}))

License

MIT

Search menu names

All item (including ITEM, CHOICE and BUNDLE), category and modifier list requests accept query.name. It matches a case-insensitive substring in any translated name. Spaces, accents and punctuation are preserved, % and _ are literal characters, and blank input is ignored. Existing nameSort filters on items/categories remain available for compatibility.

const products = await client.call(new GetMenuItemsFromPointOfSale(posId, {
  query: { name: 'Pizza Margherita', type: 'ITEM', page: 1 },
}))
const modifiers = await client.call(new GetMenuItemModifiersFromPointOfSale(posId, {
  query: { name: 'Extra cheese', scope: 'global', page: 1 },
}))

Use the POS-scoped requests in Hub and retain the active type/scope and other filters when changing a search. Reset the page to 1 after changing filters.

Contextual VAT on price overrides

Price override reads, nested native variants and MenuPriceOverrideDto expose taxRate: number | null. null inherits the referenced menu item's VAT; an explicit 0 is zero percent. Values range from 0 to 100. Missing fields on older read payloads normalize to null.

Create and PATCH inputs may supply taxRate. Leave it omitted when editing only a price: the API preserves an existing contextual rate. Send null only when explicitly restoring inheritance. Updating an override does not change the referenced menu item's global VAT.

版本与发布记录

@deliverart/sdk-js-menu 共发布 319 个版本,首次发布于 2025/07/03;过去 12 个月发布了 231 个版本。

版本发布日期距今
3.0.1latest2026/11/111 天前
3.0.02026/11/092 天前
3.0.0-dev.1dev2026/11/092 天前
2.48.12026/10/2518 天前
2.48.02026/10/2319 天前
2.47.02026/10/2319 天前

关于 @deliverart/sdk-js-menu 的常见问题

@deliverart/sdk-js-menu 是什么?

Deliverart JavaScript SDK for Menu Management

如何安装 @deliverart/sdk-js-menu?

在项目目录运行 npm install @deliverart/sdk-js-menu,或使用 pnpm add / yarn add / bun add。

@deliverart/sdk-js-menu 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@deliverart/sdk-js-menu 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@deliverart/sdk-js-menu 可以商用吗?

@deliverart/sdk-js-menu 使用 未声明 许可。package.json 没有声明许可证。没有许可证的代码默认保留全部权利,商用前请联系作者或查看仓库中的 LICENSE 文件。以上为概括,不构成法律意见,请以许可原文为准。

@deliverart/sdk-js-menu 的下载量有多少?

根据 npm 官方下载统计,@deliverart/sdk-js-menu 在 2026/10/12 – 2026/11/10 这 30 天内被下载 3,919 次,日均约 131 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@deliverart/sdk-js-menu 还在维护吗?

最新版本 3.0.1 发布于 2026/11/11(1 天前);至今共发布 319 个版本,其中过去 12 个月发布了 231 个;首次发布于 2025/07/03。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。