Rush Production
This document covers the rush production timeline logic for Made-to-Order (MTO) products that offer expedited delivery.
Overviewโ
Rush Production is an optional upgrade that allows customers to receive their made-to-order items faster than standard production. Customers pay a rush fee to expedite their order.
Metafieldsโ
custom.rush_production_days (Product Level)โ
A range of business days for rush production delivery, stored as a string (e.g., "3-6"). This is displayed as either days or weeks depending on site settings.
| Metafield Value | Behavior | Example Display |
|---|---|---|
| Empty/undefined | Falls back to Builder site settings default (5-15 days, or 3-6 for suits) | 5-15 days |
Range string (e.g., "3-6") | Uses product-specific rush timeline | 3-6 days |
custom.rush_fee (Product Level)โ
Reference to a product variant that contains the rush fee price. When set to $0, rush production becomes free and standard production is hidden.
Timeline Displayโ
Rush production timeline is displayed differently based on Builder.io site settings:
When productionWeeks is set (non-suits)โ
Display: "{productionWeeks} weeks"
Example: "3 weeks"
When productionWeeks is not set or for suitsโ
Display: "{rushProductionDays} days"
Example: "3-6 days"
Rush Fee Logicโ
Standard Rush Feeโ
- Rush option shows
+${rushFeePrice}(e.g., "+$19") - Both Standard and Rush options are available
Free Rush Fee ($0)โ
When the rush fee is $0:
- Rush option shows the price crossed out with "$0" (e.g., "
+$19$0") - Standard production option is hidden
- Only Rush production is available to select
Availability Rulesโ
Rush production availability depends on inventory:
// Rush is available when at least one rush variant has inventory
const rushAvailable = rushVariants.some(variant => variant.availableForSale);
// When all options selected, check specific rush variant
const specificRushVariant = findMatchingRushVariant(selectedOptions);
const rushAvailable = specificRushVariant?.availableForSale;
Standard Only Modeโ
When no rush variants are available (standardOnly = true):
- Rush option is visually disabled with diagonal line
- Customer can only select Standard Production
Cart Attributesโ
When adding rush production items to cart:
{
key: "_READY_TO_SHIP",
value: "Expected to arrive in ~{productionWeeks} weeks"
// or: "Expected to arrive in ~{rushProductionDays} business days"
}
{
key: "_RUSH_FEE_AMOUNT",
value: "{rushFeePrice}" // e.g., "19"
}
Suits-Specific Behaviorโ
Suits use a separate production timeline configuration:
- Uses
siteSettings.suitsProducts.productionDaysas the default - Always displays in days (not weeks)
- Product types in
SUIT_PRODUCTION_GROUPare treated as suits
Resolution Logicโ
Rush production days are resolved in this order:
- If product has
rush_production_daysmetafield โ use product value - If product is a suit โ use
siteSettings.suitsProducts.productionDays - Otherwise โ use
siteSettings.dualSale.productionDays
Related Filesโ
Hydrogen Storefrontโ
app/components/EstimatedArrivalOption/estimatedArrivalOption.component.tsx- Radio option displayapp/components/EstimatedArrivalOptionGroup/utils.ts- Availability logicapp/lib/cart.ts- Cart attribute generation (prepareReadyToShipProperty,prepareRushFeeAmountProperty)app/graphql/storefront/ProductQuery.ts- GraphQL query for metafields
Builder.io Site Settingsโ
siteSettings.dualSale.productionDays- Default rush production days (default:5-15)siteSettings.dualSale.productionWeeks- Rush production in weeks (optional, no default). When set, rush timeline displays in weeks instead of days.siteSettings.suitsProducts.productionDays- Suits-specific production days (default:3-6)
Related Documentationโ
- Standard Production - Standard MTO production timeline
- Production Timeline (Tracking Page) - Post-order production timeline display