Data dictionary

Store

Note: To insert data for a store, the required parameters include storeId, name, type, location, contacts, and serviceSchedules.

Field

Data type

Required

Description

Example

storeId

String

Yes

Indicates the unique ID assigned by the SaaS provider or ISV to identify a store.

  • Maximum length: 255 characters

"AMP-YW4****"

areaId

String

No

Indicates the unique ID to identify a shopping area to which the store belongs.

  • Maximum length: 255 characters

Note:

  • This parameter is required when the value of type is HAWKER.
  • If you need to specify this parameter, contact your solution architect to set the area ID before this API call.

"2022011211500900011641974730****"

brandId

String

No

Indicates the unique ID to identify a brand to which the store belongs.

  • Maximum length: 255 characters

Note:

  • This parameter is required if the brand runs multiple stores for the following two reasons:
    • With brandId, multiple stores under this brand are not recommended separately at the same time in mini programs, which improves the user experience.
    • With brandId, multiple stores under this brand can be displayed in a specific section in mini programs for promotional purposes.
  • If you need to specify this parameter, contact your solution architect to set the brand ID before this API call.

"2022011211500900011641974730****"

name

MultiLanguageText

No

Indicates the name of the store, which supports multiple languages.

{"value":{"zh-CN":"肯德基","en-US":"KFC"}}

type

String

No

Indicates the type of the store.

Valid values are:

  • RESTAURANT: Restaurant
  • HAWKER: Hawker in a hawker center

"RESTAURANT"

location

Location

No

Indicates the geographic location of the store.

-

contacts

Array<ContactDetail>

No

Indicates the contact information of the store.

  • Maximum size: 3 elements

-

status

String

No

Indicates the status of the store.

Valid values are:

  • OPEN: The store is open and visible to users.
  • CLOSED: The store is closed.
  • OFFLINE: The store is offline and not visible to users.

Note:

  • When inserting data, the default status is OPEN if no value is specified.
  • To hide a store, specify the value of this parameter as OFFLINE.

"OPEN"

serviceSchedules

Array<ScheduleRule>

No

Indicates the store's operating schedules, which means when the store can accept orders.

  • Maximum size: 20 elements

Note: When multiple schedule rules are hit, the valid rule with the largest index in the array shall prevail.

-

bizRules

Array<BusinessRule>

No

Indicates the store's operating rules for different business scenarios or service types, such as pickup rules or delivery rules.

  • Maximum size: 20 elements

-

contents

Array<ContentModel>

No

Indicates the content display for the store, such as store announcements or descriptions.

  • Maximum size: 30 elements

-

menus

Array<Menu>

No

Indicates the menu list of the store.

  • Maximum size: unlimited

-

extendInfo

Object

No

Indicates the extended information of the store.

  • Maximum length: 4096 characters

Note: For the following keys specified by D-store Platform, pass the corresponding parameter values:

  • tags: indicates the tags for the store, for example, cuisines. This parameter is in JSON format containing an Array<String> object (Maximum size: 10 elements). For the valid values, see Valid values for tags.
  • To be deprecatedcuisine: indicates the cuisine types of the store. This parameter is in JSON format containing a MultiLanguageText object to support multiple languages. Note: This parameter will be deprecated. To specify the cuisine types, use the tags parameter.
  • banners: indicates the banners of the store. This parameter is in JSON format containing an Array<BannerModel> object (Maximum size: 5 elements).
  • recommendItemIds: indicates a list of IDs to identify the recommended items. This parameter is in JSON format containing an Array<String> object.
    • Maximum size: 20 elements
    • Element maximum length: 255 characters
  • mcc: indicates the merchant category code (MCC), for example, "5814".
  • inQueueScopes: indicates the scopes that support in-queue orders. This parameter is in JSON format containing an Array<String> object (Maximum size: 3 elements). Valid values are:
    • PICKUP: Food that is picked up by users themselves.
    • DINEIN: Food that is eaten in the restaurant where it is ordered.
    • DELIVERY: Food that requests delivery to a specific destination.
  • reservationScopes: indicates the scopes that support scheduled orders. This parameter is in JSON format containing an Array<String> object (Maximum size: 3 elements). Valid values are:
    • PICKUP: Food that is picked up by users themselves.
    • DINEIN: Food that is eaten in the restaurant where it is ordered.
    • DELIVERY: Food that requests delivery to a specific destination.

