Product

Menampilkan daftar produk

post
Body
user_idstringRequiredExample: +6285228990120
categorystringRequiredExample: Semua
is_activestringRequiredExample: All
outlet_idstringRequiredExample: Semua
Responses
200

Berhasil

application/json
post
/products/show
POST /api/products/show HTTP/1.1
Host: localhost:4000
Content-Type: application/json
Accept: */*
Content-Length: 85

{
  "user_id": "+6285228990120",
  "category": "Semua",
  "is_active": "All",
  "outlet_id": "Semua"
}
200

Berhasil

[
  {
    "id": "359",
    "create_dtm": "2020-08-22T12:14:57.247508Z",
    "sku_id": "FP-0010",
    "user_id": "+6285228990120",
    "outlet_id": "OTL-001",
    "name": "Temp Goreng",
    "category": "Retail",
    "variant": "",
    "units": "Pieces",
    "weight": 0,
    "quantity": 10,
    "minimum_quantity": 0,
    "description": "",
    "buy_cost": 0,
    "sell_cost": 2000,
    "modifiers_id": "",
    "images": [
      "https://www.generationsforpeace.org/wp-content/uploads/2018/07/empty.jpg"
    ],
    "rawmaterial": [
      {
        "sku_id": "FP-0008",
        "name": "Tempe",
        "unit": "Pieces",
        "quantity": 1
      },
      {
        "sku_id": "FP-0009",
        "name": "Tepung Terigu",
        "unit": "Gram",
        "quantity": 10
      }
    ],
    "is_stock_tracked": "Yes",
    "number_sold": 0,
    "outlets": [
      "OTL-001"
    ],
    "buy_cost_discounted": 0,
    "is_active": "Yes",
    "wholesaler_cost": []
  },
  {
    "id": "357",
    "create_dtm": "2020-08-22T12:11:34.843566Z",
    "sku_id": "FP-0008",
    "user_id": "+6285228990120",
    "outlet_id": "OTL-001",
    "name": "Tempe",
    "category": "Bahan Baku",
    "variant": "",
    "units": "Pieces",
    "weight": 0,
    "quantity": 10,
    "minimum_quantity": 0,
    "description": "",
    "buy_cost": 0,
    "sell_cost": 1000,
    "modifiers_id": "",
    "images": [
      "https://www.generationsforpeace.org/wp-content/uploads/2018/07/empty.jpg"
    ],
    "rawmaterial": [],
    "is_stock_tracked": "Yes",
    "number_sold": 0,
    "outlets": [
      "OTL-001"
    ],
    "buy_cost_discounted": 0,
    "is_active": "Yes",
    "wholesaler_cost": []
  }
]

Menambahkan produk baru

post
Body
User_idstringRequiredExample: USR-001
Outlet_idstringRequiredExample: OUT-001
NamestringRequiredExample: Nasi Goreng Spesial
CategorystringOptionalExample: Makanan
UnitsstringOptionalExample: Porsi
QuantitynumberOptionalExample: 10
Minimum_quantitynumberOptionalExample: 2
DescriptionstringOptionalExample: Nasi goreng dengan telur dan ayam
Buy_costnumberOptionalExample: 10000
Sell_costnumberOptionalExample: 15000
ImagesstringOptionalExample: https://example.com/nasgor.jpg
Sku_idstringOptional
Modifiers_namestringOptionalExample: Level Pedas
Modifiers_optionstringOptionalExample: [{"name": "Pedas", "price": 1000}, {"name": "Tidak Pedas", "price": 0}]
Modifiers_idstringOptional
VariantstringOptionalExample: [{"Name": "Biasa", "Sell_cost": 15000, "Buy_cost": 10000, "Quantity": 10, "Minimum_quantity": 2, "Sku": ""}]
RawmaterialstringOptionalExample: [{"Sku_id": "RM-001", "Name": "Beras", "Quantity": 2}]
Is_stock_trackedstringOptionalExample: Yes
OutletsstringOptionalExample: ["OUT-001"]
WeightnumberOptionalExample: 250
Wholesaler_costnumberOptionalExample: 13000
Responses
200

Berhasil

application/json
post
/product/add
POST /api/product/add HTTP/1.1
Host: localhost:4000
Content-Type: application/json
Accept: */*
Content-Length: 743

