products->getById($id); abort_if($product === null, Response::HTTP_NOT_FOUND); $collection = $product['collections'][0] ?? null; $collectionModel = $collection !== null ? Collection::find($collection) : null; $variantsData = collect($product['variants']) ->map(fn (array $variant) => [ 'id' => $variant['id'], 'price' => $variant['prices'][0]['price'] ?? null, 'image' => $variant['media'][0]['url'] ?? null, ]) ->values() ->all(); $firstVariant = $product['variants'][0] ?? null; $option = $firstVariant['options'][0]['option'] ?? null; // temp categories here $categories = Collection::orderBy('_lft')->get(); return view('product.show', [ 'categories' => $categories, 'collection' => $collectionModel, 'product' => $product, 'option' => $option, 'variantsData' => $variantsData, ]); } }