diff --git a/src/components/PlansSection.tsx b/src/components/PlansSection.tsx index c7d9967..d2d1b9b 100644 --- a/src/components/PlansSection.tsx +++ b/src/components/PlansSection.tsx @@ -54,11 +54,27 @@ const PlansSection = () => { return; } + const sellingPlanId = + shopifyProduct.node.sellingPlanGroups?.edges?.[0]?.node?.sellingPlans?.edges?.[0]?.node?.id; + + if (!sellingPlanId) { + toast.error( + "Ingen abonnemangsplan hittades i Shopify. Kontrollera att Appstle-planen är kopplad till produkten." + ); + return; + } + setLoadingMethod(method); try { const data = await storefrontApiRequest(CART_CREATE_MUTATION, { input: { - lines: [{ quantity: 1, merchandiseId: variant.id }], + lines: [ + { + quantity: 1, + merchandiseId: variant.id, + sellingPlanId, + }, + ], attributes: [ { key: "Antal anställda", value: String(employees) }, { key: "Rekommenderad mängd", value: `${recommendedKg} kg/vecka` }, diff --git a/src/lib/shopify.ts b/src/lib/shopify.ts index 9bc0a98..dc63915 100644 --- a/src/lib/shopify.ts +++ b/src/lib/shopify.ts @@ -43,6 +43,21 @@ export interface ShopifyProduct { }; }>; }; + sellingPlanGroups?: { + edges: Array<{ + node: { + name: string; + sellingPlans: { + edges: Array<{ + node: { + id: string; + name: string; + }; + }>; + }; + }; + }>; + }; options: Array<{ name: string; values: string[]; @@ -125,6 +140,21 @@ export const STOREFRONT_PRODUCTS_QUERY = ` } } } + sellingPlanGroups(first: 5) { + edges { + node { + name + sellingPlans(first: 10) { + edges { + node { + id + name + } + } + } + } + } + } options { name values