diff --git a/src/app/admin/subscriptions/edit/[id]/page.tsx b/src/app/admin/subscriptions/edit/[id]/page.tsx index 74b735c..1e1b047 100644 --- a/src/app/admin/subscriptions/edit/[id]/page.tsx +++ b/src/app/admin/subscriptions/edit/[id]/page.tsx @@ -233,7 +233,7 @@ export default function EditSubscriptionPage() { /> )} -
+
{/* Header card */}
@@ -289,11 +289,11 @@ export default function EditSubscriptionPage() {
)} {showThumb && ( -
+
{previewUrl
{previewUrl && ( @@ -334,11 +334,12 @@ export default function EditSubscriptionPage() {
{/* Price */}
- + setPrice(e.target.value)} onBlur={e => { const n = parseFloat(e.target.value); if (!isNaN(n)) setPrice(n.toFixed(2)); }} /> +

Admin input is handled per pack. The backend continues storing the internal per-capsule value automatically.

{/* Currency */} diff --git a/src/app/admin/subscriptions/hooks/useCoffeeManagement.ts b/src/app/admin/subscriptions/hooks/useCoffeeManagement.ts index 76127c2..1c7b2e6 100644 --- a/src/app/admin/subscriptions/hooks/useCoffeeManagement.ts +++ b/src/app/admin/subscriptions/hooks/useCoffeeManagement.ts @@ -1,5 +1,6 @@ import { useCallback } from 'react'; import useAuthStore from '../../../store/authStore'; +import { CAPSULES_PER_PACK } from '../../../coffee-abonnements/lib/orderRules'; export type CoffeeItem = { id: number; @@ -63,7 +64,7 @@ export default function useCoffeeManagement() { const text = await res.text(); try { return JSON.parse(text) as T; } catch { return {} as T; } }, - [base] + [base, getState] ); const listProducts = useCallback(async (): Promise => { @@ -72,7 +73,7 @@ export default function useCoffeeManagement() { return data.map((r: any) => ({ ...r, id: Number(r.id), - price: r.price != null && r.price !== '' ? Number(r.price) : 0, + price: r.price != null && r.price !== '' ? Number(r.price) * CAPSULES_PER_PACK : 0, interval_count: r.interval_count != null && r.interval_count !== '' ? Number(r.interval_count) : null, state: !!r.state, })) as CoffeeItem[]; @@ -91,7 +92,7 @@ export default function useCoffeeManagement() { const appendBaseFields = (fd: FormData) => { fd.append('title', payload.title); fd.append('description', payload.description); - fd.append('price', String(payload.price)); + fd.append('price', String(payload.price / CAPSULES_PER_PACK)); if (payload.currency) fd.append('currency', payload.currency); if (typeof payload.is_featured === 'boolean') fd.append('is_featured', String(payload.is_featured)); if (typeof payload.state === 'boolean') fd.append('state', String(payload.state)); @@ -140,7 +141,7 @@ export default function useCoffeeManagement() { const fd = new FormData(); if (payload.title !== undefined) fd.append('title', String(payload.title)); if (payload.description !== undefined) fd.append('description', String(payload.description)); - if (payload.price !== undefined) fd.append('price', String(payload.price)); + if (payload.price !== undefined) fd.append('price', String(payload.price / CAPSULES_PER_PACK)); if (payload.currency !== undefined) fd.append('currency', payload.currency); if (payload.is_featured !== undefined) fd.append('is_featured', String(payload.is_featured)); if (payload.state !== undefined) fd.append('state', String(payload.state));