@faststore/core 3.98.0-dev.0 → 3.98.0-dev.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +3 -3
  3. package/.next/cache/.tsbuildinfo +1 -1
  4. package/.next/cache/config.json +3 -3
  5. package/.next/cache/webpack/client-production/0.pack +0 -0
  6. package/.next/cache/webpack/client-production/index.pack +0 -0
  7. package/.next/cache/webpack/server-production/0.pack +0 -0
  8. package/.next/cache/webpack/server-production/index.pack +0 -0
  9. package/.next/prerender-manifest.js +1 -1
  10. package/.next/prerender-manifest.json +1 -1
  11. package/.next/routes-manifest.json +1 -1
  12. package/.next/server/chunks/3890.js +1 -1
  13. package/.next/server/chunks/9563.js +2 -2
  14. package/.next/server/functions-config-manifest.json +1 -1
  15. package/.next/server/middleware-build-manifest.js +1 -1
  16. package/.next/server/pages/[slug]/p.js +1 -1
  17. package/.next/server/pages/api/graphql.js +3 -3
  18. package/.next/server/pages/en-US/404.html +2 -2
  19. package/.next/server/pages/en-US/500.html +2 -2
  20. package/.next/server/pages/en-US/checkout.html +2 -2
  21. package/.next/server/pages/en-US/login.html +2 -2
  22. package/.next/server/pages/en-US/s.html +2 -2
  23. package/.next/server/pages/en-US.html +2 -2
  24. package/.next/server/pages-manifest.json +1 -1
  25. package/.next/static/{bRIIH80orCsnMQY0jzRSl → J4h39ytIYFua-E1SZRYO9}/_buildManifest.js +1 -1
  26. package/.next/static/chunks/pages/[slug]/{p-7ac98274c47b0ff4.js → p-0901bccd311c7775.js} +1 -1
  27. package/.next/trace +140 -140
  28. package/.turbo/turbo-build.log +9 -9
  29. package/.turbo/turbo-test.log +5 -5
  30. package/@generated/gql.ts +2 -2
  31. package/@generated/graphql.ts +4 -1
  32. package/@generated/persisted-documents.json +1 -1
  33. package/@generated/schema.graphql +2 -0
  34. package/CHANGELOG.md +10 -0
  35. package/package.json +7 -7
  36. package/src/pages/[slug]/p.tsx +2 -0
  37. /package/.next/static/{bRIIH80orCsnMQY0jzRSl → J4h39ytIYFua-E1SZRYO9}/_ssgManifest.js +0 -0
@@ -1,23 +1,23 @@
1
1
 
2
- > @faststore/core@3.97.1 prebuild /home/runner/work/faststore/faststore/packages/core
2
+ > @faststore/core@3.98.0-dev.1 prebuild /home/runner/work/faststore/faststore/packages/core
3
3
  > na run partytown && na run generate
4
4
 
5
5
 
6
- > @faststore/core@3.97.1 partytown /home/runner/work/faststore/faststore/packages/core
6
+ > @faststore/core@3.98.0-dev.1 partytown /home/runner/work/faststore/faststore/packages/core
7
7
  > partytown copylib ./public/~partytown
8
8
 
9
9
  Partytown lib copied to: /home/runner/work/faststore/faststore/packages/core/public/~partytown
10
10
 
11
- > @faststore/core@3.97.1 generate /home/runner/work/faststore/faststore/packages/core
11
+ > @faststore/core@3.98.0-dev.1 generate /home/runner/work/faststore/faststore/packages/core
12
12
  > na run generate:schema && na run generate:codegen && na run format:generated
13
13
 
14
14
 
15
- > @faststore/core@3.97.1 generate:schema /home/runner/work/faststore/faststore/packages/core
15
+ > @faststore/core@3.98.0-dev.1 generate:schema /home/runner/work/faststore/faststore/packages/core
16
16
  > tsx src/server/generator/generateGraphQLSchemaFile.ts
17
17
 
18
18
  Schema GraphQL file generated successfully
19
19
 
