Saleor Store
우리 컬렉션을 쇼핑하세요
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Arzon.uz — ulgurji va guruhli xarid platformasi (MVP)
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Ulgurji va guruhli xarid web platformasi. Node.js 22.5+ (built-in node:sqlite), Express, vanilla-JS SPA (o‘zbek tilida, mobile-first). Demo hisoblar (parol: demo12345): admin +998900000001, sotuvchilar +998900000002, +998900000003, xaridor +998900000004. Muhit o‘zgaruvchilari PORT, DB_FILE, NODE_ENV=production, SEED_DEMO=0 (faqat admin/zonalar/kategoriyalar), ADMIN_PASSWORD, DEMO_PASSWORD, PAYMENT_PROVIDER (hozircha faqat mock), PAYMENT_WEBHOOK_SECRET, TRUST_PROXY=1.README 전문 보기 ↗
Ulgurji va guruhli xarid web platformasi. Node.js 22.5+ (built-in node:sqlite), Express, vanilla-JS SPA (o‘zbek tilida, mobile-first).
npm install
npm start # http://localhost:3000 (birinchi ishga tushirishda demo ma'lumotlar yaratiladi)
npm test # end-to-end testlar (xotiradagi baza)
npm run seed # bazani o'chiradi; qayta `npm start` demo ma'lumotni qayta yaratadi
Demo hisoblar (parol: demo12345): admin +998900000001, sotuvchilar +998900000002, +998900000003, xaridor +998900000004.
PORT, DB_FILE, NODE_ENV=production, SEED_DEMO=0 (faqat admin/zonalar/kategoriyalar), ADMIN_PASSWORD, DEMO_PASSWORD,
PAYMENT_PROVIDER (hozircha faqat mock), PAYMENT_WEBHOOK_SECRET, TRUST_PROXY=1.
| PRD | Joyi |
|---|---|
| FR-01…03 katalog, narx bosqichlari, min/zaxira tekshiruvi | server/orders.js#quote, public/shop.js |
| FR-04…06 guruhlar, atomik limit, muddat | server/orders.js#createOrder/evalGroup (BEGIN IMMEDIATE + shartli UPDATE) |
| FR-07/08 checkout, order snapshot | /api/checkout/quote, orders.items/address_snapshot |
| FR-09 buyurtmalar | /profile/orders |
| FR-10 sotuvchi paneli | /seller (mahsulot, narx bosqichi, zaxira, guruh, buyurtma holati) |
| FR-11 admin | /admin (buyurtma, yetkazish, guruh, refund, moderatsiya, zona/sozlama, audit, KPI) |
| FR-12 to‘lov | server/payments.js — paid faqat imzolangan webhook orqali |
| FR-13 tejash | faqat admin tasdiqlagan bozor narxi bo‘lsa ko‘rsatiladi |
| FR-14 havola | guruh sahifasida “ulashish” |
| Guruh xonasi | /room/KOD — har guruhning qisqa kodi (6 belgi) va o‘z sahifasi: kod/havola bilan kirish, miqdor tanlash va buyurtma shu yerda. GET /api/rooms/:code |
| FR-15 manzillarni birlashtirish (P2) | qilinmagan |
successful. Limit to‘lgan, lekin to‘lanmagan joylar bo‘shasa — guruh yana open.refund_pending sifatida yoziladi.failed, to‘langanlar uchun refund_pending, band joylar bo‘shatiladi.mock sandbox (/mock-pay/:ref) — u ham haqiqiy provayderdek imzolangan webhook yuboradi. Real provayder payments.js#providers ga qo‘shiladi. Refund hozir qo‘lda (admin “Refund boshlash” → “Bajarildi”).scrypt parol xeshi, HttpOnly+SameSite sessiya cookie, rol/egalik tekshiruvi har endpointda, kiritishni validatsiya, rate limit, CSP va xavfsiz sarlavhalar, mutatsiyalar faqat JSON, pul — butun so‘m, vaqt — UTC, Idempotency-Key bilan takroriy so‘rovdan himoya, audit jurnali. Productionda PAYMENT_WEBHOOK_SECRET va HTTPS (NODE_ENV=production) majburiy.