Live data from Hacker News

What I wish I knew before building a Shopify App

ma.ttias.ch

101–110 of 175 posts

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

#101
post #98
post #95

Earlier quoted context omitted.

I don't really understand why developers use SDKs/libraries at all when the RESTful APIs are easy enough to consume directly.

Handroll marshalling for every payload, handle the auth sequence, check arguments, endpoint semantics, sort out sparse versus full entity patching mismatch, build in retry that matches status codes, and do this for every endpoint. If you're moving fast, you don't have time for this. Especially if it isn't your core competency / core product.

> sort out sparse versus full entity patching mismatch

I thought we are talking about Shopify... where people browse and search products, buy products, make a transaction, and review past orders/invoices/transactions.

Where does PATCH fit?

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

#102

I'm reading a good number of the comments and while I understand it's not a sample without bias, I have to ask: How did Shopify get to be the beast that it is? Why doesn't someone else step up and into what looks like a massive opportunity, especially since Covid have push so many transactions online? I have worked with Shopify customizing themes and adding custom functionality. It good when it great and you're withi…

At the end of the day, the customer is the one deciding what they will pay for based on what is available to them. Majority of apps are on Shopify. Customer has no knowledge of the dev tools and how hard they are to use.

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

#103
In support of the platform:

* I've never had zero options for solving a problem. Ten years ago, I needed to build a customer login system on top of Shopify. (Like, before Shopify had one of its own.) I had enough room to do that in javascript, and it became an app called Gatekeeper. (Today's spiritual successor: Locksmith.)

* Whoever works on patterns at Shopify does a really, really good job. They think through things slowly and thoroughly, resulting in resource models that that are usually refined over time, instead of remodeled entirely. This is a good sign.

* This is a second bullet point to underscore the previous point about Shopify's pattern-making. I've been on this platform for a decade straight, and I don't deal with systemic inconsistency. I'm only here because Shopify is really, really good at patterns.

* This is a third pattern-related point to observe that Shopify usually defers solving a problem, rather than putting forward a fragile or brittle solution. (How long did it take for order editing to arrive?) By my reading, they'd rather take a while to land on and deliver a solution that will create a broader future, than more quickly deliver a solution that will limit the future.

* Yes, there are occasionally major/breaking API changes. Honestly, I love this. For me, it forces the whole system to stay engaged, and stay alive. Yes, I know the counter-arguments to this. :)

This is why I'm still here, ten years later. Yes, some things are short-term hard. But the things that are long-term important are all locked in.

---

Also yeah, building and sustaining an app is work. This is part of why I made https://apps.shopify.com/mechanic. I love the Shopify platform, so, so much, and also I needed a way to solve really specific problems more quickly, and keep those solutions running more sustainably. So: platform within a platform. Lots of nested similarity here, in the way that Shopify thinks about solving problems and the way Mechanic thinks about solving problems within Shopify.

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

#104
post #86

Earlier quoted context omitted.

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.

One thing with Shopify that drives the high abandonment rate is that shipping rates are usually not calculated until the second page of checkout. On many stores the only way to get a shipping estimate is to add something to a cart and get to the second page of checkout.

This is huge - and annoying. I like to avoid Amazon when I can, but if I can't figure out what shipping is going to cost until the cart is almost finished being checked out, I'll bounce.

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

#105

I'm reading a good number of the comments and while I understand it's not a sample without bias, I have to ask: How did Shopify get to be the beast that it is? Why doesn't someone else step up and into what looks like a massive opportunity, especially since Covid have push so many transactions online? I have worked with Shopify customizing themes and adding custom functionality. It good when it great and you're withi…

At the end of the day, the customer is the one deciding what they will pay for based on what is available to them. Majority of apps are on Shopify. Customer has no knowledge of the dev tools and how hard they are to use.

Yes and no. The issue here is presenting as "dev friendly" and not being true to that. Wix, Webflow, Squrespace don't do that. They're not.

But Shopify wants to say one thing but do another. Why do devs subject themselves to a platform with well known limitations.

Note: I like Shopify. But only for cases that are within its sweet spot.

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

#106
post #28

Earlier quoted context omitted.

> 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.

>Good because if forces you to update and keep your app relevant. The real question we should be asking is, is churn adding value? I understand security updates but otherwise you can only improve the wheel so many times before it just becomes a waste of time (decreasing marginal returns). Software engineering _badly_ needs a concept of finished version and mature software. Often there is very little gained from a new…

> Software engineering _badly_ needs a concept of finished version and mature software

It used to be like that. Back before the expectation of regular updates, in fact back before downloading updates off the internet was considered desirable or even feasible, when releasing a patch was a borderline embarrassing admission that we didn't get it right the first time, software shipped on CD and the version that shipped was understood to be the version installed on the vast, vast majority of customer systems, so it had better be a finished product or there were reputations on the line.

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

#107

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…

Almost all 3rd party SDKs should be avoided like the plague as a general rule. I have a much better time taking control of the HTTP requests to 3rd party APIs

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

#108

I've been building Shopify apps for around 5 years now, and have 4 apps with around 15k users. I feel the pain this author feels with some additional notes.. Our apps are built in PHP using the polaris.css for styling components. We have some embedded apps currently (before Shopify began requiring the session token). Personally, the embedded experience is only good for simpler apps. If your app is more complex with l…

For those of you that aren't in AWS ecosystem or are looking for a simpler alternative to EventBridge we've built https://hookdeck.io. A good chunk of our customers is either Shopify apps or Shopify stores. We essentially provide a full webhook infrastructure (queuing, retry, alerts, monitoring) out of the box. It should help to scale your webhook usage without having to go out of your way to build complex ingestion and queuing.

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

#109
I recently got an app on to the Shopify app store. The review process is the worst that I've been through.

My rejections in chronological order:

1. Rejected for having text in the app icon. The text was our company's name and is our logo which we had to change for Shopify...

2. Rejected because we didn't implement the GDPR webhooks. We don't operate in Europe so I didn't think they apply. I could have read this in the documentation but still...

3. My shop set up geographic restrictions for a few South East Asian countries and the shopify tester tested with a store with an Albania as the country, USD as the currency, and a fictional address. Shopify actually prevents this kind of invalid installation (that's the whole point of the geographic restriction). So when my store rejected his onboarding attempt with a generic error due to what was previously thought to be nothing more than a sanity check, he rejected my app and imposed a 2 week ban on my partner account from resubmitting.

Ultimately, I was able to appeal the decision through a different channel. We had our first customer waiting to use our app so this added an extra 10 days of delay and a whole bunch of unneeded stress in my startup.

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

#110
post #98

Earlier quoted context omitted.

Handroll marshalling for every payload, handle the auth sequence, check arguments, endpoint semantics, sort out sparse versus full entity patching mismatch, build in retry that matches status codes, and do this for every endpoint. If you're moving fast, you don't have time for this. Especially if it isn't your core competency / core product.

> sort out sparse versus full entity patching mismatch I thought we are talking about Shopify... where people browse and search products, buy products, make a transaction, and review past orders/invoices/transactions. Where does PATCH fit?

Customers do all that, but admins also upload and edit products, orders, and other entities typical of an eCommerce model. I’m assuming it’s that?
Post reply on HN