good-idea / sane-shopify

MIT License
212 stars 15 forks source link

1.0 Roadmap #40

Open good-idea opened 4 years ago

good-idea commented 4 years ago

This issue is to outline some goals of and work to do for a 1.0 stable release. For specific issues, see those labeled with the 1.0 milestone. Everything described here is up for discussion - if there are features would like to see or have an interesting use case, please leave a comment below.

There are a few questions in the "moving forward" section below - please chime in if you have any thoughts!

Scope

1.0 Features

overall

@sane-shopify/sanity-plugin

@sane-shopify/server

@sane-shopify/sync-utils This package is the core of the project and is used within the webhooks and the Sanity plugin. Most of its use will be internal, but the API will be documented and available for more advanced usage.

Moving Forward

Beyond that, the project will grow more depending on the needs and interest of those using it. Please let me know what you'd like to see out of sane shopify!

@sane-shopify/sync-utils

@sane-shopify/server

@sane-shopify/sanity-plugin

homerjam commented 4 years ago

The roadmap looks great, excited for 1.0! 🚀

What sort of information would you like to see in a dashboard?

• A recent activity feed would be great to give peace of mind that everything is working correctly • Read-only versions of the shop policies/counties/payment settings might be useful to store (mainly to avoid duplication and API rate limits)

Please let me know what you'd like to see out of sane shopify!

Besides the features listed above we'd like to sync: • Product recommendations • Product types and tags (this one is more of a nice to have really)

If there are features would like to see or have an interesting use case, please leave a comment below.

Down the line we'll be storing additional customer data in Sanity - we'll likely make use of the webhook boilerplate to do this, so that will be very useful. Our Sanity dataset will be private but as a precaution we'll probably store references only.

good-idea commented 4 years ago

Great, thank you. i've updated the issue to to reflect these.

• A recent activity feed would be great to give peace of mind that everything is working correctly

Great idea. I've added it above. I had thought about creating a document type for storing a complete log of updates --- but this could quickly blow up a user's Sanity usage. But if it's just a single document with a bunch of entries, maybe not? The other option would be to add some kind of syncedAt timestamp to each product/collection - then, the dashboard could just do a GROQ query for the most recently updated.

Read-only versions of the shop policies/counties/payment settings might be useful to store (mainly to avoid duplication and API rate limits)

Opened a new issue, #42

Besides the features listed above we'd like to sync: • Product recommendations

You mentioned using ElasticSearch for this, correct? Any thoughts on what it would take to achieve this?

• Product types and tags (this one is more of a nice to have really)

These are already available in the product's sourceData. They were hidden fields, though, so didn't show up in the dashboard. They will be visible after the next release.

Is that sufficient for what you need?

tracy-codes commented 4 years ago

Hey @good-idea. Are you open to contributions on this project? I'd like to help with

Testing. So far, this package has no automated tests. As the work below is completed, test coverage needs to be improved. Most of this testing will need to mock out requests and responses from Shopify & Sanity, which is kind of a drag, and could also mean more maintenance down the line as the API of the services changes. But for e-commerce, stability is crucial, so this needs to happen to some degree.

I've already started to play around with this on a Shopify + Sanity/GatsbyJS website. I'd love to contribute to improve the stability and quality of releases by helping you get a head start on tests!

good-idea commented 4 years ago

Hi @tracy-codes , yes, I'm very open! My priorities have been centered around getting it all ready for a couple client projects I have been working on, so I've been skipping some things like testing that I might otherwise prioritize. When it comes to testing, the biggest hurdle there that I see is mocking out both Sanity and Shopify's APIs.

That being said, the frontend sanity-plugin is going to get a refactor. The API for sync-utils is just about stable, but I need to break it up a little bit into some smaller utilities that I'll be using on webhooks.

Perhaps I can set up a bunch of test files with empty/skipped tests --- this will help me articulate what the API should do, which is all kind of in my head but still needs some ironing out. How does that sound?

tracy-codes commented 4 years ago

Hi @tracy-codes , yes, I'm very open! My priorities have been centered around getting it all ready for a couple client projects I have been working on, so I've been skipping some things like testing that I might otherwise prioritize. When it comes to testing, the biggest hurdle there that I see is mocking out both Sanity and Shopify's APIs.

That being said, the frontend sanity-plugin is going to get a refactor. The API for sync-utils is just about stable, but I need to break it up a little bit into some smaller utilities that I'll be using on webhooks.

Perhaps I can set up a bunch of test files with empty/skipped tests --- this will help me articulate what the API should do, which is all kind of in my head but still needs some ironing out. How does that sound?

@good-idea I think mapping out what tests you'd like to see from the API would be a good start! If you're going to be refactoring the frontend sanity plugin I may start with just creating some mock data and API responses from Shopify & Sanity just so the annoying boilerplate of all that mock data is setup and ready to go. I.E. mocking out API responses for shopify collections, products, etc to be used in place of the actual api responses.

good-idea commented 4 years ago

@tracy-codes sounds good! I'll hopefully be getting to this during the week or early next week.

sndrgb commented 4 years ago

@good-idea I ran a small web agency based in Italy, and we're starting using sanity during these days. We think about to create a project like this, if you're open we can try to contribute! everything sounds really good!