Slip POS
Free plan Local-first Tutorials First 10 Program Download Slip
EN / 繁中 / 日本語

Tutorial list

  • Tutorial overview
  • Quick menu import with AI
  • Printer setup & testing
  • First time opening flow
  • Categories & modifiers setup
  • Shift handoff & end-of-day close (coming soon)

Quick menu import with AI (~3 min)

Use ChatGPT to convert menu images to JSON, then import into Slip.

Slip doesn't automatically read menu images.
This guide shows you how to use ChatGPT to turn menu images into Slip-ready JSON.

Good for:

  • You already have a printed or image menu
  • You want to build menu data quickly

Steps

  1. Step 1 -- Open ChatGPT

    Open ChatGPT on your phone or computer.

  2. Step 2 -- Upload your menu image

    • Take a photo of the printed menu
    • Or upload an existing image
    • Readable is enough -- perfect cropping isn't required
  3. Step 3 -- Copy & paste the prompt

    Copy the prompt below and paste it into ChatGPT.

    You are an OCR and structuring expert for restaurant menus. Read the user's uploaded menu image, extract categories, items, prices, add-ons, and modifiers, and output a result that matches the JSON structure below (output JSON only, with no extra text or Markdown):
    
    JSON structure:
    {
      "sections": [
        {
          "name": "Category name",
          "sortOrder": 1,
          "menuItems": [
            {
              "name": "Item name",
              "price": 0,
              "isAvailable": true,
              "sortOrder": 1,
              "isAddon": false,
              "productUUID": null
            }
          ]
        }
      ],
      "modifiers": [
        { "term": "Modifier", "enabled": true }
      ]
    }
    
    Rules:
    
    1. sortOrder follows the order in the image, starting at 1.
    2. If availability isn't specified, set isAvailable to true.
    3. If an item is an add-on (e.g., "Add pearls", "Add cheese"), set isAddon to true, otherwise false.
    4. productUUID should be null (or omit the field, but be consistent).
    5. If there are no categories, create a single category name = "Uncategorized".
    6. Prices must be numbers (decimals allowed) without currency symbols.
    7. Modifiers should be common selectable terms in the image, such as "Less ice", "Less sugar", "No spice", "No ice"; if none, output an empty array.
    8. If the same item appears in different categories, keep one entry per category; do not merge.
    9. Output must be valid JSON with double quotes.
    
    Start parsing the image and output JSON.
  4. Step 4 -- Get menu.json

    After ChatGPT responds, make sure it's valid JSON and copy it all (from { to }).

    JSON output preview

    {
      "sections": [
        {
          "name": "Beverages",
          "sortOrder": 1,
          "menuItems": [
            {
              "name": "Black tea",
              "price": 30,
              "isAvailable": true,
              "sortOrder": 1,
              "isAddon": false,
              "productUUID": null
            },
            {
              "name": "Add pearls",
              "price": 10,
              "isAvailable": true,
              "sortOrder": 2,
              "isAddon": true,
              "productUUID": null
            }
          ]
        }
      ],
      "modifiers": [
        { "term": "Less ice", "enabled": true },
        { "term": "Less sugar", "enabled": true }
      ]
    }
  5. Step 5 -- Import into Slip

    Back in Slip → Menu import → Paste JSON → Preview → Import.

Important notes

  • This content is AI-generated and may need manual review
  • Slip shows a preview before import
  • Please verify prices and categories

Disclaimer

This guide is for operational reference only. Users are responsible for verifying ChatGPT's output.

Slip POS

A POS that won't fail on the floor

Product
  • Reliable on site
  • Free plan
  • Local-first
Program
  • First 10 Program
  • Stories
Support
  • Tutorials
  • FAQ
  • Contact
  • Support page
Legal
  • Privacy policy

© 2026 Slip POS. All rights reserved.