20
- > @faststore/core@3.97.1 generate:codegen /home/runner/work/faststore/faststore/packages/core
20
+ > @faststore/core@3.98.0-dev.1 generate:codegen /home/runner/work/faststore/faststore/packages/core
21
21
  > graphql-codegen
22
22
 
23
23
  [STARTED] Parse Configuration
@@ -37,11 +37,11 @@ Running lifecycle hook "afterStart" scripts...
37
37
  [CLI] Loading Documents
38
38
  [CLI] Generating output
39
39
 
40
- > @faststore/core@3.97.1 format:generated /home/runner/work/faststore/faststore/packages/core
40
+ > @faststore/core@3.98.0-dev.1 format:generated /home/runner/work/faststore/faststore/packages/core
41
41
  > prettier --write "@generated/**/*.{ts,js,tsx,jsx,json}" --loglevel error
42
42
 
43
43
 
44
- > @faststore/core@3.97.1 build /home/runner/work/faststore/faststore/packages/core
44
+ > @faststore/core@3.98.0-dev.1 build /home/runner/work/faststore/faststore/packages/core
45
45
  > next build
46
46
 
47
47
  ⚠ No build cache found. Please configure build caching for faster rebuilds. Read more: https://nextjs.org/docs/messages/no-cache
@@ -58,7 +58,7 @@ Browserslist: caniuse-lite is outdated. Please run:
58
58
  Creating an optimized production build ...
59
59
  Disabled SWC as replacement for Babel because of custom Babel configuration ".babelrc.js" https://nextjs.org/docs/messages/swc-disabled
60
60
  Using external babel configuration from /home/runner/work/faststore/faststore/packages/core/.babelrc.js
61
- Browserslist: browsers data (caniuse-lite) is 13 months old. Please run:
61
+ Browserslist: browsers data (caniuse-lite) is 14 months old. Please run:
62
62
  npx update-browserslist-db@latest
63
63
  Why you should do it regularly: https://github.com/browserslist/update-db#readme
64
64
  <w> [webpack.cache.PackFileCacheStrategy] Skipped not serializable cache item 'Compilation/modules|/home/runner/work/faststore/faststore/node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[7].oneOf[9].use[1]!/home/runner/work/faststore/faststore/node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[7].oneOf[9].use[2]!/home/runner/work/faststore/faststore/node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/build/webpack/loaders/resolve-url-loader/index.js??ruleSet[1].rules[7].oneOf[9].use[3]!/home/runner/work/faststore/faststore/node_modules/.pnpm/next@13.5.11_@babel+core@7.26.7_@opentelemetry+api@1.4.1_react-dom@18.3.1_react@18.3.1__react@18.3.1_sass@1.83.4/node_modules/next/dist/compiled/sass-loader/cjs.js??ruleSet[1].rules[7].oneOf[9].use[4]!/home/runner/work/faststore/faststore/packages/core/src/components/common/Toast/section.module.scss': No serializer registered for Warning
@@ -80,8 +80,8 @@ Import trace for requested module:
80
80
  Collecting page data ...
81
81
  Generating static pages (0/6) ...
82
82
 
83
83
  Generating static pages (1/6)
84
-
85
84
  Generating static pages (2/6)
86
85
  Warning: Dynamic Content not found for the page: home. Refer to the Dynamic Content documentation at https://developers.vtex.com/docs/guides/faststore/dynamic-content-overview for mapping the page and the corresponding data-fetching function.
86
+
87
87
  Generating static pages (2/6)
88
88
 
89
89
  Generating static pages (4/6)
90
90
 
91
91
  ✓ Generating static pages (6/6)
92
92
  Finalizing page optimization ...
@@ -1,16 +1,16 @@
1
1
 
2
- > @faststore/core@3.97.1 test /home/runner/work/faststore/faststore/packages/core
2
+ > @faststore/core@3.98.0-dev.1 test /home/runner/work/faststore/faststore/packages/core
3
3
  > jest
4
4
 