{
  "User_id": "USR-001",
  "Outlet_id": "OUT-001",
  "Name": "Nasi Goreng Spesial",
  "Category": "Makanan",
  "Units": "Porsi",
  "Quantity": 10,
  "Minimum_quantity": 2,
  "Description": "Nasi goreng dengan telur dan ayam",
  "Buy_cost": 10000,
  "Sell_cost": 15000,
  "Images": "https://example.com/nasgor.jpg",
  "Sku_id": "",
  "Modifiers_name": "Level Pedas",
  "Modifiers_option": "[{\"name\": \"Pedas\", \"price\": 1000}, {\"name\": \"Tidak Pedas\", \"price\": 0}]",
  "Modifiers_id": "",
  "Variant": "[{\"Name\": \"Biasa\", \"Sell_cost\": 15000, \"Buy_cost\": 10000, \"Quantity\": 10, \"Minimum_quantity\": 2, \"Sku\": \"\"}]",
  "Rawmaterial": "[{\"Sku_id\": \"RM-001\", \"Name\": \"Beras\", \"Quantity\": 2}]",
  "Is_stock_tracked": "Yes",
  "Outlets": "[\"OUT-001\"]",
  "Weight": 250,
  "Wholesaler_cost": 13000
}
{
  "message": "add product successfully",
  "user_id": "USR-001"
}

Memperbarui produk

post
Body
User_idstringRequiredExample: USR-001
Outlet_idstringRequiredExample: OUT-001
Sku_idstringOptionalExample: FP-0001
NamestringRequiredExample: Nasi Goreng Spesial
CategorystringOptionalExample: Makanan
UnitsstringOptionalExample: Porsi
QuantityintegerOptionalExample: 20
Minimum_quantityintegerOptionalExample: 2
DescriptionstringOptionalExample: Nasi goreng dengan telur dan ayam
Buy_costnumberOptionalExample: 10000
Sell_costnumberOptionalExample: 15000
ImagesstringOptionalExample: https://example.com/nasgor.jpg
Modifiers_idstringOptionalExample: MOD-001
Modifiers_namestringOptionalExample: Level Pedas
Modifiers_optionstringOptionalExample: [{"name": "Pedas", "price": 1000}, {"name": "Tidak Pedas", "price": 0}]
VariantstringOptionalExample: [{"Name": "Biasa", "Sell_cost": 15000, "Buy_cost": 10000, "Quantity": 10, "Minimum_quantity": 2, "Sku": "FP-0002"}]
RawmaterialstringOptionalExample: [{"Sku_id": "RM-001", "Name": "Beras", "Quantity": 2}]
Is_stock_trackedstringOptionalExample: Yes
OutletsstringOptionalExample: ["OUT-001"]
WeightnumberOptionalExample: 250
Wholesaler_costnumberOptionalExample: 13000
Responses
200

Berhasil

application/json
post
/product/set
POST /api/product/set HTTP/1.1
Host: localhost:4000
Content-Type: application/json
Accept: */*
Content-Length: 764

{
  "User_id": "USR-001",
  "Outlet_id": "OUT-001",
  "Sku_id": "FP-0001",
  "Name": "Nasi Goreng Spesial",
  "Category": "Makanan",
  "Units": "Porsi",
  "Quantity": 20,
  "Minimum_quantity": 2,
  "Description": "Nasi goreng dengan telur dan ayam",
  "Buy_cost": 10000,
  "Sell_cost": 15000,
  "Images": "https://example.com/nasgor.jpg",
  "Modifiers_id": "MOD-001",
  "Modifiers_name": "Level Pedas",
  "Modifiers_option": "[{\"name\": \"Pedas\", \"price\": 1000}, {\"name\": \"Tidak Pedas\", \"price\": 0}]",
  "Variant": "[{\"Name\": \"Biasa\", \"Sell_cost\": 15000, \"Buy_cost\": 10000, \"Quantity\": 10, \"Minimum_quantity\": 2, \"Sku\": \"FP-0002\"}]",
  "Rawmaterial": "[{\"Sku_id\": \"RM-001\", \"Name\": \"Beras\", \"Quantity\": 2}]",
  "Is_stock_tracked": "Yes",
  "Outlets": "[\"OUT-001\"]",
  "Weight": 250,
  "Wholesaler_cost": 13000
}
{
  "message": "product edit successfully",
  "user_id": "USR-001"
}

Menghapus produk

post

Menghapus data produk berdasarkan user_id, outlet_id, dan sku_id, serta mengembalikan stok bahan baku jika produk adalah bundling.

Body
user_idstringRequiredExample: USR-001
outlet_idstringRequiredExample: OUT-001
sku_idstringRequiredExample: SKU-001
Responses
200

Produk berhasil dihapus

application/json
post
/product/del
POST /api/product/del HTTP/1.1
Host: localhost:4000
Content-Type: application/json
Accept: */*
Content-Length: 62

