Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Task:
Jira Legacy
serverSystem Jira
serverIda1b4b5ef-b15c-306f-abe2-636e0c2e7fe6
keyPRD-618

Outline:

We need to make a new shopify plugin for Netcomm. This plugin will be copy of their old plugin. Here are the feature list of old plugins:

eKomi Official Shopify Plugin for NetComm

...

Summary:

...

Shopify install → This is broken down into a number of steps:
DB configuration - new table / entity.
Shopify App Admin config → add apps nav uri’s.

Main Dev steps:

  1. Request from shopify to the app with the hmac and shop.
    The app recodes and removes the hmac value, sends authorization request with shop api key or client id and with the redirect url. Then it redirects with callback.

  2. Request from shopify with callback while process is still actually in the install method.
    app parses request in callback action method, creates a request to shopify to get the access token.
    Then the app registers the un-install webhook.

  3. Then upon success the app should return the application settings form.
    This is where the NetcommId and eKomi details are captured.
    Form then validates & saves.

  4. Check from start to finish. Shopify has a list of app requirements.

  5. Refactor to include omission of Customer & Store Redaction and privileges for shopify are not needed.

Update to something more like this but include Jira outlines:

https://chatgpt.com/share/5e3dd58f-c441-4606-9683-9b304f7a8034 This plugin will be made with new Shopify Designs (please check eKomi Plugins for reference ) .

Overview:

The plugin will run from the Plugin Dashboard system and serve Shopify as an API.
Research is required to implement the new generation of Shopify plugin which is an Embedded App.

The embedded app is served within the Shopify Admin Dashboard.
The app will provide installation and uninstallation functionality.
The main requirement within the app is to capture Netcomm and or eKomi configuration settings and persist that to a DB.

Affected Resources:

Netcomm and eKomi plugins. Shopify is changing and it will affect our future plugins.
Plugin Dashboard DB schema will be changed and a new table introduced for the plugin config settings.
Plugin Dashboard environment variables will have new variables added to their respective config files: list file changes outside of Plugin. System files.

Timeline:

Order

Title

Link

Start

Finish

Level

1

New Shopify Plugin for Widget Installation.

PRD-618

18/06/2024

18/072024

Parent

1.1

Local Dev Setup & Plugin Dashboard Onboarding.

PRD-642

18/06/2024

Ongoing

Child

1.2

Shopify Onboarding.

PRD-643

18/06/2024

28/072024

Child

1.3

Plugin - Coding - Planning & Unassigned time tracking.

PRD-644

28/06/2024

04/072024

Child

1.4

Plugin - Coding - Installation

PRD-773

04/072024

14/07/2024

Child

1.5

Plugin - Coding - Uninstallation

PRD-774

04/072024

14/07/2024

Child

1.6

Plugin - Coding - Configuration - CRUD

PRD-763

06/07/2024

14/07/2024

Child

1.7

Plugin - Coding - Refactor & Comment & Document

PRD-764

14/07/2024

18/072024

Child

Process:

  1. Requirement Gathering. 

    • Local Dev Setup & Plugin Dashboard Onboarding. PRD-642

    • Shopify Onboarding. PRD-643

  2. Planning & Design. 

    • Plugin - Coding - Planning & Unassigned time tracking. PRD-642

  3. Implementation.

    • Dev setup

      • Local Dev Setup & Plugin Dashboard Onboarding. PRD-642

    • Shopify setup

    • Plugin development

      • Plugin - Coding - Planning & Unassigned time tracking. PRD-642

      • Plugin - Coding - Installation. PRD-773

      • Plugin - Coding - Uninstallation. PRD-774

      • Plugin - Coding - Configuration - CRUD. PRD-763

      • Plugin - Coding - Refactor & Comment & Document. PRD-764

Process Breakdown:

  1. Requirement Gathering:

    • Plugin Dashboard Repo - Local Dev Setup & Research. 

      • Develop overview of system, define system purpose.

    • Shopify Dashboard & Research.

      • Develop overview of Shopify system.

        • Read Documentation

          • Various App types.

          • Shopify documentation is preferring Shopify CLI App development for Embedded app. 

        • Document Shopify requirements.

  2. Planning & Design:
    The plugin is broken down into components, namely:

    1. App install

      • Install requires registration as an app provider.

      • Authentication process and Token exchange.

      • The app registers within Shopify and Customer shop.

      • Privilege establishment

      • Persists to DB.

    2. App uninstall

      • Authentication process and Token exchange.

      • The app un-registers within Shopify and Customer shop.

      • Deletes from DB.

    3. App Configuration

      • down into cdown into cConfiguration settings. App requires configuring.
        Options are provided to be either an eKomi client or Netcomm or both.

        • eKomi Client settings:

          • ShopId

          • Shop Interface Password

        • Netcomm Client settings:

          • NetcommId

      • App configuration will be persisted in the DB.
        CRUD functionality.

    4. Requirements:
      Shopify has requirements that each app should meet.
      Link to requirements.

      1. App is installable from shopify store and needs to be registered.

      2. App needs to store Netcomm & eKomi credentials.

      3. App is embedded, uses Shopify App Bridge functionality.
        Link to App Bridge

    5. Native Symfony / Docker app.

    6. DB Entity

  3. Implementation:

    1. Local Dev Setup.

      1. Setup environment to develop - environment specifics needed for the repo to work.

    2. Learn Plugin Dashboard system.

      1. Read Plugin documentation.

      2. Read Plugin code as I’m supposed to model off them.

    3. Shopify Setup

      1. Learn what Shopify requires and how to do development with them.

    4. Plugin Development:

      1. DB Schema
        Link to schema.

      2. Install
        Link to Install process flow.

      3. Uninstall
        Link to Uninstall process flow.

      4. Configuration CRUD
        Link to Configuration process flow.

      5. Refactor / Testing Phase.

      6. Identify issues and refactor

      7. Documentation / Commenting.
        Document Shopify requirements for apps.
        Explain where app meets requirements.
        Comment functions and classes.