-

Location

Note: It is recommended that you specify the longitude and latitude for a store.

  • For Singapore-based SaaS providers, specifying only the postcode is supported, which can be converted to longitude and latitude, but the accuracy is not guaranteed.
  • For those based in other regions, please specify both the longitude and latitude for a store.

Field

Data Type

Required

Description

Example

address

MultiLanguageText

Yes

Indicates the address information, which supports multiple languages.

-

longitude

String

No

Indicates the longitude of the location.

Value range: -90.000000 - 90.000000

Note: If latitude is provided, then longitude must be provided.

"-73.851524"

latitude

String

No

Indicates the latitude of the location.

Value range: -180.000000 - 180.000000

Note: If longitude is provided, then latitude must be provided.

"40.659569"

postCode

String

No

Indicates the postcode of the location.

  • Maximum length: 32 characters
  • Only alphanumeric characters are allowed.

"310000"

ScheduleRule

Field

Data Type

Required

Description

Example

scheduleType

String

Yes

Indicates the type of the schedule.

Valid values are:

  • DAILY: A fixed schedule for a day, which means the schedule will take effect every day.
  • WEEKLY: A list of schedules for each day of the week, which means you need to set schedules from Monday to Sunday. If no schedule is set on a certain day, the specified schedule does not apply on that day.

“WEEKLY”

startTime

Datetime

No

Indicates the date and time when the schedule takes effect.

The value follows the ISO 8601 standard format.

Note: If this parameter is not specified, the schedule will take effect immediately.

"2022-06-01T12:01:01+08:00"

endTime

Datetime

No

Indicates the date and time when the schedule ends.

The value follows the ISO 8601 standard format.

Note: If this parameter is not specified, there is no expiration date after the schedule takes effect.

"2022-12-31T12:01:01+08:00"

serviceStatus

String

No

Indicates the availability of the service.

Valid values are:

  • ON: The service is available during the specified time period.
  • OFF: The service is suspended during the specified time period.

Note:

  • Specify this parameter to determine whether the service is available.
  • When inserting data, the default status is ON if no value is specified.

"ON"

schedules

Map<String, Array<TimePeriod>>

Yes

Indicates the details of the schedule, represented as key-value pairs.

  • The key and value cannot be empty.
  • The key is specified differently based on the value of scheduleType to represent a certain day:
    • When the value of scheduleType is WEEKLY, the key is specified as MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY. (Min. 1 and Max. 7)
    • When the value of scheduleType is DAILY, the key is specified as FIXED.
  • The value is specified by Array<TimePeriod> to represent a set of time periods (maximum size: 100 elements).

-

supportDays

Integer

No

Indicates the number of days the schedule is applied to, for example, 1 for today, 2 for today and tomorrow, etc.

  • Value range: 1-30

Note: This parameter is only applicable when the value of store.bizRules.scene is DINE_IN_SCHEDULE, PICKUP_SCHEDULE, or DELIVERY_SCHEDULE, which indicates the time periods during which the dine-in, pickup, or delivery service is available.

1

BusinessRule

BusinessRule for Store

Field

Data Type

Required

Description

Example

scene

String

Yes

Indicates the scene of the business rule.

Valid values are:

  • DELIVERY_DISTANCE: The delivery range and corresponding delivery fee.
  • PICKUP_RULE: The pickup rule.
  • DINE_IN_ORDER: The dine-in rule.
  • DELIVERY_SCHEDULE: The available delivery time range.
  • PICKUP_SCHEDULE: The available pickup time range.
  • DINE_IN_SCHEDULE: The available dine-in time range.

Note: For different scenes, specify different values to the ruleData parameter as required.

"DELIVERY_DISTANCE"

ruleData

String

Yes

Indicates the data to be synchronized based on different scenes.

  • If the value of scene is DELIVERY_DISTANCE, ruleData is in JSON format containing an Array<FeeRule> object. (Maximum size: 30 elements)
  • If the value of scene is PICKUP_RULE, ruleData is in JSON format containing an Array<PickUpRule> object. (Maximum size: 30 elements)
  • If the value of scene is DINE_IN_ORDER, ruleData is in JSON format containing a DineInOrderRule object.
  • If the value of scene is DELIVERY_SCHEDULE, PICKUP_SCHEDULE, or DINE_IN_SCHEDULE, ruleData is in JSON format containing an Array<ScheduleRule> object. (Maximum size: 20 elements). Note: When multiple schedule rules are hit, the valid rule with the largest index in the array shall prevail.

