Katalog produk

Mengatur Endpoint

Untuk mulai menggunakan webhook, anda perlu mengatur url webhook pada perangkat anda yang sudah terhubung di Wa Vave, Url webhook ini akan menerima data dari sistem kami setiap kali peristiwa terjadi,

Url webhook ini harus menerima permintaan POST dengan payload JSON.

Menangani Permintaan

Salin kode dibawah dan simpan di server anda dengan nama file misalnya webhook.php

         
<?php
header('Content-Type: application/json; charset=utf-8');

$data = json_decode(file_get_contents('php://input'), true);

$apiKey = 'YOUR_API_KEY'; // API Key

if ($data) {
    $device = $data['device'] ?? '';
    $from = $data['from'] ?? '';
    $profilename = $data['profilename'] ?? '';
    $messageid = $data['messageid'] ?? '';
    $type = $data['type'] ?? ''; // text, textreply, imagereply, image, video, document, audio, sticker, location, interactive, reaction
    $messagebody = $data['messagebody'] ?? '';
    $isForwarded = $data['isForwarded'] ?? '';
    $dataMedia = $data['dataMedia'] ?? '';
    $group = $data['group'] ?? '';
    $button = $data['button'] ?? '';
    $CatalogDetails = $data['CatalogDetails'] ?? '';
    $CatalogReviewPay = $data['CatalogReviewPay'] ?? '';
    $dataforwarded = $data['dataforwarded'] ?? '';
    $locationName = $data['locationName'] ?? '';
    $Latitude = $data['Latitude'] ?? '';
    $Longitude = $data['Longitude'] ?? '';
    $reactionsid = $data['reactionsid'] ?? '';
    $deviceStatus = $data['deviceStatus'] ?? '';
    $code = $data['code'] ?? '';
    $reason = $data['reason'] ?? '';
    $status = $data['status'] ?? '';
    
    $dataMedia = json_encode($dataMedia, JSON_UNESCAPED_SLASHES);
    $messagebody = json_encode($messagebody, JSON_UNESCAPED_UNICODE);
  
    function KirimPesan($to, $pesan, $device, $type, $url, $delay, $apiKey) {
        $data = json_encode([
            'from' => $device,
            'to' => $to,
            'message' => $pesan,
            'Type' => $type,
            'url' => $url,
            'delay' => $delay
        ]);

        // Endpoint API
        $endpoint = 'https://api.wavave.com/v1/send';

        $ch = curl_init($endpoint);
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
        curl_setopt($ch, CURLOPT_HTTPHEADER, [
            'Content-Type: application/json',
            'Content-Length: ' . strlen($data),
            'Authorization: Bearer ' . $apiKey
        ]);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

        $response = curl_exec($ch);
        curl_close($ch);

        return $response;
    }

    $from = 62812345678; // Sesuaikan dengan nomor pengirim Anda
    $pesan = "Halo $profilename, ini adalah balasan otomatis!";
    $delay = 5; // 5 detik
    $jenispesan = 'text'; // text atau media
    $target = $data['from'] ?? ''; // Nomor penerima

    $response = KirimPesan($target, $pesan, $from, $jenispesan, $url, $delay, $apiKey);
    echo $response;

} else {
    echo json_encode(['error' => 'No data received']);
}
    

Tangani pesan katalog produk

Webhook anda akan menerima data secara real time dari sistem kami ketika ada pesan katalog produk yang dikirim oleh pengguna, berikut payload yang akan diterima oleh webhook anda.


{
    "device": "62812345678",
    "messageid": "9F471181D04DAD81C1A18A2ECAAF2963",
    "type": "catalog",
    "messagebody": " *Celana Pendek*\n📝 Description: Untuk anak usia 1 hingga 6 tahun",
    "isForwarded": false,
    "profilename": "Wa Vave",
    "from": "62812345678",
    "CatalogDetails": [
        {
            "productId": "2796869950111425",
            "productLinkMobile": "https://wa.me/p/2796869950111425/62812345678",
            "productLinkDekstop": "https://web.whatsapp.com/product/2796869950111425/62812345678",
            "WebProduct": "https://api.wavave.com/shop/produk/12345",
            "ProductCode": "12345",
            "Title": "Celana Pendek",
            "Description": "Untuk anak usia 1 hingga 6 tahun",
            "Price": 100000,
            "Discount": "70000",
            "Currency": "IDR",
            "ImageCount": 5,
            "mimetipe": "image/jpeg",
            "height": 500,
            "width": 500,
            "url": "data:image/jpeg;base64"
        }
    ],
}

Penjelasan pesan katalog produk

Properti Nilai Deskripsi
device Number Perangkat anda yang terhubung dengan Wa Vave dalam format internasional : 628123456789
from Number Nomor whatsapp pengirim
profilename String Nama pengirim
messageid String ID pesan unik yang dapat anda simpan di aplikasi
type String type pesan memiliki nilai yang berbeda dan dapat digunakan untuk mengidentifikasi setiap jenis pesan yang anda terima
CatalogDetails Array of Objects Properti CatalogDetails merupakan sebuah array yang berisi objek-objek yang merepresentasikan detail katalog yang anda terima dari pengguna
productId String ID unik produk yang dapat anda simpan di aplikasi
productLinkMobile String Tautan produk katalog yang dapat anda buka melalui perangkat mobile
productLinkDekstop String Tautan produk katalog yang dapat anda buka melalui whatsapp web
WebProduct String Tautan produk yang mengarah pada situs web milik pengguna jika ada
ProductCode String Kode unik produk yang dibuat oleh pengguna jika ada
Title String Nama atau judul produk
Description String Deskripsi produk, misalnya detail suatu produk atau layanan yang ditawarkan oleh pengguna jika ada
Price Number Harga produk atau layanan yang ditawarkan oleh pengguna
Discount Number Harga diskon produk yang ditawarkan oleh pengguna jika ada
Currency String Kode mata uang produk (misalnya: IDR, USD)
ImageCount Number Jumlah gambar yang tersedia pada katalog produk
height Integer Tinggi gambar dalam piksel
width Integer Lebar gambar dalam piksel
url String Data media dalam format URL berbasis Base64 yang dapat diproses atau digunakan sesuai kebutuhan
isForwarded Boolean Bernilai "true" jika pesan hasil "Diteruskan" oleh pengguna

