NEWDiscoverShipGoal– turn cart progress into bigger baskets
All articles

Why is a condition unavailable for my rule?

When a ShipWith condition is unavailable, check the rule's selected Function input. The conditions shown in the editor depend on that input. Each input uses a different Shopify Function query, so it can read only the checkout data included in that query.

Shopify limits Function queries. ShipWith splits checkout data across several inputs to stay within those limits instead of loading every field into every Function. As a result, no single input provides every condition.

Use the condition picker in the current ShipWith UI as the source of truth. If a condition is not shown for the selected input, that rule cannot use it. Input descriptions and examples can help you choose, but they are not a complete availability list.

Common examples

  • Cart weight (kg) requires Attribute input. That Function query reads each product variant's weight and weight unit.
  • Detailed destination checks such as address line 2, phone number, and PO Box require Address input. PO box detection needs both destination address lines.
  • Customer input does not provide product conditions. Its Function query reads cart-line quantities but does not read product or variant data.
  • Shipping input does not provide line item discount conditions. Its Function query reads cart-level discount applications but not discount allocations on individual cart lines.
  • Zip code, which also covers other postal-code formats, is available with Standard input, Attribute input, Customer input, and Address input.
  • Cart currency is available with Shipping input and Address input.

Availability can differ even when two inputs both provide related data. For example, an input can provide cart-level discounts without providing line item discount allocations. Always confirm the exact condition in the picker before creating the rule.

Why the Function input is locked

You choose the Function input when creating a rule. After the rule is first saved, the input is locked and cannot be changed. This prevents a saved rule from keeping conditions that its new Function query cannot supply.

If the rule has not been saved yet, you can select another input. Changing it clears the current conditions because the new input can have a different condition list.

Recreate a rule with another input safely

Do not delete the working rule first. Recreate it so you can restore the old behavior if the replacement does not work as expected.

  1. Open the existing rule and record its name, status, priority, condition groups, actions, and delivery method targets.
  2. Create a new rule, choose the Function input that shows every condition you need, and leave its Status as Off.
  3. Copy the compatible conditions, actions, targets, and priority into the new rule. Save it, then compare both rules before changing checkout behavior.
  4. Set the old rule to Off, save it, and wait for Shopify sync to show Synced. Keep the old rule instead of deleting it.
  5. Set the new rule to Live, save it, and wait for Shopify sync to show Synced.
  6. Test one checkout that should match and one that should not match. Check every delivery group. If the replacement fails, set it to Off and reactivate the old rule.

After the new rule passes both tests, keep the old rule inactive until you are confident the replacement works for normal checkouts. Then you can delete the old rule if you no longer need the fallback.