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

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

# ShippingOption

A Shipping Option represents a way in which an Order or Return can be shipped. Shipping Options have an associated Fulfillment Provider that will be used when the fulfillment of an Order is initiated. Shipping Options themselves cannot be added to Carts, but serve as a template for Shipping Methods. This distinction makes it possible to customize individual Shipping Methods with additional information.

## Properties

<ParameterTypes parameters={[
  {
    "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": "CALCULATED",
        "type": "`\"calculated\"`",
        "description": "The shipping option's price is calculated. In this case, the `amount` field is typically `null`.",
        "optional": true,
        "defaultValue": "",
        "expandable": false,
        "children": []
      },
      {
        "name": "FLAT_RATE",
        "type": "`\"flat_rate\"`",
        "description": "The shipping option's price is a flat rate.",
        "optional": true,
        "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": "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 shipping profile'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": "name",
        "type": "`string`",
        "description": "The name given to the Shipping profile - this may be displayed to the Customer.",
        "optional": false,
        "defaultValue": "",
        "expandable": false,
        "children": []
      },
      {
        "name": "products",
        "type": "[Product](entities.Product.mdx)[]",
        "description": "The details of the products that the Shipping Profile defines Shipping Options for. Available if the relation `products` is expanded.",
        "optional": false,
        "defaultValue": "",
        "expandable": true,
        "children": []
      },
      {
        "name": "shipping_options",
        "type": "[ShippingOption](entities.ShippingOption.mdx)[]",
        "description": "The details of the shipping options that can be used to create shipping methods for the Products in the Shipping Profile.",
        "optional": false,
        "defaultValue": "",
        "expandable": true,
        "children": []
      },
      {
        "name": "type",
        "type": "[ShippingProfileType](../enums/entities.ShippingProfileType.mdx)",
        "description": "The type of the Shipping Profile, may be `default`, `gift\\_card` or `custom`.",
        "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": []
      }
    ]
  },
  {
    "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": "id",
        "type": "`string`",
        "description": "The ID of the fulfillment provider as given by the fulfillment service.",
        "optional": false,
        "defaultValue": "",
        "expandable": false,
        "children": []
      },
      {
        "name": "is_installed",
        "type": "`boolean`",
        "description": "Whether the fulfillment service is installed in the current version. If a fulfillment service is no longer installed, the `is\\_installed` attribute is set to `false`.",
        "optional": false,
        "defaultValue": "true",
        "expandable": false,
        "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": "automatic_taxes",
        "type": "`boolean`",
        "description": "Whether taxes should be automated in this region.",
        "optional": false,
        "defaultValue": "true",
        "expandable": false,
        "children": []
      },
      {
        "name": "countries",
        "type": "[Country](entities.Country.mdx)[]",
        "description": "The details of the countries included in this region.",
        "optional": false,
        "defaultValue": "",
        "expandable": true,
        "children": []
      },
      {
        "name": "created_at",
        "type": "`Date`",
        "description": "The date with timezone at which the resource was created.",
        "optional": false,
        "defaultValue": "",
        "expandable": false,
        "children": []
      },
      {
        "name": "currency",
        "type": "[Currency](entities.Currency.mdx)",
        "description": "The details of the currency used in the region.",
        "optional": false,
        "defaultValue": "",
        "expandable": true,
        "children": []
      },
      {
        "name": "currency_code",
        "type": "`string`",
        "description": "The three character currency code used in the region.",
        "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": "fulfillment_providers",
        "type": "[FulfillmentProvider](entities.FulfillmentProvider.mdx)[]",
        "description": "The details of the fulfillment providers that can be used to fulfill items of orders and similar resources in the region.",
        "optional": false,
        "defaultValue": "",
        "expandable": true,
        "children": []
      },
      {
        "name": "gift_cards_taxable",
        "type": "`boolean`",
        "description": "Whether the gift cards are taxable or not in this region.",
        "optional": false,
        "defaultValue": "true",
        "expandable": false,
        "children": []
      },
      {
        "name": "id",
        "type": "`string`",
        "description": "The region's ID",
        "optional": false,
        "defaultValue": "",
        "expandable": false,
        "children": []
      },
      {
        "name": "includes_tax",
        "type": "`boolean`",
        "description": "Whether the prices for the region include tax",
        "optional": false,
        "defaultValue": "false",
        "expandable": false,
        "featureFlag": "tax_inclusive_pricing",
        "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 of the region as displayed to the customer. If the Region only has one country it is recommended to write the country name.",
        "optional": false,
        "defaultValue": "",
        "expandable": false,
        "children": []
      },
      {
        "name": "payment_providers",
        "type": "[PaymentProvider](entities.PaymentProvider.mdx)[]",
        "description": "The details of the payment providers that can be used to process payments in the region.",
        "optional": false,
        "defaultValue": "",
        "expandable": true,
        "children": []
      },
      {
        "name": "tax_code",
        "type": "`string`",
        "description": "The tax code used on purchases in the Region. This may be used by other systems for accounting purposes.",
        "optional": false,
        "defaultValue": "",
        "expandable": false,
        "children": []
      },
      {
        "name": "tax_provider",
        "type": "[TaxProvider](entities.TaxProvider.mdx)",
        "description": "The details of the tax provider used in the region.",
        "optional": false,
        "defaultValue": "",
        "expandable": true,
        "children": []
      },
      {
        "name": "tax_provider_id",
        "type": "`null` \\| `string`",
        "description": "The ID of the tax provider used in this region",
        "optional": false,
        "defaultValue": "",
        "expandable": false,
        "children": []
      },
      {
        "name": "tax_rate",
        "type": "`number`",
        "description": "The tax rate that should be charged on purchases in the Region.",
        "optional": false,
        "defaultValue": "",
        "expandable": false,
        "children": []
      },
      {
        "name": "tax_rates",
        "type": "`null` \\| [TaxRate](entities.TaxRate.mdx)[]",
        "description": "The details of the tax rates used in the region, aside from the default rate.",
        "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": "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": "amount",
        "type": "`number`",
        "description": "The amount to compare the Cart subtotal to.",
        "optional": false,
        "defaultValue": "",
        "expandable": false,
        "children": []
      },
      {
        "name": "deleted_at",
        "type": "`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 requirement's ID",
        "optional": false,
        "defaultValue": "",
        "expandable": false,
        "children": []
      },
      {
        "name": "shipping_option",
        "type": "[ShippingOption](entities.ShippingOption.mdx)",
        "description": "The details of the shipping option that the requirements belong to.",
        "optional": false,
        "defaultValue": "",
        "expandable": true,
        "children": []
      },
      {
        "name": "shipping_option_id",
        "type": "`string`",
        "description": "The ID of the shipping option that the requirements belong to.",
        "optional": false,
        "defaultValue": "",
        "expandable": false,
        "children": []
      },
      {
        "name": "type",
        "type": "[RequirementType](../enums/entities.RequirementType.mdx)",
        "description": "The type of the requirement, this defines how the value will be compared to the Cart's total. `min\\_subtotal` requirements define the minimum subtotal that is needed for the Shipping Option to be available, while the `max\\_subtotal` defines the maximum subtotal that the Cart can have for the Shipping Option to be available.",
        "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"/>
