diff --git a/lib/v2/arcteryx/new-arrivals.js b/lib/v2/arcteryx/new-arrivals.js index 5ff99117d..709bbe526 100644 --- a/lib/v2/arcteryx/new-arrivals.js +++ b/lib/v2/arcteryx/new-arrivals.js @@ -1,21 +1,8 @@ const got = require('@/utils/got'); const { art } = require('@/utils/render'); const path = require('path'); +const { generateRssData } = require('./utils'); -const attributeSet = new Set(['name', 'image', 'short_description', 'slug']); -function generateRssData(item, index, arr) { - const attributes = item.attribute; - const data = {}; - - attributes.forEach((attribute) => { - const key = attribute.name; - const value = attribute.value[0].value; - if (attributeSet.has(key)) { - data[key] = value; - } - }); - arr[index] = data; -} module.exports = async (ctx) => { const { country, gender } = ctx.params; const host = `https://arcteryx.com/${country}/en/`; @@ -32,7 +19,9 @@ module.exports = async (ctx) => { }, }); const items = response.data.universes.universe[1]['items-section'].items.item; - items.forEach(generateRssData); + items.forEach((item, index, arr) => { + generateRssData(item, index, arr, country); + }); ctx.state.data = { title: `Arcteryx - New Arrivals(${country.toUpperCase()}) - ${gender.toUpperCase()}`, diff --git a/lib/v2/arcteryx/outlet.js b/lib/v2/arcteryx/outlet.js index 8980963c4..ac67628d0 100644 --- a/lib/v2/arcteryx/outlet.js +++ b/lib/v2/arcteryx/outlet.js @@ -1,21 +1,8 @@ const got = require('@/utils/got'); const { art } = require('@/utils/render'); const path = require('path'); +const { generateRssData } = require('./utils'); -const attributeSet = new Set(['name', 'image', 'short_description', 'slug']); -function generateRssData(item, index, arr) { - const attributes = item.attribute; - const data = {}; - - attributes.forEach((attribute) => { - const key = attribute.name; - const value = attribute.value[0].value; - if (attributeSet.has(key)) { - data[key] = value; - } - }); - arr[index] = data; -} module.exports = async (ctx) => { const { country, gender } = ctx.params; const host = `https://outlet.arcteryx.com/${country}/en/`; @@ -34,7 +21,9 @@ module.exports = async (ctx) => { }, }); const items = response.data.universes.universe[1]['items-section'].items.item; - items.forEach(generateRssData); + items.forEach((item, index, arr) => { + generateRssData(item, index, arr, country); + }); ctx.state.data = { title: `Arcteryx - Outlet(${country.toUpperCase()}) - ${gender.toUpperCase()}`, diff --git a/lib/v2/arcteryx/templates/product-description.art b/lib/v2/arcteryx/templates/product-description.art index 1f7d0e26d..a00005c73 100644 --- a/lib/v2/arcteryx/templates/product-description.art +++ b/lib/v2/arcteryx/templates/product-description.art @@ -1,6 +1,12 @@
+ {{if item.short_description}} + {{item.short_description}}
+ {{/if}} + {{if item.original_price}} + Original Price: {{item.original_price}}
+ {{/if}} + {{if item.price}} + Current Price: {{item.price}}
+ {{/if}} -

- {{item.short_description}} -

diff --git a/lib/v2/arcteryx/utils.js b/lib/v2/arcteryx/utils.js new file mode 100644 index 000000000..9d5de6882 --- /dev/null +++ b/lib/v2/arcteryx/utils.js @@ -0,0 +1,23 @@ +function generateRssData(item, index, arr, country) { + const attributeSet = new Set(['name', 'image', 'short_description', 'slug', `price_${country}`, `discount_price_${country}`]); + const attributes = item.attribute; + const data = {}; + + attributes.forEach((attribute) => { + const key = attribute.name; + const value = attribute.value[0].value; + if (attributeSet.has(key)) { + if (key === `price_${country}`) { + data.original_price = value; + } else if (key === `discount_price_${country}`) { + data.price = value; + } else { + data[key] = value; + } + } + }); + arr[index] = data; +} +module.exports = { + generateRssData, +};