{
  "user_id": "USR-001",
  "outlet_id": "OUT-001",
  "sku_id": "SKU-001"
}
{
  "user_id": "USR-001",
  "message": "product delete"
}

Menonaktifkan produk

post

Mengubah status aktif atau nonaktif produk berdasarkan user_id, outlet_id, dan sku_id.

Body
user_idstringRequiredExample: USR-001
outlet_idstringRequiredExample: OUT-001
sku_idstringRequiredExample: SKU-001
is_activestringRequired

Status aktif produk, biasanya 'Yes' atau 'No'

Example: No
Responses
200

Produk berhasil diaktifkan atau dinonaktifkan

application/json
post
/product/deactive
POST /api/product/deactive HTTP/1.1
Host: localhost:4000
Content-Type: application/json
Accept: */*
Content-Length: 79

{
  "user_id": "USR-001",
  "outlet_id": "OUT-001",
  "sku_id": "SKU-001",
  "is_active": "No"
}
{
  "user_id": "USR-001",
  "message": "product active-deactive"
}

Menambahkan data Instagram

post

Menambahkan atau memperbarui data produk yang berasal dari feed Instagram dalam bentuk list.

Bodyobject[]
user_idstringRequiredExample: USR-001
outlet_idstringRequiredExample: OUT-001
sku_idstringRequiredExample: SKU-001
namestringRequiredExample: Produk Instagram
categorystringRequiredExample: Kategori A
unitsstringRequiredExample: pcs
quantityintegerRequiredExample: 10
minimum_quantityintegerRequiredExample: 2
descriptionstringOptionalExample: Deskripsi produk Instagram
buy_costnumber · floatRequiredExample: 50000
sell_costnumber · floatRequiredExample: 75000
imagesstringOptionalExample: ["https://image.example.com/1.jpg"]
modifiers_idstringOptionalExample: MOD-001
rawmaterialstringOptionalExample: []
is_stock_trackedstringRequiredExample: Yes
outletsstringOptionalExample: OUT-001
weightnumber · floatOptionalExample: 1.5
Responses
200

Berhasil menambahkan atau memperbarui data produk Instagram

application/json
post
/instagram/add
POST /api/instagram/add HTTP/1.1
Host: localhost:4000
Content-Type: application/json
Accept: */*
Content-Length: 392

[
  {
    "user_id": "USR-001",
    "outlet_id": "OUT-001",
    "sku_id": "SKU-001",
    "name": "Produk Instagram",
    "category": "Kategori A",
    "units": "pcs",
    "quantity": 10,
    "minimum_quantity": 2,
    "description": "Deskripsi produk Instagram",
    "buy_cost": 50000,
    "sell_cost": 75000,
    "images": "[\"https://image.example.com/1.jpg\"]",
    "modifiers_id": "MOD-001",
    "rawmaterial": "[]",
    "is_stock_tracked": "Yes",
    "outlets": "OUT-001",
    "weight": 1.5
  }
]
{
  "user_id": "USR-001",
  "message": "add instagram feed product successfully"
}

Menampilkan daftar modifiers

post

Mengambil daftar modifiers berdasarkan user_id dan outlet_id. Jika modifiers_id diberikan, maka hanya menampilkan modifier spesifik tersebut.

Body
user_idstringRequiredExample: USR-001
outlet_idstringRequiredExample: OUT-001
modifiers_idstringOptional

Opsional, jika ingin mengambil modifier tertentu

Example: MOD-001
Responses
200

