Template Backend CRM Stasiun Ganti Oli
Pelacakan Filter Log dan Penjadwalan Pengingat Layanan
Sebuah backend CRM stasiun ganti oli siap produksi di Back4app dengan filter log, riwayat kualitas oli, dan pengingat jarak tempuh untuk area, manajer, dan koordinator layanan. Termasuk diagram ER, kamus data, skema JSON, area bermain API, dan prompt AI Agent untuk pengaturan cepat.
Poin Penting
Template ini memberikan Anda backend CRM stasiun ganti oli dengan log filter, riwayat grade oli, dan pengingat jarak tempuh sehingga staf stasiun dapat bekerja dari satu sistem yang dibagikan.
- Log jenis filter di satu tempat — Simpan setiap FilterLog dengan filterType, kendaraan, dan tautan serviceTicket untuk pencarian cepat.
- Riwayat grade oli yang dapat Anda lacak — Pertahankan entri OilGradeHistory terkait dengan setiap Kendaraan sehingga manajer tahu grade mana yang digunakan pada kunjungan terakhir.
- Pengingat jarak tempuh yang mudah dijadwalkan — Gunakan MileageReminder mileageDue dan field dueDate untuk merencanakan kontak berikutnya sebelum mobil tertinggal.
- Operasi stasiun tetap teratur — Sambungkan Stasiun, TiketLayanan, dan penugasan Teknisi sehingga setiap lap memiliki jejak layanan yang jelas.
- Satu backend untuk web dan mobile — Paparkan Pelanggan, Kendaraan, FilterLog, dan PengingatMileage melalui REST dan GraphQL API.
Ikhtisar: CRM Stasiun Ganti Oli
Sebagian besar sakit kepala stasiun ganti oli mulai dengan cara yang sama: seorang teknisi ada di lokasi, tetapi sistem catatannya masih berupa rangkaian pesan teks dan tangkapan layar. Ini jarang merupakan satu bug — ini adalah penyimpangan. Template ini memodelkan Pelanggan, Kendaraan, TiketLayanan, FilterLog, dan RiwayatOilGrade di Back4app sehingga Anda mengirimkan backend stasiun ganti oli yang berfungsi daripada menggabungkan spreadsheet secara sembarangan. Skema mencakup Pelanggan (namaLengkap, telepon, email), Kendaraan (pelanggan, nomorPlat, jarakTempuh, gradeOli), TiketLayanan (kendaraan, stasiun, teknisi, status), FilterLog (tiketLayanan, tipeFilter, kodeFilterLama, kodeFilterBaru), RiwayatOilGrade (kendaraan, gradeOli, pembacaanOdometer, tanggalLayanan), PengingatMileage (kendaraan, jarakTempuhHutang, tanggalJatuhTempo, statusPengingat), dan Stasiun (nama, lokasi, jumlahLap) dengan otentikasi dan pelacakan layanan terintegrasi. Sambungkan frontend Anda dan luncurkan lebih cepat.
Terbaik untuk:
Apa yang Anda dapatkan dalam template Stasiun Ganti Oli
Ketika volume stasiun ganti oli melonjak, proses informal akan runtuh terlebih dahulu — bukan karena orang-orang berhenti peduli, tetapi karena ingatan dan pesan tidak dapat diskalakan.
Pusat sorotan Pelanggan, Kendaraan, dan TiketLayanan sehingga Anda dapat membandingkan tumpukan klien terhadap entitas, bidang, dan hubungan yang sama.
Fitur Utama CRM Stasiun Ganti Oli
Setiap kartu teknologi di hub ini menggunakan skema stasiun ganti oli yang sama dengan Customer, Vehicle, ServiceTicket, FilterLog, OilGradeHistory, MileageReminder, dan Station.
Pelacakan profil pelanggan
Pelanggan menyimpan namaLengkap, telepon, email, dan metodeKontakPilihan.
Riwayat layanan kendaraan
Kendaraan terhubung ke pelanggan, nomorPlat, jarakTempuh, dan gradeMinyak.
Jenis filter log
FilterLog menyimpan serviceTicket, filterType, oldFilterCode, dan newFilterCode.
Riwayat nilai minyak
OilGradeHistory melacak kendaraan, oilGrade, odometerReading, dan serviceDate.
Pengingat jarak tempuh
MileageReminder menyimpan kendaraan, mileageDue, dueDate, dan reminderStatus.
Mengapa Membangun Backend CRM Stasiun Ganti Oli Anda dengan Back4app?
Back4app memberikan Anda kelas dan API yang diperlukan untuk mengelola pekerjaan stasiun tanpa menghubungkan setiap layar ke infrastruktur kustom.
- •Tiket layanan dan log filter tetap terhubung: ServiceTicket dan FilterLog memungkinkan staf melacak jenis filter mana yang dipasang untuk kunjungan kendaraan tertentu.
- •Riwayat grade oli dapat dicari: OilGradeHistory mencatat oilGrade dan odometerReading sehingga manajer dapat meninjau apa yang digunakan pada layanan terakhir.
- •Pengingat jarak tempuh mudah diotomatisasi: Kolom MileageReminder seperti mileageDue dan dueDate mendukung pekerjaan pengingat dan panggilan tindak lanjut.
Bangun dan sesuaikan alur kerja stasiun dengan cepat dengan satu kontrak backend di semua platform.
Manfaat Utama
Backend stasiun yang menjaga catatan layanan, riwayat oli, dan pengingat agar tetap sinkron.
Penerimaan meja layanan yang lebih cepat
Mulai dengan kelas Customer dan Vehicle alih-alih membangun formulir penerimaan dan hubungan dari awal.
Pelacakan layanan yang lebih bersih
Catatan FilterLog, OilGradeHistory, dan ServiceTicket menunjukkan dengan tepat apa yang terjadi selama setiap kunjungan.
Waktu tindak lanjut tetap terlihat
Bidang MileageReminder memudahkan untuk mencantumkan tanggal kontak berikutnya dan jarak yang berlaku untuk setiap mobil.
Peran stasiun tetap fokus
Gunakan ACL/CLP sehingga manajer, koordinator, dan teknisi hanya menyentuh kelas yang mereka butuhkan.
Satu API untuk setiap konter dan aplikasi
Layani dasbor stasiun, aplikasi jalur seluler, dan alat pelaporan dari REST dan GraphQL yang sama.
Peluncuran dibantu AI
Hasilkan kerangka backend dan catatan integrasi spesifik stasiun secara cepat dengan satu prompt terstruktur.
Siap untuk meluncurkan CRM stasiun ganti minyak Anda?
Biarkan Back4app AI Agent membuat kerangka backend CRM stasiun ganti minyak Anda dan menghasilkan log filter, riwayat grade minyak, dan pengingat jarak tempuh dari satu prompt.
Gratis untuk memulai — 50 permintaan AI Agent/bulan, tanpa kartu kredit diperlukan
Tumpukan Teknis
Semua termasuk dalam template backend CRM stasiun ganti oli ini.
Diagram ER Stasiun
Model relasi entitas untuk skema CRM stasiun ganti oli.
Skema yang mencakup pelanggan, kendaraan, tiket layanan, log filter, riwayat kualitas oli, pengingat jarak tempuh, dan stasiun.
Lihat sumber diagram
erDiagram
User ||--o{ ServiceTicket : assignedTo
User ||--o{ OilChangeRecord : completedBy
User ||--o{ FilterTypeLog : inspectedBy
User ||--o{ MileageReminder : createdBy
User ||--o{ StationNote : author
Vehicle ||--o{ ServiceTicket : vehicle
Vehicle ||--o{ OilChangeRecord : vehicle
Vehicle ||--o{ FilterTypeLog : vehicle
Vehicle ||--o{ MileageReminder : vehicle
ServiceBay ||--o{ ServiceTicket : bay
ServiceTicket ||--o{ OilChangeRecord : ticket
ServiceTicket ||--o{ FilterTypeLog : serviceTicket
ServiceTicket ||--o{ StationNote : relatedTicket
User {
String objectId PK
String username
String email
String password
String role
String stationCode
Date createdAt
Date updatedAt
}
Vehicle {
String objectId PK
String vinLast4
String licensePlate
String customerName
String customerPhone
String vehicleMake
String vehicleModel
Number vehicleYear
Number lastMileage
String preferredOilGrade
Date createdAt
Date updatedAt
}
ServiceBay {
String objectId PK
String bayName
String status
String stationCode
Number activeTicketCount
Date createdAt
Date updatedAt
}
ServiceTicket {
String objectId PK
String ticketNumber
String vehicleId FK
String bayId FK
String assignedToId FK
String serviceStatus
String requestedOilGrade
String filterType
String notes
Number checkInMileage
Date createdAt
Date updatedAt
}
OilChangeRecord {
String objectId PK
String ticketId FK
String vehicleId FK
String oilGradeUsed
String filterTypeUsed
Boolean drainPlugChecked
Number nextMileageDue
String completedById FK
Date completedAt
Date createdAt
Date updatedAt
}
FilterTypeLog {
String objectId PK
String vehicleId FK
String serviceTicketId FK
String filterType
String oilGrade
String inspectedById FK
Date logDate
Date createdAt
Date updatedAt
}
MileageReminder {
String objectId PK
String vehicleId FK
Number triggerMileage
Number currentMileage
String status
String reminderChannel
Date lastSentAt
String createdById FK
Date createdAt
Date updatedAt
}
StationNote {
String objectId PK
String title
String body
String authorId FK
String relatedTicketId FK
Date createdAt
Date updatedAt
}
Alur Layanan
Alur waktu normal untuk otentikasi, pembuatan tiket layanan, entri log filter, peninjauan kualitas oli, dan pengingat jarak tempuh.
Lihat sumber diagram
sequenceDiagram
participant User
participant App as Oil Change Station CRM App
participant Back4app as Back4app Cloud
User->>App: Sign in to the station dashboard
App->>Back4app: POST /login
Back4app-->>App: Session token
User->>App: Load today's service tickets
App->>Back4app: GET /classes/ServiceTicket?include=vehicle,bay,assignedTo
Back4app-->>App: Queued and in-progress tickets
User->>App: Open a vehicle profile and view filter type logs
App->>Back4app: GET /classes/FilterTypeLog?where={"vehicle":{"__type":"Pointer","className":"Vehicle","objectId":"VEHICLE_ID"}}
Back4app-->>App: FilterTypeLog entries
User->>App: Save an oil change record and mileage reminder
App->>Back4app: POST /classes/OilChangeRecord
App->>Back4app: POST /classes/MileageReminder
Back4app-->>App: Saved service history and next reminder
App->>Back4app: GET /classes/MileageReminder?where={"status":"pending"}&order=triggerMileage
Back4app-->>App: Pending mileage remindersKamus Bidang
Referensi lengkap tingkat bidang untuk setiap kelas dalam skema CRM stasiun penggantian oli.
| Bidang | Tipe | Deskripsi | Diperlukan |
|---|---|---|---|
| objectId | String | Auto-generated unique identifier | Otomatis |
| username | String | Login name used by station staff | |
| String | Staff email address | ||
| password | String | Hashed password (write-only) | |
| role | String | Staff role such as manager, coordinator, or technician | |
| stationCode | String | Assigned station or branch code | — |
| createdAt | Date | Auto-generated creation timestamp | Otomatis |
| updatedAt | Date | Auto-generated last-update timestamp | Otomatis |
8 bidang di User
Keamanan dan Izin
Bagaimana strategi ACL dan CLP melindungi profil pelanggan, riwayat kendaraan, dan catatan pengingat.
Kontrol profil pelanggan
Hanya staf yang berwenang yang dapat membuat atau memperbarui detail kontak pelanggan dan penugasan kendaraan.
Integritas catatan layanan
Entri ServiceTicket, FilterLog, dan OilGradeHistory harus dibuat oleh peran stasiun dengan referensi yang divalidasi.
Batas akses pengingat
Baca dan edit MileageReminder harus dibatasi pada staf yang menangani panggilan tindak lanjut dan penjadwalan layanan.
Skema JSON
Definisi skema JSON mentah siap disalin ke dalam Back4app atau digunakan sebagai referensi implementasi.
{
"classes": [
{
"className": "User",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"username": {
"type": "String",
"required": true
},
"email": {
"type": "String",
"required": true
},
"password": {
"type": "String",
"required": true
},
"role": {
"type": "String",
"required": true
},
"stationCode": {
"type": "String",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "Vehicle",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"vinLast4": {
"type": "String",
"required": true
},
"licensePlate": {
"type": "String",
"required": true
},
"customerName": {
"type": "String",
"required": true
},
"customerPhone": {
"type": "String",
"required": false
},
"vehicleMake": {
"type": "String",
"required": true
},
"vehicleModel": {
"type": "String",
"required": true
},
"vehicleYear": {
"type": "Number",
"required": true
},
"lastMileage": {
"type": "Number",
"required": false
},
"preferredOilGrade": {
"type": "String",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "ServiceBay",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"bayName": {
"type": "String",
"required": true
},
"status": {
"type": "String",
"required": true
},
"stationCode": {
"type": "String",
"required": true
},
"activeTicketCount": {
"type": "Number",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "ServiceTicket",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"ticketNumber": {
"type": "String",
"required": true
},
"vehicle": {
"type": "Pointer",
"required": true,
"targetClass": "Vehicle"
},
"bay": {
"type": "Pointer",
"required": true,
"targetClass": "ServiceBay"
},
"assignedTo": {
"type": "Pointer",
"required": true,
"targetClass": "User"
},
"serviceStatus": {
"type": "String",
"required": true
},
"requestedOilGrade": {
"type": "String",
"required": true
},
"filterType": {
"type": "String",
"required": true
},
"notes": {
"type": "String",
"required": false
},
"checkInMileage": {
"type": "Number",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "OilChangeRecord",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"ticket": {
"type": "Pointer",
"required": true,
"targetClass": "ServiceTicket"
},
"vehicle": {
"type": "Pointer",
"required": true,
"targetClass": "Vehicle"
},
"oilGradeUsed": {
"type": "String",
"required": true
},
"filterTypeUsed": {
"type": "String",
"required": true
},
"drainPlugChecked": {
"type": "Boolean",
"required": false
},
"nextMileageDue": {
"type": "Number",
"required": true
},
"completedBy": {
"type": "Pointer",
"required": true,
"targetClass": "User"
},
"completedAt": {
"type": "Date",
"required": true
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "FilterTypeLog",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"vehicle": {
"type": "Pointer",
"required": true,
"targetClass": "Vehicle"
},
"serviceTicket": {
"type": "Pointer",
"required": true,
"targetClass": "ServiceTicket"
},
"filterType": {
"type": "String",
"required": true
},
"oilGrade": {
"type": "String",
"required": true
},
"inspectedBy": {
"type": "Pointer",
"required": true,
"targetClass": "User"
},
"logDate": {
"type": "Date",
"required": true
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "MileageReminder",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"vehicle": {
"type": "Pointer",
"required": true,
"targetClass": "Vehicle"
},
"triggerMileage": {
"type": "Number",
"required": true
},
"currentMileage": {
"type": "Number",
"required": false
},
"status": {
"type": "String",
"required": true
},
"reminderChannel": {
"type": "String",
"required": true
},
"lastSentAt": {
"type": "Date",
"required": false
},
"createdBy": {
"type": "Pointer",
"required": true,
"targetClass": "User"
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "StationNote",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"title": {
"type": "String",
"required": true
},
"body": {
"type": "String",
"required": true
},
"author": {
"type": "Pointer",
"required": true,
"targetClass": "User"
},
"relatedTicket": {
"type": "Pointer",
"required": false,
"targetClass": "ServiceTicket"
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
}
]
}Bangun dengan Agen AI
Gunakan Agen AI Back4app untuk menghasilkan aplikasi CRM stasiun ganti oli yang nyata dari templat ini, termasuk frontend, backend, otentikasi, dan alur log filter, riwayat grade oli, dan pengingat jarak tempuh.
Buat backend aplikasi CRM stasiun ganti oli di Back4app dengan skema dan perilaku yang persis ini. Skema: 1. Pelanggan: fullName (String, diperlukan), telepon (String, diperlukan), email (String), metodeKontakFavorit (String); objectId, createdAt, updatedAt (sistem). 2. Kendaraan: pelanggan (Pointer to Customer, diperlukan), nomorPlat (String, diperlukan), merek (String, diperlukan), model (String, diperlukan), jarakTempuh (Number, diperlukan), gradeOli (String, diperlukan); objectId, createdAt, updatedAt (sistem). 3. Stasiun: nama (String, diperlukan), lokasi (String, diperlukan), jumlahBay (Number, diperlukan), namaManajer (String); objectId, createdAt, updatedAt (sistem). 4. TiketLayanan: kendaraan (Pointer to Vehicle, diperlukan), stasiun (Pointer to Station, diperlukan), teknisi (String, diperlukan), status (String, diperlukan), tanggalLayanan (Date, diperlukan); objectId, createdAt, updatedAt (sistem). 5. LogFilter: tiketLayanan (Pointer to ServiceTicket, diperlukan), jenisFilter (String, diperlukan), kodeFilterLama (String), kodeFilterBaru (String, diperlukan), catatan (String); objectId, createdAt, updatedAt (sistem). 6. RiwayatGradeOli: kendaraan (Pointer to Vehicle, diperlukan), gradeOli (String, diperlukan), pembacaanOdometer (Number, diperlukan), tanggalLayanan (Date, diperlukan), catatan (String); objectId, createdAt, updatedAt (sistem). 7. PengingatJarakTempuh: kendaraan (Pointer to Vehicle, diperlukan), jarakTempuhDalam (Number, diperlukan), tanggalJatuhTempo (Date, diperlukan), statusPengingat (String, diperlukan), terakhirDihubungiPada (Date); objectId, createdAt, updatedAt (sistem). Keamanan: - Manajer dan koordinator dapat mengelola stasiun, tiket layanan, log filter, riwayat grade oli, dan catatan pengingat jarak tempuh. Teknisi dapat menambahkan catatan layanan di mana diizinkan. Gunakan Cloud Code untuk validasi. Otentikasi: - Daftar, login, keluar. Perilaku: - Daftar pelanggan dan kendaraan, buka tiket layanan, catat log filter, simpan riwayat grade oli, dan jadwalkan pengingat jarak tempuh. Pengiriman: - Aplikasi Back4app dengan skema, ACL, CLP; frontend untuk dasbor stasiun, riwayat kendaraan, tiket layanan, log filter, riwayat grade oli, dan pengingat jarak tempuh.
Tekan tombol di bawah ini untuk membuka Agen dengan prompt templat ini yang sudah terisi.
Ini adalah prompt dasar tanpa akhiran teknologi. Anda dapat menyesuaikan tumpukan frontend yang dihasilkan setelahnya.
API Playground
Coba REST dan GraphQL endpoint terhadap skema CRM stasiun ganti oli. Respons menggunakan data tiruan dan tidak memerlukan akun Back4app.
Menggunakan skema yang sama seperti template ini.
Pilih Teknologi Anda
Perluas setiap kartu untuk melihat cara mengintegrasikan Pelanggan, Kendaraan, dan Tiket Layanan dengan tumpukan yang Anda pilih.
Flutter Stasiun Perubahan Minyak CRM Backend
React Stasiun Perubahan Minyak CRM Backend
React Native Stasiun Perubahan Minyak CRM Backend
Next.js Stasiun Perubahan Minyak CRM Backend
JavaScript Stasiun Perubahan Minyak CRM Backend
Android Stasiun Perubahan Minyak CRM Backend
iOS Stasiun Perubahan Minyak CRM Backend
Vue Stasiun Perubahan Minyak CRM Backend
Angular Stasiun Perubahan Minyak CRM Backend
GraphQL Stasiun Perubahan Minyak CRM Backend
REST API Stasiun Perubahan Minyak CRM Backend
PHP Stasiun Perubahan Minyak CRM Backend
.NET Stasiun Perubahan Minyak CRM Backend
Apa yang Anda Dapatkan dengan Setiap Teknologi
Setiap tumpukan menggunakan skema CRM stasiun penggantian oli dan kontrak API yang sama.
Struktur data stasiun yang terpadu
Kelola pelanggan, kendaraan, tiket layanan, log filter, riwayat jenis oli, dan pengingat jarak tempuh dengan satu skema.
Pelacakan log filter dan riwayat oli
Simpan filterType, oldFilterCode, newFilterCode, dan oilGrade dalam format yang dapat di-query dengan cepat oleh staf.
Alur pengingat jarak tempuh
Siapkan mileageDue, dueDate, dan reminderStatus untuk panggilan tindak lanjut dan penjadwalan layanan.
Operasi stasiun yang peka terhadap peran
Tentukan izin untuk manajer, koordinator, dan teknisi di seluruh kelas CRM.
API REST/GraphQL untuk aplikasi stasiun
Hubungkan dashboard, tablet layanan, dan alat pelaporan ke backend yang sama.
Arsitektur layanan yang dapat diperluas
Tambahkan inspeksi, rotasi ban, atau inventaris suku cadang kemudian tanpa memutus alur inti CRM.
Perbandingan Teknisi Stasiun Ganti Oli
Bandingkan kecepatan pengaturan, gaya SDK, dan dukungan AI di semua teknologi yang didukung.
| Kerangka kerja | Waktu Pengaturan | Manfaat Stasiun | Jenis SDK | Dukungan AI |
|---|---|---|---|---|
| Sekitar 5 menit | Basis kode tunggal untuk dasbor stasiun di mobile dan web. | SDK Tipe | Penuh | |
| Kurang dari 5 menit | Dasbor web cepat untuk penghitung layanan. | SDK Tipe | Penuh | |
| ~3–7 menit | Aplikasi mobile lintas platform untuk teluk dan penasihat. | SDK Tipe | Penuh | |
| Pengaturan cepat (5 menit) | Portal layanan yang dirender di server untuk manajer. | SDK yang Tertulis | Penuh | |
| ~3–5 menit | Integrasi web ringan untuk formulir stasiun. | SDK yang Tertulis | Penuh | |
| Sekitar 5 menit | Aplikasi Android asli untuk jalur layanan. | SDK yang Tertulis | Penuh | |
| Kurang dari 5 menit | Aplikasi iOS asli untuk staf lapangan dan meja. | SDK yang Tertulis | Penuh | |
| ~3–7 menit | UI web Reactive untuk alur kerja CRM. | SDK Tipe | Penuh | |
| Pengaturan cepat (5 menit) | Aplikasi web Enterprise untuk manajemen stasiun. | SDK Tipe | Penuh | |
| Kurang dari 2 menit | API GraphQL yang fleksibel untuk kueri stasiun. | API GraphQL | Penuh | |
| Pengaturan cepat (2 menit) | Integrasi REST API untuk alur kerja stasiun. | REST API | Penuh | |
| ~3 menit | Backend PHP sisi server untuk formulir layanan. | REST API | Penuh | |
| ~3–7 menit | Backend .NET untuk operasi stasiun. | SDK terdaftar | Penuh |
Waktu pengaturan mencerminkan durasi yang diharapkan dari penyetelan proyek hingga kueri Pelanggan atau Kendaraan pertama menggunakan skema template ini.
Pertanyaan yang Sering Diajukan
Pertanyaan umum tentang membangun backend CRM stasiun ganti minyak dengan template ini.
Siap untuk Membangun CRM Stasiun Perubahan Oli Anda?
Mulailah proyek stasiun perubahan oli Anda dalam beberapa menit. Tanpa memerlukan kartu kredit.