5
- PASS test/utils/multipleTemplates.test.ts (27.31 s)
6
- PASS test/utils/clearCookies.test.ts (27.321 s)
5
+ PASS test/utils/multipleTemplates.test.ts (28.012 s)
6
+ PASS test/utils/clearCookies.test.ts (27.964 s)
7
7
  PASS test/server/cms/global.test.ts
8
8
  PASS test/utils/cookieCacheBusting.test.ts
9
9
  PASS test/server/cms/index.test.ts
10
- PASS test/server/index.test.ts (31.637 s)
10
+ PASS test/server/index.test.ts (33.083 s)
11
11
 
12
12
  Test Suites: 6 passed, 6 total
13
13
  Tests: 47 passed, 47 total
14
14
  Snapshots: 0 total
15
- Time: 32.895 s
15
+ Time: 34.323 s
16
16
  Ran all test suites.
package/@generated/gql.ts CHANGED
@@ -42,7 +42,7 @@ const documents = {
42
42
  types.ServerAccountPageQueryDocument,
43
43
  '\n query ServerCollectionPageQuery($slug: String!) {\n ...ServerCollectionPage\n collection(slug: $slug) {\n seo {\n title\n description\n }\n breadcrumbList {\n itemListElement {\n item\n name\n position\n }\n }\n meta {\n selectedFacets {\n key\n value\n }\n }\n }\n }\n':
44
44
  types.ServerCollectionPageQueryDocument,
45
- '\n query ServerProductQuery($locator: [IStoreSelectedFacet!]!) {\n ...ServerProduct\n product(locator: $locator) {\n id: productID\n\n seo {\n title\n description\n canonical\n }\n\n brand {\n name\n }\n\n sku\n gtin\n name\n description\n releaseDate\n\n breadcrumbList {\n itemListElement {\n item\n name\n position\n }\n }\n\n image {\n url\n alternateName\n }\n\n offers {\n lowPrice\n highPrice\n lowPriceWithTaxes\n priceCurrency\n offers {\n availability\n price\n priceValidUntil\n priceCurrency\n itemCondition\n seller {\n identifier\n }\n }\n }\n\n isVariantOf {\n productGroupID\n }\n\n ...ProductDetailsFragment_product\n }\n }\n':
45
+ '\n query ServerProductQuery($locator: [IStoreSelectedFacet!]!) {\n ...ServerProduct\n product(locator: $locator) {\n id: productID\n\n seo {\n title\n description\n canonical\n }\n\n brand {\n name\n }\n\n sku\n gtin\n mpn\n name\n description\n releaseDate\n\n breadcrumbList {\n itemListElement {\n item\n name\n position\n }\n }\n\n image {\n url\n alternateName\n }\n\n offers {\n lowPrice\n highPrice\n lowPriceWithTaxes\n priceCurrency\n offers {\n availability\n price\n priceValidUntil\n priceCurrency\n itemCondition\n seller {\n identifier\n }\n }\n }\n\n isVariantOf {\n productGroupID\n }\n\n ...ProductDetailsFragment_product\n }\n }\n':
46
46
  types.ServerProductQueryDocument,
47
47
  '\n fragment UserOrderItemsFragment on UserOrderItems {\n id\n name\n quantity\n sellingPrice\n unitMultiplier\n measurementUnit\n imageUrl\n detailUrl\n refId\n rewardValue\n }\n':
48
48
  types.UserOrderItemsFragmentFragmentDoc,
@@ -188,7 +188,7 @@ export function gql(
188
188
  * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
189
189
  */
190
190
  export function gql(
191
- source: '\n query ServerProductQuery($locator: [IStoreSelectedFacet!]!) {\n ...ServerProduct\n product(locator: $locator) {\n id: productID\n\n seo {\n title\n description\n canonical\n }\n\n brand {\n name\n }\n\n sku\n gtin\n name\n description\n releaseDate\n\n breadcrumbList {\n itemListElement {\n item\n name\n position\n }\n }\n\n image {\n url\n alternateName\n }\n\n offers {\n lowPrice\n highPrice\n lowPriceWithTaxes\n priceCurrency\n offers {\n availability\n price\n priceValidUntil\n priceCurrency\n itemCondition\n seller {\n identifier\n }\n }\n }\n\n isVariantOf {\n productGroupID\n }\n\n ...ProductDetailsFragment_product\n }\n }\n'
191
+ source: '\n query ServerProductQuery($locator: [IStoreSelectedFacet!]!) {\n ...ServerProduct\n product(locator: $locator) {\n id: productID\n\n seo {\n title\n description\n canonical\n }\n\n brand {\n name\n }\n\n sku\n gtin\n mpn\n name\n description\n releaseDate\n\n breadcrumbList {\n itemListElement {\n item\n name\n position\n }\n }\n\n image {\n url\n alternateName\n }\n\n offers {\n lowPrice\n highPrice\n lowPriceWithTaxes\n priceCurrency\n offers {\n availability\n price\n priceValidUntil\n priceCurrency\n itemCondition\n seller {\n identifier\n }\n }\n }\n\n isVariantOf {\n productGroupID\n }\n\n ...ProductDetailsFragment_product\n }\n }\n'
192
192
  ): typeof import('./graphql').ServerProductQueryDocument
193
193
  /**
194
194
  * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
@@ -1438,6 +1438,8 @@ export type StoreProduct = {
1438
1438
  image: Array<StoreImage>
1439
1439
  /** Indicates product group related to this product. */
1440
1440
  isVariantOf: StoreProductGroup
1441
+ /** Manufacturer Part Number. Identifies the product to its manufacturer. */
1442
+ mpn: Scalars['String']['output']
1441
1443
  /** Product name. */
1442
1444
  name: Scalars['String']['output']
1443
1445
  /** Aggregate offer information. */
@@ -2723,6 +2725,7 @@ export type ServerProductQueryQuery = {
2723
2725
  product: {
2724
2726
  sku: string
2725
2727
  gtin: string
2728
+ mpn: string
2726
2729
  name: string
2727
2730
  description: string
2728
2731
  releaseDate: string
@@ -4371,7 +4374,7 @@ export const ServerCollectionPageQueryDocument = {
4371
4374
  export const ServerProductQueryDocument = {
4372
4375
  __meta__: {
4373
4376
  operationName: 'ServerProductQuery',
4374
- operationHash: 'e855903879c6504e90269e6e010549bc6de933eb',
4377
+ operationHash: 'b0491eb0c42122063e67e607b07d0c2df363e8ed',
4375
4378
  },
4376
4379
  } as unknown as TypedDocumentString<
4377
4380
  ServerProductQueryQuery,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "9baae331b75848a310fecb457e8c971ae27897ff": "query ServerAccountPageQuery { accountProfile { name } }",
3
3
  "4b33c5c07f440dc7489e55619dc2211a13786e72": "fragment ServerCollectionPage on Query { collection(slug: $slug) { id } } query ServerCollectionPageQuery($slug: String!) { collection(slug: $slug) { breadcrumbList { itemListElement { item name position } } meta { selectedFacets { key value } } seo { description title } } ...ServerCollectionPage }",
4
- "e855903879c6504e90269e6e010549bc6de933eb": "fragment CartProductItem on StoreProduct { additionalProperty { name propertyID value valueReference } brand { name } gtin image { alternateName url } isVariantOf { name productGroupID skuVariants { activeVariations availableVariations slugsMap } } name sku unitMultiplier } fragment ProductDetailsFragment_product on StoreProduct { additionalProperty { name propertyID value valueReference } brand { name } description gtin image { alternateName url } isVariantOf { name productGroupID skuVariants { activeVariations allVariantProducts { name productID } availableVariations slugsMap } } name offers { lowPrice lowPriceWithTaxes offers { availability listPrice listPriceWithTaxes price priceWithTaxes seller { identifier } } } id: productID sku unitMultiplier ...CartProductItem } fragment ServerProduct on Query { product(locator: $locator) { id: productID } } query ServerProductQuery($locator: [IStoreSelectedFacet!]!) { product(locator: $locator) { brand { name } breadcrumbList { itemListElement { item name position } } description gtin image { alternateName url } isVariantOf { productGroupID } name offers { highPrice lowPrice lowPriceWithTaxes offers { availability itemCondition price priceCurrency priceValidUntil seller { identifier } } priceCurrency } id: productID releaseDate seo { canonical description title } sku ...ProductDetailsFragment_product } ...ServerProduct }",
4
+ "b0491eb0c42122063e67e607b07d0c2df363e8ed": "fragment CartProductItem on StoreProduct { additionalProperty { name propertyID value valueReference } brand { name } gtin image { alternateName url } isVariantOf { name productGroupID skuVariants { activeVariations availableVariations slugsMap } } name sku unitMultiplier } fragment ProductDetailsFragment_product on StoreProduct { additionalProperty { name propertyID value valueReference } brand { name } description gtin image { alternateName url } isVariantOf { name productGroupID skuVariants { activeVariations allVariantProducts { name productID } availableVariations slugsMap } } name offers { lowPrice lowPriceWithTaxes offers { availability listPrice listPriceWithTaxes price priceWithTaxes seller { identifier } } } id: productID sku unitMultiplier ...CartProductItem } fragment ServerProduct on Query { product(locator: $locator) { id: productID } } query ServerProductQuery($locator: [IStoreSelectedFacet!]!) { product(locator: $locator) { brand { name } breadcrumbList { itemListElement { item name position } } description gtin image { alternateName url } isVariantOf { productGroupID } mpn name offers { highPrice lowPrice lowPriceWithTaxes offers { availability itemCondition price priceCurrency priceValidUntil seller { identifier } } priceCurrency } id: productID releaseDate seo { canonical description title } sku ...ProductDetailsFragment_product } ...ServerProduct }",
5
5
  "bdf677bbccce12186a5ef15aebdce46585a99782": "query ServerOrderDetailsQuery($orderId: String!) { accountProfile { name } userOrder(orderId: $orderId) { allowCancellation budgetData { budgets { allocations { id linkedEntity { id } reservations } balance { remaining } id name } } canProcessOrderAuthorization clientProfileData { corporateName email firstName isCorporate lastName phone } creationDate customFields { fields { name refId value } id type } deliveryOptionsData { contact { email name phone } deliveryOptions { address { addressId addressType city complement country entityId geoCoordinates neighborhood number postalCode receiverName reference state street versionId } deliveryChannel deliveryCompany deliveryWindow { endDateUtc price startDateUtc } friendlyDeliveryOptionName friendlyShippingEstimate items { id imageUrl name price quantity sellingPrice tax taxPriceTagsTotal total uniqueId } pickupStoreInfo { additionalInfo address { addressId addressType city complement country entityId geoCoordinates neighborhood number postalCode receiverName reference state street versionId } dockId friendlyName isPickupStore } quantityOfDifferentItems selectedSla seller shippingEstimate shippingEstimateDate total } } orderId paymentData { transactions { isActive payments { bankIssuedInvoiceIdentificationNumber connectorResponses { authId } group id installments lastDigits paymentOrigin paymentSystemName redemptionCode referenceValue tid url value } } } ruleForAuthorization { dimensionId orderAuthorizationId rule { authorizationData { authorizers { authorizationDate email id type } requireAllApprovals } authorizedEmails doId id isUserAuthorized isUserNextAuthorizer name notification priority scoreInterval { accept deny } status timeout trigger { condition { conditionType description expression greatherThan lessThan } effect { description effectType funcPath } } } } shopper { email firstName lastName phone } status statusDescription storePreferencesData { currencyCode } totals { id name value } } }",
6
6
  "70d06de1da9c11f10ebde31b66fd74eccd456af5": "query ServerListOrdersQuery($clientEmail: String, $dateFinal: String, $dateInitial: String, $page: Int, $pendingMyApproval: Boolean, $perPage: Int, $status: [String], $text: String) { accountProfile { name } listUserOrders( page: $page perPage: $perPage status: $status dateInitial: $dateInitial dateFinal: $dateFinal text: $text clientEmail: $clientEmail pendingMyApproval: $pendingMyApproval ) { list { ShippingEstimatedDate clientName creationDate currencyCode customFields { type value } items { description ean id price productId quantity refId seller sellingPrice } orderId status statusDescription totalValue } paging { currentPage pages perPage total } } }",
7
7
  "672fe0f00b7b710b63fc6573c0a6b2ec54812b8f": "query ServerProfileQuery { accountProfile { email id name } }",
@@ -686,6 +686,8 @@ type StoreProduct {
686
686
  sku: String!
687
687
  """Global Trade Item Number."""
688
688
  gtin: String!
689
+ """Manufacturer Part Number. Identifies the product to its manufacturer."""
690
+ mpn: String!
689
691
  """Array with review information."""
690
692
  review: [StoreReview!]!
691
693
  """Aggregate ratings data."""
package/CHANGELOG.md CHANGED
@@ -3,6 +3,16 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [3.98.0-dev.2](https://github.com/vtex/faststore/compare/v3.98.0-dev.1...v3.98.0-dev.2) (2026-03-03)
7
+
8
+ ### Features
9
+
10
+ - add mpn (manufacturer code) to product's structured data ([#3234](https://github.com/vtex/faststore/issues/3234)) ([9597e39](https://github.com/vtex/faststore/commit/9597e39a8d63a651b815f90fe3b1ea5409258ca3))
11
+
12
+ # 3.98.0-dev.1 (2026-02-24)
13
+
14
+ **Note:** Version bump only for package @faststore/core
15
+
6
16
  # [3.98.0-dev.0](https://github.com/vtex/faststore/compare/v3.97.0-dev.6...v3.98.0-dev.0) (2026-02-24)
7
17
 
8
18
  ### Features
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@faststore/core",
3
- "version": "3.98.0-dev.0",
3
+ "version": "3.98.0-dev.2",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -51,11 +51,11 @@
51
51
  "@envelop/graphql-jit": "^8.0.3",
52
52
  "@envelop/parser-cache": "^6.0.2",
53
53
  "@envelop/validation-cache": "^6.0.2",
54
- "@faststore/api": "3.98.0-dev.0",
55
- "@faststore/graphql-utils": "^3.98.0-dev.0",
56
- "@faststore/lighthouse": "3.98.0-dev.0",
57
- "@faststore/sdk": "3.98.0-dev.0",
58
- "@faststore/ui": "3.98.0-dev.0",
54
+ "@faststore/api": "3.98.0-dev.2",
55
+ "@faststore/graphql-utils": "^3.98.0-dev.1",
56
+ "@faststore/lighthouse": "3.98.0-dev.1",
57
+ "@faststore/sdk": "3.98.0-dev.1",
58
+ "@faststore/ui": "3.98.0-dev.1",
59
59
  "@graphql-codegen/cli": "5.0.2",
60
60
  "@graphql-codegen/client-preset": "4.2.6",
61
61
  "@graphql-codegen/typescript": "4.0.7",
@@ -123,5 +123,5 @@
123
123
  "ts-jest": "29.1.1",
124
124
  "typescript": "5.3.2"
125
125
  },
126
- "gitHead": "489781e3714743d7bede2ba23cf243fd1e5d81e4"
126
+ "gitHead": "9438b20a0e937561672271b92b69a5c2b20a8cb1"
127
127
  }
@@ -208,6 +208,7 @@ function Page({
208
208
  brand={product.brand.name}
209
209
  sku={product.sku}
210
210
  gtin={product.gtin}
211
+ mpn={product.mpn}
211
212
  releaseDate={product.releaseDate}
212
213
  images={product.image.map((img) => img.url)} // Somehow, Google does not understand this valid Schema.org schema, so we need to do conversions
213
214
  offers={offers}
@@ -256,6 +257,7 @@ const query = gql(`
256
257
 
257
258
  sku
258
259
  gtin
260
+ mpn
259
261
  name
260
262
  description
261
263
  releaseDate