-

BusinessRule for Item

Field

Data type

Required

Description

Example

scene

String

Yes

Indicates the scene of the business rule.

Valid values are:

  • PRICE_SCHEDULE: The item price differs based on the time periods specified.
  • ITEM_STATUS_RULE: The item status differs based on the time periods specified.

Note: For different scenes, specify different values to the ruleData parameter as required.

"PRICE_SCHEDULE"

ruleData

String

Yes

Indicates the data to be synchronized based on different scenes.

  • If the value of scene is PRICE_SCHEDULE, ruleData is in JSON format containing an Array<PriceScheduleRule> object. (Maximum size: 40 elements)
  • If the value of scene is ITEM_STATUS_RULE, ruleData is in JSON format containing an Array<ItemStatusRule> object. (Maximum size: 40 elements)

-

BusinessRule for SKU

Field

Data type

Required

Description

Example

scene

String

Yes

Indicates the scene of the business rule.

The valid value is:

  • PRICE_SCHEDULE: The SKU price differs based on the time periods specified.
  • SKU_STATUS_RULE: The SKU status differs based on the time periods specified.

Note: For different scenes, specify different values to the ruleData parameter as required.

"PRICE_SCHEDULE"

ruleData

String

Yes

Indicates the data to be synchronized based on different scenes.

  • If the value of scene is PRICE_SCHEDULE, ruleData is in JSON format containing an Array<PriceScheduleRule> object. (Maximum size: 40 elements)
  • If the value of scene is SKU_STATUS_RULE, ruleData is in JSON format containing an Array<SkuStatusRule> object. (Maximum size: 40 elements)

-

PickUpRule

Field

Data type

Required

Description

Example

minimumOrderAmount

Amount

No

Indicates the minimum order amount for orders.

{"currency":"SGD","value":10000}

pickUpAddress

MultiLanguageText

Yes

Indicates the location for users to pick up their food, which supports multiple languages.

-

pickUpContactDetails

Array<ContactDetail>

Yes

Indicates the contact information of the pickup location.

  • Maximum size: 20 elements

-

FeeRule

Field

Data type

Required

Description

Example

from

Integer

Yes

Indicates the start of a distance range, in meters.

  • Value range: 0-500,000

1000

to

Integer

Yes

Indicates the end of a distance range, in meters.

  • Value range: 0-500,000

5000

fee

Amount

Yes

Indicates the delivery fee.

{ "currency": "SGD", "value": 2000 }

minimumOrderAmount

Amount

No

Indicates the minimum order amount for orders.

{ "currency": "SGD", "value": 10000 }

discounts

Array<DiscountRule>

No

Indicates the discount rules.

  • Maximum size: 10 elements

[{"discountType":"REDUCE","thresholdAmount":{"currency":"SGD","value":1000},"discountValue":"{\"currency\": \"SGD\", \"value\":1000}"},{"discountType":"PERCENTAGE","thresholdAmount":{"currency":"SGD","value":2000},"discountValue":"20"},{"discountType":"EXEMPTION","thresholdAmount":{"currency":"SGD","value":3000}}]

DineInOrderRule

Field

Data type

Required

Description

Example

isTableNoRequired

Boolean

Yes

Specifies whether the user needs to fill in the table number when scanning a QR code to order. If the value is true, the user needs to fill in the table number, otherwise, the user does not need to fill in the table number.

true

serviceType

String

Yes

Indicates the service type of a dine-in order. Valid values are:

  • SELF_COLLECT: Food is collected by the user.
  • SERVE_TO_TABLE: Food is served to the user's table.

"SELF_COLLECT"

PriceScheduleRule

Field

Data type

Required

Description

Example

from

Datetime

Yes

Indicates the date and time when the pricing schedule takes effect.

The value follows the ISO 8601 standard format.

"2022-11-27T12:01:01+08:00"

to

Datetime

Yes

Indicates the date and time when the pricing schedule ends.

The value follows the ISO 8601 standard format.

Note: to must be equal to or later than from.

"2022-12-27T12:01:01+08:00"

weekDays

Array<String>

Yes

Indicates the list of days for each week.

Valid values are:

  • MONDAY
  • TUESDAY
  • WEDNESDAY
  • THURSDAY
  • FRIDAY
  • SATURDAY
  • SUNDAY

