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.
// 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
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.
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.
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.
// 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:
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.
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.
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.
await client.archiveLocations([16808, 16809]);cancelArchiveLocations
Batalkan pengarsipan terjadwal untuk lokasi yang diberikan. Menerima ID lokasi, selectionType, dan pengenal changedBy sebagai argumen posisional.
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.
// These are equivalentawait client.fetchLocationsByIds([16808]);await client.fetchLocationsByIds(['TG9jYXRpb246MTY4MDg=']);Fungsi pengodean juga diekspor jika Anda memerlukan bentuk yang sudah dikodekan secara langsung:
import { encodeLocationId } from 'listingsapi-js'; encodeLocationId(16808); // 'TG9jYXRpb246MTY4MDg='encodeLocationId('16808'); // 'TG9jYXRpb246MTY4MDg='encodeLocationId('TG9jYXRpb246MTY4MDg='); // unchangedReferensi terkait
- Profil bisnis, status sinkronisasi direktori per lokasi
- Ulasan, daftar dan analitik ulasan per lokasi
- Analitik, insight Google, Bing, Facebook per lokasi