import { RuleOperatorType } from "../../../common"; import { ShippingOptionPriceType } from "../../../fulfillment"; export interface AdminCreateShippingOptionRule { /** * The operator of the shipping option rule. */ operator: RuleOperatorType; /** * The attribute of the shipping option rule. * * @example * `enabled_in_store` */ attribute: string; /** * The value of the shipping option rule. * * @example * `true` */ value: string | string[]; } export interface AdminCreateShippingOptionType { /** * The label of the shipping option type. */ label: string; /** * The description of the shipping option type. */ description: string; /** * The code of the shipping option type. */ code: string; } interface AdminShippingOptionPriceRulePayload { /** * The operator of the shipping option price rule. * * @example * "eq" */ operator: string; /** * The attribute of the shipping option price rule. * * @example * "region_id" */ attribute: string; /** * The value of the shipping option price rule. * * @example * "region_123" */ value: string | string[] | number; } interface AdminShippingOptionPriceWithRules { /** * The rules of the shipping option price that * indicate when the price should be applied. */ rules?: AdminShippingOptionPriceRulePayload[]; } export interface AdminCreateShippingOptionPriceWithCurrency extends AdminShippingOptionPriceWithRules { /** * The currency code of the shipping option price. * * @example * "usd" */ currency_code: string; /** * The amount of the shipping option price. */ amount: number; } export interface AdminCreateShippingOptionPriceWithRegion extends AdminShippingOptionPriceWithRules { /** * The ID of the region that the shipping option price belongs to. */ region_id: string; /** * The amount of the shipping option price. */ amount: number; } export interface AdminCreateShippingOption { /** * The name of the shipping option. Customers can * view this name during checkout. * * @example * "Standard Shipping" */ name: string; /** * The ID of the service zone that the shipping option belongs to. * * Learn more in the [Shipping Options](https://docs.medusajs.com/resources/commerce-modules/fulfillment/shipping-option#service-zone-restrictions) * documentation. */ service_zone_id: string; /** * The ID of the shipping profile that the shipping option belongs to. * * Learn more in the [Shipping Options](https://docs.medusajs.com/resources/commerce-modules/fulfillment/shipping-option#shipping-profile-and-types) * documentation. */ shipping_profile_id: string; /** * Additional data that is useful for third-party fulfillment providers * that process fulfillments for the shipping option. * * Learn more in the [Shipping Options](https://docs.medusajs.com/resources/commerce-modules/fulfillment/shipping-option#data-property) * documentation. */ data?: Record; /** * The type of shipping option's price. */ price_type: ShippingOptionPriceType; /** * The ID of the fulfillment provider that the shipping option belongs to. */ provider_id: string; /** * The type of shipping option. * * Learn more in the [Shipping Option](https://docs.medusajs.com/resources/commerce-modules/fulfillment/shipping-option#shipping-profile-and-types) * documentation. */ type: AdminCreateShippingOptionType; /** * The prices of the shipping option. */ prices: (AdminCreateShippingOptionPriceWithCurrency | AdminCreateShippingOptionPriceWithRegion)[]; /** * The rules of the shipping option. * * Learn more in the [Shipping Option Rules](https://docs.medusajs.com/resources/commerce-modules/fulfillment/shipping-option#shipping-option-rules) * documentation. */ rules?: AdminCreateShippingOptionRule[]; } export interface AdminUpdateShippingOptionRule extends AdminCreateShippingOptionRule { /** * The ID of the shipping option rule that is being updated. */ id: string; } export interface AdminUpdateShippingOptionPriceWithCurrency extends AdminShippingOptionPriceWithRules { /** * The ID of the shipping option price that is being updated. * If not provided, a new shipping option price will be created. */ id?: string; /** * The currency code of the shipping option price. * * @example * "usd" */ currency_code?: string; /** * The amount of the shipping option price. */ amount?: number; } export interface AdminUpdateShippingOptionPriceWithRegion extends AdminShippingOptionPriceWithRules { /** * The ID of the shipping option price that is being updated. * If not provided, a new shipping option price will be created. */ id?: string; /** * The ID of the region that the shipping option price belongs to. */ region_id?: string; /** * The amount of the shipping option price. */ amount?: number; } export interface AdminUpdateShippingOption { /** * The name of the shipping option. Customers can * view this name during checkout. * * @example * "Standard Shipping" */ name?: string; /** * Additional data that is useful for third-party fulfillment providers * that process fulfillments for the shipping option. */ data?: Record; /** * The type of shipping option's price. */ price_type?: ShippingOptionPriceType; /** * The ID of the fulfillment provider that the shipping option belongs to. */ provider_id?: string; /** * The ID of the shipping profile that the shipping option belongs to. * * Learn more in the [Shipping Options](https://docs.medusajs.com/resources/commerce-modules/fulfillment/shipping-option#shipping-profile-and-types) * documentation. */ shipping_profile_id?: string; /** * The type of shipping option. * * Learn more in the [Shipping Options](https://docs.medusajs.com/resources/commerce-modules/fulfillment/shipping-option#shipping-profile-and-types) * documentation. */ type?: AdminCreateShippingOptionType; /** * The prices of the shipping option. */ prices?: (AdminUpdateShippingOptionPriceWithCurrency | AdminUpdateShippingOptionPriceWithRegion)[]; /** * The rules of the shipping option. * * Learn more in the [Shipping Option Rules](https://docs.medusajs.com/resources/commerce-modules/fulfillment/shipping-option#shipping-option-rules) * documentation. */ rules?: (AdminUpdateShippingOptionRule | AdminCreateShippingOptionRule)[]; } export interface AdminUpdateShippingOptionRules { /** * The rules to create. */ create?: any[]; /** * The rules to update. */ update?: any[]; /** * The rules to delete. */ delete?: string[]; } export {}; //# sourceMappingURL=payloads.d.ts.map