Maximum size: 7 elements

["MONDAY","SUNDAY"]

timeSlot

TimePeriod

Yes

Indicates the business hours, which means the continuous time spans during which the item or SKU is available.

-

originAmount

Integer

No

Indicates the original sale price, which is in the currency's smallest unit. For example, 10000 means 100.00 in SGD.

  • Value range: 0-2147483647

Note:

  • This field is used for marketing activities. The value of originAmount is expected to be greater than that of saleAmount. In this scenario, both originAmount and saleAmount are displayed to users, as well as the discount.
  • If the value of originAmount is lower than or equal to that of saleAmount, only saleAmount is displayed to users.

10000

saleAmount

Integer

Yes

Indicates the actual sale price, which is in the currency's smallest unit. For example, 9999 means 99.99 in SGD.

  • Value range: 0-2147483647

9999

currency

String

Yes

The 3-character currency code that follows ISO-4217. For example, SGD, USD, or CNY.

  • Maximum length: 3 characters

"SGD"

ItemStatusRule

Field

Data type

Required

Description

Example

from

Datetime

Yes

Indicates the date and time when the item status rule takes effect.

The value follows the ISO 8601 standard format.

"2019-11-27T12:01:01+08:00"

to

Datetime

Yes

Indicates the date and time when the item status rule ends.

The value follows the ISO 8601 standard format.

Note: to must be equal to or later than from.

"2022-12-27T12:01:01+08:00"

weekDays

Array<String>

Yes

Indicates the list of days for each week.

Valid values are:

  • MONDAY
  • TUESDAY
  • WEDNESDAY
  • THURSDAY
  • FRIDAY
  • SATURDAY
  • SUNDAY

Maximum size: 7 elements

["MONDAY","SUNDAY"]

timeSlot

TimePeriod

Yes

Indicates the business hours, which means the continuous time spans during which the item is available.

-

itemStatus

String

Yes

Indicates the status of the item.

Valid values are:

  • AVAILABLE: The item is available to order.
  • REMOVED: The item is removed, thus unavailable to order.
  • SOLDOUT: The item is sold out for now, but may be available at other times.

"SOLDOUT"

SkuStatusRule

Field

Data type

Required

Description

Example

from

Datetime

Yes

Indicates the date and time when the SKU status rule takes effect.

The value follows the ISO 8601 standard format.

"2019-11-27T12:01:01+08:00"

to

Datetime

Yes

Indicates the date and time when the SKU status rule ends.

The value follows the ISO 8601 standard format.

Note: to must be equal to or later than from.

"2022-12-27T12:01:01+08:00"

weekDays

Array<String>

Yes

Indicates the list of days for each week.

Valid values are:

  • MONDAY
  • TUESDAY
  • WEDNESDAY
  • THURSDAY
  • FRIDAY
  • SATURDAY
  • SUNDAY

Maximum size: 7 elements

["MONDAY","SUNDAY"]

timeSlot

TimePeriod

Yes

Indicates the business hours, which means the continuous time spans during which the SKU is available.

-

skuStatus

String

Yes

Indicates the status of the SKU.

Valid values are:

  • AVAILABLE: The SKU is available to order.
  • REMOVED: The SKU is removed, thus unavailable to order.

"AVAILABLE"

DiscountRule

Field

Data type

Required

Description

Example

orderThresholdAmount

Amount

Yes

Indicates the threshold order amount for the discount to take effect.

{ "currency": "SGD", "value": 1000 }

discountType

String

Yes

Indicates the type of discount on delivery fees.

Valid values are:

  • REDUCE: Money-off discount, for example, SGD 2 off the delivery fee on orders over SGD 20.
  • PERCENTAGE: Percentage-off discount, for example, 20% off the delivery fee on orders over SGD 30.
  • EXEMPTION: Free delivery, for example, free delivery on orders over SGD 50.

"REDUCE"

discountValue

String

No

Indicates the specific discount of the delivery fee. The value may vary based on different discount types.

  • If the value of discountType is REDUCE, discountValue is in JSON format containing an Amount object. For example, "{\"currency\":\"SGD\", \"value\":\"1000\"}" means that the delivery fee is reduced by SGD 10.
  • If the value of discountType is PERCENTAGE, discountValue is a string. For example, when the value of discountValue is 20, it means a 20% discount on the delivery fee.
  • If the value of discountType is EXEMPTION, discountValue is null, which means no delivery fee is charged.
