{{ 'fb_in_app_browser_popup.desc' | translate }} {{ 'fb_in_app_browser_popup.copy_link' | translate }}

{{ 'in_app_browser_popup.desc' | translate }}

🚚 正價買滿 $488 順豐免運費

🎁 成為會員 可享更多優惠

🚚 正價買滿 $488 順豐免運費

🎁 成為會員 可享更多優惠

🚚 正價買滿 $488 順豐免運費

你的購物車是空的
{{ (item.variation.media ? item.variation.media.alt_translations : item.product.cover_media.alt_translations) | translateModel }} {{ (item.variation.media
                    ? item.variation.media.alt_translations
                    : item.product.cover_media.alt_translations) | translateModel
                }}
{{ 'product.bundled_products.label' | translate }}
{{ 'product.bundle_group_products.label' | translate }}
{{ 'product.buyandget.label' | translate }}
{{ 'product.gift.label' | translate }}
{{ 'product.addon_products.label' | translate }}
{{item.product.title_translations|translateModel}}
{{ field.name_translations | translateModel }}
  • {{ childProduct.title_translations | translateModel }}

    {{ getChildVariationShorthand(childProduct.child_variation) }}

{{ 'product.set.open_variation' | translate }}
  • {{ getSelectedItemDetail(selectedChildProduct, item).childProductName }} x {{ selectedChildProduct.quantity || 1 }}

    {{ getSelectedItemDetail(selectedChildProduct, item).childVariationName }}

{{item.variation.name}}
{{item.quantity}}x HK$0 {{ item.unit_point }} 點
{{addonItem.product.cover_media.alt_translations | translateModel}}
{{ 'product.addon_products.label' | translate }}
{{addonItem.product.title_translations|translateModel}}
{{addonItem.quantity}}x {{ mainConfig.merchantData.base_currency.alternate_symbol + "0" }}

New & Notable

產品分類


About Us

  

What I recommend
 

 


Keep a single monorepo, but isolate the new data layer so schema changes can’t touch the legacy app.

 


 

1) Isolate by package + runtime (no shared DB models)
 

 

Legacy app (apps/chad-legacy-web): stays on Firestore; no Supabase client in its deps.
New app (apps/chad-family-web and/or apps/chad-mobile): is the only thing depending on @chad/db-v2 (SQL migrations, RLS, RPCs).
Shared “contracts” (packages/core-domain): only types & business enums, no DB schema exports.
 

 


This matches your phased migration and keeps all relational work contained to the new surface area.  

 


 

2) Put a stable API in front of Supabase for the new app
 

 

Add a tiny BFF / core API (apps/core-api) that talks to Supabase (DDL/RLS/RPC) and exposes versioned endpoints to web/mobile.
Clients never import SQL; they call /v1/....