Skip to content

Releases: CaspianTools/script-caspian-store

v9.25.0 — In-admin Help & docs page

Choose a tag to compare

@CaspianTools CaspianTools released this 28 Jun 08:34

Adds a searchable in-app Help & documentation page at /admin/help (sticky table-of-contents sidebar + search). An operator handbook covering catalog, orders, engagement, content, plugins, settings, roles, plus the Caspian POS and Instagram channel go-live steps. Generated stores inherit it. No consumer action required.

v9.24.0 — Instagram setup docs

Choose a tag to compare

@CaspianTools CaspianTools released this 28 Jun 06:38

Documents the caspian-instagram codebase end-to-end: INSTALL.md §5 gains an Instagram deploy block (META_APP_ID/META_APP_SECRET secrets, deploy:instagram, Cloud Scheduler, rules, the one-time Meta app + App Review, per-shop IG Professional/Page), and the scaffolded store README --with-instagram block now covers publish/delete + the go-live note. Docs-only — no consumer action required.

v9.23.0 — Instagram delete posts

Choose a tag to compare

@CaspianTools CaspianTools released this 24 Jun 13:37

Adds the 'remove old posts' action to caspian-instagram: new admin callable deleteInstagramMedia({ mediaId }) that deletes a published post via DELETE /{ig-media-id} on the stored Page token (whole post/reel/carousel album, not a single slide). Requires instagram_manage_contents on the token (Facebook-Login only). No consumer action required (additive; redeploy caspian-instagram and reconnect accounts linked before this).

v9.22.0 — Instagram publishing

Choose a tag to compare

@CaspianTools CaspianTools released this 24 Jun 13:15

Adds content publishing to the caspian-instagram codebase: new admin callable publishInstagramMedia({ imageUrls, caption }) — 1 image = photo, 2–10 = carousel — via the two-step Graph container/publish flow on the stored Page token; returns { mediaId, permalink }. Requires instagram_content_publish on the token. No consumer action required (additive to the opt-in codebase; redeploy caspian-instagram to pick it up, and reconnect accounts linked before this).

v9.21.0 — Instagram channel Cloud Functions

Choose a tag to compare

@CaspianTools CaspianTools released this 24 Jun 10:19

New opt-in firebase/functions-instagram/ codebase (caspian-instagram): Facebook-Login OAuth exchange, feed read, and comment moderation (reply/hide/delete) for the Caspian POS, plus a daily token refresh. Meta Graph v21 over global fetch; META_APP_ID/META_APP_SECRET via defineSecret; the instagram/connection token doc is server-only. New --with-instagram scaffolder flag (mirrors --with-stripe/--with-email). Backports the backend already shipped in luivante/husnella so the library stays a superset. No consumer action required — purely additive.

v9.20.0 — Federated accounts can set a password + account page polish

Choose a tag to compare

@CaspianTools CaspianTools released this 18 Jun 13:04

v9.20.0 — Federated accounts can set a password + admin account page polish

Two follow-ups to the v9.19.0 admin account page:

  1. <ChangePasswordCard> lets federated accounts set a password. A Google-signed-in user previously saw a dead-end "manage your password in your Google account" note. The card now detects whether the account already has a password provider — if not, it offers Set password, linking an email/password credential via linkWithCredential (reauthenticating through the Google popup on auth/requires-recent-login), so the user can also sign in with email + password. Accounts that already have a password keep the reauth-and-change flow. Applies wherever the card renders — the storefront /account Security tab and the admin /admin/account page.
  2. <AdminAccountPage> white card. The account cards now sit in a white card surface instead of floating on the admin background.

No consumer action required

