{"_id":"@buiducnhat/ritel-sdk","_rev":"8-9f9edda4ad434809a46b1c634a6a45da","name":"@buiducnhat/ritel-sdk","dist-tags":{"latest":"0.5.1"},"versions":{"0.1.0":{"name":"@buiducnhat/ritel-sdk","version":"0.1.0","keywords":["ritel","sdk","api","erp","typescript"],"author":{"name":"Bui Duc Nhat"},"license":"MIT","_id":"@buiducnhat/ritel-sdk@0.1.0","maintainers":[{"name":"buiducnhat","email":"nhaths4701@gmail.com"}],"homepage":"https://github.com/buiducnhat/ritel#readme","bugs":{"url":"https://github.com/buiducnhat/ritel/issues"},"dist":{"shasum":"5c3507660c3edb2c1229adbf66ac5fd1bf39d382","tarball":"https://registry.npmjs.org/@buiducnhat/ritel-sdk/-/ritel-sdk-0.1.0.tgz","fileCount":10,"integrity":"sha512-niF9TrZlr/3tPxLQs6y+HU+hyyMlvv8vGeI93It466lQGkly2L7YLgEHBfs2cmNpenSS2HsO7Jyo0Jtq6PIGPw==","signatures":[{"sig":"MEYCIQCFjO8D1Of29nlkp+JUmbYXn3cTAYf0Dvvfpdyz1SUgMwIhAJDo8oPRldgpFeKBuuCrH7472Ia5ljKB7yvK2UQOhY/I","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":43979},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"07268b7e950b55252c3bd5ae8c748f32b38ae81c","scripts":{"dev":"tsdown --watch","build":"tsdown","typecheck":"tsc --noEmit","prepublishOnly":"bun run build"},"_npmUser":{"name":"buiducnhat","email":"nhaths4701@gmail.com"},"repository":{"url":"git+https://github.com/buiducnhat/ritel.git","type":"git","directory":"packages/sdk"},"_npmVersion":"11.6.2","description":"TypeScript SDK for Ritel Mini ERP external APIs","directories":{},"_nodeVersion":"25.2.1","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.19.0","typescript":"^5","@ritel/config":"workspace:*"},"peerDependencies":{"typescript":"^5"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ritel-sdk_0.1.0_1768672394553_0.01684488264600148","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@buiducnhat/ritel-sdk","version":"0.2.0","keywords":["ritel","sdk","api","erp","typescript"],"author":{"name":"Bui Duc Nhat"},"license":"MIT","_id":"@buiducnhat/ritel-sdk@0.2.0","maintainers":[{"name":"buiducnhat","email":"nhaths4701@gmail.com"}],"homepage":"https://github.com/buiducnhat/ritel#readme","bugs":{"url":"https://github.com/buiducnhat/ritel/issues"},"dist":{"shasum":"3f642652ef3967215c435697045ed3f242290b74","tarball":"https://registry.npmjs.org/@buiducnhat/ritel-sdk/-/ritel-sdk-0.2.0.tgz","fileCount":10,"integrity":"sha512-Bevjj5h9DDoat8Lq+VkeWwJbxEitjE7HXnWsUTvVeSAiWxvqCVzLksrXtQFqFEY87nuS6tXcK5YaeX0uhG/vlg==","signatures":[{"sig":"MEUCIEu3vGBZ9QMzSGTib8vs/+VgtUMJpQuBb4bizUylwF0dAiEAuRPQ4bWiCwg3z3gdMcgKLGc/MindiCiWWvX/ORYsw3M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":49189},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"e8c3c88dcd8adf190e97d07a3443e968b3d27994","scripts":{"dev":"tsdown --watch","build":"tsdown","typecheck":"tsc --noEmit","prepublishOnly":"bun run build"},"_npmUser":{"name":"buiducnhat","email":"nhaths4701@gmail.com"},"repository":{"url":"git+https://github.com/buiducnhat/ritel.git","type":"git","directory":"packages/sdk"},"_npmVersion":"11.6.2","description":"TypeScript SDK for Ritel Mini ERP external APIs","directories":{},"_nodeVersion":"25.2.1","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.19.0","typescript":"^5","@ritel/config":"workspace:*"},"peerDependencies":{"typescript":"^5"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ritel-sdk_0.2.0_1768908207279_0.2537415999250654","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@buiducnhat/ritel-sdk","version":"0.2.1","keywords":["ritel","sdk","api","erp","typescript"],"author":{"name":"Bui Duc Nhat"},"license":"MIT","_id":"@buiducnhat/ritel-sdk@0.2.1","maintainers":[{"name":"buiducnhat","email":"nhaths4701@gmail.com"}],"homepage":"https://github.com/buiducnhat/ritel#readme","bugs":{"url":"https://github.com/buiducnhat/ritel/issues"},"dist":{"shasum":"9ae6aee7810e809b5f292d2da2ccf4cc37493827","tarball":"https://registry.npmjs.org/@buiducnhat/ritel-sdk/-/ritel-sdk-0.2.1.tgz","fileCount":10,"integrity":"sha512-zguAAHAguHq9nok0Ygl8hchOANBkV15mpW97XxNsX5qTJ9dvA2Kk6zdAmoLnYo4QyV9s6MW2usmbUxp8DUOvvg==","signatures":[{"sig":"MEQCIBRt6XdAYt3nPNKkqS1LkkUn7jKu7FmfD21rNONcvuX8AiBWA2Nys9x/XFL1H5u3mB5Pf4JZznoXXpHrqwyoaSxRCg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":51156},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"6f957639d2345c126a51070a1008131f5d259031","scripts":{"dev":"tsdown --watch","build":"tsdown","typecheck":"tsc --noEmit","prepublishOnly":"bun run build"},"_npmUser":{"name":"buiducnhat","email":"nhaths4701@gmail.com"},"repository":{"url":"git+https://github.com/buiducnhat/ritel.git","type":"git","directory":"packages/sdk"},"_npmVersion":"11.7.0","description":"TypeScript SDK for Ritel Mini ERP external APIs","directories":{},"_nodeVersion":"25.3.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.19.0","typescript":"^5","@ritel/config":"workspace:*"},"peerDependencies":{"typescript":"^5"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ritel-sdk_0.2.1_1768972726234_0.971741283390201","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@buiducnhat/ritel-sdk","version":"0.3.0","keywords":["ritel","sdk","api","erp","typescript"],"author":{"name":"Nhat Bui"},"license":"MIT","_id":"@buiducnhat/ritel-sdk@0.3.0","maintainers":[{"name":"buiducnhat","email":"nhaths4701@gmail.com"}],"homepage":"https://github.com/buiducnhat/ritel#readme","bugs":{"url":"https://github.com/buiducnhat/ritel/issues"},"dist":{"shasum":"9316d1c52b32492e49d7e363b6efc91c2a53b1d5","tarball":"https://registry.npmjs.org/@buiducnhat/ritel-sdk/-/ritel-sdk-0.3.0.tgz","fileCount":10,"integrity":"sha512-e8HzgB04mMw1MiExbKMaQBvn0KX5ODhH55f7wWeZpZNgb8A/q8B9rm0Enp02TA681QRYKMmSa1OJXd34/CJ4hA==","signatures":[{"sig":"MEUCIQCFFwYnM+jbfcZ3RamD3KaLINPmoqNCiqsFNrcjN75K5gIgB9rebxTEM2kFbY2DIgi4Lz659Jzzz3QoEB11sQZJmFU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":49647},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"0aefabf3756e0c42523fa3211921796e35c1acbe","scripts":{"build":"tsdown","typecheck":"tsc --noEmit","prepublishOnly":"bun run build"},"_npmUser":{"name":"buiducnhat","email":"nhaths4701@gmail.com"},"repository":{"url":"git+https://github.com/buiducnhat/ritel.git","type":"git","directory":"packages/sdk"},"_npmVersion":"11.7.0","description":"TypeScript SDK for Ritel Mini ERP external APIs","directories":{},"_nodeVersion":"25.4.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.20.1","typescript":"^5","@ritel/config":"workspace:*"},"peerDependencies":{"typescript":"^5"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ritel-sdk_0.3.0_1769255230618_0.5185294687101667","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@buiducnhat/ritel-sdk","version":"0.3.1","keywords":["ritel","sdk","api","erp","typescript"],"author":{"name":"Nhat Bui"},"license":"MIT","_id":"@buiducnhat/ritel-sdk@0.3.1","maintainers":[{"name":"buiducnhat","email":"nhaths4701@gmail.com"}],"homepage":"https://github.com/buiducnhat/ritel#readme","bugs":{"url":"https://github.com/buiducnhat/ritel/issues"},"dist":{"shasum":"1065aee9b983926aa31ef4fee1631dbeaf10d8f1","tarball":"https://registry.npmjs.org/@buiducnhat/ritel-sdk/-/ritel-sdk-0.3.1.tgz","fileCount":10,"integrity":"sha512-VquT8AsXeLMAmhxDbcp/p1tpF/YkagTiTQNUX2HCQieJQBBM20g7zr8jZgP+IXNcFdS32KVOkzXXs99ild0yDg==","signatures":[{"sig":"MEUCICVA2DUhfh6hA9puJ9XI+HwhoJRZt6HXVJKQSdyUTnpNAiEAqwiAwYjs8RZmGNa0C5pD+dhLxt7pJUTsrchFhZuaTeo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":49575},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"75d12ecf6dff5b93e424661993274cf7561e2fe3","scripts":{"build":"tsdown","typecheck":"tsc --noEmit","prepublishOnly":"bun run build"},"_npmUser":{"name":"buiducnhat","email":"nhaths4701@gmail.com"},"repository":{"url":"git+https://github.com/buiducnhat/ritel.git","type":"git","directory":"packages/sdk"},"_npmVersion":"11.7.0","description":"TypeScript SDK for Ritel Mini ERP external APIs","directories":{},"_nodeVersion":"25.4.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.20.1","typescript":"^5","@ritel/config":"workspace:*"},"peerDependencies":{"typescript":"^5"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ritel-sdk_0.3.1_1769282068310_0.45066486005277184","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@buiducnhat/ritel-sdk","version":"0.4.0","keywords":["ritel","sdk","api","erp","typescript"],"author":{"name":"Nhat Bui"},"license":"MIT","_id":"@buiducnhat/ritel-sdk@0.4.0","maintainers":[{"name":"buiducnhat","email":"nhaths4701@gmail.com"}],"homepage":"https://github.com/buiducnhat/ritel#readme","bugs":{"url":"https://github.com/buiducnhat/ritel/issues"},"dist":{"shasum":"1243f672752f31792d049cad0e0f3cbab22e4e9c","tarball":"https://registry.npmjs.org/@buiducnhat/ritel-sdk/-/ritel-sdk-0.4.0.tgz","fileCount":10,"integrity":"sha512-n8hXOe4lOsm5do8YpdwLlPpzD/YlQ3AHVJaAqFLEGg6UHmb6CIP91hUlFYqOip9AV5396UZioFgqVpQ95Uag2A==","signatures":[{"sig":"MEQCIAPfAo811Gf0Ep/IMWfheZ8LpVu5tmoqYhCjvvD0Zo6/AiBp6kofUTXiFILdO9czJa+mhQ1VnM7fAvmdQzVdx/O0Vw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50165},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"ec9db516116084e6ab4d6725d328b94e769f7078","scripts":{"build":"tsdown","typecheck":"tsc -b --noEmit","prepublishOnly":"bun run build"},"_npmUser":{"name":"buiducnhat","email":"nhaths4701@gmail.com"},"repository":{"url":"git+https://github.com/buiducnhat/ritel.git","type":"git","directory":"packages/sdk"},"_npmVersion":"11.8.0","description":"TypeScript SDK for Ritel Mini ERP external APIs","directories":{},"_nodeVersion":"25.6.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.20.3","typescript":"^5","@ritel/config":"workspace:*"},"peerDependencies":{"typescript":"^5"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ritel-sdk_0.4.0_1770661570796_0.7926754988769351","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@buiducnhat/ritel-sdk","version":"0.5.0","keywords":["ritel","sdk","api","erp","typescript"],"author":{"name":"Nhat Bui"},"license":"MIT","_id":"@buiducnhat/ritel-sdk@0.5.0","maintainers":[{"name":"buiducnhat","email":"nhaths4701@gmail.com"}],"homepage":"https://github.com/buiducnhat/ritel#readme","bugs":{"url":"https://github.com/buiducnhat/ritel/issues"},"dist":{"shasum":"63a354a94f3f3881285d839caa5c62a23c7d6540","tarball":"https://registry.npmjs.org/@buiducnhat/ritel-sdk/-/ritel-sdk-0.5.0.tgz","fileCount":10,"integrity":"sha512-aCGs9NFH9deW60x2TGsafjb5q5Ae30W79LVMNhqnjP1S2Brpnn7eQPlfRuwQJNGMC1QFPJ+VujaLWyGD/ZJ6gQ==","signatures":[{"sig":"MEQCID4wgwJxt6wiakqnzwcMkCW/F4xl3qojGh6JVUY3GehZAiAzDBRyjOSHs2Nye91nhjS8OXD/kcxQ33J8KMiCiTnZzQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50146},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"5380e36a0a0a5bafb4c4360850c916d6242d6d74","scripts":{"build":"tsdown","typecheck":"tsc -b --noEmit","prepublishOnly":"bun run build"},"_npmUser":{"name":"buiducnhat","email":"nhaths4701@gmail.com"},"repository":{"url":"git+https://github.com/buiducnhat/ritel.git","type":"git","directory":"packages/sdk"},"_npmVersion":"11.9.0","description":"TypeScript SDK for Ritel Mini ERP external APIs","directories":{},"_nodeVersion":"25.6.1","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.21.0","typescript":"^5","@ritel/utils":"workspace:*","@ritel/config":"workspace:*"},"peerDependencies":{"typescript":"^5"},"peerDependenciesMeta":{"typescript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ritel-sdk_0.5.0_1774322576819_0.8135494442627074","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@buiducnhat/ritel-sdk","version":"0.5.1","description":"TypeScript SDK for Ritel Mini ERP external APIs","type":"module","main":"./dist/index.cjs","module":"./dist/index.mjs","types":"./dist/index.d.mts","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"scripts":{"build":"tsdown","typecheck":"tsc -b --noEmit","prepublishOnly":"bun run build"},"keywords":["ritel","sdk","api","erp","typescript"],"author":{"name":"Nhat Bui"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/buiducnhat/ritel.git","directory":"packages/sdk"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"devDependencies":{"@ritel/config":"workspace:*","@ritel/utils":"workspace:*","tsdown":"^0.21.4","typescript":"^6.0.2"},"peerDependencies":{"typescript":"^5"},"peerDependenciesMeta":{"typescript":{"optional":true}},"gitHead":"5380e36a0a0a5bafb4c4360850c916d6242d6d74","_id":"@buiducnhat/ritel-sdk@0.5.1","bugs":{"url":"https://github.com/buiducnhat/ritel/issues"},"homepage":"https://github.com/buiducnhat/ritel#readme","_nodeVersion":"25.6.1","_npmVersion":"11.9.0","dist":{"integrity":"sha512-wXnu7wQGwvhtA8pSAiC3wVIDWC4jHXyRJsFh7IidiLNLRO+uQvCfwCAY/mC5xkEv3PPZjUkYDrPzNF+qy/E6MQ==","shasum":"40b97eefabe9a86c9c9f7c2cb592554d172874ec","tarball":"https://registry.npmjs.org/@buiducnhat/ritel-sdk/-/ritel-sdk-0.5.1.tgz","fileCount":10,"unpackedSize":50150,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIAjV2ZmBN5qkYc/HMR0hV9yXK5QgiCbpkPrhnd6Qe2HLAiBMpeUJlYPXknsfe9maalQpCLnAJzH6rmXmDcU4uvEBFA=="}]},"_npmUser":{"name":"buiducnhat","email":"nhaths4701@gmail.com"},"directories":{},"maintainers":[{"name":"buiducnhat","email":"nhaths4701@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ritel-sdk_0.5.1_1774323314152_0.8180201915176657"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-17T17:53:14.454Z","modified":"2026-03-24T03:35:14.416Z","0.1.0":"2026-01-17T17:53:14.709Z","0.2.0":"2026-01-20T11:23:27.418Z","0.2.1":"2026-01-21T05:18:46.394Z","0.3.0":"2026-01-24T11:47:10.760Z","0.3.1":"2026-01-24T19:14:28.463Z","0.4.0":"2026-02-09T18:26:10.957Z","0.5.0":"2026-03-24T03:22:56.960Z","0.5.1":"2026-03-24T03:35:14.296Z"},"bugs":{"url":"https://github.com/buiducnhat/ritel/issues"},"author":{"name":"Nhat Bui"},"license":"MIT","homepage":"https://github.com/buiducnhat/ritel#readme","keywords":["ritel","sdk","api","erp","typescript"],"repository":{"type":"git","url":"git+https://github.com/buiducnhat/ritel.git","directory":"packages/sdk"},"description":"TypeScript SDK for Ritel Mini ERP external APIs","maintainers":[{"name":"buiducnhat","email":"nhaths4701@gmail.com"}],"readme":"# @buiducnhat/ritel-sdk\n\nTypeScript SDK for Ritel Mini ERP external APIs.\n\n## Installation\n\n```bash\nnpm install @buiducnhat/ritel-sdk\n# or\nbun add @buiducnhat/ritel-sdk\n# or\npnpm add @buiducnhat/ritel-sdk\n```\n\n## Quick Start\n\n```typescript\nimport { RitelClient } from \"@buiducnhat/ritel-sdk\";\n\nconst client = new RitelClient({\n  baseUrl: \"https://your-ritel-server.com\",\n  apiKey: \"your-api-key\",\n});\n\n// List products\nconst products = await client.products.list({\n  limit: 20,\n  stockStatus: \"in_stock\",\n});\n\n// Create an order\nconst order = await client.orders.create({\n  customerName: \"John Doe\",\n  customerPhone: \"+84901234567\",\n  items: [{ productId: \"prod_123\", quantity: 2, unitPrice: 50000 }],\n  paymentMethod: \"bank_transfer\",\n});\n\nconsole.log(order.vietQrUrl); // QR code for payment\n```\n\n## API Reference\n\n### RitelClient\n\n```typescript\nconst client = new RitelClient({\n  baseUrl: string;    // Required: API base URL\n  apiKey: string;     // Required: Your API key\n  timeout?: number;   // Optional: Request timeout in ms (default: 30000)\n});\n```\n\n### Products\n\n#### `client.products.list(params?)`\n\nList products with optional filters.\n\n```typescript\nconst response = await client.products.list({\n  limit: 20,           // 1-100, default 20\n  offset: 0,           // Pagination offset\n  search: \"shirt\",     // Search by name or SKU\n  categoryId: \"cat_1\", // Filter by category\n  stockStatus: \"in_stock\", // \"in_stock\" | \"out_of_stock\" | \"all\"\n  minPrice: 10000,     // Min price filter\n  maxPrice: 100000,    // Max price filter\n  sortBy: \"price\",     // \"name\" | \"price\" | \"created_at\"\n  sortOrder: \"asc\",    // \"asc\" | \"desc\"\n});\n\n// Response\n{\n  data: Product[],\n  pagination: { total, limit, offset, hasMore }\n}\n```\n\n#### `client.products.get(id)`\n\nGet a single product by ID.\n\n```typescript\nconst product = await client.products.get(\"prod_123\");\n\n// Product interface\n{\n  id: string;\n  name: string;\n  sku: string | null;\n  salePrice: number;\n  currentSalePrice: number | null;  // Discounted price if applicable\n  imageUrl: string | null;\n  description: string | null;\n  unit: string | null;              // e.g., \"pcs\", \"kg\"\n  category: { id: string; name: string } | null;\n  customProperties: Record<string, unknown> | null;\n  stockQuantity: number;\n  medias: ProductMedia[] | null;\n}\n```\n\n### Categories\n\n#### `client.categories.list(params?)`\n\nList product categories with optional filters.\n\n```typescript\nconst response = await client.categories.list({\n  limit: 20,        // Pagination limit\n  offset: 0,        // Pagination offset\n  search: \"cloth\",  // Search by name\n});\n\n// Response\n{\n  data: Category[],\n  pagination: { total, limit, offset, hasMore }\n}\n\n// Category interface\n{\n  id: string;\n  name: string;\n  slug: string;\n  description: string | null;\n}\n```\n\n### Orders\n\n#### `client.orders.create(input)`\n\nCreate a new order.\n\n```typescript\nconst order = await client.orders.create({\n  customerName: \"John Doe\",\n  customerPhone: \"+84901234567\",\n  customerEmail: \"john@example.com\",  // Optional\n  customerAddress: \"123 Main St\",     // Optional\n  items: [\n    { productId: \"prod_123\", quantity: 2, unitPrice: 50000 },\n  ],\n  paymentMethod: \"cash\" | \"bank_transfer\" | \"sepay_pg\",\n  notes: \"Gift wrap please\",          // Optional\n  expectedDeliveryDate: \"2024-01-20\", // Optional\n});\n\n// Response includes vietQrUrl and bankInfo for bank_transfer\n{\n  id: string;\n  orderNumber: string;\n  total: number;\n  paymentMethod: string;\n  paymentStatus: string;\n  vietQrUrl: string | null;       // QR code URL for payment\n  bankInfo: {                     // Bank details for manual transfer\n    bankBin: string | null;\n    bankAccountNumber: string | null;\n    bankAccountName: string | null;\n  } | null;\n}\n```\n\n#### `client.orders.list(params?)`\n\nList orders with optional filters.\n\n```typescript\nconst response = await client.orders.list({\n  limit: 20,\n  offset: 0,\n  status: \"pending\", // \"pending\" | \"completed\" | \"cancelled\"\n  paymentStatus: \"pending\", // \"pending\" | \"paid\" | \"failed\"\n  orderNumber: \"ORD-001\", // Exact match\n});\n```\n\n#### `client.orders.get(id)`\n\nGet order by ID.\n\n```typescript\nconst order = await client.orders.get(\"order_abc123\");\n```\n\n#### `client.orders.update(id, input)`\n\nUpdate an order.\n\n```typescript\nconst order = await client.orders.update(\"order_abc123\", {\n  notes: \"Updated notes\",\n  deliveryInfo: {\n    name: \"Jane Doe\",\n    phone: \"+84909876543\",\n    address: \"456 Other St\",\n  },\n});\n```\n\n#### `client.orders.cancel(id)`\n\nCancel an order.\n\n```typescript\nconst order = await client.orders.cancel(\"order_abc123\");\n```\n\n## Error Handling\n\n```typescript\nimport {\n  RitelApiError,\n  RitelNetworkError,\n  RitelError,\n} from \"@buiducnhat/ritel-sdk\";\n\ntry {\n  await client.orders.create(input);\n} catch (error) {\n  if (error instanceof RitelApiError) {\n    console.error(`API Error ${error.status}: ${error.message}`);\n    // error.status - HTTP status code\n    // error.code - Error code from API\n    // error.message - Error message\n  } else if (error instanceof RitelNetworkError) {\n    console.error(`Network Error: ${error.message}`);\n  }\n}\n```\n\n## TypeScript\n\nAll types are exported:\n\n```typescript\nimport type {\n  // Client config\n  RitelClientConfig,\n\n  // Products\n  Product,\n  ProductCategory,\n  GetProductsParams,\n  ProductsListResponse,\n\n  // Categories\n  Category,\n  GetCategoriesParams,\n  CategoriesListResponse,\n\n  // Orders\n  Order,\n  OrderItem,\n  OrderItemInput,\n  CreateOrderInput,\n  UpdateOrderInput,\n  ListOrdersParams,\n  OrderCreateResponse,\n  OrdersListResponse,\n  DeliveryInfo,\n  ProductMedia,\n\n  // Common\n  Pagination,\n  ApiErrorResponse,\n} from \"@buiducnhat/ritel-sdk\";\n\n// Resource classes (for advanced usage)\nimport {\n  ProductsResource,\n  CategoriesResource,\n  OrdersResource,\n} from \"@buiducnhat/ritel-sdk\";\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md"}