{"id":50762454,"url":"https://github.com/devlinduldulao/ecwid-checkout-geo-flash","last_synced_at":"2026-06-11T11:02:11.676Z","repository":{"id":349574858,"uuid":"1185249021","full_name":"devlinduldulao/ecwid-checkout-geo-flash","owner":"devlinduldulao","description":null,"archived":false,"fork":false,"pushed_at":"2026-04-13T10:12:32.000Z","size":786,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-01T19:07:25.791Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://devlinduldulao.github.io/ecwid-checkout-geo-flash/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/devlinduldulao.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-03-18T11:44:24.000Z","updated_at":"2026-04-13T10:12:35.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/devlinduldulao/ecwid-checkout-geo-flash","commit_stats":null,"previous_names":["devlinduldulao/ecwid-checkout-geo-flash"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/devlinduldulao/ecwid-checkout-geo-flash","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devlinduldulao%2Fecwid-checkout-geo-flash","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devlinduldulao%2Fecwid-checkout-geo-flash/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devlinduldulao%2Fecwid-checkout-geo-flash/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devlinduldulao%2Fecwid-checkout-geo-flash/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/devlinduldulao","download_url":"https://codeload.github.com/devlinduldulao/ecwid-checkout-geo-flash/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devlinduldulao%2Fecwid-checkout-geo-flash/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34195117,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-11T02:00:06.485Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-06-11T11:02:10.705Z","updated_at":"2026-06-11T11:02:11.671Z","avatar_url":"https://github.com/devlinduldulao.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Checkout Geo Flash for Ecwid\n\nMerchant dashboard app for Ecwid store owners. This version avoids your own Node.js server, database, and Redis by using:\n\n- Ecwid App Storage for merchant settings\n- Ecwid public app config for storefront reads\n- Ecwid storefront JavaScript events for the final runtime only\n\nThe app itself is for the business owner inside the Ecwid dashboard, not for online visitors. The owner uses it to configure the feature, preview notification behavior safely, and publish privacy-safe settings. Without a backend writer, Ecwid still cannot broadcast real shared live purchase events across different shoppers.\n\n## What is included\n\n- `public/index.html`: native Ecwid admin page for merchant controls, preview, and setup\n- `src/admin/app.js`: dashboard logic for loading, saving, and previewing merchant settings\n- `src/storefront/custom-storefront.js`: storefront runtime applied after the owner installs or injects it\n- `src/shared/checkout-geo-flash-shared.js`: config parsing and normalization helpers\n- `public/storefront-test.html`: developer-only storefront test page\n\n## Publishing assets status\n\nMarketplace artwork now lives in `assets/marketplace/` at the repo root.\n\nThis folder contains:\n\n- app icon assets\n- banner assets\n- dashboard screenshots\n- preview screenshots\n\nUse the screenshots in that folder as the current UI reference for marketplace submission. Refresh them after dashboard design changes so they stay aligned with the live app.\n\n## Commands\n\n```bash\nnpm install\nnpm run build\nnpm run dev\nnpm run lint\nnpm test\n```\n\n`npm run dev` serves the repo as static files on port `5000`.\n\n`npm run build` creates a deployable static output in `dist/`.\n\n`npm run preview` serves the built `dist/` output on port `5001`.\n\n## GitHub Actions\n\nThis repo now includes three GitHub Actions workflows:\n\n- `.github/workflows/ci.yml`: installs dependencies, builds `dist/`, runs lint, runs tests, and uploads the build artifact\n- `.github/workflows/deploy-pages.yml`: builds the app and deploys `dist/` to GitHub Pages on pushes to `main` or `master`\n- `.github/workflows/release.yml`: builds the app, creates `checkout-geo-flash-ecwid-dist.zip`, uploads it as an Actions artifact, and attaches it to GitHub Releases for tags matching `v*`\n\nTo use GitHub Pages deployment, enable Pages in the repository settings and select GitHub Actions as the source. For this repository, the live URL will be `https://devlinduldulao.github.io/ecwid-checkout-geo-flash/` after the workflow completes.\n\n## Ecwid requirements\n\nYour Ecwid app should have these scopes:\n\n- `read_store_profile`\n- `update_store_profile`\n- `customize_storefront`\n\nThe admin page uses the native Ecwid iframe payload and writes to:\n\n```text\nPUT https://app.ecwid.com/api/v3/{storeId}/storage/public\nAuthorization: Bearer {access_token}\n```\n\nThe storefront reads public config with:\n\n```javascript\nEcwid.getAppPublicConfig('your-app-id');\n```\n\n## Merchant workflow\n\n1. Open the app inside the Ecwid admin dashboard.\n2. Review the store status and connection state.\n3. Configure sample copy, mode, and location behavior.\n4. Run the owner-only preview inside the dashboard.\n5. Save settings to Ecwid App Storage.\n6. Install the generated storefront snippet or rely on app injection.\n\n## Local preview\n\n1. Run `npm run dev`.\n2. Open `http://localhost:5000/public/?appId=your-ecwid-app-id` to preview the dashboard UI.\n3. Optionally open `http://localhost:5000/public/storefront-test.html` for developer-only storefront verification.\n4. Replace `STORE_ID` and `your-ecwid-app-id` in the test page only when you need storefront validation.\n\nOutside Ecwid admin, the settings page runs in preview mode only. Saving requires the Ecwid iframe payload.\n\n## Deployment\n\nDeploy the repo to any static host such as GitHub Pages, Netlify, Cloudflare Pages, or Vercel static output.\n\nFor GitHub Pages specifically:\n\n1. Open GitHub repository settings for `devlinduldulao/ecwid-checkout-geo-flash`.\n2. Go to Pages.\n3. Set Source to GitHub Actions.\n4. Push to `main` or run `.github/workflows/deploy-pages.yml` manually from the Actions tab.\n5. Use `https://devlinduldulao.github.io/ecwid-checkout-geo-flash/public/` as the Ecwid app page URL.\n\nFor GitHub release artifacts:\n\n1. Create and push a tag such as `v0.1.0`.\n2. Let `.github/workflows/release.yml` build the package.\n3. Download `checkout-geo-flash-ecwid-dist.zip` from the workflow artifact or the GitHub Release asset.\n\nIf you want a clean deploy artifact, upload the contents of `dist/` after running `npm run build`.\n\nThen either:\n\n1. Register `/public/` as your Ecwid native app page and let the app inject the storefront script.\n2. Or manually paste the generated snippet from the merchant dashboard into Ecwid Design → Custom JavaScript.\n\n## Feature boundary\n\nThis repo intentionally does not include:\n\n- Express or another custom app server\n- external database storage\n- webhook processing\n- shared event polling across customers\n\nIf you later want true live cross-visitor purchase notifications, that is the one feature that still needs a backend event collector.\n\nSee [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) for a deep dive into the architecture.\n\n## Publishing\n\nSee [docs/PUBLISHING.md](docs/PUBLISHING.md) for the submission checklist, [config/publishing-profile.json](config/publishing-profile.json) for the consolidated publishing profile used by this repo, [publishing/listing-metadata.json](publishing/listing-metadata.json) for the draft listing metadata scaffold, [publishing/ecwid-reviewer-answers.md](publishing/ecwid-reviewer-answers.md) for reviewer-facing technical answers, [publishing/final-publish-checklist.md](publishing/final-publish-checklist.md) for launch prep, and `assets/marketplace/` for the current marketplace artwork.\n\n## Development\n\nSee [docs/DEVELOPMENT.md](docs/DEVELOPMENT.md) for the full development guide.\n\n## Deployment\n\nSee [docs/DEPLOYMENT.md](docs/DEPLOYMENT.md) for deployment instructions.\n\n---\n\n## Ecwid Resources\n\n### Getting Started\n\n| Resource | Link |\n|----------|------|\n| Ecwid Developer Portal (register apps) | https://developers.ecwid.com/ |\n| App Development Guide | https://api-docs.ecwid.com/docs/get-started |\n| Ecwid App Market (see published apps) | https://www.ecwid.com/apps |\n| Sign Up for Free Ecwid Account | https://www.ecwid.com/ |\n| Ecwid Control Panel (store admin) | https://my.ecwid.com/ |\n\n### REST API v3\n\n| Resource | Link |\n|----------|------|\n| API Overview \u0026 Reference | https://api-docs.ecwid.com/reference/overview |\n| Products API | https://api-docs.ecwid.com/reference/products |\n| Orders API | https://api-docs.ecwid.com/reference/orders |\n| Customers API | https://api-docs.ecwid.com/reference/customers |\n| Categories API | https://api-docs.ecwid.com/reference/categories |\n| Discount Coupons API | https://api-docs.ecwid.com/reference/discount-coupons |\n| Store Profile API | https://api-docs.ecwid.com/reference/store-profile |\n| Product Variations API | https://api-docs.ecwid.com/reference/product-variations |\n| Abandoned Carts API | https://api-docs.ecwid.com/reference/abandoned-carts |\n| Shipping Options API | https://api-docs.ecwid.com/reference/shipping-options |\n| Tax Settings API | https://api-docs.ecwid.com/reference/taxes |\n| Application Storage API | https://api-docs.ecwid.com/reference/storage |\n| Starter Site API | https://api-docs.ecwid.com/reference/starter-site |\n\n### Authentication \u0026 Security\n\n| Resource | Link |\n|----------|------|\n| OAuth 2.0 Authentication | https://api-docs.ecwid.com/docs/authentication |\n| Access Scopes Reference | https://api-docs.ecwid.com/docs/access-scopes |\n| API Tokens \u0026 Keys | https://api-docs.ecwid.com/docs/api-tokens |\n\n### Storefront Customisation\n\n| Resource | Link |\n|----------|------|\n| JavaScript Storefront API | https://api-docs.ecwid.com/docs/customize-storefront |\n| Storefront JS API Reference | https://api-docs.ecwid.com/docs/storefront-js-api-reference |\n| Custom CSS for Storefront | https://api-docs.ecwid.com/docs/customize-appearance |\n| Page Events (OnPageLoaded, etc.) | https://api-docs.ecwid.com/docs/page-events |\n| Cart Methods (add, remove, get) | https://api-docs.ecwid.com/docs/cart-methods |\n| Public App Config (storefront injection) | https://api-docs.ecwid.com/docs/public-app-config |\n| SEO for Ecwid Stores | https://api-docs.ecwid.com/docs/seo |\n\n### App Development\n\n| Resource | Link |\n|----------|------|\n| Native Apps (admin iframe) | https://api-docs.ecwid.com/docs/native-apps |\n| Ecwid App UI CSS Framework | https://api-docs.ecwid.com/docs/ecwid-css-framework |\n| EcwidApp JS SDK Reference | https://api-docs.ecwid.com/docs/ecwidapp-js-sdk |\n| App Storage (key-value per store) | https://api-docs.ecwid.com/docs/app-storage |\n| Webhooks | https://api-docs.ecwid.com/docs/webhooks |\n| Webhook Events Reference | https://api-docs.ecwid.com/docs/webhook-events |\n| Custom Shipping Methods | https://api-docs.ecwid.com/docs/add-shipping-method |\n| Custom Payment Methods | https://api-docs.ecwid.com/docs/add-payment-method |\n| Custom Discount Logic | https://api-docs.ecwid.com/docs/add-custom-discount |\n| App Listing Requirements | https://api-docs.ecwid.com/docs/app-listing-requirements |\n\n### Embedding \u0026 Widgets\n\n| Resource | Link |\n|----------|------|\n| Add Ecwid to Any Website | https://api-docs.ecwid.com/docs/add-ecwid-to-a-site |\n| Product Browser Widget Config | https://api-docs.ecwid.com/docs/product-browser |\n| Buy Now Buttons | https://api-docs.ecwid.com/docs/buy-now-buttons |\n| Single Sign-On (SSO) | https://api-docs.ecwid.com/docs/single-sign-on |\n\n### Guides \u0026 Tutorials\n\n| Resource | Link |\n|----------|------|\n| API Rate Limits | https://api-docs.ecwid.com/docs/rate-limits |\n| Error Codes Reference | https://api-docs.ecwid.com/docs/errors |\n| Testing Your App | https://api-docs.ecwid.com/docs/testing |\n| Publishing to App Market | https://api-docs.ecwid.com/docs/publishing |\n| Ecwid Community Forum | https://community.ecwid.com/ |\n| Ecwid Help Center | https://support.ecwid.com/ |\n| Ecwid Status Page | https://status.ecwid.com/ |\n| Ecwid Blog | https://www.ecwid.com/blog |\n\n---\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevlinduldulao%2Fecwid-checkout-geo-flash","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdevlinduldulao%2Fecwid-checkout-geo-flash","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevlinduldulao%2Fecwid-checkout-geo-flash/lists"}