...
Order | Title | Link | Start | Finish | Level |
1 | New Shopify Plugin for Widget Installation. | 18/06/2024 | 18/072024 | Parent | |
1.1 | Local Dev Setup & Plugin Dashboard Onboarding. | 18/06/2024 | Ongoing | Child | |
1.2 | Shopify Onboarding. | 18/06/2024 | 28/072024Child | ||
1.3 | Plugin - Coding - Planning & Unassigned time tracking. | 28/06/2024 | 04/072024Child | ||
1.4 | Plugin - Coding - Installation | 04/072024 | 14/07/2024 | Child | |
1.5 | Plugin - Coding - Uninstallation | 04/072024 | 14/07/2024 | Child | |
1.6 | Plugin - Coding - Configuration - CRUD | 06/07/2024 | 14/07/2024 | Child | |
1.7 | Plugin - Coding - Refactor & Comment & Document | 14/07/2024 | 18/072024Child | ||
1.8 | Plugin - Coding - FrontEnd design to Polaris | 16/07/2024 | 20/072024 | ||
1.9 | Plugin - Coding - Add form to capture widget code to display on their site. | 16/07/2024 | 20/072024 | ||
1.10 | Widget Store Front Display Requirements. | 29/07/2024 | 31/07/2024 | ||
1.11 | Widget Store Front Display Functionality. | 29/07/2024 | 31/07/2024 |
Process:
Requirement Gathering.
Planning & Design.
Implementation.
Dev setup
Local Dev Setup & Plugin Dashboard Onboarding. PRD-642
Shopify setup
Shopify Onboarding. PRD-643
Plugin development
Plugin - Coding - Planning & Unassigned time tracking. PRD-642644
Plugin - Coding - Installation. PRD-773
Plugin - Coding - Uninstallation. PRD-774
Plugin - Coding - Configuration - CRUD. PRD-763
Plugin - Coding - Refactor & Comment & Document. PRD-764
Widget Store Front Display Requirements. PRD-855
Widget Store Front Display Functionality. PRD-856
Process Breakdown:
Requirement Gathering:
Plugin Dashboard Repo - Local Dev Setup & Research.
Develop overview of system, define .
Define system purpose.
Shopify Dashboard & Research.
Develop overview of Shopify system.
- Document
Define Shopify requirements.
Planning & Design:
The plugin is broken down into components, namely: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.
App uninstall
Authentication process and Token exchange.
The app un-registers within Shopify and Customer shop.
Deletes from DB.
App Configuration
Configuration 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.
Requirements:
Shopify has requirements that each app should meet.
https://shopify.dev/docs/apps/launch/app-requirements-checklistApp is installable from shopify store and needs to be registered.
App needs to store Netcomm & eKomi credentials.
App is embedded, uses Shopify App Bridge functionality.
https://shopify.dev/docs/api/app-bridge
Native Symfony / Docker app.
DB Entity
Implementation:
Local Dev Setup.
Setup environment to develop - environment specifics needed for the repo to work.
Learn Plugin Dashboard system.
Read Plugin documentation.
Read Plugin code as I’m supposed to model off them.
Shopify Setup
Learn what Shopify requires and how to do development with them.
https://shopify.dev/docs/apps/launch/app-requirements-checklist
https://shopify.dev/docs/api/app-bridge
So based upon our tech stack it seems like we actually just use the PHP library / dependancy to intergrate the app with Shopify.
DB Schema
Code Block TABLE `netcomm_configuration` : `id` int(11) NOT NULL AUTO_INCREMENT, `user_id` int(11) DEFAULT NULL, `shop_url` varchar(255) COLLATE utf8_unicode_ci NOT NULL, `access_token` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, `app_uninstall_web_hook_id` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, `order_fulfilled_web_hook_id` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, `widget_token` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, `widget_language` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, `terms_and_conditions` tinyint(1) NOT NULL DEFAULT '1', `instruction` tinyint(1) NOT NULL, `shop_id` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, `shop_interface_password` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, `netcomm_id` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, `store_data` longtext COLLATE utf8_unicode_ci, `enabled` tinyint(1) NOT NULL DEFAULT 'false', `created` datetime NOT NULL, `updated` datetime NOT NULL, `member_of_netcomm` tinyint(1) NOT NULL DEFAULT 'false', `member_of_ekomi` tinyint(1) NOT NULL DEFAULT 'false', PRIMARY KEY (`id`), UNIQUE KEY `UNIQ_89D23822678D9590` (`shop_url`), UNIQUE KEY `UNIQ_89D238224D16C4DD` (`shop_id`), UNIQUE KEY `UNIQ_89D23822B6A2DD68` (`access_token`), UNIQUE KEY `UNIQ_89D23822A76ED395` (`user_id`), CONSTRAINT `FK_89D23822A76ED395` FOREIGN KEY (`user_id`) REFERENCES `fos_user` (`id`)
Install - Process definition:
Uninstall
Link to Uninstall process flow.Configuration CRUD
Link to Configuration process flow.Refactor / Testing Phase.
Identify issues and refactor
Documentation / Commenting.
Plugin Development:
Document Shopify requirements for apps.
Explain where app meets requirements.
Comment functions and classes.
Each in their respective page.
Main Process Flow Diagrams:
Inc drawio | ||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|