diff --git a/src/app.html b/src/app.html index 86d4867..46423ef 100644 --- a/src/app.html +++ b/src/app.html @@ -1,5 +1,5 @@ - + diff --git a/src/lib/components/PageMeta.svelte b/src/lib/components/PageMeta.svelte new file mode 100644 index 0000000..c5d96cd --- /dev/null +++ b/src/lib/components/PageMeta.svelte @@ -0,0 +1,9 @@ + + + + {title} + + diff --git a/src/lib/interfaces/ApiResponse.ts b/src/lib/interfaces/ApiResponse.ts index 76933c1..e32e071 100644 --- a/src/lib/interfaces/ApiResponse.ts +++ b/src/lib/interfaces/ApiResponse.ts @@ -1,4 +1,4 @@ -import type IProduct from './IProduct'; +import type { IProduct } from './IProduct'; import type { IOrder, IOrderSummary } from './IOrder'; export interface IProductResponse { @@ -17,11 +17,11 @@ export interface IOrderSummaryResponse { } export interface IProductResponse { - success: boolean - product: IProduct + success: boolean; + product: IProduct; } export interface IProductsResponse { - success: boolean - products: Array -} \ No newline at end of file + success: boolean; + products: Array; +} diff --git a/src/lib/interfaces/IProduct.ts b/src/lib/interfaces/IProduct.ts index 16e8245..d209ec6 100644 --- a/src/lib/interfaces/IProduct.ts +++ b/src/lib/interfaces/IProduct.ts @@ -5,17 +5,21 @@ export interface IProduct { description?: string; image: string; primary_color?: string; + + variation_count?: string; + sum_stock?: number; + updated?: Date; created?: Date; variations?: IVariation[]; } export interface IVariation { - sku_id: number; - price: number; - size: string; - stock: number; - default_price: boolean; - updated?: Date; - created?: Date; + sku_id: number; + price: number; + size: string; + stock: number; + default_price: boolean; + updated?: Date; + created?: Date; } diff --git a/src/lib/jsonld/product.ts b/src/lib/jsonld/product.ts index 6169d94..627766e 100644 --- a/src/lib/jsonld/product.ts +++ b/src/lib/jsonld/product.ts @@ -1,7 +1,7 @@ -import type { IProduct } from '../interfaces/IProduct' +import type { IProduct } from '../interfaces/IProduct'; function structureProduct(product: IProduct) { - const output = product?.variations?.map(variation => { + const output = product?.variations?.map((variation) => { return { '@context': 'https://schema.org/', '@type': 'Product', @@ -23,16 +23,15 @@ function structureProduct(product: IProduct) { itemCondition: 'https://schema.org/NewCondition', availability: 'https://schema.org/InStock' } - } - }) + }; + }); return JSON.stringify(output); } -export default function generateProductJsonLd(product: IProduct): HTMLElement { - const jsonldScript = document.createElement('script'); - jsonldScript.setAttribute('type', 'application/ld+json'); - jsonldScript.textContent = structureProduct(product); - - return jsonldScript; +export default function generateProductJsonLd(product: IProduct): string { + return ` +`; } diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index c70f208..0d56191 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -5,8 +5,8 @@ import Footer from './Footer.svelte'; import CartModal from './CartModal.svelte'; import { closeCart } from '$lib/cartStore'; - import requestSessionCookie from '$lib/utils/requestSessionCookie'; import { getCookie } from '$lib/utils/cookie'; + import requestSessionCookie from '$lib/utils/requestSessionCookie'; import { connectToCart, reconnectIfCartWSClosed } from '$lib/websocketCart'; import './styles.css'; diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index 1b4ac33..e8cd296 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -1,4 +1,5 @@ - - Home - - - +