Lokasi

Tampilkan daftar, cari, buat, perbarui, dan arsipkan lokasi bisnis dengan SDK listingsapi-js.

Lokasi adalah entitas utama dalam Listings API: setiap profil bisnis, ulasan, catatan analitik, dan postingan terkait dengan satu lokasi. Semua metode lokasi tersedia pada instans klien ListingsAPI.

fetchAllLocations

Ambil daftar lokasi dalam akun dengan paginasi berbasis kursor. Mengembalikan objek dengan locations, pageInfo, success, dan payload API raw. Dengan fetchAll: true, metode ini menjalankan paginasi secara otomatis dan mengembalikan Location[] tanpa struktur bertingkat.

TypeScript
// Single pageconst page = await client.fetchAllLocations({ first: 25 });if (!Array.isArray(page)) {console.log(page.locations);  // Location[]console.log(page.pageInfo);   // { hasNextPage, hasPreviousPage, startCursor, endCursor, total? } // Next pageconst next = await client.fetchAllLocations({  first: 25,  after: page.pageInfo.endCursor!,});} // All pages at once, returns Location[]const all = await client.fetchAllLocations({ fetchAll: true, pageSize: 100 });

Opsi

ParameterTipeDeskripsi
firstnumberJumlah item per halaman untuk paginasi maju.
afterstringKursor dari pageInfo.endCursor sebelumnya.
beforestringKursor untuk paginasi mundur.
lastnumberJumlah item per halaman untuk paginasi mundur.
fetchAllbooleanJalankan paginasi secara otomatis dan kembalikan Location[] tanpa struktur bertingkat.
pageSizenumberJumlah item per halaman yang digunakan secara internal saat fetchAll bernilai true (nilai default: 100).

fetchLocationsByIds

Ambil lokasi tertentu berdasarkan ID. Menerima ID numerik atau ID yang dikodekan dalam base64 dan mengembalikan Location[] tanpa struktur bertingkat. Array masukan yang kosong akan mengembalikan [] tanpa mengirim permintaan.

TypeScript
const locations = await client.fetchLocationsByIds([16808, 16809, 'TG9jYXRpb246MTY4MTA=']);console.log(locations); // Location[]

fetchLocationsByStoreCodes

Ambil lokasi yang cocok dengan kode toko yang diberikan. Mengembalikan Location[] tanpa struktur bertingkat; array masukan yang kosong akan mengembalikan [] tanpa mengirim permintaan.

TypeScript
const locations = await client.fetchLocationsByStoreCodes(['AD-SF-001', 'AD-NY-001']);

searchLocations

Cari lokasi berdasarkan kata kunci pada nama, alamat, dan ID toko. Mengembalikan struktur hasil berpaginasi yang sama dengan fetchAllLocations, serta mendukung fetchAll dengan cara yang sama.

TypeScript
// Single pageconst result = await client.searchLocations('Brooklyn', { first: 20 });if (!Array.isArray(result)) {console.log(result.locations, result.pageInfo);} // All matching results, returns Location[]const all = await client.searchLocations('Brooklyn', { fetchAll: true }); // Restrict which fields are searchedconst byName = await client.searchLocations('Acme Dental', { fields: ['name'] });

Opsi

Semua opsi paginasi dari fetchAllLocations, ditambah:

ParameterTipeDeskripsi
fieldsstring[]Batasi pencarian pada field tertentu.

createLocation

Buat lokasi baru. API mewajibkan name, description dengan panjang minimal 200 karakter, subCategoryId, countryIso, dan city. Mengembalikan payload respons yang berisi lokasi yang dibuat; jika API menolak masukan, klien akan melempar ValidationError, sehingga tidak ada penanda keberhasilan yang perlu diperiksa.

TypeScript
const result = await client.createLocation({name: 'Acme Dental',description:  'Acme Dental is a family-owned dental practice offering cleanings, ' +  'checkups, fillings, crowns, and cosmetic dentistry for patients of all ' +  'ages. Our gentle, experienced team uses modern digital imaging and ' +  'same-day scheduling to make every visit fast and comfortable.',subCategoryId: 1432,countryIso: 'US',city: 'San Francisco',street: '2100 Mission St',stateIso: 'CA',postalCode: '94110',phone: '4155550100',storeId: 'AD-SF-003',});console.log(result.location.id);

updateLocation

Perbarui satu atau beberapa field pada lokasi yang sudah ada. Berikan id lokasi beserta field yang ingin diubah. ID numerik dikodekan secara otomatis.

TypeScript
await client.updateLocation({id: 16808,phone: '4155550199',name: 'Acme Dental Mission District',});

archiveLocations

Arsipkan satu atau beberapa lokasi. Lokasi yang diarsipkan tidak lagi disinkronkan ke direktori.

TypeScript
await client.archiveLocations([16808, 16809]);

cancelArchiveLocations

Batalkan pengarsipan terjadwal untuk lokasi yang diberikan. Menerima ID lokasi, selectionType, dan pengenal changedBy sebagai argumen posisional.

TypeScript
await client.cancelArchiveLocations([16808],'manual',           // selectionType'ops@example.com',  // changedBy);

Pengodean ID

Setiap metode lokasi menerima ID numerik atau ID yang dikodekan dalam base64. SDK mengodekan ID numerik (dan string numerik) secara otomatis menggunakan format Location:<id>; nilai yang sudah dikodekan diteruskan tanpa perubahan.

TypeScript
// These are equivalentawait client.fetchLocationsByIds([16808]);await client.fetchLocationsByIds(['TG9jYXRpb246MTY4MDg=']);

Fungsi pengodean juga diekspor jika Anda memerlukan bentuk yang sudah dikodekan secara langsung:

TypeScript
import { encodeLocationId } from 'listingsapi-js'; encodeLocationId(16808);                  // 'TG9jYXRpb246MTY4MDg='encodeLocationId('16808');                // 'TG9jYXRpb246MTY4MDg='encodeLocationId('TG9jYXRpb246MTY4MDg='); // unchanged
  • Profil bisnis, status sinkronisasi direktori per lokasi
  • Ulasan, daftar dan analitik ulasan per lokasi
  • Analitik, insight Google, Bing, Facebook per lokasi