-

TimePeriod

Field

Data type

Required

Description

Example

startTime

String

Yes

Indicates the start time, which is in the format of 24-hour HH:MM with time zone.

Note: The time zone must be the same for the same store.

"00:00+08:00"

endTime

String

Yes

Indicates the end time, which is in the format of 24-hour HH:MM with time zone.

Note: The time zone must be the same for the same store.

"23:59+08:00"

MultiLanguageText

Field

Data type

Required

Description

Example

value

Map<String,String>

Yes

Indicates the key-value pairs of the multi-language content. The key is the language code, such as en-US, while the value is the actual text, such as KFC.

  • Key:
    • Maximum length: 16 characters
    • Characters not allowed: special characters such as @ # ?
  • Value:
    • Maximum length of name, cuisine, title, or subtitle in each language: 255 characters
    • Maximum length of text, description, announcement, or address in each language: 1024 characters

Note: The display language is based on the language preference on the user's device. If you do not specify the user's preferred language in this parameter, English is displayed by default. You must specify the en-US key to support the default language in mini programs.

{"zh-CN":"肯德基","en-US":"KFC"}

Amount

Field

Data type

Required

Description

Example

value

Integer

Yes

Indicates the value of the amount which is in the currency's smallest unit. For example, 10000 means 100.00 in SGD.

  • Value range: 0-2147483647

10000

currency

String

Yes

Indicates the 3-character currency code that follows ISO-4217. For example, SGD, USD, or CNY.

  • Maximum length: 3 characters

"SGD"

ContentModel

Field

Data Type

Required

Description

Example

type

String

Yes

Indicates the type of the content.

Valid values are:

  • TEXT: The content is in text form.
  • IMAGE: The content is in image form.

"IMAGE"

scene

String

Yes

Indicates the usage scenario of the content.

Valid values are:

  • BACKGROUND: The background image.
  • DESCRIPTION: The description, which supports multiple languages.
  • ANNOUNCEMENT: The announcement, which supports multiple languages.

Note:

  • When the value of scene is BACKGROUND, the value of type must be IMAGE.
  • When the value of scene is DESCRIPTION or ANNOUNCEMENT, the value of type must be TEXT.

"DESCRIPTION"

value

String

Yes

Indicates the value of the content.

Note:

  • When the value of scene is BACKGROUND, specify this parameter as an image URL. (Maximum length: 255 characters)
  • When the value of scene is DESCRIPTION or ANNOUNCEMENT, specify this parameter with a MultiLanguageText object to support multiple languages.

"{\"value\":{\"en-US\":\"This is a Chinese food restaurant!\"}}"

ContactDetail

Field

Data Type

Required

Description

Example

name

MultiLanguageText

Yes

Indicates the name of the contact person, which supports multiple languages.

{"value":{"en-US":"will"}}

phoneNo

String

Yes

Indicates the phone numbers of the contact person.

The value follows the [+][country code][area code without leading 0][local phone number] format, for example, +658812****.

  • Maximum length: 64 characters

"+658812****"

BannerModel

Field

Data type

Required

Description

imageUrl

String

Yes

Indicates the image URL of the banner.

  • Maximum length: 255 characters

landingUrl

String

Yes

Indicates the URL address to which the user is redirected when clicking the banner.

  • Maximum length: 255 characters

PriceInfo

Field

Data type

Required

Description

Example

originAmount

Integer

No

Indicates the original sale price, which is in the currency's smallest unit. For example, 10000 means 100.00 in SGD.

  • Value range: 0-2147483647

Note:

  • This field is used for marketing activities. The value of originAmount is expected to be greater than that of saleAmount. In this scenario, both originAmount and saleAmount are displayed to users, as well as the discount.
  • If the value of originAmount is lower than or equal to that of saleAmount, only saleAmount is displayed to users.

10000

saleAmount

Integer

Yes

Indicates the actual sale price, which is in the currency's smallest unit. For example, 9999 means 99.99 in SGD.

  • Value range: 0-2147483647

9999

currency

String

Yes

The 3-character currency code that follows ISO-4217. For example, SGD, USD, or CNY.

  • Maximum length: 3 characters

"SGD"

QuantityRule

Field

Data type

Required

Description

Example

max

Integer

Yes

