Basic Assignments
 
Options & Settings
 
Main Time Information
Color Code: Green
Assigned To: team adilas
Created By: Cory Warden
Created Date/Time: 3/18/2025 3:47 pm
 
Action Status: In Progress
Show On The Web: Yes - (public)
Priority: 0
Finished/Done: No - (open)
Finished/Done By: ...
Budgeted/Estimated Value: 0.00  
Actual/Real Value: 0.00   [donate]
Invoice/Quote Status: Blank (n/a)
General Amount: $0.00
 
Time Id: 2789
Template/Type: Community Funded Projects
Title/Caption: Shopify API
Start Date: 3/18/2025
End Date: Unknown... (open or blank)
Total Time: Unknown... (open or blank)
Target/Due Date: 3/18/2025
Main Status: Active

Sorry, no photos available for this element of time.


Notes:
United will fund this and request an EOT that they can see daily progress with hours and request billing weekly.

From Michael-3/19:
It's Stephen here from the Retail Support team at Shopify! I'm following up from our chat as I wanted to send through resources that are intended to help you with building out your external ERP system along with Shopify API.
 
Going forward, while we have the Storefront API available. It is an unauthenticated public API, meaning that all data you expose to the app could be accessed by any visitors to your store. There is a help doc here that goes into this: Custom apps.
 
I would highly recommend that you reach out to and hire a Shopify Partner that is able to help you integrate your new ERP solution with your Shopify Store.
 
You'll be able to read more about Shopify Partners through our help guide -
 
If you or someone that is a developer would like to join the Partners Program, it is free to sign up through our Partners website. While our team isn't able to assist with building out apps, you can lean on our shopify.dev website for documentation and if you find that the API does break, please get in touch with our Support Advisor team through the Help Center so we can investigate further!

