Solved

Newbie create app on Shopify App Store

kcin1993
Shopify Partner
63 0 5

Hi,

 

I want to build an app on Shopify App Store. Here are some point I want help and make sure that my idea is correct.

 

Need to figure out

1. Third party Database.

There are some business login can't achieve by shopify's API. So I need to create new database to record each store's business login.

 

2. Payment gateway

I want to use own payment gateway in this app e.g Stripe and Local Payment system. Business can input the payment gateway parameters e,g key, secret key, then any payment paid from this app will auto put into business's account.

 

3. Combine relative website page into business's shopify store

Customers will use certain page to finish relative business logic. So these page will be provided by app developer and these pages' content, business login can be set from shopify dashboard.

 

Is there any prohibited actions above? Any advice or example can achieve this structure?

 

Background

* Develop with JS stack. e.g react, graphql, nodejs ...

* Already learn with this doc Build a Shopify app with Node and React

* Familiar with aws elasticbeanstalk, dynanoDB, lambda

 

The flow might be

1. Business install my app. After installing, I can get business's token, credential... something can access store data

2. Business set up some business logic and payment setting in the app. And generate some web page relative this app

3. These page can be reach in business's store.

4. Customers can interact with these pages. Key actions are login/signup member, checkout, view products, buy something

5. Business can view sell performance in the app in Shopify dashboard

 

Thanks for help.

Accepted Solution (1)
Alex
Shopify Staff
1561 81 341

This is an accepted solution.

Capture authorization can't be control, it depends on store owner's setting, so if we want to capture later we only can serve the store which setting is manual capture. Is my thought correct?

 

Correct

 

I also search and test some subscribe app like Bold Subscriptions and Charge Rabbit which ask store owner connect to their payment gateway like stripe connect page to help store owner collect money from their app. These apps work fine with Shopify store's product, order, customers .. etc.

 

Those two integrations with Bold and Charge Rabbit are kind of what you could consider a legacy implementation. There was a time in the past when we were exploring implementations like these where they would effectively bypass the checkout. During this time, we were able to work with those teams to ensure the proper compliance requirements were met. We are, however, not currently continuing to explore bringing on more integrations like these at this time.

Alex | Shopify 
 - Was my reply helpful? Click Like to let me know! 
 - Was your question answered? Mark it as an Accepted Solution
 - To learn more visit the Shopify Help Center or the Shopify Blog

View solution in original post

Replies 7 (7)

Alex
Shopify Staff
1561 81 341

Hey @kcin1993.

 

All 3 of the things you're envisioning can be perfectly reasonable as long as I'm understanding you correctly. I'm going into this with some assumptions, so please correct me if I'm misunderstanding: 

 

1. By business credentials, I'm assuming you mean credentials you would use to access the API (your access token)

2. By Combine relative website page into business's shopify store, I'm assuming you mean that you want to render interfaces from your app on the storefront

 

Here's some documentation you should be reading as it seems to be directly related to the questions you're asking:

 

1. OAuth docs outlining the process of obtaining an access token, which you would store in a database s...

2. Payment processing as a sales channel. Your app must be a sales channel to process payments, and your app must also qualify as a sales channel.

3. Script tag and asset resources to use javascript and theme files to write your interface directly into the storefront, application proxies if you wish to frame a view from your end on the storefront with its own path.

 

Hopefully the above can provide you some direction. There are many ways you can accomplish many things here, so the specifics will be up to you. Myself and the community are happy to answer specific questions about any APIs and SDKs you're using assuming the answer cannot be found in the documentation (or isn't easy to find).

 

Cheers.

Alex | Shopify 
 - Was my reply helpful? Click Like to let me know! 
 - Was your question answered? Mark it as an Accepted Solution
 - To learn more visit the Shopify Help Center or the Shopify Blog

kcin1993
Shopify Partner
63 0 5

Hey @Alex 

 

Thanks your reply. Allow me discuss deeper

 

From your reply point 1

I get the store's accesToken afterAuth and store into my app database. Something like this doc's Set up a Node server section.

 

Another question is about graphql admin api. Now I have shop's accessToken and shopOrigin, I can request data as following with my terminal

 

```

curl -X POST \
"https://{shop}.myshopify.com/admin/api/2019-04/graphql.json" \
-H "Content-Type: application/graphql" \
-H "X-Shopify-Access-Token: <ACCESS_TOKEN>" \
-d '
{
  // ignore query 
}
'

```

 

When I want to using graphql admin api in my embedded app. It come with CORS issue. I also try request graphql admin api by my embedded app's server. This way works fine but not convenient (client has to interact with server and then app server interact with graphql admin api). Any advise about this situation? and what is best situation to use graphql admin api?

 

From your reply point 2

