LastCall: Add to Order

LastCall is my public Shopify app. After checkout, a shopper gets a short window to add forgotten items to the order they just placed. The app edits the original order, keeps discounts correct and sends the shopper to Shopify's own page to pay the difference. It is live on the Shopify App Store with a 5.0 rating.

Problem

Shoppers remember one more item right after paying. They write to support or place a second order, which means double packing and double shipping. Shopify lets only the merchant edit an order, and automatic discounts do not apply to items added later.

Solution

The app has a web process and a separate worker, both on a shared Postgres database. A small storefront button appears in the cart. Prices come from a simulated combined cart, and the difference is covered with per-item discounts. Payment goes through Shopify's native balance page, and unpaid additions roll back on a schedule.

Key decisions

  1. Chose Shopify's native payment page for the difference

    Why A completed checkout cannot be resumed, and this way the app never touches card data.

  2. Chose to take the price from a simulated combined cart

    Why Automatic discounts freeze during an order edit, so the naive formula under-priced the added items.

  3. Chose a check before every order edit is committed

    Why If the total differs from the expected one, the edit is refused rather than shipped with a wrong price.

  4. Chose a separate worker with Postgres as the queue

    Why One database instead of extra infrastructure, with webhooks kept thin and rollbacks retried in the background.

Results

  • Live on the Shopify App Store with a 5.0 rating.
  • Storefront script under 10 KB gzipped.
  • Add-ons wait on a fulfilment hold until the balance is paid.
  • Built for review: data-privacy webhooks, an onboarding checklist and an in-app help centre.

Have a similar task?

Send a link and a few lines about what you need. I reply within 1 business day with questions or a fixed estimate.

Get a fixed estimate
  • The estimate is the priceHours and total agreed before work starts. No re-estimates.
  • No prepayment on small projectsProjects up to 20 hours usually need none.
  • 30-day warrantyCritical bugs from my work get fixed free, even after that.

My gift: start a Shopify store for €1 for your first month

Open your store through my partner link and try Shopify for yourself. When you need a theme, an app or a migration, I'm one message away.

Claim the €1 month (opens in a new tab)

Affiliate link: I may earn a commission if you sign up. The offer is set by Shopify and may vary by region.