Set up MilestonePay

These steps follow the Setup checklist in the app. MilestonePay checks what it can read from Shopify automatically. For the rest, you test it yourself and confirm.

Before you start: you'll need an Online Store theme, a payment gateway that supports charging a saved payment method later, and Shopify's new customer accounts for the customer order page. Use test orders until every step below works.

  1. Create payment terms

    In MilestonePay: Payment plans

    Create a plan and choose:

    • a percentage or fixed deposit, from 0% upwards;
    • an optional preorder discount, which Shopify applies to the price at checkout; and
    • when the balance is due: when the whole order is fulfilled, or a number of days or weeks after checkout.

    Plans are reusable, so one plan can cover many products. For a balance due after checkout, you can also hold preorder items until the balance is paid and you mark them ready for dispatch.

  2. Assign products or variants

    In MilestonePay: Product assignments

    Pick a product or a single variant, choose a plan, and add the estimated shipping date and a note for customers.

    Optionally, set a maximum number of preorder units, or offer the preorder only when the item is out of stock. For out-of-stock mode, Shopify must track the item's inventory, Continue selling when out of stock must be on, and the product mustn't require a selling plan. Limits are best-effort: orders placed at the same moment can go over.

  3. Add and test the product block

    In Shopify admin: Online Store → Themes → Customize. The Setup checklist has a button that opens it.

    Add the Preorder terms app block above the buy buttons on every product template your preorder products use, then save. Open a preorder product on your storefront and check the deposit, balance and estimated shipping date. Check again if you switch themes.

  4. Check the plan in the cart

    In your storefront, and optionally the theme editor's App embeds

    Add a preorder to the cart and check that the plan name appears on both the cart page and the cart drawer, including after you change the variant. Horizon themes show it natively. Other themes may need the optional Preorder cart summary app embed.

  5. Turn on new customer accounts

    In Shopify admin: Settings → Customer accounts

    The customer order block needs Shopify's new customer accounts. MilestonePay checks this setting automatically.

  6. Add customer preorder management

    In Shopify admin: Settings → Checkout → Customize

    Open the Order status page, add MilestonePay's preorder account block and save. Then sign in as a test customer and check the shipping details, the paid and outstanding amounts, and the cancellation option.

  7. Test a deposit and the balance

    In Shopify admin: Settings → Payments

    Use a test gateway that supports later charges, such as Shopify Payments in test mode. Place a test preorder and check the deposit transaction on the order. Then trigger the balance, by fulfilling the order or waiting until it's due, and check that the balance transaction appears.

    A deposit, or a balance shown as due, doesn't prove the later charge works on its own. A deposit taken with Shopify's Bogus test gateway, for example, doesn't test balance collection. Test orders don't count towards your plan's allowance.

Optional next steps

  • Payment notices (Communications): remind customers 7, 3 or 1 day before a balance is due and tell them when a payment fails, by app email or Shopify Flow. Notices are off until you turn them on.
  • Collection time (Settings → Balance collection): choose the time of day, in your store's timezone, that timed balances are charged.
  • Reporting (Overview): see preorder counts and values, with each currency kept separate.

Need help?

Email hello@tinytiger.studio with your store domain and what you're stuck on. See Support for what to include.