Skip to content

Commit e280fe2

Browse files
authored
Merge pull request #30 from adobe-rnd/add-variant-attributes-description
fix: add support for variant attributes and description
2 parents 0d5533d + 6748bad commit e280fe2

File tree

4 files changed

+30
-3
lines changed

4 files changed

+30
-3
lines changed

src/content/queries/cs-product.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ export default ({ sku }) => gql`{
110110
url
111111
label
112112
}
113-
attributes(roles: []) {
113+
attributes(roles: ["visible_in_pdp"]) {
114114
name
115115
label
116116
value

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

+19-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,24 @@ ${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></div>
167+
</div>
168+
${v.attributes?.map((attribute) => `\
169+
<div>
170+
<div>attribute</div>
171+
<div>${attribute.name}</div>
172+
<div>${attribute.label}</div>
173+
<div>${attribute.value}</div>
174+
</div>`).join('\n')}`).join('\n')}
175+
</div>
159176
</main>
160177
<footer></footer>
161178
</body>

src/types.d.ts

+2
Original file line numberDiff line numberDiff line change
@@ -79,11 +79,13 @@ declare global {
7979
export interface Variant {
8080
sku: string;
8181
name: string;
82+
description?: string;
8283
url: string;
8384
inStock: boolean;
8485
images: Image[];
8586
prices: Pick<Prices, 'regular' | 'final'>;
8687
selections: string[];
88+
attributes: Attribute[];
8789
}
8890

8991
interface Image {

0 commit comments

Comments
 (0)