Live data from Hacker News

What I wish I knew before building a Shopify App

ma.ttias.ch

21–30 of 175 posts

Re: What I wish I knew before building a Shopify App

#21
post #16

My biggest problem with the ecosystem is how Shopify tries to deflect their own customer problems onto their partners to solve. And oftentimes, these same customers expect the partners to solve it for free. Examples: - Their default theme (provided by Shopify) has problems. Blame it on the app developer. "It's the app's fault." Yes, there are some poorly developed apps, but this lumps together the good with the bad.…

This is similar my experience with making Shopify themes. It definitely feels like the third-parties that support the platform are not really considered. The developer experience is generally terrible and there's little incentive to change it because the developer isn't Shopify's customer, that would be the shop owner.

Re: What I wish I knew before building a Shopify App

#22

Shopify is an extremely restrictive platform for merchants and developers, I urge people not to use it if they wish to build on top of it. There isn't ways to have a custom checkout (one page) with this system and subscriptions are not natively built in, relying on a third party ecosystem. Theme development is also arcane and not the standard way web developers build a simple website. Oh and they disallow you to use…

While I agree with the first and second point. Theme development is the same as any other system. It's very similar to a Drupal or Wordpress commerce. I am not sure I fully see what you mean. Obviously they don't allow you to use another payment processor, why would they? They make money by having people use their payment processor. There is no benefit to them allowing people to bypass this and implement their own pa…

With one site I developed with Shopify, I have a huge cart abandonment rate because of that 3 step checkout, even with the accelerated checkouts like Apple/Google Pay.

A single page modal checkout on the same page is the way to go these days, even Stripe's new checkout is unfortunately doing the same thing with not keeping the user on the same page.

Re: What I wish I knew before building a Shopify App

#23

Shopify is an extremely restrictive platform for merchants and developers, I urge people not to use it if they wish to build on top of it. There isn't ways to have a custom checkout (one page) with this system and subscriptions are not natively built in, relying on a third party ecosystem. Theme development is also arcane and not the standard way web developers build a simple website. Oh and they disallow you to use…

> not the standard way web developers build a simple website I would like to see this standard described and what level of agreement you get.

Not OP, and I don't know if you've ever worked within Shopify, but the developer experience is generally terrible. They've given up supporting most of their own tools and basically just tell you to work within their site admin IDE which is also lacking in many ways.

Re: What I wish I knew before building a Shopify App

#24
post #14

Shopify is an extremely restrictive platform for merchants and developers, I urge people not to use it if they wish to build on top of it. There isn't ways to have a custom checkout (one page) with this system and subscriptions are not natively built in, relying on a third party ecosystem. Theme development is also arcane and not the standard way web developers build a simple website. Oh and they disallow you to use…

They integrate with a lot of payment gateways, even if Stripe isn't one of them. https://www.shopify.com/payment-gateways/united-states

Have to admit, while this is good and reassuring for accepting worldwide payments, Shopify is no good on the subscriptions front and this is very poor if your subscriptions business is digital, like a membership system.

Re: What I wish I knew before building a Shopify App

#25
We've just started developing a Shopify integration and used their Python API library because we're building it into an existing large Django codebase, and I've been shocked at the quality of the API library. We're now aiming to rewrite the bits we need.

- `import shopify` makes an API request. If their API rate limits you, your server will probably crash. This happened to us in production.

- That API request gets a dynamic list of supported API versions. If the version you've hard-coded in your app (because it's what you support) is no longer in that list, it will raise a VersionNotFoundError and your app will probably fail in some significant way.

- There's no connection persistence. Every API call sets up and tears down a full connection, a noticeable performance impact.

- Internally the library uses a lot of global state, it's certainly not safe to use in async code – too easy to use the wrong credentials on a request – and I suspect it's also not thread safe.

- Despite having something called a Session, very similar in documentation to a requests.Session or httpx.Session, it's neither, it's just a container for some creds. No sessions are available at all.

- It's mostly a wrapper around Pyactiveresource, which appears to have a lot of similar issues – internal state that's hidden that causes things to not work as you expect.

I suspect that the Python library was developed by Ruby engineers, some of the practices are things I've seen in Ruby but that just don't fit into the Python ecosystem.

From what I can tell their API deprecation strategy is quite hostile to developers.

I think it would be difficult to build what I'd consider to be production-grade services on top of the library. This is in stark contrast to others such as Stripe's API/libraries which are fantastic.

Re: What I wish I knew before building a Shopify App

#26
post #14

Earlier quoted context omitted.

They integrate with a lot of payment gateways, even if Stripe isn't one of them. https://www.shopify.com/payment-gateways/united-states

Have to admit, while this is good and reassuring for accepting worldwide payments, Shopify is no good on the subscriptions front and this is very poor if your subscriptions business is digital, like a membership system.

Is Gumroad a better fit perhaps for this use case?

Re: What I wish I knew before building a Shopify App

#27
I share some of the pains the author raises. One major thing that is a bit discouraging is the inconsistent feature support they have between REST and GraphQL APIs. Neither of them cover all functionalities, so sometimes you have to be bouncing back and forth between REST and GraphQL.

On the other hand, they are doing an amazing job and constantly providing updates. Their docs are really good and improving everyday. Kudos to the shopify dev team.

Re: What I wish I knew before building a Shopify App

#28

We've just started developing a Shopify integration and used their Python API library because we're building it into an existing large Django codebase, and I've been shocked at the quality of the API library. We're now aiming to rewrite the bits we need. - `import shopify` makes an API request. If their API rate limits you, your server will probably crash. This happened to us in production. - That API request gets a…

> From what I can tell their API deprecation strategy is quite hostile to developers.

Yes, every 3 months you need to revisit the API. It's good and bad. It means that if you're casually developing an app, this will consume a lot of time. Good because if forces you to update and keep your app relevant.

Re: What I wish I knew before building a Shopify App

#29

So I appear to be on a Shopify black list. I've called them, my bank, and on a few occasions even tried other people's cards. I'm declined no matter what, by Shopify. It's been this way for well over a year. Sometimes retailers will manually process a transaction, but otherwise it's infuriating for me to see Shopify grow in the market.

You can see some of the indicators they use here:

https://help.shopify.com/en/manual/orders/fraud-analysis#fra...

The thing where it calculates ip geolocation distance from the shipping address is a potential culprit. Maybe your IP address has a bad entry in their ip geo mapping software.

They also don't like proxies and VPNs.

Re: What I wish I knew before building a Shopify App

#30

Earlier quoted context omitted.

Have to admit, while this is good and reassuring for accepting worldwide payments, Shopify is no good on the subscriptions front and this is very poor if your subscriptions business is digital, like a membership system.

Is Gumroad a better fit perhaps for this use case?

Gumroad looks cool, but the percentages they are taking are extortionate, not sure if they are better.

It would get to a point where I am giving thousands of pounds to Gumroad to lock myself in. How customisable is it, can it do Apple / Google Pay?

Post reply on HN