In our app we want to resolve this situation. Only when the products quantity are reach 25(or certain quantity) in a group, then the discount will apply and system will request the payment automatically.  I want to know if checkout api can achieve get customer's credit card auth first and create payment after the group buy goal is reach? Or Can I use Shopify store's product and customers data, then make the group buy order any payment in my app?

 

From your reply point 3-_

Script tag should solve my problem. I have find and try that some apps ask me to insert something like following in store theme and the script will load dynamic content into certain html tag.

<div id="certain_id"></div>

 

Alex
Shopify Staff
1561 81 341

You're going to have to make a request from the back end to hit our GraphQL Admin API, requests from the front end as you observed will always raise a CORS error. If you need to make the request from the front end, you can do so indirectly by delegating to your back end, and returning the response your back end receives to your front end.

 

I don't think you can accomplish the group buying functionality with the checkouts API, since it looks like whether or not to capture or authorize the transaction is set in the merchant's settings in the admin. Your payment processing requests inherit that rule rather than your own preference. I know that if you created a Hosted Payments SDK gateway you'd be given control over this, although it would be considered an offsite payment gateway, and it would depend entirely on the merchant opting to use that gateway for credit cards exclusively.

 

I'm sorry if my last point doesn't help too much. I can't really think of a way to accomplish group buying off the top of my head, but if I do I'll let you know here.

Alex | Shopify 
 - Was my reply helpful? Click Like to let me know! 
 - Was your question answered? Mark it as an Accepted Solution
 - To learn more visit the Shopify Help Center or the Shopify Blog

kcin1993
Shopify Partner
63 0 5

Hi @Alex 

 

The part of GraphQL Admin API is good. I can understand how to work with.


These days we try to figure out much simple way with using checkout api. Make payment process in Shopify ecosystem and serve most of Shopify store owners.

 

Here are the key actions. If there is any misunderstand, let me know:

 

1. Using web_url in the checkout api to finish the authorization

We can create a checkout and get the web_url which let app redirect customers to finish checkout without create app's own checkout form. 

 

2. Capture transaction 

Using Transaction api app can capture the order which is authorization from 1 when the situation need to capture orders. And there is the rule that the authorization order has to be capture within 7 days. 

 

We try 1 & 2 in test app and it works fine. 

A further question is if store owner setting payment authorization to automatically capture payment for orders. Can we make the orders(which create from our app) don't capture automatically? We want to orders can be captured from app. I believe that there are certain store owners using capture payment automatically because of more convenient.

 

Thanks for reply. Hope see you soon.

 

後台設定是否自動 payment auth.png

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(payment authorization in store setting)

 

 

capture from app.png

 

 

 

 

 

 

 

 

(Capture order from app with transaction api)

kcin1993
Shopify Partner
63 0 5

@Alex  


For your previous reply 
Capture authorization can't be control, it depends on store owner's setting, so if we want to capture later we only can serve the store which setting is manual capture. Is my thought correct?

 

I agree what you say: "if you created a Hosted Payments SDK gateway you'd be given control over this, although it would be considered an offsite payment gateway, and it would depend entirely on the merchant opting to use that gateway for credit cards exclusively".

 

 

I also search and test some subscribe app like Bold Subscriptions and Charge Rabbit which ask store owner connect to their payment gateway like stripe connect page to help store owner collect money from their app. These apps work fine with Shopify store's product, order, customers .. etc.

Can you explain more about how do these app achieve work fine with stripe and pay with flexible way ?

螢幕快照 2019-04-25 下午12.17.38.png   螢幕快照 2019-04-24 下午6.58.37.png 

(Here are the stripe connect page of Bold Subscriptions and Charge Rabbit)

 

Alex
Shopify Staff
1561 81 341

This is an accepted solution.

Capture authorization can't be control, it depends on store owner's setting, so if we want to capture later we only can serve the store which setting is manual capture. Is my thought correct?

 

Correct

 

I also search and test some subscribe app like Bold Subscriptions and Charge Rabbit which ask store owner connect to their payment gateway like stripe connect page to help store owner collect money from their app. These apps work fine with Shopify store's product, order, customers .. etc.

 

Those two integrations with Bold and Charge Rabbit are kind of what you could consider a legacy implementation. There was a time in the past when we were exploring implementations like these where they would effectively bypass the checkout. During this time, we were able to work with those teams to ensure the proper compliance requirements were met. We are, however, not currently continuing to explore bringing on more integrations like these at this time.

Alex | Shopify 
 - Was my reply helpful? Click Like to let me know! 
 - Was your question answered? Mark it as an Accepted Solution
 - To learn more visit the Shopify Help Center or the Shopify Blog

ArioArio
Visitor
1 0 0

why cant i login sorry