Skip to content

Commit 682da6e

Browse files
committed
fix: add support for variant attributes and description
1 parent 1b6598f commit 682da6e

File tree

3 files changed

+28
-2
lines changed

3 files changed

+28
-2
lines changed

src/content/queries/cs-variants.js

+8
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,11 @@ export const adapter = (variants) => variants.map(({ selections, product }) => {
2424
const variant = {
2525
name: product.name,
2626
sku: product.sku,
27+
description: product.description,
2728
url: product.url,
2829
inStock: product.inStock,
2930
images: product.images ?? [],
31+
attributes: product.attributes ?? [],
3032
prices: {
3133
regular: {
3234
// TODO: determine whether to use min or max
@@ -66,6 +68,12 @@ export default (sku) => gql`
6668
label
6769
}
6870
... on SimpleProductView {
71+
description
72+
attributes(roles: ["visible_in_pdp"]) {
73+
name
74+
label
75+
value
76+
}
6977
price {
7078
regular {
7179
amount {

src/templates/html.js

+18-2
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,7 @@ ${variants?.map((v) => `\
141141
<div>
142142
<div>${v.sku}</div>
143143
<div>${v.name}</div>
144+
<div>${v.description}</div>
144145
<div>${v.inStock ? 'inStock' : ''}</div>
145146
<div>Regular: ${v.prices?.regular?.amount} ${v.prices?.regular?.currency}${priceRange(v.prices?.regular?.minimumAmount, v.prices?.regular?.maximumAmount)}</div>
146147
<div>Final: ${v.prices?.final?.amount} ${v.prices?.final?.currency}${priceRange(v.prices?.final?.minimumAmount, v.prices?.final?.maximumAmount)}</div>
@@ -154,8 +155,23 @@ ${v.images?.map((img) => `\
154155
</picture>`).join('\n')}
155156
</div>
156157
<div>${v.selections?.join(', ')}</div>
157-
</div>`).join('\n')}
158-
</div>
158+
</div>`).join('\n')};
159+
</div>
160+
<div class="variant-attributes">
161+
${variants?.map((v) => `\
162+
<div>
163+
<div>sku</div>
164+
<div>${v.sku}</div>
165+
<div></div>
166+
</div>
167+
${v.attributes?.map((attribute) => `\
168+
<div>
169+
<div>attribute</div>
170+
<div>${attribute.name}</div>
171+
<div>${attribute.label}</div>
172+
<div>${attribute.value}</div>
173+
</div>`).join('\n')}`).join('\n')}
174+
</div>
159175
</main>
160176
<footer></footer>
161177
</body>

src/types.d.ts

+2
Original file line numberDiff line numberDiff line change
@@ -85,11 +85,13 @@ declare global {
8585
export interface Variant {
8686
sku: string;
8787
name: string;
88+
description?: string;
8889
url: string;
8990
inStock: boolean;
9091
images: Image[];
9192
prices: Pick<Prices, 'regular' | 'final'>;
9293
selections: string[];
94+
attributes: Attribute[];
9395
}
9496

9597
interface Image {

0 commit comments

Comments
 (0)