Commit Graph

15 Commits

Author SHA1 Message Date
7c35817313 Refactor Media Manager sync logic and fix duplication bugs
This major refactor addresses improper image matching and duplication:

- Implemented strict ID-based matching in 'MediaService', removing the greedy filename matching fallback.

- Redesigned synchronization pipeline to treat Google Drive as the Source of Truth, supporting orphan adoption (Shopify -> Drive) and secure uploads.

- Implemented 'gallery_order' using Drive file properties (supporting both v2 and v3 APIs) for stable, drag-and-drop global ordering.

- Added conditional file renaming using timestamps to enforce '_' naming convention without unnecessary renames.

- Fixed runtime errors in 'MediaService' loops and updated 'ShopifyMediaService' GraphQL mutations to match correctly schema.

- Rewrote 'MediaService.test.ts' with robust test cases for strict matching, adoption, sorting, and reordering.
2025-12-28 12:25:13 -07:00
8554ae9610 Fix duplicate media import bug and rename MediaSidebar to MediaManager
- Renamed src/MediaSidebar.html to src/MediaManager.html to align with modal UI.
- Fixed race condition in Photo Picker polling preventing duplicate imports.
- Updated global.ts, initMenu.ts, and mediaHandlers.ts used in the fix.
- Fixed unit tests for mediaHandlers.
2025-12-26 22:57:46 -07:00
50ddfc9e15 Feature: Robust Google Photos Integration & Media Hardening
- Implemented Google Photos Picker with Session API.
- Fixed 403 Forbidden errors by adding OAuth headers to download requests.
- Implemented MediaHandler resilience:
  - 3-Step Import (Save to Root -> Verify Folder -> Move).
  - Advanced Drive API Fallback (v3/v2) for file creation.
  - Blob Sanitization (Utilities.newBlob) to fix server errors.
- Enabled Advanced Drive Service in ppsscript.json.
- Updated Documentation (MEMORY.md, ARCHITECTURE.md) with findings.
2025-12-26 01:51:04 -07:00
95094b1674 feat(media): implement integrated media manager with sidebar and picker
- Implement DriveService and ShopifyMediaService for backend operations
- Create MediaSidebar.html with premium UI and auto-polling
- Integrate Google Picker API for robust file selection
- Orchestrate sync logic via MediaService (Drive -> Staged Upload -> Shopify)
- Add secure config handling for API keys and tokens
- Update ppsscript.json with required OAuth scopes
- Update MEMORY.md and README.md with architecture details
2025-12-25 15:10:17 -07:00
85cdfe1443 feat: implement status automation and router pattern
- Implemented modular status automation system (statusHandlers.ts).
- Added handlers for 'Published' (Active/Qty 1), 'Sold' (Active/Qty 0), and 'Drafted'.
- Refactored onEdit triggers into a central Router pattern in OnEditHandler.ts.
- Updated Product.ts to support explicit quantity setting (fixed 0 value bug).
- Updated shopifyApi.ts to implement SetInventoryItemQuantity (using ignoreCompareQuantity).
- Consolidated triggers into single onEditHandler.
- Updated project documentation.
2025-12-24 23:55:28 -07:00
2d43c07546 feat: implement periodic shopify sales sync
- automated sales check (default 10 mins)

- manual reconciliation menu

- updates 'status' and 'shopify_status' in sheet

- updated docs
2025-12-24 22:08:12 -07:00
418123d742 feat: add troubleshooting side panel and advanced queue controls
- Implemented a global toggle to enable/disable background queue processing.
- Added a Side Panel (Sidebar.html) to view pending edits.
- Added per-item controls: 'Delete' to remove from queue, 'Push' to force update.
- Updated 'onEditQueue.ts' with robust error handling for batch processing.
- Updated documentation (README, ARCHITECTURE) to reflect new features.
- Fixed 'clasp' deployment issues by cleaning up manifest management.
2025-12-24 21:14:19 -07:00
a5f9b1542c add queued and batched edits of products 2025-09-07 23:28:13 -06:00
096eb80999 add product dimensions 2025-07-31 21:21:20 -06:00
5707fa59b8 fix missing global function 2024-11-29 17:22:29 -07:00
69c8870ff0 add functions to public for menu access 2024-11-17 17:33:49 -07:00
9d234c77d9 create column-based onedit handler 2024-11-17 09:28:53 -07:00
220ee45e22 partial implementation of product update 2024-11-14 02:03:42 -07:00
9b01d6de8a use installed triggers
cannot call external services from default triggers
2024-11-14 00:50:05 -07:00
a5c0a1176d omg this is working 2024-11-13 23:43:32 -07:00