From Michael:
  1. Explore Shopify API Documentation:

    • Visit 

      Shopify.dev

       to access the API documentation. This resource provides detailed information on how to use Shopify's REST and GraphQL APIs to connect your ERP system with Shopify.

    • Focus on sections related to orders, inventory, and customer data management, as these are typically crucial for ERP integrations.

  2. Use Shopify API:

    • Utilize the Shopify API to create custom integrations. You can manage various aspects of your store, such as orders, products, and customer data, through API calls.

    • Consider using Shopify's API versioning to ensure your integration remains compatible with future updates.

  3. Join Shopify Community:

    • Engage with the 

      Shopify Community

      forums to connect with other developers and merchants who have experience with ERP integrations.

    • You can ask questions, share experiences, and get advice on best practices for integrating your ERP system with Shopify.

  4. Develop Custom Apps:

    • If existing solutions don't meet your needs, consider developing a custom app using the Shopify API. This allows you to tailor the integration to your specific requirements.

    • Refer to the [Custom apps](https



Additional Date/Times - Subs (28)
Title/Caption Start Date Start Time End Date End Time Age Notes
Updating notes 4/30/2025 1:00 pm 4/30/2025 2:00 pm 1.00 Hours

Getting hours and notes logged for last 3 weeks.

Mtg 4/30/2025 10:00 am 4/30/2025 10:30 am 30.00 Minutes

Meeting with Steve & Cory to update on progress and run plan from yesterday by them.

Next Steps 4/29/2025 12:00 pm 4/29/2025 2:00 pm 2.00 Hours

Finished up with shopify calls. 

Next Steps

1. pull in orders

  • create transition invoice
  • record the shopify order id
  • try and match shopify product to Adilas part for each line... if names match record the shopify product id
  • if no match line is left off (this will cause a mismatch between the invoice total and the line totals and flag the invoice so you know something is off.)
  • add customer (if no match for name, email, address, phone => create customer)
  • add payment
  • add button if missing lines to re-pull this order (after shopify product name/adilas part number have been changed to match)

2. Inventory management (PO/Invoice creation)

  • grab shopify product id (if don't have, do product lookup by name)
  • grab inventory/location id for product variants (by product id) and adjust on-hand qty
  • create table to log when missing a product id and qty couldn't be updated. Then build a page to show that information... At this time I don't think we will build anything out to update qty once names have been fixed at this time, but wait until the next sale/po to have them updated.
  • ** might want to add a warning message at top of page after PO/Invoice creation to warn user of mismatch and to reference report... but that is just a temporary message that will be gone once they leave the page. Reasoning behind this is it will avoid having to do a full, all shopify product to part number match, but just do those items that are being brought in/sold in real time to make the clean up spread out and more manageable.

* note: need to still determine which fields are being matched together for names in Adilas and Shopify... I will have to play around with this in both systems to see what our options are as needed.

Code clean up 4/29/2025 8:30 am 4/29/2025 9:30 am 1.00 Hours

Code review and clean up for what we actually need  for productVariant and getOrders calls.

productVariants 4/28/2025 1:00 pm 4/28/2025 4:00 pm 3.00 Hours

Adjusting product variant api call to grab the location id/location quantities. Had to go back and adjust original oAuth to request read permissions for locations (didn't think I would need them, but I do).

inventoryQuantities api 4/25/2025 12:00 pm 4/25/2025 4:00 pm 4.00 Hours
productVariants, mtg, app approval steps, etc. 4/21/2025 8:30 am 4/21/2025 3:30 pm 7.00 Hours

Converting productVariant data into adilas friendly data. Meeting to give update to Steve & Cory. Looking into what needs to happen for approval process for app to go live. Reading through documentation about inventory counts and how they work (on hand vs reserved vs committed vs available) and which quantities you can adjust through the api. To adjust the inventory we need location id and inventory id - both of which can be pulled from the productVariant call built out already so should be good to work on that call.

Building out getProductVariants 4/18/2025 8:30 am 4/18/2025 4:30 pm 8.00 Hours

Reading through the documentation to see how products interact with inventory and locations, etc... was able to find a way to search for a product by title... but not sure if the title will match with Adilas' part number... was later able to find how product, product variant and inventory items all play and work together. You can only lookup a product by name... but don't have access to inventory quantities... you can only look up product variants by product id, but allows to look up quantities.

getOrders & Meeting 4/15/2025 9:00 am 4/15/2025 2:00 pm 5.00 Hours

Meeting w/ Steve and Cory to give update. Digging in deeper to see if we can pull more information about the individual parts in the order to see if we can get their shopify ids to help with inventory updates when adilas qty changes. Was able to get the ids but those ids don't match up with the shopify inventory ids needed to adjust inventory levels... need to dig deeper to see if the product id does any good for us.

getOrders 4/14/2025 10:00 am 4/14/2025 2:00 pm 4.00 Hours

Finished with the api call and now converting the data into Adilas friendly data to use for building transition invoices.

getOrders 4/11/2025 1:00 pm 4/11/2025 3:30 pm 2.50 Hours
getOrders 4/11/2025 8:00 am 4/11/2025 9:00 am 1.00 Hours
starting to build out getOrders 4/10/2025 2:00 pm 4/10/2025 3:30 pm 1.50 Hours

Going through documentation and looking at what information to pull in.

GraphQL test 4/8/2025 2:00 pm 4/8/2025 5:00 pm 3.00 Hours

Trying some test GraphQL requests... testing the validation for various types of responses, (Unauthorized, bad request, etc) all give back very different responses so error handling will need to be pretty involved. Was able to make first successful call with Shopify!

Next steps:

  • build needed shopify call to fetch the orders... this will allow us to make a single call to get all the information we need, but it will be nested pretty deep with order, customer, payment and product information so it might take a hot min.
  • Map customers/products to what we have in the Adilas system
  • build out endpoint to update product quantities in shopify when something is sold in Adilas
oAuth dev 4/8/2025 9:00 am 4/8/2025 1:00 pm 4.00 Hours Still having issues with the hmac... I think my custom params might be throwing it off as I don't know which ones they are wanting... I did a "install" through the shopify admin page where it passes the url params and hmac without my custom params and was able to get the correct encoded message so I think my custom url params are messing with it... decided to table the validation check for now as it was taking too much time. Was able to complete the handshake and get the auth token and save it. The oAuth process is now pretty much complete.
oAuth 4/7/2025 8:30 am 4/7/2025 3:30 pm 7.00 Hours

Continued building out the oAuth process and verifying the nonce, shop name, etc. I am getting stuck on the hmac verification... my encoded string doesn't match up with theirs.

oAuth dev 4/4/2025 8:30 am 4/4/2025 2:30 pm 6.00 Hours Refactored our existing Clover integration and pushed through the various pages needed. Pushed redirect page to data0. Had some issues with my custom redirect params. In shopify you must white list every url, including the params being passed in... we will need to white list every corp and their server they are on for each new client using shopify so the oAuth redirect will work. Was able to get the initial code back from shopify to the redirect page. Next step is to run through the required validation steps Shopify requests before requesting the auth token.
GraphQL 4/3/2025 2:00 pm 4/3/2025 4:00 pm 2.00 Hours

Noticed a warning at the top of the documentation as I was going through the oAuth code that said as of 4/1/25 all new implementations must use GraphQL instead of REST. Started looking through documentation and how it differs all all previous Adilas API integrations have been SOAP or REST... This will have a little bit of a learning curve to get the syntax right on the requests as it is fluid (much more room for error)... but this does give us a lot more control once we get it figured out.

oAuth dev 4/2/2025 1:00 pm 4/2/2025 4:00 pm 3.00 Hours

Was able to get process to where I needed to start pushing up live files for the oAuth redirect to data0. Since we have multiple servers, we need to pass in custom params as part of the oAuth so we can get them back to the correct server. Need to test how Shopify chooses to handle these redirect params.

Starting to Build out oAuth process 4/1/2025 8:30 am 4/1/2025 2:00 pm 5.50 Hours

Going through clover oAuth process to see what code we could reuse and started to refactor it to allow for shopify integration.

Progress Notes - 3/31/2025 7:59 am 3/31/2025 9:35 am 1.60 Hours

Working on the Fulfillment Home to accept the incoming Shopify sales via Transitional Invoices

Progress Notes - 3/29/2025 9:00 am 3/29/2025 12:12 pm 3.20 Hours

Added Shopify to the 3rd party solutions page and action page. WebPageID 1124. Add in a new logo for Shopify. Merged into master and testing live on data0.

Need to affirm with Alan what key values Shopify requires and update accordingly. 

Documentation 3/28/2025 12:00 pm 3/28/2025 4:00 pm 4.00 Hours

Going through documentation for the oAuth protocol. Looks like we will have to build it out manually as their libraries aren't compatible with CF

Progress Notes - 3/28/2025 11:51 am 3/28/2025 12:15 pm 24.00 Minutes

Working on the Shopify 3rd party solution. Verbiage and logo research as well as adding a new WebPageID (1124)

Dev Account & App 3/27/2025 2:00 pm 3/27/2025 6:00 pm 4.00 Hours

Created a testing store account and started a "Dev App". Added inventory and did test sales to see how the shopify account works.

Progress Notes - 3/26/2025 11:49 am 3/26/2025 12:02 pm 13.00 Minutes

Meeting with Alan and Michael on how Teams and Shopify connection. We are reducing the connection time from 15 minutes to 5 for better syncing of inventory. I will be starting on the 3rd party solutions page and the Fulfillment page and Alan will be starting on the API with Shopify.

Progress Notes - 3/25/2025 11:30 am 3/25/2025 12:06 pm 36.00 Minutes

Meeting with Alan on the API integration, we divided duties. I'll be adding in the 3rd party page and meeting with Michael on the Fulfillment Functionality

API Documentation and meeting with Steve 3/25/2025 10:30 am 3/25/2025 1:00 pm 2.50 Hours

Looking through endpoints and seeing what they offer and intro meeting with Steve about plan moving forward.


Total Time In Hours And Minutes: 87:31 :: Total Hours As A Decimal: 87.52