From b5150d74ab5fc4b8f5f9aeffee2d5cb6134b190d Mon Sep 17 00:00:00 2001 From: julitafalcondusza Date: Mon, 29 Jul 2024 14:41:38 +0200 Subject: [PATCH 01/10] Fixes: new cards, mkdocs updated --- docs/cdp/cdp_guide.md | 2 +- docs/content_management/content_management.md | 1 + docs/ibexa_products/editions.md | 40 +++++++++++++++++-- docs/ibexa_products/headless.md | 2 +- docs/personalization/personalization.md | 3 +- ...n_brochure.md => personalization_guide.md} | 4 ++ docs/pim/pim.md | 3 +- docs/product_guides/product_guides.md | 22 ++++++++++ mkdocs.yml | 14 ++++--- 9 files changed, 78 insertions(+), 13 deletions(-) rename docs/personalization/{personalization_brochure.md => personalization_guide.md} (98%) create mode 100644 docs/product_guides/product_guides.md diff --git a/docs/cdp/cdp_guide.md b/docs/cdp/cdp_guide.md index 37ce8f9205..41462ba158 100644 --- a/docs/cdp/cdp_guide.md +++ b/docs/cdp/cdp_guide.md @@ -2,7 +2,7 @@ description: The Ibexa CDP (Customer Data Platform) product guide provides a full description of its features as well as the benefits it brings to the client. --- -# [[= product_name_cdp =]] product guide +# Customer Data Platform (CDP) product guide ## What is [[= product_name_cdp =]] diff --git a/docs/content_management/content_management.md b/docs/content_management/content_management.md index 0fe06f73e3..eddb961b85 100644 --- a/docs/content_management/content_management.md +++ b/docs/content_management/content_management.md @@ -6,6 +6,7 @@ page_type: landing_page # Content management [[= cards([ + "content_management/content_management_guide", "content_management/content_model", "content_management/locations", "content_management/field_types/field_type_reference/field_type_reference", diff --git a/docs/ibexa_products/editions.md b/docs/ibexa_products/editions.md index bcf94775dc..a6a780d390 100644 --- a/docs/ibexa_products/editions.md +++ b/docs/ibexa_products/editions.md @@ -5,8 +5,42 @@ page_type: landing_page # Ibexa DXP editions +Three [[= product_name =]] product edtions are available to help you accelerate your digital transformation at the speed and cost that work best for you. + [[= cards([ "ibexa_products/headless", -"https://www.ibexa.co/products/ibexa-experience", -"https://www.ibexa.co/products/ibexa-commerce", -], columns=4) =]] +"ibexa_products/headless", +"ibexa_products/headless" +], columns=3) =]] + +Compare all features available in [[= product_name_headless =]], [[= product_name_exp =]] and [[= product_name_com =]] to help you choose the right products for your needs: + +| Feature | [[= product_name_headless =]] | [[= product_name_exp =]] | [[= product_name_com =]] | +|-----------------|-----------------|-----------------|-----------------| +| Headless CMS | ✔ | ✔ | ✔ | +| [Focus Mode]([[= user_doc =]]/getting_started/discover_ui/#focus-mode) | ✔ | ✔ | ✔ | +| [Image editor]([[= user_doc =]]/image_management/edit_images/) | ✔ | ✔ | ✔ | +| [Schedule Content Publication]([[= user_doc =]]/content_management/schedule_publishing/) | ✔ | ✔ | ✔ | +| [SEO and Social Media Management]([[= user_doc =]]/search_engine_optimization/seo/) | ✔ | ✔ | ✔ | +| [Multilingual Content Management]([[= user_doc =]]/content_management/translate_content/) | ✔ | ✔ | ✔ | +| [Search]([[= user_doc =]]/search/search_for_content/) | ✔ | ✔ | ✔ | +| [Collaboration workspace]([[= user_doc =]]/content_management/workflow_management/editorial_workflow/) | ✔ | ✔ | ✔ | +| Omnichannel presentation | ✔ | ✔ | ✔ | +| [Digital Asset Management]([[= user_doc =]]/dam/ibexa_dam/) | ✔ | ✔ | ✔ | +| [Product Information Management]([[= user_doc =]]/pim/pim/) | ✔ | ✔ | ✔ | +| Personalized catalog management | ✔ | ✔ | ✔ | +| [Personalization]([[= user_doc =]]/personalization/personalization/) | ✔ | ✔ | ✔ | +| Integration & automation (Ibexa Connect) | ✔ | ✔ | ✔ | +| [Site Factory](site_factory.md) | | ✔ | ✔ | +| Campaign management | | ✔ | ✔ | +| [Customizable Dashboard]([[= user_doc =]]/getting_started/dashboard/work_with_dashboard/#customize-dashboard) | | ✔ | ✔ | +| [Page Builder]([[= user_doc =]]/content_management/create_edit_pages/#page-builder-interface) | | ✔ | ✔ | +| [Form Builder]([[= user_doc =]]/content_management/work_with_forms/) | | ✔ | ✔ | +| [Publish Later]([[= user_doc =]]/content_management/schedule_publishing/#date-based-publishing) | | ✔ | ✔ | +| [Corporate account management]([[= user_doc =]]/customer_management/manage_customers/) | | ✔ | ✔ | +| [Customer Portal]([[= user_doc =]]/customer_management/customer_portal/) | | ✔ | ✔ | +| [Interactive Data Collection]([[= user_doc =]]/ibexa_engage/ibexa_engage/) | | ✔ | ✔ | +| [Customer Data Platform (CDP)](cdp_guide.md) | | ✔ | ✔ | +| [Order management](order_management.md) | | | ✔ | +| Merchandizing | | | ✔ | +| [Ecommerce]([[= user_doc =]]/commerce/commerce/) | | | ✔ | \ No newline at end of file diff --git a/docs/ibexa_products/headless.md b/docs/ibexa_products/headless.md index 0fbef680d1..2430e1dca3 100644 --- a/docs/ibexa_products/headless.md +++ b/docs/ibexa_products/headless.md @@ -109,7 +109,7 @@ On top of this strong core, [[= product_name_headless =]] brings tools to increa [[= product_name_headless =]] is a complete Digital Experience Platform (DXP), which comes with the following components to enhance user's journey: -- [Personalization](personalization_brochure.md) engine, which allows you to recommend content to end users according to their behavior, +- [Personalization](personalization_guide.md) engine, which allows you to recommend content to end users according to their behavior, or, when authenticated, by matching with their segment/group. - Content scheduler, which allows you to establish the future of the content and use events to have a living front application, even when the editorial team is absent or reduced. This way, visitors can discover new content at midnight, during weekends or vacations. diff --git a/docs/personalization/personalization.md b/docs/personalization/personalization.md index 0249723281..c491f121c1 100644 --- a/docs/personalization/personalization.md +++ b/docs/personalization/personalization.md @@ -18,11 +18,12 @@ To provide online recommendations, the service must at least: - Provide recommendations on a customer's website [[= cards([ + "personalization/personalization_guide", "personalization/how_it_works", "personalization/enable_personalization", "personalization/integrate_recommendation_service", "personalization/api_reference/api_reference", -], columns=4) =]] +], columns=3) =]] diff --git a/docs/personalization/personalization_brochure.md b/docs/personalization/personalization_guide.md similarity index 98% rename from docs/personalization/personalization_brochure.md rename to docs/personalization/personalization_guide.md index 4e3f7520e2..49978e7000 100644 --- a/docs/personalization/personalization_brochure.md +++ b/docs/personalization/personalization_guide.md @@ -1,3 +1,7 @@ +--- +description: Discover Personalization - a cloud-based service that tracks and analyzes customer behaviors. +--- + # Personalization product guide ## What is Personalization diff --git a/docs/pim/pim.md b/docs/pim/pim.md index 2f0589e99b..2fd55d49f9 100644 --- a/docs/pim/pim.md +++ b/docs/pim/pim.md @@ -9,8 +9,9 @@ PIM (Product Information Management) enables handling of products offered in the including their specifications and pricing. [[= cards([ + "pim/pim_guide", "pim/products", "pim/catalogs", "pim/pim_configuration", "pim/prices", -], columns=4) =]] +], columns=3) =]] diff --git a/docs/product_guides/product_guides.md b/docs/product_guides/product_guides.md new file mode 100644 index 0000000000..6a0025c21f --- /dev/null +++ b/docs/product_guides/product_guides.md @@ -0,0 +1,22 @@ +--- +description: Dicover various of Ibexa DXP features. +page_type: landing_page +--- + +# Product guides + +[[= product_name =]] product edtions comes with a variety of features. +Discover the primary ones with the help of product guides. Condensed content allows you to quickly learn about their availability, capabilities, and benefits. + +[[= cards([ +"users/user_management_guide", +"content_management/content_management_guide", +"content_management/rich_text/online_editor_guide", +"content_management/pages/page_builder_guide", +"content_management/forms/form_builder_guide", +"customer_management/customer_portal", +"personalization/personalization_guide", +"pim/pim_guide", +"ibexa_cloud/ibexa_cloud_guide", +"cdp/cdp_guide" +], columns=4) =]] \ No newline at end of file diff --git a/mkdocs.yml b/mkdocs.yml index fdc03a0dea..0fd3f4d913 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -151,8 +151,8 @@ nav: - Customize search sorting: administration/back_office/customize_search_sorting.md - Recent activity: administration/recent_activity/recent_activity.md - Content management: - - Content management: content_management/content_management.md - Content management guide: content_management/content_management_guide.md + - Content management: content_management/content_management.md - Content model: content_management/content_model.md - Locations: content_management/locations.md - Content Relations: content_management/content_relations.md @@ -318,8 +318,8 @@ nav: - Add navigation menu: templating/layout/add_navigation_menu.md - Add search form to front page: templating/layout/add_search_form.md - PIM (Product management): - - PIM (Product management): pim/pim.md - PIM guide: pim/pim_guide.md + - PIM (Product management): pim/pim.md - PIM configuration: pim/pim_configuration.md - Products: pim/products.md - Product API: pim/product_api.md @@ -413,8 +413,8 @@ nav: - Limitation reference: permissions/limitation_reference.md - Custom Policies: permissions/custom_policies.md - Users: - - Users: users/users.md - User management guide: users/user_management_guide.md + - Users: users/users.md - User setup: - Invitations: users/invitations.md - Registration: users/user_registration.md @@ -428,8 +428,8 @@ nav: - Customer groups: users/customer_groups.md - Segment API: users/segment_api.md - Personalization: + - Personalization guide : personalization/personalization_guide.md - Personalization: personalization/personalization.md - - Personalization guide : personalization/personalization_brochure.md - How Personalization works: personalization/how_it_works.md - Enable Personalization: personalization/enable_personalization.md - Integrate recommendation service: personalization/integrate_recommendation_service.md @@ -445,8 +445,8 @@ nav: - Track with ibexa-tracker.js: personalization/tracking_with_ibexa-tracker.md - Attribute search in Elasticsearch: personalization/attribute_search_in_elasticsearch.md - CDP (Customer Data Platform): - - Customer Data Platform: cdp/cdp.md - CDP guide: cdp/cdp_guide.md + - Customer Data Platform: cdp/cdp.md - CDP installation: cdp/cdp_installation.md - CDP activation: - CDP activation: cdp/cdp_activation/cdp_activation.md @@ -746,8 +746,8 @@ nav: - Manipulate Elasticsearch query: search/extensibility/manipulate_elasticsearch_query.md - Reindex search: search/reindex_search.md - Ibexa Cloud: - - Ibexa Cloud: ibexa_cloud/ibexa_cloud.md - Ibexa Cloud guide: ibexa_cloud/ibexa_cloud_guide.md + - Ibexa Cloud: ibexa_cloud/ibexa_cloud.md - Install on Ibexa Cloud: ibexa_cloud/install_on_ibexa_cloud.md - DDEV and Ibexa Cloud: ibexa_cloud/ddev_and_ibexa_cloud.md - Infrastructure and maintenance: @@ -831,6 +831,8 @@ nav: - Report and follow issues: resources/contributing/report_and_follow_issues.md - Contribute translations: resources/contributing/contribute_translations.md - Package structure: resources/contributing/package_structure.md + - Product guides: + - Product guides: product_guides/product_guides.md - Release notes: - Release notes: release_notes/release_notes.md - Ibexa DXP v4.6 LTS: release_notes/ibexa_dxp_v4.6.md From d351c7dde5556439efb3ef1fa853b5c96e00c158 Mon Sep 17 00:00:00 2001 From: julitafalcondusza Date: Mon, 26 Aug 2024 15:01:42 +0200 Subject: [PATCH 02/10] Updates --- docs/cdp/cdp_guide.md | 2 +- .../field_type_reference/formfield.md | 2 +- docs/content_management/forms/form_api.md | 2 +- .../forms/form_builder_guide.md | 2 +- docs/content_management/forms/forms.md | 84 +++--------------- .../forms/work_with_forms.md | 79 ++++++++++++++++ docs/content_management/pages/pages.md | 3 +- .../content_management/rich_text/rich_text.md | 14 +++ docs/ibexa_products/editions.md | 39 ++++---- docs/ibexa_products/ibexa_commerce.md | 2 +- .../{experience.md => ibexa_experience.md} | 10 ++- .../{headless.md => ibexa_headless.md} | 2 + docs/ibexa_products/img/ibexa_experience.png | Bin 0 -> 60548 bytes docs/ibexa_products/img/ibexa_headless.png | Bin 0 -> 49663 bytes .../cache/http_cache/reverse_proxy.md | 2 +- docs/resources/new_in_doc.md | 2 +- .../5_create_newsletter_form.md | 2 +- mkdocs.yml | 7 +- plugins.yml | 4 +- 19 files changed, 148 insertions(+), 110 deletions(-) create mode 100644 docs/content_management/forms/work_with_forms.md create mode 100644 docs/content_management/rich_text/rich_text.md rename docs/ibexa_products/{experience.md => ibexa_experience.md} (95%) rename docs/ibexa_products/{headless.md => ibexa_headless.md} (99%) create mode 100644 docs/ibexa_products/img/ibexa_experience.png create mode 100644 docs/ibexa_products/img/ibexa_headless.png diff --git a/docs/cdp/cdp_guide.md b/docs/cdp/cdp_guide.md index 78929b0b52..a48bc693ff 100644 --- a/docs/cdp/cdp_guide.md +++ b/docs/cdp/cdp_guide.md @@ -45,7 +45,7 @@ This approach helps you create a single customer view. To create a personalized customer experience, you need to group your clients into specified audiences. [[= product_name =]] comes with a ready solution - segment groups. -Segment group information is reused by various [[= product_name =]] functionalities, such as [Personalization](https://doc.ibexa.co/en/latest/personalization/personalization_brochure/) or content targeting. +Segment group information is reused by various [[= product_name =]] functionalities, such as [Personalization](https://doc.ibexa.co/en/latest/personalization/personalization_product_guide/) or content targeting. You can [create a segment group](https://doc.ibexa.co/projects/userguide/en/latest/personalization/segment_management/) in the Back Office of [[= product_name =]]. It serves as a container for all segments data generated by [[= product_name_cdp =]]. When you create a segment group, you need to provide its name and identifier. diff --git a/docs/content_management/field_types/field_type_reference/formfield.md b/docs/content_management/field_types/field_type_reference/formfield.md index 7d5031754d..4670ffe463 100644 --- a/docs/content_management/field_types/field_type_reference/formfield.md +++ b/docs/content_management/field_types/field_type_reference/formfield.md @@ -12,4 +12,4 @@ The Form Field Type stores a Form consisting of one or more form fields. -See [Forms](forms.md) for more information about working with Forms. +See [Forms](work_with_forms.md) for more information about working with Forms. diff --git a/docs/content_management/forms/form_api.md b/docs/content_management/forms/form_api.md index c6c3657aba..eb2fcc2241 100644 --- a/docs/content_management/forms/form_api.md +++ b/docs/content_management/forms/form_api.md @@ -7,7 +7,7 @@ edition: experience ## Form submissions -To manage form submissions created in the [Form Builder](forms.md), use `FormSubmissionServiceInterface`. +To manage form submissions created in the [Form Builder](work_with_forms.md), use `FormSubmissionServiceInterface`. ### Getting form submissions diff --git a/docs/content_management/forms/form_builder_guide.md b/docs/content_management/forms/form_builder_guide.md index 01e3753dcc..1b1ae48c00 100644 --- a/docs/content_management/forms/form_builder_guide.md +++ b/docs/content_management/forms/form_builder_guide.md @@ -64,7 +64,7 @@ To learn more, see [Work with forms]([[= user_doc =]]/content_management/work_wi ### Forms management -[Form](forms.md) is one of available [content items]([[= user_doc =]]/content_management/content_items/) that you can find in the platform. +[Form](work_with_forms.md) is one of available [content items]([[= user_doc =]]/content_management/content_items/) that you can find in the platform. You can work with it as with other regular items: create new one, edit existing one, move, etc. You can manage all the existing forms. To do it, in a selected place of the content tree find your form and click on it. diff --git a/docs/content_management/forms/forms.md b/docs/content_management/forms/forms.md index db65fe60b3..d3bd5329ed 100644 --- a/docs/content_management/forms/forms.md +++ b/docs/content_management/forms/forms.md @@ -1,79 +1,17 @@ --- -description: Form Builder enables creating dynamic forms to use in surveys, questionnaires, sign-up forms and others. -edition: experience +description: Forms are a type of content item that you can use to improve the functionality of your website. +page_type: landing_page --- # Forms -You can build forms consisting of different fields in the Form Builder. +Forms are a type of content item that you can use to improve the functionality of your website. -!!! tip - - To learn how to get, create, and delete form submissions by using the PHP API, - see [Form API](form_api.md). - -[[% include 'snippets/forms_caution.md' %]] - -## Existing Form fields - -### Captcha field - -The Captcha Form field is based on [Gregwar/CaptchaBundle](https://github.com/Gregwar/CaptchaBundle). - -![Captcha field](extending_form_builder_captcha_default.png) - -You can customize the field by adding configuration to `config/packages/gregwar_captcha.yaml` under `gregwar_captcha`: - -``` yaml -gregwar_captcha: - as_url: true - width: 150 - invalid_message: Code does not match, please retry. - reload: true -``` - -The example configuration above resizes the Captcha image (line 3), changes the error message (line 4), -and enables the user to reload the code (line 5). - -![Custom captcha field](extending_form_builder_captcha_result.png) - -For information about available options, see [Gregwar/CaptchaBundle's documentation](https://github.com/Gregwar/CaptchaBundle#options). - -!!! note - - If your installation uses Varnish to manage content cache, you must modify the configuration to avoid issues with the Captcha field. For more information, see [Ensure proper captcha behavior](reverse_proxy.md#ensure-proper-captcha-behavior). - -## Form submission purging - -You can purge all submissions of a given form. -To do this, run the following command, where `form-id` stands for Content ID -of the form for which you want to purge data: - -```bash -php bin/console ibexa:form-builder:purge-form-submissions [options] [--] -``` - -The following table lists some of the available options and their meaning: - -| Switch | Option | Description | -|--------------|------------|------------| -| `-l` | `--language-code=LANGUAGE-CODE` | Passes a language code, for example, "eng-GB". | -| `-u` | `--user[=USER]` | Passes a repository username. By default it is "admin". | -| `-c` | `--batch-size[=BATCH-SIZE]` | Passes a number of URLs to check in a single iteration. Set it to avoid using too much memory. By default it is set to 50. | -| | `--siteaccess[=SITEACCESS]` | Passes a SiteAccess to use for operations. If not provided, the default SiteAccess is used. | - -## Form-uploaded files - -You can use Forms to enable the user to upload files. -The default Location for files uploaded in this way is `/Media/Files/Form Uploads`. -You can change it with the following configuration: - -``` yaml -ibexa: - system: - default: - form_builder: - upload_location_id: 54 -``` - -This applies only if no specific Location is defined in the Form itself. +[[= cards([ + "content_management/forms/form_builder_guide", + "content_management/forms/work_with_forms", + "content_management/forms/form_api", + "content_management/forms/create_form_atrribute", + "content_management/forms/create_custom_form_field", + "content_management/forms/customize_email_notifications", +], columns=3) =]] diff --git a/docs/content_management/forms/work_with_forms.md b/docs/content_management/forms/work_with_forms.md new file mode 100644 index 0000000000..db65fe60b3 --- /dev/null +++ b/docs/content_management/forms/work_with_forms.md @@ -0,0 +1,79 @@ +--- +description: Form Builder enables creating dynamic forms to use in surveys, questionnaires, sign-up forms and others. +edition: experience +--- + +# Forms + +You can build forms consisting of different fields in the Form Builder. + +!!! tip + + To learn how to get, create, and delete form submissions by using the PHP API, + see [Form API](form_api.md). + +[[% include 'snippets/forms_caution.md' %]] + +## Existing Form fields + +### Captcha field + +The Captcha Form field is based on [Gregwar/CaptchaBundle](https://github.com/Gregwar/CaptchaBundle). + +![Captcha field](extending_form_builder_captcha_default.png) + +You can customize the field by adding configuration to `config/packages/gregwar_captcha.yaml` under `gregwar_captcha`: + +``` yaml +gregwar_captcha: + as_url: true + width: 150 + invalid_message: Code does not match, please retry. + reload: true +``` + +The example configuration above resizes the Captcha image (line 3), changes the error message (line 4), +and enables the user to reload the code (line 5). + +![Custom captcha field](extending_form_builder_captcha_result.png) + +For information about available options, see [Gregwar/CaptchaBundle's documentation](https://github.com/Gregwar/CaptchaBundle#options). + +!!! note + + If your installation uses Varnish to manage content cache, you must modify the configuration to avoid issues with the Captcha field. For more information, see [Ensure proper captcha behavior](reverse_proxy.md#ensure-proper-captcha-behavior). + +## Form submission purging + +You can purge all submissions of a given form. +To do this, run the following command, where `form-id` stands for Content ID +of the form for which you want to purge data: + +```bash +php bin/console ibexa:form-builder:purge-form-submissions [options] [--] +``` + +The following table lists some of the available options and their meaning: + +| Switch | Option | Description | +|--------------|------------|------------| +| `-l` | `--language-code=LANGUAGE-CODE` | Passes a language code, for example, "eng-GB". | +| `-u` | `--user[=USER]` | Passes a repository username. By default it is "admin". | +| `-c` | `--batch-size[=BATCH-SIZE]` | Passes a number of URLs to check in a single iteration. Set it to avoid using too much memory. By default it is set to 50. | +| | `--siteaccess[=SITEACCESS]` | Passes a SiteAccess to use for operations. If not provided, the default SiteAccess is used. | + +## Form-uploaded files + +You can use Forms to enable the user to upload files. +The default Location for files uploaded in this way is `/Media/Files/Form Uploads`. +You can change it with the following configuration: + +``` yaml +ibexa: + system: + default: + form_builder: + upload_location_id: 54 +``` + +This applies only if no specific Location is defined in the Form itself. diff --git a/docs/content_management/pages/pages.md b/docs/content_management/pages/pages.md index b31d5eb120..e82d0052c4 100644 --- a/docs/content_management/pages/pages.md +++ b/docs/content_management/pages/pages.md @@ -8,8 +8,9 @@ page_type: landing_page Pages are block-based special types of content that editors can create and modify by using a visual drag-and-drop editor. [[= cards([ + "content_management/pages/page_builder_guide", "content_management/pages/page_blocks", "content_management/pages/page_block_attributes", "content_management/pages/page_block_validators", "content_management/pages/create_custom_page_block", -], columns=4) =]] +], columns=3) =]] diff --git a/docs/content_management/rich_text/rich_text.md b/docs/content_management/rich_text/rich_text.md new file mode 100644 index 0000000000..df210f7d87 --- /dev/null +++ b/docs/content_management/rich_text/rich_text.md @@ -0,0 +1,14 @@ +--- +description: RichText is a type of field that you add in any content item in Ibexa DXP and edit in Online Editor. +page_type: landing_page +--- + +# RichText + +RichText is a type of field that you add in any content item in Ibexa DXP and edit in Online Editor. + +[[= cards([ + "content_management/rich_text/online_editor_guide", + "content_management/rich_text/extend_online_editor", + "content_management/rich_text/create_custom_richtext_block", +], columns=3) =]] \ No newline at end of file diff --git a/docs/ibexa_products/editions.md b/docs/ibexa_products/editions.md index 57211eccf5..683a01eb33 100644 --- a/docs/ibexa_products/editions.md +++ b/docs/ibexa_products/editions.md @@ -8,39 +8,40 @@ page_type: landing_page Three [[= product_name =]] product editions are available to help you accelerate your digital transformation at the speed and cost that work best for you. [[= cards([ -"ibexa_products/headless", -"ibexa_products/experience", +"ibexa_products/ibexa_headless", +"ibexa_products/ibexa_experience", "ibexa_products/ibexa_commerce" ], columns=3) =]] -Compare all features available in [[= product_name_headless =]], [[= product_name_exp =]] and [[= product_name_com =]] to help you choose the right products for your needs: +Compare all features available in [[= product_name_headless =]], [[= product_name_exp =]], and [[= product_name_com =]] to help you choose the right products for your needs: | Feature | [[= product_name_headless =]] | [[= product_name_exp =]] | [[= product_name_com =]] | |-----------------|-----------------|-----------------|-----------------| -| Headless CMS | ✔ | ✔ | ✔ | +| [Content model](content_model.md) | ✔ | ✔ | ✔ | +| [User management](user_management_guide.md) | ✔ | ✔ | ✔ | | [Focus Mode]([[= user_doc =]]/getting_started/discover_ui/#focus-mode) | ✔ | ✔ | ✔ | | [Image editor]([[= user_doc =]]/image_management/edit_images/) | ✔ | ✔ | ✔ | -| [Schedule Content Publication]([[= user_doc =]]/content_management/schedule_publishing/) | ✔ | ✔ | ✔ | -| [SEO and Social Media Management]([[= user_doc =]]/search_engine_optimization/seo/) | ✔ | ✔ | ✔ | -| [Multilingual Content Management]([[= user_doc =]]/content_management/translate_content/) | ✔ | ✔ | ✔ | +| [Content scheduler]([[= user_doc =]]/content_management/schedule_publishing/) | ✔ | ✔ | ✔ | +| [SEO]([[= user_doc =]]/search_engine_optimization/seo/) | ✔ | ✔ | ✔ | +| [Content translation]([[= user_doc =]]/content_management/translate_content/) | ✔ | ✔ | ✔ | | [Search]([[= user_doc =]]/search/search_for_content/) | ✔ | ✔ | ✔ | | [Collaboration workspace]([[= user_doc =]]/content_management/workflow_management/editorial_workflow/) | ✔ | ✔ | ✔ | -| Omnichannel presentation | ✔ | ✔ | ✔ | | [Digital Asset Management]([[= user_doc =]]/dam/ibexa_dam/) | ✔ | ✔ | ✔ | | [Product Information Management]([[= user_doc =]]/pim/pim/) | ✔ | ✔ | ✔ | -| Personalized catalog management | ✔ | ✔ | ✔ | -| [Personalization]([[= user_doc =]]/personalization/personalization/) | ✔ | ✔ | ✔ | -| Integration & automation (Ibexa Connect) | ✔ | ✔ | ✔ | +| [Personalization](personalization_guide.md) | ✔ | ✔ | ✔ | | [Site Factory](site_factory.md) | | ✔ | ✔ | -| Campaign management | | ✔ | ✔ | | [Customizable Dashboard]([[= user_doc =]]/getting_started/dashboard/work_with_dashboard/#customize-dashboard) | | ✔ | ✔ | -| [Page Builder]([[= user_doc =]]/content_management/create_edit_pages/#page-builder-interface) | | ✔ | ✔ | -| [Form Builder]([[= user_doc =]]/content_management/work_with_forms/) | | ✔ | ✔ | +| [Page Builder](page_builder_guide.md) | | ✔ | ✔ | +| [Form Builder](form_builder_guide.md) | | ✔ | ✔ | | [Publish Later]([[= user_doc =]]/content_management/schedule_publishing/#date-based-publishing) | | ✔ | ✔ | | [Corporate account management]([[= user_doc =]]/customer_management/manage_customers/) | | ✔ | ✔ | -| [Customer Portal]([[= user_doc =]]/customer_management/customer_portal/) | | ✔ | ✔ | -| [Interactive Data Collection]([[= user_doc =]]/ibexa_engage/ibexa_engage/) | | ✔ | ✔ | -| [Customer Data Platform (CDP)](cdp_guide.md) | | ✔ | ✔ | +| [Customer Portal](customer_portal.md) | | ✔ | ✔ | +| [Segments](segments_admin_panel.md) | | ✔ | ✔ | +| [Ibexa Engage add-on]([[= user_doc =]]/ibexa_engage/ibexa_engage/) | | ✔ | ✔ | +| [Customer Data Platform (CDP) add-on](cdp_guide.md) | | ✔ | ✔ | | [Order management](order_management.md) | | | ✔ | -| Merchandizing | | | ✔ | -| [Ecommerce]([[= user_doc =]]/commerce/commerce/) | | | ✔ | \ No newline at end of file +| [Payment management](payment.md) | | | ✔ | +| [Shipping management](shipping_management.md) | | | ✔ | +| [Storefront](storefront.md) | | | ✔ | +| [Relevant faceted search](search_for_content.md#filtered-search) | | | ✔ | +| [Transactional emails](transactional_emails.md) | | | ✔ | \ No newline at end of file diff --git a/docs/ibexa_products/ibexa_commerce.md b/docs/ibexa_products/ibexa_commerce.md index 84c4b95ffc..8d8d12caa0 100644 --- a/docs/ibexa_products/ibexa_commerce.md +++ b/docs/ibexa_products/ibexa_commerce.md @@ -34,7 +34,7 @@ With a help of documentation and trainings, any developer familiar with Symfony Version control systems and environment variables allow you to deploy your extensions and settings on several environments, such as [Ibexa Cloud](ibexa_cloud_guide.md). -[[= product_name_com =]] is built on [[[= product_name_exp =]]](experience.md) and includes all bundles, APIs, and features that come with both [Headless](headless.md#core-features) and [Experience](experience.md#core-features) editions. +[[= product_name_com =]] is built on [[[= product_name_exp =]]](ibexa_experience.md) and includes all bundles, APIs, and features that come with both [Headless](ibexa_headless.md#core-features) and [Experience](ibexa_experience.md#core-features) editions. ## Capabilities and benefits diff --git a/docs/ibexa_products/experience.md b/docs/ibexa_products/ibexa_experience.md similarity index 95% rename from docs/ibexa_products/experience.md rename to docs/ibexa_products/ibexa_experience.md index 721440a3dd..696d3ddcaf 100644 --- a/docs/ibexa_products/experience.md +++ b/docs/ibexa_products/ibexa_experience.md @@ -13,6 +13,8 @@ It offers smooth consumer journey and great online experience. In everything you With Experience edition you can empower Editors to quickly create new pages or personalized content, and improve their daily work. It also provides tools for using segmentation and targeting, and it can be widely used in B2B thanks its features and integrations. +![Ibexa Experience](ibexa_experience.png) + ## Availability To start using [[= product_name_exp =]], you need to purchase a product license. @@ -28,7 +30,7 @@ With an active license, you can start the [installation process](install_ibexa_d [[= product_name_exp =]] is based on [Symfony]([[= symfony_doc =]]). With a help of documentation and trainings, any developer familiar with Symfony or simply PHP may learn how to use available extension points and extend the platform. -[[= product_name_exp =]] is built on top of [[[= product_name_headless =]]](headless.md), therefore it includes all bundles, APIs, and [features that come with Headless edition](headless.md#core-features), but also more advanced features for digital experience management. +[[= product_name_exp =]] is built on top of [[[= product_name_headless =]]](ibexa_headless.md), therefore it includes all bundles, APIs, and [features that come with Headless edition](ibexa_headless.md#core-features), but also more advanced features for digital experience management. Version control systems and environment variables allow you to deploy your projects and settings on several environments, such as Ibexa Cloud. @@ -93,14 +95,14 @@ Using this tool, your customers can change their organization details, invite an [Segmentation](https://doc.ibexa.co/en/latest/administration/admin_panel/segments_admin_panel/) allows you to split up the user base. By assigning users to segments, you can display specific content to selected visitors and tailor the content that they can see. One of the tools that you can use right out of the box is the Targeting block that is available in the Page Builder. -Segmentation is also useful with the [Personalization](personalization_brochure.md). +Segmentation is also useful with the [Personalization](personalization_guide.md). You can assign users to different recommendation groups and create advanced logic with operators to provide your audience with the best recommendations. ![Segments](segments.png) #### Customer Data Platform (CDP) -[Ibexa CDP](cdp_guide.md) is an add-on available for both Experience and Commerce editions of [[= product_name =]]. +[Ibexa CDP](cdp_guide.md) is an add-on available for both Experience and [Commerce](ibexa_commerce.md) editions of [[= product_name =]]. To use it, you must make arrangements with [[= product_name_base =]] to define the initial configuration. Once you activate [[= product_name_cdp =]], you can create complete customer profiles, including their interactions, behavior, and preferences. It helps you improve user engagement, conversion rates, and return on investment by segmenting your audience and delivering tailored campaigns and experiences. @@ -112,7 +114,7 @@ This central data storage supports business growth with a scalable infrastructur #### Ibexa Engage -Another add-on available for Experience and Commerce edition is [Ibexa Engage](ibexa_engage.md). +Another add-on available for Experience and [Commerce](ibexa_commerce.md) edition is [Ibexa Engage](ibexa_engage.md). To use it, you must make arrangements with [[= product_name_base =]] to define the initial configuration, and then get and set up a user account. Ibexa Engage is a data collection tool. It gives you the ability to use the [Qualifio](https://qualifio.com/) tools to engage your audiences. You can use Qualifio's existing templates and interactive elements, such as quizzes, pools, and forms, to create visually appealing, customized campaigns and collect important data. diff --git a/docs/ibexa_products/headless.md b/docs/ibexa_products/ibexa_headless.md similarity index 99% rename from docs/ibexa_products/headless.md rename to docs/ibexa_products/ibexa_headless.md index f7c1ea2876..8da18b9f77 100644 --- a/docs/ibexa_products/headless.md +++ b/docs/ibexa_products/ibexa_headless.md @@ -13,6 +13,8 @@ It provides tools to collaboratively create content, and interfaces (API) to dis Multilingual, multichannel, extensible, [[= product_name_headless =]] is an advanced Content Management Framework (CMF), a Product Information Management (PIM) platform, as well as a Digital Asset Management (DAM) repository. It's provided without a default front office, but with a complete Back Office and several APIs to manage and access content. +![Ibexa Headless](ibexa_headless.png) + ## Availability To start using [[= product_name_headless =]] you must purchase a product license. diff --git a/docs/ibexa_products/img/ibexa_experience.png b/docs/ibexa_products/img/ibexa_experience.png new file mode 100644 index 0000000000000000000000000000000000000000..81c0d0d5144273bf00275fff81dd26d12bc8f9e4 GIT binary patch literal 60548 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 O_`Q6trBVyAe*b@0<|Fw4 literal 0 HcmV?d00001 diff --git a/docs/ibexa_products/img/ibexa_headless.png b/docs/ibexa_products/img/ibexa_headless.png new file mode 100644 index 0000000000000000000000000000000000000000..50ca4dedc9384a6b70fbca18a1ee273f14c59ff8 GIT binary patch literal 49663 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 Date: Tue, 27 Aug 2024 14:16:59 +0200 Subject: [PATCH 03/10] New description, updates --- docs/cdp/cdp_guide.md | 2 +- .../content_management_guide.md | 2 +- .../forms/form_builder_guide.md | 2 +- .../pages/page_builder_guide.md | 2 +- .../rich_text/online_editor_guide.md | 2 +- docs/customer_management/customer_portal.md | 189 +----------------- .../customer_portal_guide.md | 189 ++++++++++++++++++ docs/ibexa_cloud/ibexa_cloud_guide.md | 2 +- docs/ibexa_products/editions.md | 3 +- docs/ibexa_products/ibexa_commerce.md | 2 +- docs/ibexa_products/ibexa_experience.md | 2 +- docs/ibexa_products/ibexa_headless.md | 2 +- docs/pim/pim_guide.md | 2 +- docs/users/user_management_guide.md | 2 +- mkdocs.yml | 3 +- 15 files changed, 211 insertions(+), 195 deletions(-) create mode 100644 docs/customer_management/customer_portal_guide.md diff --git a/docs/cdp/cdp_guide.md b/docs/cdp/cdp_guide.md index a48bc693ff..d906be78b0 100644 --- a/docs/cdp/cdp_guide.md +++ b/docs/cdp/cdp_guide.md @@ -1,5 +1,5 @@ --- -description: The Ibexa CDP (Customer Data Platform) product guide provides a full description of its features as well as the benefits it brings to the client. +description: The Ibexa CDP product guide describes all the possibilities tha Customer Data Platform offers to help you build great customer experiences. edition: experience --- diff --git a/docs/content_management/content_management_guide.md b/docs/content_management/content_management_guide.md index 446755df55..8aec6b6d2e 100644 --- a/docs/content_management/content_management_guide.md +++ b/docs/content_management/content_management_guide.md @@ -1,5 +1,5 @@ --- -description: The content management product guide provides a full description of its features as well as the benefits it brings to the client. +description: Read the content management product guide and learn how to create, modify, and display information to the target audience. --- # Content management product guide diff --git a/docs/content_management/forms/form_builder_guide.md b/docs/content_management/forms/form_builder_guide.md index 1b1ae48c00..6804e3ad23 100644 --- a/docs/content_management/forms/form_builder_guide.md +++ b/docs/content_management/forms/form_builder_guide.md @@ -1,5 +1,5 @@ --- -description: The Form Builder product guide provides a full description of its features as well as the benefits it brings to the client. +description: See the Form Builder product guide and learn how to create various forms to increase the functionality of your website. edition: experience --- diff --git a/docs/content_management/pages/page_builder_guide.md b/docs/content_management/pages/page_builder_guide.md index 3ce9ec8507..12269102d2 100644 --- a/docs/content_management/pages/page_builder_guide.md +++ b/docs/content_management/pages/page_builder_guide.md @@ -1,5 +1,5 @@ --- -description: The Page Builder product guide provides a full description of its features as well as the benefits it brings to the client. +description: Read about the Page Builder - a powerful tool for creating and modifying pages in Ibexa DXP. edition: experience --- diff --git a/docs/content_management/rich_text/online_editor_guide.md b/docs/content_management/rich_text/online_editor_guide.md index 746854a4bb..be46e8ed3e 100644 --- a/docs/content_management/rich_text/online_editor_guide.md +++ b/docs/content_management/rich_text/online_editor_guide.md @@ -1,5 +1,5 @@ --- -description: The Online Editor product guide provides a full description of its features as well as the benefits it brings to the client. +description: Learn how to use the Online Editor, a tool that allows you to edit RichText Fields in any content item in Ibexa DXP. --- # Online Editor product guide diff --git a/docs/customer_management/customer_portal.md b/docs/customer_management/customer_portal.md index 60dc06ff50..5baa756ae1 100644 --- a/docs/customer_management/customer_portal.md +++ b/docs/customer_management/customer_portal.md @@ -4,9 +4,7 @@ edition: experience page_type: landing_page --- -# Customer Portal product guide - -## What is Customer Portal +# Customer Portal A Customer Portal serves as a central entry point to your services and products. It helps you provide a unique user experience with a single point of access to any relevant self-service options for your products and services. @@ -17,181 +15,10 @@ With this feature, your customers can self-register, edit their organization inf invite and view members, check their order history and more. [[= cards([ -"customer_management/cp_configuration", -"customer_management/cp_applications", -"users/invitations", -"customer_management/cp_page_builder", -"customer_management/create_user_registration_form" -], columns=5) =]] - -## Availability - -Customer Portal is available in [[= product_name_exp =]]. It is also compatible with PIM, Commerce and [[= product_name_connect =]]. - -## How does Customer Portal work? - -Customer Portal is a component based on content types. -This means that [[= product_name =]] provide containers, user management, content management, so you can focus on business logic and general outlook of the portal for your B2B clients. - -### Customer Portal - -The Customer Portal allows company members to log in and manage their profiles and order history. -With user differentiation, company buyers can only purchase products while company admins can invite and manage members and change company information, such as billing addresses. - -![Customer Portal dashboard](img/cp_dashboard_customer_portal.png) - -### Editable in Page Builder - -Custom Customer Portal can be created and edited in Page Builder to meet the needs of each business type, company, or market they operate on. - -To create a new Customer Portal, go to Content and from the menu select Content structure. -There, navigate to the root container for your Customer Portals and select Customer Portal Page. -In the Page Builder creation box, you see the Customer Portal layout where you can add a dedicated Customer Portal block, -Sales Representative, or choose from a selection of blocks available to your [[= product_name =]] version. -If built in page blocks are not sufficient to fulfill your needs, you can add your own. - -![Editable in Page Builder](img/cp_edit_in_page_builder.png) - -You can allow company members to see multiple versions of Customer Portal on a single page by adding them under one Customer Portal container and combining SiteAccess matchers. -This setup is recommended for global markets or company-specific portals, where each portal is designed specifically for its customers and their needs. - -![Multiple portals](img/cp_2_page_view.png) - -### Company management - -The main company management takes place in the Back Office where each company has its own profile where sales representative can find: - -- summary with basic information and order history -- company profile with billing information and contact person -- list of members and pending invitations -- address book with multiple shipping addresses - -![Companies section in Back Office](img/cp_back_office.png) - -From there, they can activate and deactivate the company, edit its information, invite members, manage their roles and edit their basic information. - -In the Roles section, you can define Policies for each user group, for example, a Company buyer. -You can also set up Policies for every user who has a business account by editing a Corporate Access role. - -### Members - -Company members are not standard users. They belong to a separate category called Corporate Accounts. -This category is located in **Admin** -> **Corporate** -> **Corporate Accounts**. -There, you can find a list of companies and their members. - -This feature comes with a set of new roles: - -- Member — users who are members of a company -- Corporate Access — users who can log into Customer Portal -- Company Admin — users who can edit company's details -- Company Buyer — users who can buy in company's name - -All roles and policies associated with them can be fully customized to fit your business needs. - -### Invitations - -Members can be invited to the organization from: - -- the Back Office: go to **Customers** -> **Companies** -> **Select your company** -> **Invitations** -> **Invite member** - -- the Customer Portal: go to your company admin profile, select **Members** -> **Invite members** - -Then, in a pop-up fill out email addresses one by one, or use drag and drop to upload a file with a list of emails. -You also have to assign a role to each new member from a drop-down list. -Click **Send** to send out invitations. - -![Invitations](img/cp_invitations.png) - -Invited users receive an email message with a registration link. -With it, they can register and create their account in the Customer Portal. - -![Create account](img/cp_create_account.png) - -### Company self-registration - -Self-registration allows business customers to take charge and apply for a business account by themselves. -Applications go through the approval process in the Back Office where they can be accepted, rejected or put on hold. -If they are accepted, the business partner receives an invitation link to the Customer Portal, where they can set up their team and manage their account. - -To apply for a business account, a company needs to provide their basic information, -contact information and billing address in an application. - -![Company self-registration](img/cp_registration.png) - -The approval process is customizable. You can decide which user has approval rights by granting them Company Application/Workflow Policy, -you can also decide between which states the user may move applications: - -- on hold -- accept -- reject - -If built-in statuses are not sufficient, you can add custom ones. You can also edit or add reasons for not accepting the company application. Finally, you can customize the registration site itself. - -### REST API - -Customer Portal comes with [REST API](https://doc.ibexa.co/en/latest/api/rest_api/rest_api_reference/rest_api_reference.html#corporate-account) for interacting with corporate accounts from the context of the [[= product_name_connect =]] app. - -## Capabilities - -### Company management - -Sales representatives can manage details for companies they are associated with, such as contact persons, billing addresses, and more by accessing Back Office. -Company admins are also able to manage the company's details in the Customer Portal interface. -By giving users power to manage their own accounts, you reduce the need for administrative interventions. - -### Self registration - -Self-registration allows your customers to take control of their business accounts. -This not only improves customer satisfaction but also reduces the administrative burden on your team. -With the ability to integrate with [[= product_name_connect =]] you are able to fully automate the process. - -### Address book - -Use of an address book allows you to add many shipping addresses to one company for clients with multiple locations. - -### Custom prices - -You can offer special prices and additional discounts dedicated for Customer groups containing company members with verified accounts. - -### Available in segments - -Corporate accounts are available in segments, which means you can assign companies to different recommendation groups based on gathered data, and deliver recommendations. -It allows you to make use of customer targeting of the segments and create personalized experience for each company. - -## Benefits - -### General overview - -The overall benefit of customer portals is the help they provide to retain customers and increase loyalty, while freeing up customer service employees time for higher-level work. -They can achieve that by providing customers with up-to-date information about their orders and deliveries, personalize shopping experience, offer special deals available only to B2B partners and do that in one, easily accessible space. -Currently, customer portals are a standard in global sites such as Amazon. They are the level of quality that customers just expect, and all businesses strive for. - -### Simplified shopping process - -Business account helps streamline the B2B shopping process with all the paperwork, payment, -and other administrative tasks converted into a few simple steps with prefilled forms, billing addresses, shipping addresses and more. -Making your site a go-to place for company orders. - -### Better customer experience - -In the era of internet, customers expect quick, accessible and excellent quality service and user experience from every business they associate with. -Customer portals offer a seamless self-service experience by providing complete 24/7 access to relevant, up-to-date information and customer support. - -### Client encouragement - -Price strategies are a great way to build and maintain strong relationships with your trading partners. -With special prices available to B2B clients, you can offer the best deals in highly competitive markets. -Those discounts may be a great encouragement to convince big buyers to choose your business over other options. -Competitive prices impact not only the size of the customer base, -they affect every customer’s purchasing strategy, including the diversity, frequency, and volume of their orders. - -### Cost benefits - -Customer portals help you to automate tasks that otherwise would be done by your employees manually, such as customer services, checking shipment status. -An additional benefit of customer portals is their availability 24/7. -Thus, reducing the need to allocate resources to extend working hours or hire more employees. - -### Localization and personalization - -The use of Page Builder in the Customer Portal creation process enables you to -create unique experiences for each business customer based on their location, business type, company, or market they operate on. \ No newline at end of file + "customer_management/customer_portal_guide", + "customer_management/cp_configuration", + "customer_management/cp_applications", + "users/invitations", + "customer_management/cp_page_builder", + "customer_management/create_user_registration_form" +], columns=3) =]] \ No newline at end of file diff --git a/docs/customer_management/customer_portal_guide.md b/docs/customer_management/customer_portal_guide.md new file mode 100644 index 0000000000..f6f75fc050 --- /dev/null +++ b/docs/customer_management/customer_portal_guide.md @@ -0,0 +1,189 @@ +--- +description: Check all the capabilities and advantages that the Customer Portal offers to the clients by reading the Customer Portal product guide. +edition: experience +page_type: landing_page +--- + +# Customer Portal product guide + +## What is Customer Portal + +A Customer Portal serves as a central entry point to your services and products. +It helps you provide a unique user experience with a single point of access to any relevant self-service options for your products and services. + +[[= product_name =]] Customer Portal and customer management that ships with it let you create and handle business accounts +and communicate with your partners in a personalized space. +With this feature, your customers can self-register, edit their organization information, +invite and view members, check their order history and more. + +## Availability + +Customer Portal is available in [[= product_name_exp =]]. It is also compatible with PIM, Commerce and [[= product_name_connect =]]. + +## How does Customer Portal work? + +Customer Portal is a component based on content types. +This means that [[= product_name =]] provide containers, user management, content management, so you can focus on business logic and general outlook of the portal for your B2B clients. + +### Customer Portal + +The Customer Portal allows company members to log in and manage their profiles and order history. +With user differentiation, company buyers can only purchase products while company admins can invite and manage members and change company information, such as billing addresses. + +![Customer Portal dashboard](img/cp_dashboard_customer_portal.png) + +### Editable in Page Builder + +Custom Customer Portal can be created and edited in Page Builder to meet the needs of each business type, company, or market they operate on. + +To create a new Customer Portal, go to Content and from the menu select Content structure. +There, navigate to the root container for your Customer Portals and select Customer Portal Page. +In the Page Builder creation box, you see the Customer Portal layout where you can add a dedicated Customer Portal block, +Sales Representative, or choose from a selection of blocks available to your [[= product_name =]] version. +If built in page blocks are not sufficient to fulfill your needs, you can add your own. + +![Editable in Page Builder](img/cp_edit_in_page_builder.png) + +You can allow company members to see multiple versions of Customer Portal on a single page by adding them under one Customer Portal container and combining SiteAccess matchers. +This setup is recommended for global markets or company-specific portals, where each portal is designed specifically for its customers and their needs. + +![Multiple portals](img/cp_2_page_view.png) + +### Company management + +The main company management takes place in the Back Office where each company has its own profile where sales representative can find: + +- summary with basic information and order history +- company profile with billing information and contact person +- list of members and pending invitations +- address book with multiple shipping addresses + +![Companies section in Back Office](img/cp_back_office.png) + +From there, they can activate and deactivate the company, edit its information, invite members, manage their roles and edit their basic information. + +In the Roles section, you can define Policies for each user group, for example, a Company buyer. +You can also set up Policies for every user who has a business account by editing a Corporate Access role. + +### Members + +Company members are not standard users. They belong to a separate category called Corporate Accounts. +This category is located in **Admin** -> **Corporate** -> **Corporate Accounts**. +There, you can find a list of companies and their members. + +This feature comes with a set of new roles: + +- Member — users who are members of a company +- Corporate Access — users who can log into Customer Portal +- Company Admin — users who can edit company's details +- Company Buyer — users who can buy in company's name + +All roles and policies associated with them can be fully customized to fit your business needs. + +### Invitations + +Members can be invited to the organization from: + +- the Back Office: go to **Customers** -> **Companies** -> **Select your company** -> **Invitations** -> **Invite member** + +- the Customer Portal: go to your company admin profile, select **Members** -> **Invite members** + +Then, in a pop-up fill out email addresses one by one, or use drag and drop to upload a file with a list of emails. +You also have to assign a role to each new member from a drop-down list. +Click **Send** to send out invitations. + +![Invitations](img/cp_invitations.png) + +Invited users receive an email message with a registration link. +With it, they can register and create their account in the Customer Portal. + +![Create account](img/cp_create_account.png) + +### Company self-registration + +Self-registration allows business customers to take charge and apply for a business account by themselves. +Applications go through the approval process in the Back Office where they can be accepted, rejected or put on hold. +If they are accepted, the business partner receives an invitation link to the Customer Portal, where they can set up their team and manage their account. + +To apply for a business account, a company needs to provide their basic information, +contact information and billing address in an application. + +![Company self-registration](img/cp_registration.png) + +The approval process is customizable. You can decide which user has approval rights by granting them Company Application/Workflow Policy, +you can also decide between which states the user may move applications: + +- on hold +- accept +- reject + +If built-in statuses are not sufficient, you can add custom ones. You can also edit or add reasons for not accepting the company application. Finally, you can customize the registration site itself. + +### REST API + +Customer Portal comes with [REST API](https://doc.ibexa.co/en/latest/api/rest_api/rest_api_reference/rest_api_reference.html#corporate-account) for interacting with corporate accounts from the context of the [[= product_name_connect =]] app. + +## Capabilities + +### Company management + +Sales representatives can manage details for companies they are associated with, such as contact persons, billing addresses, and more by accessing Back Office. +Company admins are also able to manage the company's details in the Customer Portal interface. +By giving users power to manage their own accounts, you reduce the need for administrative interventions. + +### Self registration + +Self-registration allows your customers to take control of their business accounts. +This not only improves customer satisfaction but also reduces the administrative burden on your team. +With the ability to integrate with [[= product_name_connect =]] you are able to fully automate the process. + +### Address book + +Use of an address book allows you to add many shipping addresses to one company for clients with multiple locations. + +### Custom prices + +You can offer special prices and additional discounts dedicated for Customer groups containing company members with verified accounts. + +### Available in segments + +Corporate accounts are available in segments, which means you can assign companies to different recommendation groups based on gathered data, and deliver recommendations. +It allows you to make use of customer targeting of the segments and create personalized experience for each company. + +## Benefits + +### General overview + +The overall benefit of customer portals is the help they provide to retain customers and increase loyalty, while freeing up customer service employees time for higher-level work. +They can achieve that by providing customers with up-to-date information about their orders and deliveries, personalize shopping experience, offer special deals available only to B2B partners and do that in one, easily accessible space. +Currently, customer portals are a standard in global sites such as Amazon. They are the level of quality that customers just expect, and all businesses strive for. + +### Simplified shopping process + +Business account helps streamline the B2B shopping process with all the paperwork, payment, +and other administrative tasks converted into a few simple steps with prefilled forms, billing addresses, shipping addresses and more. +Making your site a go-to place for company orders. + +### Better customer experience + +In the era of internet, customers expect quick, accessible and excellent quality service and user experience from every business they associate with. +Customer portals offer a seamless self-service experience by providing complete 24/7 access to relevant, up-to-date information and customer support. + +### Client encouragement + +Price strategies are a great way to build and maintain strong relationships with your trading partners. +With special prices available to B2B clients, you can offer the best deals in highly competitive markets. +Those discounts may be a great encouragement to convince big buyers to choose your business over other options. +Competitive prices impact not only the size of the customer base, +they affect every customer’s purchasing strategy, including the diversity, frequency, and volume of their orders. + +### Cost benefits + +Customer portals help you to automate tasks that otherwise would be done by your employees manually, such as customer services, checking shipment status. +An additional benefit of customer portals is their availability 24/7. +Thus, reducing the need to allocate resources to extend working hours or hire more employees. + +### Localization and personalization + +The use of Page Builder in the Customer Portal creation process enables you to +create unique experiences for each business customer based on their location, business type, company, or market they operate on. \ No newline at end of file diff --git a/docs/ibexa_cloud/ibexa_cloud_guide.md b/docs/ibexa_cloud/ibexa_cloud_guide.md index 9801900ec9..033bfa5b78 100644 --- a/docs/ibexa_cloud/ibexa_cloud_guide.md +++ b/docs/ibexa_cloud/ibexa_cloud_guide.md @@ -1,5 +1,5 @@ --- -description: The Ibexa Cloud product guide provides a full description of its features as well as the benefits it brings to the client. +description: Learn how to host your application and improve your business processess by using Ibexa Cloud hosting platform. title: Ibexa Cloud product guide month_change: true --- diff --git a/docs/ibexa_products/editions.md b/docs/ibexa_products/editions.md index 683a01eb33..13bd349dfd 100644 --- a/docs/ibexa_products/editions.md +++ b/docs/ibexa_products/editions.md @@ -35,7 +35,7 @@ Compare all features available in [[= product_name_headless =]], [[= product_nam | [Form Builder](form_builder_guide.md) | | ✔ | ✔ | | [Publish Later]([[= user_doc =]]/content_management/schedule_publishing/#date-based-publishing) | | ✔ | ✔ | | [Corporate account management]([[= user_doc =]]/customer_management/manage_customers/) | | ✔ | ✔ | -| [Customer Portal](customer_portal.md) | | ✔ | ✔ | +| [Customer Portal](customer_portal_guide.md) | | ✔ | ✔ | | [Segments](segments_admin_panel.md) | | ✔ | ✔ | | [Ibexa Engage add-on]([[= user_doc =]]/ibexa_engage/ibexa_engage/) | | ✔ | ✔ | | [Customer Data Platform (CDP) add-on](cdp_guide.md) | | ✔ | ✔ | @@ -43,5 +43,4 @@ Compare all features available in [[= product_name_headless =]], [[= product_nam | [Payment management](payment.md) | | | ✔ | | [Shipping management](shipping_management.md) | | | ✔ | | [Storefront](storefront.md) | | | ✔ | -| [Relevant faceted search](search_for_content.md#filtered-search) | | | ✔ | | [Transactional emails](transactional_emails.md) | | | ✔ | \ No newline at end of file diff --git a/docs/ibexa_products/ibexa_commerce.md b/docs/ibexa_products/ibexa_commerce.md index 8d8d12caa0..fcfc221f4d 100644 --- a/docs/ibexa_products/ibexa_commerce.md +++ b/docs/ibexa_products/ibexa_commerce.md @@ -1,6 +1,6 @@ --- title: Ibexa Commerce -description: Discover Ibexa Commerce and its essential features, capabilities and benefits. +description: Explore all of the key features, functionalities, and advantages of Ibexa Commerce, the most powerful edition that Ibexa DXP has to offer. month_change: true --- diff --git a/docs/ibexa_products/ibexa_experience.md b/docs/ibexa_products/ibexa_experience.md index 696d3ddcaf..b88a160ba9 100644 --- a/docs/ibexa_products/ibexa_experience.md +++ b/docs/ibexa_products/ibexa_experience.md @@ -1,6 +1,6 @@ --- title: Ibexa Experience -description: Discover all the main features, functions, and advantages of the Ibexa Experience. +description: Learn about all the main attributes, features, and benefits of the customer-focused Ibexa Experience edition. month_change: true --- diff --git a/docs/ibexa_products/ibexa_headless.md b/docs/ibexa_products/ibexa_headless.md index 8da18b9f77..850da65191 100644 --- a/docs/ibexa_products/ibexa_headless.md +++ b/docs/ibexa_products/ibexa_headless.md @@ -1,6 +1,6 @@ --- title: Ibexa Headless -description: Explore Ibexa Headless' features, capabilities and benefits. +description: Get to know Ibexa Headless - an edition that focuses on content management. --- # Ibexa DXP Headless edition product guide diff --git a/docs/pim/pim_guide.md b/docs/pim/pim_guide.md index b74f1a4c71..2b1df8a8f0 100644 --- a/docs/pim/pim_guide.md +++ b/docs/pim/pim_guide.md @@ -1,5 +1,5 @@ --- -description: The PIM product guide provides a full description of its features as well as the benefits it brings to the client. +description: The PIM product guide provides a full description of the features and benefits that this module brings to the clients. --- # PIM product guide diff --git a/docs/users/user_management_guide.md b/docs/users/user_management_guide.md index d5e0e3f4ac..34764b9c81 100644 --- a/docs/users/user_management_guide.md +++ b/docs/users/user_management_guide.md @@ -1,5 +1,5 @@ --- -description: The user management product guide provides a full description of its features as well as the benefits it brings to the client. +description: Find out what's User management and check what functions Ibexa DXP offers in this area to effectively manage the digital ecosystem. --- # User management product guide diff --git a/mkdocs.yml b/mkdocs.yml index 9ceaee2d5b..b9100cfa2c 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -380,7 +380,8 @@ nav: - Transactional email variables reference: commerce/transactional_emails/transactional_emails_parameters.md - Customize transactional emails: commerce/transactional_emails/extend_transactional_emails.md - Customer management: - - Customer Portal guide: customer_management/customer_portal.md + - Customer Portal: customer_management/customer_portal.md + - Customer Portal guide: customer_management/customer_portal_guide.md - Customer Portal configuration: customer_management/cp_configuration.md - Create Customer Portal: customer_management/cp_page_builder.md - Customer Portal Applications: customer_management/cp_applications.md From dbac436446d8fc02b4e9e320dced594246775be2 Mon Sep 17 00:00:00 2001 From: julitafalcondusza Date: Tue, 27 Aug 2024 14:50:48 +0200 Subject: [PATCH 04/10] Typo fix --- docs/cdp/cdp_guide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/cdp/cdp_guide.md b/docs/cdp/cdp_guide.md index d906be78b0..40346214ab 100644 --- a/docs/cdp/cdp_guide.md +++ b/docs/cdp/cdp_guide.md @@ -1,5 +1,5 @@ --- -description: The Ibexa CDP product guide describes all the possibilities tha Customer Data Platform offers to help you build great customer experiences. +description: The Ibexa CDP product guide describes all the possibilities that the Customer Data Platform offers to help you build great customer experiences. edition: experience --- From 6beca015efbcd2723320ad311f41497f192aef10 Mon Sep 17 00:00:00 2001 From: julitafalcondusza Date: Wed, 28 Aug 2024 09:46:35 +0200 Subject: [PATCH 05/10] Fixes after rev --- docs/cdp/cdp_guide.md | 2 +- docs/content_management/forms/forms.md | 2 +- mkdocs.yml | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/cdp/cdp_guide.md b/docs/cdp/cdp_guide.md index 40346214ab..40b5c08368 100644 --- a/docs/cdp/cdp_guide.md +++ b/docs/cdp/cdp_guide.md @@ -45,7 +45,7 @@ This approach helps you create a single customer view. To create a personalized customer experience, you need to group your clients into specified audiences. [[= product_name =]] comes with a ready solution - segment groups. -Segment group information is reused by various [[= product_name =]] functionalities, such as [Personalization](https://doc.ibexa.co/en/latest/personalization/personalization_product_guide/) or content targeting. +Segment group information is reused by various [[= product_name =]] functionalities, such as [Personalization](personalization_guide.md) or content targeting. You can [create a segment group](https://doc.ibexa.co/projects/userguide/en/latest/personalization/segment_management/) in the Back Office of [[= product_name =]]. It serves as a container for all segments data generated by [[= product_name_cdp =]]. When you create a segment group, you need to provide its name and identifier. diff --git a/docs/content_management/forms/forms.md b/docs/content_management/forms/forms.md index d3bd5329ed..73d7e9205b 100644 --- a/docs/content_management/forms/forms.md +++ b/docs/content_management/forms/forms.md @@ -11,7 +11,7 @@ Forms are a type of content item that you can use to improve the functionality o "content_management/forms/form_builder_guide", "content_management/forms/work_with_forms", "content_management/forms/form_api", - "content_management/forms/create_form_atrribute", + "content_management/forms/create_form_attribute", "content_management/forms/create_custom_form_field", "content_management/forms/customize_email_notifications", ], columns=3) =]] diff --git a/mkdocs.yml b/mkdocs.yml index b9100cfa2c..b888f71f0b 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -168,7 +168,8 @@ nav: - Extend Image Editor: content_management/images/extend_image_editor.md - Add Image Asset from DAM: content_management/images/add_image_asset_from_dam.md - Fastly Image Optimizer: content_management/images/fastly_io.md - - Rich Text: + - RichText: + - RichText: content_management/rich_text/rich_text.md - Online Editor guide: content_management/rich_text/online_editor_guide.md - Extend Online Editor: content_management/rich_text/extend_online_editor.md - Create custom RichText block: content_management/rich_text/create_custom_richtext_block.md From 01a59f11715e188ef18a1ccb967761cf80df573b Mon Sep 17 00:00:00 2001 From: julitafalcondusza Date: Wed, 28 Aug 2024 15:32:38 +0200 Subject: [PATCH 06/10] Fixes after rev --- docs/cdp/cdp_guide.md | 2 +- docs/content_management/forms/form_api.md | 2 +- docs/content_management/forms/forms.md | 2 +- docs/content_management/rich_text/rich_text.md | 2 +- docs/customer_management/customer_portal_guide.md | 9 ++++----- docs/ibexa_products/editions.md | 2 ++ mkdocs.yml | 14 +++++++------- 7 files changed, 17 insertions(+), 16 deletions(-) diff --git a/docs/cdp/cdp_guide.md b/docs/cdp/cdp_guide.md index 40b5c08368..fbfb7a6970 100644 --- a/docs/cdp/cdp_guide.md +++ b/docs/cdp/cdp_guide.md @@ -3,7 +3,7 @@ description: The Ibexa CDP product guide describes all the possibilities that th edition: experience --- -# Customer Data Platform (CDP) product guide +# Ibexa Customer Data Platform (CDP) product guide ## What is [[= product_name_cdp =]] diff --git a/docs/content_management/forms/form_api.md b/docs/content_management/forms/form_api.md index eb2fcc2241..c5c0c5e3c7 100644 --- a/docs/content_management/forms/form_api.md +++ b/docs/content_management/forms/form_api.md @@ -7,7 +7,7 @@ edition: experience ## Form submissions -To manage form submissions created in the [Form Builder](work_with_forms.md), use `FormSubmissionServiceInterface`. +To manage form submissions created in the [Form Builder](form_builder_guide.md), use `FormSubmissionServiceInterface`. ### Getting form submissions diff --git a/docs/content_management/forms/forms.md b/docs/content_management/forms/forms.md index 73d7e9205b..8c431fc943 100644 --- a/docs/content_management/forms/forms.md +++ b/docs/content_management/forms/forms.md @@ -13,5 +13,5 @@ Forms are a type of content item that you can use to improve the functionality o "content_management/forms/form_api", "content_management/forms/create_form_attribute", "content_management/forms/create_custom_form_field", - "content_management/forms/customize_email_notifications", + "content_management/forms/customize_email_notifications" ], columns=3) =]] diff --git a/docs/content_management/rich_text/rich_text.md b/docs/content_management/rich_text/rich_text.md index df210f7d87..3024c2e56d 100644 --- a/docs/content_management/rich_text/rich_text.md +++ b/docs/content_management/rich_text/rich_text.md @@ -10,5 +10,5 @@ RichText is a type of field that you add in any content item in Ibexa DXP and ed [[= cards([ "content_management/rich_text/online_editor_guide", "content_management/rich_text/extend_online_editor", - "content_management/rich_text/create_custom_richtext_block", + "content_management/rich_text/create_custom_richtext_block" ], columns=3) =]] \ No newline at end of file diff --git a/docs/customer_management/customer_portal_guide.md b/docs/customer_management/customer_portal_guide.md index f6f75fc050..388d6d4a26 100644 --- a/docs/customer_management/customer_portal_guide.md +++ b/docs/customer_management/customer_portal_guide.md @@ -1,7 +1,6 @@ --- description: Check all the capabilities and advantages that the Customer Portal offers to the clients by reading the Customer Portal product guide. edition: experience -page_type: landing_page --- # Customer Portal product guide @@ -23,7 +22,7 @@ Customer Portal is available in [[= product_name_exp =]]. It is also compatible ## How does Customer Portal work? Customer Portal is a component based on content types. -This means that [[= product_name =]] provide containers, user management, content management, so you can focus on business logic and general outlook of the portal for your B2B clients. +This means that [[= product_name =]] provides containers, user management, content management, so you can focus on business logic and general outlook of the portal for your B2B clients. ### Customer Portal @@ -36,11 +35,11 @@ With user differentiation, company buyers can only purchase products while compa Custom Customer Portal can be created and edited in Page Builder to meet the needs of each business type, company, or market they operate on. -To create a new Customer Portal, go to Content and from the menu select Content structure. +To create a new Customer Portal, go to Content and, from the menu, select Content structure. There, navigate to the root container for your Customer Portals and select Customer Portal Page. In the Page Builder creation box, you see the Customer Portal layout where you can add a dedicated Customer Portal block, Sales Representative, or choose from a selection of blocks available to your [[= product_name =]] version. -If built in page blocks are not sufficient to fulfill your needs, you can add your own. +If the built-in page blocks are not sufficient to fulfill your needs, you can add your own. ![Editable in Page Builder](img/cp_edit_in_page_builder.png) @@ -135,7 +134,7 @@ By giving users power to manage their own accounts, you reduce the need for admi Self-registration allows your customers to take control of their business accounts. This not only improves customer satisfaction but also reduces the administrative burden on your team. -With the ability to integrate with [[= product_name_connect =]] you are able to fully automate the process. +With the ability to integrate with [[= product_name_connect =]], you are able to fully automate the process. ### Address book diff --git a/docs/ibexa_products/editions.md b/docs/ibexa_products/editions.md index 13bd349dfd..78182a2367 100644 --- a/docs/ibexa_products/editions.md +++ b/docs/ibexa_products/editions.md @@ -13,6 +13,8 @@ Three [[= product_name =]] product editions are available to help you accelerate "ibexa_products/ibexa_commerce" ], columns=3) =]] +## Feature comparison + Compare all features available in [[= product_name_headless =]], [[= product_name_exp =]], and [[= product_name_com =]] to help you choose the right products for your needs: | Feature | [[= product_name_headless =]] | [[= product_name_exp =]] | [[= product_name_com =]] | diff --git a/mkdocs.yml b/mkdocs.yml index b888f71f0b..4c631f6fe9 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -153,8 +153,8 @@ nav: - Customize search sorting: administration/back_office/customize_search_sorting.md - Recent activity: administration/recent_activity/recent_activity.md - Content management: - - Content management guide: content_management/content_management_guide.md - Content management: content_management/content_management.md + - Content management guide: content_management/content_management_guide.md - Content model: content_management/content_model.md - Locations: content_management/locations.md - Content Relations: content_management/content_relations.md @@ -178,8 +178,8 @@ nav: - Binary and Media download: content_management/file_management/binary_and_media_download.md - File URL handling: content_management/file_management/file_url_handling.md - Pages: - - Page Builder guide: content_management/pages/page_builder_guide.md - Pages: content_management/pages/pages.md + - Page Builder guide: content_management/pages/page_builder_guide.md - Page blocks: content_management/pages/page_blocks.md - Page block attributes: content_management/pages/page_block_attributes.md - Page block validators: content_management/pages/page_block_validators.md @@ -322,8 +322,8 @@ nav: - Add navigation menu: templating/layout/add_navigation_menu.md - Add search form to front page: templating/layout/add_search_form.md - PIM (Product management): - - PIM guide: pim/pim_guide.md - PIM (Product management): pim/pim.md + - PIM guide: pim/pim_guide.md - PIM configuration: pim/pim_configuration.md - Products: pim/products.md - Product API: pim/product_api.md @@ -418,8 +418,8 @@ nav: - Limitation reference: permissions/limitation_reference.md - Custom Policies: permissions/custom_policies.md - Users: - - User management guide: users/user_management_guide.md - Users: users/users.md + - User management guide: users/user_management_guide.md - User setup: - Invitations: users/invitations.md - Registration: users/user_registration.md @@ -433,8 +433,8 @@ nav: - Customer groups: users/customer_groups.md - Segment API: users/segment_api.md - Personalization: - - Personalization guide : personalization/personalization_guide.md - Personalization: personalization/personalization.md + - Personalization guide : personalization/personalization_guide.md - How Personalization works: personalization/how_it_works.md - Enable Personalization: personalization/enable_personalization.md - Integrate recommendation service: personalization/integrate_recommendation_service.md @@ -450,8 +450,8 @@ nav: - Track with ibexa-tracker.js: personalization/tracking_with_ibexa-tracker.md - Attribute search in Elasticsearch: personalization/attribute_search_in_elasticsearch.md - CDP (Customer Data Platform): - - CDP guide: cdp/cdp_guide.md - Customer Data Platform: cdp/cdp.md + - CDP guide: cdp/cdp_guide.md - CDP installation: cdp/cdp_installation.md - CDP activation: - CDP activation: cdp/cdp_activation/cdp_activation.md @@ -751,8 +751,8 @@ nav: - Manipulate Elasticsearch query: search/extensibility/manipulate_elasticsearch_query.md - Reindex search: search/reindex_search.md - Ibexa Cloud: - - Ibexa Cloud guide: ibexa_cloud/ibexa_cloud_guide.md - Ibexa Cloud: ibexa_cloud/ibexa_cloud.md + - Ibexa Cloud guide: ibexa_cloud/ibexa_cloud_guide.md - Install on Ibexa Cloud: ibexa_cloud/install_on_ibexa_cloud.md - DDEV and Ibexa Cloud: ibexa_cloud/ddev_and_ibexa_cloud.md - Infrastructure and maintenance: From 824feccc370144ce26338a03b029bb9ee4f7e7c8 Mon Sep 17 00:00:00 2001 From: julitafalcondusza Date: Thu, 29 Aug 2024 14:48:05 +0200 Subject: [PATCH 07/10] Updates in the features table, fixes --- docs/content_management/forms/forms.md | 1 + docs/ibexa_products/editions.md | 12 ++++++++++-- docs/product_guides/product_guides.md | 4 ++-- docs/resources/new_in_doc.md | 2 +- plugins.yml | 2 ++ 5 files changed, 16 insertions(+), 5 deletions(-) diff --git a/docs/content_management/forms/forms.md b/docs/content_management/forms/forms.md index 8c431fc943..7bd327a345 100644 --- a/docs/content_management/forms/forms.md +++ b/docs/content_management/forms/forms.md @@ -1,5 +1,6 @@ --- description: Forms are a type of content item that you can use to improve the functionality of your website. +edition: experience page_type: landing_page --- diff --git a/docs/ibexa_products/editions.md b/docs/ibexa_products/editions.md index 78182a2367..8fe28003a8 100644 --- a/docs/ibexa_products/editions.md +++ b/docs/ibexa_products/editions.md @@ -27,22 +27,30 @@ Compare all features available in [[= product_name_headless =]], [[= product_nam | [SEO]([[= user_doc =]]/search_engine_optimization/seo/) | ✔ | ✔ | ✔ | | [Content translation]([[= user_doc =]]/content_management/translate_content/) | ✔ | ✔ | ✔ | | [Search]([[= user_doc =]]/search/search_for_content/) | ✔ | ✔ | ✔ | -| [Collaboration workspace]([[= user_doc =]]/content_management/workflow_management/editorial_workflow/) | ✔ | ✔ | ✔ | +| [Editorial workflow]([[= user_doc =]]/content_management/workflow_management/editorial_workflow/) | ✔ | ✔ | ✔ | | [Digital Asset Management]([[= user_doc =]]/dam/ibexa_dam/) | ✔ | ✔ | ✔ | | [Product Information Management]([[= user_doc =]]/pim/pim/) | ✔ | ✔ | ✔ | | [Personalization](personalization_guide.md) | ✔ | ✔ | ✔ | +| [Migrations](managing_migrations.md) | ✔ | ✔ | ✔ | +| [[[= product_name_connect =]]]([[= connect_doc =]]) | ✔ | ✔ | ✔ | +| [OAuth client](oauth_client.md) | ✔ | ✔ | ✔ | +| [OAuth Server](oauth_server.md) | ✔ | ✔ | ✔ | | [Site Factory](site_factory.md) | | ✔ | ✔ | | [Customizable Dashboard]([[= user_doc =]]/getting_started/dashboard/work_with_dashboard/#customize-dashboard) | | ✔ | ✔ | | [Page Builder](page_builder_guide.md) | | ✔ | ✔ | | [Form Builder](form_builder_guide.md) | | ✔ | ✔ | -| [Publish Later]([[= user_doc =]]/content_management/schedule_publishing/#date-based-publishing) | | ✔ | ✔ | +| [Scheduler tab]([[= user_doc =]]/content_management/schedule_publishing/#scheduler-tab) | | ✔ | ✔ | +| [Content Scheduler block]([[= user_doc =]]/content_management/schedule_publishing/#content-scheduler-block) | | ✔ | ✔ | | [Corporate account management]([[= user_doc =]]/customer_management/manage_customers/) | | ✔ | ✔ | | [Customer Portal](customer_portal_guide.md) | | ✔ | ✔ | | [Segments](segments_admin_panel.md) | | ✔ | ✔ | +| [Recent activity](recent_activity.md) | | ✔ | ✔ | | [Ibexa Engage add-on]([[= user_doc =]]/ibexa_engage/ibexa_engage/) | | ✔ | ✔ | | [Customer Data Platform (CDP) add-on](cdp_guide.md) | | ✔ | ✔ | | [Order management](order_management.md) | | | ✔ | | [Payment management](payment.md) | | | ✔ | | [Shipping management](shipping_management.md) | | | ✔ | +| [Cart](cart.md) | | | ✔ | +| [Checkout](checkout.md) | | | ✔ | | [Storefront](storefront.md) | | | ✔ | | [Transactional emails](transactional_emails.md) | | | ✔ | \ No newline at end of file diff --git a/docs/product_guides/product_guides.md b/docs/product_guides/product_guides.md index 6a0025c21f..85ea7926b0 100644 --- a/docs/product_guides/product_guides.md +++ b/docs/product_guides/product_guides.md @@ -1,11 +1,11 @@ --- -description: Dicover various of Ibexa DXP features. +description: Discover various Ibexa DXP features. page_type: landing_page --- # Product guides -[[= product_name =]] product edtions comes with a variety of features. +[[= product_name =]] product editions come with a variety of features. Discover the primary ones with the help of product guides. Condensed content allows you to quickly learn about their availability, capabilities, and benefits. [[= cards([ diff --git a/docs/resources/new_in_doc.md b/docs/resources/new_in_doc.md index 2f406d37dd..2c55232bd6 100644 --- a/docs/resources/new_in_doc.md +++ b/docs/resources/new_in_doc.md @@ -311,7 +311,7 @@ This page contains recent highlights and notable changes in [[= product_name =]] - [Customer portal](https://doc.ibexa.co/en/master/customer_management/customer_portal/) - [Form Builder](https://doc.ibexa.co/en/master/content_management/forms/form_builder_guide/) - [Online editor](https://doc.ibexa.co/en/master/content_management/rich_text/online_editor_guide/) - - [Personalization](https://doc.ibexa.co/en/master/personalization/personalization_product_guide/) + - [Personalization](https://doc.ibexa.co/en/master/personalization/personalization_guide/) - [PIM](https://doc.ibexa.co/en/master/pim/pim_guide/) - [Updated bundles list](https://doc.ibexa.co/en/master/administration/project_organization/bundles/) diff --git a/plugins.yml b/plugins.yml index ecbc44c9e0..0121270898 100644 --- a/plugins.yml +++ b/plugins.yml @@ -103,6 +103,8 @@ plugins: 'guide/page/page_block_attributes.md': 'content_management/pages/page_block_attributes.md' 'guide/page/page_block_validators.md': 'content_management/pages/page_block_validators.md' 'guide/page/create_custom_page_block.md': 'content_management/pages/create_custom_page_block.md' + 'guide/form_builder/forms.md': 'content_management/forms/forms.md' + 'api/public_php_api_managing_forms.md': 'content_management/forms/form_api.md' 'guide/form_builder/work_with_forms.md': 'content_management/forms/work_with_forms.md' 'api/public_php_api_managing_work_with_forms.md': 'content_management/forms/form_api.md' 'guide/form_builder/create_custom_form_field.md': 'content_management/forms/create_custom_form_field.md' From 49999b74d75350bb3a71f8d3e37e11ea6f2c7a43 Mon Sep 17 00:00:00 2001 From: julitafalcondusza Date: Fri, 30 Aug 2024 12:54:10 +0200 Subject: [PATCH 08/10] Redirects fixed --- plugins.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/plugins.yml b/plugins.yml index 0121270898..7e32bde2df 100644 --- a/plugins.yml +++ b/plugins.yml @@ -105,8 +105,9 @@ plugins: 'guide/page/create_custom_page_block.md': 'content_management/pages/create_custom_page_block.md' 'guide/form_builder/forms.md': 'content_management/forms/forms.md' 'api/public_php_api_managing_forms.md': 'content_management/forms/form_api.md' - 'guide/form_builder/work_with_forms.md': 'content_management/forms/work_with_forms.md' - 'api/public_php_api_managing_work_with_forms.md': 'content_management/forms/form_api.md' + 'docs/ibexa_products/experience.md': 'docs/ibexa_products/ibexa_experience.md' + 'docs/ibexa_products/headless.md': 'docs/ibexa_products/ibexa_headless.md' + 'docs/personalization/personalization_brochure.md': 'docs/personalization/personalization_guide.md' 'guide/form_builder/create_custom_form_field.md': 'content_management/forms/create_custom_form_field.md' 'guide/form_builder/customize_email_notifications.md': 'content_management/forms/customize_email_notifications.md' 'guide/workflow/workflow.md': 'content_management/workflow/workflow.md' From 5ee1cb6e119f322ccc06275fad5fbe1193266286 Mon Sep 17 00:00:00 2001 From: julitafalcondusza Date: Fri, 30 Aug 2024 13:11:38 +0200 Subject: [PATCH 09/10] Fix --- plugins.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins.yml b/plugins.yml index 7e32bde2df..1675e73a41 100644 --- a/plugins.yml +++ b/plugins.yml @@ -105,9 +105,9 @@ plugins: 'guide/page/create_custom_page_block.md': 'content_management/pages/create_custom_page_block.md' 'guide/form_builder/forms.md': 'content_management/forms/forms.md' 'api/public_php_api_managing_forms.md': 'content_management/forms/form_api.md' - 'docs/ibexa_products/experience.md': 'docs/ibexa_products/ibexa_experience.md' - 'docs/ibexa_products/headless.md': 'docs/ibexa_products/ibexa_headless.md' - 'docs/personalization/personalization_brochure.md': 'docs/personalization/personalization_guide.md' + 'ibexa_products/experience.md': 'docs/ibexa_products/ibexa_experience.md' + 'ibexa_products/headless.md': 'docs/ibexa_products/ibexa_headless.md' + 'personalization/personalization_brochure.md': 'docs/personalization/personalization_guide.md' 'guide/form_builder/create_custom_form_field.md': 'content_management/forms/create_custom_form_field.md' 'guide/form_builder/customize_email_notifications.md': 'content_management/forms/customize_email_notifications.md' 'guide/workflow/workflow.md': 'content_management/workflow/workflow.md' From 3f3f3374866dac6b06e54d740d80c62d0569bbb5 Mon Sep 17 00:00:00 2001 From: julitafalcondusza Date: Fri, 30 Aug 2024 13:32:18 +0200 Subject: [PATCH 10/10] Fix - docs removed from the redirect path --- plugins.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins.yml b/plugins.yml index 1675e73a41..4b0e73d113 100644 --- a/plugins.yml +++ b/plugins.yml @@ -105,9 +105,9 @@ plugins: 'guide/page/create_custom_page_block.md': 'content_management/pages/create_custom_page_block.md' 'guide/form_builder/forms.md': 'content_management/forms/forms.md' 'api/public_php_api_managing_forms.md': 'content_management/forms/form_api.md' - 'ibexa_products/experience.md': 'docs/ibexa_products/ibexa_experience.md' - 'ibexa_products/headless.md': 'docs/ibexa_products/ibexa_headless.md' - 'personalization/personalization_brochure.md': 'docs/personalization/personalization_guide.md' + 'ibexa_products/experience.md': 'ibexa_products/ibexa_experience.md' + 'ibexa_products/headless.md': 'ibexa_products/ibexa_headless.md' + 'personalization/personalization_brochure.md': 'personalization/personalization_guide.md' 'guide/form_builder/create_custom_form_field.md': 'content_management/forms/create_custom_form_field.md' 'guide/form_builder/customize_email_notifications.md': 'content_management/forms/customize_email_notifications.md' 'guide/workflow/workflow.md': 'content_management/workflow/workflow.md'