Tangani pesanan baru

Webhook anda akan menerima data secara real time dari sistem kami ketika ada pesanan baru yang dibuat oleh oleh pengguna, berikut payload yang akan diterima oleh webhook anda.


{
    "device": "62811111111",
    "messageid": "9F471181D04DAD81C1A18A2ECAAF2963",
    "type": "neworder",
    "profilename": "Wa Vave",
    "from": "62811111111",
    "CatalogReviewPay": [
        {
            "orderId": "1182246469566719",
            "itemCount": 1,
            "status": 1,
            "message": "",
            "orderTitle": "Kemeja Anak Merah",
            "sellerJid": "62811111111",
            "totalAmount1000": 230000,
            "totalCurrencyCode": "IDR"
        }
    ],
}

Penjelasan pesanan baru

Properti Nilai Deskripsi
device Number Perangkat anda yang terhubung dengan Wa Vave dalam format internasional : 628123456789
from Number Nomor whatsapp pembeli
profilename String Nama pembeli
messageid String ID pesan unik yang dapat anda simpan di aplikasi
type String type pesan memiliki nilai yang berbeda dan dapat digunakan untuk mengidentifikasi setiap jenis pesan yang anda terima
CatalogReviewPay Array of Objects Daftar informasi pesanan dalam bentuk array
orderId String ID unik untuk pesanan
itemCount Number Jumlah item dalam pesanan
status Number Status pesanan (misalnya, 1 untuk "INQUIRY"
message String Pesan tambahan terkait pesanan jika ada
orderTitle String Nama produk yang dipesan oleh pembeli
sellerJid String Nomor whatsapp penjual
totalAmount1000 Number Total harga dari pesanan
totalCurrencyCode String Kode mata uang transaksi, misalnya "IDR"

Tangani status pesanan

Webhook anda akan menerima data secara real time dari sistem kami ketika pesanan yang anda order statusnya diubah oleh penjual, berikut payload yang akan diterima oleh webhook anda.


{
    "device": "62812345678",
    "messageid": "267F1A38DB05219EB177D90255FAD284",
    "type": "orderstatus",
    "profilename": "Wa Vave",
    "from": "62812345678",
    "CatalogReviewPay": [
        {
            "currency": "IDR",
            "paymentConfiguration": "",
            "paymentType": "",
            "totalAmount": 230000,
            "referenceId": "4RLL0PX9KKT",
            "orderRequestId": "9367011381114443",
            "type": "physical-goods",
            "paymentStatus": "captured",
            "orderStatus": "preparing_to_ship",
            "description": "",
            "subtotal": 230000,
            "orderType": "ORDER",
            "items": [
                {
                    "retailer_id": "932999507111222",
                    "product_id": "932999507111222",
                    "name": "Pakaian Anak usia 1 hingga 6 tahun",
                    "amount": {
                        "value": 230000,
                        "offset": 100
                    },
                    "quantity": 1
                }
            ],
            "additionalNote": "",
            "nativePaymentMethods": [],
            "sharePaymentStatus": false
        }
    ],
}


Penjelasan status pesanan anda

Properti Nilai Deskripsi
device Number Perangkat anda yang terhubung dengan Wa Vave dalam format internasional : 628123456789
from Number Nomor whatsapp pengirim
profilename String Nama pengirim
messageid String ID pesan unik yang dapat anda simpan di aplikasi
type String type pesan memiliki nilai yang berbeda dan dapat digunakan untuk mengidentifikasi setiap jenis pesan yang anda terima
CatalogReviewPay Array of Objects Properti CatalogDetails merupakan sebuah array yang berisi objek-objek yang merepresentasikan detail pesanan yang anda order dari penjual
currency String Mata uang pembayaran
paymentConfiguration String Konfigurasi pembayaran
paymentType String Jenis pembayaran
totalAmount Number Total yang harus anda bayarkan kepada penjual
referenceId String ID referensi untuk transaksi atau pesanan
orderRequestId String ID permintaan pesanan yang terkait dengan transaksi
type String Jenis transaksi, misalnya barang fisik
paymentStatus String Status pembayaran (misalnya pending, captured, dll.)
orderStatus String Status pesanan saat ini (completed, shipped, preparing_to_ship
description String Deskripsi pesanan (jika ada)
subtotal Number Subtotal dari pesanan sebelum pajak atau biaya tambahan
orderType String Jenis pesanan yang dilakukan
items Array Daftar barang dalam pesanan, termasuk nama produk, harga, dan jumlah
additionalNote String Catatan tambahan dari penjual terkait pesanan
nativePaymentMethods Array Metode pembayaran yang digunakan (jika ada)
sharePaymentStatus Boolean Apakah status pembayaran dibagikan dengan pihak lain