My team and I would like to develop a custom, from scratch e-commerce website without using Shopify templates, but at the same time we would like to use Shopify API's for customer accounts and checkout/payment.
Is it possible ? If it is, how should we proceed in order to make this work ?
Thank you for your answers.
EDIT : It seems that I can use JS Buy SDK to create a checkout/payment system in a custom website without having to use Shopify website templates, but I can't find anything concerning the customer accounts API.
JS Buy SDK is just an incomplete (as in doesn't take in to account the entire API surface) wrapper around Storefront API. If you're going to go through the effort of building a complete standalone storefront, I'd consider not using JS Buy SDK and go for a slightly better generic GraphQL client preferably with response cache or write a custom one - but by all means go with Storefront API directly. You will anyway end up adding and customising most queries.
With Storefront API you can use customerCreate.
One thing to note is you will not be able to custom checkout - even with API and a standalone storefront you will need to redirect to the checkout webUrl for the final payment step and that checkout screen is on Shopify's domain and the template cannot be modified (unless on Plus plan).
Also, I'd do some MVP, POC, whatever you want to call them to get a feeling for what can be done with Storefront API before you go down that rabbit hole. It is still fairly novel, not completely mature and there'll be many things you simply cannot do that are a given in Liquid templates.
Just a word of personal advice from someone who went down that rabbit hole and is still in it :-D
Thank you for your answers,
We will look into your solutions, the idea was to gain time using Shopify API's but it seems time consuming.
We noticed that it was possible for the user was able to create an account during checkout, do you know how the customer account is accessible if the customer chooses to register an account during the checkout step via the JS buy button ?
For the customer, the account is accessible no different than anywhere else - email and password. For your standalone storefront, you need to use customerAccessTokenCreate and take it from there to manage the customer session.
|a minute ago|