Quibi

Kako povezati Google Sheets z Quibijem in avtomatsko ustvarjati naročila kupcev

Google Sheets ni samo orodje za preglednice – lahko ga tudi nadgradimo z lastnimi “programi” oziroma skriptami. To omogoča dvosmerno komunikacijo s Quibijem:

  • iz Quibija lahko uvozimo podatke v preglednico,
  • ali pa iz Google Sheets ustvarimo nove dokumente v Quibiju.

Ena najpogostejših uporab je avtomatska izdelava naročil kupcev neposredno iz preglednice.

👉 Uradna API dokumentacija Quibija je dostopna tukaj: https://navodila.quibi.net/za-razvijalce/

Priprava preglednice

Za delovanje potrebujemo dva lista v Google Sheets:

  1. Nastavitve – vsebuje podatke za dostop do Quibija.
    • Stolpec A: naziv polja
    • Stolpec B: vrednost (URL, uporabniško ime, geslo, številčenje, skladišče)
  2. Podatki – seznam naročil, ki jih želimo poslati v Quibi.

Delovanje

Ko vnesemo podatke v preglednico, enostavno kliknemo na gumb Pošlji izbrane.
Skripta nato:

  • pregleda označene vrstice,
  • ustvari naročila kupcev v Quibiju,
  • in zapiše nazaj ID dokumenta ter sporočilo o uspehu.

Skripta za Google Apps Script

Celotno skripto dodamo v Google Sheets prek menija Extensions → Apps Script.

/***** KONFIG *****/
const SETTINGS_SHEET = 'Nastavitve'; // A1: URL, A2: Username, A3: Password, A4: Številčenje, A5: Skladišče

function getSettings_() {
  const sh = SpreadsheetApp.getActive().getSheetByName(SETTINGS_SHEET);
  const url = sh.getRange('B1').getValue();
  const username = sh.getRange('B2').getValue();
  const password = sh.getRange('B3').getValue();
  const stevilcenje = sh.getRange('B4').getValue();
  const skladisce = sh.getRange('B5').getValue();  

  if (!url || !username || !password || !stevilcenje) {
    throw new Error('Manjkajo URL / username / password / številčenje v listu "Nastavitve" (B1–B4).');
  }
  return { url, username, password, stevilcenje, skladisce };
}

/***** API KLICI *****/
function createInvoice(data) {
  return makePrivateCallPost_('api2/glavadokumenta/form', data);
}

function makePrivateCallPost_(path, data) {
  const { url, username, password } = getSettings_();
  if (!path || !data) return {};

  const fullUrl = `${url.replace(/\/+$/,'')}/${path.replace(/^\/+/,'')}`;
  const payload = JSON.stringify(data);

  const options = {
    method: 'post',
    contentType: 'application/json',
    payload,
    headers: {
      'username': String(username),
      'password': String(password)
    },
    muteHttpExceptions: true
  };

  const res = UrlFetchApp.fetch(fullUrl, options);
  const text = res.getContentText();
  let json;
  try {
    json = JSON.parse(text);
  } catch (e) {
    throw new Error(`API ni vrnil veljavnega JSON. Status ${res.getResponseCode()}. Odgovor: ${text}`);
  }
  return json;
}

/***** GUMB ZA OZNAČENE VRSTICE *****/
function sendRowToApi(rowIndex) {
  const { stevilcenje } = getSettings_();
  const sheet = SpreadsheetApp.getActive().getSheetByName('Podatki');
  const lastCol = sheet.getLastColumn();
  const row = sheet.getRange(rowIndex, 1, 1, lastCol).getValues()[0];

  const payload = {
    "Glavadokumenta": {      
      "stevilcenje_id": stevilcenje,
      "kraj": "Kraj",
      "stranka_id": Number(row[1]),
      "nacinPlacila": "Bančno nakazilo",
    },
    "Postavkedokumenta": {
      "1": {
        "sifra_id": Number(row[2]),
        "kolicina": Number(row[3])
      }
    }
  };

  const resp = createInvoice(payload);
  if (resp && typeof resp === 'object') {
    sheet.getRange(rowIndex, 5).setValue(resp.id || '');
    sheet.getRange(rowIndex, 6).setValue(resp.ZapSt || '');
    sheet.getRange(rowIndex, 7).setValue(resp.message || '');
  }
}

function sendCheckedRows() {
  const sheet = SpreadsheetApp.getActive().getSheetByName('Podatki');
  const data = sheet.getDataRange().getValues();
  for (let i = 1; i < data.length; i++) {
    const checked = data[i][0] === true;  // A stolpec = checkbox
    if (checked) {
      sendRowToApi(i + 1);
    }
  }
}

Kako dodati gumb

  1. V Google Sheets narišemo obliko (Insert → Drawing).
  2. Dodamo napis Pošlji izbrane.
  3. Z desnim klikom na gumb izberemo Assign script.
  4. Vpišemo ime funkcije:
sendCheckedRows

Zaključek

S tem postopkom lahko povežemo Google Sheets s Quibijem in iz preglednice enostavno ustvarjamo naročila kupcev. To je priročno za podjetja, ki delajo z večjimi seznami naročil, uvozom podatkov iz drugih sistemov ali pa preprosto želijo hitrejši način za ustvarjanje dokumentov v Quibiju.

Začnite danes

Začnite z računi. Rastite v ERP.

Quibi lahko uporabljate preprosto ali napredno. Module dodajate takrat, ko jih vaše podjetje potrebuje.