Indicates the maximum number of items a user can choose.

  • Value range: 0-2147483647

Note: max must be greater than or equal to min.

2

min

Integer

Yes

Indicates the minimum number of items a user can choose.

  • Value range: 0-2147483647

1

Menu

Note: To insert data for a menu, the required parameters include menuId, name, and type.

Field

Data type

Required

Description

Example

menuId

String

Yes

Indicates the unique ID assigned by the SaaS provider or ISV to identify a menu.

  • Maximum length: 255 characters

"000000032"

name

MultiLanguageText

No

Indicates the title of the menu, which supports multiple languages.

-

type

String

No

Indicates the type of the menu.

Valid values are:

  • PICKUP: Food that is picked up by users themselves.
  • DINEIN: Food that is eaten in the restaurant where it is ordered.
  • DELIVERY: Food that requests delivery to a specific destination.

Note:

  • When the value of type is PICKUP, DINEIN, or DELIVERY, be sure to specify the corresponding business rules (that is, the store.bizRules parameter). Make sure the value of store.bizRules.scene is unique.
  • type is unique under the same store, that is, a store cannot hold two menus of the same type.

"PICKUP"

status

String

No

Indicates the status of the menu.

Valid values are:

  • VALID: The menu is valid and visible to users.
  • INVALID: The menu is invalid and not visible to users.

Note:

  • When inserting data, the default status is VALID if no value is specified.
  • To hide a menu, specify the value of this parameter as INVALID.

"VALID"

minPrepareMinutes

Integer

No

Indicates how much time it at least takes to prepare, in minutes.

  • Value range: 1-600

Note: When inserting data, the default value is 0 if no value is specified.

15

categories

Array<Category>

No

Indicates the categories of the menu.

  • Maximum size: unlimited

-

extendInfo

Object

No

Indicates the extended information of the menu.

  • Maximum length: 4096 characters

Note: For the following keys specified by D-store Platform, pass the corresponding parameter values:

  • subTitle: indicates the subtitle of the menu. This parameter is in JSON format containing a MultiLanguageText object to support multiple languages.

-

Category

Note: To insert data for a category, the required parameters include categoryId and name.

Field

Data type

Required

Description

Example

categoryId

String

Yes

Indicates the unique ID assigned by the SaaS provider or ISV to identify a category.

  • Maximum length: 255 characters

"0000000004"

name

MultiLanguageText

No

Indicates the title of the category, which supports multiple languages.

-

status

String

No

Indicates the status of the category.

Valid values are:

  • ACTIVE: The category is visible to users.
  • INACTIVE: The category is not visible to users.

Note:

  • When inserting data, the default status is ACTIVE if no value is specified.
  • To hide a category, specify the value of this parameter as INACTIVE.

"ACTIVE"

iconUrl

String

No

Indicates the URL address of the category image.

  • Maximum length: 255 characters

-

sequence

Integer

No

Indicates the sequence of the category.

Value range: 0-9999

Note:

  • Specify this parameter to set the sequence of the category.
  • When inserting data, the default value is 9999 if no value is specified.
  • The minimum value is 0, which means the category is displayed first.

9999

items

Array<Item>

No

Indicates the items that are classified into a category.

  • Maximum size: unlimited

extendInfo

Object

No

Indicates the extended information of the category.

  • Maximum length: 4096 characters

Note: Specify this parameter in key-value pairs with the following valid keys:

  • subTitle: The subtitle of the category. This parameter is in JSON format containing a MultiLanguageText object to support multiple languages.
  • salesChannel: The sales channel where the category is applied. Its value is String with the following valid values:
    • DSTORE: The category is applied to Alipay+ D-store.
    • POS: The category is applied to the POS system.

If not specified, the value is DSTORE by default.

Item

Note: To insert data for an item, the required parameters include itemId, name, saleType, and saleAmount.

Field

Data type

Required

Description

Example

itemId

String

Yes

Indicates the unique ID assigned by the SaaS provider or ISV to identify an item.

  • Maximum length: 255 characters

Notes:

  • The ID of the root item in the same store must be unique.
  • Item details are linked to this particular parameter. For the same item in different stores or menus, if you want to specify different values for any other parameters in this data model, you must specify this parameter differently.

"100000000it32"

commonItemId

String

No

The unique ID that is assigned by the SaaS provider or ISV to identify the same item under different categories, menus, or stores.

  • Maximum length: 255 characters

Notes:

  • This parameter does not reflect item details. Items with the same value of this parameter can have different values for any other parameters in this data model.
  • Specify this parameter if the same items share common item IDs in the SaaS server and you want to match items between D-store Platform and the SaaS server.

name

MultiLanguageText

No

Indicates the title of the item, which supports multiple languages.

-

status

String

No

Indicates the status of the item.

Valid values are:

  • AVAILABLE: The item is available to order.
  • REMOVED: The item is removed, thus unavailable to order.
  • SOLDOUT: The item is sold out for now, but may be available at other times.

Note:

  • When inserting data, the default status is AVAILABLE if no value is specified.
  • To hide an item, specify the value of this parameter as REMOVED.

"AVAILABLE"

saleType

String

No

Indicates the sale type of the item.

Valid values are:

  • SINGLE: An individual item that can be ordered by itself.
  • ADDON: A complementary item that can be ordered within a modifier group.

Note: When the value of saleType is SINGLE, the same item can be used in multiple categories, and the data in the first record will be gained.

"SINGLE"

sequence

Integer

No

Indicates the sequence of the single item or add-on item.

Value range: 0-65535

Note:

  • Specify this parameter if you want to set a sequence for single items or add-on items.
  • Items are displayed from the smallest value to the largest value. For example, if the value is 0, the item is displayed in the first position.
  • If this parameter is not passed or passed with no value specified, it is by default set to 65535.
  • The single item with the same value of itemId can be specified with different values of this parameter in different categories.
  • The add-on item of the same value of itemId can be specified with different values of this parameter in different modifier groups.

65535

quantityRule

QuantityRule

No

Indicates the quantity rule of the item.

Note: When inserting data, the default rule is {"max":999,"min":0} if no value is specified.

-

bizRules

Array<BusinessRule>

No

Indicates the business rules of the item, for example, the pricing rules based on different time periods or the item availability rules.

  • Maximum size: 20 elements

Note: Make sure the value of items.bizRules.scene is unique.

skuPropertyGroups

Array<SkuPropertyGroup>

No

Indicates possible SKU property groups.

  • Maximum size: 100 elements

Note: For items with SKU information, both skus and skuPropertyGroups are required. For more information, see How to specify skus and skuPropertyGroups.

skus

Array<Sku>

No

Indicates SKU details, for example, price.

  • Maximum size: 200 elements

Note: For items with SKU information, both skus and skuPropertyGroups are required. For more information, see How to specify skus and skuPropertyGroups.

originAmount

Amount

No

Indicates the original sale price of the item.

  • Value range: 0-2147483647

Note:

  • This field is used for marketing activities. The value of originAmount is expected to be greater than that of saleAmount. In this scenario, both originAmount and saleAmount are displayed to users, as well as the discount.
  • If the value of originAmount is lower than or equal to that of saleAmount, only saleAmount is displayed to users.

saleAmount

Amount

No

Indicates the actual sale price of the item.

  • Value range: 0-2147483647

contents

Array<ContentModel>

No

Indicates the content display for the item, such as description.

  • Maximum size: 30 elements

modifierGroups

Array<ModifierGroup>

No

Indicates the details of modifier groups.

  • Maximum size: 100 elements

Note:

  • The modifier groups you specify are in the same order as they are displayed on the mini program.
  • If groupId of multiple modifier groups in the same store is the same, it means that the same group object can be used in multiple items and the data in the first record will be gained.

extendInfo

Object

No

Indicates the extended information of the item.

  • Maximum length: 4096 characters

Note: For the following keys specified by D-store Platform, pass the corresponding parameter values:

  • subTitle: indicates the subtitle of the item. This parameter is in JSON format containing a MultiLanguageText object to support multiple languages.
  • takeAwayFee: indicates the takeaway charge. This parameter is in JSON format containing a Amount object.
  • serviceSchedules: indicates the item's schedules, which means when the item can be ordered. This parameter is in JSON format containing an Array<ScheduleRuleobject (Maximum size: 20 elements).

Sku

Field

Data type

Required

Description

Example

skuId

String

Yes

Indicates the unique ID assigned by the SaaS provider or ISV to identify an SKU.

  • Maximum length: 255 characters

"40000000sk54"

contents

Array<ContentModel>

No

Indicates the content display for the SKU, such as description.

  • Maximum size: 20 elements

