Let's look at an example of an open API for sale of Archisketch.

Sale

Concepts

The Sale domain, the highest-level concept of Archisketch products, defines the units of products sold to customers.
It serves as the basis for the data displayed in the Dashboardโ€™s Company Library โ†’ Products tab and the Archisketch Editor.
The Sale domain manages various sales-related information, such as pricing, country details, and options provided to customers. Each Sale must include at least one component.

Key Roles

Manages the data necessary for product sales.

  • Sales Method Management
    • Manages pricing, currency policies, and country-specific information.
  • Option Management
    • Specifies product options such as color, size, and material, allowing up to 5 options per product.
  • Multi-National Support

Key Data Used in API Requests/Responses

  • id: String
    • The unique identifier for the sale.
  • userId: String
    • The unique identifier of the user who created the product.
  • enterpriseId: String
    • The unique identifier of the enterprise that created the product.
  • translatedNames: Array<Object>
    • Manages multilingual values for the product name.
      • code: String -> Multilingual Code
        • ko (Korean), en (English), zh (Chinese), ja (Japanese), vi (Vietnamese).
      • value: String -> Localized Description
    • May be empty.
  • description: Array<Object>
    • Manages multilingual values for the product description.
      • code: String -> Multilingual Code
        • ko (Korean), en (English), zh (Chinese), ja (Japanese), vi (Vietnamese).
      • value: String -> Localized Description
    • May be empty.
  • tags: Array<String>
    • Hashtags associated with the product.
    • May be empty.
  • brandCode: String (Nullable)
    • The brand code associated with the product.
    • The identifier for the branch managed in Archisketch must be applied.
  • code: String (Nullable)
    • A separate identifier managed by the client for data integration.
  • website: String (Nullable)
    • The productโ€™s website URL.
  • minPrice: Object (Nullable)
  • createdAt: LocalDateTime
    • Date and time when the sale was created. (UTC Based, yyyy-MM-dd HH:mm:ss)
    • (e.g. 2024-09-30 04:16:56 )
  • updatedAt: LocalDateTime
    • Date and time when the sale was last updated. (UTC Based, yyyy-MM-dd HH:mm:ss)
    • (e.g. 2024-09-30 04:16:56 )


SaleAsset

Concepts

This domain manages Archisketch assets related to products.

Key Data Used in API Requests/Responses

  • id: String
    • The unique identifier for the sale asset.
  • name: String
    • The name of the file uploaded by the user.
  • extension: String
    • The file extension of the uploaded file.
  • url: String
    • The CDN URL internally managed for the uploaded file.
  • type: String
    • The type of the file in the context of the sale asset domain.
      • PREVIEW_IMAGE
        • Manages the sale's main representative image.
        • Min: 0, Max: 1
      • IMAGE
        • Manages additional images for the sale.
        • Min: 0, Max: 10


SaleComposition

Concepts

A single product can include zero or more components.
The SaleComposition domain manages the relationship between a product and its linked components, along with additional details such as price, tags, options, and more.
For example, if a product is linked to three components, three rows of SaleComposition data will be managed.

Key Data Used in API Requests/Responses

  • saleId: String
    • The unique identifier for the associated sale.
  • componentId: String
    • The unique identifier for the associated component.
  • price: Object
    • value: BigDecimal
      • The price of the component
    • unit: String
      • The currency for the price
        • KRW, USD, EUR, JPY, GBP, CNY, VND, TWD
  • order: Int
    • Indicates the sequence of relationships.
  • options: Array<Object>
    • Classification criteria for the sale <-> component relationship, allowing up to 5 key-value pairs.
      • key: String
      • value: String
        • Option Key (e.g. Color, Size, etc, ...)
        • Option Value (e.g. Red, Small, etc, ...)