@graphcommerce/docs 9.0.0-canary.113 → 9.0.0-canary.115

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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # Change Log
2
2
 
3
+ ## 9.0.0-canary.115
4
+
5
+ ## 9.0.0-canary.114
6
+
7
+ ### Patch Changes
8
+
9
+ - [#2450](https://github.com/graphcommerce-org/graphcommerce/pull/2450) [`b116d0f`](https://github.com/graphcommerce-org/graphcommerce/commit/b116d0f714d37a4db30b19812ce5a9d2a6372d42) - Added documentation about the Canonical URL and Sitemap handling ([@paales](https://github.com/paales))
10
+
3
11
  ## 9.0.0-canary.113
4
12
 
5
13
  ## 9.0.0-canary.112
package/framework/seo.md CHANGED
@@ -4,6 +4,30 @@ menu: SEO
4
4
 
5
5
  # SEO
6
6
 
7
+ We optimize for Search engines by default by integrating a few key features:
8
+
9
+ ## Canonical URL
10
+
11
+ We provde a
12
+ [canonicalize / useCanonical](https://github.com/graphcommerce-org/graphcommerce/blob/canary/packages/next-ui/PageMeta/canonicalize.ts)
13
+ function that can be used to generate canonical URLs based on the current router
14
+ and further configuration. This functionaliy is used by the PageMeta component
15
+ as well as robots.txt and sitemap generation.
16
+
17
+ It considers the current locale, the domain.
18
+
19
+ ## JsonLd
20
+
21
+ We integrated [JSON-LD](https://json-ld.org/) for pages.
22
+
23
+ A
24
+ [`<JsonLd>`](https://github.com/graphcommerce-org/graphcommerce/blob/main/packages/next-ui/JsonLd/JsonLd.tsx)
25
+ component provides Json-LD metadata for your pages. See
26
+ [<ProductPageJsonLd>](https://github.com/graphcommerce-org/graphcommerce/blob/main/packages/magento-product/components/JsonLdProduct/ProductPageJsonLd.tsx)
27
+ or
28
+ [`<BreadcrumbJsonLd>`](https://github.com/graphcommerce-org/graphcommerce/blob/main/packages/next-ui/BreadcrumbJsonLd/BreadcrumbJsonLd.tsx)
29
+ for examples.
30
+
7
31
  ## Page Meta data
8
32
 
9
33
  Page meta data is handled by the
@@ -13,7 +37,6 @@ are hardcoded).
13
37
 
14
38
  ```tsx
15
39
  // Example from /cart.tsx
16
-
17
40
  <PageMeta
18
41
  title={t`Cart (${data?.cart?.total_quantity ?? 0})`}
19
42
  metaDescription={t`Cart Items`}
@@ -26,7 +49,6 @@ Dynamic example
26
49
 
27
50
  ```tsx
28
51
  // Example from /product/[url].tsx
29
-
30
52
  <PageMeta
31
53
  title={page?.metaTitle ?? title ?? ''}
32
54
  metaDescription={page?.metaDescription ?? ''}
@@ -35,7 +57,13 @@ Dynamic example
35
57
  />
36
58
  ```
37
59
 
38
- ## Robots.txt & XML sitemaps
60
+ ## Robots.txt
61
+
62
+ Robots.txt and the sitemap files are generated on the fly and do not rely on any
63
+ static generation.
64
+
65
+ Robots.txt is generated during runtime so that a separate robots.txt can be
66
+ served for each domain that is configured.
39
67
 
40
68
  GraphCommerce serves robots.txt & XML sitemap routes through the page router.
41
69
  (`pages/robots.txt.tsx` & `pages/sitemap/`)
@@ -46,7 +74,31 @@ separate sitemap for product, category & content pages.
46
74
  ### Multi domain setup
47
75
 
48
76
  When using a multi domain setup (e.g. https://mydomain.nl &
49
- https://mydomain.com) using the
77
+ https://mydomain.com) configure the
78
+ [`domain` configuration](./config.md#domain-string) in the storefront config.
79
+
80
+ ```js
81
+ /** @type {import('@graphcommerce/next-config/src/generated/config').GraphCommerceConfig} */
82
+ const config = {
83
+ // ...
84
+ storefront: [
85
+ {
86
+ locale: 'en',
87
+ magentoStoreCode: 'en_US',
88
+ defaultLocale: true,
89
+ domain: 'https://mydomain.com',
90
+ },
91
+ {
92
+ locale: 'nl',
93
+ magentoStoreCode: 'nl_NL',
94
+ defaultLocale: true,
95
+ domain: 'https://mydomain.nl',
96
+ },
97
+ // ...
98
+ ],
99
+ }
100
+ ```
101
+
50
102
  [`canonicalBaseUrl` configuration](./config.md#canonicalbaseurl-string), the
51
103
  robots.txt will only include sitemaps specific to that domain.
52
104
 
@@ -54,9 +106,20 @@ robots.txt will only include sitemaps specific to that domain.
54
106
 
55
107
  When using a multi locale based setup (e.g.
56
108
  https://graphcommerce.vercel.app/en-gb), the robots.txt will include sitemaps
57
- for all locales on the global domain. Example:
109
+ for all locales the configured domain. Example:
58
110
  [robots.txt](https://graphcommerce.vercel.app/robots.txt)
59
111
 
112
+ ## Sitemaps
113
+
114
+ GraphCommerce generates sitemaps per locale for
115
+ [sitemap/product.xml](https://github.com/graphcommerce-org/graphcommerce/blob/canary/examples/magento-graphcms/pages/sitemap/product.xml.tsx),
116
+ [sitemap/category.xml](https://github.com/graphcommerce-org/graphcommerce/blob/canary/examples/magento-graphcms/pages/sitemap/category.xml.tsx)
117
+ and
118
+ [sitemap/content.xml](https://github.com/graphcommerce-org/graphcommerce/blob/canary/examples/magento-graphcms/pages/sitemap/content.xml.tsx).
119
+
120
+ Limitations: We currently do not support hreflang in sitemaps since there is no
121
+ Magento GraphQL API to get the hreflang for a page.
122
+
60
123
  ## Next steps
61
124
 
62
125
  - Learn about [Static Generation (SSG)](../framework/static-generation.md) in
package/package.json CHANGED
@@ -2,10 +2,10 @@
2
2
  "name": "@graphcommerce/docs",
3
3
  "homepage": "https://www.graphcommerce.org/docs",
4
4
  "repository": "github:graphcommerce-org/graphcommerce/docs",
5
- "version": "9.0.0-canary.113",
5
+ "version": "9.0.0-canary.115",
6
6
  "sideEffects": true,
7
7
  "peerDependencies": {
8
- "@graphcommerce/prettier-config-pwa": "^9.0.0-canary.113"
8
+ "@graphcommerce/prettier-config-pwa": "^9.0.0-canary.115"
9
9
  },
10
10
  "prettier": "@graphcommerce/prettier-config-pwa"
11
11
  }
package/roadmap.md CHANGED
@@ -11,96 +11,74 @@ roadmap.
11
11
 
12
12
  [Upcoming in the next release](https://github.com/graphcommerce-org/graphcommerce/releases?q=prerelease%3Atrue&expanded=true)
13
13
 
14
- - [ ] Product page gallery improvements: Grid of images, animated thumbnails,
15
- Video support + disable zoom feature.
16
- - [ ] Create a generic CMS integration framework, removing the hard Hygraph
17
- requirement
18
- - [ ] Web Migration to next/image in favor of @graphcommerce/image
19
- - [ ] Improved cache invalidation logic for category and product pages by using
20
- the Varnish PURGE functionality of Magento.
21
- - [ ] Support for very large carts with 100+ items.
22
- - [ ] Abstractions for integration with multiple catalog/search API's like
23
- Algolia, Magento Live Search and various layered navigation modules.
14
+ - [ ] GraphCommerce Pro: Distribution of private npm packages for customers.
15
+ - [ ] GraphCommerce Pro: Distribution of private Magento modules for customers.
16
+ - [ ] Adobe Commerce: Returns functionality
17
+ - [ ] Adobe Commerce: Store credit functionality
18
+ - [ ] Adobe Commerce: Content staging functionality in preview mode.
19
+ - [ ] Storelocator UI. Generic Store Locator UI to allow for any datasource to
20
+ be used. Integrate with Magento's pickupLocations functionality.
21
+ - [ ] Store inventory on product pages UI and Magento's pickupLocations
22
+ functionality integrated.
23
+ - [ ] GraphCommerce B2B: Create multiple presets to demo the range of
24
+ configurations that can be made to get a good starting point for your
25
+ project.
26
+ - [ ] Material UI 6 support with CSS variables.
27
+ - [ ] GraphCommerce Pro: Login as Customer functionality Magento module +
28
+ GraphCommerce integration.
29
+ - [ ] GraphCommerce Pro: Cache Notifier module + GraphCommerce Integration to
30
+ revalidate the frontend on backend changes.
24
31
 
25
- ## Considering / researching
32
+ ## Researching / Considering
26
33
 
27
- - [ ] Adobe Sensei integration
28
- - [ ] Gallery support on category/search pages.
29
- - [ ] Authorize.net payment service integration
30
- - [ ] Web Vitals: Use CSS theme variables or wait for MUI v6 release with static
31
- extraction.
32
- - [ ] React Server Components integration with streaming for faster loads.
33
- - [ ] Windows support
34
- - [ ] Store locator
35
- - [ ] PageBuilder support
34
+ - [ ] Mui 6 support with [pigment-css](https://github.com/mui/pigment-css)
35
+ - [ ] Upgrade to React 19 + Next.js app router support.
36
+
37
+ - [ ] GraphCommerce Pro: Pagebuilder support
36
38
  [depends on ↗](https://github.com/magento/magento2/issues/37768)
39
+ - [ ] Adobe Commerce: Reward points functionality
40
+ - [ ] Adobe Commerce: Gift wrapping functionality
41
+ - [ ] Adobe Commerce: Gift card functionality
42
+ - [ ] Adobe Commerce: Gift registry functionality
43
+ - [ ] Adobe Commerce: Multi Wishlist functionality
44
+ - [ ] Adobe Comemrce: Adobe Sensei integration
45
+ - [ ] Magento 2.4.7: Recaptcha configuration
46
+ - [ ] Magento 2.4.7: Estimate shipping methods and totals.
47
+ - [ ] Magento 2.4.7: Cart display settings
48
+ - [ ] Magento 2.4.7: Prefix, middlename and suffix support in the checkout.
49
+ - [ ] Magento: Producs New label based on the new_from_date and new_to_date
50
+ fields.
51
+ - [ ] Magento: Respect autocomplete_on_storefront configuration setting when
52
+ logging in.
53
+ - [ ] Magento 2.4.7: Implement attributesForm for customer_account_edit,
54
+ customer_account_create, customer_register_address, customer_address_edit
55
+ - [ ] Magento 2.4.7: sendEmailToFriend implementation
56
+ - [ ] Magento 2.4.7: Implement a new success page on the the new
57
+ guestOrderByToken
58
+ - [ ] Magento: Implement fixed_product_taxes
59
+ - [ ] Magento 2.4.7: Use category_url_path to load product listings on category
60
+ pages to reduce loading waterwall.
61
+ - [ ] Magento 2.4.7: Implement itemsV2 on the cart when adding a product to show
62
+ the AddToCartMessage without loading the complete cart.
63
+ - [ ] Magento 2.4.7: Migrate to createGuestCartId instead of createCart.
64
+ - [ ] GraphCommerce B2B: Login for pricing
65
+ - [ ] GraphCommerce B2B: Login for catalog
66
+ - [ ] GraphCommerce B2B: Private pricing, private products and private category
67
+ support for logged in customers.
68
+ - [ ] GraphCommerce B2B: Generic UI for creating B2B accounts, creating
69
+ sub-accounts, managing budgets, etc. (Schema definition, no integration)
70
+ - [ ] GraphCommerce B2B: Account approval workflow (Schema definition, no
71
+ integration)
72
+ - [ ] GraphCommerce Pro: Shop in shop functionality
73
+ - [ ] GraphCommerce POS: Create a light POS integration for GraphCommerce
37
74
 
38
75
  ## Released
39
76
 
40
- [See all releases](https://github.com/graphcommerce-org/graphcommerce/releases?q=prerelease%3Afalse+&expanded=true)
41
-
42
- - [x] Web Vitals: Reduce Total Blocking Time, to improve INP metic.
43
- - [x] Web Vitals: Defer rendering of elements further on the page, to improve
44
- INP metic.
45
- - [x] Magento Open Source GraphQL API Coverage with detailed GraphQL analysis
46
- per version.
47
- - [x] Plugin system redesign so typescript correctly identifies plugins and can
48
- type check all the integrations.
49
- - [x] Google Datalayer improvements to better handling gtag.js or GTM
50
- - [x] Improved category navigation: Navigate to sibling categories + Category
51
- tree navigation in sidebar.
52
- - [x] i18n configuration separation from URL structure.
53
- - [x] Customer specific pricing support for category and product pages.
54
-
55
- ---
56
-
57
- - [x] Product page gallery improvements: Thumbnails
58
- - [x] Major improvements to Accessibility
59
- [issue ↗](https://github.com/graphcommerce-org/graphcommerce/issues/1995)
60
- - [x] Show Crosssells in the cart
61
- - [x] Support for Github Codespaces
62
- - [x] Faster loading performance for the category page
63
- - [x] Recently viewed products
64
- - [x] Global store messages
65
- - [x] Invalid session handling improvements
66
- - [x] Product thumbnails on product page
67
- - [x] Wishlist redesign
68
- - [x] Success page redesign
69
- - [x] Dutch Postcode API upgrades
70
- - [x] Configurable variants for simple products
71
- [ocs ↗](https://graphcommerce.org/docs/magento/configurable-products)
72
- - [x] Cart redesign
73
- - [x] Hygraph schema migrations
74
- [docs ↗](https://graphcommerce.org/docs/hygraph/cli)
75
- - [x] [Algolia Search (beta)](https://github.com/graphcommerce-org/graphcommerce/tree/main/packages/algolia-search)
76
- - [x] [Dynamic Rows](https://github.com/graphcommerce-org/graphcommerce/tree/main/packages/hygraph-dynamic-rows)
77
- - [x] [Product compare](https://github.com/graphcommerce-org/graphcommerce/blob/main/packages/magento-compare/Config.graphqls)
78
- - [x] Google Tagmanager 4 datalayer implementation
79
- [docs ↗](https://github.com/graphcommerce-org/graphcommerce/tree/main/packages/googleanalytics)
80
- - [x] Paypal Express payment service
81
- [docs ↗](https://github.com/graphcommerce-org/graphcommerce/tree/main/packages/magento-payment-paypal)
82
- - [x] Adyen payment service
83
- [docs ↗](https://github.com/graphcommerce-org/graphcommerce/tree/main/packages/magento-payment-adyen)
84
- - [x] Postcode check integration
85
- [docs ↗](https://github.com/graphcommerce-org/graphcommerce/tree/main/packages/address-fields-nl)
86
- - [x] Redesigned layered navigation for mobile and desktop
87
- - [x] Crosssells overlay after adding a product to cart
88
- - [x] Bundle product
89
- [example ↗](https://graphcommerce.vercel.app/nl/p/giftcard-bundle-gc-570)
90
- - [x] Configurable product image swatches
91
- [example ↗](https://graphcommerce.vercel.app/nl/p/gc-puncturing-sock)
92
- - [x] Virtual product, downloadable products
93
- - [x] Multilingual Hygraph (Hygraph) setup support
94
- - [x] Multisafepay payment service
95
- - [x] Multilingual product sitemap generation
96
- - [x] Multi level Navigation (Mega Menu)
97
- - [x] Pick up in store checkout integration
98
- - [x] Checkout shipping method selection rebuild
99
- - [x] Checkout payment selection rebuild
100
- - [x] Core stability (hydratation, caching, query optimization)
77
+ - [See GitHub releases](https://github.com/graphcommerce-org/graphcommerce/releases?q=prerelease%3Afalse+&expanded=true)
78
+ - [See blog posts](https://graphcommerce.org/blog)
101
79
 
102
80
  ## Next steps
103
81
 
104
82
  - Refer to the
105
- [Changelog](https://github.com/graphcommerce-org/graphcommerce/releases) to
106
- see what's new
83
+ [GitHub Releases](https://github.com/graphcommerce-org/graphcommerce/releases?q=prerelease%3Afalse&expanded=true)
84
+ to see what's new