---
displayed_sidebar: entitiesSidebar
slug: /references/entities/classes/CustomShippingOption
---

import ParameterTypes from "@site/src/components/ParameterTypes"

# CustomShippingOption

Custom Shipping Options are overridden Shipping Options. Admins can attach a Custom Shipping Option to a cart in order to set a custom price for a particular Shipping Option.

## Properties

<ParameterTypes parameters={[
  {
    "name": "cart",
    "type": "[Cart](entities.Cart.mdx)",
    "description": "The details of the cart this shipping option belongs to.",
    "optional": false,
    "defaultValue": "",
    "expandable": true,
    "children": [
      {
        "name": "billing_address",
        "type": "[Address](entities.Address.mdx)",
        "description": "The details of the billing address associated with the cart.",
        "optional": false,
        "defaultValue": "",
        "expandable": true,
        "children": []
      },
      {
        "name": "billing_address_id",
        "type": "`string`",
        "description": "The billing address's ID",
        "optional": false,
        "defaultValue": "",
        "expandable": false,
        "children": []
      },
      {
        "name": "completed_at",
        "type": "`Date`",
        "description": "The date with timezone at which the cart was completed.",
        "optional": false,
        "defaultValue": "",
        "expandable": false,
        "children": []
      },
      {
        "name": "context",
        "type": "`Record<string, unknown>`",
        "description": "The context of the cart which can include info like IP or user agent.",
        "optional": false,
        "defaultValue": "",
        "expandable": false,
        "children": []
      },
      {
        "name": "created_at",
        "type": "`Date`",
        "description": "The date with timezone at which the resource was created.",
        "optional": false,
        "defaultValue": "",
        "expandable": false,
        "children": []
      },
      {
        "name": "customer",
        "type": "[Customer](entities.Customer.mdx)",
        "description": "The details of the customer the cart belongs to.",
        "optional": false,
        "defaultValue": "",
        "expandable": true,
        "children": []
      },
      {
        "name": "customer_id",
        "type": "`string`",
        "description": "The customer's ID",
        "optional": false,
        "defaultValue": "",
        "expandable": false,
        "children": []
      },
      {
        "name": "deleted_at",
        "type": "`null` \\| `Date`",
        "description": "The date with timezone at which the resource was deleted.",
        "optional": false,
        "defaultValue": "",
        "expandable": false,
        "children": []
      },
      {
        "name": "discount_total",
        "type": "`number`",
        "description": "The total of discount rounded",
        "optional": true,
        "defaultValue": "",
        "expandable": false,
        "children": []
      },
      {
        "name": "discounts",
        "type": "[Discount](entities.Discount.mdx)[]",
        "description": "An array of details of all discounts applied to the cart.",
        "optional": false,
        "defaultValue": "",
        "expandable": true,
        "children": []
      },
      {
        "name": "email",
        "type": "`string`",
        "description": "The email associated with the cart",
        "optional": false,
        "defaultValue": "",
        "expandable": false,
        "children": []
      },
      {
        "name": "gift_card_tax_total",
        "type": "`number`",
        "description": "The total of gift cards with taxes",
        "optional": true,
        "defaultValue": "",
        "expandable": false,
        "children": []
      },
      {
        "name": "gift_card_total",
        "type": "`number`",
        "description": "The total of gift cards",
        "optional": true,
        "defaultValue": "",
        "expandable": false,
        "children": []
      },
      {
        "name": "gift_cards",
        "type": "[GiftCard](entities.GiftCard.mdx)[]",
        "description": "An array of details of all gift cards applied to the cart.",
        "optional": false,
        "defaultValue": "",
        "expandable": true,
        "children": []
      },
      {
        "name": "id",
        "type": "`string`",
        "description": "The cart's ID",
        "optional": false,
        "defaultValue": "",
        "expandable": false,
        "children": []
      },
      {
        "name": "idempotency_key",
        "type": "`string`",
        "description": "Randomly generated key used to continue the completion of a cart in case of failure.",
        "optional": false,
        "defaultValue": "",
        "expandable": false,
        "children": []
      },
      {
        "name": "item_tax_total",
        "type": "`null` \\| `number`",
        "description": "The total of items with taxes",
        "optional": true,
        "defaultValue": "",
        "expandable": false,
        "children": []
      },
      {
        "name": "items",
        "type": "[LineItem](entities.LineItem.mdx)[]",
        "description": "The line items added to the cart.",
        "optional": false,
        "defaultValue": "",
        "expandable": true,
        "children": []
      },
      {
        "name": "metadata",
        "type": "`Record<string, unknown>`",
        "description": "An optional key-value map with additional details",
        "optional": false,
        "defaultValue": "",
        "expandable": false,
        "children": []
      },
      {
        "name": "object",
        "type": "`\"cart\"`",
        "description": "",
        "optional": false,
        "defaultValue": "\"cart\"",
        "expandable": false,
        "children": []
      },
      {
        "name": "payment",
        "type": "[Payment](entities.Payment.mdx)",
        "description": "The details of the payment associated with the cart.",
        "optional": false,
        "defaultValue": "",
        "expandable": true,
        "children": []
      },
      {
        "name": "payment_authorized_at",
        "type": "`Date`",
        "description": "The date with timezone at which the payment was authorized.",
        "optional": false,
        "defaultValue": "",
        "expandable": false,
        "children": []
      },
      {
        "name": "payment_id",
        "type": "`string`",
        "description": "The payment's ID if available",
        "optional": false,
        "defaultValue": "",
        "expandable": false,
        "children": []
      },
      {
        "name": "payment_session",
        "type": "`null` \\| [PaymentSession](entities.PaymentSession.mdx)",
        "description": "The details of the selected payment session in the cart.",
        "optional": false,
        "defaultValue": "",
        "expandable": true,
        "children": []
      },
      {
        "name": "payment_sessions",
        "type": "[PaymentSession](entities.PaymentSession.mdx)[]",
        "description": "The details of all payment sessions created on the cart.",
        "optional": false,
        "defaultValue": "",
        "expandable": true,
        "children": []
      },
      {
        "name": "raw_discount_total",
        "type": "`number`",
        "description": "The total of discount",
        "optional": true,
        "defaultValue": "",
        "expandable": false,
        "children": []
      },
      {
        "name": "refundable_amount",
        "type": "`number`",
        "description": "The amount that can be refunded",
        "optional": true,
        "defaultValue": "",
        "expandable": false,
        "children": []
      },
      {
        "name": "refunded_total",
        "type": "`number`",
        "description": "The total amount refunded if the order associated with this cart is returned.",
        "optional": true,
        "defaultValue": "",
        "expandable": false,
        "children": []
      },
      {
        "name": "region",
        "type": "[Region](entities.Region.mdx)",
        "description": "The details of the region associated with the cart.",
        "optional": false,
        "defaultValue": "",
        "expandable": true,
        "children": []
      },
      {
        "name": "region_id",
        "type": "`string`",
        "description": "The region's ID",
        "optional": false,
        "defaultValue": "",
        "expandable": false,
        "children": []
      },
      {
        "name": "sales_channel",
        "type": "[SalesChannel](entities.SalesChannel.mdx)",
        "description": "The details of the sales channel associated with the cart.",
        "optional": false,
        "defaultValue": "",
        "expandable": true,
        "children": []
      },
      {
        "name": "sales_channel_id",
        "type": "`null` \\| `string`",
        "description": "The sales channel ID the cart is associated with.",
        "optional": false,
        "defaultValue": "",
        "expandable": false,
        "children": []
      },
      {
        "name": "shipping_address",
        "type": "`null` \\| [Address](entities.Address.mdx)",
        "description": "The details of the shipping address associated with the cart.",
        "optional": false,
        "defaultValue": "",
        "expandable": true,
        "children": []
      },
      {
        "name": "shipping_address_id",
        "type": "`string`",
        "description": "The shipping address's ID",
        "optional": false,
        "defaultValue": "",
        "expandable": false,
        "children": []
      },
      {
        "name": "shipping_methods",
        "type": "[ShippingMethod](entities.ShippingMethod.mdx)[]",
        "description": "The details of the shipping methods added to the cart.",
        "optional": false,
        "defaultValue": "",
        "expandable": true,
        "children": []
      },
      {
        "name": "shipping_tax_total",
        "type": "`null` \\| `number`",
        "description": "The total of shipping with taxes",
        "optional": true,
        "defaultValue": "",
        "expandable": false,
        "children": []
      },
      {
        "name": "shipping_total",
        "type": "`number`",
        "description": "The total of shipping",
        "optional": true,
        "defaultValue": "",
        "expandable": false,
        "children": []
      },
      {
        "name": "subtotal",
        "type": "`number`",
        "description": "The subtotal of the cart",
        "optional": true,
        "defaultValue": "",
        "expandable": false,
        "children": []
      },
      {
        "name": "tax_total",
        "type": "`null` \\| `number`",
        "description": "The total of tax",
        "optional": true,
        "defaultValue": "",
        "expandable": false,
        "children": []
      },
      {
        "name": "total",
        "type": "`number`",
        "description": "The total amount of the cart",
        "optional": true,
        "defaultValue": "",
        "expandable": false,
        "children": []
      },
      {
        "name": "type",
        "type": "[CartType](../enums/entities.CartType.mdx)",
        "description": "The cart's type.",
        "optional": false,
        "defaultValue": "default",
        "expandable": false,
        "children": []
      },
      {
        "name": "updated_at",
        "type": "`Date`",
        "description": "The date with timezone at which the resource was updated.",
        "optional": false,
        "defaultValue": "",
        "expandable": false,
        "children": []
      }
    ]
  },
  {
    "name": "cart_id",
    "type": "`string`",
    "description": "The ID of the Cart that the custom shipping option is attached to",
    "optional": false,
    "defaultValue": "",
    "expandable": false,
    "children": []
  },
  {
    "name": "created_at",
    "type": "`Date`",
    "description": "The date with timezone at which the resource was created.",
    "optional": false,
    "defaultValue": "",
    "expandable": false,
    "children": []
  },
  {
    "name": "deleted_at",
    "type": "`null` \\| `Date`",
    "description": "The date with timezone at which the resource was deleted.",
    "optional": false,
    "defaultValue": "",
    "expandable": false,
    "children": []
  },
  {
    "name": "id",
    "type": "`string`",
    "description": "The custom shipping option's ID",
    "optional": false,
    "defaultValue": "",
    "expandable": false,
    "children": []
  },
  {
    "name": "metadata",
    "type": "`Record<string, unknown>`",
    "description": "An optional key-value map with additional details",
    "optional": false,
    "defaultValue": "",
    "expandable": false,
    "children": []
  },
  {
    "name": "price",
    "type": "`number`",
    "description": "The custom price set that will override the shipping option's original price",
    "optional": false,
    "defaultValue": "",
    "expandable": false,
    "children": []
  },
  {
    "name": "shipping_option",
    "type": "[ShippingOption](entities.ShippingOption.mdx)",
    "description": "The details of the overridden shipping options.",
    "optional": false,
    "defaultValue": "",
    "expandable": true,
    "children": [
      {
        "name": "admin_only",
        "type": "`boolean`",
        "description": "Flag to indicate if the Shipping Option usage is restricted to admin users.",
        "optional": false,
        "defaultValue": "false",
        "expandable": false,
        "children": []
      },
      {
        "name": "amount",
        "type": "`null` \\| `number`",
        "description": "The amount to charge for shipping when the Shipping Option price type is `flat\\_rate`.",
        "optional": false,
        "defaultValue": "",
        "expandable": false,
        "children": []
      },
      {
        "name": "created_at",
        "type": "`Date`",
        "description": "The date with timezone at which the resource was created.",
        "optional": false,
        "defaultValue": "",
        "expandable": false,
        "children": []
      },
      {
        "name": "data",
        "type": "`Record<string, unknown>`",
        "description": "The data needed for the Fulfillment Provider to identify the Shipping Option.",
        "optional": false,
        "defaultValue": "",
        "expandable": false,
        "children": []
      },
      {
        "name": "deleted_at",
        "type": "`null` \\| `Date`",
        "description": "The date with timezone at which the resource was deleted.",
        "optional": false,
        "defaultValue": "",
        "expandable": false,
        "children": []
      },
      {
        "name": "id",
        "type": "`string`",
        "description": "The shipping option's ID",
        "optional": false,
        "defaultValue": "",
        "expandable": false,
        "children": []
      },
      {
        "name": "includes_tax",
        "type": "`boolean`",
        "description": "Whether the shipping option price include tax",
        "optional": false,
        "defaultValue": "false",
        "expandable": false,
        "featureFlag": "tax_inclusive_pricing",
        "children": []
      },
      {
        "name": "is_return",
        "type": "`boolean`",
        "description": "Flag to indicate if the Shipping Option can be used for Return shipments.",
        "optional": false,
        "defaultValue": "false",
        "expandable": false,
        "children": []
      },
      {
        "name": "metadata",
        "type": "`Record<string, unknown>`",
        "description": "An optional key-value map with additional details",
        "optional": false,
        "defaultValue": "",
        "expandable": false,
        "children": []
      },
      {
        "name": "name",
        "type": "`string`",
        "description": "The name given to the Shipping Option - this may be displayed to the Customer.",
        "optional": false,
        "defaultValue": "",
        "expandable": false,
        "children": []
      },
      {
        "name": "price_type",
        "type": "[ShippingOptionPriceType](../enums/entities.ShippingOptionPriceType.mdx)",
        "description": "The type of pricing calculation that is used when creatin Shipping Methods from the Shipping Option. Can be `flat\\_rate` for fixed prices or `calculated` if the Fulfillment Provider can provide price calulations.",
        "optional": false,
        "defaultValue": "",
        "expandable": false,
        "children": []
      },
      {
        "name": "profile",
        "type": "[ShippingProfile](entities.ShippingProfile.mdx)",
        "description": "The details of the shipping profile that the shipping option belongs to.",
        "optional": false,
        "defaultValue": "",
        "expandable": true,
        "children": []
      },
      {
        "name": "profile_id",
        "type": "`string`",
        "description": "The ID of the Shipping Profile that the shipping option belongs to.",
        "optional": false,
        "defaultValue": "",
        "expandable": false,
        "children": []
      },
      {
        "name": "provider",
        "type": "[FulfillmentProvider](entities.FulfillmentProvider.mdx)",
        "description": "The details of the fulfillment provider that will be used to later to process the shipping method created from this shipping option and its fulfillments.",
        "optional": false,
        "defaultValue": "",
        "expandable": true,
        "children": []
      },
      {
        "name": "provider_id",
        "type": "`string`",
        "description": "The ID of the fulfillment provider that will be used to later to process the shipping method created from this shipping option and its fulfillments.",
        "optional": false,
        "defaultValue": "",
        "expandable": false,
        "children": []
      },
      {
        "name": "region",
        "type": "[Region](entities.Region.mdx)",
        "description": "The details of the region this shipping option can be used in.",
        "optional": false,
        "defaultValue": "",
        "expandable": true,
        "children": []
      },
      {
        "name": "region_id",
        "type": "`string`",
        "description": "The ID of the region this shipping option can be used in.",
        "optional": false,
        "defaultValue": "",
        "expandable": false,
        "children": []
      },
      {
        "name": "requirements",
        "type": "[ShippingOptionRequirement](entities.ShippingOptionRequirement.mdx)[]",
        "description": "The details of the requirements that must be satisfied for the Shipping Option to be available for usage in a Cart.",
        "optional": false,
        "defaultValue": "",
        "expandable": true,
        "children": []
      },
      {
        "name": "updated_at",
        "type": "`Date`",
        "description": "The date with timezone at which the resource was updated.",
        "optional": false,
        "defaultValue": "",
        "expandable": false,
        "children": []
      }
    ]
  },
  {
    "name": "shipping_option_id",
    "type": "`string`",
    "description": "The ID of the Shipping Option that the custom shipping option overrides",
    "optional": false,
    "defaultValue": "",
    "expandable": false,
    "children": []
  },
  {
    "name": "updated_at",
    "type": "`Date`",
    "description": "The date with timezone at which the resource was updated.",
    "optional": false,
    "defaultValue": "",
    "expandable": false,
    "children": []
  }
]} expandUrl="https://docs.medusajs.com/development/entities/repositories#retrieving-a-list-of-records"/>
