{"id":50548548,"url":"https://github.com/loncadev/lonca","last_synced_at":"2026-06-04T01:00:57.876Z","repository":{"id":360057090,"uuid":"1248529761","full_name":"loncadev/lonca","owner":"loncadev","description":"OSS SDK collection for Turkish e-commerce marketplaces (Trendyol, Hepsiburada, n11, and more)","archived":false,"fork":false,"pushed_at":"2026-05-31T20:45:19.000Z","size":725,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-31T21:21:24.075Z","etag":null,"topics":["ecommerce","hepsiburada","integration","marketplace-api","openapi","oss","sdk","trendyol","turkey","turkish-marketplace","typescript"],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/loncadev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-24T19:02:36.000Z","updated_at":"2026-05-31T20:21:22.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/loncadev/lonca","commit_stats":null,"previous_names":["loncadev/lonca"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/loncadev/lonca","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/loncadev%2Flonca","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/loncadev%2Flonca/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/loncadev%2Flonca/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/loncadev%2Flonca/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/loncadev","download_url":"https://codeload.github.com/loncadev/lonca/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/loncadev%2Flonca/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33884738,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-03T02:00:06.370Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ecommerce","hepsiburada","integration","marketplace-api","openapi","oss","sdk","trendyol","turkey","turkish-marketplace","typescript"],"created_at":"2026-06-04T01:00:57.317Z","updated_at":"2026-06-04T01:00:57.865Z","avatar_url":"https://github.com/loncadev.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./assets/brand/logomark.svg\" alt=\"Lonca\" height=\"48\"\u003e\n\u003c/p\u003e\n\n# Lonca\n\n[![CI](https://github.com/loncadev/lonca/actions/workflows/ci.yml/badge.svg)](https://github.com/loncadev/lonca/actions/workflows/ci.yml)\n[![npm version](https://img.shields.io/npm/v/@lonca/core.svg?label=%40lonca%2Fcore)](https://www.npmjs.com/package/@lonca/core)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](./LICENSE)\n[![Node](https://img.shields.io/node/v/@lonca/core.svg)](https://nodejs.org/)\n[![pnpm](https://img.shields.io/badge/maintained%20with-pnpm-cc00ff.svg)](https://pnpm.io/)\n\nOpen-source SDKs and tooling for Turkish e-commerce marketplaces.\n\n\u003e Type-safe TypeScript SDKs, curated OpenAPI specs, and integration utilities for Trendyol, Hepsiburada, n11, Amazon TR, Pazarama, Çiçeksepeti, and more.\n\n\u003e [!IMPORTANT]\n\u003e **Unofficial \u0026 independent.** Lonca is a community-maintained project. It is **not** an official SDK and is not affiliated with, endorsed by, or supported by Trendyol, Hepsiburada, or any other marketplace named here. All product names, logos, and trademarks are the property of their respective owners.\n\n\u003e [!WARNING]\n\u003e 🚧 **Alpha** — APIs are not stable. Do not use in production. Minor versions may contain breaking changes until `1.0.0`.\n\n## Table of contents\n\n- [Vision](#vision)\n- [Why?](#why)\n- [Packages](#packages)\n- [Quick start](#quick-start)\n- [Development](#development)\n- [Contributing](#contributing)\n- [Security](#security)\n- [License](#license)\n\n## Vision\n\nThree-stage roadmap:\n\n1. **SDK + OpenAPI Spec Collection** — Type-safe TypeScript SDKs and curated OpenAPI specs for Turkish marketplaces (current stage)\n2. **API Drift Detection** — A monitoring layer that proactively detects breaking changes in marketplace APIs\n3. **Unified Marketplace API Gateway** — A Plaid-style abstraction that puts every marketplace behind a single API\n\n## Why?\n\nTurkish e-commerce marketplace APIs are fragmented, under-documented, and constantly shifting. Every e-commerce developer ends up rewriting the same integration code from scratch. Existing solutions are either closed-source vendor-locked (IdeaSoft, T-Soft) or simply don't support Turkish marketplaces (Zapier, Make, n8n).\n\nLonca aims to fill this gap with a community-maintained open standard.\n\n## Packages\n\n| Package              | Description                                                                         | Status                                                                                                          |\n| -------------------- | ----------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- |\n| `@lonca/core`        | Shared types, error hierarchy, retry / logger / rate-limiter                        | [![npm](https://img.shields.io/npm/v/@lonca/core.svg)](https://www.npmjs.com/package/@lonca/core)               |\n| `@lonca/trendyol`    | Trendyol Marketplace SDK — full surface (14 resources, ~70 methods, webhook helper) | [![npm](https://img.shields.io/npm/v/@lonca/trendyol.svg)](https://www.npmjs.com/package/@lonca/trendyol)       |\n| `@lonca/hepsiburada` | Hepsiburada Marketplace SDK — full dev-portal coverage (12 resources, 95 methods)   | [![npm](https://img.shields.io/npm/v/@lonca/hepsiburada.svg)](https://www.npmjs.com/package/@lonca/hepsiburada) |\n\n📚 **Docs \u0026 API reference**: [loncadev.github.io/lonca](https://loncadev.github.io/lonca) — guides, end-to-end flows, and full TypeDoc API reference. Built with [Astro Starlight](https://starlight.astro.build), regenerated on each push to `main`.\n\nNeed an SDK for another marketplace? Open a [marketplace request](https://github.com/loncadev/lonca/issues/new?template=marketplace_request.yml).\n\n## Quick start\n\n### Trendyol (live)\n\n```bash\npnpm add @lonca/trendyol @lonca/core\n```\n\n```ts\nimport { createTrendyolClient } from '@lonca/trendyol';\nimport { paginate } from '@lonca/core';\n\nconst client = createTrendyolClient({\n  sellerId: 12345,\n  apiKey: process.env.TRENDYOL_API_KEY!,\n  apiSecret: process.env.TRENDYOL_API_SECRET!,\n  env: 'prod', // or 'stage'\n});\n\n// Iterate every product page-by-page.\nfor await (const product of paginate((p) =\u003e client.products.list(p))) {\n  for (const variant of product.variants) {\n    console.log(variant.barcode, product.title);\n  }\n}\n```\n\nSee [`sdks/trendyol/README.md`](./sdks/trendyol/README.md) for the full surface (brands · categories · suppliers · products read+write+lifecycle · inventory · orders read+write+split+cargo+ops+returns · claims · webhooks + `parseWebhookEvent` · questions · invoices · finance · labels · testOrders · locations) and end-to-end walkthroughs for product creation, webhook handling, returns/claims, and settlement reconciliation.\n\n### Shared primitives\n\n```bash\npnpm add @lonca/core\n```\n\n```ts\nimport { money, paginate, retry, RateLimitError, TokenBucketRateLimiter } from '@lonca/core';\n\nconst price = money(12550, 'TRY'); // 125.50 TRY (integer minor units)\nconst limiter = new TokenBucketRateLimiter({ capacity: 50, intervalMs: 60_000 });\n\nawait retry(\n  async () =\u003e {\n    await limiter.acquire();\n    // ...call a marketplace API\n  },\n  { maxAttempts: 5 },\n);\n```\n\nSee [`packages/core/README.md`](./packages/core/README.md) for the full surface.\n\n## Development\n\nRequirements:\n\n- Node.js \u003e= 22 (active LTS) — pinned to `24` via `.nvmrc`\n- pnpm \u003e= 10 ([Corepack](https://nodejs.org/api/corepack.html) recommended)\n\n```bash\ngit clone https://github.com/loncadev/lonca.git\ncd lonca\npnpm install\n```\n\nCommon commands:\n\n```bash\npnpm typecheck      # TypeScript\npnpm lint           # ESLint\npnpm format         # Prettier (write)\npnpm test           # Vitest\npnpm build          # Build all packages via Turborepo\npnpm dev            # Parallel watch across packages\n```\n\nWork on a single package:\n\n```bash\npnpm --filter @lonca/core test\n```\n\n## Contributing\n\nPull requests are welcome. Start with [CONTRIBUTING.md](./CONTRIBUTING.md) and our [Code of Conduct](./CODE_OF_CONDUCT.md). For larger changes, open a [Discussion](https://github.com/loncadev/lonca/discussions) first.\n\n## Security\n\n**Do not file public issues for security vulnerabilities.** Follow the disclosure process in [SECURITY.md](./SECURITY.md).\n\n## License\n\nMIT — see [LICENSE](./LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Floncadev%2Flonca","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Floncadev%2Flonca","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Floncadev%2Flonca/lists"}