<ChangePasswordCard> gains capability (set-vs-change is auto-detected from the user's providers) with the same props; the admin account page change is visual only.


Install / upgrade:
```bash
npm install github:CaspianTools/script-caspian-store#v9.20.0
```

v9.19.0 — Admin /admin/account self-account page

Choose a tag to compare

@CaspianTools CaspianTools released this 18 Jun 12:44

v9.19.0 — Admin "My account" page (/admin/account)

The admin chrome had no place for an admin to manage their own account — <AdminProfileMenu>'s "My profile" item linked to the storefront /account page, bouncing the admin out of the panel. There is now a dedicated /admin/account page, rendered inside the admin shell, where the signed-in admin can edit their display name + phone, upload/remove their profile photo, and change their password (email stays read-only). It reuses the existing ProfilePhotoCard / ProfileCard / ChangePasswordCard components, so there is no new form or data logic.

<AdminProfileMenu>'s profileHref default changes from /account to /admin/account so "My profile" lands on the new in-chrome page. <AdminRoot> dispatches /admin/account automatically, so consumers using the default admin route tree get the page for free.

Ported from the standalone luivante store.

No consumer action required

Additive — a new admin page wired through the existing <AdminRoot> dispatcher. The only behavior change is <AdminProfileMenu>'s "My profile" default destination (/account/admin/account); pass profileHref="/account" to restore the old target if you relied on it.

Added

  • src/admin/admin-account-page.tsx — the /admin/account page; stacks the three account cards under a page header. Exported from src/admin/index.ts.

Changed

  • src/admin/admin-root.tsxcase 'account' dispatches <AdminAccountPage />.
  • src/admin/admin-profile-menu.tsxprofileHref default /account/admin/account.

Install / upgrade:
```bash
npm install github:CaspianTools/script-caspian-store#v9.19.0
```

v9.18.0 — Tabbed Emails settings page

Choose a tag to compare

@CaspianTools CaspianTools released this 17 Jun 12:07

The admin Settings → Emails page is now split into Sender and Templates tabs (shared Tabs component), so the two concerns are separated and the page is shorter. The sender form's bordered card is dropped in favor of the tab grouping, and the redundant "Templates" sub-heading is removed. The template-edit dialog is unchanged.

No consumer action required

Purely a UI reorganization of an existing admin page — no data model, Firestore, or API changes; existing email settings and templates render unchanged.

Upgrade: npm install github:CaspianTools/script-caspian-store#v9.18.0

v9.17.0 — Underline tabs + structured business hours

Choose a tag to compare

@CaspianTools CaspianTools released this 17 Jun 03:47

The shared Tabs component's active tab was a filled dark pill; it now uses an underline style (active = accent-colored text + a 2px accent underline, inactive = muted gray), resolving the accent in both admin (--a-accent) and storefront (--accent) contexts. Separately, the free-text Business hours setting is replaced by a structured weekly schedule — a master enable, a timezone, and per-day open/closed toggles with From/To times — edited in the admin Settings → Contact section and rendered on the storefront /contact page beside the form when enabled.

The legacy SiteSettings.businessHours string is retained for backward compatibility; the storefront shows the structured schedule only when businessHoursSchedule.enabled.

No consumer action required

Additive. businessHoursSchedule is optional and persists through the existing settings/site doc — no new Firestore collection, rules, or indexes, and existing free-text businessHours values are untouched. The tab restyle is purely visual and inherits your theme's accent token.

Added

  • Weekday, BusinessDayHours, BusinessHoursSchedule types; SiteSettings.businessHoursSchedule?.
  • src/utils/business-hours.tsWEEKDAYS, DEFAULT_BUSINESS_HOURS, pure 12-hour formatHourLabel.
  • src/components/contact/business-hours.tsxBusinessHoursCard, the storefront hours panel.
  • i18n keys businessHours.title / .closed / .timezoneNote / .day.mon…sun.

Changed

  • src/ui/tabs.tsx — underline active style; applies to every tab usage.
  • src/admin/admin-site-settings-page.tsx — Business-hours textarea becomes a structured editor.
  • src/components/contact/contact-page.tsx — responsive 2-column layout when hours are enabled.
  • src/styles/globals.css.caspian-contact-layout stacks ≤720px.

Install: `npm install github:CaspianTools/script-caspian-store#v9.17.0`

v9.16.0 — Taxonomy-driven product attributes

Choose a tag to compare

@CaspianTools CaspianTools released this 16 Jun 06:22

Wire the common-taxonomies catalog (v9.15.0) into products end-to-end — enabling a generic taxonomy (Materials, Colors, Seasons, …) now lets you assign its terms to products and shop by them.

Editor — the product editor's hardcoded Color palette is replaced by a dynamic Attributes section: one term multi-select per enabled generic taxonomy (except Sizes, which keeps the comma field + per-size stock grid), each with inline "create term". Legacy color is preserved and shown as a migration hint.

DataProduct.taxonomies?: Record<string, string[]> (taxonomy id → taxonomyTerms doc ids).

Storefront — the shop filter sidebar + mobile drawer render a facet per enabled taxonomy (only terms present in the current results), filtered client-side; the PDP lists a product's attributes as chips. New module-level useTaxonomyTermsByType cache.

Import/Export — one CSV column per generic taxonomy (term names, ;-joined), round-tripping via a new auto-creating makeTaxonomyTermResolver.

No consumer action required

Additive. Product.taxonomies is optional; the Attributes section and facets appear only once you enable a generic taxonomy and add terms. Reuses the existing public-read taxonomyTerms collection (client-side filtering) — no new Firestore collection, rules, or indexes.

Install: npm install github:CaspianTools/script-caspian-store#v9.16.0