Skip to content

[Bug]: Metadata not saved for tax line items #12804

Description

@davidmdavis

Package.json file

{
  "name": "medusa-starter-default",
  "version": "0.0.5",
  "description": "A starter for Medusa projects.",
  "author": "Medusa (https://medusajs.com)",
  "license": "MIT",
  "keywords": [
    "sqlite",
    "postgres",
    "typescript",
    "ecommerce",
    "headless",
    "medusa"
  ],
  "scripts": {
    "build": "medusa build",
    "predeploy": "medusa db:migrate",
    "seed": "medusa exec ./src/scripts/seed.ts",
    "start": "NODE_OPTIONS='-r newrelic' medusa start",
    "dev": "medusa develop",
    "test": "npm run test:unit && npm run test:integration",
    "test:unit": "NODE_OPTIONS=--experimental-vm-modules jest --forceExit --detectOpenHandles ./tests/unit",
    "test:integration": "NODE_OPTIONS=--experimental-vm-modules jest --forceExit --detectOpenHandles ./tests/integration",
    "generate:openapi": "node scripts/generate-openapi.js"
  },
  "dependencies": {
    "@amazonpay/amazon-pay-api-sdk-nodejs": "^2.3.1",
    "@aws-sdk/client-sns": "^3.782.0",
    "@medusajs/admin-sdk": "2.8.4",
    "@medusajs/cli": "2.8.4",
    "@medusajs/framework": "2.8.4",
    "@medusajs/medusa": "2.8.4",
    "@mikro-orm/core": "6.4.3",
    "@mikro-orm/knex": "6.4.3",
    "@mikro-orm/migrations": "6.4.3",
    "@mikro-orm/postgresql": "6.4.3",
    "@opentelemetry/auto-instrumentations-node": "^0.57.0",
    "@opentelemetry/exporter-prometheus": "^0.200.0",
    "@opentelemetry/instrumentation-pg": "^0.52.0",
    "@opentelemetry/resources": "^2.0.0",
    "@opentelemetry/sdk-node": "^0.200.0",
    "@opentelemetry/sdk-trace-node": "^2.0.0",
    "awilix": "^8.0.1",
    "moment": "^2.30.1",
    "newrelic": "^12.16.1",
    "pg": "^8.13.0",
    "prom-client": "^15.1.3",
    "whatwg-fetch": "^3.6.20"
  },
  "devDependencies": {
    "@medusajs/test-utils": "2.8.4",
    "@mikro-orm/cli": "6.4.3",
    "@openapitools/openapi-generator-cli": "2.16.3",
    "@swc/core": "1.5.7",
    "@swc/jest": "^0.2.37",
    "@types/jest": "^29.5.14",
    "@types/newrelic": "^9.14.8",
    "@types/node": "^20.0.0",
    "@types/react": "^18.3.2",
    "@types/react-dom": "^18.2.25",
    "aws-sdk-client-mock": "^4.1.0",
    "jest": "^29.7.0",
    "prop-types": "^15.8.1",
    "react": "^18.2.0",
    "react-dom": "^18.2.0",
    "redis": "^5.0.1",
    "swagger-jsdoc": "^6.2.8",
    "ts-node": "^10.9.2",
    "typescript": "^5.6.2",
    "vite": "^5.2.11",
    "yalc": "^1.0.0-pre.53"
  },
  "optionalDependencies": {
    "@rollup/rollup-linux-x64-musl": "4.34.8"
  },
  "engines": {
    "node": ">=20"
  }
}

Node.js version

v22.14.0

Database and its version

PostgreSQL 16.6

Operating system name and version

MacOS 15.5

Browser name

No response

What happended?

I'm implementing a custom tax provider. When returning the tax lines via the getTaxLines method, the metadata is not saved to the created tax lines in the database.

return [
  {
    rate_id: "rate_id",
    rate: 4.50,
    name: "tax_name",
    code: "tax_code",
    line_item_id: item.line_item.id,
    provider_id: this.getIdentifier(),
    metadata: {
      foo: "bar"
    }
  },
  ...
]

Expected behavior

The metadata values should be saved to the created tax lines in cart_line_item_tax_line.

Actual behavior

The metadata values are not saved to the created tax lines in cart_line_item_tax_line.

Link to reproduction repo

n/a

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions