Complex App: Component / API Confusion

ojalabs
Visitor
2 0 0

Hey folks,

I'm trying to build what feels like a fairly complex app in Shopify, getting a bit lost in the sea of components / apis. Would appreciate some direction as to which components / apis / extension points are appropriate for my needs. Here I go:

  • I need to show some content on a product page (around the price and Add to Cart button). This content would include buttons of my own, text, and a grid of results). Is an app block (theme app extension), the right component for this? The custom content would need information about the product and some other custom info from my backend.
  • I need to be able to show customers a page of content if they decide to click one of the app buttons on the product page. Is this just another app block or something else? Embedded app
  • I need to be able to have someone go through checkout for a product but to not complete the order until my app says so. The important thing is to be able to collect payment details and have everything ready for the order until an outside condition (determined by my app) is met. Once that condition is met, I would like to complete the order with a price determined by my app (maybe via dynamic discount). Is this possible? Is this some mix of draft orders and checkout links? Or do i have to use the Storefront API? I would like most of the payment experience to be native to Shopify or the store specifically and just control when the order is finalized (and for what price). Is this even possible?
  • I need to show a dashboard, custom content (result grids) and specific results (e.g. orders linked to my app) to merchants. Is this an App Bridge thing or App Proxy?

 

Thanks a ton.

Replies 2 (2)

Bunty
Shopify Partner
133 39 82

I'll share some thoughts, hopefully helps you:

  • I need to show some content on a product page (around the price and Add to Cart button). This content would include buttons of my own, text, and a grid of results). Is an app block (theme app extension), the right component for this? The custom content would need information about the product and some other custom info from my backend.

app block is the right component, but unfortunately it is relatively new and not supported yet by most themes, so you would still need to take the route of theme snippets and/or script tags

  • I need to be able to show customers a page of content if they decide to click one of the app buttons on the product page. Is this just another app block or something else? Embedded app

depends on the function but you could also consider using a Shopify page that the app adds and manages (see page API)

  • I need to be able to have someone go through checkout for a product but to not complete the order until my app says so. The important thing is to be able to collect payment details and have everything ready for the order until an outside condition (determined by my app) is met. Once that condition is met, I would like to complete the order with a price determined by my app (maybe via dynamic discount). Is this possible? Is this some mix of draft orders and checkout links? Or do i have to use the Storefront API? I would like most of the payment experience to be native to Shopify or the store specifically and just control when the order is finalized (and for what price). Is this even possible?

This will be very tricky without the app building it's own checkout.  I don't think the post checkout extension will help here, as that is surfaced after the payment. For plus stores, scripts might be able to deal with it, but not sure.

  • I need to show a dashboard, custom content (result grids) and specific results (e.g. orders linked to my app) to merchants. Is this an App Bridge thing or App Proxy?

Should be protected and inside the Admin, so use App Bridge

ojalabs
Visitor
2 0 0

Thank you for your help @Bunty , this is super helpful.


What do you mean by the app "building its own checkout"? Would the app do this via the Storefront API? I've tried to find out how I could use the Storefront API to do this but couldn't figure out how to use the API and Shopify Checkout to collect the payment but not finalize the order. 

Thanks again.