Berhasil mengambil daftar modifiers

application/json
post
/modifiers/show
POST /api/modifiers/show HTTP/1.1
Host: localhost:4000
Content-Type: application/json
Accept: */*
Content-Length: 68

{
  "user_id": "USR-001",
  "outlet_id": "OUT-001",
  "modifiers_id": "MOD-001"
}
[
  {
    "modifiers_id": "MOD-001",
    "user_id": "USR-001",
    "outlet_id": "OUT-001",
    "name": "Modifier Example",
    "description": "Deskripsi modifier",
    "created_at": "2025-06-02T09:00:00Z",
    "updated_at": "2025-06-02T09:30:00Z"
  }
]

Menampilkan penyesuaian stok

post

Mengambil daftar penyesuaian stok untuk user dan outlet tertentu, diurutkan berdasarkan adjustment_id secara menurun.

Body
user_idstringRequiredExample: USR-001
outlet_idstringRequiredExample: OUT-001
Responses
200

Berhasil mengambil data penyesuaian stok

application/json
post
/stockadjustment/show
POST /api/stockadjustment/show HTTP/1.1
Host: localhost:4000
Content-Type: application/json
Accept: */*
Content-Length: 43

{
  "user_id": "USR-001",
  "outlet_id": "OUT-001"
}
[
  {
    "adjustment_id": "ADJ-12345",
    "user_id": "USR-001",
    "outlet_id": "OUT-001",
    "create_dtm": "2025-06-02T09:30:00Z",
    "total_items": 3,
    "total_adjustment": 15,
    "total_expense": 120000.5,
    "products": [
      {
        "sku_id": "SKU-001",
        "initial_stock": 50,
        "adjustment": -5,
        "expense_adjustment": 20000,
        "note": "Stock adjustment due to damage"
      }
    ]
  }
]

Menambahkan penyesuaian stok

post

Menambahkan data penyesuaian stok dan memperbarui kuantitas produk sesuai penyesuaian.

Body
user_idstringRequiredExample: USR-001
outlet_idstringRequiredExample: OUT-001
productsstringRequired

JSON string yang berisi array objek penyesuaian stok.

Example: [{"sku_id":"SKU-001","initial_stock":50,"adjustment":5,"expense_adjustment":10000,"note":"Stock correction"}]
Responses
200

Penyesuaian stok berhasil dibuat

application/json
post
/stockadjustment/add
POST /api/stockadjustment/add HTTP/1.1
Host: localhost:4000
Content-Type: application/json
Accept: */*
Content-Length: 180

{
  "user_id": "USR-001",
  "outlet_id": "OUT-001",
  "products": "[{\"sku_id\":\"SKU-001\",\"initial_stock\":50,\"adjustment\":5,\"expense_adjustment\":10000,\"note\":\"Stock correction\"}]"
}
{
  "user_id": "USR-001",
  "message": "stock adjustment created",
  "invoice": "ADJ-20250602-001"
}

Menambahkan file Excel

post

Upload file Excel melalui form-data dengan field user_id dan file.

Body
user_idstringRequired

ID user yang mengupload file

Example: USR-001
filestring · binaryRequired

File Excel yang akan diupload

Responses
200

Berhasil mengupload file Excel

application/json
post
/excel/add
POST /api/excel/add HTTP/1.1
Host: localhost:4000
Content-Type: multipart/form-data
Accept: */*
Content-Length: 37

{
  "user_id": "USR-001",
  "file": "binary"
}
{
  "user_id": "USR-001",
  "message": "add excel product product successfully"
}

Upload file Excel

post
Body
User_idstringRequired
PasswordstringRequired
Outlet_idstringRequired
ProductsstringRequired
ModifiersstringRequired
Responses
200

Berhasil menambahkan produk dan modifiers

application/json
post
/uploadexcel/add
POST /api/uploadexcel/add HTTP/1.1
Host: localhost:4000
Content-Type: application/json
Accept: */*
Content-Length: 92

{
  "User_id": "text",
  "Password": "text",
  "Outlet_id": "text",
  "Products": "text",
  "Modifiers": "text"
}
{
  "message": "add excel product product successfully",
  "storeurl": "https://ministore.example.com"
}

Last updated

Was this helpful?