{"_id":"@commercejs/adapter-medusa","_rev":"4-adf22a0f6b6922cb6cf5078e5c761ae7","name":"@commercejs/adapter-medusa","dist-tags":{"latest":"0.2.2"},"versions":{"0.1.0":{"name":"@commercejs/adapter-medusa","version":"0.1.0","license":"MIT","_id":"@commercejs/adapter-medusa@0.1.0","maintainers":[{"name":"masterde","email":"root@xyz.dev"}],"homepage":"https://github.com/commerce-js/commerce.js#readme","bugs":{"url":"https://github.com/commerce-js/commerce.js/issues"},"dist":{"shasum":"e324fa489483d0cf4a4127f6586ce528bffd9abf","tarball":"https://registry.npmjs.org/@commercejs/adapter-medusa/-/adapter-medusa-0.1.0.tgz","fileCount":50,"integrity":"sha512-9IeyN/NXtE45RWk+IemgK7PNG7fjqlIxNZ1bqwTT3WY+vO1Ar5+N0Z99zojhdVds8/46yhwC7j6XX4r47Qv9Tg==","signatures":[{"sig":"MEUCIQCaz1mCYqWz4HTn7w+sOP7+JQLORnHWDtuZvvqE1GO+HgIgBw3kapBm9SJnU2s8gE9qSMy421qzQPn+mfvdqWB7kDo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":120636},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"560385682b659881a2c4c3ce9a7901be302db2cf","scripts":{"build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"masterde","email":"root@xyz.dev"},"repository":{"url":"git+https://github.com/commerce-js/commerce.js.git","type":"git","directory":"packages/adapter-medusa"},"_npmVersion":"11.7.0","description":"Medusa V2 platform adapter for CommerceJS SDK","directories":{},"_nodeVersion":"24.12.0","dependencies":{"ofetch":"^1.4.0","@commercejs/types":"workspace:*"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","vitest":"^4.0.0","typescript":"^5.7.0"},"_npmOperationalInternal":{"tmp":"tmp/adapter-medusa_0.1.0_1771257662316_0.7746938626978639","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@commercejs/adapter-medusa","version":"0.2.0","license":"MIT","_id":"@commercejs/adapter-medusa@0.2.0","maintainers":[{"name":"masterde","email":"root@xyz.dev"}],"homepage":"https://github.com/commerce-js/commerce.js#readme","bugs":{"url":"https://github.com/commerce-js/commerce.js/issues"},"dist":{"shasum":"49b3eaf159ca9b77d54c61626b53484bf2a2ab32","tarball":"https://registry.npmjs.org/@commercejs/adapter-medusa/-/adapter-medusa-0.2.0.tgz","fileCount":55,"integrity":"sha512-Qima59MfyqCkMu2iJw0MxT/OyeM6GRAIgpmlX9vA2FmiwOu/nimiBabS8feL1EFf2navh4+2wofcqerkLeS59w==","signatures":[{"sig":"MEYCIQDuxdsYtUivT1RflppQ1WNLK4yUFbLTiPU0N+BccPAMsQIhAI6nmaJUOfGOp7d1fqGgOrPCR2uLmty3QWtv7NSHMSPL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@commercejs%2fadapter-medusa@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":156959},"main":"./dist/index.js","type":"module","_from":"file:commercejs-adapter-medusa-0.2.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:92d25ccb-c997-41fc-b295-2aca5cc24590"}},"_resolved":"/tmp/f1cafdc66434a1fad5f8c6fc3ab279f9/commercejs-adapter-medusa-0.2.0.tgz","_integrity":"sha512-Qima59MfyqCkMu2iJw0MxT/OyeM6GRAIgpmlX9vA2FmiwOu/nimiBabS8feL1EFf2navh4+2wofcqerkLeS59w==","repository":{"url":"git+https://github.com/commerce-js/commerce.js.git","type":"git","directory":"packages/adapter-medusa"},"_npmVersion":"11.10.0","description":"Medusa V2 platform adapter for CommerceJS SDK","directories":{},"_nodeVersion":"22.22.0","dependencies":{"ofetch":"^1.4.0","@commercejs/types":"0.2.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","vitest":"^4.0.0","typescript":"^5.7.0"},"_npmOperationalInternal":{"tmp":"tmp/adapter-medusa_0.2.0_1771259174766_0.16595162635309535","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@commercejs/adapter-medusa","version":"0.2.1","license":"MIT","_id":"@commercejs/adapter-medusa@0.2.1","maintainers":[{"name":"masterde","email":"root@xyz.dev"}],"homepage":"https://github.com/commerce-js/commerce.js#readme","bugs":{"url":"https://github.com/commerce-js/commerce.js/issues"},"dist":{"shasum":"95a40b28300f8a58049b1c2b90147227094b69b0","tarball":"https://registry.npmjs.org/@commercejs/adapter-medusa/-/adapter-medusa-0.2.1.tgz","fileCount":55,"integrity":"sha512-om47qet3Wr8jMzvj2Vc8rLgEMjW4tV5MNLCxSRlzsn1i+8foOOEuCyDD5NbSAioS7v0ugMUKXmf+AD8CZ2oVSA==","signatures":[{"sig":"MEQCIAo2oyI94stVD90ZugA0HI6NtadBFEv4eOERjBXuDkkLAiBnhZdJofGZl5+Dx9GeuRuB6asP7ONzbCWB2A962tvJIw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@commercejs%2fadapter-medusa@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":157143},"main":"./dist/index.js","type":"module","_from":"file:commercejs-adapter-medusa-0.2.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:92d25ccb-c997-41fc-b295-2aca5cc24590"}},"_resolved":"/tmp/591bd58ed6f7535c89022054d390a14b/commercejs-adapter-medusa-0.2.1.tgz","_integrity":"sha512-om47qet3Wr8jMzvj2Vc8rLgEMjW4tV5MNLCxSRlzsn1i+8foOOEuCyDD5NbSAioS7v0ugMUKXmf+AD8CZ2oVSA==","repository":{"url":"git+https://github.com/commerce-js/commerce.js.git","type":"git","directory":"packages/adapter-medusa"},"_npmVersion":"11.10.0","description":"Medusa V2 platform adapter for CommerceJS SDK","directories":{},"_nodeVersion":"22.22.0","dependencies":{"ofetch":"^1.4.0","@commercejs/types":"0.2.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","vitest":"^4.0.0","typescript":"^5.7.0"},"_npmOperationalInternal":{"tmp":"tmp/adapter-medusa_0.2.1_1771339658913_0.21157393413450354","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@commercejs/adapter-medusa","version":"0.2.2","description":"Medusa V2 platform adapter for CommerceJS SDK","repository":{"type":"git","url":"git+https://github.com/commerce-js/commerce.js.git","directory":"packages/adapter-medusa"},"license":"MIT","type":"module","main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"dependencies":{"ofetch":"^1.4.0","@commercejs/types":"0.3.0"},"devDependencies":{"tsx":"^4.21.0","typescript":"^5.7.0","vitest":"^4.0.0"},"scripts":{"build":"tsc","typecheck":"tsc --noEmit","clean":"rm -rf dist"},"_id":"@commercejs/adapter-medusa@0.2.2","bugs":{"url":"https://github.com/commerce-js/commerce.js/issues"},"homepage":"https://github.com/commerce-js/commerce.js#readme","_integrity":"sha512-5iJ+2yCx4oeV0LfIdhGkKO1UfibOEEOKiwK/nQw+Xuc9o85WkNq+SwCLMAwwNjwbsH03TH12L2uJzyR+AyD9Kw==","_resolved":"/tmp/4b57f757809cc96fa42d496e6b419fc6/commercejs-adapter-medusa-0.2.2.tgz","_from":"file:commercejs-adapter-medusa-0.2.2.tgz","_nodeVersion":"22.22.0","_npmVersion":"11.10.0","dist":{"integrity":"sha512-5iJ+2yCx4oeV0LfIdhGkKO1UfibOEEOKiwK/nQw+Xuc9o85WkNq+SwCLMAwwNjwbsH03TH12L2uJzyR+AyD9Kw==","shasum":"43a753453d2b1e775c0cf00686401fc5a65e4db7","tarball":"https://registry.npmjs.org/@commercejs/adapter-medusa/-/adapter-medusa-0.2.2.tgz","fileCount":55,"unpackedSize":157143,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@commercejs%2fadapter-medusa@0.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIGerbXUhAl2xYmaNcevrK5vEZ2x8lo6BJntaPhnwCF1dAiBhxmvDddzL5xFyWJmaHUB7KxoSL2Ui6jKlTP4J8+T1ag=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:92d25ccb-c997-41fc-b295-2aca5cc24590"}},"directories":{},"maintainers":[{"name":"masterde","email":"root@xyz.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/adapter-medusa_0.2.2_1771367409699_0.2567752291998162"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-16T16:01:02.187Z","modified":"2026-02-17T22:30:10.152Z","0.1.0":"2026-02-16T16:01:02.453Z","0.2.0":"2026-02-16T16:26:14.915Z","0.2.1":"2026-02-17T14:47:39.064Z","0.2.2":"2026-02-17T22:30:09.854Z"},"bugs":{"url":"https://github.com/commerce-js/commerce.js/issues"},"license":"MIT","homepage":"https://github.com/commerce-js/commerce.js#readme","repository":{"type":"git","url":"git+https://github.com/commerce-js/commerce.js.git","directory":"packages/adapter-medusa"},"description":"Medusa V2 platform adapter for CommerceJS SDK","maintainers":[{"name":"masterde","email":"root@xyz.dev"}],"readme":"# @commercejs/adapter-medusa\n\nMedusa V2 platform adapter for CommerceJS — maps the Medusa Store API to the unified data model.\n\n[![npm](https://img.shields.io/npm/v/@commercejs/adapter-medusa?color=CB3837)](https://www.npmjs.com/package/@commercejs/adapter-medusa)\n[![TypeScript](https://img.shields.io/badge/TypeScript-3178C6?logo=typescript&logoColor=white)](https://www.typescriptlang.org/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n## Overview\n\n`@commercejs/adapter-medusa` implements the `CommerceAdapter` interface for [Medusa](https://medusajs.com/), the open-source headless commerce platform. It translates Medusa V2's Store API responses into CommerceJS unified types, making your storefront code platform-independent.\n\n**Supported domains:** catalog, cart, checkout, customers, orders, store, countries\n\n## Install\n\n```bash\nnpm install @commercejs/adapter-medusa @commercejs/types\n```\n\n## Quick Start\n\n```typescript\nimport { MedusaAdapter } from '@commercejs/adapter-medusa'\n\nconst adapter = new MedusaAdapter({\n  baseUrl: 'http://localhost:9000',\n  publishableApiKey: process.env.MEDUSA_PUBLISHABLE_KEY!,\n  defaultRegionId: 'reg_01J...', // optional, used for cart creation\n})\n\n// Catalog\nconst products = await adapter.getProducts({ query: 'shirt' })\nconst product = await adapter.getProduct({ slug: 'cotton-tee' })\nconst categories = await adapter.getCategories()\n\n// Cart & Checkout\nconst cart = await adapter.createCart()\nconst updated = await adapter.addToCart(cart.id, {\n  productId: 'prod_01',\n  variantId: 'var_01', // required — Medusa products always have variants\n  quantity: 2,\n})\nconst methods = await adapter.getShippingMethods(cart.id)\nconst order = await adapter.placeOrder(cart.id)\n\n// Customer\nconst customer = await adapter.login('user@example.com', 'password')\nconst profile = await adapter.getCustomer()\nconst orders = await adapter.getCustomerOrders()\n\n// Store info (derived from regions)\nconst store = await adapter.getStoreInfo()\nconst countries = await adapter.getCountries()\n```\n\n## Exports\n\n### Main\n\n| Export | Description |\n|--------|-------------|\n| `MedusaAdapter` | Full adapter implementing `CommerceAdapter` |\n| `MedusaClient` | Low-level HTTP client for custom Medusa API calls |\n| `MedusaConfig` | Configuration type |\n\n### Mappers\n\nIndividual mapper functions for custom transformations:\n\n```typescript\nimport { mapMedusaProduct, mapMedusaCart } from '@commercejs/adapter-medusa'\n\n// Transform raw Medusa API data to CommerceJS types\nconst product = mapMedusaProduct(medusaRawProduct)\nconst cart = mapMedusaCart(medusaRawCart)\n```\n\nAvailable mappers: `mapMedusaProduct`, `mapMedusaCategory`, `mapMedusaCart`, `mapMedusaCustomer`, `mapMedusaAddress`, `mapMedusaOrder`, `mapMedusaRegionsToStoreInfo`, `mapMedusaRegionsToCountries`, `mapMedusaShippingOption`\n\n### Raw Types\n\nAll Medusa API response types are exported for advanced usage:\n\n```typescript\nimport type { MedusaProduct, MedusaCart, MedusaOrder } from '@commercejs/adapter-medusa'\n```\n\n## Configuration\n\n```typescript\ninterface MedusaConfig {\n  /** Base URL of your Medusa server (e.g. http://localhost:9000) */\n  baseUrl: string\n  /** Publishable API key from Medusa admin */\n  publishableApiKey: string\n  /** Default region ID for cart creation (optional) */\n  defaultRegionId?: string\n  /** JWT token for authenticated customer endpoints (optional) */\n  apiToken?: string\n  /** Request timeout in ms (default: 30000) */\n  timeout?: number\n}\n```\n\n## Medusa vs Salla — Key Differences\n\n| Aspect | Medusa | Salla |\n|--------|--------|-------|\n| **Cart** | ✅ Full CRUD + API checkout | ❌ Hosted checkout only |\n| **Auth** | JWT via `/auth/customer/emailpass` | OAuth access tokens |\n| **Variants** | Always required | Optional |\n| **Prices** | Minor units (cents) | Major units (10.00) |\n| **Store Info** | Derived from `/regions` | Direct `/store/info` endpoint |\n\n## Documentation\n\nFull docs at [commerce.js.org](https://commerce.js.org)\n\n## License\n\n[MIT](../../LICENSE)\n","readmeFilename":"README.md"}