The Delivery Customization API enables you to rename, reorder, and sort the delivery options available to buyers during checkout.

## Example use cases

- Hide delivery options for certain products or customers
- Reorder delivery options according to user preference
- Hide delivery options for PO Box addresses
- Add messaging to delivery option titles

## Developer tools and resources

<div class="resource-card-grid">
  <div>
  <a class="resource-card" href="/docs/apps/build/cli-for-apps" data-theme-mode="">
    <div class="resource-card__indicator-container"><img
     src="/assets/resource-cards/cli"
     data-alt-src="/assets/resource-cards/cli-dark"
     aria-hidden="true"
     class="resource-card__icon themed-image"></div>
    <h3 class="resource-card__title">
      Shopify CLI
    </h3>
    <p class="resource-card__description">A command-line tool for building Shopify apps.</p>
  </a>
</div></p>

<p><div>
  <a class="resource-card" href="/docs/api/functions/reference/delivery-customization/graphql" data-theme-mode="">
    <div class="resource-card__indicator-container"><img
     src="/assets/resource-cards/graphql"
     data-alt-src="/assets/resource-cards/graphql-dark"
     aria-hidden="true"
     class="resource-card__icon themed-image"></div>
    <h3 class="resource-card__title">
      Delivery Customization API reference
    </h3>
    <p class="resource-card__description">Consult the GraphQL reference for the Delivery Customization API.</p>
  </a>
</div>
</div>


## Migrating from scripts to functions

If you want to migrate an existing [shipping script](https://help.shopify.com/manual/checkout-settings/script-editor/shopify-scripts) to Shopify Functions, then you can use the following mappings:

| Shopify Scripts method | Description | Shopify Functions object | Additional context |
| ------------ | ----------- | -------------- | -------------- |
| `change_name` | Changes the name of a delivery option | [RenameOperation](/docs/api/functions/reference/delivery-customization/graphql/common-objects/renameoperation) | |
| `sort` | Sorts the delivery options based on some criteria, typically to place one delivery option at the top or bottom of a list | [MoveOperation](/docs/api/functions/reference/delivery-customization/graphql/common-objects/moveoperation) | Instead of sorting, you can move individual delivery methods. |
| `delete_if` | Removes a delivery option from checkout | [HideOperation](/docs/api/functions/reference/delivery-customization/graphql/common-objects/hideoperation) | |

## Limitations and considerations

- In the Delivery Customization API, the carrier name is automatically prepended to the shipping method title at checkout when using the [RenameOperation](/docs/api/functions/reference/delivery-customization/graphql/common-objects/renameoperation), and cannot be altered or omitted through the API. For example, if the carrier name is `UPS` and the method is `Standard`, you could change `UPS Standard` to `UPS Standard Shipping`, but you couldn't change `UPS Standard` to `Standard Shipping`.


## Next steps

- Learn how to use Shopify Functions to [rename a delivery option](/docs/apps/build/checkout/delivery-shipping/delivery-options/build-function).