skuPropertyPairs

Map<String,String>

Yes

Indicates the SKU combination, which is represented as key-value pairs.

  • Map cannot be empty.
  • Key and value cannot be empty.
  • Maximum length of key and value: 255 characters.

Note: Within one item (specified in the itemId parameter), the key-value pairs for any SKU (specified in the skuId parameter) must be unique and cover all SkuPropertyGroup.skuGroupId you pass.

  • For each key-value pair (specified in the Sku.skuPropertyPairs parameter), key is specified according to skuPropertyGroups.skuGroupId.
  • Value is specified according to SkuProperty.propertyId.

{"size":"large","doneness":"rare"}

originAmount

Amount

No

Indicates the original sale price.

  • Value range: 0-2147483647

Note:

  • This field is used for marketing activities. The value of originAmount is expected to be greater than that of saleAmount. In this scenario, both originAmount and saleAmount are displayed to users, as well as the discount.
  • If the value of originAmount is lower than or equal to that of saleAmount, only saleAmount is displayed to users.

10000

saleAmount

Amount

Yes

Indicates the actual sale price.

  • Value range: 0-2147483647

9999

bizRules

Array<BusinessRule>

No

Indicates the business rules of the item, for example, the pricing rules based on different time periods or the SKU availability rules.

  • Maximum size: 20 elements

Note: Make sure the value of skus.bizRules.scene is unique.

SkuPropertyGroup

Field

Data type

Required

Description

Example

skuGroupId

String

Yes

Indicates the unique key to identify an SKU group in the item.

  • Maximum length: 64 characters

Note: English only. Not used for UI display in the mini program.

"size"

name

MultiLanguageText

Yes

Indicates the SKU group name, which supports multiple languages.

Note: Used for UI display in the mini program.

-

properties

Array<SkuProperty>

Yes

Indicates a list of properties in the SKU group.

  • Maximum size: 100 elements

-

SkuProperty

Field

Data type

Required

Description

Example

propertyId

String

Yes

Indicates the unique value to identify a property in the SKU property group.

  • Maximum length: 64 characters

Note: English only. Not used for UI display in the mini program.

"small"

name

MultiLanguageText

Yes

Indicates the SKU property name, which supports multiple languages.

Note: Used for UI display in the mini program.

-

ModifierGroup

Note: To insert data for a modifier group, the required parameters include groupId, name, quantityRule, and childItems.

Field

Data type

Required

Description

Example

groupId

String

Yes

Indicates the unique ID assigned by the SaaS provider or ISV to identify a modifier group. A modifier group can belong to multiple items.

  • Maximum length: 255 characters

"1000000gr23"

name

MultiLanguageText

Yes

Indicates the name of the modifier group, which supports multiple languages.

{"value": {"en-US": "add-on"}}

sequence

Integer

No

Indicates the sequence of the modifier group.

Value range: 0-65535

Note:

  • Specify this parameter if you want to set a sequence for modifier groups.
  • Modifier groups are displayed from the smallest value to the largest value. For example, if the value is 0, the modifier group is displayed in the first position.
  • If this parameter is not passed or passed with no value specified, it is by default set to 65535.
  • The modifier group of the same value of groupId can be specified with different values of this parameter in different items.

65535

quantityRule

QuantityRule

Yes

Indicates the quantity rule that constrains the total number of add-on items that can be ordered within a modifier group. For example, {"max":4,"min":1} means that within a modifier group, users are required to select at least 1 add-on item, and they can select 4 add-on items at most.

{"max":4,"min":1}

childItems

Array<Item>

Yes

Indicates a list of add-on items in the modifier group.

  • Maximum size: 100 elements

Note: If itemId of multiple items in the same modifier group in the store is the same, it means that the same item object can be used in multiple modifier groups and the data in the first record will be gained.

-

extendInfo

Object

No

Indicates the extended information of the modifier group.

  • Maximum length: 4096 characters

-

Result

Property

Data type

Required

Description

Example

resultStatus

String

Yes

Indicates the result status. Valid values are:

  • S: Successful
  • F: Failed
  • U: Unknown
  • A: Accepted, not yet succeeded, but can proceed with some actions.

"S"

resultCode

String

No

Indicates the result code.

  • Maximum length: 64 characters.

-

resultMessage

String

No

Indicates the result messages that describe the result code in detail.

  • Maximum length: 256 characters.

-